From 39a57a0527548face6e59f95ddaf71115fbfb740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BC=9A?= <> Date: Fri, 25 Aug 2023 11:39:51 +0800 Subject: [PATCH 01/24] new feat: add new vc version=2 to support multiple attesters --- protocol/vc/src/defaults.ts | 2 +- protocol/vc/src/types.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/protocol/vc/src/defaults.ts b/protocol/vc/src/defaults.ts index 10be0bc..235b4cd 100644 --- a/protocol/vc/src/defaults.ts +++ b/protocol/vc/src/defaults.ts @@ -9,7 +9,7 @@ import type { VerifiablePresentationVersion } from './types'; -export const DEFAULT_VC_VERSION: VerifiableCredentialVersion = '1'; +export const DEFAULT_VC_VERSION: VerifiableCredentialVersion = '2'; export const DEFAULT_VP_VERSION: VerifiablePresentationVersion = '1'; diff --git a/protocol/vc/src/types.ts b/protocol/vc/src/types.ts index 324d3d3..e29b442 100644 --- a/protocol/vc/src/types.ts +++ b/protocol/vc/src/types.ts @@ -27,7 +27,7 @@ export type HashType = export type VerifiablePresentationType = 'VP' | 'VP_Digest' | 'VP_SelectiveDisclosure'; -export type VerifiableCredentialVersion = '0' | '1'; +export type VerifiableCredentialVersion = '0' | '1' | '2'; export type VerifiablePresentationVersion = '0' | '1'; @@ -52,7 +52,7 @@ interface PublicVerifiableCredential extends RawCredential { version: VerifiableCredentialVersion; issuanceDate: number; expirationDate?: number; - issuer: DidUrl; + issuer: DidUrl[]; digest: HexString; proof: Proof[]; } @@ -62,7 +62,7 @@ interface PrivateVerifiableCredential extends Omit Date: Fri, 25 Aug 2023 11:51:26 +0800 Subject: [PATCH 02/24] fix: data.issuer now is Did[] --- packages/message/src/decrypt/index.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/message/src/decrypt/index.ts b/packages/message/src/decrypt/index.ts index 2fd15ba..5149ca7 100644 --- a/packages/message/src/decrypt/index.ts +++ b/packages/message/src/decrypt/index.ts @@ -35,7 +35,10 @@ export function verifyMessageData(message: DecryptedMessage): void case 'Response_Approve_Attestation': assert(isVC(data), `Expected message data with msgType:${msgType} is VerifiableCredential object`); - assert(isSameUri(sender, data.issuer), 'Message sender is not the issuer of VerifiableCredential'); + assert( + data.issuer.every((issuer) => isSameUri(sender, issuer)), + 'Message sender is not the issuer of VerifiableCredential' + ); break; @@ -73,7 +76,10 @@ export function verifyMessageData(message: DecryptedMessage): void case 'Send_issuedVC': assert(isVC(data), `Expected message data with msgType:${msgType} is VerifiableCredential object`); - assert(isSameUri(sender, data.issuer), 'Message sender is not the issuer of VerifiableCredential'); + assert( + data.issuer.every((issuer) => isSameUri(sender, issuer)), + 'Message sender is not the issuer of VerifiableCredential' + ); break; From 41acec69384deb8317511d0f3e539f9e6138ea72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BC=9A?= <> Date: Fri, 25 Aug 2023 11:51:51 +0800 Subject: [PATCH 03/24] fix: add DigestPayloadV2 --- protocol/vc/src/digest.ts | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/protocol/vc/src/digest.ts b/protocol/vc/src/digest.ts index 5a20d2f..f3e630d 100644 --- a/protocol/vc/src/digest.ts +++ b/protocol/vc/src/digest.ts @@ -33,6 +33,9 @@ export interface DigestPayloadV0 { ctype: HexString; } +/** + * @deprecated + */ export interface DigestPayloadV1 extends DigestPayloadV0 { /** * @since `@zcloak/vc@1.0.0` and `VerifiableCredential.version is 1` @@ -41,9 +44,18 @@ export interface DigestPayloadV1 extends DigestPayloadV0 { issuanceDate: number; } +/** + * @since `@zcloak/vc@2.0.0` + */ +export interface DigestPayloadV2 extends DigestPayloadV0 { + issuanceDate: number; +} + export type DigestPayload = Version extends '0' ? DigestPayloadV0 - : DigestPayloadV1; + : Version extends '1' + ? DigestPayloadV1 + : DigestPayloadV2; /** * @name calcDigest @@ -72,7 +84,7 @@ export function calcDigest( numberToU8a(payload.expirationDate || 0), payload.ctype ); - } else { + } else if (version === '1') { encoded = u8aConcat( payload.rootHash, encodeDidUrl(payload.holder), @@ -80,6 +92,18 @@ export function calcDigest( numberToU8a(payload.expirationDate || 0), payload.ctype ); + } else if (version === '2') { + encoded = u8aConcat( + payload.rootHash, + encodeDidUrl(payload.holder), + numberToU8a((payload as DigestPayload<'2'>).issuanceDate), + numberToU8a(payload.expirationDate || 0), + payload.ctype + ); + } else { + const check: never = version; + + return check; } return { From 300198d76a8e2795e13cc050c883aaf02180e487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BC=9A?= <> Date: Fri, 25 Aug 2023 12:17:25 +0800 Subject: [PATCH 04/24] add: vc.build() support moreIssuers parameters(optional) --- protocol/vc/src/credential/vc.ts | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index f01f121..96f1388 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -81,14 +81,25 @@ export class VerifiableCredentialBuilder { /** * Build to [[PublicVerifiableCredential]] */ - public async build(issuer: Did, isPublic: true): Promise>; + public async build(issuer: Did, isPublic: true, moreIssuers?: DidUrl[]): Promise>; /** * Build to [[PrivateVerifiableCredential]] */ - public async build(issuer: Did, isPublic?: false): Promise>; + public async build(issuer: Did, isPublic: false, moreIssuers?: DidUrl[]): Promise>; - public async build(issuer: Did, isPublic?: boolean): Promise> { + /** + * + * @param issuer this is Did type, because we need to sign vc to fulfill the proof field + * @param isPublic + * @param moreIssuers this is only DidUrl type, because we just add them to the issuer field( not proof field) + * @returns + */ + public async build( + issuer: Did, + isPublic = false, + moreIssuers: DidUrl[] = [] + ): Promise> { assert(this.raw.checkSubject(), `Subject check failed when use ctype ${this.raw.ctype}`); if ( @@ -118,13 +129,15 @@ export class VerifiableCredentialBuilder { const proof = await this._signDigest(issuer, digest, this.version); + // NOTE: at this moment, the first proof is fullfiled, this maybe not enough because of multiple issuers + // Use addIssuerProof() to add more proofs let vc: VerifiableCredential = { '@context': this['@context'], version: this.version, ctype: this.raw.ctype.$id, issuanceDate: this.issuanceDate, credentialSubject: this.raw.contents, - issuer: issuer.id, + issuer: [issuer.id, ...moreIssuers], holder: this.raw.owner, hasher: [rootHashResult.type, digestHashType], digest, From d592a45d5e1be132d2b83d1d5d08f7ce8dcdbdd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BC=9A?= <> Date: Fri, 25 Aug 2023 12:30:21 +0800 Subject: [PATCH 05/24] fix: check issuers --- packages/message/src/decrypt/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/message/src/decrypt/index.ts b/packages/message/src/decrypt/index.ts index 5149ca7..ce4e19e 100644 --- a/packages/message/src/decrypt/index.ts +++ b/packages/message/src/decrypt/index.ts @@ -36,7 +36,7 @@ export function verifyMessageData(message: DecryptedMessage): void case 'Response_Approve_Attestation': assert(isVC(data), `Expected message data with msgType:${msgType} is VerifiableCredential object`); assert( - data.issuer.every((issuer) => isSameUri(sender, issuer)), + data.issuer.some((issuer) => isSameUri(sender, issuer)), 'Message sender is not the issuer of VerifiableCredential' ); @@ -77,7 +77,7 @@ export function verifyMessageData(message: DecryptedMessage): void case 'Send_issuedVC': assert(isVC(data), `Expected message data with msgType:${msgType} is VerifiableCredential object`); assert( - data.issuer.every((issuer) => isSameUri(sender, issuer)), + data.issuer.some((issuer) => isSameUri(sender, issuer)), 'Message sender is not the issuer of VerifiableCredential' ); From bf3911213322a3a1a00e4e2329004faef56de879 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Fri, 25 Aug 2023 16:08:02 +0800 Subject: [PATCH 06/24] Add: add encodeAsSol function and test --- .yarn/releases/yarn-4.0.0-rc.40.cjs | 2 +- protocol/vc/src/rootHash.spec.ts | 18 ++++++++++++++++++ protocol/vc/src/utils.ts | 28 ++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/.yarn/releases/yarn-4.0.0-rc.40.cjs b/.yarn/releases/yarn-4.0.0-rc.40.cjs index 4b8e0df..4ad8048 100755 --- a/.yarn/releases/yarn-4.0.0-rc.40.cjs +++ b/.yarn/releases/yarn-4.0.0-rc.40.cjs @@ -279,7 +279,7 @@ ${this.source} ${this.getDeclarations()}`}createSession(){return new CH(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=s2([A,Y.stringifyIdent(n)]),h=Ye.getMapWithDefault(o,a.cwd);Ye.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=s2(n),p=Ye.getMapWithDefault(o,a.cwd);Ye.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=V.resolve(this.project.cwd,em(o.links.WorkspaceCwd)),n=em(o.links.DependencyIdent),u=em(o.links.DependencyRange),A=em(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=Y.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return Ye.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>Y.stringifyIdent(o.locator),({dependencyIdent:o})=>Y.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=V.resolve(this.project.cwd,em(o.links.WorkspaceCwd)),n=em(o.links.FieldPath),u=ugt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return Ye.sortMap(r,[({workspace:o})=>Y.stringifyIdent(o.locator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=em(u));yield a}}}});var _me=U(cQ=>{"use strict";Object.defineProperty(cQ,"__esModule",{value:!0});function x2(t){let e=[...t.caches],r=e.shift();return r===void 0?Ume():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>x2({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>x2({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>x2({caches:e}).delete(o))},clear(){return r.clear().catch(()=>x2({caches:e}).clear())}}}function Ume(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}cQ.createFallbackableCache=x2;cQ.createNullCache=Ume});var qme=U((kWt,Hme)=>{Hme.exports=_me()});var jme=U(TH=>{"use strict";Object.defineProperty(TH,"__esModule",{value:!0});function bgt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}TH.createInMemoryCache=bgt});var Wme=U((RWt,Gme)=>{Gme.exports=jme()});var Kme=U(tu=>{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});function Qgt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===LH.WithinHeaders?o:{}},queryParameters(){return t===LH.WithinQueryParameters?o:{}}}}function kgt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function Yme(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return Yme(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function Fgt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function Rgt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function Tgt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var Lgt="4.14.2",Ngt=t=>()=>t.transporter.requester.destroy(),LH={WithinQueryParameters:0,WithinHeaders:1};tu.AuthMode=LH;tu.addMethods=Rgt;tu.createAuth=Qgt;tu.createRetryablePromise=kgt;tu.createWaitablePromise=Yme;tu.destroy=Ngt;tu.encode=Tgt;tu.shuffle=Fgt;tu.version=Lgt});var P2=U((LWt,Jme)=>{Jme.exports=Kme()});var Vme=U(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});var Ogt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};NH.MethodEnum=Ogt});var b2=U((OWt,zme)=>{zme.exports=Vme()});var Aye=U(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});var Zme=b2();function OH(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var Q2={Read:1,Write:2,Any:3},EC={Up:1,Down:2,Timeouted:3},$me=2*60*1e3;function UH(t,e=EC.Up){return{...t,status:e,lastUpdate:Date.now()}}function eye(t){return t.status===EC.Up||Date.now()-t.lastUpdate>$me}function tye(t){return t.status===EC.Timeouted&&Date.now()-t.lastUpdate<=$me}function _H(t){return typeof t=="string"?{protocol:"https",url:t,accept:Q2.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||Q2.Any}}function Mgt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(UH(r))))).then(r=>{let o=r.filter(A=>eye(A)),a=r.filter(A=>tye(A)),n=[...o,...a],u=n.length>0?n.map(A=>_H(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Ugt=({isTimedOut:t,status:e})=>!t&&~~e===0,_gt=t=>{let e=t.status;return t.isTimedOut||Ugt(t)||~~(e/100)!==2&&~~(e/100)!==4},Hgt=({status:t})=>~~(t/100)===2,qgt=(t,e)=>_gt(t)?e.onRetry(t):Hgt(t)?e.onSuccess(t):e.onFail(t);function Xme(t,e,r,o){let a=[],n=oye(r,o),u=aye(t,o),A=r.method,p=r.method!==Zme.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},C=0,w=(v,b)=>{let E=v.pop();if(E===void 0)throw uye(MH(a));let R={data:n,headers:u,method:A,url:iye(E,r.path,h),connectTimeout:b(C,t.timeouts.connect),responseTimeout:b(C,o.timeout)},N=J=>{let re={request:R,response:J,host:E,triesLeft:v.length};return a.push(re),re},_={onSuccess:J=>rye(J),onRetry(J){let re=N(J);return J.isTimedOut&&C++,Promise.all([t.logger.info("Retryable failure",HH(re)),t.hostsCache.set(E,UH(E,J.isTimedOut?EC.Timeouted:EC.Down))]).then(()=>w(v,b))},onFail(J){throw N(J),nye(J,MH(a))}};return t.requester.send(R).then(J=>qgt(J,_))};return Mgt(t.hostsCache,e).then(v=>w([...v.statelessHosts].reverse(),v.getTimeout))}function jgt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:C}=t,w={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:C,queryParameters:h,hosts:p.map(v=>_H(v)),read(v,b){let E=OH(b,w.timeouts.read),R=()=>Xme(w,w.hosts.filter(J=>(J.accept&Q2.Read)!==0),v,E);if((E.cacheable!==void 0?E.cacheable:v.cacheable)!==!0)return R();let _={request:v,mappedRequestOptions:E,transporter:{queryParameters:w.queryParameters,headers:w.headers}};return w.responsesCache.get(_,()=>w.requestsCache.get(_,()=>w.requestsCache.set(_,R()).then(J=>Promise.all([w.requestsCache.delete(_),J]),J=>Promise.all([w.requestsCache.delete(_),Promise.reject(J)])).then(([J,re])=>re)),{miss:J=>w.responsesCache.set(_,J)})},write(v,b){return Xme(w,w.hosts.filter(E=>(E.accept&Q2.Write)!==0),v,OH(b,w.timeouts.write))}};return w}function Ggt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function rye(t){try{return JSON.parse(t.content)}catch(e){throw cye(e.message,t)}}function nye({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return lye(o,e,r)}function Wgt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function iye(t,e,r){let o=sye(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function sye(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Wgt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function oye(t,e){if(t.method===Zme.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function aye(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function MH(t){return t.map(e=>HH(e))}function HH(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function lye(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function cye(t,e){return{name:"DeserializationError",message:t,response:e}}function uye(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}bi.CallEnum=Q2;bi.HostStatusEnum=EC;bi.createApiError=lye;bi.createDeserializationError=cye;bi.createMappedRequestOptions=OH;bi.createRetryError=uye;bi.createStatefulHost=UH;bi.createStatelessHost=_H;bi.createTransporter=jgt;bi.createUserAgent=Ggt;bi.deserializeFailure=nye;bi.deserializeSuccess=rye;bi.isStatefulHostTimeouted=tye;bi.isStatefulHostUp=eye;bi.serializeData=oye;bi.serializeHeaders=aye;bi.serializeQueryParameters=sye;bi.serializeUrl=iye;bi.stackFrameWithoutCredentials=HH;bi.stackTraceWithoutCredentials=MH});var k2=U((UWt,fye)=>{fye.exports=Aye()});var pye=U(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});var CC=P2(),Ygt=k2(),F2=b2(),Kgt=t=>{let e=t.region||"us",r=CC.createAuth(CC.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Ygt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return CC.addMethods({appId:a,transporter:o},t.methods)},Jgt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Post,path:"2/abtests",data:e},r),Vgt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Delete,path:CC.encode("2/abtests/%s",e)},r),zgt=t=>(e,r)=>t.transporter.read({method:F2.MethodEnum.Get,path:CC.encode("2/abtests/%s",e)},r),Xgt=t=>e=>t.transporter.read({method:F2.MethodEnum.Get,path:"2/abtests"},e),Zgt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Post,path:CC.encode("2/abtests/%s/stop",e)},r);hh.addABTest=Jgt;hh.createAnalyticsClient=Kgt;hh.deleteABTest=Vgt;hh.getABTest=zgt;hh.getABTests=Xgt;hh.stopABTest=Zgt});var gye=U((HWt,hye)=>{hye.exports=pye()});var mye=U(R2=>{"use strict";Object.defineProperty(R2,"__esModule",{value:!0});var qH=P2(),$gt=k2(),dye=b2(),edt=t=>{let e=t.region||"us",r=qH.createAuth(qH.AuthMode.WithinHeaders,t.appId,t.apiKey),o=$gt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return qH.addMethods({appId:t.appId,transporter:o},t.methods)},tdt=t=>e=>t.transporter.read({method:dye.MethodEnum.Get,path:"1/strategies/personalization"},e),rdt=t=>(e,r)=>t.transporter.write({method:dye.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);R2.createPersonalizationClient=edt;R2.getPersonalizationStrategy=tdt;R2.setPersonalizationStrategy=rdt});var Eye=U((jWt,yye)=>{yye.exports=mye()});var Rye=U(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Ht=P2(),Ta=k2(),mr=b2(),ndt=Ie("crypto");function uQ(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var idt=t=>{let e=t.appId,r=Ht.createAuth(t.authMode!==void 0?t.authMode:Ht.AuthMode.WithinHeaders,e,t.apiKey),o=Ta.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:Ta.CallEnum.Read},{url:`${e}.algolia.net`,accept:Ta.CallEnum.Write}].concat(Ht.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Ht.addMethods(a,t.methods)};function Cye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function Iye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function wye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var sdt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Ht.createRetryablePromise(h=>T2(t)(A.key,p).catch(C=>{if(C.status!==404)throw C;return h()}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:"1/keys",data:n},a),u)},odt=t=>(e,r,o)=>{let a=Ta.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:mr.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},adt=t=>(e,r,o)=>t.transporter.write({method:mr.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),ldt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>IC(t)(o.taskID,a)),AQ=t=>(e,r,o)=>{let a=(n,u)=>L2(t)(e,{methods:{waitTask:zi}}).waitTask(n.taskID,u);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},cdt=t=>(e,r,o)=>AQ(t)(e,r,{...o,scope:[pQ.Rules]}),udt=t=>(e,r,o)=>AQ(t)(e,r,{...o,scope:[pQ.Settings]}),Adt=t=>(e,r,o)=>AQ(t)(e,r,{...o,scope:[pQ.Synonyms]}),fdt=t=>(e,r)=>e.method===mr.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),pdt=t=>(e,r)=>{let o=(a,n)=>Ht.createRetryablePromise(u=>T2(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/keys/%s",e)},r),o)},hdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>IC(t)(n.taskID,u))},gdt=()=>(t,e)=>{let r=Ta.serializeQueryParameters(e),o=ndt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},T2=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/keys/%s",e)},r),Bye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/task/%s",e.toString())},r),ddt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),mdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/logs"},e),ydt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw wye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},Edt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping/top"},e),Cdt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/clusters/mapping/%s",e)},r),Idt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},L2=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Ht.addMethods(o,r.methods)},wdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/keys"},e),Bdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters"},e),vdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/indexes"},e),Ddt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping"},e),Sdt=t=>(e,r,o)=>{let a=(n,u)=>L2(t)(e,{methods:{waitTask:zi}}).waitTask(n.taskID,u);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},xdt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>L2(t)(u,{methods:{waitTask:zi}}).waitTask(a.taskID[u],n)));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},Pdt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),bdt=t=>(e,r)=>{let o=e.map(a=>({...a,params:Ta.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},Qdt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return L2(t)(o.indexName,{methods:{searchForFacetValues:Qye}}).searchForFacetValues(a,n,{...r,...u})})),kdt=t=>(e,r)=>{let o=Ta.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:mr.MethodEnum.Delete,path:"1/clusters/mapping"},o)},Fdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>IC(t)(n.taskID,u))},Rdt=t=>(e,r)=>{let o=(a,n)=>Ht.createRetryablePromise(u=>T2(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/keys/%s/restore",e)},r),o)},Tdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>IC(t)(n.taskID,u))},Ldt=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),Ndt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),Odt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>IC(t)(o.taskID,a)),Mdt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=C=>Object.keys(o).filter(w=>A.indexOf(w)!==-1).every(w=>C[w]===o[w]),h=(C,w)=>Ht.createRetryablePromise(v=>T2(t)(e,w).then(b=>p(b)?Promise.resolve():v()));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:Ht.encode("1/keys/%s",e),data:u},n),h)},IC=t=>(e,r)=>Ht.createRetryablePromise(o=>Bye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),vye=t=>(e,r)=>{let o=(a,n)=>zi(t)(a.taskID,n);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Udt=t=>e=>uQ({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),_dt=t=>e=>{let r={hitsPerPage:1e3,...e};return uQ({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},Hdt=t=>e=>{let r={hitsPerPage:1e3,...e};return uQ({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},fQ=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],C;for(C=p;C({action:r,body:w})),n).then(w=>(u.objectIDs=u.objectIDs.concat(w.objectIDs),u.taskIDs.push(w.taskID),C++,A(C)))};return Ht.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(C=>zi(t)(C,h))))},qdt=t=>e=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>zi(t)(r.taskID,o)),jdt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ta.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>zi(t)(n.taskID,u))},Gdt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ta.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>zi(t)(n.taskID,u))},Wdt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>zi(t)(o.taskID,a)),Ydt=t=>e=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s",t.indexName)},e),(r,o)=>zi(t)(r.taskID,o)),Kdt=t=>(e,r)=>Ht.createWaitablePromise(Dye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),Dye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return fQ(t)(o,nm.DeleteObject,r)},Jdt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ta.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>zi(t)(u.taskID,A))},Vdt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ta.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>zi(t)(u.taskID,A))},zdt=t=>e=>Sye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Xdt=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),Zdt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>bye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,C]of Object.entries(p.hits))if(e(C))return{object:C,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw Iye();return A()});return A()},$dt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/%s",t.indexName,e)},r),emt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},tmt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},rmt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),Sye=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),nmt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),xye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),imt=t=>(e,r)=>Ht.createWaitablePromise(Pye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),Pye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?nm.PartialUpdateObject:nm.PartialUpdateObjectNoCreate;return fQ(t)(e,n,a)},smt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(E,R,N,_)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",E),data:{operation:N,destination:R}},_),(J,re)=>zi(t)(J.taskID,re)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,C=jH({appId:t.appId,transporter:t.transporter,indexName:h}),w=[],v=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});w.push(v);let b=(o?v.wait(u):v).then(()=>{let E=C(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return w.push(E),o?E.wait(u):E}).then(()=>{let E=A(h,t.indexName,"move",u);return w.push(E),o?E.wait(u):E}).then(()=>Promise.all(w)).then(([E,R,N])=>({objectIDs:R.objectIDs,taskIDs:[E.taskID,...R.taskIDs,N.taskID]}));return Ht.createWaitablePromise(b,(E,R)=>Promise.all(w.map(N=>N.wait(R))))},omt=t=>(e,r)=>GH(t)(e,{...r,clearExistingRules:!0}),amt=t=>(e,r)=>WH(t)(e,{...r,clearExistingSynonyms:!0}),lmt=t=>(e,r)=>Ht.createWaitablePromise(jH(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),jH=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?nm.AddObject:nm.UpdateObject;if(n===nm.UpdateObject){for(let u of e)if(u.objectID===void 0)return Ht.createWaitablePromise(Promise.reject(Cye()))}return fQ(t)(e,n,a)},cmt=t=>(e,r)=>GH(t)([e],r),GH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=Ta.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>zi(t)(A.taskID,p))},umt=t=>(e,r)=>WH(t)([e],r),WH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=Ta.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>zi(t)(p.taskID,h))},bye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),Qye=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),kye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),Fye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),Amt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ta.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:Ht.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>zi(t)(u.taskID,A))},zi=t=>(e,r)=>Ht.createRetryablePromise(o=>xye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),fmt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},nm={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},pQ={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},pmt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},hmt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=fmt;Ft.BatchActionEnum=nm;Ft.ScopeEnum=pQ;Ft.StrategyEnum=pmt;Ft.SynonymEnum=hmt;Ft.addApiKey=sdt;Ft.assignUserID=odt;Ft.assignUserIDs=adt;Ft.batch=vye;Ft.browseObjects=Udt;Ft.browseRules=_dt;Ft.browseSynonyms=Hdt;Ft.chunkedBatch=fQ;Ft.clearDictionaryEntries=ldt;Ft.clearObjects=qdt;Ft.clearRules=jdt;Ft.clearSynonyms=Gdt;Ft.copyIndex=AQ;Ft.copyRules=cdt;Ft.copySettings=udt;Ft.copySynonyms=Adt;Ft.createBrowsablePromise=uQ;Ft.createMissingObjectIDError=Cye;Ft.createObjectNotFoundError=Iye;Ft.createSearchClient=idt;Ft.createValidUntilNotFoundError=wye;Ft.customRequest=fdt;Ft.deleteApiKey=pdt;Ft.deleteBy=Wdt;Ft.deleteDictionaryEntries=hdt;Ft.deleteIndex=Ydt;Ft.deleteObject=Kdt;Ft.deleteObjects=Dye;Ft.deleteRule=Jdt;Ft.deleteSynonym=Vdt;Ft.exists=zdt;Ft.findAnswers=Xdt;Ft.findObject=Zdt;Ft.generateSecuredApiKey=gdt;Ft.getApiKey=T2;Ft.getAppTask=Bye;Ft.getDictionarySettings=ddt;Ft.getLogs=mdt;Ft.getObject=$dt;Ft.getObjectPosition=emt;Ft.getObjects=tmt;Ft.getRule=rmt;Ft.getSecuredApiKeyRemainingValidity=ydt;Ft.getSettings=Sye;Ft.getSynonym=nmt;Ft.getTask=xye;Ft.getTopUserIDs=Edt;Ft.getUserID=Cdt;Ft.hasPendingMappings=Idt;Ft.initIndex=L2;Ft.listApiKeys=wdt;Ft.listClusters=Bdt;Ft.listIndices=vdt;Ft.listUserIDs=Ddt;Ft.moveIndex=Sdt;Ft.multipleBatch=xdt;Ft.multipleGetObjects=Pdt;Ft.multipleQueries=bdt;Ft.multipleSearchForFacetValues=Qdt;Ft.partialUpdateObject=imt;Ft.partialUpdateObjects=Pye;Ft.removeUserID=kdt;Ft.replaceAllObjects=smt;Ft.replaceAllRules=omt;Ft.replaceAllSynonyms=amt;Ft.replaceDictionaryEntries=Fdt;Ft.restoreApiKey=Rdt;Ft.saveDictionaryEntries=Tdt;Ft.saveObject=lmt;Ft.saveObjects=jH;Ft.saveRule=cmt;Ft.saveRules=GH;Ft.saveSynonym=umt;Ft.saveSynonyms=WH;Ft.search=bye;Ft.searchDictionaryEntries=Ldt;Ft.searchForFacetValues=Qye;Ft.searchRules=kye;Ft.searchSynonyms=Fye;Ft.searchUserIDs=Ndt;Ft.setDictionarySettings=Odt;Ft.setSettings=Amt;Ft.updateApiKey=Mdt;Ft.waitAppTask=IC;Ft.waitTask=zi});var Lye=U((WWt,Tye)=>{Tye.exports=Rye()});var Nye=U(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});function gmt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var dmt={Debug:1,Info:2,Error:3};hQ.LogLevelEnum=dmt;hQ.createNullLogger=gmt});var Mye=U((KWt,Oye)=>{Oye.exports=Nye()});var qye=U(YH=>{"use strict";Object.defineProperty(YH,"__esModule",{value:!0});var Uye=Ie("http"),_ye=Ie("https"),mmt=Ie("url"),Hye={keepAlive:!0},ymt=new Uye.Agent(Hye),Emt=new _ye.Agent(Hye);function Cmt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||ymt,n=r||t||Emt;return{send(u){return new Promise(A=>{let p=mmt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,C={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},w=(p.protocol==="https:"?_ye:Uye).request(C,R=>{let N=[];R.on("data",_=>{N=N.concat(_)}),R.on("end",()=>{clearTimeout(b),clearTimeout(E),A({status:R.statusCode||0,content:Buffer.concat(N).toString(),isTimedOut:!1})})}),v=(R,N)=>setTimeout(()=>{w.abort(),A({status:0,content:N,isTimedOut:!0})},R*1e3),b=v(u.connectTimeout,"Connection timeout"),E;w.on("error",R=>{clearTimeout(b),clearTimeout(E),A({status:0,content:R.message,isTimedOut:!1})}),w.once("response",()=>{clearTimeout(b),E=v(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&w.write(u.data),w.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}YH.createNodeHttpRequester=Cmt});var Gye=U((VWt,jye)=>{jye.exports=qye()});var Jye=U((zWt,Kye)=>{"use strict";var Wye=qme(),Imt=Wme(),wC=gye(),JH=P2(),KH=Eye(),Nt=Lye(),wmt=Mye(),Bmt=Gye(),vmt=k2();function Yye(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:Bmt.createNodeHttpRequester(),logger:wmt.createNullLogger(),responsesCache:Wye.createNullCache(),requestsCache:Wye.createNullCache(),hostsCache:Imt.createInMemoryCache(),userAgent:vmt.createUserAgent(JH.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>KH.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:KH.getPersonalizationStrategy,setPersonalizationStrategy:KH.setPersonalizationStrategy}});return Nt.createSearchClient({...a,methods:{search:Nt.multipleQueries,searchForFacetValues:Nt.multipleSearchForFacetValues,multipleBatch:Nt.multipleBatch,multipleGetObjects:Nt.multipleGetObjects,multipleQueries:Nt.multipleQueries,copyIndex:Nt.copyIndex,copySettings:Nt.copySettings,copyRules:Nt.copyRules,copySynonyms:Nt.copySynonyms,moveIndex:Nt.moveIndex,listIndices:Nt.listIndices,getLogs:Nt.getLogs,listClusters:Nt.listClusters,multipleSearchForFacetValues:Nt.multipleSearchForFacetValues,getApiKey:Nt.getApiKey,addApiKey:Nt.addApiKey,listApiKeys:Nt.listApiKeys,updateApiKey:Nt.updateApiKey,deleteApiKey:Nt.deleteApiKey,restoreApiKey:Nt.restoreApiKey,assignUserID:Nt.assignUserID,assignUserIDs:Nt.assignUserIDs,getUserID:Nt.getUserID,searchUserIDs:Nt.searchUserIDs,listUserIDs:Nt.listUserIDs,getTopUserIDs:Nt.getTopUserIDs,removeUserID:Nt.removeUserID,hasPendingMappings:Nt.hasPendingMappings,generateSecuredApiKey:Nt.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Nt.getSecuredApiKeyRemainingValidity,destroy:JH.destroy,clearDictionaryEntries:Nt.clearDictionaryEntries,deleteDictionaryEntries:Nt.deleteDictionaryEntries,getDictionarySettings:Nt.getDictionarySettings,getAppTask:Nt.getAppTask,replaceDictionaryEntries:Nt.replaceDictionaryEntries,saveDictionaryEntries:Nt.saveDictionaryEntries,searchDictionaryEntries:Nt.searchDictionaryEntries,setDictionarySettings:Nt.setDictionarySettings,waitAppTask:Nt.waitAppTask,customRequest:Nt.customRequest,initIndex:u=>A=>Nt.initIndex(u)(A,{methods:{batch:Nt.batch,delete:Nt.deleteIndex,findAnswers:Nt.findAnswers,getObject:Nt.getObject,getObjects:Nt.getObjects,saveObject:Nt.saveObject,saveObjects:Nt.saveObjects,search:Nt.search,searchForFacetValues:Nt.searchForFacetValues,waitTask:Nt.waitTask,setSettings:Nt.setSettings,getSettings:Nt.getSettings,partialUpdateObject:Nt.partialUpdateObject,partialUpdateObjects:Nt.partialUpdateObjects,deleteObject:Nt.deleteObject,deleteObjects:Nt.deleteObjects,deleteBy:Nt.deleteBy,clearObjects:Nt.clearObjects,browseObjects:Nt.browseObjects,getObjectPosition:Nt.getObjectPosition,findObject:Nt.findObject,exists:Nt.exists,saveSynonym:Nt.saveSynonym,saveSynonyms:Nt.saveSynonyms,getSynonym:Nt.getSynonym,searchSynonyms:Nt.searchSynonyms,browseSynonyms:Nt.browseSynonyms,deleteSynonym:Nt.deleteSynonym,clearSynonyms:Nt.clearSynonyms,replaceAllObjects:Nt.replaceAllObjects,replaceAllSynonyms:Nt.replaceAllSynonyms,searchRules:Nt.searchRules,getRule:Nt.getRule,deleteRule:Nt.deleteRule,saveRule:Nt.saveRule,saveRules:Nt.saveRules,replaceAllRules:Nt.replaceAllRules,browseRules:Nt.browseRules,clearRules:Nt.clearRules}}),initAnalytics:()=>u=>wC.createAnalyticsClient({...o,...u,methods:{addABTest:wC.addABTest,getABTest:wC.getABTest,getABTests:wC.getABTests,stopABTest:wC.stopABTest,deleteABTest:wC.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}Yye.version=JH.version;Kye.exports=Yye});var zH=U((XWt,VH)=>{var Vye=Jye();VH.exports=Vye;VH.exports.default=Vye});var $H=U(($Wt,Zye)=>{"use strict";var Xye=Object.getOwnPropertySymbols,Smt=Object.prototype.hasOwnProperty,xmt=Object.prototype.propertyIsEnumerable;function Pmt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function bmt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Zye.exports=bmt()?Object.assign:function(t,e){for(var r,o=Pmt(t),a,n=1;n{"use strict";var iq=$H(),ru=typeof Symbol=="function"&&Symbol.for,N2=ru?Symbol.for("react.element"):60103,Qmt=ru?Symbol.for("react.portal"):60106,kmt=ru?Symbol.for("react.fragment"):60107,Fmt=ru?Symbol.for("react.strict_mode"):60108,Rmt=ru?Symbol.for("react.profiler"):60114,Tmt=ru?Symbol.for("react.provider"):60109,Lmt=ru?Symbol.for("react.context"):60110,Nmt=ru?Symbol.for("react.forward_ref"):60112,Omt=ru?Symbol.for("react.suspense"):60113,Mmt=ru?Symbol.for("react.memo"):60115,Umt=ru?Symbol.for("react.lazy"):60116,$ye=typeof Symbol=="function"&&Symbol.iterator;function O2(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;rgQ.length&&gQ.push(t)}function tq(t,e,r,o){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var n=!1;if(t===null)n=!0;else switch(a){case"string":case"number":n=!0;break;case"object":switch(t.$$typeof){case N2:case Qmt:n=!0}}if(n)return r(o,t,e===""?"."+eq(t,0):e),1;if(n=0,e=e===""?".":e+":",Array.isArray(t))for(var u=0;u{"use strict";AEe.exports=uEe()});var uq=U((rYt,cq)=>{"use strict";var on=cq.exports;cq.exports.default=on;var kn="\x1B[",M2="\x1B]",vC="\x07",dQ=";",fEe=process.env.TERM_PROGRAM==="Apple_Terminal";on.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?kn+(t+1)+"G":kn+(e+1)+";"+(t+1)+"H"};on.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=kn+-t+"D":t>0&&(r+=kn+t+"C"),e<0?r+=kn+-e+"A":e>0&&(r+=kn+e+"B"),r};on.cursorUp=(t=1)=>kn+t+"A";on.cursorDown=(t=1)=>kn+t+"B";on.cursorForward=(t=1)=>kn+t+"C";on.cursorBackward=(t=1)=>kn+t+"D";on.cursorLeft=kn+"G";on.cursorSavePosition=fEe?"\x1B7":kn+"s";on.cursorRestorePosition=fEe?"\x1B8":kn+"u";on.cursorGetPosition=kn+"6n";on.cursorNextLine=kn+"E";on.cursorPrevLine=kn+"F";on.cursorHide=kn+"?25l";on.cursorShow=kn+"?25h";on.eraseLines=t=>{let e="";for(let r=0;r[M2,"8",dQ,dQ,e,vC,t,M2,"8",dQ,dQ,vC].join("");on.image=(t,e={})=>{let r=`${M2}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+vC};on.iTerm={setCwd:(t=process.cwd())=>`${M2}50;CurrentDir=${t}${vC}`,annotation:(t,e={})=>{let r=`${M2}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+vC}}});var hEe=U((nYt,Aq)=>{"use strict";var pEe=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};Aq.exports=pEe;Aq.exports.default=pEe});var dEe=U((iYt,yQ)=>{"use strict";var Wmt=hEe(),mQ=new WeakMap,gEe=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"",n=function(...u){if(mQ.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return Wmt(n,t),mQ.set(n,o),n};yQ.exports=gEe;yQ.exports.default=gEe;yQ.exports.callCount=t=>{if(!mQ.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return mQ.get(t)}});var mEe=U((sYt,EQ)=>{EQ.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&EQ.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&EQ.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var hq=U((oYt,xC)=>{var gi=global.process,im=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};im(gi)?(yEe=Ie("assert"),DC=mEe(),EEe=/^win/i.test(gi.platform),U2=Ie("events"),typeof U2!="function"&&(U2=U2.EventEmitter),gi.__signal_exit_emitter__?Ps=gi.__signal_exit_emitter__:(Ps=gi.__signal_exit_emitter__=new U2,Ps.count=0,Ps.emitted={}),Ps.infinite||(Ps.setMaxListeners(1/0),Ps.infinite=!0),xC.exports=function(t,e){if(!im(global.process))return function(){};yEe.equal(typeof t,"function","a callback must be provided for exit handler"),SC===!1&&fq();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){Ps.removeListener(r,t),Ps.listeners("exit").length===0&&Ps.listeners("afterexit").length===0&&CQ()};return Ps.on(r,t),o},CQ=function(){!SC||!im(global.process)||(SC=!1,DC.forEach(function(e){try{gi.removeListener(e,IQ[e])}catch{}}),gi.emit=wQ,gi.reallyExit=pq,Ps.count-=1)},xC.exports.unload=CQ,sm=function(e,r,o){Ps.emitted[e]||(Ps.emitted[e]=!0,Ps.emit(e,r,o))},IQ={},DC.forEach(function(t){IQ[t]=function(){if(!!im(global.process)){var r=gi.listeners(t);r.length===Ps.count&&(CQ(),sm("exit",null,t),sm("afterexit",null,t),EEe&&t==="SIGHUP"&&(t="SIGINT"),gi.kill(gi.pid,t))}}}),xC.exports.signals=function(){return DC},SC=!1,fq=function(){SC||!im(global.process)||(SC=!0,Ps.count+=1,DC=DC.filter(function(e){try{return gi.on(e,IQ[e]),!0}catch{return!1}}),gi.emit=IEe,gi.reallyExit=CEe)},xC.exports.load=fq,pq=gi.reallyExit,CEe=function(e){!im(global.process)||(gi.exitCode=e||0,sm("exit",gi.exitCode,null),sm("afterexit",gi.exitCode,null),pq.call(gi,gi.exitCode))},wQ=gi.emit,IEe=function(e,r){if(e==="exit"&&im(global.process)){r!==void 0&&(gi.exitCode=r);var o=wQ.apply(this,arguments);return sm("exit",gi.exitCode,null),sm("afterexit",gi.exitCode,null),o}else return wQ.apply(this,arguments)}):xC.exports=function(){return function(){}};var yEe,DC,EEe,U2,Ps,CQ,sm,IQ,SC,fq,pq,CEe,wQ,IEe});var BEe=U((aYt,wEe)=>{"use strict";var Ymt=dEe(),Kmt=hq();wEe.exports=Ymt(()=>{Kmt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var gq=U(PC=>{"use strict";var Jmt=BEe(),BQ=!1;PC.show=(t=process.stderr)=>{!t.isTTY||(BQ=!1,t.write("\x1B[?25h"))};PC.hide=(t=process.stderr)=>{!t.isTTY||(Jmt(),BQ=!0,t.write("\x1B[?25l"))};PC.toggle=(t,e)=>{t!==void 0&&(BQ=t),BQ?PC.show(e):PC.hide(e)}});var xEe=U(_2=>{"use strict";var SEe=_2&&_2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_2,"__esModule",{value:!0});var vEe=SEe(uq()),DEe=SEe(gq()),Vmt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&(DEe.default.hide(),a=!0);let A=u+` `;A!==o&&(o=A,t.write(vEe.default.eraseLines(r)+A),r=A.split(` `).length)};return n.clear=()=>{t.write(vEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||(DEe.default.show(),a=!1)},n};_2.default={create:Vmt}});var PEe=U((uYt,zmt)=>{zmt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var kEe=U(gl=>{"use strict";var QEe=PEe(),gA=process.env;Object.defineProperty(gl,"_vendors",{value:QEe.map(function(t){return t.constant})});gl.name=null;gl.isPR=null;QEe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return bEe(o)});if(gl[t.constant]=r,r)switch(gl.name=t.name,typeof t.pr){case"string":gl.isPR=!!gA[t.pr];break;case"object":"env"in t.pr?gl.isPR=t.pr.env in gA&&gA[t.pr.env]!==t.pr.ne:"any"in t.pr?gl.isPR=t.pr.any.some(function(o){return!!gA[o]}):gl.isPR=bEe(t.pr);break;default:gl.isPR=null}});gl.isCI=!!(gA.CI||gA.CONTINUOUS_INTEGRATION||gA.BUILD_NUMBER||gA.RUN_ID||gl.name);function bEe(t){return typeof t=="string"?!!gA[t]:Object.keys(t).every(function(e){return gA[e]===t[e]})}});var REe=U((fYt,FEe)=>{"use strict";FEe.exports=kEe().isCI});var LEe=U((pYt,TEe)=>{"use strict";var Xmt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};TEe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Xmt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var qEe=U(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});var QC,j2,PQ,bQ,wq;typeof window>"u"||typeof MessageChannel!="function"?(bC=null,dq=null,mq=function(){if(bC!==null)try{var t=vn.unstable_now();bC(!0,t),bC=null}catch(e){throw setTimeout(mq,0),e}},NEe=Date.now(),vn.unstable_now=function(){return Date.now()-NEe},QC=function(t){bC!==null?setTimeout(QC,0,t):(bC=t,setTimeout(mq,0))},j2=function(t,e){dq=setTimeout(t,e)},PQ=function(){clearTimeout(dq)},bQ=function(){return!1},wq=vn.unstable_forceFrameRate=function(){}):(vQ=window.performance,yq=window.Date,OEe=window.setTimeout,MEe=window.clearTimeout,typeof console<"u"&&(UEe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof UEe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof vQ=="object"&&typeof vQ.now=="function"?vn.unstable_now=function(){return vQ.now()}:(_Ee=yq.now(),vn.unstable_now=function(){return yq.now()-_Ee}),H2=!1,q2=null,DQ=-1,Eq=5,Cq=0,bQ=function(){return vn.unstable_now()>=Cq},wq=function(){},vn.unstable_forceFrameRate=function(t){0>t||125xQ(u,r))p!==void 0&&0>xQ(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>xQ(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function xQ(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var nu=[],gh=[],Zmt=1,$o=null,Ro=3,kQ=!1,om=!1,G2=!1;function FQ(t){for(var e=oc(gh);e!==null;){if(e.callback===null)QQ(gh);else if(e.startTime<=t)QQ(gh),e.sortIndex=e.expirationTime,Bq(nu,e);else break;e=oc(gh)}}function vq(t){if(G2=!1,FQ(t),!om)if(oc(nu)!==null)om=!0,QC(Dq);else{var e=oc(gh);e!==null&&j2(vq,e.startTime-t)}}function Dq(t,e){om=!1,G2&&(G2=!1,PQ()),kQ=!0;var r=Ro;try{for(FQ(e),$o=oc(nu);$o!==null&&(!($o.expirationTime>e)||t&&!bQ());){var o=$o.callback;if(o!==null){$o.callback=null,Ro=$o.priorityLevel;var a=o($o.expirationTime<=e);e=vn.unstable_now(),typeof a=="function"?$o.callback=a:$o===oc(nu)&&QQ(nu),FQ(e)}else QQ(nu);$o=oc(nu)}if($o!==null)var n=!0;else{var u=oc(gh);u!==null&&j2(vq,u.startTime-e),n=!1}return n}finally{$o=null,Ro=r,kQ=!1}}function HEe(t){switch(t){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var $mt=wq;vn.unstable_ImmediatePriority=1;vn.unstable_UserBlockingPriority=2;vn.unstable_NormalPriority=3;vn.unstable_IdlePriority=5;vn.unstable_LowPriority=4;vn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=Ro;Ro=t;try{return e()}finally{Ro=r}};vn.unstable_next=function(t){switch(Ro){case 1:case 2:case 3:var e=3;break;default:e=Ro}var r=Ro;Ro=e;try{return t()}finally{Ro=r}};vn.unstable_scheduleCallback=function(t,e,r){var o=vn.unstable_now();if(typeof r=="object"&&r!==null){var a=r.delay;a=typeof a=="number"&&0o?(t.sortIndex=a,Bq(gh,t),oc(nu)===null&&t===oc(gh)&&(G2?PQ():G2=!0,j2(vq,a-o))):(t.sortIndex=r,Bq(nu,t),om||kQ||(om=!0,QC(Dq))),t};vn.unstable_cancelCallback=function(t){t.callback=null};vn.unstable_wrapCallback=function(t){var e=Ro;return function(){var r=Ro;Ro=e;try{return t.apply(this,arguments)}finally{Ro=r}}};vn.unstable_getCurrentPriorityLevel=function(){return Ro};vn.unstable_shouldYield=function(){var t=vn.unstable_now();FQ(t);var e=oc(nu);return e!==$o&&$o!==null&&e!==null&&e.callback!==null&&e.startTime<=t&&e.expirationTime<$o.expirationTime||bQ()};vn.unstable_requestPaint=$mt;vn.unstable_continueExecution=function(){om||kQ||(om=!0,QC(Dq))};vn.unstable_pauseExecution=function(){};vn.unstable_getFirstCallbackNode=function(){return oc(nu)};vn.unstable_Profiling=null});var Sq=U((gYt,jEe)=>{"use strict";jEe.exports=qEe()});var GEe=U((dYt,W2)=>{W2.exports=function t(e){"use strict";var r=$H(),o=en(),a=Sq();function n(S){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+S,T=1;Tio||(S.current=yl[io],yl[io]=null,io--)}function Fn(S,D){io++,yl[io]=S.current,S.current=D}var Fi={},Rn={current:Fi},Ui={current:!1},Zt=Fi;function Ri(S,D){var T=S.type.contextTypes;if(!T)return Fi;var q=S.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var W={},ce;for(ce in T)W[ce]=D[ce];return q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=D,S.__reactInternalMemoizedMaskedChildContext=W),W}function Zn(S){return S=S.childContextTypes,S!=null}function Oa(S){_e(Ui,S),_e(Rn,S)}function $t(S){_e(Ui,S),_e(Rn,S)}function fc(S,D,T){if(Rn.current!==Fi)throw Error(n(168));Fn(Rn,D,S),Fn(Ui,T,S)}function du(S,D,T){var q=S.stateNode;if(S=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var W in q)if(!(W in S))throw Error(n(108,ge(D)||"Unknown",W));return r({},T,{},q)}function pc(S){var D=S.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Fi,Zt=Rn.current,Fn(Rn,D,S),Fn(Ui,Ui.current,S),!0}function El(S,D,T){var q=S.stateNode;if(!q)throw Error(n(169));T?(D=du(S,D,Zt),q.__reactInternalMemoizedMergedChildContext=D,_e(Ui,S),_e(Rn,S),Fn(Rn,D,S)):_e(Ui,S),Fn(Ui,T,S)}var SA=a.unstable_runWithPriority,mu=a.unstable_scheduleCallback,Ce=a.unstable_cancelCallback,Rt=a.unstable_shouldYield,hc=a.unstable_requestPaint,_i=a.unstable_now,yu=a.unstable_getCurrentPriorityLevel,qt=a.unstable_ImmediatePriority,Cl=a.unstable_UserBlockingPriority,xA=a.unstable_NormalPriority,cp=a.unstable_LowPriority,gc=a.unstable_IdlePriority,PA={},Dn=hc!==void 0?hc:function(){},ui=null,dc=null,bA=!1,ta=_i(),Hi=1e4>ta?_i:function(){return _i()-ta};function No(){switch(yu()){case qt:return 99;case Cl:return 98;case xA:return 97;case cp:return 96;case gc:return 95;default:throw Error(n(332))}}function $e(S){switch(S){case 99:return qt;case 98:return Cl;case 97:return xA;case 96:return cp;case 95:return gc;default:throw Error(n(332))}}function so(S,D){return S=$e(S),SA(S,D)}function Il(S,D,T){return S=$e(S),mu(S,D,T)}function Eu(S){return ui===null?(ui=[S],dc=mu(qt,Cu)):ui.push(S),PA}function qi(){if(dc!==null){var S=dc;dc=null,Ce(S)}Cu()}function Cu(){if(!bA&&ui!==null){bA=!0;var S=0;try{var D=ui;so(99,function(){for(;S=D&&(Mo=!0),S.firstContext=null)}function Ns(S,D){if(na!==S&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(na=S,D=1073741823),D={context:S,observedBits:D,next:null},Rs===null){if(oo===null)throw Error(n(308));Rs=D,oo.dependencies={expirationTime:0,firstContext:D,responders:null}}else Rs=Rs.next=D;return P?S._currentValue:S._currentValue2}var ao=!1;function Wn(S){return{baseState:S,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function qn(S){return{baseState:S.baseState,firstUpdate:S.firstUpdate,lastUpdate:S.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function $i(S,D){return{expirationTime:S,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function es(S,D){S.lastUpdate===null?S.firstUpdate=S.lastUpdate=D:(S.lastUpdate.next=D,S.lastUpdate=D)}function mi(S,D){var T=S.alternate;if(T===null){var q=S.updateQueue,W=null;q===null&&(q=S.updateQueue=Wn(S.memoizedState))}else q=S.updateQueue,W=T.updateQueue,q===null?W===null?(q=S.updateQueue=Wn(S.memoizedState),W=T.updateQueue=Wn(T.memoizedState)):q=S.updateQueue=qn(W):W===null&&(W=T.updateQueue=qn(q));W===null||q===W?es(q,D):q.lastUpdate===null||W.lastUpdate===null?(es(q,D),es(W,D)):(es(q,D),W.lastUpdate=D)}function Ua(S,D){var T=S.updateQueue;T=T===null?S.updateQueue=Wn(S.memoizedState):sa(S,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function sa(S,D){var T=S.alternate;return T!==null&&D===T.updateQueue&&(D=S.updateQueue=qn(D)),D}function ee(S,D,T,q,W,ce){switch(T.tag){case 1:return S=T.payload,typeof S=="function"?S.call(ce,q,W):S;case 3:S.effectTag=S.effectTag&-4097|64;case 0:if(S=T.payload,W=typeof S=="function"?S.call(ce,q,W):S,W==null)break;return r({},q,W);case 2:ao=!0}return q}function we(S,D,T,q,W){ao=!1,D=sa(S,D);for(var ce=D.baseState,Se=null,It=0,Et=D.firstUpdate,Pt=ce;Et!==null;){var Lr=Et.expirationTime;Lrwn?(ri=Sr,Sr=null):ri=Sr.sibling;var Xr=fi(rt,Sr,ft[wn],jt);if(Xr===null){Sr===null&&(Sr=ri);break}S&&Sr&&Xr.alternate===null&&D(rt,Sr),Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr,Sr=ri}if(wn===ft.length)return T(rt,Sr),Er;if(Sr===null){for(;wnwn?(ri=Sr,Sr=null):ri=Sr.sibling;var fo=fi(rt,Sr,Xr.value,jt);if(fo===null){Sr===null&&(Sr=ri);break}S&&Sr&&fo.alternate===null&&D(rt,Sr),Ve=ce(fo,Ve,wn),In===null?Er=fo:In.sibling=fo,In=fo,Sr=ri}if(Xr.done)return T(rt,Sr),Er;if(Sr===null){for(;!Xr.done;wn++,Xr=ft.next())Xr=is(rt,Xr.value,jt),Xr!==null&&(Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return Er}for(Sr=q(rt,Sr);!Xr.done;wn++,Xr=ft.next())Xr=Ao(Sr,rt,wn,Xr.value,jt),Xr!==null&&(S&&Xr.alternate!==null&&Sr.delete(Xr.key===null?wn:Xr.key),Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return S&&Sr.forEach(function(yF){return D(rt,yF)}),Er}return function(rt,Ve,ft,jt){var Er=typeof ft=="object"&&ft!==null&&ft.type===C&&ft.key===null;Er&&(ft=ft.props.children);var In=typeof ft=="object"&&ft!==null;if(In)switch(ft.$$typeof){case p:e:{for(In=ft.key,Er=Ve;Er!==null;){if(Er.key===In)if(Er.tag===7?ft.type===C:Er.elementType===ft.type){T(rt,Er.sibling),Ve=W(Er,ft.type===C?ft.props.children:ft.props,jt),Ve.ref=Yn(rt,Er,ft),Ve.return=rt,rt=Ve;break e}else{T(rt,Er);break}else D(rt,Er);Er=Er.sibling}ft.type===C?(Ve=Fu(ft.props.children,rt.mode,jt,ft.key),Ve.return=rt,rt=Ve):(jt=_m(ft.type,ft.key,ft.props,null,rt.mode,jt),jt.ref=Yn(rt,Ve,ft),jt.return=rt,rt=jt)}return Se(rt);case h:e:{for(Er=ft.key;Ve!==null;){if(Ve.key===Er)if(Ve.tag===4&&Ve.stateNode.containerInfo===ft.containerInfo&&Ve.stateNode.implementation===ft.implementation){T(rt,Ve.sibling),Ve=W(Ve,ft.children||[],jt),Ve.return=rt,rt=Ve;break e}else{T(rt,Ve);break}else D(rt,Ve);Ve=Ve.sibling}Ve=II(ft,rt.mode,jt),Ve.return=rt,rt=Ve}return Se(rt)}if(typeof ft=="string"||typeof ft=="number")return ft=""+ft,Ve!==null&&Ve.tag===6?(T(rt,Ve.sibling),Ve=W(Ve,ft,jt),Ve.return=rt,rt=Ve):(T(rt,Ve),Ve=CI(ft,rt.mode,jt),Ve.return=rt,rt=Ve),Se(rt);if(Ti(ft))return KA(rt,Ve,ft,jt);if(he(ft))return _o(rt,Ve,ft,jt);if(In&&Ha(rt,ft),typeof ft>"u"&&!Er)switch(rt.tag){case 1:case 0:throw rt=rt.type,Error(n(152,rt.displayName||rt.name||"Component"))}return T(rt,Ve)}}var yi=oa(!0),aa=oa(!1),qa={},lo={current:qa},kA={current:qa},yc={current:qa};function la(S){if(S===qa)throw Error(n(174));return S}function eg(S,D){Fn(yc,D,S),Fn(kA,S,S),Fn(lo,qa,S),D=ne(D),_e(lo,S),Fn(lo,D,S)}function Ec(S){_e(lo,S),_e(kA,S),_e(yc,S)}function Dm(S){var D=la(yc.current),T=la(lo.current);D=Z(T,S.type,D),T!==D&&(Fn(kA,S,S),Fn(lo,D,S))}function tg(S){kA.current===S&&(_e(lo,S),_e(kA,S))}var Kn={current:0};function up(S){for(var D=S;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Qs(T)||ro(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if((D.effectTag&64)!==0)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break;for(;D.sibling===null;){if(D.return===null||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function rg(S,D){return{responder:S,props:D}}var FA=u.ReactCurrentDispatcher,Os=u.ReactCurrentBatchConfig,Iu=0,ja=null,ji=null,ca=null,wu=null,ms=null,Cc=null,Ic=0,G=null,Dt=0,wl=!1,Si=null,wc=0;function lt(){throw Error(n(321))}function Bu(S,D){if(D===null)return!1;for(var T=0;TIc&&(Ic=Lr,Um(Ic))):(gI(Lr,Et.suspenseConfig),ce=Et.eagerReducer===S?Et.eagerState:S(ce,Et.action)),Se=Et,Et=Et.next}while(Et!==null&&Et!==q);Pt||(It=Se,W=ce),ds(ce,D.memoizedState)||(Mo=!0),D.memoizedState=ce,D.baseUpdate=It,D.baseState=W,T.lastRenderedState=ce}return[D.memoizedState,T.dispatch]}function ig(S){var D=RA();return typeof S=="function"&&(S=S()),D.memoizedState=D.baseState=S,S=D.queue={last:null,dispatch:null,lastRenderedReducer:yr,lastRenderedState:S},S=S.dispatch=cg.bind(null,ja,S),[D.memoizedState,S]}function sg(S){return ys(yr,S)}function og(S,D,T,q){return S={tag:S,create:D,destroy:T,deps:q,next:null},G===null?(G={lastEffect:null},G.lastEffect=S.next=S):(D=G.lastEffect,D===null?G.lastEffect=S.next=S:(T=D.next,D.next=S,S.next=T,G.lastEffect=S)),S}function fp(S,D,T,q){var W=RA();Dt|=S,W.memoizedState=og(D,T,void 0,q===void 0?null:q)}function Bc(S,D,T,q){var W=Ap();q=q===void 0?null:q;var ce=void 0;if(ji!==null){var Se=ji.memoizedState;if(ce=Se.destroy,q!==null&&Bu(q,Se.deps)){og(0,T,ce,q);return}}Dt|=S,W.memoizedState=og(D,T,ce,q)}function mt(S,D){return fp(516,192,S,D)}function Sm(S,D){return Bc(516,192,S,D)}function ag(S,D){if(typeof D=="function")return S=S(),D(S),function(){D(null)};if(D!=null)return S=S(),D.current=S,function(){D.current=null}}function lg(){}function vu(S,D){return RA().memoizedState=[S,D===void 0?null:D],S}function xm(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(T.memoizedState=[S,D],S)}function cg(S,D,T){if(!(25>wc))throw Error(n(301));var q=S.alternate;if(S===ja||q!==null&&q===ja)if(wl=!0,S={expirationTime:Iu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},Si===null&&(Si=new Map),T=Si.get(D),T===void 0)Si.set(D,S);else{for(D=T;D.next!==null;)D=D.next;D.next=S}else{var W=ha(),ce=Pe.suspense;W=HA(W,S,ce),ce={expirationTime:W,suspenseConfig:ce,action:T,eagerReducer:null,eagerState:null,next:null};var Se=D.last;if(Se===null)ce.next=ce;else{var It=Se.next;It!==null&&(ce.next=It),Se.next=ce}if(D.last=ce,S.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var Et=D.lastRenderedState,Pt=q(Et,T);if(ce.eagerReducer=q,ce.eagerState=Pt,ds(Pt,Et))return}catch{}finally{}Pc(S,W)}}var Du={readContext:Ns,useCallback:lt,useContext:lt,useEffect:lt,useImperativeHandle:lt,useLayoutEffect:lt,useMemo:lt,useReducer:lt,useRef:lt,useState:lt,useDebugValue:lt,useResponder:lt,useDeferredValue:lt,useTransition:lt},aI={readContext:Ns,useCallback:vu,useContext:Ns,useEffect:mt,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,fp(4,36,ag.bind(null,D,S),T)},useLayoutEffect:function(S,D){return fp(4,36,S,D)},useMemo:function(S,D){var T=RA();return D=D===void 0?null:D,S=S(),T.memoizedState=[S,D],S},useReducer:function(S,D,T){var q=RA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,S=q.queue={last:null,dispatch:null,lastRenderedReducer:S,lastRenderedState:D},S=S.dispatch=cg.bind(null,ja,S),[q.memoizedState,S]},useRef:function(S){var D=RA();return S={current:S},D.memoizedState=S},useState:ig,useDebugValue:lg,useResponder:rg,useDeferredValue:function(S,D){var T=ig(S),q=T[0],W=T[1];return mt(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=ig(!1),T=D[0],q=D[1];return[vu(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},Pm={readContext:Ns,useCallback:xm,useContext:Ns,useEffect:Sm,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,Bc(4,36,ag.bind(null,D,S),T)},useLayoutEffect:function(S,D){return Bc(4,36,S,D)},useMemo:function(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(S=S(),T.memoizedState=[S,D],S)},useReducer:ys,useRef:function(){return Ap().memoizedState},useState:sg,useDebugValue:lg,useResponder:rg,useDeferredValue:function(S,D){var T=sg(S),q=T[0],W=T[1];return Sm(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=sg(!1),T=D[0],q=D[1];return[xm(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},ua=null,vc=null,Bl=!1;function Su(S,D){var T=Sl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=S,T.effectTag=8,S.lastEffect!==null?(S.lastEffect.nextEffect=T,S.lastEffect=T):S.firstEffect=S.lastEffect=T}function ug(S,D){switch(S.tag){case 5:return D=to(D,S.type,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 6:return D=Di(D,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function TA(S){if(Bl){var D=vc;if(D){var T=D;if(!ug(S,D)){if(D=Ac(T),!D||!ug(S,D)){S.effectTag=S.effectTag&-1025|2,Bl=!1,ua=S;return}Su(ua,T)}ua=S,vc=gu(D)}else S.effectTag=S.effectTag&-1025|2,Bl=!1,ua=S}}function pp(S){for(S=S.return;S!==null&&S.tag!==5&&S.tag!==3&&S.tag!==13;)S=S.return;ua=S}function Ga(S){if(!y||S!==ua)return!1;if(!Bl)return pp(S),Bl=!0,!1;var D=S.type;if(S.tag!==5||D!=="head"&&D!=="body"&&!Te(D,S.memoizedProps))for(D=vc;D;)Su(S,D),D=Ac(D);if(pp(S),S.tag===13){if(!y)throw Error(n(316));if(S=S.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));vc=ks(S)}else vc=ua?Ac(S.stateNode):null;return!0}function Ag(){y&&(vc=ua=null,Bl=!1)}var hp=u.ReactCurrentOwner,Mo=!1;function Es(S,D,T,q){D.child=S===null?aa(D,null,T,q):yi(D,S.child,T,q)}function Ei(S,D,T,q,W){T=T.render;var ce=D.ref;return Ls(D,W),q=ng(S,D,T,q,ce,W),S!==null&&!Mo?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=W&&(S.expirationTime=0),ei(S,D,W)):(D.effectTag|=1,Es(S,D,q,W),D.child)}function bm(S,D,T,q,W,ce){if(S===null){var Se=T.type;return typeof Se=="function"&&!EI(Se)&&Se.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=Se,Qm(S,D,Se,q,W,ce)):(S=_m(T.type,null,q,null,D.mode,ce),S.ref=D.ref,S.return=D,D.child=S)}return Se=S.child,WD)&&_A.set(S,D)))}}function Eg(S,D){S.expirationTimeS?D:S)}function uo(S){if(S.lastExpiredTime!==0)S.callbackExpirationTime=1073741823,S.callbackPriority=99,S.callbackNode=Eu(hI.bind(null,S));else{var D=Mm(S),T=S.callbackNode;if(D===0)T!==null&&(S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90);else{var q=ha();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var W=S.callbackPriority;if(S.callbackExpirationTime===D&&W>=q)return;T!==PA&&Ce(T)}S.callbackExpirationTime=D,S.callbackPriority=q,D=D===1073741823?Eu(hI.bind(null,S)):Il(q,xv.bind(null,S),{timeout:10*(1073741821-D)-Hi()}),S.callbackNode=D}}}function xv(S,D){if(Om=0,D)return D=ha(),Hm(S,D),uo(S),null;var T=Mm(S);if(T!==0){if(D=S.callbackNode,(pr&(rs|Ms))!==gn)throw Error(n(327));if(Ip(),S===Ai&&T===ns||Qu(S,T),Fr!==null){var q=pr;pr|=rs;var W=jA(S);do try{aF();break}catch(It){qA(S,It)}while(1);if(ia(),pr=q,yp.current=W,Gi===Rm)throw D=Tm,Qu(S,T),YA(S,T),uo(S),D;if(Fr===null)switch(W=S.finishedWork=S.current.alternate,S.finishedExpirationTime=T,q=Gi,Ai=null,q){case xu:case Rm:throw Error(n(345));case Ci:Hm(S,2=T){S.lastPingedTime=T,Qu(S,T);break}}if(ce=Mm(S),ce!==0&&ce!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}S.timeoutHandle=je(ku.bind(null,S),W);break}ku(S);break;case Dl:if(YA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=dI(W)),MA&&(W=S.lastPingedTime,W===0||W>=T)){S.lastPingedTime=T,Qu(S,T);break}if(W=Mm(S),W!==0&&W!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}if(OA!==1073741823?q=10*(1073741821-OA)-Hi():Ka===1073741823?q=0:(q=10*(1073741821-Ka)-5e3,W=Hi(),T=10*(1073741821-T)-W,q=W-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*cI(q/1960))-q,T=q?q=0:(W=Se.busyDelayMs|0,ce=Hi()-(10*(1073741821-ce)-(Se.timeoutMs|0||5e3)),q=ce<=W?0:W+q-ce),10io||(S.current=yl[io],yl[io]=null,io--)}function Fn(S,D){io++,yl[io]=S.current,S.current=D}var Fi={},Rn={current:Fi},Ui={current:!1},Zt=Fi;function Ri(S,D){var T=S.type.contextTypes;if(!T)return Fi;var q=S.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var W={},ce;for(ce in T)W[ce]=D[ce];return q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=D,S.__reactInternalMemoizedMaskedChildContext=W),W}function Zn(S){return S=S.childContextTypes,S!=null}function Oa(S){_e(Ui,S),_e(Rn,S)}function $t(S){_e(Ui,S),_e(Rn,S)}function fc(S,D,T){if(Rn.current!==Fi)throw Error(n(168));Fn(Rn,D,S),Fn(Ui,T,S)}function du(S,D,T){var q=S.stateNode;if(S=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var W in q)if(!(W in S))throw Error(n(108,ge(D)||"Unknown",W));return r({},T,{},q)}function pc(S){var D=S.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Fi,Zt=Rn.current,Fn(Rn,D,S),Fn(Ui,Ui.current,S),!0}function El(S,D,T){var q=S.stateNode;if(!q)throw Error(n(169));T?(D=du(S,D,Zt),q.__reactInternalMemoizedMergedChildContext=D,_e(Ui,S),_e(Rn,S),Fn(Rn,D,S)):_e(Ui,S),Fn(Ui,T,S)}var SA=a.unstable_runWithPriority,mu=a.unstable_scheduleCallback,Ce=a.unstable_cancelCallback,Rt=a.unstable_shouldYield,hc=a.unstable_requestPaint,_i=a.unstable_now,yu=a.unstable_getCurrentPriorityLevel,qt=a.unstable_ImmediatePriority,Cl=a.unstable_UserBlockingPriority,xA=a.unstable_NormalPriority,cp=a.unstable_LowPriority,gc=a.unstable_IdlePriority,PA={},Dn=hc!==void 0?hc:function(){},ui=null,dc=null,bA=!1,ta=_i(),Hi=1e4>ta?_i:function(){return _i()-ta};function No(){switch(yu()){case qt:return 99;case Cl:return 98;case xA:return 97;case cp:return 96;case gc:return 95;default:throw Error(n(332))}}function $e(S){switch(S){case 99:return qt;case 98:return Cl;case 97:return xA;case 96:return cp;case 95:return gc;default:throw Error(n(332))}}function so(S,D){return S=$e(S),SA(S,D)}function Il(S,D,T){return S=$e(S),mu(S,D,T)}function Eu(S){return ui===null?(ui=[S],dc=mu(qt,Cu)):ui.push(S),PA}function qi(){if(dc!==null){var S=dc;dc=null,Ce(S)}Cu()}function Cu(){if(!bA&&ui!==null){bA=!0;var S=0;try{var D=ui;so(99,function(){for(;S=D&&(Mo=!0),S.firstContext=null)}function Ns(S,D){if(na!==S&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(na=S,D=1073741823),D={context:S,observedBits:D,next:null},Rs===null){if(oo===null)throw Error(n(308));Rs=D,oo.dependencies={expirationTime:0,firstContext:D,responders:null}}else Rs=Rs.next=D;return P?S._currentValue:S._currentValue2}var ao=!1;function Wn(S){return{baseState:S,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function qn(S){return{baseState:S.baseState,firstUpdate:S.firstUpdate,lastUpdate:S.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function $i(S,D){return{expirationTime:S,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function es(S,D){S.lastUpdate===null?S.firstUpdate=S.lastUpdate=D:(S.lastUpdate.next=D,S.lastUpdate=D)}function mi(S,D){var T=S.alternate;if(T===null){var q=S.updateQueue,W=null;q===null&&(q=S.updateQueue=Wn(S.memoizedState))}else q=S.updateQueue,W=T.updateQueue,q===null?W===null?(q=S.updateQueue=Wn(S.memoizedState),W=T.updateQueue=Wn(T.memoizedState)):q=S.updateQueue=qn(W):W===null&&(W=T.updateQueue=qn(q));W===null||q===W?es(q,D):q.lastUpdate===null||W.lastUpdate===null?(es(q,D),es(W,D)):(es(q,D),W.lastUpdate=D)}function Ua(S,D){var T=S.updateQueue;T=T===null?S.updateQueue=Wn(S.memoizedState):sa(S,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function sa(S,D){var T=S.alternate;return T!==null&&D===T.updateQueue&&(D=S.updateQueue=qn(D)),D}function ee(S,D,T,q,W,ce){switch(T.tag){case 1:return S=T.payload,typeof S=="function"?S.call(ce,q,W):S;case 3:S.effectTag=S.effectTag&-4097|64;case 0:if(S=T.payload,W=typeof S=="function"?S.call(ce,q,W):S,W==null)break;return r({},q,W);case 2:ao=!0}return q}function we(S,D,T,q,W){ao=!1,D=sa(S,D);for(var ce=D.baseState,Se=null,It=0,Et=D.firstUpdate,Pt=ce;Et!==null;){var Lr=Et.expirationTime;Lrwn?(ri=Sr,Sr=null):ri=Sr.sibling;var Xr=fi(rt,Sr,ft[wn],jt);if(Xr===null){Sr===null&&(Sr=ri);break}S&&Sr&&Xr.alternate===null&&D(rt,Sr),Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr,Sr=ri}if(wn===ft.length)return T(rt,Sr),Er;if(Sr===null){for(;wnwn?(ri=Sr,Sr=null):ri=Sr.sibling;var fo=fi(rt,Sr,Xr.value,jt);if(fo===null){Sr===null&&(Sr=ri);break}S&&Sr&&fo.alternate===null&&D(rt,Sr),Ve=ce(fo,Ve,wn),In===null?Er=fo:In.sibling=fo,In=fo,Sr=ri}if(Xr.done)return T(rt,Sr),Er;if(Sr===null){for(;!Xr.done;wn++,Xr=ft.next())Xr=is(rt,Xr.value,jt),Xr!==null&&(Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return Er}for(Sr=q(rt,Sr);!Xr.done;wn++,Xr=ft.next())Xr=Ao(Sr,rt,wn,Xr.value,jt),Xr!==null&&(S&&Xr.alternate!==null&&Sr.delete(Xr.key===null?wn:Xr.key),Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return S&&Sr.forEach(function(yF){return D(rt,yF)}),Er}return function(rt,Ve,ft,jt){var Er=typeof ft=="object"&&ft!==null&&ft.type===C&&ft.key===null;Er&&(ft=ft.props.children);var In=typeof ft=="object"&&ft!==null;if(In)switch(ft.$$typeof){case p:e:{for(In=ft.key,Er=Ve;Er!==null;){if(Er.key===In)if(Er.tag===7?ft.type===C:Er.elementType===ft.type){T(rt,Er.sibling),Ve=W(Er,ft.type===C?ft.props.children:ft.props,jt),Ve.ref=Yn(rt,Er,ft),Ve.return=rt,rt=Ve;break e}else{T(rt,Er);break}else D(rt,Er);Er=Er.sibling}ft.type===C?(Ve=Fu(ft.props.children,rt.mode,jt,ft.key),Ve.return=rt,rt=Ve):(jt=_m(ft.type,ft.key,ft.props,null,rt.mode,jt),jt.ref=Yn(rt,Ve,ft),jt.return=rt,rt=jt)}return Se(rt);case h:e:{for(Er=ft.key;Ve!==null;){if(Ve.key===Er)if(Ve.tag===4&&Ve.stateNode.containerInfo===ft.containerInfo&&Ve.stateNode.implementation===ft.implementation){T(rt,Ve.sibling),Ve=W(Ve,ft.children||[],jt),Ve.return=rt,rt=Ve;break e}else{T(rt,Ve);break}else D(rt,Ve);Ve=Ve.sibling}Ve=II(ft,rt.mode,jt),Ve.return=rt,rt=Ve}return Se(rt)}if(typeof ft=="string"||typeof ft=="number")return ft=""+ft,Ve!==null&&Ve.tag===6?(T(rt,Ve.sibling),Ve=W(Ve,ft,jt),Ve.return=rt,rt=Ve):(T(rt,Ve),Ve=CI(ft,rt.mode,jt),Ve.return=rt,rt=Ve),Se(rt);if(Ti(ft))return KA(rt,Ve,ft,jt);if(he(ft))return _o(rt,Ve,ft,jt);if(In&&Ha(rt,ft),typeof ft>"u"&&!Er)switch(rt.tag){case 1:case 0:throw rt=rt.type,Error(n(152,rt.displayName||rt.name||"Component"))}return T(rt,Ve)}}var yi=oa(!0),aa=oa(!1),qa={},lo={current:qa},kA={current:qa},yc={current:qa};function la(S){if(S===qa)throw Error(n(174));return S}function eg(S,D){Fn(yc,D,S),Fn(kA,S,S),Fn(lo,qa,S),D=ne(D),_e(lo,S),Fn(lo,D,S)}function Ec(S){_e(lo,S),_e(kA,S),_e(yc,S)}function Dm(S){var D=la(yc.current),T=la(lo.current);D=Z(T,S.type,D),T!==D&&(Fn(kA,S,S),Fn(lo,D,S))}function tg(S){kA.current===S&&(_e(lo,S),_e(kA,S))}var Kn={current:0};function up(S){for(var D=S;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Qs(T)||ro(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if((D.effectTag&64)!==0)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break;for(;D.sibling===null;){if(D.return===null||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function rg(S,D){return{responder:S,props:D}}var FA=u.ReactCurrentDispatcher,Os=u.ReactCurrentBatchConfig,Iu=0,ja=null,ji=null,ca=null,wu=null,ms=null,Cc=null,Ic=0,G=null,Dt=0,wl=!1,Si=null,wc=0;function lt(){throw Error(n(321))}function Bu(S,D){if(D===null)return!1;for(var T=0;TIc&&(Ic=Lr,Um(Ic))):(gI(Lr,Et.suspenseConfig),ce=Et.eagerReducer===S?Et.eagerState:S(ce,Et.action)),Se=Et,Et=Et.next}while(Et!==null&&Et!==q);Pt||(It=Se,W=ce),ds(ce,D.memoizedState)||(Mo=!0),D.memoizedState=ce,D.baseUpdate=It,D.baseState=W,T.lastRenderedState=ce}return[D.memoizedState,T.dispatch]}function ig(S){var D=RA();return typeof S=="function"&&(S=S()),D.memoizedState=D.baseState=S,S=D.queue={last:null,dispatch:null,lastRenderedReducer:yr,lastRenderedState:S},S=S.dispatch=cg.bind(null,ja,S),[D.memoizedState,S]}function sg(S){return ys(yr,S)}function og(S,D,T,q){return S={tag:S,create:D,destroy:T,deps:q,next:null},G===null?(G={lastEffect:null},G.lastEffect=S.next=S):(D=G.lastEffect,D===null?G.lastEffect=S.next=S:(T=D.next,D.next=S,S.next=T,G.lastEffect=S)),S}function fp(S,D,T,q){var W=RA();Dt|=S,W.memoizedState=og(D,T,void 0,q===void 0?null:q)}function Bc(S,D,T,q){var W=Ap();q=q===void 0?null:q;var ce=void 0;if(ji!==null){var Se=ji.memoizedState;if(ce=Se.destroy,q!==null&&Bu(q,Se.deps)){og(0,T,ce,q);return}}Dt|=S,W.memoizedState=og(D,T,ce,q)}function mt(S,D){return fp(516,192,S,D)}function Sm(S,D){return Bc(516,192,S,D)}function ag(S,D){if(typeof D=="function")return S=S(),D(S),function(){D(null)};if(D!=null)return S=S(),D.current=S,function(){D.current=null}}function lg(){}function vu(S,D){return RA().memoizedState=[S,D===void 0?null:D],S}function xm(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(T.memoizedState=[S,D],S)}function cg(S,D,T){if(!(25>wc))throw Error(n(301));var q=S.alternate;if(S===ja||q!==null&&q===ja)if(wl=!0,S={expirationTime:Iu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},Si===null&&(Si=new Map),T=Si.get(D),T===void 0)Si.set(D,S);else{for(D=T;D.next!==null;)D=D.next;D.next=S}else{var W=ha(),ce=Pe.suspense;W=HA(W,S,ce),ce={expirationTime:W,suspenseConfig:ce,action:T,eagerReducer:null,eagerState:null,next:null};var Se=D.last;if(Se===null)ce.next=ce;else{var It=Se.next;It!==null&&(ce.next=It),Se.next=ce}if(D.last=ce,S.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var Et=D.lastRenderedState,Pt=q(Et,T);if(ce.eagerReducer=q,ce.eagerState=Pt,ds(Pt,Et))return}catch{}finally{}Pc(S,W)}}var Du={readContext:Ns,useCallback:lt,useContext:lt,useEffect:lt,useImperativeHandle:lt,useLayoutEffect:lt,useMemo:lt,useReducer:lt,useRef:lt,useState:lt,useDebugValue:lt,useResponder:lt,useDeferredValue:lt,useTransition:lt},aI={readContext:Ns,useCallback:vu,useContext:Ns,useEffect:mt,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,fp(4,36,ag.bind(null,D,S),T)},useLayoutEffect:function(S,D){return fp(4,36,S,D)},useMemo:function(S,D){var T=RA();return D=D===void 0?null:D,S=S(),T.memoizedState=[S,D],S},useReducer:function(S,D,T){var q=RA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,S=q.queue={last:null,dispatch:null,lastRenderedReducer:S,lastRenderedState:D},S=S.dispatch=cg.bind(null,ja,S),[q.memoizedState,S]},useRef:function(S){var D=RA();return S={current:S},D.memoizedState=S},useState:ig,useDebugValue:lg,useResponder:rg,useDeferredValue:function(S,D){var T=ig(S),q=T[0],W=T[1];return mt(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=ig(!1),T=D[0],q=D[1];return[vu(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},Pm={readContext:Ns,useCallback:xm,useContext:Ns,useEffect:Sm,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,Bc(4,36,ag.bind(null,D,S),T)},useLayoutEffect:function(S,D){return Bc(4,36,S,D)},useMemo:function(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(S=S(),T.memoizedState=[S,D],S)},useReducer:ys,useRef:function(){return Ap().memoizedState},useState:sg,useDebugValue:lg,useResponder:rg,useDeferredValue:function(S,D){var T=sg(S),q=T[0],W=T[1];return Sm(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=sg(!1),T=D[0],q=D[1];return[xm(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},ua=null,vc=null,Bl=!1;function Su(S,D){var T=Sl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=S,T.effectTag=8,S.lastEffect!==null?(S.lastEffect.nextEffect=T,S.lastEffect=T):S.firstEffect=S.lastEffect=T}function ug(S,D){switch(S.tag){case 5:return D=to(D,S.type,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 6:return D=Di(D,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function TA(S){if(Bl){var D=vc;if(D){var T=D;if(!ug(S,D)){if(D=Ac(T),!D||!ug(S,D)){S.effectTag=S.effectTag&-1025|2,Bl=!1,ua=S;return}Su(ua,T)}ua=S,vc=gu(D)}else S.effectTag=S.effectTag&-1025|2,Bl=!1,ua=S}}function pp(S){for(S=S.return;S!==null&&S.tag!==5&&S.tag!==3&&S.tag!==13;)S=S.return;ua=S}function Ga(S){if(!y||S!==ua)return!1;if(!Bl)return pp(S),Bl=!0,!1;var D=S.type;if(S.tag!==5||D!=="head"&&D!=="body"&&!Te(D,S.memoizedProps))for(D=vc;D;)Su(S,D),D=Ac(D);if(pp(S),S.tag===13){if(!y)throw Error(n(316));if(S=S.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));vc=ks(S)}else vc=ua?Ac(S.stateNode):null;return!0}function Ag(){y&&(vc=ua=null,Bl=!1)}var hp=u.ReactCurrentOwner,Mo=!1;function Es(S,D,T,q){D.child=S===null?aa(D,null,T,q):yi(D,S.child,T,q)}function Ei(S,D,T,q,W){T=T.render;var ce=D.ref;return Ls(D,W),q=ng(S,D,T,q,ce,W),S!==null&&!Mo?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=W&&(S.expirationTime=0),ei(S,D,W)):(D.effectTag|=1,Es(S,D,q,W),D.child)}function bm(S,D,T,q,W,ce){if(S===null){var Se=T.type;return typeof Se=="function"&&!EI(Se)&&Se.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=Se,Qm(S,D,Se,q,W,ce)):(S=_m(T.type,null,q,null,D.mode,ce),S.ref=D.ref,S.return=D,D.child=S)}return Se=S.child,WD)&&_A.set(S,D)))}}function Eg(S,D){S.expirationTimeS?D:S)}function uo(S){if(S.lastExpiredTime!==0)S.callbackExpirationTime=1073741823,S.callbackPriority=99,S.callbackNode=Eu(hI.bind(null,S));else{var D=Mm(S),T=S.callbackNode;if(D===0)T!==null&&(S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90);else{var q=ha();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var W=S.callbackPriority;if(S.callbackExpirationTime===D&&W>=q)return;T!==PA&&Ce(T)}S.callbackExpirationTime=D,S.callbackPriority=q,D=D===1073741823?Eu(hI.bind(null,S)):Il(q,xv.bind(null,S),{timeout:10*(1073741821-D)-Hi()}),S.callbackNode=D}}}function xv(S,D){if(Om=0,D)return D=ha(),Hm(S,D),uo(S),null;var T=Mm(S);if(T!==0){if(D=S.callbackNode,(pr&(rs|Ms))!==gn)throw Error(n(327));if(Ip(),S===Ai&&T===ns||Qu(S,T),Fr!==null){var q=pr;pr|=rs;var W=jA(S);do try{aF();break}catch(It){qA(S,It)}while(1);if(ia(),pr=q,yp.current=W,Gi===Rm)throw D=Tm,Qu(S,T),YA(S,T),uo(S),D;if(Fr===null)switch(W=S.finishedWork=S.current.alternate,S.finishedExpirationTime=T,q=Gi,Ai=null,q){case xu:case Rm:throw Error(n(345));case Ci:Hm(S,2=T){S.lastPingedTime=T,Qu(S,T);break}}if(ce=Mm(S),ce!==0&&ce!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}S.timeoutHandle=je(ku.bind(null,S),W);break}ku(S);break;case Dl:if(YA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=dI(W)),MA&&(W=S.lastPingedTime,W===0||W>=T)){S.lastPingedTime=T,Qu(S,T);break}if(W=Mm(S),W!==0&&W!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}if(OA!==1073741823?q=10*(1073741821-OA)-Hi():Ka===1073741823?q=0:(q=10*(1073741821-Ka)-5e3,W=Hi(),T=10*(1073741821-T)-W,q=W-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*cI(q/1960))-q,T=q?q=0:(W=Se.busyDelayMs|0,ce=Hi()-(10*(1073741821-ce)-(Se.timeoutMs|0||5e3)),q=ce<=W?0:W+q-ce),10 component higher in the tree to provide a loading indicator or placeholder to display.`+ml(W))}Gi!==xc&&(Gi=Ci),ce=pg(ce,W),Et=q;do{switch(Et.tag){case 3:Se=ce,Et.effectTag|=4096,Et.expirationTime=D;var Ve=Dv(Et,Se,D);Ua(Et,Ve);break e;case 1:Se=ce;var ft=Et.type,jt=Et.stateNode;if((Et.effectTag&64)===0&&(typeof ft.getDerivedStateFromError=="function"||jt!==null&&typeof jt.componentDidCatch=="function"&&(bu===null||!bu.has(jt)))){Et.effectTag|=4096,Et.expirationTime=D;var Er=Sv(Et,Se,D);Ua(Et,Er);break e}}Et=Et.return}while(Et!==null)}Fr=kv(Fr)}catch(In){D=In;continue}break}while(1)}function jA(){var S=yp.current;return yp.current=Du,S===null?Du:S}function gI(S,D){SEp&&(Ep=S)}function oF(){for(;Fr!==null;)Fr=Qv(Fr)}function aF(){for(;Fr!==null&&!Rt();)Fr=Qv(Fr)}function Qv(S){var D=Rv(S.alternate,S,ns);return S.memoizedProps=S.pendingProps,D===null&&(D=kv(S)),uI.current=null,D}function kv(S){Fr=S;do{var D=Fr.alternate;if(S=Fr.return,(Fr.effectTag&2048)===0){e:{var T=D;D=Fr;var q=ns,W=D.pendingProps;switch(D.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:Zn(D.type)&&Oa(D);break;case 3:Ec(D),$t(D),W=D.stateNode,W.pendingContext&&(W.context=W.pendingContext,W.pendingContext=null),(T===null||T.child===null)&&Ga(D)&&fa(D),vl(D);break;case 5:tg(D);var ce=la(yc.current);if(q=D.type,T!==null&&D.stateNode!=null)ts(T,D,q,W,ce),T.ref!==D.ref&&(D.effectTag|=128);else if(W){if(T=la(lo.current),Ga(D)){if(W=D,!y)throw Error(n(175));T=ap(W.stateNode,W.type,W.memoizedProps,ce,T,W),W.updateQueue=T,T=T!==null,T&&fa(D)}else{var Se=ut(q,W,ce,T,D);Dc(Se,D,!1,!1),D.stateNode=Se,yt(Se,q,W,ce,T)&&fa(D)}D.ref!==null&&(D.effectTag|=128)}else if(D.stateNode===null)throw Error(n(166));break;case 6:if(T&&D.stateNode!=null)Hr(T,D,T.memoizedProps,W);else{if(typeof W!="string"&&D.stateNode===null)throw Error(n(166));if(T=la(yc.current),ce=la(lo.current),Ga(D)){if(T=D,!y)throw Error(n(176));(T=lp(T.stateNode,T.memoizedProps,T))&&fa(D)}else D.stateNode=Ue(W,T,ce,D)}break;case 11:break;case 13:if(_e(Kn,D),W=D.memoizedState,(D.effectTag&64)!==0){D.expirationTime=q;break e}W=W!==null,ce=!1,T===null?D.memoizedProps.fallback!==void 0&&Ga(D):(q=T.memoizedState,ce=q!==null,W||q===null||(q=T.child.sibling,q!==null&&(Se=D.firstEffect,Se!==null?(D.firstEffect=q,q.nextEffect=Se):(D.firstEffect=D.lastEffect=q,q.nextEffect=null),q.effectTag=8))),W&&!ce&&(D.mode&2)!==0&&(T===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||(Kn.current&1)!==0?Gi===xu&&(Gi=pa):((Gi===xu||Gi===pa)&&(Gi=Dl),Ep!==0&&Ai!==null&&(YA(Ai,ns),Lv(Ai,Ep)))),x&&W&&(D.effectTag|=4),I&&(W||ce)&&(D.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Ec(D),vl(D);break;case 10:Zi(D);break;case 9:break;case 14:break;case 17:Zn(D.type)&&Oa(D);break;case 19:if(_e(Kn,D),W=D.memoizedState,W===null)break;if(ce=(D.effectTag&64)!==0,Se=W.rendering,Se===null){if(ce)Sc(W,!1);else if(Gi!==xu||T!==null&&(T.effectTag&64)!==0)for(T=D.child;T!==null;){if(Se=up(T),Se!==null){for(D.effectTag|=64,Sc(W,!1),T=Se.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),W.lastEffect===null&&(D.firstEffect=null),D.lastEffect=W.lastEffect,T=q,W=D.child;W!==null;)ce=W,q=T,ce.effectTag&=2,ce.nextEffect=null,ce.firstEffect=null,ce.lastEffect=null,Se=ce.alternate,Se===null?(ce.childExpirationTime=0,ce.expirationTime=q,ce.child=null,ce.memoizedProps=null,ce.memoizedState=null,ce.updateQueue=null,ce.dependencies=null):(ce.childExpirationTime=Se.childExpirationTime,ce.expirationTime=Se.expirationTime,ce.child=Se.child,ce.memoizedProps=Se.memoizedProps,ce.memoizedState=Se.memoizedState,ce.updateQueue=Se.updateQueue,q=Se.dependencies,ce.dependencies=q===null?null:{expirationTime:q.expirationTime,firstContext:q.firstContext,responders:q.responders}),W=W.sibling;Fn(Kn,Kn.current&1|2,D),D=D.child;break e}T=T.sibling}}else{if(!ce)if(T=up(Se),T!==null){if(D.effectTag|=64,ce=!0,T=T.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),Sc(W,!0),W.tail===null&&W.tailMode==="hidden"&&!Se.alternate){D=D.lastEffect=W.lastEffect,D!==null&&(D.nextEffect=null);break}}else Hi()>W.tailExpiration&&1W&&(W=q),Se>W&&(W=Se),ce=ce.sibling;T.childExpirationTime=W}if(D!==null)return D;S!==null&&(S.effectTag&2048)===0&&(S.firstEffect===null&&(S.firstEffect=Fr.firstEffect),Fr.lastEffect!==null&&(S.lastEffect!==null&&(S.lastEffect.nextEffect=Fr.firstEffect),S.lastEffect=Fr.lastEffect),1S?D:S}function ku(S){var D=No();return so(99,lF.bind(null,S,D)),null}function lF(S,D){do Ip();while(mg!==null);if((pr&(rs|Ms))!==gn)throw Error(n(327));var T=S.finishedWork,q=S.finishedExpirationTime;if(T===null)return null;if(S.finishedWork=null,S.finishedExpirationTime=0,T===S.current)throw Error(n(177));S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90,S.nextKnownPendingLevel=0;var W=dI(T);if(S.firstPendingTime=W,q<=S.lastSuspendedTime?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:q<=S.firstSuspendedTime&&(S.firstSuspendedTime=q-1),q<=S.lastPingedTime&&(S.lastPingedTime=0),q<=S.lastExpiredTime&&(S.lastExpiredTime=0),S===Ai&&(Fr=Ai=null,ns=0),1=T?rn(S,D,T):(Fn(Kn,Kn.current&1,D),D=ei(S,D,T),D!==null?D.sibling:null);Fn(Kn,Kn.current&1,D);break;case 19:if(q=D.childExpirationTime>=T,(S.effectTag&64)!==0){if(q)return Wa(S,D,T);D.effectTag|=64}if(W=D.memoizedState,W!==null&&(W.rendering=null,W.tail=null),Fn(Kn,Kn.current,D),!q)return null}return ei(S,D,T)}Mo=!1}}else Mo=!1;switch(D.expirationTime=0,D.tag){case 2:if(q=D.type,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,W=Ri(D,Rn.current),Ls(D,T),W=ng(null,D,q,S,W,T),D.effectTag|=1,typeof W=="object"&&W!==null&&typeof W.render=="function"&&W.$$typeof===void 0){if(D.tag=1,oI(),Zn(q)){var ce=!0;pc(D)}else ce=!1;D.memoizedState=W.state!==null&&W.state!==void 0?W.state:null;var Se=q.getDerivedStateFromProps;typeof Se=="function"&&vt(D,q,Se,S),W.updater=tr,D.stateNode=W,W._reactInternalFiber=D,$n(D,q,S,T),D=dp(null,D,q,!0,ce,T)}else D.tag=0,Es(null,D,W,T),D=D.child;return D;case 16:if(W=D.elementType,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,ve(W),W._status!==1)throw W._result;switch(W=W._result,D.type=W,ce=D.tag=gF(W),S=di(W,S),ce){case 0:D=LA(null,D,W,S,T);break;case 1:D=gp(null,D,W,S,T);break;case 11:D=Ei(null,D,W,S,T);break;case 14:D=bm(null,D,W,di(W.type,S),q,T);break;default:throw Error(n(306,W,""))}return D;case 0:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),LA(S,D,q,W,T);case 1:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),gp(S,D,q,W,T);case 3:if(fg(D),q=D.updateQueue,q===null)throw Error(n(282));if(W=D.memoizedState,W=W!==null?W.element:null,we(D,q,D.pendingProps,null,T),q=D.memoizedState.element,q===W)Ag(),D=ei(S,D,T);else{if((W=D.stateNode.hydrate)&&(y?(vc=gu(D.stateNode.containerInfo),ua=D,W=Bl=!0):W=!1),W)for(T=aa(D,null,q,T),D.child=T;T;)T.effectTag=T.effectTag&-3|1024,T=T.sibling;else Es(S,D,q,T),Ag();D=D.child}return D;case 5:return Dm(D),S===null&&TA(D),q=D.type,W=D.pendingProps,ce=S!==null?S.memoizedProps:null,Se=W.children,Te(q,W)?Se=null:ce!==null&&Te(q,ce)&&(D.effectTag|=16),Uo(S,D),D.mode&4&&T!==1&&Qe(q,W)?(D.expirationTime=D.childExpirationTime=1,D=null):(Es(S,D,Se,T),D=D.child),D;case 6:return S===null&&TA(D),null;case 13:return rn(S,D,T);case 4:return eg(D,D.stateNode.containerInfo),q=D.pendingProps,S===null?D.child=yi(D,null,q,T):Es(S,D,q,T),D.child;case 11:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),Ei(S,D,q,W,T);case 7:return Es(S,D,D.pendingProps,T),D.child;case 8:return Es(S,D,D.pendingProps.children,T),D.child;case 12:return Es(S,D,D.pendingProps.children,T),D.child;case 10:e:{if(q=D.type._context,W=D.pendingProps,Se=D.memoizedProps,ce=W.value,Oo(D,ce),Se!==null){var It=Se.value;if(ce=ds(It,ce)?0:(typeof q._calculateChangedBits=="function"?q._calculateChangedBits(It,ce):1073741823)|0,ce===0){if(Se.children===W.children&&!Ui.current){D=ei(S,D,T);break e}}else for(It=D.child,It!==null&&(It.return=D);It!==null;){var Et=It.dependencies;if(Et!==null){Se=It.child;for(var Pt=Et.firstContext;Pt!==null;){if(Pt.context===q&&(Pt.observedBits&ce)!==0){It.tag===1&&(Pt=$i(T,null),Pt.tag=2,mi(It,Pt)),It.expirationTime"u")return!1;var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(D.isDisabled||!D.supportsFiber)return!0;try{var T=D.inject(S);mI=function(q){try{D.onCommitFiberRoot(T,q,void 0,(q.current.effectTag&64)===64)}catch{}},yI=function(q){try{D.onCommitFiberUnmount(T,q)}catch{}}}catch{}return!0}function hF(S,D,T,q){this.tag=S,this.key=T,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=q,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Sl(S,D,T,q){return new hF(S,D,T,q)}function EI(S){return S=S.prototype,!(!S||!S.isReactComponent)}function gF(S){if(typeof S=="function")return EI(S)?1:0;if(S!=null){if(S=S.$$typeof,S===N)return 11;if(S===re)return 14}return 2}function WA(S,D){var T=S.alternate;return T===null?(T=Sl(S.tag,D,S.key,S.mode),T.elementType=S.elementType,T.type=S.type,T.stateNode=S.stateNode,T.alternate=S,S.alternate=T):(T.pendingProps=D,T.effectTag=0,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null),T.childExpirationTime=S.childExpirationTime,T.expirationTime=S.expirationTime,T.child=S.child,T.memoizedProps=S.memoizedProps,T.memoizedState=S.memoizedState,T.updateQueue=S.updateQueue,D=S.dependencies,T.dependencies=D===null?null:{expirationTime:D.expirationTime,firstContext:D.firstContext,responders:D.responders},T.sibling=S.sibling,T.index=S.index,T.ref=S.ref,T}function _m(S,D,T,q,W,ce){var Se=2;if(q=S,typeof S=="function")EI(S)&&(Se=1);else if(typeof S=="string")Se=5;else e:switch(S){case C:return Fu(T.children,W,ce,D);case R:Se=8,W|=7;break;case w:Se=8,W|=1;break;case v:return S=Sl(12,T,D,W|8),S.elementType=v,S.type=v,S.expirationTime=ce,S;case _:return S=Sl(13,T,D,W),S.type=_,S.elementType=_,S.expirationTime=ce,S;case J:return S=Sl(19,T,D,W),S.elementType=J,S.expirationTime=ce,S;default:if(typeof S=="object"&&S!==null)switch(S.$$typeof){case b:Se=10;break e;case E:Se=9;break e;case N:Se=11;break e;case re:Se=14;break e;case oe:Se=16,q=null;break e}throw Error(n(130,S==null?S:typeof S,""))}return D=Sl(Se,T,D,W),D.elementType=S,D.type=q,D.expirationTime=ce,D}function Fu(S,D,T,q){return S=Sl(7,S,q,D),S.expirationTime=T,S}function CI(S,D,T){return S=Sl(6,S,null,D),S.expirationTime=T,S}function II(S,D,T){return D=Sl(4,S.children!==null?S.children:[],S.key,D),D.expirationTime=T,D.stateNode={containerInfo:S.containerInfo,pendingChildren:null,implementation:S.implementation},D}function dF(S,D,T){this.tag=D,this.current=null,this.containerInfo=S,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=Ne,this.pendingContext=this.context=null,this.hydrate=T,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function Tv(S,D){var T=S.firstSuspendedTime;return S=S.lastSuspendedTime,T!==0&&T>=D&&S<=D}function YA(S,D){var T=S.firstSuspendedTime,q=S.lastSuspendedTime;TD||T===0)&&(S.lastSuspendedTime=D),D<=S.lastPingedTime&&(S.lastPingedTime=0),D<=S.lastExpiredTime&&(S.lastExpiredTime=0)}function Lv(S,D){D>S.firstPendingTime&&(S.firstPendingTime=D);var T=S.firstSuspendedTime;T!==0&&(D>=T?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:D>=S.lastSuspendedTime&&(S.lastSuspendedTime=D+1),D>S.nextKnownPendingLevel&&(S.nextKnownPendingLevel=D))}function Hm(S,D){var T=S.lastExpiredTime;(T===0||T>D)&&(S.lastExpiredTime=D)}function Nv(S){var D=S._reactInternalFiber;if(D===void 0)throw typeof S.render=="function"?Error(n(188)):Error(n(268,Object.keys(S)));return S=De(D),S===null?null:S.stateNode}function Ov(S,D){S=S.memoizedState,S!==null&&S.dehydrated!==null&&S.retryTime{"use strict";WEe.exports=GEe()});var JEe=U((yYt,KEe)=>{"use strict";var eyt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};KEe.exports=eyt});var ZEe=U((EYt,XEe)=>{"use strict";var tyt=Object.assign||function(t){for(var e=1;e"}}]),t}(),VEe=function(){RQ(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){Pq(this,t),this.width=e,this.height=r}return RQ(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),t}(),zEe=function(){function t(e,r){Pq(this,t),this.unit=e,this.value=r}return RQ(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case iu.UNIT_POINT:return String(this.value);case iu.UNIT_PERCENT:return this.value+"%";case iu.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();XEe.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var C=arguments.length,w=Array(C),v=0;v1?w-1:0),b=1;b1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:iu.DIRECTION_LTR;return u.call(this,A,p,h)}),tyt({Config:e.Config,Node:e.Node,Layout:t("Layout",ryt),Size:t("Size",VEe),Value:t("Value",zEe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},iu)}});var $Ee=U((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof Ie=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o>2]=0;for(p=A+n;o>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,C,w,v;h>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var C=o-65536;h+=String.fromCharCode(55296|C>>10,56320|C&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` `+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var C=Browser.mainLoop.remainingBlockers,w=C%1==0?C-1:Math.floor(C);h.counted?Browser.mainLoop.remainingBlockers=w:(w=w+.5,Browser.mainLoop.remainingBlockers=(8*C+w)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(b){Runtime.warnOnce("Blob constructor present but fails: "+b+"; falling back to blob builder")}if(!h){var C=new Browser.BlobBuilder;C.append(new Uint8Array(n).buffer),h=C.getBlob()}var w=Browser.URLObject.createObjectURL(h),v=new Image;v.onload=function(){assert(v.complete,"Image "+u+" could not be decoded");var E=document.createElement("canvas");E.width=v.width,E.height=v.height;var R=E.getContext("2d");R.drawImage(v,0,0),Module.preloadedImages[u]=E,Browser.URLObject.revokeObjectURL(w),A&&A(n)},v.onerror=function(E){console.log("Image "+w+" could not be decoded"),p&&p()},v.src=w},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function C(R){h||(h=!0,Module.preloadedAudios[u]=R,A&&A(n))}function w(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var v=new Blob([n],{type:Browser.getMimetype(u)})}catch{return w()}var b=Browser.URLObject.createObjectURL(v),E=new Audio;E.addEventListener("canplaythrough",function(){C(E)},!1),E.onerror=function(N){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function _(J){for(var re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",oe="=",pe="",he=0,ve=0,ge=0;ge=6;){var le=he>>ve-6&63;ve-=6,pe+=re[le]}return ve==2?(pe+=re[(he&3)<<4],pe+=oe+oe):ve==4&&(pe+=re[(he&15)<<2],pe+=oe),pe}E.src="data:audio/x-"+u.substr(-3)+";base64,"+_(n),C(E)},E.src=b,Browser.safeSetTimeout(function(){C(E)},1e4)}else return w()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var C=Browser.touches[u.identifier];C||(C=h),Browser.lastTouches[u.identifier]=C,Browser.touches[u.identifier]=h}return}var w=t.pageX-(a+e.left),v=t.pageY-(n+e.top);w=w*(r/e.width),v=v*(o/e.height),Browser.mouseMovementX=w-Browser.mouseX,Browser.mouseMovementY=v-Browser.mouseY,Browser.mouseX=w,Browser.mouseY=v}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(p,h,C,w,v,b){if(h==1){var E=w&896;(E==128||E==256||E==384)&&(p="X const")}var R;return b?R=C.replace("X",p).replace("Y",v):R=p.replace("X",C).replace("Y",v),R.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,C,w,v){throw new Error(p+" type "+C.replace("X",h+"?")+(w?" with flag "+w:"")+" in "+v)}function a(p,h,C,w,v,b,E,R){b===void 0&&(b="X"),R===void 0&&(R=1);var N=C(p);if(N)return N;var _=w(p),J=_.placeholderFlag,re=e[J];E&&re&&(b=r(E[2],E[0],b,re[0],"?",!0));var oe;J==0&&(oe="Unbound"),J>=10&&(oe="Corrupt"),R>20&&(oe="Deeply nested"),oe&&o(oe,p,b,J,v||"?");var pe=_.paramList[0],he=a(pe,h,C,w,v,b,re,R+1),ve,ge={flags:re[0],id:p,name:"",paramList:[he]},le=[],xe="?";switch(_.placeholderFlag){case 1:ve=he.spec;break;case 2:if((he.flags&15360)==1024&&he.spec.ptrSize==1){ge.flags=7168;break}case 3:case 6:case 5:ve=he.spec,he.flags&15360;break;case 8:xe=""+_.paramList[1],ge.paramList.push(_.paramList[1]);break;case 9:for(var g=0,De=_.paramList[1];g>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(C,w){var v=___syscall146.buffers[C];assert(v),w===0||w===10?((C===1?Module.print:Module.printErr)(UTF8ArrayToString(v,0)),v.length=0):v.push(w)});for(var u=0;u>2],p=HEAP32[o+(u*8+4)>>2],h=0;h"u"||!(C instanceof FS.ErrnoError))&&abort(C),-C.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;tt.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var C=u,w=A,v=p;if(n!==_nbind.ptrMarker){var b=h.__nbindConstructor.apply(h,arguments);C=4608,v=HEAPU32[b/4],w=HEAPU32[b/4+1]}var E={configurable:!0,enumerable:!1,value:null,writable:!1},R={__nbindFlags:C,__nbindPtr:w};v&&(R.__nbindShared=v,_nbind.mark(h));for(var N=0,_=Object.keys(R);N<_.length;N++){var J=_[N];E.value=R[J],Object.defineProperty(h,J,E)}return _defineHidden(0)(h,"__nbindState"),h}return a.prototype.free=function(){e.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,"__nbindShared"),disableMember(this,"__nbindPtr")},a}(Wrapper);return __decorate([_defineHidden()],r.prototype,"__nbindConstructor",void 0),__decorate([_defineHidden()],r.prototype,"__nbindValueConstructor",void 0),__decorate([_defineHidden(t)],r.prototype,"__nbindPolicies",void 0),r}_nbind.makeBound=makeBound;function disableMember(t,e){function r(){throw new Error("Accessing deleted object")}Object.defineProperty(t,e,{configurable:!1,enumerable:!1,get:r,set:r})}_nbind.ptrMarker={};var BindClass=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;return o.wireRead=function(a){return _nbind.popValue(a,o.ptrType)},o.wireWrite=function(a){return pushPointer(a,o.ptrType,!0)},o.pendingSuperCount=0,o.ready=!1,o.methodTbl={},r.paramList?(o.classType=r.paramList[0].classType,o.proto=o.classType.proto):o.classType=o,o}return e.prototype.makeBound=function(r){var o=_nbind.makeBound(r,this);return this.proto=o,this.ptrType.proto=o,o},e.prototype.addMethod=function(r){var o=this.methodTbl[r.name]||[];o.push(r),this.methodTbl[r.name]=o},e.prototype.registerMethods=function(r,o){for(var a,n=0,u=Object.keys(r.methodTbl);n>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),C=new t.Float64Array(r),w=e.DYNAMICTOP_PTR|0,v=e.tempDoublePtr|0,b=e.ABORT|0,E=e.STACKTOP|0,R=e.STACK_MAX|0,N=e.cttz_i8|0,_=e.___dso_handle|0,J=0,re=0,oe=0,pe=0,he=t.NaN,ve=t.Infinity,ge=0,le=0,xe=0,g=0,De=0,Ee=0,de=t.Math.floor,ne=t.Math.abs,Z=t.Math.sqrt,me=t.Math.pow,be=t.Math.cos,ut=t.Math.sin,H=t.Math.tan,yt=t.Math.acos,Me=t.Math.asin,Te=t.Math.atan,Qe=t.Math.atan2,Ue=t.Math.exp,je=t.Math.log,At=t.Math.ceil,Ne=t.Math.imul,P=t.Math.min,I=t.Math.max,x=t.Math.clz32,y=t.Math.fround,F=e.abort,z=e.assert,X=e.enlargeMemory,$=e.getTotalMemory,ie=e.abortOnCannotGrowMemory,ke=e.invoke_viiiii,Le=e.invoke_vif,st=e.invoke_vid,ht=e.invoke_fiff,Ut=e.invoke_vi,Xt=e.invoke_vii,xt=e.invoke_ii,tn=e.invoke_viddi,Dr=e.invoke_vidd,fr=e.invoke_iiii,Br=e.invoke_diii,jr=e.invoke_di,Hn=e.invoke_iid,bs=e.invoke_iii,ki=e.invoke_viiddi,gs=e.invoke_viiiiii,to=e.invoke_dii,Di=e.invoke_i,Qs=e.invoke_iiiiii,ro=e.invoke_viiid,Ac=e.invoke_viififi,gu=e.invoke_viii,ap=e.invoke_v,lp=e.invoke_viid,ks=e.invoke_idd,Cn=e.invoke_viiii,no=e._emscripten_asm_const_iiiii,Fs=e._emscripten_asm_const_iiidddddd,ml=e._emscripten_asm_const_iiiid,yl=e.__nbind_reference_external,io=e._emscripten_asm_const_iiiiiiii,_e=e._removeAccessorPrefix,Fn=e._typeModule,Fi=e.__nbind_register_pool,Rn=e.__decorate,Ui=e._llvm_stackrestore,Zt=e.___cxa_atexit,Ri=e.__extends,Zn=e.__nbind_get_value_object,Oa=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,$t=e._emscripten_set_main_loop_timing,fc=e.__nbind_register_primitive,du=e.__nbind_register_type,pc=e._emscripten_memcpy_big,El=e.__nbind_register_function,SA=e.___setErrNo,mu=e.__nbind_register_class,Ce=e.__nbind_finish,Rt=e._abort,hc=e._nbind_value,_i=e._llvm_stacksave,yu=e.___syscall54,qt=e._defineHidden,Cl=e._emscripten_set_main_loop,xA=e._emscripten_get_now,cp=e.__nbind_register_callback_signature,gc=e._emscripten_asm_const_iiiiii,PA=e.__nbind_free_external,Dn=e._emscripten_asm_const_iiii,ui=e._emscripten_asm_const_iiididi,dc=e.___syscall6,bA=e._atexit,ta=e.___syscall140,Hi=e.___syscall146,No=y(0);let $e=y(0);function so(s){s=s|0;var l=0;return l=E,E=E+s|0,E=E+15&-16,l|0}function Il(){return E|0}function Eu(s){s=s|0,E=s}function qi(s,l){s=s|0,l=l|0,E=s,R=l}function Cu(s,l){s=s|0,l=l|0,J||(J=s,re=l)}function QA(s){s=s|0,Ee=s}function Ma(){return Ee|0}function mc(){var s=0,l=0;Cr(8104,8,400)|0,Cr(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,Zt(17,8104,_|0)|0}function ds(s){s=s|0,Be(s+948|0)}function Ot(s){return s=y(s),((bu(s)|0)&2147483647)>>>0>2139095040|0}function Sn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(0);return s|0}function di(s){s=s|0;var l=0;return l=Jv(1e3)|0,ra(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Cr(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function ra(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=E,E=E+16|0,f=d,l||(n[f>>2]=c,pg(s,5,3197,f)),E=d}function oo(){return di(956)|0}function Rs(s){s=s|0;var l=0;return l=Gt(1e3)|0,na(l,s),ra(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function na(s,l){s=s|0,l=l|0;var c=0;Cr(s|0,l|0,948)|0,km(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function ia(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Oo(c+948|0,s)|0,n[l>>2]=0),c=Zi(s)|0,c|0){l=0;do n[(Ts(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),Ls(c),Vv(s),n[2276]=(n[2276]|0)+-1}function Oo(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0;f=n[s>>2]|0,Q=s+4|0,c=n[Q>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(0);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(SI(d|0,f|0,s|0)|0,c=n[Q>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[Q>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function Zi(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function Ts(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function Ls(s){s=s|0;var l=0,c=0,f=0,d=0;f=E,E=E+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,Cp(l,d,d,s+8|0),mg(s,l),UA(l)),E=f}function Ns(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;M=Zi(s)|0;do if(M|0){if((n[(Ts(s,0)|0)+944>>2]|0)==(s|0)){if(!(Oo(s+948|0,l)|0))break;Cr(l+400|0,8504,540)|0,n[l+944>>2]=0,qe(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,Q=s+948|0,k=(B|0)==0,c=0,m=0;do f=n[(n[Q>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?qe(s):(d=Rs(f)|0,n[(n[Q>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,k||PR[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(M|0));if(c>>>0>>0){k=s+948|0,Q=s+952|0,B=c,c=n[Q>>2]|0;do m=(n[k>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(SI(m|0,f|0,d|0)|0,c=n[Q>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[Q>>2]=c),B=B+1|0;while((B|0)!=(M|0))}}while(0)}function ao(s){s=s|0;var l=0,c=0,f=0,d=0;Wn(s,(Zi(s)|0)==0,2491),Wn(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),Ls(l),l=s+976|0,c=n[l>>2]|0,Cr(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function Wn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=E,E=E+16|0,f=d,l||(n[f>>2]=c,co(s,5,3197,f)),E=d}function qn(){return n[2276]|0}function $i(){var s=0;return s=Jv(20)|0,es((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function es(s,l){s=s|0,l=l|0;var c=0,f=0;f=E,E=E+16|0,c=f,s||(n[c>>2]=l,co(0,5,3197,c)),E=f}function mi(s){s=s|0,Vv(s),n[2277]=(n[2277]|0)+-1}function Ua(s,l){s=s|0,l=l|0;var c=0;l?(Wn(s,(Zi(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function sa(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,Wn(s,(n[l+944>>2]|0)==0,2709),Wn(s,(n[s+964>>2]|0)==0,2763),ee(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],we(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,qe(s),E=f}function ee(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;if(c=Zi(s)|0,c|0&&(n[(Ts(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,Q=Rs(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=Q,n[Q+944>>2]=s,m||PR[f&15](B,Q,s,l),l=l+1|0;while((l|0)!=(c|0))}}function we(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0;et=E,E=E+64|0,j=et+52|0,Q=et+48|0,se=et+28|0,We=et+24|0,Oe=et+20|0,Re=et,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}_A(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=L(s)|0,d>>>0>>0&&Jr(s),O=n[s>>2]|0,M=(n[B>>2]|0)-O|0,m=M>>1,Cp(Re,M>>2>>>0>>1>>>0?m>>>0>>0?f:m:d,l-O>>2,s+8|0),O=Re+8|0,f=n[O>>2]|0,m=Re+12|0,M=n[m>>2]|0,B=M,k=f;do if((f|0)==(M|0)){if(M=Re+4|0,f=n[M>>2]|0,Ze=n[Re>>2]|0,d=Ze,f>>>0<=Ze>>>0){f=B-d>>1,f=(f|0)==0?1:f,Cp(se,f,f>>>2,n[Re+16>>2]|0),n[We>>2]=n[M>>2],n[Oe>>2]=n[O>>2],n[Q>>2]=n[We>>2],n[j>>2]=n[Oe>>2],pI(se,Q,j),f=n[Re>>2]|0,n[Re>>2]=n[se>>2],n[se>>2]=f,f=se+4|0,Ze=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Ze,f=se+8|0,Ze=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Ze,f=se+12|0,Ze=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Ze,UA(se),f=n[O>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,Q=f+(B<<2)|0,d=k-m|0,m=d>>2,m&&(SI(Q|0,f|0,d|0)|0,f=n[M>>2]|0),Ze=Q+(m<<2)|0,n[O>>2]=Ze,n[M>>2]=f+(B<<2),f=Ze}while(0);n[f>>2]=n[c>>2],n[O>>2]=(n[O>>2]|0)+4,l=yg(s,Re,l)|0,UA(Re)}while(0);return E=et,l|0}function qe(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(he),s=n[s+944>>2]|0}while((s|0)!=0)}function Be(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function Pe(s){return s=s|0,n[s+944>>2]|0}function Je(s){s=s|0,Wn(s,(n[s+964>>2]|0)!=0,2832),qe(s)}function vt(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function tr(s,l){s=s|0,l=l|0,zUe(s,l,400)|0&&(Cr(s|0,l|0,400)|0,qe(s))}function Zr(s){s=s|0;var l=$e;return l=y(h[s+44>>2]),s=Ot(l)|0,y(s?y(0):l)}function Tn(s){s=s|0;var l=$e;return l=y(h[s+48>>2]),Ot(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function _r(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function $n(s){return s=s|0,n[s+980>>2]|0}function Ti(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function Yn(s){return s=s|0,n[s+4>>2]|0}function Ha(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function oa(s){return s=s|0,n[s+8>>2]|0}function yi(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function aa(s){return s=s|0,n[s+12>>2]|0}function qa(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function lo(s){return s=s|0,n[s+16>>2]|0}function kA(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function yc(s){return s=s|0,n[s+20>>2]|0}function la(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function eg(s){return s=s|0,n[s+24>>2]|0}function Ec(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function Dm(s){return s=s|0,n[s+28>>2]|0}function tg(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function Kn(s){return s=s|0,n[s+32>>2]|0}function up(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function rg(s){return s=s|0,n[s+36>>2]|0}function FA(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,qe(s))}function Os(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,qe(s))}function Iu(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,qe(s))}function ja(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function ji(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,qe(s))}function ca(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function wu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function ms(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function Cc(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Ic(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function G(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function Dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wl(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(he),n[c>>2]=3,qe(s))}function Si(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function wc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function lt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Bu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function ng(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function oI(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function RA(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,qe(s))}function Ap(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(he),n[l>>2]=3,qe(s))}function yr(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function ys(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function ig(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,qe(s))}function sg(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(he),n[l>>2]=3,qe(s))}function og(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function fp(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function Bc(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function mt(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Sm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function ag(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function lg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function vu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function xm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function cg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Du(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function aI(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function Pm(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function ua(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,qe(s))}function vc(s){return s=s|0,y(h[s+396>>2])}function Bl(s){return s=s|0,y(h[s+400>>2])}function Su(s){return s=s|0,y(h[s+404>>2])}function ug(s){return s=s|0,y(h[s+408>>2])}function TA(s){return s=s|0,y(h[s+412>>2])}function pp(s){return s=s|0,y(h[s+416>>2])}function Ga(s){return s=s|0,y(h[s+420>>2])}function Ag(s,l){switch(s=s|0,l=l|0,Wn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function hp(s,l){switch(s=s|0,l=l|0,Wn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function Mo(s,l){switch(s=s|0,l=l|0,Wn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function Es(s,l){s=s|0,l=l|0;var c=0,f=$e;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ne(y(f-y(h[l>>2]))))>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,Oa(f|0,s|0,l|0,0),co(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),E3e(f),E=c}function Uo(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=$e;s=y(s*l),d=y(wR(s,y(1)));do if(Ei(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),Ei(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=Ei(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(0);return y(s/l)}function LA(s,l,c,f,d,m,B,Q,k,M,O,j,se){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,Q=y(Q),k=y(k),M=y(M),O=y(O),j=y(j),se=se|0;var We=0,Oe=$e,Re=$e,et=$e,Ze=$e,at=$e,He=$e;return k>2]),Oe!=y(0))?(et=y(Uo(l,Oe,0,0)),Ze=y(Uo(f,Oe,0,0)),Re=y(Uo(m,Oe,0,0)),Oe=y(Uo(Q,Oe,0,0))):(Re=m,et=l,Oe=Q,Ze=f),(d|0)==(s|0)?We=Ei(Re,et)|0:We=0,(B|0)==(c|0)?se=Ei(Oe,Ze)|0:se=0,!We&&(at=y(l-O),!(gp(s,at,k)|0))&&!(dp(s,at,d,k)|0)?We=fg(s,at,d,m,k)|0:We=1,!se&&(He=y(f-j),!(gp(c,He,M)|0))&&!(dp(c,He,B,M)|0)?se=fg(c,He,B,Q,M)|0:se=1,se=We&se),se|0}function gp(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=Ei(l,c)|0:s=0,s|0}function dp(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=Ei(l,f)|0:s=0,s|0}function fg(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=Ei(l,d)|0:s=0,s|0}function Aa(s,l,c,f,d,m,B,Q,k,M,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),Q=y(Q),k=k|0,M=M|0,O=O|0;var j=0,se=0,We=0,Oe=0,Re=$e,et=$e,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0,Bn=$e,po=$e,ho=$e,go=0,ma=0;rr=E,E=E+160|0,Vt=rr+152|0,ir=rr+120|0,Rr=rr+104|0,He=rr+72|0,Oe=rr+56|0,Tt=rr+8|0,at=rr,Ge=(n[2279]|0)+1|0,n[2279]=Ge,Ir=s+984|0,(o[Ir>>0]|0)!=0&&(n[s+512>>2]|0)!=(n[2278]|0)?Ze=4:(n[s+516>>2]|0)==(f|0)?Qr=0:Ze=4,(Ze|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Qr=1);e:do if(n[s+964>>2]|0)if(Re=y(rn(s,2,B)),et=y(rn(s,0,B)),j=s+916|0,ho=y(h[j>>2]),po=y(h[s+920>>2]),Bn=y(h[s+932>>2]),LA(d,l,m,c,n[s+924>>2]|0,ho,n[s+928>>2]|0,po,Bn,y(h[s+936>>2]),Re,et,O)|0)Ze=22;else if(We=n[s+520>>2]|0,!We)Ze=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Bn=y(h[j>>2]),po=y(h[s+524+(se*24|0)+4>>2]),ho=y(h[s+524+(se*24|0)+16>>2]),LA(d,l,m,c,n[s+524+(se*24|0)+8>>2]|0,Bn,n[s+524+(se*24|0)+12>>2]|0,po,ho,y(h[s+524+(se*24|0)+20>>2]),Re,et,O)|0){Ze=22;break e}if(se=se+1|0,se>>>0>=We>>>0){Ze=21;break}}else{if(k){if(j=s+916|0,!(Ei(y(h[j>>2]),l)|0)){Ze=21;break}if(!(Ei(y(h[s+920>>2]),c)|0)){Ze=21;break}if((n[s+924>>2]|0)!=(d|0)){Ze=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Ze=22;break}if(We=n[s+520>>2]|0,!We)Ze=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Ei(y(h[j>>2]),l)|0&&Ei(y(h[s+524+(se*24|0)+4>>2]),c)|0&&(n[s+524+(se*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(se*24|0)+12>>2]|0)==(m|0)){Ze=22;break e}if(se=se+1|0,se>>>0>=We>>>0){Ze=21;break}}}while(0);do if((Ze|0)==21)o[11697]|0?(j=0,Ze=28):(j=0,Ze=31);else if((Ze|0)==22){if(se=(o[11697]|0)!=0,!((j|0)!=0&(Qr^1)))if(se){Ze=28;break}else{Ze=31;break}Oe=j+16|0,n[s+908>>2]=n[Oe>>2],We=j+20|0,n[s+912>>2]=n[We>>2],(o[11698]|0)==0|se^1||(n[at>>2]=NA(Ge)|0,n[at+4>>2]=Ge,co(s,4,2972,at),se=n[s+972>>2]|0,se|0&&ef[se&127](s),d=Wa(d,k)|0,m=Wa(m,k)|0,ma=+y(h[Oe>>2]),go=+y(h[We>>2]),n[Tt>>2]=d,n[Tt+4>>2]=m,C[Tt+8>>3]=+l,C[Tt+16>>3]=+c,C[Tt+24>>3]=ma,C[Tt+32>>3]=go,n[Tt+40>>2]=M,co(s,4,2989,Tt))}while(0);return(Ze|0)==28&&(se=NA(Ge)|0,n[Oe>>2]=se,n[Oe+4>>2]=Ge,n[Oe+8>>2]=Qr?3047:11699,co(s,4,3038,Oe),se=n[s+972>>2]|0,se|0&&ef[se&127](s),Tt=Wa(d,k)|0,Ze=Wa(m,k)|0,n[He>>2]=Tt,n[He+4>>2]=Ze,C[He+8>>3]=+l,C[He+16>>3]=+c,n[He+24>>2]=M,co(s,4,3049,He),Ze=31),(Ze|0)==31&&(ei(s,l,c,f,d,m,B,Q,k,O),o[11697]|0&&(se=n[2279]|0,Tt=NA(se)|0,n[Rr>>2]=Tt,n[Rr+4>>2]=se,n[Rr+8>>2]=Qr?3047:11699,co(s,4,3083,Rr),se=n[s+972>>2]|0,se|0&&ef[se&127](s),Tt=Wa(d,k)|0,Rr=Wa(m,k)|0,go=+y(h[s+908>>2]),ma=+y(h[s+912>>2]),n[ir>>2]=Tt,n[ir+4>>2]=Rr,C[ir+8>>3]=go,C[ir+16>>3]=ma,n[ir+24>>2]=M,co(s,4,3092,ir)),n[s+516>>2]=f,j||(se=s+520|0,j=n[se>>2]|0,(j|0)==16&&(o[11697]|0&&co(s,4,3124,Vt),n[se>>2]=0,j=0),k?j=s+916|0:(n[se>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),k&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[Ir>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],E=rr,Qr|(j|0)==0|0}function rn(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(K(s,l,c)),y(f+y(te(s,l,c)))}function co(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=E,E=E+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,hg(f,s,l,c,d),E=m}function NA(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function Wa(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=E,E=E+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,E=d,s|0}function ei(s,l,c,f,d,m,B,Q,k,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),Q=y(Q),k=k|0,M=M|0;var O=0,j=0,se=0,We=0,Oe=$e,Re=$e,et=$e,Ze=$e,at=$e,He=$e,Ge=$e,Tt=0,Rr=0,ir=0,Vt=$e,Ir=$e,Qr=0,rr=$e,Bn=0,po=0,ho=0,go=0,ma=0,Qp=0,kp=0,bl=0,Fp=0,Nu=0,Ou=0,Rp=0,Tp=0,Lp=0,Vr=0,Ql=0,Np=0,Qc=0,Op=$e,Mp=$e,Mu=$e,Uu=$e,kc=$e,Us=0,Za=0,Ho=0,kl=0,rf=0,nf=$e,_u=$e,sf=$e,of=$e,_s=$e,ws=$e,Fl=0,xn=$e,af=$e,mo=$e,Fc=$e,yo=$e,Rc=$e,lf=0,cf=0,Tc=$e,Hs=$e,Rl=0,uf=0,Af=0,ff=0,vr=$e,jn=0,Bs=0,Eo=0,qs=0,xr=0,lr=0,Tl=0,Wt=$e,pf=0,ni=0;Tl=E,E=E+16|0,Us=Tl+12|0,Za=Tl+8|0,Ho=Tl+4|0,kl=Tl,Wn(s,(d|0)==0|(Ot(l)|0)^1,3326),Wn(s,(m|0)==0|(Ot(c)|0)^1,3406),Bs=gt(s,f)|0,n[s+496>>2]=Bs,xr=ur(2,Bs)|0,lr=ur(0,Bs)|0,h[s+440>>2]=y(K(s,xr,B)),h[s+444>>2]=y(te(s,xr,B)),h[s+428>>2]=y(K(s,lr,B)),h[s+436>>2]=y(te(s,lr,B)),h[s+464>>2]=y(gr(s,xr)),h[s+468>>2]=y(hn(s,xr)),h[s+452>>2]=y(gr(s,lr)),h[s+460>>2]=y(hn(s,lr)),h[s+488>>2]=y(ti(s,xr,B)),h[s+492>>2]=y(Li(s,xr,B)),h[s+476>>2]=y(ti(s,lr,B)),h[s+484>>2]=y(Li(s,lr,B));do if(n[s+964>>2]|0)dg(s,l,c,d,m,B,Q);else{if(Eo=s+948|0,qs=(n[s+952>>2]|0)-(n[Eo>>2]|0)>>2,!qs){Dv(s,l,c,d,m,B,Q);break}if(!k&&Sv(s,l,c,d,m,B,Q)|0)break;ee(s),Ql=s+508|0,o[Ql>>0]=0,xr=ur(n[s+4>>2]|0,Bs)|0,lr=cI(xr,Bs)|0,jn=ue(xr)|0,Np=n[s+8>>2]|0,uf=s+28|0,Qc=(n[uf>>2]|0)!=0,yo=jn?B:Q,Tc=jn?Q:B,Op=y(yp(s,xr,B)),Mp=y(uI(s,xr,B)),Oe=y(yp(s,lr,B)),Rc=y(gn(s,xr,B)),Hs=y(gn(s,lr,B)),ir=jn?d:m,Rl=jn?m:d,vr=jn?Rc:Hs,at=jn?Hs:Rc,Fc=y(rn(s,2,B)),Ze=y(rn(s,0,B)),Re=y(y(Hr(s+364|0,B))-vr),et=y(y(Hr(s+380|0,B))-vr),He=y(y(Hr(s+372|0,Q))-at),Ge=y(y(Hr(s+388|0,Q))-at),Mu=jn?Re:He,Uu=jn?et:Ge,Fc=y(l-Fc),l=y(Fc-vr),Ot(l)|0?vr=l:vr=y(Ln(y(Pg(l,et)),Re)),af=y(c-Ze),l=y(af-at),Ot(l)|0?mo=l:mo=y(Ln(y(Pg(l,Ge)),He)),Re=jn?vr:mo,xn=jn?mo:vr;e:do if((ir|0)==1)for(f=0,j=0;;){if(O=Ts(s,j)|0,!f)y(rs(O))>y(0)&&y(Ms(O))>y(0)?f=O:f=0;else if(Fm(O)|0){We=0;break e}if(j=j+1|0,j>>>0>=qs>>>0){We=f;break}}else We=0;while(0);Tt=We+500|0,Rr=We+504|0,f=0,O=0,l=y(0),se=0;do{if(j=n[(n[Eo>>2]|0)+(se<<2)>>2]|0,(n[j+36>>2]|0)==1)xu(j),o[j+985>>0]=1,o[j+984>>0]=0;else{vl(j),k&&mp(j,gt(j,Bs)|0,Re,xn,vr);do if((n[j+24>>2]|0)!=1)if((j|0)==(We|0)){n[Tt>>2]=n[2278],h[Rr>>2]=y(0);break}else{Rm(s,j,vr,d,mo,vr,mo,m,Bs,M);break}else O|0&&(n[O+960>>2]=j),n[j+960>>2]=0,O=j,f=(f|0)==0?j:f;while(0);ws=y(h[j+504>>2]),l=y(l+y(ws+y(rn(j,xr,vr))))}se=se+1|0}while((se|0)!=(qs|0));for(ho=l>Re,Fl=Qc&((ir|0)==2&ho)?1:ir,Bn=(Rl|0)==1,ma=Bn&(k^1),Qp=(Fl|0)==1,kp=(Fl|0)==2,bl=976+(xr<<2)|0,Fp=(Rl|2|0)==2,Lp=Bn&(Qc^1),Nu=1040+(lr<<2)|0,Ou=1040+(xr<<2)|0,Rp=976+(lr<<2)|0,Tp=(Rl|0)!=1,ho=Qc&((ir|0)!=0&ho),po=s+976|0,Bn=Bn^1,l=Re,Qr=0,go=0,ws=y(0),kc=y(0);;){e:do if(Qr>>>0>>0)for(Rr=n[Eo>>2]|0,se=0,Ge=y(0),He=y(0),et=y(0),Re=y(0),j=0,O=0,We=Qr;;){if(Tt=n[Rr+(We<<2)>>2]|0,(n[Tt+36>>2]|0)!=1&&(n[Tt+940>>2]=go,(n[Tt+24>>2]|0)!=1)){if(Ze=y(rn(Tt,xr,vr)),Vr=n[bl>>2]|0,c=y(Hr(Tt+380+(Vr<<3)|0,yo)),at=y(h[Tt+504>>2]),c=y(Pg(c,at)),c=y(Ln(y(Hr(Tt+364+(Vr<<3)|0,yo)),c)),Qc&(se|0)!=0&y(Ze+y(He+c))>l){m=se,Ze=Ge,ir=We;break e}Ze=y(Ze+c),c=y(He+Ze),Ze=y(Ge+Ze),Fm(Tt)|0&&(et=y(et+y(rs(Tt))),Re=y(Re-y(at*y(Ms(Tt))))),O|0&&(n[O+960>>2]=Tt),n[Tt+960>>2]=0,se=se+1|0,O=Tt,j=(j|0)==0?Tt:j}else Ze=Ge,c=He;if(We=We+1|0,We>>>0>>0)Ge=Ze,He=c;else{m=se,ir=We;break}}else m=0,Ze=y(0),et=y(0),Re=y(0),j=0,ir=Qr;while(0);Vr=et>y(0)&ety(0)&ReUu&((Ot(Uu)|0)^1))l=Uu,Vr=51;else if(o[(n[po>>2]|0)+3>>0]|0)Vr=51;else{if(Vt!=y(0)&&y(rs(s))!=y(0)){Vr=53;break}l=Ze,Vr=53}while(0);if((Vr|0)==51&&(Vr=0,Ot(l)|0?Vr=53:(Ir=y(l-Ze),rr=l)),(Vr|0)==53&&(Vr=0,Ze>2]|0,We=Iry(0),He=y(Ir/Vt),et=y(0),Ze=y(0),l=y(0),O=j;do c=y(Hr(O+380+(se<<3)|0,yo)),Re=y(Hr(O+364+(se<<3)|0,yo)),Re=y(Pg(c,y(Ln(Re,y(h[O+504>>2]))))),We?(c=y(Re*y(Ms(O))),c!=y(-0)&&(Wt=y(Re-y(at*c)),nf=y(Ci(O,xr,Wt,rr,vr)),Wt!=nf)&&(et=y(et-y(nf-Re)),l=y(l+c))):Tt&&(_u=y(rs(O)),_u!=y(0))&&(Wt=y(Re+y(He*_u)),sf=y(Ci(O,xr,Wt,rr,vr)),Wt!=sf)&&(et=y(et-y(sf-Re)),Ze=y(Ze-_u)),O=n[O+960>>2]|0;while((O|0)!=0);if(l=y(Ge+l),Re=y(Ir+et),rf)l=y(0);else{at=y(Vt+Ze),We=n[bl>>2]|0,Tt=Rey(0),at=y(Re/at),l=y(0);do{Wt=y(Hr(j+380+(We<<3)|0,yo)),et=y(Hr(j+364+(We<<3)|0,yo)),et=y(Pg(Wt,y(Ln(et,y(h[j+504>>2]))))),Tt?(Wt=y(et*y(Ms(j))),Re=y(-Wt),Wt!=y(-0)?(Wt=y(He*Re),Re=y(Ci(j,xr,y(et+(Rr?Re:Wt)),rr,vr))):Re=et):se&&(of=y(rs(j)),of!=y(0))?Re=y(Ci(j,xr,y(et+y(at*of)),rr,vr)):Re=et,l=y(l-y(Re-et)),Ze=y(rn(j,xr,vr)),c=y(rn(j,lr,vr)),Re=y(Re+Ze),h[Za>>2]=Re,n[kl>>2]=1,et=y(h[j+396>>2]);e:do if(Ot(et)|0){O=Ot(xn)|0;do if(!O){if(ho|(ts(j,lr,xn)|0|Bn)||(pa(s,j)|0)!=4||(n[(Dl(j,lr)|0)+4>>2]|0)==3||(n[(xc(j,lr)|0)+4>>2]|0)==3)break;h[Us>>2]=xn,n[Ho>>2]=1;break e}while(0);if(ts(j,lr,xn)|0){O=n[j+992+(n[Rp>>2]<<2)>>2]|0,Wt=y(c+y(Hr(O,xn))),h[Us>>2]=Wt,O=Tp&(n[O+4>>2]|0)==2,n[Ho>>2]=((Ot(Wt)|0|O)^1)&1;break}else{h[Us>>2]=xn,n[Ho>>2]=O?0:2;break}}else Wt=y(Re-Ze),Vt=y(Wt/et),Wt=y(et*Wt),n[Ho>>2]=1,h[Us>>2]=y(c+(jn?Vt:Wt));while(0);pr(j,xr,rr,vr,kl,Za),pr(j,lr,xn,vr,Ho,Us);do if(!(ts(j,lr,xn)|0)&&(pa(s,j)|0)==4){if((n[(Dl(j,lr)|0)+4>>2]|0)==3){O=0;break}O=(n[(xc(j,lr)|0)+4>>2]|0)!=3}else O=0;while(0);Wt=y(h[Za>>2]),Vt=y(h[Us>>2]),pf=n[kl>>2]|0,ni=n[Ho>>2]|0,Aa(j,jn?Wt:Vt,jn?Vt:Wt,Bs,jn?pf:ni,jn?ni:pf,vr,mo,k&(O^1),3488,M)|0,o[Ql>>0]=o[Ql>>0]|o[j+508>>0],j=n[j+960>>2]|0}while((j|0)!=0)}}else l=y(0);if(l=y(Ir+l),ni=l>0]=ni|u[Ql>>0],kp&l>y(0)?(O=n[bl>>2]|0,(n[s+364+(O<<3)+4>>2]|0)!=0&&(_s=y(Hr(s+364+(O<<3)|0,yo)),_s>=y(0))?Re=y(Ln(y(0),y(_s-y(rr-l)))):Re=y(0)):Re=l,Tt=Qr>>>0>>0,Tt){We=n[Eo>>2]|0,se=Qr,O=0;do j=n[We+(se<<2)>>2]|0,n[j+24>>2]|0||(O=((n[(Dl(j,xr)|0)+4>>2]|0)==3&1)+O|0,O=O+((n[(xc(j,xr)|0)+4>>2]|0)==3&1)|0),se=se+1|0;while((se|0)!=(ir|0));O?(Ze=y(0),c=y(0)):Vr=101}else Vr=101;e:do if((Vr|0)==101)switch(Vr=0,Np|0){case 1:{O=0,Ze=y(Re*y(.5)),c=y(0);break e}case 2:{O=0,Ze=Re,c=y(0);break e}case 3:{if(m>>>0<=1){O=0,Ze=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),O=0,Ze=y(0),c=y(y(Ln(Re,y(0)))/c);break e}case 5:{c=y(Re/y((m+1|0)>>>0)),O=0,Ze=c;break e}case 4:{c=y(Re/y(m>>>0)),O=0,Ze=y(c*y(.5));break e}default:{O=0,Ze=y(0),c=y(0);break e}}while(0);if(l=y(Op+Ze),Tt){et=y(Re/y(O|0)),se=n[Eo>>2]|0,j=Qr,Re=y(0);do{O=n[se+(j<<2)>>2]|0;e:do if((n[O+36>>2]|0)!=1){switch(n[O+24>>2]|0){case 1:{if(Ai(O,xr)|0){if(!k)break e;Wt=y(Fr(O,xr,rr)),Wt=y(Wt+y(gr(s,xr))),Wt=y(Wt+y(K(O,xr,vr))),h[O+400+(n[Ou>>2]<<2)>>2]=Wt;break e}break}case 0:if(ni=(n[(Dl(O,xr)|0)+4>>2]|0)==3,Wt=y(et+l),l=ni?Wt:l,k&&(ni=O+400+(n[Ou>>2]<<2)|0,h[ni>>2]=y(l+y(h[ni>>2]))),ni=(n[(xc(O,xr)|0)+4>>2]|0)==3,Wt=y(et+l),l=ni?Wt:l,ma){Wt=y(c+y(rn(O,xr,vr))),Re=xn,l=y(l+y(Wt+y(h[O+504>>2])));break e}else{l=y(l+y(c+y(ns(O,xr,vr)))),Re=y(Ln(Re,y(ns(O,lr,vr))));break e}default:}k&&(Wt=y(Ze+y(gr(s,xr))),ni=O+400+(n[Ou>>2]<<2)|0,h[ni>>2]=y(Wt+y(h[ni>>2])))}while(0);j=j+1|0}while((j|0)!=(ir|0))}else Re=y(0);if(c=y(Mp+l),Fp?Ze=y(y(Ci(s,lr,y(Hs+Re),Tc,B))-Hs):Ze=xn,et=y(y(Ci(s,lr,y(Hs+(Lp?xn:Re)),Tc,B))-Hs),Tt&k){j=Qr;do{se=n[(n[Eo>>2]|0)+(j<<2)>>2]|0;do if((n[se+36>>2]|0)!=1){if((n[se+24>>2]|0)==1){if(Ai(se,lr)|0){if(Wt=y(Fr(se,lr,xn)),Wt=y(Wt+y(gr(s,lr))),Wt=y(Wt+y(K(se,lr,vr))),O=n[Nu>>2]|0,h[se+400+(O<<2)>>2]=Wt,!(Ot(Wt)|0))break}else O=n[Nu>>2]|0;Wt=y(gr(s,lr)),h[se+400+(O<<2)>>2]=y(Wt+y(K(se,lr,vr)));break}O=pa(s,se)|0;do if((O|0)==4){if((n[(Dl(se,lr)|0)+4>>2]|0)==3){Vr=139;break}if((n[(xc(se,lr)|0)+4>>2]|0)==3){Vr=139;break}if(ts(se,lr,xn)|0){l=Oe;break}pf=n[se+908+(n[bl>>2]<<2)>>2]|0,n[Us>>2]=pf,l=y(h[se+396>>2]),ni=Ot(l)|0,Re=(n[v>>2]=pf,y(h[v>>2])),ni?l=et:(Ir=y(rn(se,lr,vr)),Wt=y(Re/l),l=y(l*Re),l=y(Ir+(jn?Wt:l))),h[Za>>2]=l,h[Us>>2]=y(y(rn(se,xr,vr))+Re),n[Ho>>2]=1,n[kl>>2]=1,pr(se,xr,rr,vr,Ho,Us),pr(se,lr,xn,vr,kl,Za),l=y(h[Us>>2]),Ir=y(h[Za>>2]),Wt=jn?l:Ir,l=jn?Ir:l,ni=((Ot(Wt)|0)^1)&1,Aa(se,Wt,l,Bs,ni,((Ot(l)|0)^1)&1,vr,mo,1,3493,M)|0,l=Oe}else Vr=139;while(0);e:do if((Vr|0)==139){Vr=0,l=y(Ze-y(ns(se,lr,vr)));do if((n[(Dl(se,lr)|0)+4>>2]|0)==3){if((n[(xc(se,lr)|0)+4>>2]|0)!=3)break;l=y(Oe+y(Ln(y(0),y(l*y(.5)))));break e}while(0);if((n[(xc(se,lr)|0)+4>>2]|0)==3){l=Oe;break}if((n[(Dl(se,lr)|0)+4>>2]|0)==3){l=y(Oe+y(Ln(y(0),l)));break}switch(O|0){case 1:{l=Oe;break e}case 2:{l=y(Oe+y(l*y(.5)));break e}default:{l=y(Oe+l);break e}}}while(0);Wt=y(ws+l),ni=se+400+(n[Nu>>2]<<2)|0,h[ni>>2]=y(Wt+y(h[ni>>2]))}while(0);j=j+1|0}while((j|0)!=(ir|0))}if(ws=y(ws+et),kc=y(Ln(kc,c)),m=go+1|0,ir>>>0>=qs>>>0)break;l=rr,Qr=ir,go=m}do if(k){if(O=m>>>0>1,!O&&!(Gi(s)|0))break;if(!(Ot(xn)|0)){l=y(xn-ws);e:do switch(n[s+12>>2]|0){case 3:{Oe=y(Oe+l),He=y(0);break}case 2:{Oe=y(Oe+y(l*y(.5))),He=y(0);break}case 4:{xn>ws?He=y(l/y(m>>>0)):He=y(0);break}case 7:if(xn>ws){Oe=y(Oe+y(l/y(m<<1>>>0))),He=y(l/y(m>>>0)),He=O?He:y(0);break e}else{Oe=y(Oe+y(l*y(.5))),He=y(0);break e}case 6:{He=y(l/y(go>>>0)),He=xn>ws&O?He:y(0);break}default:He=y(0)}while(0);if(m|0)for(Tt=1040+(lr<<2)|0,Rr=976+(lr<<2)|0,We=0,j=0;;){e:do if(j>>>0>>0)for(Re=y(0),et=y(0),l=y(0),se=j;;){O=n[(n[Eo>>2]|0)+(se<<2)>>2]|0;do if((n[O+36>>2]|0)!=1&&(n[O+24>>2]|0)==0){if((n[O+940>>2]|0)!=(We|0))break e;if(Tm(O,lr)|0&&(Wt=y(h[O+908+(n[Rr>>2]<<2)>>2]),l=y(Ln(l,y(Wt+y(rn(O,lr,vr)))))),(pa(s,O)|0)!=5)break;_s=y(Ka(O)),_s=y(_s+y(K(O,0,vr))),Wt=y(h[O+912>>2]),Wt=y(y(Wt+y(rn(O,0,vr)))-_s),_s=y(Ln(et,_s)),Wt=y(Ln(Re,Wt)),Re=Wt,et=_s,l=y(Ln(l,y(_s+Wt)))}while(0);if(O=se+1|0,O>>>0>>0)se=O;else{se=O;break}}else et=y(0),l=y(0),se=j;while(0);if(at=y(He+l),c=Oe,Oe=y(Oe+at),j>>>0>>0){Ze=y(c+et),O=j;do{j=n[(n[Eo>>2]|0)+(O<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&(n[j+24>>2]|0)==0)switch(pa(s,j)|0){case 1:{Wt=y(c+y(K(j,lr,vr))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 3:{Wt=y(y(Oe-y(te(j,lr,vr)))-y(h[j+908+(n[Rr>>2]<<2)>>2])),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 2:{Wt=y(c+y(y(at-y(h[j+908+(n[Rr>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 4:{if(Wt=y(c+y(K(j,lr,vr))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt,ts(j,lr,xn)|0||(jn?(Re=y(h[j+908>>2]),l=y(Re+y(rn(j,xr,vr))),et=at):(et=y(h[j+912>>2]),et=y(et+y(rn(j,lr,vr))),l=at,Re=y(h[j+908>>2])),Ei(l,Re)|0&&Ei(et,y(h[j+912>>2]))|0))break e;Aa(j,l,et,Bs,1,1,vr,mo,1,3501,M)|0;break e}case 5:{h[j+404>>2]=y(y(Ze-y(Ka(j)))+y(Fr(j,0,xn)));break e}default:break e}while(0);O=O+1|0}while((O|0)!=(se|0))}if(We=We+1|0,(We|0)==(m|0))break;j=se}}}while(0);if(h[s+908>>2]=y(Ci(s,2,Fc,B,B)),h[s+912>>2]=y(Ci(s,0,af,Q,B)),(Fl|0)!=0&&(lf=n[s+32>>2]|0,cf=(Fl|0)==2,!(cf&(lf|0)!=2))?cf&(lf|0)==2&&(l=y(Rc+rr),l=y(Ln(y(Pg(l,y(OA(s,xr,kc,yo)))),Rc)),Vr=198):(l=y(Ci(s,xr,kc,yo,B)),Vr=198),(Vr|0)==198&&(h[s+908+(n[976+(xr<<2)>>2]<<2)>>2]=l),(Rl|0)!=0&&(Af=n[s+32>>2]|0,ff=(Rl|0)==2,!(ff&(Af|0)!=2))?ff&(Af|0)==2&&(l=y(Hs+xn),l=y(Ln(y(Pg(l,y(OA(s,lr,y(Hs+ws),Tc)))),Hs)),Vr=204):(l=y(Ci(s,lr,y(Hs+ws),Tc,B)),Vr=204),(Vr|0)==204&&(h[s+908+(n[976+(lr<<2)>>2]<<2)>>2]=l),k){if((n[uf>>2]|0)==2){j=976+(lr<<2)|0,se=1040+(lr<<2)|0,O=0;do We=Ts(s,O)|0,n[We+24>>2]|0||(pf=n[j>>2]|0,Wt=y(h[s+908+(pf<<2)>>2]),ni=We+400+(n[se>>2]<<2)|0,Wt=y(Wt-y(h[ni>>2])),h[ni>>2]=y(Wt-y(h[We+908+(pf<<2)>>2]))),O=O+1|0;while((O|0)!=(qs|0))}if(f|0){O=jn?Fl:d;do Lm(s,f,vr,O,mo,Bs,M),f=n[f+960>>2]|0;while((f|0)!=0)}if(O=(xr|2|0)==3,j=(lr|2|0)==3,O|j){f=0;do se=n[(n[Eo>>2]|0)+(f<<2)>>2]|0,(n[se+36>>2]|0)!=1&&(O&&Ep(s,se,xr),j&&Ep(s,se,lr)),f=f+1|0;while((f|0)!=(qs|0))}}}while(0);E=Tl}function fa(s,l){s=s|0,l=y(l);var c=0;ra(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function Dc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=$e,m=$e,B=0,Q=0,k=0;n[2278]=(n[2278]|0)+1,vl(s),ts(s,2,l)|0?(d=y(Hr(n[s+992>>2]|0,l)),k=1,d=y(d+y(rn(s,2,l)))):(d=y(Hr(s+380|0,l)),d>=y(0)?k=2:(k=((Ot(l)|0)^1)&1,d=l)),ts(s,0,c)|0?(m=y(Hr(n[s+996>>2]|0,c)),Q=1,m=y(m+y(rn(s,0,l)))):(m=y(Hr(s+388|0,c)),m>=y(0)?Q=2:(Q=((Ot(c)|0)^1)&1,m=c)),B=s+976|0,Aa(s,d,m,f,k,Q,l,c,1,3189,n[B>>2]|0)|0&&(mp(s,n[s+496>>2]|0,l,c,l),Sc(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&bm(s,7)}function vl(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;Q=E,E=E+32|0,B=Q+24|0,m=Q+16|0,f=Q+8|0,d=Q,c=0;do l=s+380+(c<<3)|0,(n[s+380+(c<<3)+4>>2]|0)!=0&&(k=l,M=n[k+4>>2]|0,O=f,n[O>>2]=n[k>>2],n[O+4>>2]=M,O=s+364+(c<<3)|0,M=n[O+4>>2]|0,k=d,n[k>>2]=n[O>>2],n[k+4>>2]=M,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],Es(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);E=Q}function ts(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])>2])>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(he)}return y(l)}function mp(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=$e;l=n[s+944>>2]|0?l:1,m=ur(n[s+4>>2]|0,l)|0,l=cI(m,l)|0,c=y(Nm(s,m,c)),f=y(Nm(s,l,f)),B=y(c+y(K(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(te(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(K(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(te(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function Sc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=$e,Q=$e,k=0,M=0,O=$e,j=0,se=$e,We=$e,Oe=$e,Re=$e;if(l!=y(0)&&(d=s+400|0,Re=y(h[d>>2]),m=s+404|0,Oe=y(h[m>>2]),j=s+416|0,We=y(h[j>>2]),M=s+420|0,B=y(h[M>>2]),se=y(Re+c),O=y(Oe+f),f=y(se+We),Q=y(O+B),k=(n[s+988>>2]|0)==1,h[d>>2]=y(Uo(Re,l,0,k)),h[m>>2]=y(Uo(Oe,l,0,k)),c=y(wR(y(We*l),y(1))),Ei(c,y(0))|0?m=0:m=(Ei(c,y(1))|0)^1,c=y(wR(y(B*l),y(1))),Ei(c,y(0))|0?d=0:d=(Ei(c,y(1))|0)^1,Re=y(Uo(f,l,k&m,k&(m^1))),h[j>>2]=y(Re-y(Uo(se,l,0,k))),Re=y(Uo(Q,l,k&d,k&(d^1))),h[M>>2]=y(Re-y(Uo(O,l,0,k))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do Sc(Ts(s,d)|0,l,se,O),d=d+1|0;while((d|0)!=(m|0))}}function lI(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=Z5(n[489]|0,f,d)|0;break}default:s=g3e(f,d)|0}return s|0}function pg(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=E,E=E+16|0,m=d,n[m>>2]=f,hg(s,0,l,c,m),E=d}function hg(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,E7[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Rt();else return}function Ya(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function km(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(gg(s,f),kt(s,n[l>>2]|0,n[c>>2]|0,f))}function gg(s,l){s=s|0,l=l|0;var c=0;if((L(s)|0)>>>0>>0&&Jr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function kt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Cr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function L(s){return s=s|0,1073741823}function K(s,l,c){return s=s|0,l=l|0,c=y(c),ue(l)|0&&(n[s+96>>2]|0)!=0?s=s+92|0:s=Sn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function te(s,l,c){return s=s|0,l=l|0,c=y(c),ue(l)|0&&(n[s+104>>2]|0)!=0?s=s+100|0:s=Sn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function ue(s){return s=s|0,(s|1|0)==3|0}function ze(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Hr(s,l)),y(l)}function gt(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,((s|0)==0?(l|0)>1?l:1:s)|0}function ur(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(0);return s|0}function gr(s,l){s=s|0,l=l|0;var c=$e;return ue(l)|0&&(n[s+312>>2]|0)!=0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(Ln(y(h[(Sn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function hn(s,l){s=s|0,l=l|0;var c=$e;return ue(l)|0&&(n[s+320>>2]|0)!=0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(Ln(y(h[(Sn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function ti(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return ue(l)|0&&(n[s+240>>2]|0)!=0&&(f=y(Hr(s+236|0,c)),f>=y(0))||(f=y(Ln(y(Hr(Sn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Li(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return ue(l)|0&&(n[s+248>>2]|0)!=0&&(f=y(Hr(s+244|0,c)),f>=y(0))||(f=y(Ln(y(Hr(Sn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function dg(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=$e,k=$e,M=$e,O=$e,j=$e,se=$e,We=0,Oe=0,Re=0;Re=E,E=E+16|0,We=Re,Oe=s+964|0,Wn(s,(n[Oe>>2]|0)!=0,3519),Q=y(gn(s,2,l)),k=y(gn(s,0,l)),M=y(rn(s,2,l)),O=y(rn(s,0,l)),Ot(l)|0?j=l:j=y(Ln(y(0),y(y(l-M)-Q))),Ot(c)|0?se=c:se=y(Ln(y(0),y(y(c-O)-k))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Ci(s,2,y(l-M),m,m)),l=y(Ci(s,0,y(c-O),B,m))):(C7[n[Oe>>2]&1](We,s,j,f,se,d),j=y(Q+y(h[We>>2])),se=y(l-M),h[s+908>>2]=y(Ci(s,2,(f|2|0)==2?j:se,m,m)),se=y(k+y(h[We+4>>2])),l=y(c-O),l=y(Ci(s,0,(d|2|0)==2?se:l,B,m))),h[s+912>>2]=l,E=Re}function Dv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=$e,k=$e,M=$e,O=$e;M=y(gn(s,2,m)),Q=y(gn(s,0,m)),O=y(rn(s,2,m)),k=y(rn(s,0,m)),l=y(l-O),h[s+908>>2]=y(Ci(s,2,(f|2|0)==2?M:l,m,m)),c=y(c-k),h[s+912>>2]=y(Ci(s,0,(d|2|0)==2?Q:c,B,m))}function Sv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=0,k=$e,M=$e;return Q=(f|0)==2,!(l<=y(0)&Q)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(k=y(rn(s,0,m)),M=y(rn(s,2,m)),Q=l>2]=y(Ci(s,2,Q?y(0):l,m,m)),l=y(c-k),Q=c>2]=y(Ci(s,0,Q?y(0):l,B,m)),s=1),s|0}function cI(s,l){return s=s|0,l=l|0,MA(s)|0?s=ur(2,l)|0:s=0,s|0}function yp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(ti(s,l,c)),y(c+y(gr(s,l)))}function uI(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(Li(s,l,c)),y(c+y(hn(s,l)))}function gn(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(yp(s,l,c)),y(f+y(uI(s,l,c)))}function Fm(s){return s=s|0,n[s+24>>2]|0?s=0:y(rs(s))!=y(0)?s=1:s=y(Ms(s))!=y(0),s|0}function rs(s){s=s|0;var l=$e;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),Ot(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((Ot(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function Ms(s){s=s|0;var l=$e,c=0,f=$e;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),Ot(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,c<<24>>24==0&&(f=y(h[s+40>>2]),f>24?y(1):y(0)}}else l=y(0);while(0);return y(l)}function xu(s){s=s|0;var l=0,c=0;if(Vm(s+400|0,0,540)|0,o[s+985>>0]=1,ee(s),c=Zi(s)|0,c|0){l=s+948|0,s=0;do xu(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function Rm(s,l,c,f,d,m,B,Q,k,M){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),Q=Q|0,k=k|0,M=M|0;var O=0,j=$e,se=0,We=0,Oe=$e,Re=$e,et=0,Ze=$e,at=0,He=$e,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0,Bn=0,po=0;Bn=E,E=E+16|0,Rr=Bn+12|0,ir=Bn+8|0,Vt=Bn+4|0,Ir=Bn,rr=ur(n[s+4>>2]|0,k)|0,Ge=ue(rr)|0,j=y(Hr(AI(l)|0,Ge?m:B)),Tt=ts(l,2,m)|0,Qr=ts(l,0,B)|0;do if(!(Ot(j)|0)&&!(Ot(Ge?c:d)|0)){if(O=l+504|0,!(Ot(y(h[O>>2]))|0)&&(!(fI(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[O>>2]=y(Ln(j,y(gn(l,rr,m))))}else se=7;while(0);do if((se|0)==7){if(at=Ge^1,!(at|Tt^1)){B=y(Hr(n[l+992>>2]|0,m)),h[l+504>>2]=y(Ln(B,y(gn(l,2,m))));break}if(!(Ge|Qr^1)){B=y(Hr(n[l+996>>2]|0,B)),h[l+504>>2]=y(Ln(B,y(gn(l,0,m))));break}h[Rr>>2]=y(he),h[ir>>2]=y(he),n[Vt>>2]=0,n[Ir>>2]=0,Ze=y(rn(l,2,m)),He=y(rn(l,0,m)),Tt?(Oe=y(Ze+y(Hr(n[l+992>>2]|0,m))),h[Rr>>2]=Oe,n[Vt>>2]=1,We=1):(We=0,Oe=y(he)),Qr?(j=y(He+y(Hr(n[l+996>>2]|0,B))),h[ir>>2]=j,n[Ir>>2]=1,O=1):(O=0,j=y(he)),se=n[s+32>>2]|0,Ge&(se|0)==2?se=2:Ot(Oe)|0&&!(Ot(c)|0)&&(h[Rr>>2]=c,n[Vt>>2]=2,We=2,Oe=c),!((se|0)==2&at)&&Ot(j)|0&&!(Ot(d)|0)&&(h[ir>>2]=d,n[Ir>>2]=2,O=2,j=d),Re=y(h[l+396>>2]),et=Ot(Re)|0;do if(et)se=We;else{if((We|0)==1&at){h[ir>>2]=y(y(Oe-Ze)/Re),n[Ir>>2]=1,O=1,se=1;break}Ge&(O|0)==1?(h[Rr>>2]=y(Re*y(j-He)),n[Vt>>2]=1,O=1,se=1):se=We}while(0);po=Ot(c)|0,We=(pa(s,l)|0)!=4,!(Ge|Tt|((f|0)!=1|po)|(We|(se|0)==1))&&(h[Rr>>2]=c,n[Vt>>2]=1,!et)&&(h[ir>>2]=y(y(c-Ze)/Re),n[Ir>>2]=1,O=1),!(Qr|at|((Q|0)!=1|(Ot(d)|0))|(We|(O|0)==1))&&(h[ir>>2]=d,n[Ir>>2]=1,!et)&&(h[Rr>>2]=y(Re*y(d-He)),n[Vt>>2]=1),pr(l,2,m,m,Vt,Rr),pr(l,0,B,m,Ir,ir),c=y(h[Rr>>2]),d=y(h[ir>>2]),Aa(l,c,d,k,n[Vt>>2]|0,n[Ir>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(rr<<2)>>2]<<2)>>2]),h[l+504>>2]=y(Ln(B,y(gn(l,rr,m))))}while(0);n[l+500>>2]=n[2278],E=Bn}function Ci(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(OA(s,l,c,f)),y(Ln(f,y(gn(s,l,d))))}function pa(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[((n[l>>2]|0)==0?s+16|0:l)>>2]|0,(l|0)==5&&MA(n[s+4>>2]|0)|0&&(l=1),l|0}function Dl(s,l){return s=s|0,l=l|0,ue(l)|0&&(n[s+96>>2]|0)!=0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function xc(s,l){return s=s|0,l=l|0,ue(l)|0&&(n[s+104>>2]|0)!=0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function pr(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Hr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(rn(s,l,f))),n[d>>2]|0){case 2:case 1:{d=Ot(c)|0,f=y(h[m>>2]),h[m>>2]=d|f>2]=2,h[m>>2]=c);break}default:}}function Ai(s,l){return s=s|0,l=l|0,s=s+132|0,ue(l)|0&&(n[(Sn(s,4,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Sn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Fr(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,ue(l)|0&&(f=Sn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Sn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Hr(f,c))),y(c)}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(K(s,l,c))),y(f+y(te(s,l,c)))}function Gi(s){s=s|0;var l=0,c=0,f=0;e:do if(MA(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=Zi(s)|0,!c)l=0;else for(l=0;;){if(f=Ts(s,l)|0,(n[f+24>>2]|0)==0&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(0);return l|0}function Tm(s,l){s=s|0,l=l|0;var c=$e;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((Ot(c)|0)^1)|0}function Ka(s){s=s|0;var l=$e,c=0,f=0,d=0,m=0,B=0,Q=0,k=$e;if(c=n[s+968>>2]|0,c)k=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(g7[c&0](s,k,l)),Wn(s,(Ot(l)|0)^1,3573);else{m=Zi(s)|0;do if(m|0){for(c=0,d=0;;){if(f=Ts(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(Q=(pa(s,f)|0)==5,Q){c=f;break}else c=(c|0)==0?f:c;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(Ka(c)),y(l+y(h[c+404>>2]))}while(0);l=y(h[s+912>>2])}return y(l)}function OA(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=$e,m=0;return MA(l)|0?(l=1,m=3):ue(l)|0?(l=0,m=3):(f=y(he),d=y(he)),(m|0)==3&&(d=y(Hr(s+364+(l<<3)|0,f)),f=y(Hr(s+380+(l<<3)|0,f))),m=f=y(0)&((Ot(f)|0)^1)),c=m?f:c,m=d>=y(0)&((Ot(d)|0)^1)&c>2]|0,m)|0,Oe=cI(et,m)|0,Re=ue(et)|0,j=y(rn(l,2,c)),se=y(rn(l,0,c)),ts(l,2,c)|0?Q=y(j+y(Hr(n[l+992>>2]|0,c))):Ai(l,2)|0&&nr(l,2)|0?(Q=y(h[s+908>>2]),k=y(gr(s,2)),k=y(Q-y(k+y(hn(s,2)))),Q=y(Fr(l,2,c)),Q=y(Ci(l,2,y(k-y(Q+y(Pu(l,2,c)))),c,c))):Q=y(he),ts(l,0,d)|0?k=y(se+y(Hr(n[l+996>>2]|0,d))):Ai(l,0)|0&&nr(l,0)|0?(k=y(h[s+912>>2]),at=y(gr(s,0)),at=y(k-y(at+y(hn(s,0)))),k=y(Fr(l,0,d)),k=y(Ci(l,0,y(at-y(k+y(Pu(l,0,d)))),d,c))):k=y(he),M=Ot(Q)|0,O=Ot(k)|0;do if(M^O&&(We=y(h[l+396>>2]),!(Ot(We)|0)))if(M){Q=y(j+y(y(k-se)*We));break}else{at=y(se+y(y(Q-j)/We)),k=O?at:k;break}while(0);O=Ot(Q)|0,M=Ot(k)|0,O|M&&(He=(O^1)&1,f=c>y(0)&((f|0)!=0&O),Q=Re?Q:f?c:Q,Aa(l,Q,k,m,Re?He:f?2:He,O&(M^1)&1,Q,k,0,3623,B)|0,Q=y(h[l+908>>2]),Q=y(Q+y(rn(l,2,c))),k=y(h[l+912>>2]),k=y(k+y(rn(l,0,c)))),Aa(l,Q,k,m,1,1,Q,k,1,3635,B)|0,nr(l,et)|0&&!(Ai(l,et)|0)?(He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),at=y(at-y(hn(s,et))),at=y(at-y(te(l,et,c))),at=y(at-y(Pu(l,et,Re?c:d))),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at):Ze=21;do if((Ze|0)==21){if(!(Ai(l,et)|0)&&(n[s+8>>2]|0)==1){He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(y(at-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at;break}!(Ai(l,et)|0)&&(n[s+8>>2]|0)==2&&(He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at)}while(0);nr(l,Oe)|0&&!(Ai(l,Oe)|0)?(He=n[976+(Oe<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),at=y(at-y(hn(s,Oe))),at=y(at-y(te(l,Oe,c))),at=y(at-y(Pu(l,Oe,Re?d:c))),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=at):Ze=30;do if((Ze|0)==30&&!(Ai(l,Oe)|0)){if((pa(s,l)|0)==2){He=n[976+(Oe<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(y(at-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=at;break}He=(pa(s,l)|0)==3,He^(n[s+28>>2]|0)==2&&(He=n[976+(Oe<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=at)}while(0)}function Ep(s,l,c){s=s|0,l=l|0,c=c|0;var f=$e,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function MA(s){return s=s|0,(s|1|0)==1|0}function AI(s){s=s|0;var l=$e;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((Ot(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function fI(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function nr(s,l){return s=s|0,l=l|0,s=s+132|0,ue(l)|0&&(n[(Sn(s,5,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Sn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Pu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,ue(l)|0&&(f=Sn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Sn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Hr(f,c))),y(c)}function Nm(s,l,c){return s=s|0,l=l|0,c=y(c),Ai(s,l)|0?c=y(Fr(s,l,c)):c=y(-y(Pu(s,l,c))),y(c)}function bu(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function Cp(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function mg(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function UA(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function _A(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;if(B=s+4|0,Q=n[B>>2]|0,d=Q-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0>>0){f=Q;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0>>0)}m|0&&SI(Q+(0-m<<2)|0,l|0,d|0)|0}function yg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0;return Q=l+4|0,k=n[Q>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=k+(0-(m>>2)<<2)|0,n[Q>>2]=f,(m|0)>0&&Cr(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(Cr(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[Q>>2],n[Q>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[Q>>2],k|0}function pI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function Om(){mc()}function ha(){var s=0;return s=Gt(4)|0,HA(s),s|0}function HA(s){s=s|0,n[s>>2]=$i()|0}function Pc(s){s=s|0,s|0&&(Eg(s),pt(s))}function Eg(s){s=s|0,mi(n[s>>2]|0)}function Mm(s,l,c){s=s|0,l=l|0,c=c|0,Ya(n[s>>2]|0,l,c)}function uo(s,l){s=s|0,l=y(l),fa(n[s>>2]|0,l)}function xv(s,l){return s=s|0,l=l|0,fI(n[s>>2]|0,l)|0}function hI(){var s=0;return s=Gt(8)|0,Pv(s,0),s|0}function Pv(s,l){s=s|0,l=l|0,l?l=di(n[l>>2]|0)|0:l=oo()|0,n[s>>2]=l,n[s+4>>2]=0,_r(l,s)}function sF(s){s=s|0;var l=0;return l=Gt(8)|0,Pv(l,s),l|0}function bv(s){s=s|0,s|0&&(Qu(s),pt(s))}function Qu(s){s=s|0;var l=0;ia(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(qA(s),pt(s))}function qA(s){s=s|0,jA(s)}function jA(s){s=s|0,s=n[s>>2]|0,s|0&&PA(s|0)}function gI(s){return s=s|0,$n(s)|0}function Um(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(qA(l),pt(l)),ao(n[s>>2]|0)}function oF(s,l){s=s|0,l=l|0,tr(n[s>>2]|0,n[l>>2]|0)}function aF(s,l){s=s|0,l=l|0,la(n[s>>2]|0,l)}function Qv(s,l,c){s=s|0,l=l|0,c=+c,wu(n[s>>2]|0,l,y(c))}function kv(s,l,c){s=s|0,l=l|0,c=+c,ms(n[s>>2]|0,l,y(c))}function dI(s,l){s=s|0,l=l|0,yi(n[s>>2]|0,l)}function ku(s,l){s=s|0,l=l|0,qa(n[s>>2]|0,l)}function lF(s,l){s=s|0,l=l|0,kA(n[s>>2]|0,l)}function cF(s,l){s=s|0,l=l|0,Ti(n[s>>2]|0,l)}function Ip(s,l){s=s|0,l=l|0,Ec(n[s>>2]|0,l)}function uF(s,l){s=s|0,l=l|0,Ha(n[s>>2]|0,l)}function Fv(s,l,c){s=s|0,l=l|0,c=+c,Ic(n[s>>2]|0,l,y(c))}function GA(s,l,c){s=s|0,l=l|0,c=+c,G(n[s>>2]|0,l,y(c))}function AF(s,l){s=s|0,l=l|0,wl(n[s>>2]|0,l)}function fF(s,l){s=s|0,l=l|0,tg(n[s>>2]|0,l)}function Rv(s,l){s=s|0,l=l|0,up(n[s>>2]|0,l)}function mI(s,l){s=s|0,l=+l,FA(n[s>>2]|0,y(l))}function yI(s,l){s=s|0,l=+l,ja(n[s>>2]|0,y(l))}function pF(s,l){s=s|0,l=+l,ji(n[s>>2]|0,y(l))}function hF(s,l){s=s|0,l=+l,Os(n[s>>2]|0,y(l))}function Sl(s,l){s=s|0,l=+l,Iu(n[s>>2]|0,y(l))}function EI(s,l){s=s|0,l=+l,oI(n[s>>2]|0,y(l))}function gF(s,l){s=s|0,l=+l,RA(n[s>>2]|0,y(l))}function WA(s){s=s|0,Ap(n[s>>2]|0)}function _m(s,l){s=s|0,l=+l,ys(n[s>>2]|0,y(l))}function Fu(s,l){s=s|0,l=+l,ig(n[s>>2]|0,y(l))}function CI(s){s=s|0,sg(n[s>>2]|0)}function II(s,l){s=s|0,l=+l,fp(n[s>>2]|0,y(l))}function dF(s,l){s=s|0,l=+l,Bc(n[s>>2]|0,y(l))}function Tv(s,l){s=s|0,l=+l,Sm(n[s>>2]|0,y(l))}function YA(s,l){s=s|0,l=+l,ag(n[s>>2]|0,y(l))}function Lv(s,l){s=s|0,l=+l,vu(n[s>>2]|0,y(l))}function Hm(s,l){s=s|0,l=+l,xm(n[s>>2]|0,y(l))}function Nv(s,l){s=s|0,l=+l,Du(n[s>>2]|0,y(l))}function Ov(s,l){s=s|0,l=+l,aI(n[s>>2]|0,y(l))}function qm(s,l){s=s|0,l=+l,ua(n[s>>2]|0,y(l))}function Mv(s,l,c){s=s|0,l=l|0,c=+c,Bu(n[s>>2]|0,l,y(c))}function mF(s,l,c){s=s|0,l=l|0,c=+c,Si(n[s>>2]|0,l,y(c))}function S(s,l,c){s=s|0,l=l|0,c=+c,wc(n[s>>2]|0,l,y(c))}function D(s){return s=s|0,eg(n[s>>2]|0)|0}function T(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,Cc(d,n[l>>2]|0,c),q(s,d),E=f}function q(s,l){s=s|0,l=l|0,W(s,n[l+4>>2]|0,+y(h[l>>2]))}function W(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,C[s+8>>3]=c}function ce(s){return s=s|0,aa(n[s>>2]|0)|0}function Se(s){return s=s|0,lo(n[s>>2]|0)|0}function It(s){return s=s|0,yc(n[s>>2]|0)|0}function Et(s){return s=s|0,Yn(n[s>>2]|0)|0}function Pt(s){return s=s|0,Dm(n[s>>2]|0)|0}function Lr(s){return s=s|0,oa(n[s>>2]|0)|0}function is(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,Dt(d,n[l>>2]|0,c),q(s,d),E=f}function fi(s){return s=s|0,Kn(n[s>>2]|0)|0}function Ao(s){return s=s|0,rg(n[s>>2]|0)|0}function KA(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,ca(f,n[l>>2]|0),q(s,f),E=c}function _o(s){return s=s|0,+ +y(Zr(n[s>>2]|0))}function rt(s){return s=s|0,+ +y(Tn(n[s>>2]|0))}function Ve(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,yr(f,n[l>>2]|0),q(s,f),E=c}function ft(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,og(f,n[l>>2]|0),q(s,f),E=c}function jt(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,mt(f,n[l>>2]|0),q(s,f),E=c}function Er(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,lg(f,n[l>>2]|0),q(s,f),E=c}function In(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,cg(f,n[l>>2]|0),q(s,f),E=c}function Sr(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,Pm(f,n[l>>2]|0),q(s,f),E=c}function wn(s){return s=s|0,+ +y(vc(n[s>>2]|0))}function ri(s,l){return s=s|0,l=l|0,+ +y(ng(n[s>>2]|0,l))}function Xr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,lt(d,n[l>>2]|0,c),q(s,d),E=f}function fo(s,l,c){s=s|0,l=l|0,c=c|0,sa(n[s>>2]|0,n[l>>2]|0,c)}function yF(s,l){s=s|0,l=l|0,Ns(n[s>>2]|0,n[l>>2]|0)}function Eve(s){return s=s|0,Zi(n[s>>2]|0)|0}function Cve(s){return s=s|0,s=Pe(n[s>>2]|0)|0,s?s=gI(s)|0:s=0,s|0}function Ive(s,l){return s=s|0,l=l|0,s=Ts(n[s>>2]|0,l)|0,s?s=gI(s)|0:s=0,s|0}function wve(s,l){s=s|0,l=l|0;var c=0,f=0;f=Gt(4)|0,G9(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(qA(l),pt(l)),Ua(n[s>>2]|0,1)}function G9(s,l){s=s|0,l=l|0,Tve(s,l)}function Bve(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,Q=0;B=E,E=E+16|0,Q=B,vve(Q,$n(l)|0,+c,f,+d,m),h[s>>2]=y(+C[Q>>3]),h[s+4>>2]=y(+C[Q+8>>3]),E=B}function vve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,Q=0,k=0,M=0,O=0;B=E,E=E+32|0,O=B+8|0,M=B+20|0,k=B,Q=B+16|0,C[O>>3]=c,n[M>>2]=f,C[k>>3]=d,n[Q>>2]=m,Dve(s,n[l+4>>2]|0,O,M,k,Q),E=B}function Dve(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0;B=E,E=E+16|0,Q=B,Va(Q),l=ga(l)|0,Sve(s,l,+C[c>>3],n[f>>2]|0,+C[d>>3],n[m>>2]|0),za(Q),E=B}function ga(s){return s=s|0,n[s>>2]|0}function Sve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=xl(xve()|0)|0,c=+JA(c),f=EF(f)|0,d=+JA(d),Pve(s,ui(0,B|0,l|0,+c,f|0,+d,EF(m)|0)|0)}function xve(){var s=0;return o[7608]|0||(Fve(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function xl(s){return s=s|0,n[s+8>>2]|0}function JA(s){return s=+s,+ +CF(s)}function EF(s){return s=s|0,Y9(s)|0}function Pve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=E,E=E+32|0,c=d,f=l,f&1?(bve(c,0),Zn(f|0,c|0)|0,Qve(s,c),kve(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),E=d}function bve(s,l){s=s|0,l=l|0,W9(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function Qve(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function kve(s){s=s|0,o[s+24>>0]=0}function W9(s,l){s=s|0,l=l|0,n[s>>2]=l}function Y9(s){return s=s|0,s|0}function CF(s){return s=+s,+s}function Fve(s){s=s|0,Pl(s,Rve()|0,4)}function Rve(){return 1064}function Pl(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=cp(l|0,c+1|0)|0}function Tve(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,yl(l|0)}function Lve(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(qA(l),pt(l)),Ua(n[s>>2]|0,0)}function Nve(s){s=s|0,Je(n[s>>2]|0)}function Ove(s){return s=s|0,vt(n[s>>2]|0)|0}function Mve(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,Dc(n[s>>2]|0,y(l),y(c),f)}function Uve(s){return s=s|0,+ +y(Bl(n[s>>2]|0))}function _ve(s){return s=s|0,+ +y(ug(n[s>>2]|0))}function Hve(s){return s=s|0,+ +y(Su(n[s>>2]|0))}function qve(s){return s=s|0,+ +y(TA(n[s>>2]|0))}function jve(s){return s=s|0,+ +y(pp(n[s>>2]|0))}function Gve(s){return s=s|0,+ +y(Ga(n[s>>2]|0))}function Wve(s,l){s=s|0,l=l|0,C[s>>3]=+y(Bl(n[l>>2]|0)),C[s+8>>3]=+y(ug(n[l>>2]|0)),C[s+16>>3]=+y(Su(n[l>>2]|0)),C[s+24>>3]=+y(TA(n[l>>2]|0)),C[s+32>>3]=+y(pp(n[l>>2]|0)),C[s+40>>3]=+y(Ga(n[l>>2]|0))}function Yve(s,l){return s=s|0,l=l|0,+ +y(Ag(n[s>>2]|0,l))}function Kve(s,l){return s=s|0,l=l|0,+ +y(hp(n[s>>2]|0,l))}function Jve(s,l){return s=s|0,l=l|0,+ +y(Mo(n[s>>2]|0,l))}function Vve(){return qn()|0}function zve(){Xve(),Zve(),$ve(),eDe(),tDe(),rDe()}function Xve(){tNe(11713,4938,1)}function Zve(){CLe(10448)}function $ve(){tLe(10408)}function eDe(){vTe(10324)}function tDe(){FFe(10096)}function rDe(){nDe(9132)}function nDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0,Bn=0,po=0,ho=0,go=0,ma=0,Qp=0,kp=0,bl=0,Fp=0,Nu=0,Ou=0,Rp=0,Tp=0,Lp=0,Vr=0,Ql=0,Np=0,Qc=0,Op=0,Mp=0,Mu=0,Uu=0,kc=0,Us=0,Za=0,Ho=0,kl=0,rf=0,nf=0,_u=0,sf=0,of=0,_s=0,ws=0,Fl=0,xn=0,af=0,mo=0,Fc=0,yo=0,Rc=0,lf=0,cf=0,Tc=0,Hs=0,Rl=0,uf=0,Af=0,ff=0,vr=0,jn=0,Bs=0,Eo=0,qs=0,xr=0,lr=0,Tl=0;l=E,E=E+672|0,c=l+656|0,Tl=l+648|0,lr=l+640|0,xr=l+632|0,qs=l+624|0,Eo=l+616|0,Bs=l+608|0,jn=l+600|0,vr=l+592|0,ff=l+584|0,Af=l+576|0,uf=l+568|0,Rl=l+560|0,Hs=l+552|0,Tc=l+544|0,cf=l+536|0,lf=l+528|0,Rc=l+520|0,yo=l+512|0,Fc=l+504|0,mo=l+496|0,af=l+488|0,xn=l+480|0,Fl=l+472|0,ws=l+464|0,_s=l+456|0,of=l+448|0,sf=l+440|0,_u=l+432|0,nf=l+424|0,rf=l+416|0,kl=l+408|0,Ho=l+400|0,Za=l+392|0,Us=l+384|0,kc=l+376|0,Uu=l+368|0,Mu=l+360|0,Mp=l+352|0,Op=l+344|0,Qc=l+336|0,Np=l+328|0,Ql=l+320|0,Vr=l+312|0,Lp=l+304|0,Tp=l+296|0,Rp=l+288|0,Ou=l+280|0,Nu=l+272|0,Fp=l+264|0,bl=l+256|0,kp=l+248|0,Qp=l+240|0,ma=l+232|0,go=l+224|0,ho=l+216|0,po=l+208|0,Bn=l+200|0,rr=l+192|0,Qr=l+184|0,Ir=l+176|0,Vt=l+168|0,ir=l+160|0,Rr=l+152|0,Tt=l+144|0,Ge=l+136|0,He=l+128|0,at=l+120|0,Ze=l+112|0,et=l+104|0,Re=l+96|0,Oe=l+88|0,We=l+80|0,se=l+72|0,j=l+64|0,O=l+56|0,M=l+48|0,k=l+40|0,Q=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,iDe(s,3646),sDe(s,3651,2)|0,oDe(s,3665,2)|0,aDe(s,3682,18)|0,n[Tl>>2]=19,n[Tl+4>>2]=0,n[c>>2]=n[Tl>>2],n[c+4>>2]=n[Tl+4>>2],wI(s,3690,c)|0,n[lr>>2]=1,n[lr+4>>2]=0,n[c>>2]=n[lr>>2],n[c+4>>2]=n[lr+4>>2],lDe(s,3696,c)|0,n[xr>>2]=2,n[xr+4>>2]=0,n[c>>2]=n[xr>>2],n[c+4>>2]=n[xr+4>>2],Ru(s,3706,c)|0,n[qs>>2]=1,n[qs+4>>2]=0,n[c>>2]=n[qs>>2],n[c+4>>2]=n[qs+4>>2],Cg(s,3722,c)|0,n[Eo>>2]=2,n[Eo+4>>2]=0,n[c>>2]=n[Eo>>2],n[c+4>>2]=n[Eo+4>>2],Cg(s,3734,c)|0,n[Bs>>2]=3,n[Bs+4>>2]=0,n[c>>2]=n[Bs>>2],n[c+4>>2]=n[Bs+4>>2],Ru(s,3753,c)|0,n[jn>>2]=4,n[jn+4>>2]=0,n[c>>2]=n[jn>>2],n[c+4>>2]=n[jn+4>>2],Ru(s,3769,c)|0,n[vr>>2]=5,n[vr+4>>2]=0,n[c>>2]=n[vr>>2],n[c+4>>2]=n[vr+4>>2],Ru(s,3783,c)|0,n[ff>>2]=6,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],Ru(s,3796,c)|0,n[Af>>2]=7,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],Ru(s,3813,c)|0,n[uf>>2]=8,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],Ru(s,3825,c)|0,n[Rl>>2]=3,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],Cg(s,3843,c)|0,n[Hs>>2]=4,n[Hs+4>>2]=0,n[c>>2]=n[Hs>>2],n[c+4>>2]=n[Hs+4>>2],Cg(s,3853,c)|0,n[Tc>>2]=9,n[Tc+4>>2]=0,n[c>>2]=n[Tc>>2],n[c+4>>2]=n[Tc+4>>2],Ru(s,3870,c)|0,n[cf>>2]=10,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],Ru(s,3884,c)|0,n[lf>>2]=11,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Ru(s,3896,c)|0,n[Rc>>2]=1,n[Rc+4>>2]=0,n[c>>2]=n[Rc>>2],n[c+4>>2]=n[Rc+4>>2],Cs(s,3907,c)|0,n[yo>>2]=2,n[yo+4>>2]=0,n[c>>2]=n[yo>>2],n[c+4>>2]=n[yo+4>>2],Cs(s,3915,c)|0,n[Fc>>2]=3,n[Fc+4>>2]=0,n[c>>2]=n[Fc>>2],n[c+4>>2]=n[Fc+4>>2],Cs(s,3928,c)|0,n[mo>>2]=4,n[mo+4>>2]=0,n[c>>2]=n[mo>>2],n[c+4>>2]=n[mo+4>>2],Cs(s,3948,c)|0,n[af>>2]=5,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],Cs(s,3960,c)|0,n[xn>>2]=6,n[xn+4>>2]=0,n[c>>2]=n[xn>>2],n[c+4>>2]=n[xn+4>>2],Cs(s,3974,c)|0,n[Fl>>2]=7,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],Cs(s,3983,c)|0,n[ws>>2]=20,n[ws+4>>2]=0,n[c>>2]=n[ws>>2],n[c+4>>2]=n[ws+4>>2],wI(s,3999,c)|0,n[_s>>2]=8,n[_s+4>>2]=0,n[c>>2]=n[_s>>2],n[c+4>>2]=n[_s+4>>2],Cs(s,4012,c)|0,n[of>>2]=9,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],Cs(s,4022,c)|0,n[sf>>2]=21,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],wI(s,4039,c)|0,n[_u>>2]=10,n[_u+4>>2]=0,n[c>>2]=n[_u>>2],n[c+4>>2]=n[_u+4>>2],Cs(s,4053,c)|0,n[nf>>2]=11,n[nf+4>>2]=0,n[c>>2]=n[nf>>2],n[c+4>>2]=n[nf+4>>2],Cs(s,4065,c)|0,n[rf>>2]=12,n[rf+4>>2]=0,n[c>>2]=n[rf>>2],n[c+4>>2]=n[rf+4>>2],Cs(s,4084,c)|0,n[kl>>2]=13,n[kl+4>>2]=0,n[c>>2]=n[kl>>2],n[c+4>>2]=n[kl+4>>2],Cs(s,4097,c)|0,n[Ho>>2]=14,n[Ho+4>>2]=0,n[c>>2]=n[Ho>>2],n[c+4>>2]=n[Ho+4>>2],Cs(s,4117,c)|0,n[Za>>2]=15,n[Za+4>>2]=0,n[c>>2]=n[Za>>2],n[c+4>>2]=n[Za+4>>2],Cs(s,4129,c)|0,n[Us>>2]=16,n[Us+4>>2]=0,n[c>>2]=n[Us>>2],n[c+4>>2]=n[Us+4>>2],Cs(s,4148,c)|0,n[kc>>2]=17,n[kc+4>>2]=0,n[c>>2]=n[kc>>2],n[c+4>>2]=n[kc+4>>2],Cs(s,4161,c)|0,n[Uu>>2]=18,n[Uu+4>>2]=0,n[c>>2]=n[Uu>>2],n[c+4>>2]=n[Uu+4>>2],Cs(s,4181,c)|0,n[Mu>>2]=5,n[Mu+4>>2]=0,n[c>>2]=n[Mu>>2],n[c+4>>2]=n[Mu+4>>2],Cg(s,4196,c)|0,n[Mp>>2]=6,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],Cg(s,4206,c)|0,n[Op>>2]=7,n[Op+4>>2]=0,n[c>>2]=n[Op>>2],n[c+4>>2]=n[Op+4>>2],Cg(s,4217,c)|0,n[Qc>>2]=3,n[Qc+4>>2]=0,n[c>>2]=n[Qc>>2],n[c+4>>2]=n[Qc+4>>2],VA(s,4235,c)|0,n[Np>>2]=1,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],IF(s,4251,c)|0,n[Ql>>2]=4,n[Ql+4>>2]=0,n[c>>2]=n[Ql>>2],n[c+4>>2]=n[Ql+4>>2],VA(s,4263,c)|0,n[Vr>>2]=5,n[Vr+4>>2]=0,n[c>>2]=n[Vr>>2],n[c+4>>2]=n[Vr+4>>2],VA(s,4279,c)|0,n[Lp>>2]=6,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],VA(s,4293,c)|0,n[Tp>>2]=7,n[Tp+4>>2]=0,n[c>>2]=n[Tp>>2],n[c+4>>2]=n[Tp+4>>2],VA(s,4306,c)|0,n[Rp>>2]=8,n[Rp+4>>2]=0,n[c>>2]=n[Rp>>2],n[c+4>>2]=n[Rp+4>>2],VA(s,4323,c)|0,n[Ou>>2]=9,n[Ou+4>>2]=0,n[c>>2]=n[Ou>>2],n[c+4>>2]=n[Ou+4>>2],VA(s,4335,c)|0,n[Nu>>2]=2,n[Nu+4>>2]=0,n[c>>2]=n[Nu>>2],n[c+4>>2]=n[Nu+4>>2],IF(s,4353,c)|0,n[Fp>>2]=12,n[Fp+4>>2]=0,n[c>>2]=n[Fp>>2],n[c+4>>2]=n[Fp+4>>2],Ig(s,4363,c)|0,n[bl>>2]=1,n[bl+4>>2]=0,n[c>>2]=n[bl>>2],n[c+4>>2]=n[bl+4>>2],zA(s,4376,c)|0,n[kp>>2]=2,n[kp+4>>2]=0,n[c>>2]=n[kp>>2],n[c+4>>2]=n[kp+4>>2],zA(s,4388,c)|0,n[Qp>>2]=13,n[Qp+4>>2]=0,n[c>>2]=n[Qp>>2],n[c+4>>2]=n[Qp+4>>2],Ig(s,4402,c)|0,n[ma>>2]=14,n[ma+4>>2]=0,n[c>>2]=n[ma>>2],n[c+4>>2]=n[ma+4>>2],Ig(s,4411,c)|0,n[go>>2]=15,n[go+4>>2]=0,n[c>>2]=n[go>>2],n[c+4>>2]=n[go+4>>2],Ig(s,4421,c)|0,n[ho>>2]=16,n[ho+4>>2]=0,n[c>>2]=n[ho>>2],n[c+4>>2]=n[ho+4>>2],Ig(s,4433,c)|0,n[po>>2]=17,n[po+4>>2]=0,n[c>>2]=n[po>>2],n[c+4>>2]=n[po+4>>2],Ig(s,4446,c)|0,n[Bn>>2]=18,n[Bn+4>>2]=0,n[c>>2]=n[Bn>>2],n[c+4>>2]=n[Bn+4>>2],Ig(s,4458,c)|0,n[rr>>2]=3,n[rr+4>>2]=0,n[c>>2]=n[rr>>2],n[c+4>>2]=n[rr+4>>2],zA(s,4471,c)|0,n[Qr>>2]=1,n[Qr+4>>2]=0,n[c>>2]=n[Qr>>2],n[c+4>>2]=n[Qr+4>>2],Uv(s,4486,c)|0,n[Ir>>2]=10,n[Ir+4>>2]=0,n[c>>2]=n[Ir>>2],n[c+4>>2]=n[Ir+4>>2],VA(s,4496,c)|0,n[Vt>>2]=11,n[Vt+4>>2]=0,n[c>>2]=n[Vt>>2],n[c+4>>2]=n[Vt+4>>2],VA(s,4508,c)|0,n[ir>>2]=3,n[ir+4>>2]=0,n[c>>2]=n[ir>>2],n[c+4>>2]=n[ir+4>>2],IF(s,4519,c)|0,n[Rr>>2]=4,n[Rr+4>>2]=0,n[c>>2]=n[Rr>>2],n[c+4>>2]=n[Rr+4>>2],cDe(s,4530,c)|0,n[Tt>>2]=19,n[Tt+4>>2]=0,n[c>>2]=n[Tt>>2],n[c+4>>2]=n[Tt+4>>2],uDe(s,4542,c)|0,n[Ge>>2]=12,n[Ge+4>>2]=0,n[c>>2]=n[Ge>>2],n[c+4>>2]=n[Ge+4>>2],ADe(s,4554,c)|0,n[He>>2]=13,n[He+4>>2]=0,n[c>>2]=n[He>>2],n[c+4>>2]=n[He+4>>2],fDe(s,4568,c)|0,n[at>>2]=2,n[at+4>>2]=0,n[c>>2]=n[at>>2],n[c+4>>2]=n[at+4>>2],pDe(s,4578,c)|0,n[Ze>>2]=20,n[Ze+4>>2]=0,n[c>>2]=n[Ze>>2],n[c+4>>2]=n[Ze+4>>2],hDe(s,4587,c)|0,n[et>>2]=22,n[et+4>>2]=0,n[c>>2]=n[et>>2],n[c+4>>2]=n[et+4>>2],wI(s,4602,c)|0,n[Re>>2]=23,n[Re+4>>2]=0,n[c>>2]=n[Re>>2],n[c+4>>2]=n[Re+4>>2],wI(s,4619,c)|0,n[Oe>>2]=14,n[Oe+4>>2]=0,n[c>>2]=n[Oe>>2],n[c+4>>2]=n[Oe+4>>2],gDe(s,4629,c)|0,n[We>>2]=1,n[We+4>>2]=0,n[c>>2]=n[We>>2],n[c+4>>2]=n[We+4>>2],dDe(s,4637,c)|0,n[se>>2]=4,n[se+4>>2]=0,n[c>>2]=n[se>>2],n[c+4>>2]=n[se+4>>2],zA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],zA(s,4669,c)|0,n[O>>2]=6,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],zA(s,4686,c)|0,n[M>>2]=7,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],zA(s,4701,c)|0,n[k>>2]=8,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],zA(s,4719,c)|0,n[Q>>2]=9,n[Q+4>>2]=0,n[c>>2]=n[Q>>2],n[c+4>>2]=n[Q+4>>2],zA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],mDe(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],Uv(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],Uv(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],Uv(s,4808,c)|0,E=l}function iDe(s,l){s=s|0,l=l|0;var c=0;c=BFe()|0,n[s>>2]=c,vFe(c,l),xp(n[s>>2]|0)}function sDe(s,l,c){return s=s|0,l=l|0,c=c|0,cFe(s,cn(l)|0,c,0),s|0}function oDe(s,l,c){return s=s|0,l=l|0,c=c|0,Kke(s,cn(l)|0,c,0),s|0}function aDe(s,l,c){return s=s|0,l=l|0,c=c|0,Rke(s,cn(l)|0,c,0),s|0}function wI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mke(s,l,d),E=f,s|0}function lDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZQe(s,l,d),E=f,s|0}function Ru(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],NQe(s,l,d),E=f,s|0}function Cg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CQe(s,l,d),E=f,s|0}function Cs(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iQe(s,l,d),E=f,s|0}function VA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qbe(s,l,d),E=f,s|0}function IF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Sbe(s,l,d),E=f,s|0}function Ig(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZPe(s,l,d),E=f,s|0}function zA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],NPe(s,l,d),E=f,s|0}function Uv(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CPe(s,l,d),E=f,s|0}function cDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iPe(s,l,d),E=f,s|0}function uDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qxe(s,l,d),E=f,s|0}function ADe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xxe(s,l,d),E=f,s|0}function fDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fxe(s,l,d),E=f,s|0}function pDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],VSe(s,l,d),E=f,s|0}function hDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],FSe(s,l,d),E=f,s|0}function gDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],dSe(s,l,d),E=f,s|0}function dDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZDe(s,l,d),E=f,s|0}function mDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],yDe(s,l,d),E=f,s|0}function yDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],EDe(s,c,d,1),E=f}function cn(s){return s=s|0,s|0}function EDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=wF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=CDe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,IDe(m,f)|0,f),E=d}function wF(){var s=0,l=0;if(o[7616]|0||(V9(9136),Zt(24,9136,_|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(br(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));V9(9136)}return 9136}function CDe(s){return s=s|0,0}function IDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=wF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],J9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vDe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function un(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0;B=E,E=E+32|0,se=B+24|0,j=B+20|0,k=B+16|0,O=B+12|0,M=B+8|0,Q=B+4|0,We=B,n[j>>2]=l,n[k>>2]=c,n[O>>2]=f,n[M>>2]=d,n[Q>>2]=m,m=s+28|0,n[We>>2]=n[m>>2],n[se>>2]=n[We>>2],wDe(s+24|0,se,j,O,M,k,Q)|0,n[m>>2]=n[n[m>>2]>>2],E=B}function wDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=BDe(l)|0,l=Gt(24)|0,K9(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function BDe(s){return s=s|0,n[s>>2]|0}function K9(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function Ar(s,l){return s=s|0,l=l|0,l|s|0}function J9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DDe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SDe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],J9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,xDe(s,Q),PDe(Q),E=M;return}}function DDe(s){return s=s|0,357913941}function SDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function xDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function V9(s){s=s|0,kDe(s)}function bDe(s){s=s|0,QDe(s+24|0)}function br(s){return s=s|0,n[s>>2]|0}function QDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function kDe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,3,l,FDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Gr(){return 9228}function FDe(){return 1140}function RDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=TDe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=LDe(l,f)|0,E=c,l|0}function Wr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function TDe(s){return s=s|0,(n[(wF()|0)+24>>2]|0)+(s*12|0)|0}function LDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=E,E=E+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=NDe(f)|0,E=d,f|0}function NDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=E,E=E+32|0,l=d+12|0,c=d,f=BF(z9()|0)|0,f?(vF(l,f),DF(c,l),ODe(s,c),s=SF(l)|0):s=MDe(s)|0,E=d,s|0}function z9(){var s=0;return o[7632]|0||(JDe(9184),Zt(25,9184,_|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function BF(s){return s=s|0,n[s+36>>2]|0}function vF(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function DF(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function ODe(s,l){s=s|0,l=l|0,qDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function SF(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function MDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0;k=E,E=E+16|0,c=k+4|0,f=k,d=Ja(8)|0,m=d,B=Gt(48)|0,Q=B,l=Q+48|0;do n[Q>>2]=n[s>>2],Q=Q+4|0,s=s+4|0;while((Q|0)<(l|0));return l=m+4|0,n[l>>2]=B,Q=Gt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],X9(Q,B,c),n[d>>2]=Q,E=k,m|0}function X9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function UDe(s){s=s|0,Jm(s),pt(s)}function _De(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function HDe(s){s=s|0,pt(s)}function qDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=jDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function jDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var Q=0,k=0;return Q=E,E=E+16|0,k=Q,Va(k),s=ga(s)|0,B=GDe(s,+C[l>>3],+C[c>>3],+C[f>>3],+C[d>>3],+C[m>>3],+C[B>>3])|0,za(k),E=Q,B|0}function GDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var Q=0;return Q=xl(WDe()|0)|0,l=+JA(l),c=+JA(c),f=+JA(f),d=+JA(d),m=+JA(m),Fs(0,Q|0,s|0,+l,+c,+f,+d,+m,+ +JA(B))|0}function WDe(){var s=0;return o[7624]|0||(YDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function YDe(s){s=s|0,Pl(s,KDe()|0,6)}function KDe(){return 1112}function JDe(s){s=s|0,wp(s)}function VDe(s){s=s|0,Z9(s+24|0),$9(s+16|0)}function Z9(s){s=s|0,XDe(s)}function $9(s){s=s|0,zDe(s)}function zDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function XDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function wp(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function ZDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$De(s,c,d,0),E=f}function $De(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=xF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=eSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,tSe(m,f)|0,f),E=d}function xF(){var s=0,l=0;if(o[7640]|0||(tG(9232),Zt(26,9232,_|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(br(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));tG(9232)}return 9232}function eSe(s){return s=s|0,0}function tSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=xF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],eG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rSe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function eG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nSe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,iSe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],eG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,sSe(s,Q),oSe(Q),E=M;return}}function nSe(s){return s=s|0,357913941}function iSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function sSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function tG(s){s=s|0,cSe(s)}function aSe(s){s=s|0,lSe(s+24|0)}function lSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function cSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,uSe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uSe(){return 1144}function ASe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,Q=0,k=0;m=E,E=E+16|0,B=m+8|0,Q=m,k=fSe(s)|0,s=n[k+4>>2]|0,n[Q>>2]=n[k>>2],n[Q+4>>2]=s,n[B>>2]=n[Q>>2],n[B+4>>2]=n[Q+4>>2],pSe(l,B,c,f,d),E=m}function fSe(s){return s=s|0,(n[(xF()|0)+24>>2]|0)+(s*12|0)|0}function pSe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,Q=0,k=0,M=0;M=E,E=E+16|0,B=M+2|0,Q=M+1|0,k=M,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),Tu(B,c),c=+Lu(B,c),Tu(Q,f),f=+Lu(Q,f),XA(k,d),k=ZA(k,d)|0,d7[m&1](s,c,f,k),E=M}function Tu(s,l){s=s|0,l=+l}function Lu(s,l){return s=s|0,l=+l,+ +gSe(l)}function XA(s,l){s=s|0,l=l|0}function ZA(s,l){return s=s|0,l=l|0,hSe(l)|0}function hSe(s){return s=s|0,s|0}function gSe(s){return s=+s,+s}function dSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mSe(s,c,d,1),E=f}function mSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=PF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=ySe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,ESe(m,f)|0,f),E=d}function PF(){var s=0,l=0;if(o[7648]|0||(nG(9268),Zt(27,9268,_|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(br(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));nG(9268)}return 9268}function ySe(s){return s=s|0,0}function ESe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=PF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],rG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(CSe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function rG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function CSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=ISe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,wSe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],rG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,BSe(s,Q),vSe(Q),E=M;return}}function ISe(s){return s=s|0,357913941}function wSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function BSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function vSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function nG(s){s=s|0,xSe(s)}function DSe(s){s=s|0,SSe(s+24|0)}function SSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function xSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,4,l,PSe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function PSe(){return 1160}function bSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=QSe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=kSe(l,f)|0,E=c,l|0}function QSe(s){return s=s|0,(n[(PF()|0)+24>>2]|0)+(s*12|0)|0}function kSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),iG(Qg[c&31](s)|0)|0}function iG(s){return s=s|0,s&1|0}function FSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],RSe(s,c,d,0),E=f}function RSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=bF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=TSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,LSe(m,f)|0,f),E=d}function bF(){var s=0,l=0;if(o[7656]|0||(oG(9304),Zt(28,9304,_|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(br(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));oG(9304)}return 9304}function TSe(s){return s=s|0,0}function LSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=bF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],sG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(NSe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function sG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function NSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=OSe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,MSe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],sG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,USe(s,Q),_Se(Q),E=M;return}}function OSe(s){return s=s|0,357913941}function MSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function USe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _Se(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function oG(s){s=s|0,jSe(s)}function HSe(s){s=s|0,qSe(s+24|0)}function qSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function jSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,GSe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function GSe(){return 1164}function WSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=YSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KSe(l,d,c),E=f}function YSe(s){return s=s|0,(n[(bF()|0)+24>>2]|0)+(s*12|0)|0}function KSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Bp(d,c),c=vp(d,c)|0,tf[f&31](s,c),Dp(d),E=m}function Bp(s,l){s=s|0,l=l|0,JSe(s,l)}function vp(s,l){return s=s|0,l=l|0,s|0}function Dp(s){s=s|0,qA(s)}function JSe(s,l){s=s|0,l=l|0,QF(s,l)}function QF(s,l){s=s|0,l=l|0,n[s>>2]=l}function VSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],zSe(s,c,d,0),E=f}function zSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=kF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=XSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,ZSe(m,f)|0,f),E=d}function kF(){var s=0,l=0;if(o[7664]|0||(lG(9340),Zt(29,9340,_|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(br(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));lG(9340)}return 9340}function XSe(s){return s=s|0,0}function ZSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=kF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],aG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):($Se(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function aG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function $Se(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=exe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,txe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],aG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,rxe(s,Q),nxe(Q),E=M;return}}function exe(s){return s=s|0,357913941}function txe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function rxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function nxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function lG(s){s=s|0,oxe(s)}function ixe(s){s=s|0,sxe(s+24|0)}function sxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function oxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,4,l,axe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function axe(){return 1180}function lxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=cxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=uxe(l,d,c)|0,E=f,c|0}function cxe(s){return s=s|0,(n[(kF()|0)+24>>2]|0)+(s*12|0)|0}function uxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),wg(d,c),d=Bg(d,c)|0,d=_v(xR[f&15](s,d)|0)|0,E=m,d|0}function wg(s,l){s=s|0,l=l|0}function Bg(s,l){return s=s|0,l=l|0,Axe(l)|0}function _v(s){return s=s|0,s|0}function Axe(s){return s=s|0,s|0}function fxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pxe(s,c,d,0),E=f}function pxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=FF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=hxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,gxe(m,f)|0,f),E=d}function FF(){var s=0,l=0;if(o[7672]|0||(uG(9376),Zt(30,9376,_|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(br(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));uG(9376)}return 9376}function hxe(s){return s=s|0,0}function gxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=FF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],cG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(dxe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function cG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function dxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=mxe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,yxe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],cG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Exe(s,Q),Cxe(Q),E=M;return}}function mxe(s){return s=s|0,357913941}function yxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Exe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Cxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function uG(s){s=s|0,Bxe(s)}function Ixe(s){s=s|0,wxe(s+24|0)}function wxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Bxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,AG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function AG(){return 1196}function vxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=Dxe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Sxe(l,f)|0,E=c,l|0}function Dxe(s){return s=s|0,(n[(FF()|0)+24>>2]|0)+(s*12|0)|0}function Sxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),_v(Qg[c&31](s)|0)|0}function xxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Pxe(s,c,d,1),E=f}function Pxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=RF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=bxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Qxe(m,f)|0,f),E=d}function RF(){var s=0,l=0;if(o[7680]|0||(pG(9412),Zt(31,9412,_|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(br(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));pG(9412)}return 9412}function bxe(s){return s=s|0,0}function Qxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=RF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],fG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(kxe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function fG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function kxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Fxe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Rxe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],fG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Txe(s,Q),Lxe(Q),E=M;return}}function Fxe(s){return s=s|0,357913941}function Rxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Txe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Lxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function pG(s){s=s|0,Mxe(s)}function Nxe(s){s=s|0,Oxe(s+24|0)}function Oxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Mxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,hG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function hG(){return 1200}function Uxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=_xe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Hxe(l,f)|0,E=c,l|0}function _xe(s){return s=s|0,(n[(RF()|0)+24>>2]|0)+(s*12|0)|0}function Hxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),Hv(Qg[c&31](s)|0)|0}function Hv(s){return s=s|0,s|0}function qxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jxe(s,c,d,0),E=f}function jxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=TF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Gxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Wxe(m,f)|0,f),E=d}function TF(){var s=0,l=0;if(o[7688]|0||(dG(9448),Zt(32,9448,_|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(br(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));dG(9448)}return 9448}function Gxe(s){return s=s|0,0}function Wxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=TF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],gG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Yxe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function gG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Yxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Kxe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Jxe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],gG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Vxe(s,Q),zxe(Q),E=M;return}}function Kxe(s){return s=s|0,357913941}function Jxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Vxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function zxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function dG(s){s=s|0,$xe(s)}function Xxe(s){s=s|0,Zxe(s+24|0)}function Zxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function $xe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,mG()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function mG(){return 1204}function ePe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=tPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rPe(l,d,c),E=f}function tPe(s){return s=s|0,(n[(TF()|0)+24>>2]|0)+(s*12|0)|0}function rPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),LF(d,c),d=NF(d,c)|0,tf[f&31](s,d),E=m}function LF(s,l){s=s|0,l=l|0}function NF(s,l){return s=s|0,l=l|0,nPe(l)|0}function nPe(s){return s=s|0,s|0}function iPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sPe(s,c,d,0),E=f}function sPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=OF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=oPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,aPe(m,f)|0,f),E=d}function OF(){var s=0,l=0;if(o[7696]|0||(EG(9484),Zt(33,9484,_|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(br(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));EG(9484)}return 9484}function oPe(s){return s=s|0,0}function aPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=OF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],yG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lPe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function yG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cPe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,uPe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],yG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,APe(s,Q),fPe(Q),E=M;return}}function cPe(s){return s=s|0,357913941}function uPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function APe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function EG(s){s=s|0,gPe(s)}function pPe(s){s=s|0,hPe(s+24|0)}function hPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function gPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,dPe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dPe(){return 1212}function mPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+8|0,B=d,Q=yPe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],EPe(l,m,c,f),E=d}function yPe(s){return s=s|0,(n[(OF()|0)+24>>2]|0)+(s*12|0)|0}function EPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;Q=E,E=E+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),LF(m,c),m=NF(m,c)|0,wg(B,f),B=Bg(B,f)|0,bI[d&15](s,m,B),E=Q}function CPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IPe(s,c,d,1),E=f}function IPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=MF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=wPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,BPe(m,f)|0,f),E=d}function MF(){var s=0,l=0;if(o[7704]|0||(IG(9520),Zt(34,9520,_|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(br(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));IG(9520)}return 9520}function wPe(s){return s=s|0,0}function BPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=MF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],CG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vPe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function CG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DPe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SPe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],CG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,xPe(s,Q),PPe(Q),E=M;return}}function DPe(s){return s=s|0,357913941}function SPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function xPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function IG(s){s=s|0,kPe(s)}function bPe(s){s=s|0,QPe(s+24|0)}function QPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function kPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,FPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FPe(){return 1224}function RPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;return d=E,E=E+16|0,m=d+8|0,B=d,Q=TPe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+LPe(l,m,c),E=d,+f}function TPe(s){return s=s|0,(n[(MF()|0)+24>>2]|0)+(s*12|0)|0}function LPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,B=+CF(+y7[f&7](s,d)),E=m,+B}function NPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OPe(s,c,d,1),E=f}function OPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=UF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=MPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,UPe(m,f)|0,f),E=d}function UF(){var s=0,l=0;if(o[7712]|0||(BG(9556),Zt(35,9556,_|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(br(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));BG(9556)}return 9556}function MPe(s){return s=s|0,0}function UPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=UF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],wG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_Pe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function wG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _Pe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=HPe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,qPe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],wG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,jPe(s,Q),GPe(Q),E=M;return}}function HPe(s){return s=s|0,357913941}function qPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function BG(s){s=s|0,KPe(s)}function WPe(s){s=s|0,YPe(s+24|0)}function YPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function KPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,JPe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function JPe(){return 1232}function VPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=zPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+XPe(l,d),E=f,+c}function zPe(s){return s=s|0,(n[(UF()|0)+24>>2]|0)+(s*12|0)|0}function XPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +CF(+m7[c&15](s))}function ZPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$Pe(s,c,d,1),E=f}function $Pe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=_F()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=ebe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,tbe(m,f)|0,f),E=d}function _F(){var s=0,l=0;if(o[7720]|0||(DG(9592),Zt(36,9592,_|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(br(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));DG(9592)}return 9592}function ebe(s){return s=s|0,0}function tbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=_F()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],vG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rbe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function vG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nbe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,ibe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],vG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,sbe(s,Q),obe(Q),E=M;return}}function nbe(s){return s=s|0,357913941}function ibe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function sbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function obe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function DG(s){s=s|0,cbe(s)}function abe(s){s=s|0,lbe(s+24|0)}function lbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function cbe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,7,l,ube()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ube(){return 1276}function Abe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=fbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=pbe(l,f)|0,E=c,l|0}function fbe(s){return s=s|0,(n[(_F()|0)+24>>2]|0)+(s*12|0)|0}function pbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=E,E=E+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=SG(f)|0,E=d,f|0}function SG(s){s=s|0;var l=0,c=0,f=0,d=0;return d=E,E=E+32|0,l=d+12|0,c=d,f=BF(xG()|0)|0,f?(vF(l,f),DF(c,l),hbe(s,c),s=SF(l)|0):s=gbe(s)|0,E=d,s|0}function xG(){var s=0;return o[7736]|0||(Dbe(9640),Zt(25,9640,_|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function hbe(s,l){s=s|0,l=l|0,Ebe(l,s,s+8|0)|0}function gbe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=E,E=E+16|0,d=c+4|0,B=c,f=Ja(8)|0,l=f,Q=Gt(16)|0,n[Q>>2]=n[s>>2],n[Q+4>>2]=n[s+4>>2],n[Q+8>>2]=n[s+8>>2],n[Q+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],HF(s,m,d),n[f>>2]=s,E=c,l|0}function HF(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function dbe(s){s=s|0,Jm(s),pt(s)}function mbe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function ybe(s){s=s|0,pt(s)}function Ebe(s,l,c){return s=s|0,l=l|0,c=c|0,l=Cbe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function Cbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=E,E=E+16|0,d=f,Va(d),s=ga(s)|0,c=Ibe(s,n[l>>2]|0,+C[c>>3])|0,za(d),E=f,c|0}function Ibe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=xl(wbe()|0)|0,l=EF(l)|0,ml(0,f|0,s|0,l|0,+ +JA(c))|0}function wbe(){var s=0;return o[7728]|0||(Bbe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function Bbe(s){s=s|0,Pl(s,vbe()|0,2)}function vbe(){return 1264}function Dbe(s){s=s|0,wp(s)}function Sbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xbe(s,c,d,1),E=f}function xbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=qF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Pbe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,bbe(m,f)|0,f),E=d}function qF(){var s=0,l=0;if(o[7744]|0||(bG(9684),Zt(37,9684,_|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(br(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));bG(9684)}return 9684}function Pbe(s){return s=s|0,0}function bbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=qF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],PG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Qbe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function PG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Qbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=kbe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Fbe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],PG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Rbe(s,Q),Tbe(Q),E=M;return}}function kbe(s){return s=s|0,357913941}function Fbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Rbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Tbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function bG(s){s=s|0,Obe(s)}function Lbe(s){s=s|0,Nbe(s+24|0)}function Nbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Obe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,Mbe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Mbe(){return 1280}function Ube(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=_be(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=Hbe(l,d,c)|0,E=f,c|0}function _be(s){return s=s|0,(n[(qF()|0)+24>>2]|0)+(s*12|0)|0}function Hbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=E,E=E+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(m,c),m=ZA(m,c)|0,bI[f&15](d,s,m),m=SG(d)|0,E=B,m|0}function qbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jbe(s,c,d,1),E=f}function jbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=jF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Gbe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Wbe(m,f)|0,f),E=d}function jF(){var s=0,l=0;if(o[7752]|0||(kG(9720),Zt(38,9720,_|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(br(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));kG(9720)}return 9720}function Gbe(s){return s=s|0,0}function Wbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=jF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],QG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Ybe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function QG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Ybe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Kbe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Jbe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],QG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Vbe(s,Q),zbe(Q),E=M;return}}function Kbe(s){return s=s|0,357913941}function Jbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Vbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function zbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function kG(s){s=s|0,$be(s)}function Xbe(s){s=s|0,Zbe(s+24|0)}function Zbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function $be(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,eQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function eQe(){return 1288}function tQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=rQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=nQe(l,f)|0,E=c,l|0}function rQe(s){return s=s|0,(n[(jF()|0)+24>>2]|0)+(s*12|0)|0}function nQe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),Y9(Qg[c&31](s)|0)|0}function iQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sQe(s,c,d,0),E=f}function sQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=GF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=oQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,aQe(m,f)|0,f),E=d}function GF(){var s=0,l=0;if(o[7760]|0||(RG(9756),Zt(39,9756,_|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(br(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));RG(9756)}return 9756}function oQe(s){return s=s|0,0}function aQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=GF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],FG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lQe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function FG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cQe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,uQe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],FG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,AQe(s,Q),fQe(Q),E=M;return}}function cQe(s){return s=s|0,357913941}function uQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function AQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function RG(s){s=s|0,gQe(s)}function pQe(s){s=s|0,hQe(s+24|0)}function hQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function gQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,dQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dQe(){return 1292}function mQe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=yQe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],EQe(l,d,c),E=f}function yQe(s){return s=s|0,(n[(GF()|0)+24>>2]|0)+(s*12|0)|0}function EQe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Tu(d,c),c=+Lu(d,c),h7[f&31](s,c),E=m}function CQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IQe(s,c,d,0),E=f}function IQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=WF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=wQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,BQe(m,f)|0,f),E=d}function WF(){var s=0,l=0;if(o[7768]|0||(LG(9792),Zt(40,9792,_|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(br(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));LG(9792)}return 9792}function wQe(s){return s=s|0,0}function BQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=WF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],TG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vQe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function TG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DQe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SQe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],TG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,xQe(s,Q),PQe(Q),E=M;return}}function DQe(s){return s=s|0,357913941}function SQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function xQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function LG(s){s=s|0,kQe(s)}function bQe(s){s=s|0,QQe(s+24|0)}function QQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function kQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,FQe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FQe(){return 1300}function RQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+8|0,B=d,Q=TQe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],LQe(l,m,c,f),E=d}function TQe(s){return s=s|0,(n[(WF()|0)+24>>2]|0)+(s*12|0)|0}function LQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,Q=0;Q=E,E=E+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,Tu(B,f),f=+Lu(B,f),w7[d&15](s,m,f),E=Q}function NQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OQe(s,c,d,0),E=f}function OQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=YF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=MQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,UQe(m,f)|0,f),E=d}function YF(){var s=0,l=0;if(o[7776]|0||(OG(9828),Zt(41,9828,_|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(br(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));OG(9828)}return 9828}function MQe(s){return s=s|0,0}function UQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=YF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],NG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_Qe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function NG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _Qe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=HQe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,qQe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],NG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,jQe(s,Q),GQe(Q),E=M;return}}function HQe(s){return s=s|0,357913941}function qQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function OG(s){s=s|0,KQe(s)}function WQe(s){s=s|0,YQe(s+24|0)}function YQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function KQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,7,l,JQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function JQe(){return 1312}function VQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=zQe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XQe(l,d,c),E=f}function zQe(s){return s=s|0,(n[(YF()|0)+24>>2]|0)+(s*12|0)|0}function XQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,tf[f&31](s,d),E=m}function ZQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$Qe(s,c,d,0),E=f}function $Qe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=KF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=eke(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,tke(m,f)|0,f),E=d}function KF(){var s=0,l=0;if(o[7784]|0||(UG(9864),Zt(42,9864,_|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(br(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));UG(9864)}return 9864}function eke(s){return s=s|0,0}function tke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=KF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],MG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rke(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function MG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nke(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,ike(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],MG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,ske(s,Q),oke(Q),E=M;return}}function nke(s){return s=s|0,357913941}function ike(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ske(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function UG(s){s=s|0,cke(s)}function ake(s){s=s|0,lke(s+24|0)}function lke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function cke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,uke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uke(){return 1320}function Ake(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=fke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pke(l,d,c),E=f}function fke(s){return s=s|0,(n[(KF()|0)+24>>2]|0)+(s*12|0)|0}function pke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),hke(d,c),d=gke(d,c)|0,tf[f&31](s,d),E=m}function hke(s,l){s=s|0,l=l|0}function gke(s,l){return s=s|0,l=l|0,dke(l)|0}function dke(s){return s=s|0,s|0}function mke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],yke(s,c,d,0),E=f}function yke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=JF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Eke(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Cke(m,f)|0,f),E=d}function JF(){var s=0,l=0;if(o[7792]|0||(HG(9900),Zt(43,9900,_|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(br(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));HG(9900)}return 9900}function Eke(s){return s=s|0,0}function Cke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=JF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_G(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Ike(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _G(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Ike(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=wke(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Bke(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_G(m,f,c),n[k>>2]=(n[k>>2]|0)+12,vke(s,Q),Dke(Q),E=M;return}}function wke(s){return s=s|0,357913941}function Bke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function vke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Dke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function HG(s){s=s|0,Pke(s)}function Ske(s){s=s|0,xke(s+24|0)}function xke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Pke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,22,l,bke()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function bke(){return 1344}function Qke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=E,E=E+16|0,f=c+8|0,d=c,m=kke(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],Fke(l,f),E=c}function kke(s){return s=s|0,(n[(JF()|0)+24>>2]|0)+(s*12|0)|0}function Fke(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),ef[c&127](s)}function Rke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=VF()|0,s=Tke(c)|0,un(m,l,d,s,Lke(c,f)|0,f)}function VF(){var s=0,l=0;if(o[7800]|0||(jG(9936),Zt(44,9936,_|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(br(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));jG(9936)}return 9936}function Tke(s){return s=s|0,s|0}function Lke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=VF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(qG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(Nke(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function qG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function Nke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=Oke(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,Mke(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,qG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,Uke(s,d),_ke(d),E=Q;return}}function Oke(s){return s=s|0,536870911}function Mke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function Uke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _ke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function jG(s){s=s|0,jke(s)}function Hke(s){s=s|0,qke(s+24|0)}function qke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function jke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,23,l,mG()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Gke(s,l){s=s|0,l=l|0,Yke(n[(Wke(s)|0)>>2]|0,l)}function Wke(s){return s=s|0,(n[(VF()|0)+24>>2]|0)+(s<<3)|0}function Yke(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,LF(f,l),l=NF(f,l)|0,ef[s&127](l),E=c}function Kke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=zF()|0,s=Jke(c)|0,un(m,l,d,s,Vke(c,f)|0,f)}function zF(){var s=0,l=0;if(o[7808]|0||(WG(9972),Zt(45,9972,_|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(br(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));WG(9972)}return 9972}function Jke(s){return s=s|0,s|0}function Vke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=zF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(GG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(zke(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function GG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function zke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=Xke(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,Zke(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,GG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,$ke(s,d),eFe(d),E=Q;return}}function Xke(s){return s=s|0,536870911}function Zke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function $ke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function WG(s){s=s|0,nFe(s)}function tFe(s){s=s|0,rFe(s+24|0)}function rFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function nFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,9,l,iFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function iFe(){return 1348}function sFe(s,l){return s=s|0,l=l|0,aFe(n[(oFe(s)|0)>>2]|0,l)|0}function oFe(s){return s=s|0,(n[(zF()|0)+24>>2]|0)+(s<<3)|0}function aFe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=E,E=E+16|0,f=c,YG(f,l),l=KG(f,l)|0,l=_v(Qg[s&31](l)|0)|0,E=c,l|0}function YG(s,l){s=s|0,l=l|0}function KG(s,l){return s=s|0,l=l|0,lFe(l)|0}function lFe(s){return s=s|0,s|0}function cFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=XF()|0,s=uFe(c)|0,un(m,l,d,s,AFe(c,f)|0,f)}function XF(){var s=0,l=0;if(o[7816]|0||(VG(10008),Zt(46,10008,_|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(br(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));VG(10008)}return 10008}function uFe(s){return s=s|0,s|0}function AFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=XF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(JG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(fFe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function JG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function fFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=pFe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,hFe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,JG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,gFe(s,d),dFe(d),E=Q;return}}function pFe(s){return s=s|0,536870911}function hFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function gFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function dFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function VG(s){s=s|0,EFe(s)}function mFe(s){s=s|0,yFe(s+24|0)}function yFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function EFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,15,l,AG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function CFe(s){return s=s|0,wFe(n[(IFe(s)|0)>>2]|0)|0}function IFe(s){return s=s|0,(n[(XF()|0)+24>>2]|0)+(s<<3)|0}function wFe(s){return s=s|0,_v(tD[s&7]()|0)|0}function BFe(){var s=0;return o[7832]|0||(kFe(10052),Zt(25,10052,_|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function vFe(s,l){s=s|0,l=l|0,n[s>>2]=DFe()|0,n[s+4>>2]=SFe()|0,n[s+12>>2]=l,n[s+8>>2]=xFe()|0,n[s+32>>2]=2}function DFe(){return 11709}function SFe(){return 1188}function xFe(){return qv()|0}function PFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(bFe(c),pt(c)):l|0&&(Qu(l),pt(l))}function Sp(s,l){return s=s|0,l=l|0,l&s|0}function bFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function qv(){var s=0;return o[7824]|0||(n[2511]=QFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function QFe(){return 0}function kFe(s){s=s|0,wp(s)}function FFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=E,E=E+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,RFe(s,4827),TFe(s,4834,3)|0,LFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],NFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],OFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],MFe(s,4891,c)|0,E=l}function RFe(s,l){s=s|0,l=l|0;var c=0;c=dTe()|0,n[s>>2]=c,mTe(c,l),xp(n[s>>2]|0)}function TFe(s,l,c){return s=s|0,l=l|0,c=c|0,eTe(s,cn(l)|0,c,0),s|0}function LFe(s,l,c){return s=s|0,l=l|0,c=c|0,URe(s,cn(l)|0,c,0),s|0}function NFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CRe(s,l,d),E=f,s|0}function OFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tRe(s,l,d),E=f,s|0}function MFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],UFe(s,l,d),E=f,s|0}function UFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_Fe(s,c,d,1),E=f}function _Fe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=ZF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=HFe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,qFe(m,f)|0,f),E=d}function ZF(){var s=0,l=0;if(o[7840]|0||(XG(10100),Zt(48,10100,_|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(br(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));XG(10100)}return 10100}function HFe(s){return s=s|0,0}function qFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=ZF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],zG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(jFe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function zG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function jFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=GFe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,WFe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],zG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,YFe(s,Q),KFe(Q),E=M;return}}function GFe(s){return s=s|0,357913941}function WFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function YFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function KFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function XG(s){s=s|0,zFe(s)}function JFe(s){s=s|0,VFe(s+24|0)}function VFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function zFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,XFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XFe(){return 1364}function ZFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=$Fe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=eRe(l,d,c)|0,E=f,c|0}function $Fe(s){return s=s|0,(n[(ZF()|0)+24>>2]|0)+(s*12|0)|0}function eRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,d=iG(xR[f&15](s,d)|0)|0,E=m,d|0}function tRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rRe(s,c,d,0),E=f}function rRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=$F()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=nRe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,iRe(m,f)|0,f),E=d}function $F(){var s=0,l=0;if(o[7848]|0||($G(10136),Zt(49,10136,_|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(br(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));$G(10136)}return 10136}function nRe(s){return s=s|0,0}function iRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=$F()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],ZG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sRe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function ZG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oRe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,aRe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],ZG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,lRe(s,Q),cRe(Q),E=M;return}}function oRe(s){return s=s|0,357913941}function aRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function $G(s){s=s|0,fRe(s)}function uRe(s){s=s|0,ARe(s+24|0)}function ARe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function fRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,9,l,pRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pRe(){return 1372}function hRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=gRe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],dRe(l,d,c),E=f}function gRe(s){return s=s|0,(n[($F()|0)+24>>2]|0)+(s*12|0)|0}function dRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=$e;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),mRe(d,c),B=y(yRe(d,c)),p7[f&1](s,B),E=m}function mRe(s,l){s=s|0,l=+l}function yRe(s,l){return s=s|0,l=+l,y(ERe(l))}function ERe(s){return s=+s,y(s)}function CRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IRe(s,c,d,0),E=f}function IRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=eR()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=wRe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,BRe(m,f)|0,f),E=d}function eR(){var s=0,l=0;if(o[7856]|0||(t5(10172),Zt(50,10172,_|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(br(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t5(10172)}return 10172}function wRe(s){return s=s|0,0}function BRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=eR()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],e5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vRe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function e5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DRe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SRe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],e5(m,f,c),n[k>>2]=(n[k>>2]|0)+12,xRe(s,Q),PRe(Q),E=M;return}}function DRe(s){return s=s|0,357913941}function SRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function xRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function t5(s){s=s|0,kRe(s)}function bRe(s){s=s|0,QRe(s+24|0)}function QRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function kRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,3,l,FRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FRe(){return 1380}function RRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+8|0,B=d,Q=TRe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],LRe(l,m,c,f),E=d}function TRe(s){return s=s|0,(n[(eR()|0)+24>>2]|0)+(s*12|0)|0}function LRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;Q=E,E=E+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,NRe(B,f),B=ORe(B,f)|0,bI[d&15](s,m,B),E=Q}function NRe(s,l){s=s|0,l=l|0}function ORe(s,l){return s=s|0,l=l|0,MRe(l)|0}function MRe(s){return s=s|0,(s|0)!=0|0}function URe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=tR()|0,s=_Re(c)|0,un(m,l,d,s,HRe(c,f)|0,f)}function tR(){var s=0,l=0;if(o[7864]|0||(n5(10208),Zt(51,10208,_|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(br(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));n5(10208)}return 10208}function _Re(s){return s=s|0,s|0}function HRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=tR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(r5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(qRe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function r5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function qRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=jRe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,GRe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,r5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,WRe(s,d),YRe(d),E=Q;return}}function jRe(s){return s=s|0,536870911}function GRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function WRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function YRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function n5(s){s=s|0,VRe(s)}function KRe(s){s=s|0,JRe(s+24|0)}function JRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function VRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,24,l,zRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function zRe(){return 1392}function XRe(s,l){s=s|0,l=l|0,$Re(n[(ZRe(s)|0)>>2]|0,l)}function ZRe(s){return s=s|0,(n[(tR()|0)+24>>2]|0)+(s<<3)|0}function $Re(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,YG(f,l),l=KG(f,l)|0,ef[s&127](l),E=c}function eTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=rR()|0,s=tTe(c)|0,un(m,l,d,s,rTe(c,f)|0,f)}function rR(){var s=0,l=0;if(o[7872]|0||(s5(10244),Zt(52,10244,_|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(br(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s5(10244)}return 10244}function tTe(s){return s=s|0,s|0}function rTe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=rR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(i5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(nTe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function i5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function nTe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=iTe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,sTe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,i5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,oTe(s,d),aTe(d),E=Q;return}}function iTe(s){return s=s|0,536870911}function sTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function oTe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function aTe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function s5(s){s=s|0,uTe(s)}function lTe(s){s=s|0,cTe(s+24|0)}function cTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function uTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,16,l,ATe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ATe(){return 1400}function fTe(s){return s=s|0,hTe(n[(pTe(s)|0)>>2]|0)|0}function pTe(s){return s=s|0,(n[(rR()|0)+24>>2]|0)+(s<<3)|0}function hTe(s){return s=s|0,gTe(tD[s&7]()|0)|0}function gTe(s){return s=s|0,s|0}function dTe(){var s=0;return o[7880]|0||(BTe(10280),Zt(25,10280,_|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function mTe(s,l){s=s|0,l=l|0,n[s>>2]=yTe()|0,n[s+4>>2]=ETe()|0,n[s+12>>2]=l,n[s+8>>2]=CTe()|0,n[s+32>>2]=4}function yTe(){return 11711}function ETe(){return 1356}function CTe(){return qv()|0}function ITe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(wTe(c),pt(c)):l|0&&(Eg(l),pt(l))}function wTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function BTe(s){s=s|0,wp(s)}function vTe(s){s=s|0,DTe(s,4920),STe(s)|0,xTe(s)|0}function DTe(s,l){s=s|0,l=l|0;var c=0;c=xG()|0,n[s>>2]=c,JTe(c,l),xp(n[s>>2]|0)}function STe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,MTe()|0),s|0}function xTe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,PTe()|0),s|0}function PTe(){var s=0;return o[7888]|0||(o5(10328),Zt(53,10328,_|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),br(10328)|0||o5(10328),10328}function vg(s,l){s=s|0,l=l|0,un(s,0,l,0,0,0)}function o5(s){s=s|0,kTe(s),Dg(s,10)}function bTe(s){s=s|0,QTe(s+24|0)}function QTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function kTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,1,l,LTe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FTe(s,l,c){s=s|0,l=l|0,c=+c,RTe(s,l,c)}function Dg(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function RTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,m=f+8|0,Q=f+13|0,d=f,B=f+12|0,XA(Q,l),n[m>>2]=ZA(Q,l)|0,Tu(B,c),C[d>>3]=+Lu(B,c),TTe(s,m,d),E=f}function TTe(s,l,c){s=s|0,l=l|0,c=c|0,W(s+8|0,n[l>>2]|0,+C[c>>3]),o[s+24>>0]=1}function LTe(){return 1404}function NTe(s,l){return s=s|0,l=+l,OTe(s,l)|0}function OTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return f=E,E=E+16|0,m=f+4|0,B=f+8|0,Q=f,d=Ja(8)|0,c=d,k=Gt(16)|0,XA(m,s),s=ZA(m,s)|0,Tu(B,l),W(k,s,+Lu(B,l)),B=c+4|0,n[B>>2]=k,s=Gt(8)|0,B=n[B>>2]|0,n[Q>>2]=0,n[m>>2]=n[Q>>2],HF(s,B,m),n[d>>2]=s,E=f,c|0}function MTe(){var s=0;return o[7896]|0||(a5(10364),Zt(54,10364,_|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),br(10364)|0||a5(10364),10364}function a5(s){s=s|0,HTe(s),Dg(s,55)}function UTe(s){s=s|0,_Te(s+24|0)}function _Te(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function HTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,4,l,WTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qTe(s){s=s|0,jTe(s)}function jTe(s){s=s|0,GTe(s)}function GTe(s){s=s|0,l5(s+8|0),o[s+24>>0]=1}function l5(s){s=s|0,n[s>>2]=0,C[s+8>>3]=0}function WTe(){return 1424}function YTe(){return KTe()|0}function KTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=E,E=E+16|0,d=l+4|0,B=l,c=Ja(8)|0,s=c,f=Gt(16)|0,l5(f),m=s+4|0,n[m>>2]=f,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],HF(f,m,d),n[c>>2]=f,E=l,s|0}function JTe(s,l){s=s|0,l=l|0,n[s>>2]=VTe()|0,n[s+4>>2]=zTe()|0,n[s+12>>2]=l,n[s+8>>2]=XTe()|0,n[s+32>>2]=5}function VTe(){return 11710}function zTe(){return 1416}function XTe(){return jv()|0}function ZTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&($Te(c),pt(c)):l|0&&pt(l)}function $Te(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function jv(){var s=0;return o[7904]|0||(n[2600]=eLe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function eLe(){return n[357]|0}function tLe(s){s=s|0,rLe(s,4926),nLe(s)|0}function rLe(s,l){s=s|0,l=l|0;var c=0;c=z9()|0,n[s>>2]=c,hLe(c,l),xp(n[s>>2]|0)}function nLe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,iLe()|0),s|0}function iLe(){var s=0;return o[7912]|0||(c5(10412),Zt(56,10412,_|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),br(10412)|0||c5(10412),10412}function c5(s){s=s|0,aLe(s),Dg(s,57)}function sLe(s){s=s|0,oLe(s+24|0)}function oLe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function aLe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,5,l,ALe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function lLe(s){s=s|0,cLe(s)}function cLe(s){s=s|0,uLe(s)}function uLe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function ALe(){return 1432}function fLe(){return pLe()|0}function pLe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,Q=0;B=E,E=E+16|0,s=B+4|0,l=B,c=Ja(8)|0,f=c,d=Gt(48)|0,m=d,Q=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(Q|0));return m=f+4|0,n[m>>2]=d,Q=Gt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],X9(Q,m,s),n[c>>2]=Q,E=B,f|0}function hLe(s,l){s=s|0,l=l|0,n[s>>2]=gLe()|0,n[s+4>>2]=dLe()|0,n[s+12>>2]=l,n[s+8>>2]=mLe()|0,n[s+32>>2]=6}function gLe(){return 11704}function dLe(){return 1436}function mLe(){return jv()|0}function yLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(ELe(c),pt(c)):l|0&&pt(l)}function ELe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function CLe(s){s=s|0,ILe(s,4933),wLe(s)|0,BLe(s)|0}function ILe(s,l){s=s|0,l=l|0;var c=0;c=KLe()|0,n[s>>2]=c,JLe(c,l),xp(n[s>>2]|0)}function wLe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,OLe()|0),s|0}function BLe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,vLe()|0),s|0}function vLe(){var s=0;return o[7920]|0||(u5(10452),Zt(58,10452,_|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),br(10452)|0||u5(10452),10452}function u5(s){s=s|0,xLe(s),Dg(s,1)}function DLe(s){s=s|0,SLe(s+24|0)}function SLe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function xLe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,1,l,kLe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function PLe(s,l,c){s=s|0,l=+l,c=+c,bLe(s,l,c)}function bLe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+32|0,m=f+8|0,Q=f+17|0,d=f,B=f+16|0,Tu(Q,l),C[m>>3]=+Lu(Q,l),Tu(B,c),C[d>>3]=+Lu(B,c),QLe(s,m,d),E=f}function QLe(s,l,c){s=s|0,l=l|0,c=c|0,A5(s+8|0,+C[l>>3],+C[c>>3]),o[s+24>>0]=1}function A5(s,l,c){s=s|0,l=+l,c=+c,C[s>>3]=l,C[s+8>>3]=c}function kLe(){return 1472}function FLe(s,l){return s=+s,l=+l,RLe(s,l)|0}function RLe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return f=E,E=E+16|0,B=f+4|0,Q=f+8|0,k=f,d=Ja(8)|0,c=d,m=Gt(16)|0,Tu(B,s),s=+Lu(B,s),Tu(Q,l),A5(m,s,+Lu(Q,l)),Q=c+4|0,n[Q>>2]=m,m=Gt(8)|0,Q=n[Q>>2]|0,n[k>>2]=0,n[B>>2]=n[k>>2],f5(m,Q,B),n[d>>2]=m,E=f,c|0}function f5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function TLe(s){s=s|0,Jm(s),pt(s)}function LLe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function NLe(s){s=s|0,pt(s)}function OLe(){var s=0;return o[7928]|0||(p5(10488),Zt(59,10488,_|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),br(10488)|0||p5(10488),10488}function p5(s){s=s|0,_Le(s),Dg(s,60)}function MLe(s){s=s|0,ULe(s+24|0)}function ULe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function _Le(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,6,l,GLe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function HLe(s){s=s|0,qLe(s)}function qLe(s){s=s|0,jLe(s)}function jLe(s){s=s|0,h5(s+8|0),o[s+24>>0]=1}function h5(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function GLe(){return 1492}function WLe(){return YLe()|0}function YLe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=E,E=E+16|0,d=l+4|0,B=l,c=Ja(8)|0,s=c,f=Gt(16)|0,h5(f),m=s+4|0,n[m>>2]=f,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],f5(f,m,d),n[c>>2]=f,E=l,s|0}function KLe(){var s=0;return o[7936]|0||(eNe(10524),Zt(25,10524,_|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function JLe(s,l){s=s|0,l=l|0,n[s>>2]=VLe()|0,n[s+4>>2]=zLe()|0,n[s+12>>2]=l,n[s+8>>2]=XLe()|0,n[s+32>>2]=7}function VLe(){return 11700}function zLe(){return 1484}function XLe(){return jv()|0}function ZLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&($Le(c),pt(c)):l|0&&pt(l)}function $Le(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function eNe(s){s=s|0,wp(s)}function tNe(s,l,c){s=s|0,l=l|0,c=c|0,s=cn(l)|0,l=rNe(c)|0,c=nNe(c,0)|0,RNe(s,l,c,nR()|0,0)}function rNe(s){return s=s|0,s|0}function nNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=nR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(d5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(uNe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function nR(){var s=0,l=0;if(o[7944]|0||(g5(10568),Zt(61,10568,_|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(br(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));g5(10568)}return 10568}function g5(s){s=s|0,oNe(s)}function iNe(s){s=s|0,sNe(s+24|0)}function sNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function oNe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,17,l,hG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function aNe(s){return s=s|0,cNe(n[(lNe(s)|0)>>2]|0)|0}function lNe(s){return s=s|0,(n[(nR()|0)+24>>2]|0)+(s<<3)|0}function cNe(s){return s=s|0,Hv(tD[s&7]()|0)|0}function d5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function uNe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=ANe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,fNe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,d5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,pNe(s,d),hNe(d),E=Q;return}}function ANe(s){return s=s|0,536870911}function fNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function pNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function hNe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function gNe(){dNe()}function dNe(){mNe(10604)}function mNe(s){s=s|0,yNe(s,4955)}function yNe(s,l){s=s|0,l=l|0;var c=0;c=ENe()|0,n[s>>2]=c,CNe(c,l),xp(n[s>>2]|0)}function ENe(){var s=0;return o[7952]|0||(bNe(10612),Zt(25,10612,_|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function CNe(s,l){s=s|0,l=l|0,n[s>>2]=vNe()|0,n[s+4>>2]=DNe()|0,n[s+12>>2]=l,n[s+8>>2]=SNe()|0,n[s+32>>2]=8}function xp(s){s=s|0;var l=0,c=0;l=E,E=E+16|0,c=l,jm()|0,n[c>>2]=s,INe(10608,c),E=l}function jm(){return o[11714]|0||(n[2652]=0,Zt(62,10608,_|0)|0,o[11714]=1),10608}function INe(s,l){s=s|0,l=l|0;var c=0;c=Gt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function wNe(s){s=s|0,BNe(s)}function BNe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function vNe(){return 11715}function DNe(){return 1496}function SNe(){return qv()|0}function xNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(PNe(c),pt(c)):l|0&&pt(l)}function PNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function bNe(s){s=s|0,wp(s)}function QNe(s,l){s=s|0,l=l|0;var c=0,f=0;jm()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&(X5(iR(f)|0,s)|0)==0);)if(c=n[c>>2]|0,!c)break e;kNe(f,l)}while(0)}function iR(s){return s=s|0,n[s+12>>2]|0}function kNe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(qA(c),pt(c)),c=Gt(4)|0,G9(c,l),n[s>>2]=c}function sR(){return o[11716]|0||(n[2664]=0,Zt(63,10656,_|0)|0,o[11716]=1),10656}function m5(){var s=0;return o[11717]|0?s=n[2665]|0:(FNe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function FNe(){o[11740]|0||(o[11718]=Ar(Ar(8,0)|0,0)|0,o[11719]=Ar(Ar(0,0)|0,0)|0,o[11720]=Ar(Ar(0,16)|0,0)|0,o[11721]=Ar(Ar(8,0)|0,0)|0,o[11722]=Ar(Ar(0,0)|0,0)|0,o[11723]=Ar(Ar(8,0)|0,0)|0,o[11724]=Ar(Ar(0,0)|0,0)|0,o[11725]=Ar(Ar(8,0)|0,0)|0,o[11726]=Ar(Ar(0,0)|0,0)|0,o[11727]=Ar(Ar(8,0)|0,0)|0,o[11728]=Ar(Ar(0,0)|0,0)|0,o[11729]=Ar(Ar(0,0)|0,32)|0,o[11730]=Ar(Ar(0,0)|0,32)|0,o[11740]=1)}function y5(){return 1572}function RNe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0;m=E,E=E+32|0,O=m+16|0,M=m+12|0,k=m+8|0,Q=m+4|0,B=m,n[O>>2]=s,n[M>>2]=l,n[k>>2]=c,n[Q>>2]=f,n[B>>2]=d,sR()|0,TNe(10656,O,M,k,Q,B),E=m}function TNe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Gt(24)|0,K9(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function E5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0;if(at=E,E=E+32|0,Oe=at+20|0,Re=at+8|0,et=at+4|0,Ze=at,l=n[l>>2]|0,l|0){We=Oe+4|0,k=Oe+8|0,M=Re+4|0,O=Re+8|0,j=Re+8|0,se=Oe+8|0;do{if(B=l+4|0,Q=oR(B)|0,Q|0){if(d=BI(Q)|0,n[Oe>>2]=0,n[We>>2]=0,n[k>>2]=0,f=(vI(Q)|0)+1|0,LNe(Oe,f),f|0)for(;f=f+-1|0,bc(Re,n[d>>2]|0),m=n[We>>2]|0,m>>>0<(n[se>>2]|0)>>>0?(n[m>>2]=n[Re>>2],n[We>>2]=(n[We>>2]|0)+4):aR(Oe,Re),f;)d=d+4|0;f=DI(Q)|0,n[Re>>2]=0,n[M>>2]=0,n[O>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?NNe(Re,f):(n[d>>2]=n[f>>2],n[M>>2]=(n[M>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[M>>2]|0,m=n[j>>2]|0}while(0);n[et>>2]=Gv(B)|0,n[Ze>>2]=br(Q)|0,ONe(c,s,et,Ze,Oe,Re),lR(Re),$A(Oe)}l=n[l>>2]|0}while((l|0)!=0)}E=at}function oR(s){return s=s|0,n[s+12>>2]|0}function BI(s){return s=s|0,n[s+12>>2]|0}function vI(s){return s=s|0,n[s+16>>2]|0}function LNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=E,E=E+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0>>0&&(x5(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),P5(s,c),b5(c)),E=d}function aR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;if(B=E,E=E+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=S5(s)|0,m>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,k=M>>1,x5(c,M>>2>>>0>>1>>>0?k>>>0>>0?d:k:m,(n[f>>2]|0)-Q>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,P5(s,c),b5(c),E=B;return}}function DI(s){return s=s|0,n[s+8>>2]|0}function NNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;if(B=E,E=E+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=D5(s)|0,m>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,k=M>>1,rOe(c,M>>2>>>0>>1>>>0?k>>>0>>0?d:k:m,(n[f>>2]|0)-Q>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,nOe(s,c),iOe(c),E=B;return}}function Gv(s){return s=s|0,n[s>>2]|0}function ONe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,MNe(s,l,c,f,d,m)}function lR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function $A(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function MNe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=E,E=E+48|0,O=B+40|0,Q=B+32|0,j=B+24|0,k=B+12|0,M=B,Va(Q),s=ga(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,cR(k,d),UNe(M,m),n[O>>2]=n[j>>2],_Ne(s,O,c,f,k,M),lR(M),$A(k),za(Q),E=B}function cR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(eOe(s,f),tOe(s,n[l>>2]|0,n[c>>2]|0,f))}function UNe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(ZNe(s,f),$Ne(s,n[l>>2]|0,n[c>>2]|0,f))}function _Ne(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=E,E=E+32|0,O=B+28|0,j=B+24|0,Q=B+12|0,k=B,M=xl(HNe()|0)|0,n[j>>2]=n[l>>2],n[O>>2]=n[j>>2],l=Sg(O)|0,c=C5(c)|0,f=uR(f)|0,n[Q>>2]=n[d>>2],O=d+4|0,n[Q+4>>2]=n[O>>2],j=d+8|0,n[Q+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[d>>2]=0,d=AR(Q)|0,n[k>>2]=n[m>>2],O=m+4|0,n[k+4>>2]=n[O>>2],j=m+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[m>>2]=0,io(0,M|0,s|0,l|0,c|0,f|0,d|0,qNe(k)|0)|0,lR(k),$A(Q),E=B}function HNe(){var s=0;return o[7968]|0||(zNe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function Sg(s){return s=s|0,w5(s)|0}function C5(s){return s=s|0,I5(s)|0}function uR(s){return s=s|0,Hv(s)|0}function AR(s){return s=s|0,GNe(s)|0}function qNe(s){return s=s|0,jNe(s)|0}function jNe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Ja(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=I5(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function I5(s){return s=s|0,s|0}function GNe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Ja(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=w5((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function w5(s){s=s|0;var l=0,c=0,f=0,d=0;return d=E,E=E+32|0,l=d+12|0,c=d,f=BF(B5()|0)|0,f?(vF(l,f),DF(c,l),SUe(s,c),s=SF(l)|0):s=WNe(s)|0,E=d,s|0}function B5(){var s=0;return o[7960]|0||(VNe(10664),Zt(25,10664,_|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function WNe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=E,E=E+16|0,d=c+4|0,B=c,f=Ja(8)|0,l=f,Q=Gt(4)|0,n[Q>>2]=n[s>>2],m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],v5(s,m,d),n[f>>2]=s,E=c,l|0}function v5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function YNe(s){s=s|0,Jm(s),pt(s)}function KNe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function JNe(s){s=s|0,pt(s)}function VNe(s){s=s|0,wp(s)}function zNe(s){s=s|0,Pl(s,XNe()|0,5)}function XNe(){return 1676}function ZNe(s,l){s=s|0,l=l|0;var c=0;if((D5(s)|0)>>>0>>0&&Jr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function $Ne(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Cr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function D5(s){return s=s|0,1073741823}function eOe(s,l){s=s|0,l=l|0;var c=0;if((S5(s)|0)>>>0>>0&&Jr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function tOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Cr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function S5(s){return s=s|0,1073741823}function rOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function nOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function iOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function x5(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function P5(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function b5(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function sOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0;if(Re=E,E=E+32|0,O=Re+20|0,j=Re+12|0,M=Re+16|0,se=Re+4|0,We=Re,Oe=Re+8|0,Q=m5()|0,m=n[Q>>2]|0,B=n[m>>2]|0,B|0)for(k=n[Q+8>>2]|0,Q=n[Q+4>>2]|0;bc(O,B),oOe(s,O,Q,k),m=m+4|0,B=n[m>>2]|0,B;)k=k+1|0,Q=Q+1|0;if(m=y5()|0,B=n[m>>2]|0,B|0)do bc(O,B),n[j>>2]=n[m+4>>2],aOe(l,O,j),m=m+8|0,B=n[m>>2]|0;while((B|0)!=0);if(m=n[(jm()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,bc(O,n[(Gm(l)|0)>>2]|0),n[j>>2]=iR(l)|0,lOe(c,O,j),m=n[m>>2]|0;while((m|0)!=0);if(bc(M,0),m=sR()|0,n[O>>2]=n[M>>2],E5(O,m,d),m=n[(jm()|0)>>2]|0,m|0){s=O+4|0,l=O+8|0,c=O+8|0;do{if(k=n[m+4>>2]|0,bc(j,n[(Gm(k)|0)>>2]|0),cOe(se,Q5(k)|0),B=n[se>>2]|0,B|0){n[O>>2]=0,n[s>>2]=0,n[l>>2]=0;do bc(We,n[(Gm(n[B+4>>2]|0)|0)>>2]|0),Q=n[s>>2]|0,Q>>>0<(n[c>>2]|0)>>>0?(n[Q>>2]=n[We>>2],n[s>>2]=(n[s>>2]|0)+4):aR(O,We),B=n[B>>2]|0;while((B|0)!=0);uOe(f,j,O),$A(O)}n[Oe>>2]=n[j>>2],M=k5(k)|0,n[O>>2]=n[Oe>>2],E5(O,M,d),$9(se),m=n[m>>2]|0}while((m|0)!=0)}E=Re}function oOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,wOe(s,l,c,f)}function aOe(s,l,c){s=s|0,l=l|0,c=c|0,IOe(s,l,c)}function Gm(s){return s=s|0,s|0}function lOe(s,l,c){s=s|0,l=l|0,c=c|0,mOe(s,l,c)}function Q5(s){return s=s|0,s+16|0}function cOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;if(m=E,E=E+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=dOe(c)|0,f|0){if(f=Gt(12)|0,B=(F5(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Gt(12)|0,k=(F5(d)|0)+4|0,Q=n[k+4>>2]|0,B=s+4|0,n[B>>2]=n[k>>2],n[B+4>>2]=Q,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}E=m}function uOe(s,l,c){s=s|0,l=l|0,c=c|0,AOe(s,l,c)}function k5(s){return s=s|0,s+24|0}function AOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+32|0,B=f+24|0,d=f+16|0,Q=f+12|0,m=f,Va(d),s=ga(s)|0,n[Q>>2]=n[l>>2],cR(m,c),n[B>>2]=n[Q>>2],fOe(s,B,m),$A(m),za(d),E=f}function fOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+32|0,B=f+16|0,Q=f+12|0,d=f,m=xl(pOe()|0)|0,n[Q>>2]=n[l>>2],n[B>>2]=n[Q>>2],l=Sg(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],Q=c+8|0,n[d+8>>2]=n[Q>>2],n[Q>>2]=0,n[B>>2]=0,n[c>>2]=0,no(0,m|0,s|0,l|0,AR(d)|0)|0,$A(d),E=f}function pOe(){var s=0;return o[7976]|0||(hOe(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function hOe(s){s=s|0,Pl(s,gOe()|0,2)}function gOe(){return 1732}function dOe(s){return s=s|0,n[s>>2]|0}function F5(s){return s=s|0,n[s>>2]|0}function mOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+32|0,m=f+16|0,d=f+8|0,B=f,Va(d),s=ga(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],R5(s,m,c),za(d),E=f}function R5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,m=f+4|0,B=f,d=xl(yOe()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=Sg(m)|0,no(0,d|0,s|0,l|0,C5(c)|0)|0,E=f}function yOe(){var s=0;return o[7984]|0||(EOe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function EOe(s){s=s|0,Pl(s,COe()|0,2)}function COe(){return 1744}function IOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+32|0,m=f+16|0,d=f+8|0,B=f,Va(d),s=ga(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],R5(s,m,c),za(d),E=f}function wOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+32|0,B=d+16|0,m=d+8|0,Q=d,Va(m),s=ga(s)|0,n[Q>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[Q>>2],BOe(s,B,c,f),za(m),E=d}function BOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,B=d+4|0,Q=d,m=xl(vOe()|0)|0,n[Q>>2]=n[l>>2],n[B>>2]=n[Q>>2],l=Sg(B)|0,c=Wm(c)|0,gc(0,m|0,s|0,l|0,c|0,Wm(f)|0)|0,E=d}function vOe(){var s=0;return o[7992]|0||(SOe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function Wm(s){return s=s|0,DOe(s)|0}function DOe(s){return s=s|0,s&255|0}function SOe(s){s=s|0,Pl(s,xOe()|0,3)}function xOe(){return 1756}function POe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;switch(se=E,E=E+32|0,Q=se+8|0,k=se+4|0,M=se+20|0,O=se,QF(s,0),f=DUe(l)|0,n[Q>>2]=0,j=Q+4|0,n[j>>2]=0,n[Q+8>>2]=0,f<<24>>24){case 0:{o[M>>0]=0,bOe(k,c,M),Wv(s,k)|0,jA(k);break}case 8:{j=mR(l)|0,o[M>>0]=8,bc(O,n[j+4>>2]|0),QOe(k,c,M,O,j+8|0),Wv(s,k)|0,jA(k);break}case 9:{if(m=mR(l)|0,l=n[m+4>>2]|0,l|0)for(B=Q+8|0,d=m+12|0;l=l+-1|0,bc(k,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[k>>2],n[j>>2]=(n[j>>2]|0)+4):aR(Q,k),l;)d=d+4|0;o[M>>0]=9,bc(O,n[m+8>>2]|0),kOe(k,c,M,O,Q),Wv(s,k)|0,jA(k);break}default:j=mR(l)|0,o[M>>0]=f,bc(O,n[j+4>>2]|0),FOe(k,c,M,O),Wv(s,k)|0,jA(k)}$A(Q),E=se}function bOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,Va(d),l=ga(l)|0,WOe(s,l,o[c>>0]|0),za(d),E=f}function Wv(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&PA(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function QOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0;m=E,E=E+32|0,Q=m+16|0,B=m+8|0,k=m,Va(B),l=ga(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],d=n[d>>2]|0,n[Q>>2]=n[k>>2],HOe(s,l,c,Q,d),za(B),E=m}function kOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0;m=E,E=E+32|0,k=m+24|0,B=m+16|0,M=m+12|0,Q=m,Va(B),l=ga(l)|0,c=o[c>>0]|0,n[M>>2]=n[f>>2],cR(Q,d),n[k>>2]=n[M>>2],OOe(s,l,c,k,Q),$A(Q),za(B),E=m}function FOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+32|0,B=d+16|0,m=d+8|0,Q=d,Va(m),l=ga(l)|0,c=o[c>>0]|0,n[Q>>2]=n[f>>2],n[B>>2]=n[Q>>2],ROe(s,l,c,B),za(m),E=d}function ROe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+4|0,Q=d,B=xl(TOe()|0)|0,c=Wm(c)|0,n[Q>>2]=n[f>>2],n[m>>2]=n[Q>>2],Yv(s,no(0,B|0,l|0,c|0,Sg(m)|0)|0),E=d}function TOe(){var s=0;return o[8e3]|0||(LOe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function Yv(s,l){s=s|0,l=l|0,QF(s,l)}function LOe(s){s=s|0,Pl(s,NOe()|0,2)}function NOe(){return 1772}function OOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0;m=E,E=E+32|0,k=m+16|0,M=m+12|0,B=m,Q=xl(MOe()|0)|0,c=Wm(c)|0,n[M>>2]=n[f>>2],n[k>>2]=n[M>>2],f=Sg(k)|0,n[B>>2]=n[d>>2],k=d+4|0,n[B+4>>2]=n[k>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[k>>2]=0,n[d>>2]=0,Yv(s,gc(0,Q|0,l|0,c|0,f|0,AR(B)|0)|0),$A(B),E=m}function MOe(){var s=0;return o[8008]|0||(UOe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function UOe(s){s=s|0,Pl(s,_Oe()|0,3)}function _Oe(){return 1784}function HOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0;m=E,E=E+16|0,Q=m+4|0,k=m,B=xl(qOe()|0)|0,c=Wm(c)|0,n[k>>2]=n[f>>2],n[Q>>2]=n[k>>2],f=Sg(Q)|0,Yv(s,gc(0,B|0,l|0,c|0,f|0,uR(d)|0)|0),E=m}function qOe(){var s=0;return o[8016]|0||(jOe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function jOe(s){s=s|0,Pl(s,GOe()|0,3)}function GOe(){return 1800}function WOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=xl(YOe()|0)|0,Yv(s,Dn(0,f|0,l|0,Wm(c)|0)|0)}function YOe(){var s=0;return o[8024]|0||(KOe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function KOe(s){s=s|0,Pl(s,JOe()|0,1)}function JOe(){return 1816}function VOe(){zOe(),XOe(),ZOe()}function zOe(){n[2702]=a7(65536)|0}function XOe(){yMe(10856)}function ZOe(){$Oe(10816)}function $Oe(s){s=s|0,eMe(s,5044),tMe(s)|0}function eMe(s,l){s=s|0,l=l|0;var c=0;c=B5()|0,n[s>>2]=c,fMe(c,l),xp(n[s>>2]|0)}function tMe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,rMe()|0),s|0}function rMe(){var s=0;return o[8032]|0||(T5(10820),Zt(64,10820,_|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),br(10820)|0||T5(10820),10820}function T5(s){s=s|0,sMe(s),Dg(s,25)}function nMe(s){s=s|0,iMe(s+24|0)}function iMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function sMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,18,l,cMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function oMe(s,l){s=s|0,l=l|0,aMe(s,l)}function aMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=E,E=E+16|0,f=c,d=c+4|0,wg(d,l),n[f>>2]=Bg(d,l)|0,lMe(s,f),E=c}function lMe(s,l){s=s|0,l=l|0,L5(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function L5(s,l){s=s|0,l=l|0,n[s>>2]=l}function cMe(){return 1824}function uMe(s){return s=s|0,AMe(s)|0}function AMe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=E,E=E+16|0,d=c+4|0,B=c,f=Ja(8)|0,l=f,Q=Gt(4)|0,wg(d,s),L5(Q,Bg(d,s)|0),m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],v5(s,m,d),n[f>>2]=s,E=c,l|0}function Ja(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=a7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function fMe(s,l){s=s|0,l=l|0,n[s>>2]=pMe()|0,n[s+4>>2]=hMe()|0,n[s+12>>2]=l,n[s+8>>2]=gMe()|0,n[s+32>>2]=9}function pMe(){return 11744}function hMe(){return 1832}function gMe(){return jv()|0}function dMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(mMe(c),pt(c)):l|0&&pt(l)}function mMe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function yMe(s){s=s|0,EMe(s,5052),CMe(s)|0,IMe(s,5058,26)|0,wMe(s,5069,1)|0,BMe(s,5077,10)|0,vMe(s,5087,19)|0,DMe(s,5094,27)|0}function EMe(s,l){s=s|0,l=l|0;var c=0;c=mUe()|0,n[s>>2]=c,yUe(c,l),xp(n[s>>2]|0)}function CMe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,nUe()|0),s|0}function IMe(s,l,c){return s=s|0,l=l|0,c=c|0,U4e(s,cn(l)|0,c,0),s|0}function wMe(s,l,c){return s=s|0,l=l|0,c=c|0,v4e(s,cn(l)|0,c,0),s|0}function BMe(s,l,c){return s=s|0,l=l|0,c=c|0,r4e(s,cn(l)|0,c,0),s|0}function vMe(s,l,c){return s=s|0,l=l|0,c=c|0,HMe(s,cn(l)|0,c,0),s|0}function N5(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}pt(c)}n[2701]=s}function DMe(s,l,c){return s=s|0,l=l|0,c=c|0,SMe(s,cn(l)|0,c,0),s|0}function SMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=fR()|0,s=xMe(c)|0,un(m,l,d,s,PMe(c,f)|0,f)}function fR(){var s=0,l=0;if(o[8040]|0||(M5(10860),Zt(65,10860,_|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(br(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));M5(10860)}return 10860}function xMe(s){return s=s|0,s|0}function PMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=fR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(O5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(bMe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function O5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function bMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=QMe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,kMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,O5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,FMe(s,d),RMe(d),E=Q;return}}function QMe(s){return s=s|0,536870911}function kMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function FMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function RMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function M5(s){s=s|0,NMe(s)}function TMe(s){s=s|0,LMe(s+24|0)}function LMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function NMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,11,l,OMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function OMe(){return 1840}function MMe(s,l,c){s=s|0,l=l|0,c=c|0,_Me(n[(UMe(s)|0)>>2]|0,l,c)}function UMe(s){return s=s|0,(n[(fR()|0)+24>>2]|0)+(s<<3)|0}function _Me(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=E,E=E+16|0,m=f+1|0,d=f,wg(m,l),l=Bg(m,l)|0,wg(d,c),c=Bg(d,c)|0,tf[s&31](l,c),E=f}function HMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=pR()|0,s=qMe(c)|0,un(m,l,d,s,jMe(c,f)|0,f)}function pR(){var s=0,l=0;if(o[8048]|0||(_5(10896),Zt(66,10896,_|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(br(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));_5(10896)}return 10896}function qMe(s){return s=s|0,s|0}function jMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=pR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(U5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(GMe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function U5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function GMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=WMe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,YMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,U5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,KMe(s,d),JMe(d),E=Q;return}}function WMe(s){return s=s|0,536870911}function YMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function KMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function JMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function _5(s){s=s|0,XMe(s)}function VMe(s){s=s|0,zMe(s+24|0)}function zMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function XMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,11,l,ZMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ZMe(){return 1852}function $Me(s,l){return s=s|0,l=l|0,t4e(n[(e4e(s)|0)>>2]|0,l)|0}function e4e(s){return s=s|0,(n[(pR()|0)+24>>2]|0)+(s<<3)|0}function t4e(s,l){s=s|0,l=l|0;var c=0,f=0;return c=E,E=E+16|0,f=c,wg(f,l),l=Bg(f,l)|0,l=Hv(Qg[s&31](l)|0)|0,E=c,l|0}function r4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=hR()|0,s=n4e(c)|0,un(m,l,d,s,i4e(c,f)|0,f)}function hR(){var s=0,l=0;if(o[8056]|0||(q5(10932),Zt(67,10932,_|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(br(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));q5(10932)}return 10932}function n4e(s){return s=s|0,s|0}function i4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=hR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(H5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(s4e(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function H5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function s4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=o4e(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,a4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,H5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,l4e(s,d),c4e(d),E=Q;return}}function o4e(s){return s=s|0,536870911}function a4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function l4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function c4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function q5(s){s=s|0,f4e(s)}function u4e(s){s=s|0,A4e(s+24|0)}function A4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function f4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,7,l,p4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function p4e(){return 1860}function h4e(s,l,c){return s=s|0,l=l|0,c=c|0,d4e(n[(g4e(s)|0)>>2]|0,l,c)|0}function g4e(s){return s=s|0,(n[(hR()|0)+24>>2]|0)+(s<<3)|0}function d4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0;return f=E,E=E+32|0,B=f+12|0,m=f+8|0,Q=f,k=f+16|0,d=f+4|0,m4e(k,l),y4e(Q,k,l),Bp(d,c),c=vp(d,c)|0,n[B>>2]=n[Q>>2],bI[s&15](m,B,c),c=E4e(m)|0,jA(m),Dp(d),E=f,c|0}function m4e(s,l){s=s|0,l=l|0}function y4e(s,l,c){s=s|0,l=l|0,c=c|0,C4e(s,c)}function E4e(s){return s=s|0,ga(s)|0}function C4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=E,E=E+16|0,c=d,f=l,f&1?(I4e(c,0),Zn(f|0,c|0)|0,w4e(s,c),B4e(c)):n[s>>2]=n[l>>2],E=d}function I4e(s,l){s=s|0,l=l|0,W9(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function w4e(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function B4e(s){s=s|0,o[s+8>>0]=0}function v4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=gR()|0,s=D4e(c)|0,un(m,l,d,s,S4e(c,f)|0,f)}function gR(){var s=0,l=0;if(o[8064]|0||(G5(10968),Zt(68,10968,_|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(br(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));G5(10968)}return 10968}function D4e(s){return s=s|0,s|0}function S4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=gR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(j5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(x4e(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function j5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function x4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=P4e(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,b4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,j5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,Q4e(s,d),k4e(d),E=Q;return}}function P4e(s){return s=s|0,536870911}function b4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function Q4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function k4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function G5(s){s=s|0,T4e(s)}function F4e(s){s=s|0,R4e(s+24|0)}function R4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function T4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,1,l,L4e()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function L4e(){return 1872}function N4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,M4e(n[(O4e(s)|0)>>2]|0,l,c,f,d,m)}function O4e(s){return s=s|0,(n[(gR()|0)+24>>2]|0)+(s<<3)|0}function M4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=E,E=E+32|0,Q=B+16|0,k=B+12|0,M=B+8|0,O=B+4|0,j=B,Bp(Q,l),l=vp(Q,l)|0,Bp(k,c),c=vp(k,c)|0,Bp(M,f),f=vp(M,f)|0,Bp(O,d),d=vp(O,d)|0,Bp(j,m),m=vp(j,m)|0,f7[s&1](l,c,f,d,m),Dp(j),Dp(O),Dp(M),Dp(k),Dp(Q),E=B}function U4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=dR()|0,s=_4e(c)|0,un(m,l,d,s,H4e(c,f)|0,f)}function dR(){var s=0,l=0;if(o[8072]|0||(Y5(11004),Zt(69,11004,_|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(br(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Y5(11004)}return 11004}function _4e(s){return s=s|0,s|0}function H4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=dR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(W5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(q4e(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function W5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function q4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=j4e(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,G4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,W5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,W4e(s,d),Y4e(d),E=Q;return}}function j4e(s){return s=s|0,536870911}function G4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function W4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Y4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function Y5(s){s=s|0,V4e(s)}function K4e(s){s=s|0,J4e(s+24|0)}function J4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function V4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,12,l,z4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function z4e(){return 1896}function X4e(s,l,c){s=s|0,l=l|0,c=c|0,$4e(n[(Z4e(s)|0)>>2]|0,l,c)}function Z4e(s){return s=s|0,(n[(dR()|0)+24>>2]|0)+(s<<3)|0}function $4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=E,E=E+16|0,m=f+4|0,d=f,eUe(m,l),l=tUe(m,l)|0,Bp(d,c),c=vp(d,c)|0,tf[s&31](l,c),Dp(d),E=f}function eUe(s,l){s=s|0,l=l|0}function tUe(s,l){return s=s|0,l=l|0,rUe(l)|0}function rUe(s){return s=s|0,s|0}function nUe(){var s=0;return o[8080]|0||(K5(11040),Zt(70,11040,_|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),br(11040)|0||K5(11040),11040}function K5(s){s=s|0,oUe(s),Dg(s,71)}function iUe(s){s=s|0,sUe(s+24|0)}function sUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function oUe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,7,l,uUe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function aUe(s){s=s|0,lUe(s)}function lUe(s){s=s|0,cUe(s)}function cUe(s){s=s|0,o[s+8>>0]=1}function uUe(){return 1936}function AUe(){return fUe()|0}function fUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=E,E=E+16|0,d=l+4|0,B=l,c=Ja(8)|0,s=c,m=s+4|0,n[m>>2]=Gt(1)|0,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],pUe(f,m,d),n[c>>2]=f,E=l,s|0}function pUe(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function hUe(s){s=s|0,Jm(s),pt(s)}function gUe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function dUe(s){s=s|0,pt(s)}function mUe(){var s=0;return o[8088]|0||(vUe(11076),Zt(25,11076,_|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function yUe(s,l){s=s|0,l=l|0,n[s>>2]=EUe()|0,n[s+4>>2]=CUe()|0,n[s+12>>2]=l,n[s+8>>2]=IUe()|0,n[s+32>>2]=10}function EUe(){return 11745}function CUe(){return 1940}function IUe(){return qv()|0}function wUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(BUe(c),pt(c)):l|0&&pt(l)}function BUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function vUe(s){s=s|0,wp(s)}function bc(s,l){s=s|0,l=l|0,n[s>>2]=l}function mR(s){return s=s|0,n[s>>2]|0}function DUe(s){return s=s|0,o[n[s>>2]>>0]|0}function SUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,n[f>>2]=n[s>>2],xUe(l,f)|0,E=c}function xUe(s,l){s=s|0,l=l|0;var c=0;return c=PUe(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function PUe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=E,E=E+16|0,f=c,Va(f),s=ga(s)|0,l=bUe(s,n[l>>2]|0)|0,za(f),E=c,l|0}function Va(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function bUe(s,l){s=s|0,l=l|0;var c=0;return c=xl(QUe()|0)|0,Dn(0,c|0,s|0,uR(l)|0)|0}function za(s){s=s|0,N5(n[s>>2]|0,n[s+4>>2]|0)}function QUe(){var s=0;return o[8096]|0||(kUe(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function kUe(s){s=s|0,Pl(s,FUe()|0,1)}function FUe(){return 1948}function RUe(){TUe()}function TUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0;if(Oe=E,E=E+16|0,O=Oe+4|0,j=Oe,Fi(65536,10804,n[2702]|0,10812),c=m5()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;fc(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=y5()|0,l=n[s>>2]|0,l|0)do du(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while((l|0)!=0);du(LUe()|0,5167),M=jm()|0,s=n[M>>2]|0;e:do if(s|0){do NUe(n[s+4>>2]|0),s=n[s>>2]|0;while((s|0)!=0);if(s=n[M>>2]|0,s|0){k=M;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(OUe(d)|0);)if(n[j>>2]=k,n[O>>2]=n[j>>2],MUe(M,O)|0,!s)break e;if(UUe(d),k=n[k>>2]|0,l=J5(d)|0,m=_i()|0,B=E,E=E+((1*(l<<2)|0)+15&-16)|0,Q=E,E=E+((1*(l<<2)|0)+15&-16)|0,l=n[(Q5(d)|0)>>2]|0,l|0)for(c=B,f=Q;n[c>>2]=n[(Gm(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Re=Gm(d)|0,l=_Ue(d)|0,c=J5(d)|0,f=HUe(d)|0,mu(Re|0,l|0,B|0,Q|0,c|0,f|0,iR(d)|0),Ui(m|0)}while((s|0)!=0)}}while(0);if(s=n[(sR()|0)>>2]|0,s|0)do Re=s+4|0,M=oR(Re)|0,d=DI(M)|0,m=BI(M)|0,B=(vI(M)|0)+1|0,Q=Kv(M)|0,k=V5(Re)|0,M=br(M)|0,O=Gv(Re)|0,j=yR(Re)|0,El(0,d|0,m|0,B|0,Q|0,k|0,M|0,O|0,j|0,ER(Re)|0),s=n[s>>2]|0;while((s|0)!=0);s=n[(jm()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(se=n[(Gm(l)|0)>>2]|0,We=n[(k5(l)|0)>>2]|0,We|0)){c=We;do{l=c+4|0,f=oR(l)|0;r:do if(f|0)switch(br(f)|0){case 0:break t;case 4:case 3:case 2:{Q=DI(f)|0,k=BI(f)|0,M=(vI(f)|0)+1|0,O=Kv(f)|0,j=br(f)|0,Re=Gv(l)|0,El(se|0,Q|0,k|0,M|0,O|0,0,j|0,Re|0,yR(l)|0,ER(l)|0);break r}case 1:{B=DI(f)|0,Q=BI(f)|0,k=(vI(f)|0)+1|0,M=Kv(f)|0,O=V5(l)|0,j=br(f)|0,Re=Gv(l)|0,El(se|0,B|0,Q|0,k|0,M|0,O|0,j|0,Re|0,yR(l)|0,ER(l)|0);break r}case 5:{M=DI(f)|0,O=BI(f)|0,j=(vI(f)|0)+1|0,Re=Kv(f)|0,El(se|0,M|0,O|0,j|0,Re|0,qUe(f)|0,br(f)|0,0,0,0);break r}default:break r}while(0);c=n[c>>2]|0}while((c|0)!=0)}if(s=n[s>>2]|0,!s)break e}Rt()}while(0);Ce(),E=Oe}function LUe(){return 11703}function NUe(s){s=s|0,o[s+40>>0]=0}function OUe(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function MUe(s,l){return s=s|0,l=l|0,l=jUe(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],pt(s),n[l>>2]|0}function UUe(s){s=s|0,o[s+40>>0]=1}function J5(s){return s=s|0,n[s+20>>2]|0}function _Ue(s){return s=s|0,n[s+8>>2]|0}function HUe(s){return s=s|0,n[s+32>>2]|0}function Kv(s){return s=s|0,n[s+4>>2]|0}function V5(s){return s=s|0,n[s+4>>2]|0}function yR(s){return s=s|0,n[s+8>>2]|0}function ER(s){return s=s|0,n[s+16>>2]|0}function qUe(s){return s=s|0,n[s+20>>2]|0}function jUe(s){return s=s|0,n[s>>2]|0}function Jv(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0;Tt=E,E=E+16|0,se=Tt;do if(s>>>0<245){if(M=s>>>0<11?16:s+11&-8,s=M>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<>2]=s,n[c>>2]=m),Ge=l<<3,n[f+4>>2]=Ge|3,Ge=f+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1,Ge=d,E=Tt,Ge|0;if(O=n[2785]|0,M>>>0>O>>>0){if(c|0)return l=2<>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<>2]=l,n[s>>2]=c,s=j),m=(f<<3)-M|0,n[d+4>>2]=M|3,f=d+M|0,n[f+4>>2]=m|1,n[f+m>>2]=m,O|0&&(d=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,Ge=B,E=Tt,Ge|0;if(Q=n[2784]|0,Q){if(c=(Q&0-Q)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,k=c>>>2&4,c=c>>>k,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|k|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-M|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)k=s,m=c;else{do B=(n[f+4>>2]&-8)-M|0,k=B>>>0>>0,c=k?B:c,s=k?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while((f|0)!=0);k=s,m=c}if(B=k+M|0,k>>>0>>0){d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[k+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(0);do if(d|0){if(l=n[k+28>>2]|0,s=11436+(l<<2)|0,(k|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=Q&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[k+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[k+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(0);return m>>>0<16?(Ge=m+M|0,n[k+4>>2]=Ge|3,Ge=k+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1):(n[k+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,O|0&&(f=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),Ge=k+8|0,E=Tt,Ge|0}else j=M}else j=M}else j=M}else if(s>>>0<=4294967231)if(s=s+11|0,M=s&-8,k=n[2784]|0,k){f=0-M|0,s=s>>>8,s?M>>>0>16777215?Q=31:(j=(s+1048320|0)>>>16&8,He=s<>>16&4,He=He<>>16&2,Q=14-(O|j|Q)+(He<>>15)|0,Q=M>>>(Q+7|0)&1|Q<<1):Q=0,c=n[11436+(Q<<2)>>2]|0;e:do if(!c)c=0,s=0,He=57;else for(s=0,B=M<<((Q|0)==31?0:25-(Q>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-M|0,d>>>0>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,He=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,He=57;break}else B=B<<((d^1)&1)}while(0);if((He|0)==57){if((c|0)==0&(s|0)==0){if(s=2<>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,Q=j>>>2&4,j=j>>>Q,O=j>>>1&2,j=j>>>O,c=j>>>1&1,s=0,c=n[11436+((m|B|Q|O|c)+(j>>>c)<<2)>>2]|0}c?(d=c,He=61):(Q=s,B=f)}if((He|0)==61)for(;;)if(He=0,c=(n[d+4>>2]&-8)-M|0,j=c>>>0>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,He=61;else{Q=s,B=c;break}if((Q|0)!=0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=Q+M|0,Q>>>0>=m>>>0)return Ge=0,E=Tt,Ge|0;d=n[Q+24>>2]|0,l=n[Q+12>>2]|0;do if((l|0)==(Q|0)){if(s=Q+20|0,l=n[s>>2]|0,!l&&(s=Q+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else Ge=n[Q+8>>2]|0,n[Ge+12>>2]=l,n[l+8>>2]=Ge;while(0);do if(d){if(s=n[Q+28>>2]|0,c=11436+(s<<2)|0,(Q|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=k&~(1<>2]|0)!=(Q|0)&1)<<2)>>2]=l,!l){f=k;break}n[l+24>>2]=d,s=n[Q+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[Q+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=k}else f=k;while(0);do if(B>>>0>=16){if(n[Q+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(He=(l+1048320|0)>>>16&8,Ge=l<>>16&4,Ge=Ge<>>16&2,l=14-(at|He|l)+(Ge<>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){He=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=96;break}}if((He|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((He|0)==97){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=m,n[He>>2]=m,n[m+8>>2]=Ge,n[m+12>>2]=c,n[m+24>>2]=0;break}}else Ge=B+M|0,n[Q+4>>2]=Ge|3,Ge=Q+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1;while(0);return Ge=Q+8|0,E=Tt,Ge|0}else j=M}else j=M;else j=-1;while(0);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(Ge=s+j|0,n[2788]=Ge,n[2785]=l,n[Ge+4>>2]=l|1,n[Ge+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,Ge=s+c+4|0,n[Ge>>2]=n[Ge>>2]|1),Ge=s+8|0,E=Tt,Ge|0;if(B=n[2786]|0,B>>>0>j>>>0)return at=B-j|0,n[2786]=at,Ge=n[2789]|0,He=Ge+j|0,n[2789]=He,n[He+4>>2]=at|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,E=Tt,Ge|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=se&-16^1431655768,n[se>>2]=s,n[2901]=s,s=4096),Q=j+48|0,k=j+47|0,m=s+k|0,d=0-s|0,M=m&d,M>>>0<=j>>>0||(s=n[2893]|0,s|0&&(O=n[2891]|0,se=O+M|0,se>>>0<=O>>>0|se>>>0>s>>>0)))return Ge=0,E=Tt,Ge|0;e:do if(n[2894]&4)l=0,He=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Re=f+4|0,(s+(n[Re>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{He=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=bp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Re>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,He=135;break e}}else f=s,He=126;else l=0}else He=118;while(0);do if((He|0)==118)if(c=bp(0)|0,(c|0)!=-1&&(l=c,We=n[2902]|0,Oe=We+-1|0,l=((Oe&l|0)==0?0:(Oe+l&0-We)-l|0)+M|0,We=n[2891]|0,Oe=l+We|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Re=n[2893]|0,Re|0&&Oe>>>0<=We>>>0|Oe>>>0>Re>>>0){l=0;break}if(s=bp(l|0)|0,(s|0)==(c|0)){B=l,m=c,He=135;break e}else f=s,He=126}else l=0;while(0);do if((He|0)==126){if(c=0-l|0,!(Q>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,He=135;break e}if(s=n[2903]|0,s=k-l+s&0-s,s>>>0>=2147483647){B=l,m=f,He=135;break e}if((bp(s|0)|0)==-1){bp(c|0)|0,l=0;break}else{B=s+l|0,m=f,He=135;break e}}while(0);n[2894]=n[2894]|4,He=133}while(0);if((He|0)==133&&M>>>0<2147483647&&(at=bp(M|0)|0,Re=bp(0)|0,et=Re-at|0,Ze=et>>>0>(j+40|0)>>>0,!((at|0)==-1|Ze^1|at>>>0>>0&((at|0)!=-1&(Re|0)!=-1)^1))&&(B=Ze?et:l,m=at,He=135),(He|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),k=n[2789]|0;do if(k){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){He=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((He|0)==145&&(n[l+12>>2]&8|0)==0&&k>>>0>>0&k>>>0>=s>>>0){n[c>>2]=f+B,Ge=k+8|0,Ge=(Ge&7|0)==0?0:0-Ge&7,He=k+Ge|0,Ge=(n[2786]|0)+(B-Ge)|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){He=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((He|0)==153&&(n[l+12>>2]&8|0)==0){n[l>>2]=m,O=l+4|0,n[O>>2]=(n[O>>2]|0)+B,O=m+8|0,O=m+((O&7|0)==0?0:0-O&7)|0,l=c+8|0,l=c+((l&7|0)==0?0:0-l&7)|0,M=O+j|0,Q=l-O-j|0,n[O+4>>2]=j|3;do if((l|0)!=(k|0)){if((l|0)==(n[2788]|0)){Ge=(n[2785]|0)+Q|0,n[2785]=Ge,n[2788]=M,n[M+4>>2]=Ge|1,n[M+Ge>>2]=Ge;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else Ge=n[l+8>>2]|0,n[Ge+12>>2]=s,n[s+8>>2]=Ge;while(0);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(0);l=l+B|0,d=B+Q|0}else d=Q;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}He=(l+1048320|0)>>>16&8,Ge=l<>>16&4,Ge=Ge<>>16&2,l=14-(at|He|l)+(Ge<>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(0);if(f=11436+(l<<2)|0,n[M+28>>2]=l,s=M+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<>2]=M,n[M+24>>2]=f,n[M+12>>2]=M,n[M+8>>2]=M;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){He=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=193;break}}if((He|0)==193){n[f>>2]=M,n[M+24>>2]=c,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((He|0)==194){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=M,n[He>>2]=M,n[M+8>>2]=Ge,n[M+12>>2]=c,n[M+24>>2]=0;break}}else Ge=(n[2786]|0)+Q|0,n[2786]=Ge,n[2789]=M,n[M+4>>2]=Ge|1;while(0);return Ge=O+8|0,E=Tt,Ge|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=k>>>0&&(Ge=s+(n[l+4>>2]|0)|0,Ge>>>0>k>>>0));)l=n[l+8>>2]|0;d=Ge+-47|0,s=d+8|0,s=d+((s&7|0)==0?0:0-s&7)|0,d=k+16|0,s=s>>>0>>0?k:s,l=s+8|0,c=m+8|0,c=(c&7|0)==0?0:0-c&7,He=m+c|0,c=B+-40-c|0,n[2789]=He,n[2786]=c,n[He+4>>2]=c|1,n[He+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do He=l,l=l+4|0,n[l>>2]=7;while((He+8|0)>>>0>>0);if((s|0)!=(k|0)){if(m=s-k|0,n[c>>2]=n[c>>2]&-2,n[k+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=k,n[l+12>>2]=k,n[k+8>>2]=l,n[k+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(He=(l+1048320|0)>>>16&8,Ge=l<>>16&4,Ge=Ge<>>16&2,c=14-(at|He|c)+(Ge<>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[k+28>>2]=c,n[k+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){He=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=215;break}}if((He|0)==215){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((He|0)==216){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=k,n[He>>2]=k,n[k+8>>2]=Ge,n[k+12>>2]=c,n[k+24>>2]=0;break}}}else{Ge=n[2787]|0,(Ge|0)==0|m>>>0>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do Ge=11172+(l<<1<<2)|0,n[Ge+12>>2]=Ge,n[Ge+8>>2]=Ge,l=l+1|0;while((l|0)!=32);Ge=m+8|0,Ge=(Ge&7|0)==0?0:0-Ge&7,He=m+Ge|0,Ge=B+-40-Ge|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905]}while(0);if(l=n[2786]|0,l>>>0>j>>>0)return at=l-j|0,n[2786]=at,Ge=n[2789]|0,He=Ge+j|0,n[2789]=He,n[He+4>>2]=at|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,E=Tt,Ge|0}return n[(Ym()|0)>>2]=12,Ge=0,E=Tt,Ge|0}function Vv(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0;if(!!s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,k=c+l|0;do if(s&1)Q=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0>>0))return;if((B|0)==(n[2788]|0)){if(s=k+4|0,l=n[s>>2]|0,(l&3|0)!=3){Q=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=l,n[l+8>>2]=s,Q=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else Q=n[B+8>>2]|0,n[Q+12>>2]=s,n[s+8>>2]=Q;while(0);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){Q=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,Q=B,l=m):(Q=B,l=m)}else Q=B,l=m}while(0);if(!(B>>>0>=k>>>0)&&(s=k+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[Q+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(k|0)==(n[2789]|0)){if(k=(n[2786]|0)+l|0,n[2786]=k,n[2789]=Q,n[Q+4>>2]=k|1,(Q|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((k|0)==(s|0)){k=(n[2785]|0)+l|0,n[2785]=k,n[2788]=B,n[Q+4>>2]=k|1,n[B+k>>2]=k;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[k+8>>2]|0,s=n[k+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<>2]=s,n[s+8>>2]=l;break}else{m=n[k+24>>2]|0,s=n[k+12>>2]|0;do if((s|0)==(k|0)){if(c=k+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[k+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(0);if(m|0){if(s=n[k+28>>2]|0,l=11436+(s<<2)|0,(k|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=k+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(0);if(n[Q+4>>2]=d|1,n[B+d>>2]=d,(Q|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=Q,n[s+12>>2]=Q,n[Q+8>>2]=s,n[Q+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,k=s<>>16&4,k=k<>>16&2,s=14-(m|B|s)+(k<>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[Q+28>>2]=s,n[Q+20>>2]=0,n[Q+16>>2]=0,l=n[2784]|0,c=1<>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=Q,n[Q+24>>2]=c,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}else if((s|0)==73){B=c+8|0,k=n[B>>2]|0,n[k+12>>2]=Q,n[B>>2]=Q,n[Q+8>>2]=k,n[Q+12>>2]=c,n[Q+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=Q,n[Q+24>>2]=f,n[Q+12>>2]=Q,n[Q+8>>2]=Q;while(0);if(k=(n[2791]|0)+-1|0,n[2791]=k,!k)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function GUe(){return 11628}function WUe(s){s=s|0;var l=0,c=0;return l=E,E=E+16|0,c=l,n[c>>2]=JUe(n[s+60>>2]|0)|0,s=zv(dc(6,c|0)|0)|0,E=l,s|0}function z5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0;j=E,E=E+48|0,M=j+16|0,m=j,d=j+32|0,Q=s+28|0,f=n[Q>>2]|0,n[d>>2]=f,k=s+20|0,f=(n[k>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=zv(Hi(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,We=n[d+4>>2]|0,se=m>>>0>We>>>0,d=se?d+8|0:d,l=(se<<31>>31)+l|0,We=m-(se?We:0)|0,n[d>>2]=(n[d>>2]|0)+We,se=d+4|0,n[se>>2]=(n[se>>2]|0)-We,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=zv(Hi(146,M|0)|0)|0,(f|0)==(m|0)){O=3;break e}n[s+16>>2]=0,n[Q>>2]=0,n[k>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else O=3;while(0);return(O|0)==3&&(We=n[s+44>>2]|0,n[s+16>>2]=We+(n[s+48>>2]|0),n[Q>>2]=We,n[k>>2]=We),E=j,c|0}function YUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=E,E=E+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(zv(ta(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,E=d,s|0}function zv(s){return s=s|0,s>>>0>4294963200&&(n[(Ym()|0)>>2]=0-s,s=-1),s|0}function Ym(){return(KUe()|0)+64|0}function KUe(){return CR()|0}function CR(){return 2084}function JUe(s){return s=s|0,s|0}function VUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=E,E=E+32|0,f=d,n[s+36>>2]=1,(n[s>>2]&64|0)==0&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,yu(54,f|0)|0)&&(o[s+75>>0]=-1),f=z5(s,l,c)|0,E=d,f|0}function X5(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,c<<24>>24==0||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(c<<24>>24==0||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function zUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(0);return s|0}function Z5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0;Re=E,E=E+224|0,O=Re+120|0,j=Re+80|0,We=Re,Oe=Re+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[O>>2]=n[c>>2],(IR(0,l,O,We,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?se=XUe(s)|0:se=0,c=n[s>>2]|0,M=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=IR(s,l,O,We,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Oe,B=s+28|0,n[B>>2]=Oe,Q=s+20|0,n[Q>>2]=Oe,n[f>>2]=80,k=s+16|0,n[k>>2]=Oe+80,c=IR(s,l,O,We,j)|0,m&&(eD[n[s+36>>2]&7](s,0,0)|0,c=(n[Q>>2]|0)==0?-1:c,n[d>>2]=m,n[f>>2]=0,n[k>>2]=0,n[B>>2]=0,n[Q>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|M,se|0&&ZUe(s),c=(f&32|0)==0?c:-1),E=Re,c|0}function IR(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0;rr=E,E=E+64|0,ir=rr+16|0,Vt=rr,Tt=rr+24|0,Ir=rr+8|0,Qr=rr+20|0,n[ir>>2]=l,at=(s|0)!=0,He=Tt+40|0,Ge=He,Tt=Tt+39|0,Rr=Ir+4|0,B=0,m=0,O=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(Ym()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(0);if(B=o[l>>0]|0,B<<24>>24)Q=l;else{Ze=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=Q,Ze=9;break t}case 0:{B=Q;break t}default:}et=Q+1|0,n[ir>>2]=et,B=o[et>>0]|0,Q=et}t:do if((Ze|0)==9)for(;;){if(Ze=0,(o[Q+1>>0]|0)!=37)break t;if(B=B+1|0,Q=Q+2|0,n[ir>>2]=Q,(o[Q>>0]|0)==37)Ze=9;else break}while(0);if(B=B-l|0,at&&ss(s,l,B),B|0){l=Q;continue}k=Q+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10?(et=(o[Q+2>>0]|0)==36,Re=et?B:-1,O=et?1:O,k=et?Q+3|0:k):Re=-1,n[ir>>2]=k,B=o[k>>0]|0,Q=(B<<24>>24)+-32|0;t:do if(Q>>>0<32)for(M=0,j=B;;){if(B=1<>2]=k,B=o[k>>0]|0,Q=(B<<24>>24)+-32|0,Q>>>0>=32)break;j=B}else M=0;while(0);if(B<<24>>24==42){if(Q=k+1|0,B=(o[Q>>0]|0)+-48|0,B>>>0<10&&(o[k+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[Q>>0]|0)+-48<<3)>>2]|0,O=1,k=k+3|0;else{if(O|0){m=-1;break}at?(O=(n[c>>2]|0)+(4-1)&~(4-1),B=n[O>>2]|0,n[c>>2]=O+4,O=0,k=Q):(B=0,O=0,k=Q)}n[ir>>2]=k,et=(B|0)<0,B=et?0-B|0:B,M=et?M|8192:M}else{if(B=$5(ir)|0,(B|0)<0){m=-1;break}k=n[ir>>2]|0}do if((o[k>>0]|0)==46){if((o[k+1>>0]|0)!=42){n[ir>>2]=k+1,Q=$5(ir)|0,k=n[ir>>2]|0;break}if(j=k+2|0,Q=(o[j>>0]|0)+-48|0,Q>>>0<10&&(o[k+3>>0]|0)==36){n[d+(Q<<2)>>2]=10,Q=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,k=k+4|0,n[ir>>2]=k;break}if(O|0){m=-1;break e}at?(et=(n[c>>2]|0)+(4-1)&~(4-1),Q=n[et>>2]|0,n[c>>2]=et+4):Q=0,n[ir>>2]=j,k=j}else Q=-1;while(0);for(Oe=0;;){if(((o[k>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(et=k+1|0,n[ir>>2]=et,j=o[(o[k>>0]|0)+-65+(5178+(Oe*58|0))>>0]|0,se=j&255,(se+-1|0)>>>0<8)Oe=se,k=et;else break}if(!(j<<24>>24)){m=-1;break}We=(Re|0)>-1;do if(j<<24>>24==19)if(We){m=-1;break e}else Ze=49;else{if(We){n[d+(Re<<2)>>2]=se,We=f+(Re<<3)|0,Re=n[We+4>>2]|0,Ze=Vt,n[Ze>>2]=n[We>>2],n[Ze+4>>2]=Re,Ze=49;break}if(!at){m=0;break e}e7(Vt,se,c)}while(0);if((Ze|0)==49&&(Ze=0,!at)){B=0,l=et;continue}k=o[k>>0]|0,k=(Oe|0)!=0&(k&15|0)==3?k&-33:k,We=M&-65537,Re=(M&8192|0)==0?M:We;t:do switch(k|0){case 110:switch((Oe&255)<<24>>24){case 0:{n[n[Vt>>2]>>2]=m,B=0,l=et;continue e}case 1:{n[n[Vt>>2]>>2]=m,B=0,l=et;continue e}case 2:{B=n[Vt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}case 3:{a[n[Vt>>2]>>1]=m,B=0,l=et;continue e}case 4:{o[n[Vt>>2]>>0]=m,B=0,l=et;continue e}case 6:{n[n[Vt>>2]>>2]=m,B=0,l=et;continue e}case 7:{B=n[Vt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}default:{B=0,l=et;continue e}}case 112:{k=120,Q=Q>>>0>8?Q:8,l=Re|8,Ze=61;break}case 88:case 120:{l=Re,Ze=61;break}case 111:{k=Vt,l=n[k>>2]|0,k=n[k+4>>2]|0,se=e3e(l,k,He)|0,We=Ge-se|0,M=0,j=5642,Q=(Re&8|0)==0|(Q|0)>(We|0)?Q:We+1|0,We=Re,Ze=67;break}case 105:case 100:if(k=Vt,l=n[k>>2]|0,k=n[k+4>>2]|0,(k|0)<0){l=Xv(0,0,l|0,k|0)|0,k=Ee,M=Vt,n[M>>2]=l,n[M+4>>2]=k,M=1,j=5642,Ze=66;break t}else{M=(Re&2049|0)!=0&1,j=(Re&2048|0)==0?(Re&1|0)==0?5642:5644:5643,Ze=66;break t}case 117:{k=Vt,M=0,j=5642,l=n[k>>2]|0,k=n[k+4>>2]|0,Ze=66;break}case 99:{o[Tt>>0]=n[Vt>>2],l=Tt,M=0,j=5642,se=He,k=1,Q=We;break}case 109:{k=t3e(n[(Ym()|0)>>2]|0)|0,Ze=71;break}case 115:{k=n[Vt>>2]|0,k=k|0?k:5652,Ze=71;break}case 67:{n[Ir>>2]=n[Vt>>2],n[Rr>>2]=0,n[Vt>>2]=Ir,se=-1,k=Ir,Ze=75;break}case 83:{l=n[Vt>>2]|0,Q?(se=Q,k=l,Ze=75):(Is(s,32,B,0,Re),l=0,Ze=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=n3e(s,+C[Vt>>3],B,Q,Re,k)|0,l=et;continue e}default:M=0,j=5642,se=He,k=Q,Q=Re}while(0);t:do if((Ze|0)==61)Re=Vt,Oe=n[Re>>2]|0,Re=n[Re+4>>2]|0,se=$Ue(Oe,Re,He,k&32)|0,j=(l&8|0)==0|(Oe|0)==0&(Re|0)==0,M=j?0:2,j=j?5642:5642+(k>>4)|0,We=l,l=Oe,k=Re,Ze=67;else if((Ze|0)==66)se=Km(l,k,He)|0,We=Re,Ze=67;else if((Ze|0)==71)Ze=0,Re=r3e(k,0,Q)|0,Oe=(Re|0)==0,l=k,M=0,j=5642,se=Oe?k+Q|0:Re,k=Oe?Q:Re-k|0,Q=We;else if((Ze|0)==75){for(Ze=0,j=k,l=0,Q=0;M=n[j>>2]|0,!(!M||(Q=t7(Qr,M)|0,(Q|0)<0|Q>>>0>(se-l|0)>>>0));)if(l=Q+l|0,se>>>0>l>>>0)j=j+4|0;else break;if((Q|0)<0){m=-1;break e}if(Is(s,32,B,l,Re),!l)l=0,Ze=84;else for(M=0;;){if(Q=n[k>>2]|0,!Q){Ze=84;break t}if(Q=t7(Qr,Q)|0,M=Q+M|0,(M|0)>(l|0)){Ze=84;break t}if(ss(s,Qr,Q),M>>>0>=l>>>0){Ze=84;break}else k=k+4|0}}while(0);if((Ze|0)==67)Ze=0,k=(l|0)!=0|(k|0)!=0,Re=(Q|0)!=0|k,k=((k^1)&1)+(Ge-se)|0,l=Re?se:He,se=He,k=Re?(Q|0)>(k|0)?Q:k:Q,Q=(Q|0)>-1?We&-65537:We;else if((Ze|0)==84){Ze=0,Is(s,32,B,l,Re^8192),B=(B|0)>(l|0)?B:l,l=et;continue}Oe=se-l|0,We=(k|0)<(Oe|0)?Oe:k,Re=We+M|0,B=(B|0)<(Re|0)?Re:B,Is(s,32,B,Re,Q),ss(s,j,M),Is(s,48,B,Re,Q^65536),Is(s,48,We,Oe,0),ss(s,l,Oe),Is(s,32,B,Re,Q^8192),l=et}e:do if((Ze|0)==87&&!s)if(!O)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(e7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(0);return E=rr,m|0}function XUe(s){return s=s|0,0}function ZUe(s){s=s|0}function ss(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||f3e(l,c,s)|0}function $5(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function e7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+(8-1)&~(8-1),l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+C[d>>3],n[c>>2]=d+8,C[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+C[d>>3],n[c>>2]=d+8,C[s>>3]=m;break e}default:break e}while(0);while(0)}function $Ue(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=Zv(s|0,l|0,4)|0,l=Ee;while(!((s|0)==0&(l|0)==0));return c|0}function e3e(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=Zv(s|0,l|0,3)|0,l=Ee;while(!((s|0)==0&(l|0)==0));return c|0}function Km(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=DR(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=vR(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=Ee;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function t3e(s){return s=s|0,l3e(s,n[(a3e()|0)+188>>2]|0)|0}function r3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(0);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=Ne(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(0);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(0);return(c|0?s:0)|0}function Is(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=E,E=E+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,Vm(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do ss(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}ss(s,m,d)}E=B}function t7(s,l){return s=s|0,l=l|0,s?s=s3e(s,l,0)|0:s=0,s|0}function n3e(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0,Bn=0;Bn=E,E=E+560|0,k=Bn+8|0,et=Bn,rr=Bn+524|0,Qr=rr,M=Bn+512|0,n[et>>2]=0,Ir=M+12|0,r7(l)|0,(Ee|0)<0?(l=-l,ir=1,Rr=5659):(ir=(d&2049|0)!=0&1,Rr=(d&2048|0)==0?(d&1|0)==0?5660:5665:5662),r7(l)|0,Vt=Ee&2146435072;do if(Vt>>>0<2146435072|(Vt|0)==2146435072&0<0){if(We=+i3e(l,et)*2,B=We!=0,B&&(n[et>>2]=(n[et>>2]|0)+-1),at=m|32,(at|0)==97){Oe=m&32,se=(Oe|0)==0?Rr:Rr+9|0,j=ir|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=We;else{l=8;do B=B+-1|0,l=l*16;while((B|0)!=0);if((o[se>>0]|0)==45){l=-(l+(-We-l));break}else{l=We+l-l;break}}while(0);Q=n[et>>2]|0,B=(Q|0)<0?0-Q|0:Q,B=Km(B,((B|0)<0)<<31>>31,Ir)|0,(B|0)==(Ir|0)&&(B=M+11|0,o[B>>0]=48),o[B+-1>>0]=(Q>>31&2)+43,O=B+-2|0,o[O>>0]=m+15,M=(f|0)<1,k=(d&8|0)==0,B=rr;do Vt=~~l,Q=B+1|0,o[B>>0]=u[5694+Vt>>0]|Oe,l=(l-+(Vt|0))*16,(Q-Qr|0)==1&&!(k&(M&l==0))?(o[Q>>0]=46,B=B+2|0):B=Q;while(l!=0);Vt=B-Qr|0,Qr=Ir-O|0,Ir=(f|0)!=0&(Vt+-2|0)<(f|0)?f+2|0:Vt,B=Qr+j+Ir|0,Is(s,32,c,B,d),ss(s,se,j),Is(s,48,c,B,d^65536),ss(s,rr,Vt),Is(s,48,Ir-Vt|0,0,0),ss(s,O,Qr),Is(s,32,c,B,d^8192);break}Q=(f|0)<0?6:f,B?(B=(n[et>>2]|0)+-28|0,n[et>>2]=B,l=We*268435456):(l=We,B=n[et>>2]|0),Vt=(B|0)<0?k:k+288|0,k=Vt;do Ge=~~l>>>0,n[k>>2]=Ge,k=k+4|0,l=(l-+(Ge>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=Vt,j=k;;){if(O=(B|0)<29?B:29,B=j+-4|0,B>>>0>=M>>>0){k=0;do He=l7(n[B>>2]|0,0,O|0)|0,He=BR(He|0,Ee|0,k|0,0)|0,Ge=Ee,Ze=DR(He|0,Ge|0,1e9,0)|0,n[B>>2]=Ze,k=vR(He|0,Ge|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);k&&(M=M+-4|0,n[M>>2]=k)}for(k=j;!(k>>>0<=M>>>0);)if(B=k+-4|0,!(n[B>>2]|0))k=B;else break;if(B=(n[et>>2]|0)-O|0,n[et>>2]=B,(B|0)>0)j=k;else break}else M=Vt;if((B|0)<0){f=((Q+25|0)/9|0)+1|0,Re=(at|0)==102;do{if(Oe=0-B|0,Oe=(Oe|0)<9?Oe:9,M>>>0>>0){O=(1<>>Oe,se=0,B=M;do Ge=n[B>>2]|0,n[B>>2]=(Ge>>>Oe)+se,se=Ne(Ge&O,j)|0,B=B+4|0;while(B>>>0>>0);B=(n[M>>2]|0)==0?M+4|0:M,se?(n[k>>2]=se,M=B,B=k+4|0):(M=B,B=k)}else M=(n[M>>2]|0)==0?M+4|0:M,B=k;k=Re?Vt:M,k=(B-k>>2|0)>(f|0)?k+(f<<2)|0:B,B=(n[et>>2]|0)+Oe|0,n[et>>2]=B}while((B|0)<0);B=M,f=k}else B=M,f=k;if(Ge=Vt,B>>>0>>0){if(k=(Ge-B>>2)*9|0,O=n[B>>2]|0,O>>>0>=10){M=10;do M=M*10|0,k=k+1|0;while(O>>>0>=M>>>0)}}else k=0;if(Re=(at|0)==103,Ze=(Q|0)!=0,M=Q-((at|0)!=102?k:0)+((Ze&Re)<<31>>31)|0,(M|0)<(((f-Ge>>2)*9|0)+-9|0)){if(M=M+9216|0,Oe=Vt+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(j=n[Oe>>2]|0,se=(j>>>0)%(O>>>0)|0,M=(Oe+4|0)==(f|0),M&(se|0)==0)M=Oe;else if(We=(((j>>>0)/(O>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,He=(O|0)/2|0,l=se>>>0>>0?.5:M&(se|0)==(He|0)?1:1.5,ir&&(He=(o[Rr>>0]|0)==45,l=He?-l:l,We=He?-We:We),M=j-se|0,n[Oe>>2]=M,We+l!=We){if(He=M+O|0,n[Oe>>2]=He,He>>>0>999999999)for(k=Oe;M=k+-4|0,n[k>>2]=0,M>>>0>>0&&(B=B+-4|0,n[B>>2]=0),He=(n[M>>2]|0)+1|0,n[M>>2]=He,He>>>0>999999999;)k=M;else M=Oe;if(k=(Ge-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){O=10;do O=O*10|0,k=k+1|0;while(j>>>0>=O>>>0)}}else M=Oe;M=M+4|0,M=f>>>0>M>>>0?M:f,He=B}else M=f,He=B;for(at=M;;){if(at>>>0<=He>>>0){et=0;break}if(B=at+-4|0,!(n[B>>2]|0))at=B;else{et=1;break}}f=0-k|0;do if(Re)if(B=((Ze^1)&1)+Q|0,(B|0)>(k|0)&(k|0)>-5?(O=m+-1|0,Q=B+-1-k|0):(O=m+-2|0,Q=B+-1|0),B=d&8,B)Oe=B;else{if(et&&(Tt=n[at+-4>>2]|0,(Tt|0)!=0))if((Tt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Tt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((at-Ge>>2)*9|0)+-9|0,(O|32|0)==102){Oe=B-M|0,Oe=(Oe|0)>0?Oe:0,Q=(Q|0)<(Oe|0)?Q:Oe,Oe=0;break}else{Oe=B+k-M|0,Oe=(Oe|0)>0?Oe:0,Q=(Q|0)<(Oe|0)?Q:Oe,Oe=0;break}}else O=m,Oe=d&8;while(0);if(Re=Q|Oe,j=(Re|0)!=0&1,se=(O|32|0)==102,se)Ze=0,B=(k|0)>0?k:0;else{if(B=(k|0)<0?f:k,B=Km(B,((B|0)<0)<<31>>31,Ir)|0,M=Ir,(M-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((M-B|0)<2);o[B+-1>>0]=(k>>31&2)+43,B=B+-2|0,o[B>>0]=O,Ze=B,B=M-B|0}if(B=ir+1+Q+j+B|0,Is(s,32,c,B,d),ss(s,Rr,ir),Is(s,48,c,B,d^65536),se){O=He>>>0>Vt>>>0?Vt:He,Oe=rr+9|0,j=Oe,se=rr+8|0,M=O;do{if(k=Km(n[M>>2]|0,0,Oe)|0,(M|0)==(O|0))(k|0)==(Oe|0)&&(o[se>>0]=48,k=se);else if(k>>>0>rr>>>0){Vm(rr|0,48,k-Qr|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}ss(s,k,j-k|0),M=M+4|0}while(M>>>0<=Vt>>>0);if(Re|0&&ss(s,5710,1),M>>>0>>0&(Q|0)>0)for(;;){if(k=Km(n[M>>2]|0,0,Oe)|0,k>>>0>rr>>>0){Vm(rr|0,48,k-Qr|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}if(ss(s,k,(Q|0)<9?Q:9),M=M+4|0,k=Q+-9|0,M>>>0>>0&(Q|0)>9)Q=k;else{Q=k;break}}Is(s,48,Q+9|0,9,0)}else{if(Re=et?at:He+4|0,(Q|0)>-1){et=rr+9|0,Oe=(Oe|0)==0,f=et,j=0-Qr|0,se=rr+8|0,O=He;do{k=Km(n[O>>2]|0,0,et)|0,(k|0)==(et|0)&&(o[se>>0]=48,k=se);do if((O|0)==(He|0)){if(M=k+1|0,ss(s,k,1),Oe&(Q|0)<1){k=M;break}ss(s,5710,1),k=M}else{if(k>>>0<=rr>>>0)break;Vm(rr|0,48,k+j|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}while(0);Qr=f-k|0,ss(s,k,(Q|0)>(Qr|0)?Qr:Q),Q=Q-Qr|0,O=O+4|0}while(O>>>0>>0&(Q|0)>-1)}Is(s,48,Q+18|0,18,0),ss(s,Ze,Ir-Ze|0)}Is(s,32,c,B,d^8192)}else rr=(m&32|0)!=0,B=ir+3|0,Is(s,32,c,B,d&-65537),ss(s,Rr,ir),ss(s,l!=l|!1?rr?5686:5690:rr?5678:5682,3),Is(s,32,c,B,d^8192);while(0);return E=Bn,((B|0)<(c|0)?c:B)|0}function r7(s){s=+s;var l=0;return C[v>>3]=s,l=n[v>>2]|0,Ee=n[v+4>>2]|0,l|0}function i3e(s,l){return s=+s,l=l|0,+ +n7(s,l)}function n7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(C[v>>3]=s,c=n[v>>2]|0,f=n[v+4>>2]|0,d=Zv(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+n7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[v>>2]=c,n[v+4>>2]=f&-2146435073|1071644672,s=+C[v>>3]}return+s}function s3e(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(o3e()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(Ym()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(Ym()|0)>>2]=84,s=-1;break}}else s=1;while(0);return s|0}function o3e(){return CR()|0}function a3e(){return CR()|0}function l3e(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while((o[s>>0]|0)!=0);if(f=f+-1|0,f)s=5;else break}return c3e(c,n[l+20>>2]|0)|0}function c3e(s,l){return s=s|0,l=l|0,u3e(s,l)|0}function u3e(s,l){return s=s|0,l=l|0,l?l=A3e(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function A3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;se=(n[s>>2]|0)+1794895138|0,m=xg(n[s+8>>2]|0,se)|0,f=xg(n[s+12>>2]|0,se)|0,d=xg(n[s+16>>2]|0,se)|0;e:do if(m>>>0>>2>>>0&&(j=l-(m<<2)|0,f>>>0>>0&d>>>0>>0)&&((d|f)&3|0)==0){for(j=f>>>2,O=d>>>2,M=0;;){if(Q=m>>>1,k=M+Q|0,B=k<<1,d=B+j|0,f=xg(n[s+(d<<2)>>2]|0,se)|0,d=xg(n[s+(d+1<<2)>>2]|0,se)|0,!(d>>>0>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=X5(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else M=f?M:k,m=f?Q:m-Q|0}f=B+O|0,d=xg(n[s+(f<<2)>>2]|0,se)|0,f=xg(n[s+(f+1<<2)>>2]|0,se)|0,f>>>0>>0&d>>>0<(l-f|0)>>>0?f=(o[s+(f+d)>>0]|0)==0?s+f|0:0:f=0}else f=0;while(0);return f|0}function xg(s,l){s=s|0,l=l|0;var c=0;return c=A7(s|0)|0,((l|0)==0?s:c)|0}function f3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=c+16|0,d=n[f>>2]|0,d?m=5:p3e(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(Q=c+20|0,B=n[Q>>2]|0,f=B,(d-B|0)>>>0>>0){f=eD[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=eD[n[c+36>>2]&7](c,s,B)|0,f>>>0>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[Q>>2]|0}else m=0,d=s;while(0);Cr(f|0,d|0,l|0)|0,n[Q>>2]=(n[Q>>2]|0)+l,f=m+l|0}while(0);return f|0}function p3e(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function Ln(s,l){s=y(s),l=y(l);var c=0,f=0;c=i7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=i7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s>2]=s,n[v>>2]|0|0}function Pg(s,l){s=y(s),l=y(l);var c=0,f=0;c=s7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=s7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s>2]=s,n[v>>2]|0|0}function wR(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;m=(h[v>>2]=s,n[v>>2]|0),Q=(h[v>>2]=l,n[v>>2]|0),c=m>>>23&255,B=Q>>>23&255,k=m&-2147483648,d=Q<<1;e:do if((d|0)!=0&&!((c|0)==255|((h3e(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)Q=Q&8388607|8388608;else{if(m=Q<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,Q=Q<<1-d}d=f-Q|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-Q|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(0);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[v>>2]=c|k,y(h[v>>2]))}else M=3;while(0);return(M|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function h3e(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function g3e(s,l){return s=s|0,l=l|0,Z5(n[582]|0,s,l)|0}function Jr(s){s=s|0,Rt()}function Jm(s){s=s|0}function d3e(s,l){return s=s|0,l=l|0,0}function m3e(s){return s=s|0,(o7(s+4|0)|0)==-1?(ef[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function o7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function Pp(s){s=s|0,m3e(s)|0&&y3e(s)}function y3e(s){s=s|0;var l=0;l=s+8|0,(n[l>>2]|0)!=0&&(o7(l)|0)!=-1||ef[n[(n[s>>2]|0)+16>>2]&127](s)}function Gt(s){s=s|0;var l=0;for(l=(s|0)==0?1:s;s=Jv(l)|0,!(s|0);){if(s=C3e()|0,!s){s=0;break}I7[s&0]()}return s|0}function a7(s){return s=s|0,Gt(s)|0}function pt(s){s=s|0,Vv(s)}function E3e(s){s=s|0,(o[s+11>>0]|0)<0&&pt(n[s>>2]|0)}function C3e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function I3e(){}function Xv(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,Ee=f,s-c>>>0|0|0}function BR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,Ee=l+f+(c>>>0>>0|0)>>>0,c|0|0}function Vm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function l7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Ee=l<>>32-c,s<>>c,s>>>c|(l&(1<>>c-32|0)}function Cr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return pc(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function c7(s){s=s|0;var l=0;return l=o[N+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[N+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[N+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[N+(s>>>24)>>0]|0)+24|0))}function u7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0;if(O=s,k=l,M=k,B=c,se=f,Q=se,!M)return m=(d|0)!=0,Q?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,se=0,d=0,Ee=se,d|0):(se=0,d=0,Ee=se,d|0):(m&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),se=0,d=(O>>>0)/(B>>>0)>>>0,Ee=se,d|0);m=(Q|0)==0;do if(B){if(!m){if(m=(x(Q|0)|0)-(x(M|0)|0)|0,m>>>0<=31){j=m+1|0,Q=31-m|0,l=m-31>>31,B=j,s=O>>>(j>>>0)&l|M<>>(j>>>0)&l,m=0,Q=O<>2]=s|0,n[d+4>>2]=k|l&0,se=0,d=0,Ee=se,d|0):(se=0,d=0,Ee=se,d|0)}if(m=B-1|0,m&B|0){Q=(x(B|0)|0)+33-(x(M|0)|0)|0,Oe=64-Q|0,j=32-Q|0,k=j>>31,We=Q-32|0,l=We>>31,B=Q,s=j-1>>31&M>>>(We>>>0)|(M<>>(Q>>>0))&l,l=l&M>>>(Q>>>0),m=O<>>(We>>>0))&k|O<>31;break}return d|0&&(n[d>>2]=m&O,n[d+4>>2]=0),(B|0)==1?(We=k|l&0,Oe=s|0|0,Ee=We,Oe|0):(Oe=c7(B|0)|0,We=M>>>(Oe>>>0)|0,Oe=M<<32-Oe|O>>>(Oe>>>0)|0,Ee=We,Oe|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),We=0,Oe=(M>>>0)/(B>>>0)>>>0,Ee=We,Oe|0;if(!O)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(Q>>>0)),We=0,Oe=(M>>>0)/(Q>>>0)>>>0,Ee=We,Oe|0;if(m=Q-1|0,!(m&Q))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&M|l&0),We=0,Oe=M>>>((c7(Q|0)|0)>>>0),Ee=We,Oe|0;if(m=(x(Q|0)|0)-(x(M|0)|0)|0,m>>>0<=30){l=m+1|0,Q=31-m|0,B=l,s=M<>>(l>>>0),l=M>>>(l>>>0),m=0,Q=O<>2]=s|0,n[d+4>>2]=k|l&0,We=0,Oe=0,Ee=We,Oe|0):(We=0,Oe=0,Ee=We,Oe|0)}while(0);if(!B)M=Q,k=0,Q=0;else{j=c|0|0,O=se|f&0,M=BR(j|0,O|0,-1,-1)|0,c=Ee,k=Q,Q=0;do f=k,k=m>>>31|k<<1,m=Q|m<<1,f=s<<1|f>>>31|0,se=s>>>31|l<<1|0,Xv(M|0,c|0,f|0,se|0)|0,Oe=Ee,We=Oe>>31|((Oe|0)<0?-1:0)<<1,Q=We&1,s=Xv(f|0,se|0,We&j|0,(((Oe|0)<0?-1:0)>>31|((Oe|0)<0?-1:0)<<1)&O|0)|0,l=Ee,B=B-1|0;while((B|0)!=0);M=k,k=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),We=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|k,Oe=(m<<1|0>>>31)&-2|Q,Ee=We,Oe|0}function vR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,u7(s,l,c,f,0)|0}function bp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[w>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(ie()|0,SA(12),-1):(n[w>>2]=s,(s|0)>($()|0)&&(X()|0)==0?(n[w>>2]=l,SA(12),-1):l|0)}function SI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else Cr(s,l,c)|0;return s|0}function DR(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=E,E=E+16|0,d=m|0,u7(s,l,c,f,d)|0,E=m,Ee=n[d+4>>2]|0,n[d>>2]|0|0}function A7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function w3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,f7[s&1](l|0,c|0,f|0,d|0,m|0)}function B3e(s,l,c){s=s|0,l=l|0,c=y(c),p7[s&1](l|0,y(c))}function v3e(s,l,c){s=s|0,l=l|0,c=+c,h7[s&31](l|0,+c)}function D3e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(g7[s&0](l|0,y(c),y(f)))}function S3e(s,l){s=s|0,l=l|0,ef[s&127](l|0)}function x3e(s,l,c){s=s|0,l=l|0,c=c|0,tf[s&31](l|0,c|0)}function P3e(s,l){return s=s|0,l=l|0,Qg[s&31](l|0)|0}function b3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,d7[s&1](l|0,+c,+f,d|0)}function Q3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,u_e[s&1](l|0,+c,+f)}function k3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,eD[s&7](l|0,c|0,f|0)|0}function F3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+A_e[s&1](l|0,c|0,f|0)}function R3e(s,l){return s=s|0,l=l|0,+m7[s&15](l|0)}function T3e(s,l,c){return s=s|0,l=l|0,c=+c,f_e[s&1](l|0,+c)|0}function L3e(s,l,c){return s=s|0,l=l|0,c=c|0,xR[s&15](l|0,c|0)|0}function N3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,p_e[s&1](l|0,c|0,+f,+d,m|0)}function O3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,h_e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function M3e(s,l,c){return s=s|0,l=l|0,c=c|0,+y7[s&7](l|0,c|0)}function U3e(s){return s=s|0,tD[s&7]()|0}function _3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,E7[s&1](l|0,c|0,f|0,d|0,m|0)|0}function H3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,g_e[s&1](l|0,c|0,f|0,+d)}function q3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,C7[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function j3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,bI[s&15](l|0,c|0,f|0)}function G3e(s){s=s|0,I7[s&0]()}function W3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,w7[s&15](l|0,c|0,+f)}function Y3e(s,l,c){return s=s|0,l=+l,c=+c,d_e[s&1](+l,+c)|0}function K3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,PR[s&15](l|0,c|0,f|0,d|0)}function J3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(0)}function V3e(s,l){s=s|0,l=y(l),F(1)}function da(s,l){s=s|0,l=+l,F(2)}function z3e(s,l,c){return s=s|0,l=y(l),c=y(c),F(3),$e}function hr(s){s=s|0,F(4)}function xI(s,l){s=s|0,l=l|0,F(5)}function Xa(s){return s=s|0,F(6),0}function X3e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,F(7)}function Z3e(s,l,c){s=s|0,l=+l,c=+c,F(8)}function $3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(9),0}function e_e(s,l,c){return s=s|0,l=l|0,c=c|0,F(10),0}function bg(s){return s=s|0,F(11),0}function t_e(s,l){return s=s|0,l=+l,F(12),0}function PI(s,l){return s=s|0,l=l|0,F(13),0}function r_e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,F(14)}function n_e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,F(15)}function SR(s,l){return s=s|0,l=l|0,F(16),0}function i_e(){return F(17),0}function s_e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(18),0}function o_e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,F(19)}function a_e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,F(20)}function $v(s,l,c){s=s|0,l=l|0,c=c|0,F(21)}function l_e(){F(22)}function zm(s,l,c){s=s|0,l=l|0,c=+c,F(23)}function c_e(s,l){return s=+s,l=+l,F(24),0}function Xm(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,F(25)}var f7=[J3e,sOe],p7=[V3e,uo],h7=[da,mI,yI,pF,hF,Sl,EI,gF,_m,Fu,II,dF,Tv,YA,Lv,Hm,Nv,Ov,qm,da,da,da,da,da,da,da,da,da,da,da,da,da],g7=[z3e],ef=[hr,Jm,UDe,_De,HDe,dbe,mbe,ybe,TLe,LLe,NLe,YNe,KNe,JNe,hUe,gUe,dUe,ds,bv,Um,WA,CI,Lve,Nve,bDe,VDe,aSe,DSe,HSe,ixe,Ixe,Nxe,Xxe,pPe,bPe,WPe,abe,Lbe,Xbe,pQe,bQe,WQe,ake,Ske,Hke,tFe,mFe,Pc,JFe,uRe,bRe,KRe,lTe,bTe,UTe,qTe,sLe,lLe,DLe,MLe,HLe,iNe,wNe,Z9,nMe,TMe,VMe,u4e,F4e,K4e,iUe,aUe,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr],tf=[xI,oF,aF,dI,ku,lF,cF,Ip,uF,AF,fF,Rv,KA,Ve,ft,jt,Er,In,Sr,yF,wve,Wve,Qke,Gke,XRe,oMe,QNe,N5,xI,xI,xI,xI],Qg=[Xa,WUe,sF,D,ce,Se,It,Et,Pt,Lr,fi,Ao,Eve,Cve,Ove,CFe,fTe,aNe,uMe,Ja,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa],d7=[X3e,Mve],u_e=[Z3e,PLe],eD=[$3e,z5,YUe,VUe,lxe,Ube,ZFe,h4e],A_e=[e_e,RPe],m7=[bg,_o,rt,wn,Uve,_ve,Hve,qve,jve,Gve,bg,bg,bg,bg,bg,bg],f_e=[t_e,NTe],xR=[PI,d3e,Ive,RDe,bSe,vxe,Uxe,Abe,tQe,sFe,xv,$Me,PI,PI,PI,PI],p_e=[r_e,ASe],h_e=[n_e,N4e],y7=[SR,ri,Yve,Kve,Jve,VPe,SR,SR],tD=[i_e,Vve,hI,ha,YTe,fLe,WLe,AUe],E7=[s_e,lI],g_e=[o_e,RQe],C7=[a_e,Bve],bI=[$v,T,is,Xr,fo,WSe,ePe,VQe,Ake,Mm,POe,MMe,X4e,$v,$v,$v],I7=[l_e],w7=[zm,Qv,kv,Fv,GA,Mv,mF,S,mQe,hRe,FTe,zm,zm,zm,zm,zm],d_e=[c_e,FLe],PR=[Xm,mPe,PFe,RRe,ITe,ZTe,yLe,ZLe,xNe,dMe,wUe,Xm,Xm,Xm,Xm,Xm];return{_llvm_bswap_i32:A7,dynCall_idd:Y3e,dynCall_i:U3e,_i64Subtract:Xv,___udivdi3:vR,dynCall_vif:B3e,setThrew:Cu,dynCall_viii:j3e,_bitshift64Lshr:Zv,_bitshift64Shl:l7,dynCall_vi:S3e,dynCall_viiddi:N3e,dynCall_diii:F3e,dynCall_iii:L3e,_memset:Vm,_sbrk:bp,_memcpy:Cr,__GLOBAL__sub_I_Yoga_cpp:Om,dynCall_vii:x3e,___uremdi3:DR,dynCall_vid:v3e,stackAlloc:so,_nbind_init:RUe,getTempRet0:Ma,dynCall_di:R3e,dynCall_iid:T3e,setTempRet0:QA,_i64Add:BR,dynCall_fiff:D3e,dynCall_iiii:k3e,_emscripten_get_global_libc:GUe,dynCall_viid:W3e,dynCall_viiid:H3e,dynCall_viififi:q3e,dynCall_ii:P3e,__GLOBAL__sub_I_Binding_cc:VOe,dynCall_viiii:K3e,dynCall_iiiiii:_3e,stackSave:Il,dynCall_viiiii:w3e,__GLOBAL__sub_I_nbind_cc:zve,dynCall_vidd:Q3e,_free:Vv,runPostSets:I3e,dynCall_viiiiii:O3e,establishStackSpace:qi,_memmove:SI,stackRestore:Eu,_malloc:Jv,__GLOBAL__sub_I_common_cc:gNe,dynCall_viddi:b3e,dynCall_dii:M3e,dynCall_v:G3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<4-1;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` diff --git a/protocol/vc/src/rootHash.spec.ts b/protocol/vc/src/rootHash.spec.ts index 779f4df..f61897d 100644 --- a/protocol/vc/src/rootHash.spec.ts +++ b/protocol/vc/src/rootHash.spec.ts @@ -1,9 +1,11 @@ // Copyright 2021-2023 zcloak authors & contributors // SPDX-License-Identifier: Apache-2.0 +import { HexString } from '@polkadot/util/types'; import { initCrypto } from '@zcloak/crypto'; import { calcRoothash } from './rootHash'; +import { encodeAsSol } from './utils'; describe('calcRoothash', (): void => { beforeAll(async (): Promise => { @@ -120,4 +122,20 @@ describe('calcRoothash', (): void => { expect(rootHash).toEqual('0x2cbd72a75cf5797fb6893b222a45de60eaa2ddf2e5d435d67e5ed8067efb76e3'); }); }); + describe('calcContentAsSolidity', () => { + it('calcRoothash', (): void => { + const input = { + name: 'zCloak', + age: 111, + number_array: [11, 12, 13], + isUser: true, + string_array: ["zCloak", "database"] + }; + const values = Object.values(input); + const encodedClaimHashes: HexString[] = values.map((values) => encodeAsSol(values)); + + expect(encodedClaimHashes).toEqual(["0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a", "0x39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711", "0x8d20824cd86ad1c5673537a4b5d1ee68bd9265b7d357e82bc76483ae879322c2", "0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", "0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3", + ]); + }); + }); }); diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index d004364..58a548a 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -16,6 +16,8 @@ import { rlpEncode as rlpEncodeFn } from '@zcloak/crypto'; import { HASHER } from './hasher'; +import Web3 from 'web3'; + export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: HashType): Uint8Array { const result = rlpEncodeFn(input); @@ -26,6 +28,32 @@ export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: } } +export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexString { + const web3 = new Web3() as any; + console.log("this type is: ", typeof input) + switch (typeof input) { + case "string": + return web3.utils.soliditySha3({ type: 'string', value: input }) + + case "number": + if (input % 1 !== 0) { + throw new Error(`Can not encode number with dot`); + } + return web3.utils.soliditySha3({ type: 'int256', value: input }); + case "boolean": + return web3.utils.soliditySha3({ type: 'bool', value: input }); + case "object": + if (Array.isArray(input) && typeof input[0] == 'string') { + const encodedParams = web3.eth.abi.encodeParameters(['string[]'], [input]); + return web3.utils.keccak256(encodedParams); + } else if ((Array.isArray(input) && typeof input[0] == 'number')) { + return web3.utils.soliditySha3({ type: 'int256[]', value: input }); + } else throw new Error(`This object can not be encoded ${input}`); + default: + throw new Error(`This input can not be encoded ${input}`); + } +} + export function signedVCMessage(digest: HexString, version: VerifiableCredentialVersion): Uint8Array { return u8aConcat(stringToU8a('CredentialVersionedDigest'), numberToU8a(Number(version), 16), digest); } From d61c738fccef3e076b589796afd5b6bf724a2a78 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Sat, 26 Aug 2023 13:13:10 +0800 Subject: [PATCH 07/24] Add: add Param: version for function calcRoothash --- packages/verify/src/vcVerify.spec.ts | 1 + packages/verify/src/vcVerify.ts | 2 +- protocol/vc/src/credential/vc.ts | 4 ++-- protocol/vc/src/digest.spec.ts | 2 +- protocol/vc/src/rootHash.spec.ts | 10 +++++----- protocol/vc/src/rootHash.ts | 23 +++++++++++++++++------ protocol/vc/src/utils.ts | 4 ++-- protocol/vc/src/vp.spec.ts | 8 ++++---- protocol/vc/src/vp.ts | 2 +- 9 files changed, 34 insertions(+), 22 deletions(-) diff --git a/packages/verify/src/vcVerify.spec.ts b/packages/verify/src/vcVerify.spec.ts index 9bd3218..46f5b13 100644 --- a/packages/verify/src/vcVerify.spec.ts +++ b/packages/verify/src/vcVerify.spec.ts @@ -258,6 +258,7 @@ describe('vc verify', (): void => { credentialSubject: calcRoothash( fullVC.credentialSubject as AnyJson, fullVC.hasher[0], + fullVC.version, fullVC.credentialSubjectNonceMap || {} ).rootHash, credentialSubjectNonceMap: {}, diff --git a/packages/verify/src/vcVerify.ts b/packages/verify/src/vcVerify.ts index c5f0d3b..e13973e 100644 --- a/packages/verify/src/vcVerify.ts +++ b/packages/verify/src/vcVerify.ts @@ -81,7 +81,7 @@ export async function vcVerify( let rootHash: HexString; if (isPublicVC(vc)) { - rootHash = calcRoothash(vc.credentialSubject, vc.hasher[0]).rootHash; + rootHash = calcRoothash(vc.credentialSubject, vc.hasher[0], vc.version).rootHash; } else { const { credentialSubject, credentialSubjectHashes, credentialSubjectNonceMap, hasher } = vc; diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index 96f1388..8d3e852 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -112,9 +112,9 @@ export class VerifiableCredentialBuilder { let rootHashResult: RootHashResult; if (isPublic) { - rootHashResult = calcRoothash(this.raw.contents, this.raw.hashType); + rootHashResult = calcRoothash(this.raw.contents, this.raw.hashType, this.version); } else { - rootHashResult = calcRoothash(this.raw.contents, this.raw.hashType, {}); + rootHashResult = calcRoothash(this.raw.contents, this.raw.hashType, this.version,{}); } const digestPayload: DigestPayload = { diff --git a/protocol/vc/src/digest.spec.ts b/protocol/vc/src/digest.spec.ts index 4b57f91..c300551 100644 --- a/protocol/vc/src/digest.spec.ts +++ b/protocol/vc/src/digest.spec.ts @@ -46,7 +46,7 @@ describe('digest', (): void => { isUser: true }; - const { rootHash } = calcRoothash(input, 'Blake32to1', { + const { rootHash } = calcRoothash(input, 'Blake32to1', '1', { '0x6b90277e3f4ab97b83b3fc61ecffa4ec063f70d7255233ef5afdf418dcec3b75': '0x25807968a4c5f3ce2f116c5914991c97e33020408146406a36e4fa4826dd6c7d', '0x1300000000000000000000000000000000000000000000000000000000000000': diff --git a/protocol/vc/src/rootHash.spec.ts b/protocol/vc/src/rootHash.spec.ts index f61897d..4118ba7 100644 --- a/protocol/vc/src/rootHash.spec.ts +++ b/protocol/vc/src/rootHash.spec.ts @@ -21,7 +21,7 @@ describe('calcRoothash', (): void => { isUser: true }; - const { rootHash } = calcRoothash(input, 'RescuePrime', { + const { rootHash } = calcRoothash(input, 'RescuePrime', '1', { '0x88af5a7ba28c1de54ebd589dea81d30caa3f467646f6d714c0d2604599d63e1e': '0x357d50aac640931f9976477de30b3b476be4a14ae367b045496670d7a23c457d', '0x9ad57aefa90d9473f855c14221f330fe959a554b3d86c9d701db11c7559ce107': @@ -44,7 +44,7 @@ describe('calcRoothash', (): void => { types: ['1', '2', '5'] }; - const { rootHash } = calcRoothash(input, 'RescuePrime', { + const { rootHash } = calcRoothash(input, 'RescuePrime', '1', { '0x88af5a7ba28c1de54ebd589dea81d30caa3f467646f6d714c0d2604599d63e1e': '0x42ecebd0acae94843f906a9fe69e5c672c60d8d688b71aa85948d8e60becf082', '0x9ad57aefa90d9473f855c14221f330fe959a554b3d86c9d701db11c7559ce107': @@ -69,7 +69,7 @@ describe('calcRoothash', (): void => { types: ['1', '2', '5'] }; - const { rootHash } = calcRoothash(input, 'RescuePrime'); + const { rootHash } = calcRoothash(input, 'RescuePrime', '1'); expect(rootHash).toEqual('0x9579c93741b6979500bca88dcb104da424c2c3bb0e2fa85f13d76cd00637e46f'); }); @@ -84,7 +84,7 @@ describe('calcRoothash', (): void => { isUser: true }; - const { rootHash } = calcRoothash(input, 'Blake32to1', { + const { rootHash } = calcRoothash(input, 'Blake32to1', '1', { '0x6b90277e3f4ab97b83b3fc61ecffa4ec063f70d7255233ef5afdf418dcec3b75': '0x25807968a4c5f3ce2f116c5914991c97e33020408146406a36e4fa4826dd6c7d', '0x1300000000000000000000000000000000000000000000000000000000000000': @@ -108,7 +108,7 @@ describe('calcRoothash', (): void => { isUser: true }; - const { rootHash } = calcRoothash(input, 'RescuePrimeOptimized', { + const { rootHash } = calcRoothash(input, 'RescuePrimeOptimized', '1', { '0x011eed5f2e2321069b83e2bdd38c790948231cd1d49ed6c4dd09bb0f16b0661c': '0xfd766e5717ae2ae09abee1268d6a653dc50c2067d9efd665e7b52d8f0f597d2b', '0x7f8a33bf3f50ca9b84d1dc5561c8f71d48d6256763fd8d0f5e5e902dce5dfb88': diff --git a/protocol/vc/src/rootHash.ts b/protocol/vc/src/rootHash.ts index 12e043c..63a42d0 100644 --- a/protocol/vc/src/rootHash.ts +++ b/protocol/vc/src/rootHash.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import type { HexString } from '@zcloak/crypto/types'; -import type { AnyJson, HashType } from './types'; +import type { AnyJson, HashType, VerifiableCredentialVersion } from './types'; import { assert, bufferToU8a, u8aConcat, u8aToHex, u8aToU8a } from '@polkadot/util'; import { MerkleTree } from 'merkletreejs'; @@ -10,7 +10,7 @@ import { MerkleTree } from 'merkletreejs'; import { randomAsHex } from '@zcloak/crypto'; import { HASHER } from './hasher'; -import { rlpEncode } from './utils'; +import { encodeAsSol, rlpEncode } from './utils'; export type RootHashResult = { rootHash: HexString; @@ -71,7 +71,7 @@ export function rootHashFromMerkle( * @description * calc rootHash with supplied `input` and `hashType`. Returns [[RootHashResult]]. */ -export function calcRoothash(input: AnyJson, hashType: HashType): RootHashResult; +export function calcRoothash(input: AnyJson, hashType: HashType, version: VerifiableCredentialVersion): RootHashResult; /** * @name calcRoothash * @summary calc rootHash from any json. @@ -83,16 +83,27 @@ export function calcRoothash(input: AnyJson, hashType: HashType): RootHashResult export function calcRoothash( input: AnyJson, hashType: HashType, - nonceMap: Record + version: VerifiableCredentialVersion, + nonceMap: Record, ): RootHashResult; export function calcRoothash( input: AnyJson, hashType: HashType, - nonceMap?: Record + version: VerifiableCredentialVersion, + nonceMap?: Record, ): RootHashResult { const values = Object.values(input); - const encoded: HexString[] = values.map((value) => rlpEncode(value, hashType)).map((value) => u8aToHex(value)); + let encoded: HexString[] = []; + + // if the version is `2` and the hash in merkletree is Keccak256, we assume this vc aims to be used on chain. + if (version === '2' && hashType === 'Keccak256') { + encoded = values.map((values) => encodeAsSol(values)); + } else if (version === '0' || version === '1' || version === '2') { + encoded = values.map((value) => rlpEncode(value, hashType)).map((value) => u8aToHex(value)); + } else { + throw new Error('The Version is not supported for calc roothash'); + } if (nonceMap) { for (const encode of encoded) { diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index 58a548a..fc51c21 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -30,7 +30,6 @@ export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexString { const web3 = new Web3() as any; - console.log("this type is: ", typeof input) switch (typeof input) { case "string": return web3.utils.soliditySha3({ type: 'string', value: input }) @@ -50,7 +49,8 @@ export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexStr return web3.utils.soliditySha3({ type: 'int256[]', value: input }); } else throw new Error(`This object can not be encoded ${input}`); default: - throw new Error(`This input can not be encoded ${input}`); + const check: never = input; + return check; } } diff --git a/protocol/vc/src/vp.spec.ts b/protocol/vc/src/vp.spec.ts index fa64703..9f62a57 100644 --- a/protocol/vc/src/vp.spec.ts +++ b/protocol/vc/src/vp.spec.ts @@ -161,7 +161,7 @@ describe('VerifiablePresentation', (): void => { verifiableCredential: [ { ...vc, - credentialSubject: calcRoothash(CONTENTS1, vc.hasher[0], vc.credentialSubjectNonceMap).rootHash, + credentialSubject: calcRoothash(CONTENTS1, vc.hasher[0], vc.version, vc.credentialSubjectNonceMap).rootHash, credentialSubjectHashes: [], credentialSubjectNonceMap: {} } @@ -260,13 +260,13 @@ describe('VerifiablePresentation', (): void => { verifiableCredential: [ { ...vc1, - credentialSubject: calcRoothash(CONTENTS2, vc1.hasher[0], vc1.credentialSubjectNonceMap).rootHash, + credentialSubject: calcRoothash(CONTENTS2, vc1.hasher[0], vc1.version, vc1.credentialSubjectNonceMap).rootHash, credentialSubjectHashes: [], credentialSubjectNonceMap: {} }, { ...vc2, - credentialSubject: calcRoothash(CONTENTS2, vc2.hasher[0], vc2.credentialSubjectNonceMap).rootHash, + credentialSubject: calcRoothash(CONTENTS2, vc2.hasher[0], vc2.version, vc2.credentialSubjectNonceMap).rootHash, credentialSubjectHashes: [], credentialSubjectNonceMap: {} } @@ -362,7 +362,7 @@ describe('VerifiablePresentation', (): void => { verifiableCredential: [ { ...vc1, - credentialSubject: calcRoothash(CONTENTS1, vc1.hasher[0], vc1.credentialSubjectNonceMap).rootHash, + credentialSubject: calcRoothash(CONTENTS1, vc1.hasher[0], vc1.version, vc1.credentialSubjectNonceMap).rootHash, credentialSubjectHashes: [], credentialSubjectNonceMap: {} }, diff --git a/protocol/vc/src/vp.ts b/protocol/vc/src/vp.ts index 4b1cd08..dc68fc8 100644 --- a/protocol/vc/src/vp.ts +++ b/protocol/vc/src/vp.ts @@ -53,7 +53,7 @@ function transformVC( vc.credentialSubjectNonceMap[encode] = nonceMap[encode]; } } else { - const { rootHash } = calcRoothash(vc.credentialSubject, vc.hasher[0], vc.credentialSubjectNonceMap); + const { rootHash } = calcRoothash(vc.credentialSubject, vc.hasher[0], vc.version, vc.credentialSubjectNonceMap); vc.credentialSubject = rootHash; vc.credentialSubjectHashes = []; From dfd33dc4c781c7c06c3eb61df82528663c6dae92 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Sat, 26 Aug 2023 14:39:57 +0800 Subject: [PATCH 08/24] Update function to check VC validity, add check: whether the attester's sequence is the same in proof --- protocol/did/src/utils.ts | 16 +++++++++- protocol/vc/src/credential/index.spec.ts | 20 ++++++------- protocol/vc/src/credential/vc.ts | 2 +- protocol/vc/src/is.ts | 38 ++++++++++++++++++++++-- protocol/vc/src/rootHash.spec.ts | 29 +++++++++++++++++- protocol/vc/src/rootHash.ts | 1 - protocol/vc/src/utils.ts | 3 +- 7 files changed, 90 insertions(+), 19 deletions(-) diff --git a/protocol/did/src/utils.ts b/protocol/did/src/utils.ts index 542a5bc..90bdd56 100644 --- a/protocol/did/src/utils.ts +++ b/protocol/did/src/utils.ts @@ -4,7 +4,7 @@ import type { DidUrl, VerificationMethodType } from '@zcloak/did-resolver/types'; import type { KeypairType } from '@zcloak/keyring/types'; -import { stringToU8a, u8aConcat } from '@polkadot/util'; +import { isArray, stringToU8a, u8aConcat } from '@polkadot/util'; import { parseDid } from '@zcloak/did-resolver/parseDid'; @@ -19,6 +19,20 @@ export function isSameUri(didUrl1: DidUrl, didUrl2: DidUrl): boolean { return did1 === did2; } +export function isAttester(value: unknown, version: string): boolean { + if (typeof value === 'string' && (version === '0' || version === '1')) { + return isDidUrl(value) + } else if (isArray(value) && value.length !== 0 && version === '2'){ + let check = true; + for (const item of value) { + check = isDidUrl(item) && check; + } + return check; + } else { + throw new Error(`The attester is not valid`); + } +} + export function isDidUrl(value: unknown): value is DidUrl { if (typeof value !== 'string') return false; diff --git a/protocol/vc/src/credential/index.spec.ts b/protocol/vc/src/credential/index.spec.ts index 7c433cc..949259e 100644 --- a/protocol/vc/src/credential/index.spec.ts +++ b/protocol/vc/src/credential/index.spec.ts @@ -110,8 +110,8 @@ describe('VerifiableCredential', (): void => { digestHashType: 'Keccak256' }); - const vc = await vcBuilder.build(issuer); - + const vc = await vcBuilder.build(issuer, false); + console.log(vc) expect(isPrivateVC(vc)).toBe(true); expect(vc).toMatchObject({ @@ -120,7 +120,7 @@ describe('VerifiableCredential', (): void => { ctype: ctype.$id, issuanceDate: now, credentialSubject: CONTENTS, - issuer: issuer.id, + issuer: [issuer.id], holder: holder.id, hasher: ['RescuePrime', 'Keccak256'], proof: [ @@ -153,7 +153,7 @@ describe('VerifiableCredential', (): void => { digestHashType: 'Keccak256' }); - const vc = await vcBuilder.build(issuer); + const vc = await vcBuilder.build(issuer, false); expect(isPrivateVC(vc)).toBe(true); @@ -163,7 +163,7 @@ describe('VerifiableCredential', (): void => { ctype: ctype.$id, issuanceDate: now, credentialSubject: CONTENTS, - issuer: issuer.id, + issuer: [issuer.id], holder: holder.id, hasher: ['RescuePrime', 'Keccak256'], proof: [ @@ -196,9 +196,9 @@ describe('VerifiableCredential', (): void => { digestHashType: 'Keccak256' }); - const vc = await vcBuilder.build(issuer); - - expect(isPrivateVC(vc)).toBe(true); + const vc = await vcBuilder.build(issuer, false,["did:zk:0xFeDE01Ff4402e35c6f6d20De9821d64bDF4Ba563"]); + console.log(vc) + expect(isPrivateVC(vc)).toBe(false); expect(vc).toMatchObject({ '@context': DEFAULT_CONTEXT, @@ -206,7 +206,7 @@ describe('VerifiableCredential', (): void => { ctype: ctype.$id, issuanceDate: now, credentialSubject: CONTENTS, - issuer: issuer.id, + issuer: [issuer.id, "did:zk:0xFeDE01Ff4402e35c6f6d20De9821d64bDF4Ba563"], holder: holder.id, hasher: ['RescuePrimeOptimized', 'Keccak256'], proof: [ @@ -256,7 +256,7 @@ describe('VerifiableCredential', (): void => { ctype: ctype.$id, issuanceDate: now, credentialSubject: CONTENTS, - issuer: issuer.id, + issuer: [issuer.id], holder: holder.id, hasher: ['RescuePrime', 'Keccak256'], proof: [ diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index 8d3e852..a2b5a73 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -114,7 +114,7 @@ export class VerifiableCredentialBuilder { if (isPublic) { rootHashResult = calcRoothash(this.raw.contents, this.raw.hashType, this.version); } else { - rootHashResult = calcRoothash(this.raw.contents, this.raw.hashType, this.version,{}); + rootHashResult = calcRoothash(this.raw.contents, this.raw.hashType, this.version, {}); } const digestPayload: DigestPayload = { diff --git a/protocol/vc/src/is.ts b/protocol/vc/src/is.ts index 678a5d2..5a49cf3 100644 --- a/protocol/vc/src/is.ts +++ b/protocol/vc/src/is.ts @@ -14,9 +14,10 @@ import type { import { isArray, isHex, isJsonObject, isNull, isNumber, isString, isUndefined } from '@polkadot/util'; import { isBase32, isBase58, isBase64 } from '@zcloak/crypto'; -import { isDidUrl } from '@zcloak/did/utils'; +import { isAttester, isDidUrl } from '@zcloak/did/utils'; import { ALL_HASH_TYPES, ALL_SIG_TYPES, ALL_VP_TYPES } from './defaults'; +import { parseDid } from '@zcloak/did-resolver/parseDid'; /** * @name isHashType @@ -61,6 +62,37 @@ export function isProof(input: unknown): input is Proof { ); } +/** + * @name isAttesterMapping + * @description + * check the `attester` is the same in [[Proof]] + */ +export function isAttesterMapping(issuer: unknown, proof: unknown): boolean { + if (isProof(proof)) { + const issuerInProof = parseDid(proof.verificationMethod).did; + return issuer === issuerInProof; + } else return false; +} + +/** + * @name isAttesterProof + * @description + * check the Proof is qualified or not + */ +export function isAttesterProof(issuer: unknown, proof: unknown): boolean { + // version 0 & version 1, only one attester and one proof + if (typeof issuer === 'string' && isArray(proof) && proof.length === 1) { + return isAttesterMapping(issuer, proof); + } else if (isArray(issuer) && isArray(proof) && issuer.length === proof.length) { + let check = true; + for (let i = 0; i < issuer.length; i++) { + check = isAttesterMapping(issuer[i], proof[i]) && check; + } + return check; + } else { + return false; + } +} /** * @name isRawCredential * @description @@ -118,10 +150,10 @@ export function isVC(input: unknown): input is VerifiableCredential { isString(input.version) && isNumber(input.issuanceDate) && (isUndefined(input.expirationDate) || isNull(input.expirationDate) || isNumber(input.expirationDate)) && - isDidUrl(input.issuer) && + isAttester(input.issuer, input.version as string) && isHex(input.digest) && isArray(input.proof) && - !input.proof.map((p) => isProof(p)).includes(false) && + isAttesterProof(input.issuer, input.proof) && isHex(input.ctype) && (isJsonObject(input.credentialSubject) || isHex(input.credentialSubject)) && isDidUrl(input.holder) && diff --git a/protocol/vc/src/rootHash.spec.ts b/protocol/vc/src/rootHash.spec.ts index 4118ba7..25ce193 100644 --- a/protocol/vc/src/rootHash.spec.ts +++ b/protocol/vc/src/rootHash.spec.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { HexString } from '@polkadot/util/types'; -import { initCrypto } from '@zcloak/crypto'; +import { initCrypto, keccak256AsHex } from '@zcloak/crypto'; import { calcRoothash } from './rootHash'; import { encodeAsSol } from './utils'; @@ -122,6 +122,7 @@ describe('calcRoothash', (): void => { expect(rootHash).toEqual('0x2cbd72a75cf5797fb6893b222a45de60eaa2ddf2e5d435d67e5ed8067efb76e3'); }); }); + describe('calcContentAsSolidity', () => { it('calcRoothash', (): void => { const input = { @@ -138,4 +139,30 @@ describe('calcRoothash', (): void => { ]); }); }); + + describe('calc Roothash with version 2', () => { + it('calcRoothash', (): void => { + const input = { + name: 'zCloak', + age: 111, + number_array: [11, 12, 13], + isUser: true, + string_array: ["zCloak", "database"] + }; + const values = Object.values(input); + const encodedClaimHashes: HexString[] = values.map((values) => encodeAsSol(values)); + + expect(encodedClaimHashes).toEqual(["0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a", "0x39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711", "0x8d20824cd86ad1c5673537a4b5d1ee68bd9265b7d357e82bc76483ae879322c2", "0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", "0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3", + ]); + + const { rootHash } = calcRoothash(input, 'Keccak256', '2', {'0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a': '0xcd769c703ecfdc6798d56711af8b3a7918973524db6c6c0901209fd396f3a61b', + '0x39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711': '0xc5bd9417c2dd820e8c074086acb0e1a785c5f9aa59022ca74606f4f6f32338bb', + '0x8d20824cd86ad1c5673537a4b5d1ee68bd9265b7d357e82bc76483ae879322c2': '0x9895d1010a3c7ae796bfdb2bff52febcfb21d8c71a0fb465a02d8a2a0ad857bd', + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': '0xddb361f768d83f2f8eabd4f51517adb8d92aef33ce627127311bad01bac41710', + '0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3': '0x51c09e0512047698103565fc9c2aca963eb3af6cf99b9201fc6be1331e4649e5' + }); + console.log(rootHash) + expect(rootHash).toEqual('0x8e94d639398a25f0484ba8f40feff5e694b084164118af84ffece25c68be4342'); + }); + }); }); diff --git a/protocol/vc/src/rootHash.ts b/protocol/vc/src/rootHash.ts index 63a42d0..1ea25e2 100644 --- a/protocol/vc/src/rootHash.ts +++ b/protocol/vc/src/rootHash.ts @@ -53,7 +53,6 @@ export function rootHashFromMerkle( } const leave = HASHER[hashType](nonceMap ? u8aConcat(encode, nonceMap[encode]) : encode); - leaves.push(leave); } diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index fc51c21..b40f507 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -49,8 +49,7 @@ export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexStr return web3.utils.soliditySha3({ type: 'int256[]', value: input }); } else throw new Error(`This object can not be encoded ${input}`); default: - const check: never = input; - return check; + throw new Error(`Can not encode this type: ${input}`) } } From 048d951f78816daedb92cb564863a64e2f19f740 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Sat, 26 Aug 2023 14:44:13 +0800 Subject: [PATCH 09/24] Replace isAttester function, remove unnecessary format --- protocol/did/src/utils.ts | 16 +--------------- protocol/vc/src/credential/index.spec.ts | 2 -- protocol/vc/src/is.ts | 19 +++++++++++++++++-- protocol/vc/src/rootHash.spec.ts | 1 - 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/protocol/did/src/utils.ts b/protocol/did/src/utils.ts index 90bdd56..542a5bc 100644 --- a/protocol/did/src/utils.ts +++ b/protocol/did/src/utils.ts @@ -4,7 +4,7 @@ import type { DidUrl, VerificationMethodType } from '@zcloak/did-resolver/types'; import type { KeypairType } from '@zcloak/keyring/types'; -import { isArray, stringToU8a, u8aConcat } from '@polkadot/util'; +import { stringToU8a, u8aConcat } from '@polkadot/util'; import { parseDid } from '@zcloak/did-resolver/parseDid'; @@ -19,20 +19,6 @@ export function isSameUri(didUrl1: DidUrl, didUrl2: DidUrl): boolean { return did1 === did2; } -export function isAttester(value: unknown, version: string): boolean { - if (typeof value === 'string' && (version === '0' || version === '1')) { - return isDidUrl(value) - } else if (isArray(value) && value.length !== 0 && version === '2'){ - let check = true; - for (const item of value) { - check = isDidUrl(item) && check; - } - return check; - } else { - throw new Error(`The attester is not valid`); - } -} - export function isDidUrl(value: unknown): value is DidUrl { if (typeof value !== 'string') return false; diff --git a/protocol/vc/src/credential/index.spec.ts b/protocol/vc/src/credential/index.spec.ts index 949259e..6dd0ff9 100644 --- a/protocol/vc/src/credential/index.spec.ts +++ b/protocol/vc/src/credential/index.spec.ts @@ -111,7 +111,6 @@ describe('VerifiableCredential', (): void => { }); const vc = await vcBuilder.build(issuer, false); - console.log(vc) expect(isPrivateVC(vc)).toBe(true); expect(vc).toMatchObject({ @@ -197,7 +196,6 @@ describe('VerifiableCredential', (): void => { }); const vc = await vcBuilder.build(issuer, false,["did:zk:0xFeDE01Ff4402e35c6f6d20De9821d64bDF4Ba563"]); - console.log(vc) expect(isPrivateVC(vc)).toBe(false); expect(vc).toMatchObject({ diff --git a/protocol/vc/src/is.ts b/protocol/vc/src/is.ts index 5a49cf3..28a0ce8 100644 --- a/protocol/vc/src/is.ts +++ b/protocol/vc/src/is.ts @@ -14,7 +14,7 @@ import type { import { isArray, isHex, isJsonObject, isNull, isNumber, isString, isUndefined } from '@polkadot/util'; import { isBase32, isBase58, isBase64 } from '@zcloak/crypto'; -import { isAttester, isDidUrl } from '@zcloak/did/utils'; +import { isDidUrl } from '@zcloak/did/utils'; import { ALL_HASH_TYPES, ALL_SIG_TYPES, ALL_VP_TYPES } from './defaults'; import { parseDid } from '@zcloak/did-resolver/parseDid'; @@ -93,6 +93,21 @@ export function isAttesterProof(issuer: unknown, proof: unknown): boolean { return false; } } + +export function isAttester(value: unknown, version: unknown): boolean { + if (typeof value === 'string' && (version === '0' || version === '1')) { + return isDidUrl(value) + } else if (isArray(value) && value.length !== 0 && version === '2'){ + let check = true; + for (const item of value) { + check = isDidUrl(item) && check; + } + return check; + } else { + return false; + } +} + /** * @name isRawCredential * @description @@ -150,7 +165,7 @@ export function isVC(input: unknown): input is VerifiableCredential { isString(input.version) && isNumber(input.issuanceDate) && (isUndefined(input.expirationDate) || isNull(input.expirationDate) || isNumber(input.expirationDate)) && - isAttester(input.issuer, input.version as string) && + isAttester(input.issuer, input.version) && isHex(input.digest) && isArray(input.proof) && isAttesterProof(input.issuer, input.proof) && diff --git a/protocol/vc/src/rootHash.spec.ts b/protocol/vc/src/rootHash.spec.ts index 25ce193..34ababf 100644 --- a/protocol/vc/src/rootHash.spec.ts +++ b/protocol/vc/src/rootHash.spec.ts @@ -161,7 +161,6 @@ describe('calcRoothash', (): void => { '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': '0xddb361f768d83f2f8eabd4f51517adb8d92aef33ce627127311bad01bac41710', '0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3': '0x51c09e0512047698103565fc9c2aca963eb3af6cf99b9201fc6be1331e4649e5' }); - console.log(rootHash) expect(rootHash).toEqual('0x8e94d639398a25f0484ba8f40feff5e694b084164118af84ffece25c68be4342'); }); }); From b9980deba532a61a1e40d09af341c2207e15b0c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BC=9A?= <> Date: Mon, 28 Aug 2023 15:37:47 +0800 Subject: [PATCH 10/24] feat: add proof function (static) --- protocol/vc/src/credential/vc.ts | 52 +++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index a2b5a73..d763235 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -4,12 +4,14 @@ import type { HexString } from '@polkadot/util/types'; import type { CType } from '@zcloak/ctype/types'; import type { Did } from '@zcloak/did'; -import type { DidUrl } from '@zcloak/did-resolver/types'; +import type { DidResolver } from '@zcloak/did-resolver'; +import type { DidDocument, DidUrl } from '@zcloak/did-resolver/types'; import type { HashType, Proof, RawCredential, VerifiableCredential, VerifiableCredentialVersion } from '../types'; import { assert } from '@polkadot/util'; import { base58Encode } from '@zcloak/crypto'; +import { vcVerify } from '@zcloak/verify/vcVerify'; import { DEFAULT_CONTEXT, DEFAULT_VC_VERSION } from '../defaults'; import { calcDigest, DigestPayload } from '../digest'; @@ -81,12 +83,12 @@ export class VerifiableCredentialBuilder { /** * Build to [[PublicVerifiableCredential]] */ - public async build(issuer: Did, isPublic: true, moreIssuers?: DidUrl[]): Promise>; + public async build(issuer: Did, isPublic: true): Promise>; /** * Build to [[PrivateVerifiableCredential]] */ - public async build(issuer: Did, isPublic: false, moreIssuers?: DidUrl[]): Promise>; + public async build(issuer: Did, isPublic: false): Promise>; /** * @@ -95,11 +97,7 @@ export class VerifiableCredentialBuilder { * @param moreIssuers this is only DidUrl type, because we just add them to the issuer field( not proof field) * @returns */ - public async build( - issuer: Did, - isPublic = false, - moreIssuers: DidUrl[] = [] - ): Promise> { + public async build(issuer: Did, isPublic = false): Promise> { assert(this.raw.checkSubject(), `Subject check failed when use ctype ${this.raw.ctype}`); if ( @@ -127,7 +125,7 @@ export class VerifiableCredentialBuilder { const { digest, type: digestHashType } = calcDigest(this.version, digestPayload, this.digestHashType); - const proof = await this._signDigest(issuer, digest, this.version); + const proof = await VerifiableCredentialBuilder._signDigest(issuer, digest, this.version); // NOTE: at this moment, the first proof is fullfiled, this maybe not enough because of multiple issuers // Use addIssuerProof() to add more proofs @@ -137,7 +135,7 @@ export class VerifiableCredentialBuilder { ctype: this.raw.ctype.$id, issuanceDate: this.issuanceDate, credentialSubject: this.raw.contents, - issuer: [issuer.id, ...moreIssuers], + issuer: [issuer.id], holder: this.raw.owner, hasher: [rootHashResult.type, digestHashType], digest, @@ -162,6 +160,38 @@ export class VerifiableCredentialBuilder { throw new Error('Can not to build an VerifiableCredential'); } + /** + * since @2.0.0 + * @param issuer + * @param vc + * @returns + */ + public static async addProof( + issuer: Did, + vc: VerifiableCredential, + resolverOrDidDocument?: DidResolver | DidDocument + ): Promise> { + const existedIssuer = vc.issuer; + const existedProof = vc.proof; + const exitedDigest = vc.digest; + + // Must have proof + assert(existedIssuer.length > 0 && existedProof.length > 0, 'field issuer or proof is empty'); + + // TODO: verify proof that already exists, then add new issuer + + // addProof available since vc@2.0.0 + const version = '2'; + const proof = await VerifiableCredentialBuilder._signDigest(issuer, exitedDigest, version); + const modifiedVC: VerifiableCredential = { + ...vc, + issuer: [...existedIssuer, issuer.id], + proof: [...existedProof, proof] + }; + + return modifiedVC; + } + /** * set arrtibute `@context` */ @@ -218,7 +248,7 @@ export class VerifiableCredentialBuilder { } // sign digest by did, the signed message is `concat('CredentialVersionedDigest', version, digest)` - private async _signDigest(did: Did, digest: HexString, version: VerifiableCredentialVersion): Promise { + private static async _signDigest(did: Did, digest: HexString, version: VerifiableCredentialVersion): Promise { let message: Uint8Array | HexString; if (version === '1') { From eb9d8f0007e84cdaf1e29e5df9cd03545bad12a3 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Tue, 29 Aug 2023 12:32:26 +0800 Subject: [PATCH 11/24] Update: update calcRoothash --- protocol/vc/src/credential/index.spec.ts | 4 ++-- protocol/vc/src/credential/vc.ts | 7 +++++-- protocol/vc/src/is.ts | 10 ++-------- protocol/vc/src/rootHash.ts | 13 +++++++++---- protocol/vc/src/utils.ts | 19 ++++++++++++++++--- 5 files changed, 34 insertions(+), 19 deletions(-) diff --git a/protocol/vc/src/credential/index.spec.ts b/protocol/vc/src/credential/index.spec.ts index 6dd0ff9..e581d8a 100644 --- a/protocol/vc/src/credential/index.spec.ts +++ b/protocol/vc/src/credential/index.spec.ts @@ -195,7 +195,7 @@ describe('VerifiableCredential', (): void => { digestHashType: 'Keccak256' }); - const vc = await vcBuilder.build(issuer, false,["did:zk:0xFeDE01Ff4402e35c6f6d20De9821d64bDF4Ba563"]); + const vc = await vcBuilder.build(issuer, true); expect(isPrivateVC(vc)).toBe(false); expect(vc).toMatchObject({ @@ -204,7 +204,7 @@ describe('VerifiableCredential', (): void => { ctype: ctype.$id, issuanceDate: now, credentialSubject: CONTENTS, - issuer: [issuer.id, "did:zk:0xFeDE01Ff4402e35c6f6d20De9821d64bDF4Ba563"], + issuer: [issuer.id], holder: holder.id, hasher: ['RescuePrimeOptimized', 'Keccak256'], proof: [ diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index d763235..cdd4487 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -11,7 +11,7 @@ import type { HashType, Proof, RawCredential, VerifiableCredential, VerifiableCr import { assert } from '@polkadot/util'; import { base58Encode } from '@zcloak/crypto'; -import { vcVerify } from '@zcloak/verify/vcVerify'; +// import { vcVerify } from '@zcloak/verify/vcVerify'; import { DEFAULT_CONTEXT, DEFAULT_VC_VERSION } from '../defaults'; import { calcDigest, DigestPayload } from '../digest'; @@ -253,8 +253,11 @@ export class VerifiableCredentialBuilder { if (version === '1') { message = signedVCMessage(digest, version); - } else { + } else if (version =='0'|| version =='2'){ message = digest; + } else { + const check: never = version; + return check; } const signDidUrl: DidUrl = did.getKeyUrl('assertionMethod'); diff --git a/protocol/vc/src/is.ts b/protocol/vc/src/is.ts index 28a0ce8..92819e7 100644 --- a/protocol/vc/src/is.ts +++ b/protocol/vc/src/is.ts @@ -84,10 +84,7 @@ export function isAttesterProof(issuer: unknown, proof: unknown): boolean { if (typeof issuer === 'string' && isArray(proof) && proof.length === 1) { return isAttesterMapping(issuer, proof); } else if (isArray(issuer) && isArray(proof) && issuer.length === proof.length) { - let check = true; - for (let i = 0; i < issuer.length; i++) { - check = isAttesterMapping(issuer[i], proof[i]) && check; - } + const check = issuer.every((issuer, index) => isAttesterMapping(issuer, proof[index])); return check; } else { return false; @@ -98,10 +95,7 @@ export function isAttester(value: unknown, version: unknown): boolean { if (typeof value === 'string' && (version === '0' || version === '1')) { return isDidUrl(value) } else if (isArray(value) && value.length !== 0 && version === '2'){ - let check = true; - for (const item of value) { - check = isDidUrl(item) && check; - } + const check = value.every(isDidUrl); return check; } else { return false; diff --git a/protocol/vc/src/rootHash.ts b/protocol/vc/src/rootHash.ts index 1ea25e2..024a32a 100644 --- a/protocol/vc/src/rootHash.ts +++ b/protocol/vc/src/rootHash.ts @@ -96,12 +96,17 @@ export function calcRoothash( let encoded: HexString[] = []; // if the version is `2` and the hash in merkletree is Keccak256, we assume this vc aims to be used on chain. - if (version === '2' && hashType === 'Keccak256') { - encoded = values.map((values) => encodeAsSol(values)); - } else if (version === '0' || version === '1' || version === '2') { + if (version === '2') { + if (hashType == 'Keccak256'){ + encoded = values.map((values) => encodeAsSol(values)); + } else { + encoded = values.map((value) => rlpEncode(value, hashType)).map((value) => u8aToHex(value)); + } + } else if (version === '0' || version === '1') { encoded = values.map((value) => rlpEncode(value, hashType)).map((value) => u8aToHex(value)); } else { - throw new Error('The Version is not supported for calc roothash'); + const check: never = version; + return check; } if (nonceMap) { diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index b40f507..c6b2a94 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -17,6 +17,7 @@ import { rlpEncode as rlpEncodeFn } from '@zcloak/crypto'; import { HASHER } from './hasher'; import Web3 from 'web3'; +const web3 = new Web3() as any; export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: HashType): Uint8Array { const result = rlpEncodeFn(input); @@ -29,13 +30,12 @@ export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: } export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexString { - const web3 = new Web3() as any; switch (typeof input) { case "string": return web3.utils.soliditySha3({ type: 'string', value: input }) case "number": - if (input % 1 !== 0) { + if (_isDecimalNumber(input)) { throw new Error(`Can not encode number with dot`); } return web3.utils.soliditySha3({ type: 'int256', value: input }); @@ -48,8 +48,11 @@ export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexStr } else if ((Array.isArray(input) && typeof input[0] == 'number')) { return web3.utils.soliditySha3({ type: 'int256[]', value: input }); } else throw new Error(`This object can not be encoded ${input}`); + case "undefined": + throw new Error(`Can not encode this undefined type: ${input}`); default: - throw new Error(`Can not encode this type: ${input}`) + const check: never = input; + return check; } } @@ -69,3 +72,13 @@ export function signedVPMessage( challenge || new Uint8Array() ); } + +// helper function, check whether the number is an integer or not +function _isDecimalNumber(num: number): boolean { + const numStr = num.toString(); + if (numStr.includes(".")) { + return true; + } else { + return false; + } +} From b9211f3e58de1764bb7dea2d47cde9d511aa813a Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Tue, 29 Aug 2023 14:00:49 +0800 Subject: [PATCH 12/24] Update&fix: update VerifiableCredential interface, support the verification of version 0 and 1; fix the proof index bug in isVC function --- packages/message/src/decrypt/index.ts | 30 ++++++++++++++++++++------- packages/verify/src/vcVerify.ts | 12 +++++++++-- protocol/vc/src/credential/vc.ts | 4 ++-- protocol/vc/src/is.ts | 4 ++-- protocol/vc/src/types.ts | 4 ++-- 5 files changed, 38 insertions(+), 16 deletions(-) diff --git a/packages/message/src/decrypt/index.ts b/packages/message/src/decrypt/index.ts index ce4e19e..a7f7b25 100644 --- a/packages/message/src/decrypt/index.ts +++ b/packages/message/src/decrypt/index.ts @@ -35,10 +35,17 @@ export function verifyMessageData(message: DecryptedMessage): void case 'Response_Approve_Attestation': assert(isVC(data), `Expected message data with msgType:${msgType} is VerifiableCredential object`); - assert( - data.issuer.some((issuer) => isSameUri(sender, issuer)), - 'Message sender is not the issuer of VerifiableCredential' - ); + if (typeof data.issuer === 'object') { + assert( + data.issuer.some((issuer) => isSameUri(sender, issuer)), + 'Message sender is not the issuer of VerifiableCredential' + ); + } else if (typeof data.issuer === 'string') { + assert(isSameUri(sender, data.issuer), 'Message sender is not the issuer VerifiableCredential'); + } else { + const check: never = data.issuer; + return check; + } break; @@ -76,10 +83,17 @@ export function verifyMessageData(message: DecryptedMessage): void case 'Send_issuedVC': assert(isVC(data), `Expected message data with msgType:${msgType} is VerifiableCredential object`); - assert( - data.issuer.some((issuer) => isSameUri(sender, issuer)), - 'Message sender is not the issuer of VerifiableCredential' - ); + if (typeof data.issuer === 'object') { + assert( + data.issuer.some((issuer) => isSameUri(sender, issuer)), + 'Message sender is not the issuer of VerifiableCredential' + ); + } else if (typeof data.issuer === 'string') { + assert(isSameUri(sender, data.issuer), 'Message sender is not the issuer VerifiableCredential'); + } else { + const check: never = data.issuer; + return check; + } break; diff --git a/packages/verify/src/vcVerify.ts b/packages/verify/src/vcVerify.ts index e13973e..92fee4e 100644 --- a/packages/verify/src/vcVerify.ts +++ b/packages/verify/src/vcVerify.ts @@ -43,7 +43,16 @@ async function verifyShared( hasher[1] ); - const message = version === '1' ? signedVCMessage(digest, version) : digest; + let message: Uint8Array | HexString; + + if (version === '1') { + message = signedVCMessage(digest, version); + } else if (version === '0' || version === '2') { + message = digest; + } else { + const check: never = version; + return check; + } const proofValid = await proofVerify(message, proof[0], resolverOrDidDocument); @@ -96,7 +105,6 @@ export async function vcVerify( if (!credentialSubjectHashes.includes(hash)) return false; } } - return verifyShared(vc, rootHash, resolverOrDidDocument); } diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index cdd4487..6178c41 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -185,7 +185,7 @@ export class VerifiableCredentialBuilder { const proof = await VerifiableCredentialBuilder._signDigest(issuer, exitedDigest, version); const modifiedVC: VerifiableCredential = { ...vc, - issuer: [...existedIssuer, issuer.id], + issuer: [...existedIssuer, issuer.id] as any, proof: [...existedProof, proof] }; @@ -253,7 +253,7 @@ export class VerifiableCredentialBuilder { if (version === '1') { message = signedVCMessage(digest, version); - } else if (version =='0'|| version =='2'){ + } else if (version === '0' || version === '2') { message = digest; } else { const check: never = version; diff --git a/protocol/vc/src/is.ts b/protocol/vc/src/is.ts index 92819e7..bc81fb8 100644 --- a/protocol/vc/src/is.ts +++ b/protocol/vc/src/is.ts @@ -82,7 +82,7 @@ export function isAttesterMapping(issuer: unknown, proof: unknown): boolean { export function isAttesterProof(issuer: unknown, proof: unknown): boolean { // version 0 & version 1, only one attester and one proof if (typeof issuer === 'string' && isArray(proof) && proof.length === 1) { - return isAttesterMapping(issuer, proof); + return isAttesterMapping(issuer, proof[0]); } else if (isArray(issuer) && isArray(proof) && issuer.length === proof.length) { const check = issuer.every((issuer, index) => isAttesterMapping(issuer, proof[index])); return check; @@ -94,7 +94,7 @@ export function isAttesterProof(issuer: unknown, proof: unknown): boolean { export function isAttester(value: unknown, version: unknown): boolean { if (typeof value === 'string' && (version === '0' || version === '1')) { return isDidUrl(value) - } else if (isArray(value) && value.length !== 0 && version === '2'){ + } else if (isArray(value) && value.length !== 0 && version === '2') { const check = value.every(isDidUrl); return check; } else { diff --git a/protocol/vc/src/types.ts b/protocol/vc/src/types.ts index e29b442..4b9c3e7 100644 --- a/protocol/vc/src/types.ts +++ b/protocol/vc/src/types.ts @@ -52,7 +52,7 @@ interface PublicVerifiableCredential extends RawCredential { version: VerifiableCredentialVersion; issuanceDate: number; expirationDate?: number; - issuer: DidUrl[]; + issuer: DidUrl[] | DidUrl; digest: HexString; proof: Proof[]; } @@ -62,7 +62,7 @@ interface PrivateVerifiableCredential extends Omit Date: Tue, 29 Aug 2023 17:00:06 +0800 Subject: [PATCH 13/24] Update&Test: Update the VC&VP Verification method; add test for Version2 VC --- packages/verify/src/vcVerify.spec.ts | 100 +++++++++++++++++++++++ packages/verify/src/vcVerify.ts | 21 ++++- protocol/vc/src/credential/index.spec.ts | 6 +- protocol/vc/src/vp.ts | 22 ++++- 4 files changed, 138 insertions(+), 11 deletions(-) diff --git a/packages/verify/src/vcVerify.spec.ts b/packages/verify/src/vcVerify.spec.ts index 46f5b13..9f6eacc 100644 --- a/packages/verify/src/vcVerify.spec.ts +++ b/packages/verify/src/vcVerify.spec.ts @@ -60,6 +60,32 @@ const document2: DidDocument = { capabilityDelegation: ['did:zk:0x565ee4a279Ad611010DF17082220987CcaD381fb#key-0'], service: [] }; +const document3: DidDocument = { + '@context': [ 'https://www.w3.org/ns/did/v1' ], + version: '0', + id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', + controller: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec' ], + verificationMethod: [ + { + id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', + controller: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], + type: 'EcdsaSecp256k1VerificationKey2019', + publicKeyMultibase: 'zupS5XUoHqKsBUHMAYqFNtUdzwNw7X3ML77Sh4CGUHNpx' + }, + { + id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-1', + controller: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], + type: 'X25519KeyAgreementKey2019', + publicKeyMultibase: 'zCGHvcFKtP4pDzoTXWG7wLvT6fNRKMUUbmW8QuX8EQCVh' + } + ], + authentication: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0' ], + assertionMethod: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0' ], + keyAgreement: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-1' ], + capabilityInvocation: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0' ], + capabilityDelegation: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0' ], + service: [] +}; const fullVC: VerifiableCredential = { '@context': ['https://www.w3.org/2018/credentials/v1'], @@ -103,6 +129,72 @@ const fullVC: VerifiableCredential = { ] }; +const fullVC2: VerifiableCredential = { + '@context': [ 'https://www.w3.org/2018/credentials/v1' ], + version: '2', + ctype: '0xc08734bbd035fe0880ba6e469e40b160601a2389d0284f6255a5f0b395d2336c', + issuanceDate: 1693299183644, + credentialSubject: { name: 'zCloak', age: 19, birthday: '2022.10.31', isUser: true }, + issuer: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec' ], + holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', + hasher: [ 'RescuePrime', 'Keccak256' ], + digest: '0x115ab0958eca52ee2ef511a67079b419b8d57224f6457ded3ad117a2354e207a', + proof: [ + { + type: 'EcdsaSecp256k1SignatureEip191', + created: 1693299183648, + verificationMethod: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', + proofPurpose: 'assertionMethod', + proofValue: 'zJDsreYR36X2T1WggKwhRebve3PrzLpbSFmTCYz5mCV1DXbcQeDKqeE7eVxDKErAMe7GCuvpqxbpR6gdAb3F2d4hsu' + } + ], + credentialSubjectHashes: [ + '0xe2cc46a455caf6b78393d6b3a2fdf455f5542266f29fb3042a1e840cc2b86427', + '0xa0ea71dfa268c4277e455acd6a8a0b086c907f3caad43678e62ce9c0cf7bc0e8', + '0xb129e4db1e188ba554c295e5aa93ab0d0ade297e5cb4b710cee3ce1af4dc1c4a', + '0x6fe5621dc7ebaf818c6dae3afdada35a74676be85cbde5b4f9b074c76490a92d' + ], + credentialSubjectNonceMap: { + '0x88af5a7ba28c1de54ebd589dea81d30caa3f467646f6d714c0d2604599d63e1e': '0x385e28cb8bcf5fdbd9011da8338d8a8852dabe5e441ab90676db5c4bf6957642', + '0x9ad57aefa90d9473f855c14221f330fe959a554b3d86c9d701db11c7559ce107': '0x8f2924d768a2769bd65db828baa15a806627d808d379a16cd209de97736a6e10', + '0x2d2367a578506f669cfd4a744c08fd45315ad4ea3d248733957947cf00723662': '0x85320040fcd44f06281535081364b4c5674ca946ae23e6a155ea0231e0cd1c39', + '0x6bc2ebdc9345c21f804ef735209993cb8e5b3755af0650c41aa164a9faf674bd': '0x7450de9f08aca5030b3ddfd91de2416592951d4f2d3b76c7277b6d0c5debb236' + } +}; + +const fullVC3: VerifiableCredential = { + '@context': [ 'https://www.w3.org/2018/credentials/v1' ], + version: '2', + ctype: '0xc08734bbd035fe0880ba6e469e40b160601a2389d0284f6255a5f0b395d2336c', + issuanceDate: 1693299329782, + credentialSubject: { name: 'zCloak', age: 19, birthday: '2022.10.31', isUser: true }, + issuer: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec' ], + holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', + hasher: [ 'Keccak256', 'Keccak256' ], + digest: '0x63c8827f7d7e7446772799ccfbc0ae0a57199b679a4ea3682951ccc5c418060d', + proof: [ + { + type: 'EcdsaSecp256k1SignatureEip191', + created: 1693299329786, + verificationMethod: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', + proofPurpose: 'assertionMethod', + proofValue: 'zJaNmsWPNQoJ1Gt58AotgQRoBvSoEibuAL6GBKvZ8fV5gbNCrXxBZkMyZFK6fUwUoFkZi2WZNNdMicwGzTPbzdH1Ep' + } + ], + credentialSubjectHashes: [ + '0x1537556bb6125c231e6e76ec1457b80bf43647fdd0de3f57c2bc3189da55617b', + '0x418070cd733fcab053b572eb37f4aea5686ec3485296eb2e517b622c9b59a112', + '0xd4be7b980fc8f5d53f99b5cfcfce5633827baff0be83f16f5290190864708f4b', + '0x4ddccf029950fee195bcd67df5a46986fea14ff00d47b5d3b9d1929c623c1f32' + ], + credentialSubjectNonceMap: { + '0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a': '0xc9444e4d54f98aaa9076736432913113f0d6491321cc575ec751208d7f17fb7f', + '0x66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090': '0x596e356de2ec14369f127afcba1c84441c658687ea9cff7a084af5f1490b8a50', + '0x7320ea69771c4eb8c89284d19ce63eb7a788f605b1f3509c17c6f47cc06cc404': '0x8c3e7322bb5fa1421684356dfaa32625e849334fcc34122551b5f8440573c9a2', + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': '0xdc2737abd5c3a6bd9f10ec1211f6d6f973ff671d38f25c1003cd17efe5b44d70' + } +}; + const vcWithExpiration: VerifiableCredential = { '@context': ['https://www.w3.org/2018/credentials/v1'], version: '0', @@ -156,6 +248,14 @@ describe('vc verify', (): void => { expect(await vcVerify(fullVC, document1)).toBe(true); }); + it('vc verify with version 2, without keccak256', async (): Promise => { + expect(await vcVerify(fullVC2, document3)).toBe(true); + }); + + it('vc verify with version 2, with keccak256', async (): Promise => { + expect(await vcVerify(fullVC3, document3)).toBe(true); + }); + it('vc verify with expiration', async (): Promise => { // it is expirate expect(await vcVerify(vcWithExpiration, document2)).toBe(false); diff --git a/packages/verify/src/vcVerify.ts b/packages/verify/src/vcVerify.ts index 92fee4e..4eea998 100644 --- a/packages/verify/src/vcVerify.ts +++ b/packages/verify/src/vcVerify.ts @@ -11,7 +11,7 @@ import { assert, bufferToU8a, isHex, u8aConcat, u8aToHex } from '@polkadot/util' import { calcRoothash, makeMerkleTree } from '@zcloak/vc'; import { HASHER } from '@zcloak/vc/hasher'; import { isPublicVC, isVC } from '@zcloak/vc/is'; -import { rlpEncode, signedVCMessage } from '@zcloak/vc/utils'; +import { encodeAsSol, rlpEncode, signedVCMessage } from '@zcloak/vc/utils'; import { digestVerify } from './digestVerify'; import { proofVerify } from './proofVerify'; @@ -94,13 +94,28 @@ export async function vcVerify( } else { const { credentialSubject, credentialSubjectHashes, credentialSubjectNonceMap, hasher } = vc; + const tree = makeMerkleTree(credentialSubjectHashes, hasher[0]); rootHash = u8aToHex(bufferToU8a(tree.getRoot())); for (const value of Object.values(credentialSubject)) { - const encode = u8aToHex(rlpEncode(value, hasher[0])); - const hash = u8aToHex(HASHER[hasher[0]](u8aConcat(encode, credentialSubjectNonceMap[encode]))); + let encoded: HexString; + + if (vc.version === '2') { + if (hasher[0] == 'Keccak256') { + encoded = encodeAsSol(value); + } else { + encoded = u8aToHex(rlpEncode(value, hasher[0])); + } + } else if (vc.version === '0' || vc.version === '1') { + encoded = u8aToHex(rlpEncode(value, hasher[0])); + } else { + const check: never = vc.version; + return check; + } + + const hash = u8aToHex(HASHER[hasher[0]](u8aConcat(encoded, credentialSubjectNonceMap[encoded]))); if (!credentialSubjectHashes.includes(hash)) return false; } diff --git a/protocol/vc/src/credential/index.spec.ts b/protocol/vc/src/credential/index.spec.ts index e581d8a..eb8ad24 100644 --- a/protocol/vc/src/credential/index.spec.ts +++ b/protocol/vc/src/credential/index.spec.ts @@ -30,7 +30,6 @@ describe('VerifiableCredential', (): void => { await initCrypto(); holder = alice; issuer = bob; - ctype = await getPublish( { title: 'Test', @@ -136,7 +135,7 @@ describe('VerifiableCredential', (): void => { contents: CONTENTS, owner: holder.id, ctype, - hashType: 'RescuePrime' + hashType: 'Keccak256' }); const now = Date.now(); @@ -155,7 +154,6 @@ describe('VerifiableCredential', (): void => { const vc = await vcBuilder.build(issuer, false); expect(isPrivateVC(vc)).toBe(true); - expect(vc).toMatchObject({ '@context': DEFAULT_CONTEXT, version: DEFAULT_VC_VERSION, @@ -164,7 +162,7 @@ describe('VerifiableCredential', (): void => { credentialSubject: CONTENTS, issuer: [issuer.id], holder: holder.id, - hasher: ['RescuePrime', 'Keccak256'], + hasher: ['Keccak256', 'Keccak256'], proof: [ { type: 'EcdsaSecp256k1SignatureEip191', diff --git a/protocol/vc/src/vp.ts b/protocol/vc/src/vp.ts index dc68fc8..0b50a19 100644 --- a/protocol/vc/src/vp.ts +++ b/protocol/vc/src/vp.ts @@ -21,7 +21,7 @@ import { DEFAULT_CONTEXT, DEFAULT_VP_HASH_TYPE, DEFAULT_VP_VERSION } from './def import { HASHER } from './hasher'; import { isPublicVC, isVC } from './is'; import { calcRoothash } from './rootHash'; -import { rlpEncode, signedVPMessage } from './utils'; +import { rlpEncode, encodeAsSol, signedVPMessage } from './utils'; // @internal // transform private Verifiable Credential by [[VerifiablePresentationType]] @@ -48,16 +48,30 @@ function transformVC( for (const key of selectedAttributes) { vc.credentialSubject[key] = subject[key]; - const encode = u8aToHex(rlpEncode(subject[key], vc.hasher[0])); - + let encode: HexString; + if (vc.version === '2') { + if (vc.hasher[0] == 'Keccak256') { + encode = encodeAsSol(subject[key]); + } else { + encode = u8aToHex(rlpEncode(subject[key], vc.hasher[0])); + } + } else if (vc.version === '0' || vc.version === '1') { + encode = u8aToHex(rlpEncode(subject[key], vc.hasher[0])); + } else { + const check: never = vc.version; + return check; + } vc.credentialSubjectNonceMap[encode] = nonceMap[encode]; } - } else { + } else if (type === 'VP_Digest') { const { rootHash } = calcRoothash(vc.credentialSubject, vc.hasher[0], vc.version, vc.credentialSubjectNonceMap); vc.credentialSubject = rootHash; vc.credentialSubjectHashes = []; vc.credentialSubjectNonceMap = {}; + } else { + const check: never = type; + return check; } return vc; From 5ac3d90af24fc489ac9b49425af85dcc3fa8cab2 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Tue, 29 Aug 2023 17:20:23 +0800 Subject: [PATCH 14/24] Test: Add test for vp verification (version 2) --- packages/verify/src/vpVerify.spec.ts | 102 +++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/packages/verify/src/vpVerify.spec.ts b/packages/verify/src/vpVerify.spec.ts index a133c8f..34cef0e 100644 --- a/packages/verify/src/vpVerify.spec.ts +++ b/packages/verify/src/vpVerify.spec.ts @@ -11,6 +11,7 @@ import { Did } from '@zcloak/did'; import { Raw, VerifiableCredentialBuilder, VerifiablePresentationBuilder } from '@zcloak/vc'; import { vpVerify } from './vpVerify'; +import { VerifiablePresentation } from '@zcloak/vc/types'; const CONTENTS1 = { name: 'zCloak', @@ -19,11 +20,60 @@ const CONTENTS1 = { isUser: true }; +const vp1: VerifiablePresentation = { + '@context': ['https://www.w3.org/2018/credentials/v1'], + version: '1', + type: ['VP_SelectiveDisclosure'], + verifiableCredential: [ + { + '@context': ['https://www.w3.org/2018/credentials/v1'], + version: '2', + ctype: '0xab82151238ca0dbe9e343caf2b1042650d9a977b29ad7180c3a14e5df537ef40', + issuanceDate: 1693300491044, + credentialSubject: { isUser: true }, + issuer: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], + holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', + hasher: ['Keccak256', 'Keccak256'], + digest: '0xcaf72e5ad65c8fe8d489346b3aed6152e8f02b8487fe16dd7037ec66943f4db4', + proof: [ + { + type: 'EcdsaSecp256k1SignatureEip191', + created: 1693300491046, + verificationMethod: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', + proofPurpose: 'assertionMethod', + proofValue: 'z7BbcEoiUpyQKmJ1soNNX6MicHzPpJUcGXLQ65QWYZFY9eArHUPmh4Kgf1D9EsLJbjGYDQpGxGcuA98etPsyXh82C8' + } + ], + credentialSubjectHashes: [ + '0x1e00eee4ae14ff270e57b4c20c43a287bf5ea34828069650d3c4edc4790d2535', + '0x68500dbd64b29d43a580cf437c0eeb899e2d76ebb06e9fc4565f83d76708509e', + '0xaa4831bd6cd6adaab67ab872dd606c41bad95814e201d168e92c45c2b41a8724', + '0x6d7154b2efb83c39a5cf81ade1ec18509435c573211301ef3cd45957619d4121' + ], + credentialSubjectNonceMap: { + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': '0x7e40f40af672df4c16ee00317cac4a1b6ab62b68efeecd18940e041472765fc7' + } + } + ], + id: '0xbf881c79f3385dca051fbfb367a2fccd86ca28b9dba87b35d47c0d8cece24167', + proof: { + type: 'EcdsaSecp256k1SignatureEip191', + created: 1693300491047, + verificationMethod: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', + proofPurpose: 'controller', + proofValue: 'zLFLYALJPDUK9LE69LKBnc4FV2ov7cTj7PX6ykYNsdLBDcoux1FW3Q3eeXRoou8EWhnf8xHG1V3waTTC61ezb25Jz3', + challenge: '0x6ef8cf2355352b0fafd4b1a4b719520a7f2cdd5e10fe27ddd0353955d154f3f5' + }, + hasher: ['Keccak256'] +}; + describe('VerifiablePresentation', (): void => { const holder: Did = alice; const issuer1: Did = bob; let ctype: CType; let rawCtype: Raw; + let rawCtype2: Raw; + beforeAll(async (): Promise => { await initCrypto(); @@ -56,6 +106,13 @@ describe('VerifiablePresentation', (): void => { ctype, hashType: 'RescuePrime' }); + + rawCtype2 = new Raw({ + contents: CONTENTS1, + owner: holder.id, + ctype, + hashType: 'Keccak256' + }); }); describe('VerifiablePresentation single vc', (): void => { @@ -98,4 +155,49 @@ describe('VerifiablePresentation', (): void => { expect(await vpVerify(vp, testResolver)).toBe(true); }); }); + + + describe('VerifiablePresentation single vc with Version2 keccak256', (): void => { + it('verify vp with VPType: VP', async (): Promise => { + const vc = await VerifiableCredentialBuilder.fromRawCredential(rawCtype2.toRawCredential(), ctype) + .setExpirationDate(null) + .build(issuer1); + + const vpBuilder = new VerifiablePresentationBuilder(holder); + + const challenge = randomAsHex(); + const vp = await vpBuilder.addVC(vc, 'VP').build(undefined, challenge); + + expect(await vpVerify(vp, testResolver)).toBe(true); + }); + + it('create ctype vp with VPType: VP_Digest', async (): Promise => { + const vc = await VerifiableCredentialBuilder.fromRawCredential(rawCtype2.toRawCredential(), ctype) + .setExpirationDate(null) + .build(issuer1); + + const vpBuilder = new VerifiablePresentationBuilder(holder); + + const challenge = randomAsHex(); + const vp = await vpBuilder.addVC(vc, 'VP_Digest').build(undefined, challenge); + + expect(await vpVerify(vp, testResolver)).toBe(true); + }); + + it('verify vp with VPType: VP_SelectiveDisclosure', async (): Promise => { + const vc = await VerifiableCredentialBuilder.fromRawCredential(rawCtype2.toRawCredential(), ctype) + .setExpirationDate(null) + .build(issuer1); + + const vpBuilder = new VerifiablePresentationBuilder(holder); + + const challenge = randomAsHex(); + const vp = await vpBuilder.addVC(vc, 'VP_SelectiveDisclosure', ['isUser']).build(undefined, challenge); + expect(await vpVerify(vp, testResolver)).toBe(true); + }); + + it('verify vp with VPType: VP_SelectiveDisclosure with exist VP', async (): Promise => { + expect(await vpVerify(vp1, testResolver)).toBe(true); + }); + }); }); From d1a53daa3369f126ac753e16b2b9a1eb613c1948 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Wed, 30 Aug 2023 11:11:08 +0800 Subject: [PATCH 15/24] Add: Add new error for type check --- packages/message/src/decrypt/index.ts | 2 +- packages/verify/src/vcVerify.ts | 7 +++---- protocol/vc/src/credential/vc.ts | 11 +++++++---- protocol/vc/src/digest.ts | 3 +-- protocol/vc/src/rootHash.spec.ts | 2 +- protocol/vc/src/rootHash.ts | 2 +- protocol/vc/src/utils.ts | 4 ++-- protocol/vc/src/vp.ts | 4 ++-- 8 files changed, 18 insertions(+), 17 deletions(-) diff --git a/packages/message/src/decrypt/index.ts b/packages/message/src/decrypt/index.ts index a7f7b25..a127e75 100644 --- a/packages/message/src/decrypt/index.ts +++ b/packages/message/src/decrypt/index.ts @@ -92,7 +92,7 @@ export function verifyMessageData(message: DecryptedMessage): void assert(isSameUri(sender, data.issuer), 'Message sender is not the issuer VerifiableCredential'); } else { const check: never = data.issuer; - return check; + throw new Error(`Message sender type wrong, the wrong issuer is : ${check}`); } break; diff --git a/packages/verify/src/vcVerify.ts b/packages/verify/src/vcVerify.ts index 4eea998..0ff8d4d 100644 --- a/packages/verify/src/vcVerify.ts +++ b/packages/verify/src/vcVerify.ts @@ -22,7 +22,7 @@ async function verifyShared( rootHash: HexString, resolverOrDidDocument?: DidResolver | DidDocument ): Promise { - assert(isVC(vc), 'input `vc` is not a VerifiableCredential'); + assert(isVC(vc), `input 'vc' is not a VerifiableCredential`); const { ctype, digest, expirationDate, hasher, holder, issuanceDate, proof, version } = vc; @@ -51,7 +51,7 @@ async function verifyShared( message = digest; } else { const check: never = version; - return check; + throw new Error(`The VC Version is invalid : ${check}`); } const proofValid = await proofVerify(message, proof[0], resolverOrDidDocument); @@ -94,7 +94,6 @@ export async function vcVerify( } else { const { credentialSubject, credentialSubjectHashes, credentialSubjectNonceMap, hasher } = vc; - const tree = makeMerkleTree(credentialSubjectHashes, hasher[0]); rootHash = u8aToHex(bufferToU8a(tree.getRoot())); @@ -112,7 +111,7 @@ export async function vcVerify( encoded = u8aToHex(rlpEncode(value, hasher[0])); } else { const check: never = vc.version; - return check; + throw new Error(`VC Version invalid, the wrong VC Version is ${check}`); } const hash = u8aToHex(HASHER[hasher[0]](u8aConcat(encoded, credentialSubjectNonceMap[encoded]))); diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index 6178c41..3775e31 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -5,7 +5,7 @@ import type { HexString } from '@polkadot/util/types'; import type { CType } from '@zcloak/ctype/types'; import type { Did } from '@zcloak/did'; import type { DidResolver } from '@zcloak/did-resolver'; -import type { DidDocument, DidUrl } from '@zcloak/did-resolver/types'; +import type { DidUrl } from '@zcloak/did-resolver/types'; import type { HashType, Proof, RawCredential, VerifiableCredential, VerifiableCredentialVersion } from '../types'; import { assert } from '@polkadot/util'; @@ -169,16 +169,19 @@ export class VerifiableCredentialBuilder { public static async addProof( issuer: Did, vc: VerifiableCredential, - resolverOrDidDocument?: DidResolver | DidDocument + resolverOrDidDocument?: DidResolver ): Promise> { const existedIssuer = vc.issuer; const existedProof = vc.proof; const exitedDigest = vc.digest; + assert(vc.version === '2', 'Only version2 support addProof'); + // Must have proof assert(existedIssuer.length > 0 && existedProof.length > 0, 'field issuer or proof is empty'); - // TODO: verify proof that already exists, then add new issuer + // const vcVerifyResult = await vcVerify(vc, resolverOrDidDocument); + // assert(vcVerifyResult, 'The VC is invalid') // addProof available since vc@2.0.0 const version = '2'; @@ -257,7 +260,7 @@ export class VerifiableCredentialBuilder { message = digest; } else { const check: never = version; - return check; + throw new Error(`VC Version invalid, the wrong VC Version is ${check}`); } const signDidUrl: DidUrl = did.getKeyUrl('assertionMethod'); diff --git a/protocol/vc/src/digest.ts b/protocol/vc/src/digest.ts index f3e630d..a8bb54b 100644 --- a/protocol/vc/src/digest.ts +++ b/protocol/vc/src/digest.ts @@ -102,8 +102,7 @@ export function calcDigest( ); } else { const check: never = version; - - return check; + throw new Error(`VC Version invalid, the vcVersionCheckResult is ${check}`); } return { diff --git a/protocol/vc/src/rootHash.spec.ts b/protocol/vc/src/rootHash.spec.ts index 34ababf..a680ced 100644 --- a/protocol/vc/src/rootHash.spec.ts +++ b/protocol/vc/src/rootHash.spec.ts @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { HexString } from '@polkadot/util/types'; -import { initCrypto, keccak256AsHex } from '@zcloak/crypto'; +import { initCrypto } from '@zcloak/crypto'; import { calcRoothash } from './rootHash'; import { encodeAsSol } from './utils'; diff --git a/protocol/vc/src/rootHash.ts b/protocol/vc/src/rootHash.ts index 024a32a..d17df99 100644 --- a/protocol/vc/src/rootHash.ts +++ b/protocol/vc/src/rootHash.ts @@ -106,7 +106,7 @@ export function calcRoothash( encoded = values.map((value) => rlpEncode(value, hashType)).map((value) => u8aToHex(value)); } else { const check: never = version; - return check; + throw new Error(`VC Version invalid, the wrong VC Version is ${check}`); } if (nonceMap) { diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index c6b2a94..f3422e2 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -52,8 +52,8 @@ export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexStr throw new Error(`Can not encode this undefined type: ${input}`); default: const check: never = input; - return check; - } + throw new Error(`The input type to be encodeAsSol is wrong, the type is ${check}`); + } } export function signedVCMessage(digest: HexString, version: VerifiableCredentialVersion): Uint8Array { diff --git a/protocol/vc/src/vp.ts b/protocol/vc/src/vp.ts index 0b50a19..262e895 100644 --- a/protocol/vc/src/vp.ts +++ b/protocol/vc/src/vp.ts @@ -59,7 +59,7 @@ function transformVC( encode = u8aToHex(rlpEncode(subject[key], vc.hasher[0])); } else { const check: never = vc.version; - return check; + throw new Error(`VC Version invalid, the wrong VC Version is ${check}`); } vc.credentialSubjectNonceMap[encode] = nonceMap[encode]; } @@ -71,7 +71,7 @@ function transformVC( vc.credentialSubjectNonceMap = {}; } else { const check: never = type; - return check; + throw new Error(`VP Type invalid, the invalid VP type is: ${check}`); } return vc; From e454508ac70146da533a7fa4b3e622bd2003365f Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Wed, 30 Aug 2023 16:27:42 +0800 Subject: [PATCH 16/24] Feat: add new function --- packages/verify/src/index.ts | 1 + packages/verify/src/vcVerifyIssue.spec.ts | 136 ++++++++++++++++++++++ packages/verify/src/vcVerifyIssue.ts | 45 +++++++ protocol/vc/src/credential/vc.ts | 38 +----- protocol/vc/src/utils.ts | 1 - 5 files changed, 183 insertions(+), 38 deletions(-) create mode 100644 packages/verify/src/vcVerifyIssue.spec.ts create mode 100644 packages/verify/src/vcVerifyIssue.ts diff --git a/packages/verify/src/index.ts b/packages/verify/src/index.ts index 833a525..547ff2c 100644 --- a/packages/verify/src/index.ts +++ b/packages/verify/src/index.ts @@ -7,3 +7,4 @@ export * from './digestVerify'; export * from './verifyDidDocumentProof'; export * from './vcVerify'; export * from './vpVerify'; +export * from './vcVerifyIssue' \ No newline at end of file diff --git a/packages/verify/src/vcVerifyIssue.spec.ts b/packages/verify/src/vcVerifyIssue.spec.ts new file mode 100644 index 0000000..8f4119f --- /dev/null +++ b/packages/verify/src/vcVerifyIssue.spec.ts @@ -0,0 +1,136 @@ +// Copyright 2021-2023 zcloak authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DidDocument } from '@zcloak/did-resolver/types'; +import type { VerifiableCredential } from '@zcloak/vc/types'; +import { alice } from 'test-support'; + +import { initCrypto } from '@zcloak/crypto'; + +import { addProof } from './vcVerifyIssue'; +import { vcVerify } from './vcVerify'; + +const document3: DidDocument = { + '@context': ['https://www.w3.org/ns/did/v1'], + version: '0', + id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', + controller: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], + verificationMethod: [ + { + id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', + controller: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], + type: 'EcdsaSecp256k1VerificationKey2019', + publicKeyMultibase: 'zupS5XUoHqKsBUHMAYqFNtUdzwNw7X3ML77Sh4CGUHNpx' + }, + { + id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-1', + controller: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], + type: 'X25519KeyAgreementKey2019', + publicKeyMultibase: 'zCGHvcFKtP4pDzoTXWG7wLvT6fNRKMUUbmW8QuX8EQCVh' + } + ], + authentication: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], + assertionMethod: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], + keyAgreement: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-1'], + capabilityInvocation: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], + capabilityDelegation: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], + service: [] +}; + +const fullVC2: VerifiableCredential = { + '@context': ['https://www.w3.org/2018/credentials/v1'], + version: '2', + ctype: '0xc08734bbd035fe0880ba6e469e40b160601a2389d0284f6255a5f0b395d2336c', + issuanceDate: 1693299183644, + credentialSubject: { name: 'zCloak', age: 19, birthday: '2022.10.31', isUser: true }, + issuer: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], + holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', + hasher: ['RescuePrime', 'Keccak256'], + digest: '0x115ab0958eca52ee2ef511a67079b419b8d57224f6457ded3ad117a2354e207a', + proof: [ + { + type: 'EcdsaSecp256k1SignatureEip191', + created: 1693299183648, + verificationMethod: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', + proofPurpose: 'assertionMethod', + proofValue: 'zJDsreYR36X2T1WggKwhRebve3PrzLpbSFmTCYz5mCV1DXbcQeDKqeE7eVxDKErAMe7GCuvpqxbpR6gdAb3F2d4hsu' + } + ], + credentialSubjectHashes: [ + '0xe2cc46a455caf6b78393d6b3a2fdf455f5542266f29fb3042a1e840cc2b86427', + '0xa0ea71dfa268c4277e455acd6a8a0b086c907f3caad43678e62ce9c0cf7bc0e8', + '0xb129e4db1e188ba554c295e5aa93ab0d0ade297e5cb4b710cee3ce1af4dc1c4a', + '0x6fe5621dc7ebaf818c6dae3afdada35a74676be85cbde5b4f9b074c76490a92d' + ], + credentialSubjectNonceMap: { + '0x88af5a7ba28c1de54ebd589dea81d30caa3f467646f6d714c0d2604599d63e1e': '0x385e28cb8bcf5fdbd9011da8338d8a8852dabe5e441ab90676db5c4bf6957642', + '0x9ad57aefa90d9473f855c14221f330fe959a554b3d86c9d701db11c7559ce107': '0x8f2924d768a2769bd65db828baa15a806627d808d379a16cd209de97736a6e10', + '0x2d2367a578506f669cfd4a744c08fd45315ad4ea3d248733957947cf00723662': '0x85320040fcd44f06281535081364b4c5674ca946ae23e6a155ea0231e0cd1c39', + '0x6bc2ebdc9345c21f804ef735209993cb8e5b3755af0650c41aa164a9faf674bd': '0x7450de9f08aca5030b3ddfd91de2416592951d4f2d3b76c7277b6d0c5debb236' + } +}; + +const fullVC3: VerifiableCredential = { + '@context': ['https://www.w3.org/2018/credentials/v1'], + version: '2', + ctype: '0xc08734bbd035fe0880ba6e469e40b160601a2389d0284f6255a5f0b395d2336c', + issuanceDate: 1693299329782, + credentialSubject: { name: 'zCloak', age: 19, birthday: '2022.10.31', isUser: true }, + issuer: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], + holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', + hasher: ['Keccak256', 'Keccak256'], + digest: '0x63c8827f7d7e7446772799ccfbc0ae0a57199b679a4ea3682951ccc5c418060d', + proof: [ + { + type: 'EcdsaSecp256k1SignatureEip191', + created: 1693299329786, + verificationMethod: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', + proofPurpose: 'assertionMethod', + proofValue: 'zJaNmsWPNQoJ1Gt58AotgQRoBvSoEibuAL6GBKvZ8fV5gbNCrXxBZkMyZFK6fUwUoFkZi2WZNNdMicwGzTPbzdH1Ep' + } + ], + credentialSubjectHashes: [ + '0x1537556bb6125c231e6e76ec1457b80bf43647fdd0de3f57c2bc3189da55617b', + '0x418070cd733fcab053b572eb37f4aea5686ec3485296eb2e517b622c9b59a112', + '0xd4be7b980fc8f5d53f99b5cfcfce5633827baff0be83f16f5290190864708f4b', + '0x4ddccf029950fee195bcd67df5a46986fea14ff00d47b5d3b9d1929c623c1f32' + ], + credentialSubjectNonceMap: { + '0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a': '0xc9444e4d54f98aaa9076736432913113f0d6491321cc575ec751208d7f17fb7f', + '0x66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090': '0x596e356de2ec14369f127afcba1c84441c658687ea9cff7a084af5f1490b8a50', + '0x7320ea69771c4eb8c89284d19ce63eb7a788f605b1f3509c17c6f47cc06cc404': '0x8c3e7322bb5fa1421684356dfaa32625e849334fcc34122551b5f8440573c9a2', + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': '0xdc2737abd5c3a6bd9f10ec1211f6d6f973ff671d38f25c1003cd17efe5b44d70' + } +}; + + +describe('vc verify', (): void => { + beforeAll(async (): Promise => { + await initCrypto(); + }); + + describe('verify vc with full text presentation', (): void => { + it('vc verify with version 2, without keccak256', async (): Promise => { + expect(await vcVerify(fullVC2, document3)).toBe(true); + }); + + it('vc verify with version 2, with keccak256', async (): Promise => { + expect(await vcVerify(fullVC3, document3)).toBe(true); + }); + + it('vc verify with version 2, without keccak256, add Proof', async (): Promise => { + const addProofVC = await addProof(alice, fullVC2); + expect(addProofVC.issuer).toEqual(['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1']); + expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); + expect(await vcVerify(addProofVC)).toBe(true); + + }); + + it('vc verify with version 2, with keccak256, add Proof', async (): Promise => { + const addProofVC = await addProof(alice, fullVC3); + expect(addProofVC.issuer).toEqual(['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1']); + expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); + expect(await vcVerify(addProofVC)).toBe(true); + }); + }); +}); diff --git a/packages/verify/src/vcVerifyIssue.ts b/packages/verify/src/vcVerifyIssue.ts new file mode 100644 index 0000000..260b40e --- /dev/null +++ b/packages/verify/src/vcVerifyIssue.ts @@ -0,0 +1,45 @@ +// Copyright 2021-2023 zcloak authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Did } from '@zcloak/did'; +import type { DidResolver } from '@zcloak/did-resolver'; +import type { VerifiableCredential } from '@zcloak/vc/types'; +import { VerifiableCredentialBuilder } from '@zcloak/vc'; + +import { assert } from '@polkadot/util'; +import { vcVerify } from './vcVerify'; + +/** + * since @2.0.0 + * @param issuer + * @param vc + * @returns + */ +export async function addProof( + issuer: Did, + vc: VerifiableCredential, + resolverOrDidDocument?: DidResolver + ): Promise> { + const existedIssuer = vc.issuer; + const existedProof = vc.proof; + const exitedDigest = vc.digest; + + assert(vc.version === '2', 'Only version2 support addProof'); + + // Must have proof + assert(existedIssuer.length > 0 && existedProof.length > 0, 'field issuer or proof is empty'); + + const vcVerifyResult = await vcVerify(vc, resolverOrDidDocument); + assert(vcVerifyResult, 'The VC is invalid') + + // addProof available since vc@2.0.0 + const version = '2'; + const proof = await VerifiableCredentialBuilder._signDigest(issuer, exitedDigest, version); + const modifiedVC: VerifiableCredential = { + ...vc, + issuer: [...existedIssuer, issuer.id] as any, + proof: [...existedProof, proof] + }; + + return modifiedVC; + } \ No newline at end of file diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index 3775e31..d316abd 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -4,7 +4,6 @@ import type { HexString } from '@polkadot/util/types'; import type { CType } from '@zcloak/ctype/types'; import type { Did } from '@zcloak/did'; -import type { DidResolver } from '@zcloak/did-resolver'; import type { DidUrl } from '@zcloak/did-resolver/types'; import type { HashType, Proof, RawCredential, VerifiableCredential, VerifiableCredentialVersion } from '../types'; @@ -160,41 +159,6 @@ export class VerifiableCredentialBuilder { throw new Error('Can not to build an VerifiableCredential'); } - /** - * since @2.0.0 - * @param issuer - * @param vc - * @returns - */ - public static async addProof( - issuer: Did, - vc: VerifiableCredential, - resolverOrDidDocument?: DidResolver - ): Promise> { - const existedIssuer = vc.issuer; - const existedProof = vc.proof; - const exitedDigest = vc.digest; - - assert(vc.version === '2', 'Only version2 support addProof'); - - // Must have proof - assert(existedIssuer.length > 0 && existedProof.length > 0, 'field issuer or proof is empty'); - - // const vcVerifyResult = await vcVerify(vc, resolverOrDidDocument); - // assert(vcVerifyResult, 'The VC is invalid') - - // addProof available since vc@2.0.0 - const version = '2'; - const proof = await VerifiableCredentialBuilder._signDigest(issuer, exitedDigest, version); - const modifiedVC: VerifiableCredential = { - ...vc, - issuer: [...existedIssuer, issuer.id] as any, - proof: [...existedProof, proof] - }; - - return modifiedVC; - } - /** * set arrtibute `@context` */ @@ -251,7 +215,7 @@ export class VerifiableCredentialBuilder { } // sign digest by did, the signed message is `concat('CredentialVersionedDigest', version, digest)` - private static async _signDigest(did: Did, digest: HexString, version: VerifiableCredentialVersion): Promise { + public static async _signDigest(did: Did, digest: HexString, version: VerifiableCredentialVersion): Promise { let message: Uint8Array | HexString; if (version === '1') { diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index f3422e2..006857f 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -33,7 +33,6 @@ export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexStr switch (typeof input) { case "string": return web3.utils.soliditySha3({ type: 'string', value: input }) - case "number": if (_isDecimalNumber(input)) { throw new Error(`Can not encode number with dot`); From 659e0fc2c6c3e7759ce8903d49df61ec74aec9c9 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Wed, 30 Aug 2023 17:31:36 +0800 Subject: [PATCH 17/24] Fmt: adjust the format; move addProof to vcVerify --- packages/message/src/decrypt/index.ts | 4 + packages/verify/src/index.ts | 1 - packages/verify/src/vcVerify.spec.ts | 78 +++++++++---- packages/verify/src/vcVerify.ts | 56 ++++++++- packages/verify/src/vcVerifyIssue.spec.ts | 136 ---------------------- packages/verify/src/vcVerifyIssue.ts | 45 ------- packages/verify/src/vpVerify.spec.ts | 9 +- protocol/vc/src/credential/index.spec.ts | 2 + protocol/vc/src/credential/vc.ts | 3 +- protocol/vc/src/is.ts | 7 +- protocol/vc/src/rootHash.spec.ts | 36 ++++-- protocol/vc/src/rootHash.ts | 8 +- protocol/vc/src/utils.ts | 33 +++--- protocol/vc/src/vp.ts | 6 +- 14 files changed, 180 insertions(+), 244 deletions(-) delete mode 100644 packages/verify/src/vcVerifyIssue.spec.ts delete mode 100644 packages/verify/src/vcVerifyIssue.ts diff --git a/packages/message/src/decrypt/index.ts b/packages/message/src/decrypt/index.ts index a127e75..78690cf 100644 --- a/packages/message/src/decrypt/index.ts +++ b/packages/message/src/decrypt/index.ts @@ -35,6 +35,7 @@ export function verifyMessageData(message: DecryptedMessage): void case 'Response_Approve_Attestation': assert(isVC(data), `Expected message data with msgType:${msgType} is VerifiableCredential object`); + if (typeof data.issuer === 'object') { assert( data.issuer.some((issuer) => isSameUri(sender, issuer)), @@ -44,6 +45,7 @@ export function verifyMessageData(message: DecryptedMessage): void assert(isSameUri(sender, data.issuer), 'Message sender is not the issuer VerifiableCredential'); } else { const check: never = data.issuer; + return check; } @@ -83,6 +85,7 @@ export function verifyMessageData(message: DecryptedMessage): void case 'Send_issuedVC': assert(isVC(data), `Expected message data with msgType:${msgType} is VerifiableCredential object`); + if (typeof data.issuer === 'object') { assert( data.issuer.some((issuer) => isSameUri(sender, issuer)), @@ -92,6 +95,7 @@ export function verifyMessageData(message: DecryptedMessage): void assert(isSameUri(sender, data.issuer), 'Message sender is not the issuer VerifiableCredential'); } else { const check: never = data.issuer; + throw new Error(`Message sender type wrong, the wrong issuer is : ${check}`); } diff --git a/packages/verify/src/index.ts b/packages/verify/src/index.ts index 547ff2c..833a525 100644 --- a/packages/verify/src/index.ts +++ b/packages/verify/src/index.ts @@ -7,4 +7,3 @@ export * from './digestVerify'; export * from './verifyDidDocumentProof'; export * from './vcVerify'; export * from './vpVerify'; -export * from './vcVerifyIssue' \ No newline at end of file diff --git a/packages/verify/src/vcVerify.spec.ts b/packages/verify/src/vcVerify.spec.ts index 9f6eacc..b3e48a6 100644 --- a/packages/verify/src/vcVerify.spec.ts +++ b/packages/verify/src/vcVerify.spec.ts @@ -4,10 +4,12 @@ import type { DidDocument } from '@zcloak/did-resolver/types'; import type { AnyJson, VerifiableCredential } from '@zcloak/vc/types'; +import { alice } from 'test-support'; + import { initCrypto } from '@zcloak/crypto'; import { calcRoothash } from '@zcloak/vc'; -import { vcVerify, vcVerifyDigest } from './vcVerify'; +import { addProof, vcVerify, vcVerifyDigest } from './vcVerify'; const document1: DidDocument = { '@context': ['https://www.w3.org/ns/did/v1'], @@ -60,11 +62,11 @@ const document2: DidDocument = { capabilityDelegation: ['did:zk:0x565ee4a279Ad611010DF17082220987CcaD381fb#key-0'], service: [] }; -const document3: DidDocument = { - '@context': [ 'https://www.w3.org/ns/did/v1' ], +const document3: DidDocument = { + '@context': ['https://www.w3.org/ns/did/v1'], version: '0', id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', - controller: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec' ], + controller: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], verificationMethod: [ { id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', @@ -79,11 +81,11 @@ const document3: DidDocument = { publicKeyMultibase: 'zCGHvcFKtP4pDzoTXWG7wLvT6fNRKMUUbmW8QuX8EQCVh' } ], - authentication: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0' ], - assertionMethod: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0' ], - keyAgreement: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-1' ], - capabilityInvocation: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0' ], - capabilityDelegation: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0' ], + authentication: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], + assertionMethod: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], + keyAgreement: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-1'], + capabilityInvocation: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], + capabilityDelegation: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], service: [] }; @@ -130,14 +132,14 @@ const fullVC: VerifiableCredential = { }; const fullVC2: VerifiableCredential = { - '@context': [ 'https://www.w3.org/2018/credentials/v1' ], + '@context': ['https://www.w3.org/2018/credentials/v1'], version: '2', ctype: '0xc08734bbd035fe0880ba6e469e40b160601a2389d0284f6255a5f0b395d2336c', issuanceDate: 1693299183644, credentialSubject: { name: 'zCloak', age: 19, birthday: '2022.10.31', isUser: true }, - issuer: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec' ], + issuer: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', - hasher: [ 'RescuePrime', 'Keccak256' ], + hasher: ['RescuePrime', 'Keccak256'], digest: '0x115ab0958eca52ee2ef511a67079b419b8d57224f6457ded3ad117a2354e207a', proof: [ { @@ -155,22 +157,26 @@ const fullVC2: VerifiableCredential = { '0x6fe5621dc7ebaf818c6dae3afdada35a74676be85cbde5b4f9b074c76490a92d' ], credentialSubjectNonceMap: { - '0x88af5a7ba28c1de54ebd589dea81d30caa3f467646f6d714c0d2604599d63e1e': '0x385e28cb8bcf5fdbd9011da8338d8a8852dabe5e441ab90676db5c4bf6957642', - '0x9ad57aefa90d9473f855c14221f330fe959a554b3d86c9d701db11c7559ce107': '0x8f2924d768a2769bd65db828baa15a806627d808d379a16cd209de97736a6e10', - '0x2d2367a578506f669cfd4a744c08fd45315ad4ea3d248733957947cf00723662': '0x85320040fcd44f06281535081364b4c5674ca946ae23e6a155ea0231e0cd1c39', - '0x6bc2ebdc9345c21f804ef735209993cb8e5b3755af0650c41aa164a9faf674bd': '0x7450de9f08aca5030b3ddfd91de2416592951d4f2d3b76c7277b6d0c5debb236' + '0x88af5a7ba28c1de54ebd589dea81d30caa3f467646f6d714c0d2604599d63e1e': + '0x385e28cb8bcf5fdbd9011da8338d8a8852dabe5e441ab90676db5c4bf6957642', + '0x9ad57aefa90d9473f855c14221f330fe959a554b3d86c9d701db11c7559ce107': + '0x8f2924d768a2769bd65db828baa15a806627d808d379a16cd209de97736a6e10', + '0x2d2367a578506f669cfd4a744c08fd45315ad4ea3d248733957947cf00723662': + '0x85320040fcd44f06281535081364b4c5674ca946ae23e6a155ea0231e0cd1c39', + '0x6bc2ebdc9345c21f804ef735209993cb8e5b3755af0650c41aa164a9faf674bd': + '0x7450de9f08aca5030b3ddfd91de2416592951d4f2d3b76c7277b6d0c5debb236' } }; const fullVC3: VerifiableCredential = { - '@context': [ 'https://www.w3.org/2018/credentials/v1' ], + '@context': ['https://www.w3.org/2018/credentials/v1'], version: '2', ctype: '0xc08734bbd035fe0880ba6e469e40b160601a2389d0284f6255a5f0b395d2336c', issuanceDate: 1693299329782, credentialSubject: { name: 'zCloak', age: 19, birthday: '2022.10.31', isUser: true }, - issuer: [ 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec' ], + issuer: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', - hasher: [ 'Keccak256', 'Keccak256' ], + hasher: ['Keccak256', 'Keccak256'], digest: '0x63c8827f7d7e7446772799ccfbc0ae0a57199b679a4ea3682951ccc5c418060d', proof: [ { @@ -188,10 +194,14 @@ const fullVC3: VerifiableCredential = { '0x4ddccf029950fee195bcd67df5a46986fea14ff00d47b5d3b9d1929c623c1f32' ], credentialSubjectNonceMap: { - '0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a': '0xc9444e4d54f98aaa9076736432913113f0d6491321cc575ec751208d7f17fb7f', - '0x66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090': '0x596e356de2ec14369f127afcba1c84441c658687ea9cff7a084af5f1490b8a50', - '0x7320ea69771c4eb8c89284d19ce63eb7a788f605b1f3509c17c6f47cc06cc404': '0x8c3e7322bb5fa1421684356dfaa32625e849334fcc34122551b5f8440573c9a2', - '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': '0xdc2737abd5c3a6bd9f10ec1211f6d6f973ff671d38f25c1003cd17efe5b44d70' + '0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a': + '0xc9444e4d54f98aaa9076736432913113f0d6491321cc575ec751208d7f17fb7f', + '0x66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090': + '0x596e356de2ec14369f127afcba1c84441c658687ea9cff7a084af5f1490b8a50', + '0x7320ea69771c4eb8c89284d19ce63eb7a788f605b1f3509c17c6f47cc06cc404': + '0x8c3e7322bb5fa1421684356dfaa32625e849334fcc34122551b5f8440573c9a2', + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': + '0xdc2737abd5c3a6bd9f10ec1211f6d6f973ff671d38f25c1003cd17efe5b44d70' } }; @@ -369,4 +379,26 @@ describe('vc verify', (): void => { ).toBe(true); }); }); + + it('vc verify with version 2, without keccak256, add Proof', async (): Promise => { + const addProofVC = await addProof(alice, fullVC2); + + expect(addProofVC.issuer).toEqual([ + 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', + 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1' + ]); + expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); + expect(await vcVerify(addProofVC)).toBe(true); + }); + + it('vc verify with version 2, with keccak256, add Proof', async (): Promise => { + const addProofVC = await addProof(alice, fullVC3); + + expect(addProofVC.issuer).toEqual([ + 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', + 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1' + ]); + expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); + expect(await vcVerify(addProofVC)).toBe(true); + }); }); diff --git a/packages/verify/src/vcVerify.ts b/packages/verify/src/vcVerify.ts index 0ff8d4d..49addf4 100644 --- a/packages/verify/src/vcVerify.ts +++ b/packages/verify/src/vcVerify.ts @@ -8,7 +8,8 @@ import type { VerifiableCredential } from '@zcloak/vc/types'; import { assert, bufferToU8a, isHex, u8aConcat, u8aToHex } from '@polkadot/util'; -import { calcRoothash, makeMerkleTree } from '@zcloak/vc'; +import { Did } from '@zcloak/did'; +import { calcRoothash, makeMerkleTree, VerifiableCredentialBuilder } from '@zcloak/vc'; import { HASHER } from '@zcloak/vc/hasher'; import { isPublicVC, isVC } from '@zcloak/vc/is'; import { encodeAsSol, rlpEncode, signedVCMessage } from '@zcloak/vc/utils'; @@ -22,7 +23,7 @@ async function verifyShared( rootHash: HexString, resolverOrDidDocument?: DidResolver | DidDocument ): Promise { - assert(isVC(vc), `input 'vc' is not a VerifiableCredential`); + assert(isVC(vc), "input 'vc' is not a VerifiableCredential"); const { ctype, digest, expirationDate, hasher, holder, issuanceDate, proof, version } = vc; @@ -51,10 +52,19 @@ async function verifyShared( message = digest; } else { const check: never = version; + throw new Error(`The VC Version is invalid : ${check}`); } - const proofValid = await proofVerify(message, proof[0], resolverOrDidDocument); + let proofValid = true; + + for (const item of proof) { + proofValid = await proofVerify(message, item, resolverOrDidDocument); + + if (!proofValid) { + return false; + } + } return digestValid && proofValid; } @@ -102,7 +112,7 @@ export async function vcVerify( let encoded: HexString; if (vc.version === '2') { - if (hasher[0] == 'Keccak256') { + if (hasher[0] === 'Keccak256') { encoded = encodeAsSol(value); } else { encoded = u8aToHex(rlpEncode(value, hasher[0])); @@ -111,6 +121,7 @@ export async function vcVerify( encoded = u8aToHex(rlpEncode(value, hasher[0])); } else { const check: never = vc.version; + throw new Error(`VC Version invalid, the wrong VC Version is ${check}`); } @@ -119,6 +130,7 @@ export async function vcVerify( if (!credentialSubjectHashes.includes(hash)) return false; } } + return verifyShared(vc, rootHash, resolverOrDidDocument); } @@ -159,3 +171,39 @@ export async function vcVerifyDigest( return verifyShared(vc, rootHash, resolverOrDidDocument); } + +/** + * since @2.0.0 + * @param issuer + * @param vc + * @returns + */ +export async function addProof( + issuer: Did, + vc: VerifiableCredential, + resolverOrDidDocument?: DidResolver +): Promise> { + const existedIssuer = vc.issuer; + const existedProof = vc.proof; + const exitedDigest = vc.digest; + + assert(vc.version === '2', 'Only version2 support addProof'); + + // Must have proof + assert(existedIssuer.length > 0 && existedProof.length > 0, 'field issuer or proof is empty'); + + const vcVerifyResult = await vcVerify(vc, resolverOrDidDocument); + + assert(vcVerifyResult, 'The VC is invalid'); + + // addProof available since vc@2.0.0 + const version = '2'; + const proof = await VerifiableCredentialBuilder._signDigest(issuer, exitedDigest, version); + const modifiedVC: VerifiableCredential = { + ...vc, + issuer: [...existedIssuer, issuer.id] as any, + proof: [...existedProof, proof] + }; + + return modifiedVC; +} diff --git a/packages/verify/src/vcVerifyIssue.spec.ts b/packages/verify/src/vcVerifyIssue.spec.ts deleted file mode 100644 index 8f4119f..0000000 --- a/packages/verify/src/vcVerifyIssue.spec.ts +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2021-2023 zcloak authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { DidDocument } from '@zcloak/did-resolver/types'; -import type { VerifiableCredential } from '@zcloak/vc/types'; -import { alice } from 'test-support'; - -import { initCrypto } from '@zcloak/crypto'; - -import { addProof } from './vcVerifyIssue'; -import { vcVerify } from './vcVerify'; - -const document3: DidDocument = { - '@context': ['https://www.w3.org/ns/did/v1'], - version: '0', - id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', - controller: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], - verificationMethod: [ - { - id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', - controller: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], - type: 'EcdsaSecp256k1VerificationKey2019', - publicKeyMultibase: 'zupS5XUoHqKsBUHMAYqFNtUdzwNw7X3ML77Sh4CGUHNpx' - }, - { - id: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-1', - controller: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], - type: 'X25519KeyAgreementKey2019', - publicKeyMultibase: 'zCGHvcFKtP4pDzoTXWG7wLvT6fNRKMUUbmW8QuX8EQCVh' - } - ], - authentication: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], - assertionMethod: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], - keyAgreement: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-1'], - capabilityInvocation: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], - capabilityDelegation: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0'], - service: [] -}; - -const fullVC2: VerifiableCredential = { - '@context': ['https://www.w3.org/2018/credentials/v1'], - version: '2', - ctype: '0xc08734bbd035fe0880ba6e469e40b160601a2389d0284f6255a5f0b395d2336c', - issuanceDate: 1693299183644, - credentialSubject: { name: 'zCloak', age: 19, birthday: '2022.10.31', isUser: true }, - issuer: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], - holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', - hasher: ['RescuePrime', 'Keccak256'], - digest: '0x115ab0958eca52ee2ef511a67079b419b8d57224f6457ded3ad117a2354e207a', - proof: [ - { - type: 'EcdsaSecp256k1SignatureEip191', - created: 1693299183648, - verificationMethod: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', - proofPurpose: 'assertionMethod', - proofValue: 'zJDsreYR36X2T1WggKwhRebve3PrzLpbSFmTCYz5mCV1DXbcQeDKqeE7eVxDKErAMe7GCuvpqxbpR6gdAb3F2d4hsu' - } - ], - credentialSubjectHashes: [ - '0xe2cc46a455caf6b78393d6b3a2fdf455f5542266f29fb3042a1e840cc2b86427', - '0xa0ea71dfa268c4277e455acd6a8a0b086c907f3caad43678e62ce9c0cf7bc0e8', - '0xb129e4db1e188ba554c295e5aa93ab0d0ade297e5cb4b710cee3ce1af4dc1c4a', - '0x6fe5621dc7ebaf818c6dae3afdada35a74676be85cbde5b4f9b074c76490a92d' - ], - credentialSubjectNonceMap: { - '0x88af5a7ba28c1de54ebd589dea81d30caa3f467646f6d714c0d2604599d63e1e': '0x385e28cb8bcf5fdbd9011da8338d8a8852dabe5e441ab90676db5c4bf6957642', - '0x9ad57aefa90d9473f855c14221f330fe959a554b3d86c9d701db11c7559ce107': '0x8f2924d768a2769bd65db828baa15a806627d808d379a16cd209de97736a6e10', - '0x2d2367a578506f669cfd4a744c08fd45315ad4ea3d248733957947cf00723662': '0x85320040fcd44f06281535081364b4c5674ca946ae23e6a155ea0231e0cd1c39', - '0x6bc2ebdc9345c21f804ef735209993cb8e5b3755af0650c41aa164a9faf674bd': '0x7450de9f08aca5030b3ddfd91de2416592951d4f2d3b76c7277b6d0c5debb236' - } -}; - -const fullVC3: VerifiableCredential = { - '@context': ['https://www.w3.org/2018/credentials/v1'], - version: '2', - ctype: '0xc08734bbd035fe0880ba6e469e40b160601a2389d0284f6255a5f0b395d2336c', - issuanceDate: 1693299329782, - credentialSubject: { name: 'zCloak', age: 19, birthday: '2022.10.31', isUser: true }, - issuer: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec'], - holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', - hasher: ['Keccak256', 'Keccak256'], - digest: '0x63c8827f7d7e7446772799ccfbc0ae0a57199b679a4ea3682951ccc5c418060d', - proof: [ - { - type: 'EcdsaSecp256k1SignatureEip191', - created: 1693299329786, - verificationMethod: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', - proofPurpose: 'assertionMethod', - proofValue: 'zJaNmsWPNQoJ1Gt58AotgQRoBvSoEibuAL6GBKvZ8fV5gbNCrXxBZkMyZFK6fUwUoFkZi2WZNNdMicwGzTPbzdH1Ep' - } - ], - credentialSubjectHashes: [ - '0x1537556bb6125c231e6e76ec1457b80bf43647fdd0de3f57c2bc3189da55617b', - '0x418070cd733fcab053b572eb37f4aea5686ec3485296eb2e517b622c9b59a112', - '0xd4be7b980fc8f5d53f99b5cfcfce5633827baff0be83f16f5290190864708f4b', - '0x4ddccf029950fee195bcd67df5a46986fea14ff00d47b5d3b9d1929c623c1f32' - ], - credentialSubjectNonceMap: { - '0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a': '0xc9444e4d54f98aaa9076736432913113f0d6491321cc575ec751208d7f17fb7f', - '0x66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090': '0x596e356de2ec14369f127afcba1c84441c658687ea9cff7a084af5f1490b8a50', - '0x7320ea69771c4eb8c89284d19ce63eb7a788f605b1f3509c17c6f47cc06cc404': '0x8c3e7322bb5fa1421684356dfaa32625e849334fcc34122551b5f8440573c9a2', - '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': '0xdc2737abd5c3a6bd9f10ec1211f6d6f973ff671d38f25c1003cd17efe5b44d70' - } -}; - - -describe('vc verify', (): void => { - beforeAll(async (): Promise => { - await initCrypto(); - }); - - describe('verify vc with full text presentation', (): void => { - it('vc verify with version 2, without keccak256', async (): Promise => { - expect(await vcVerify(fullVC2, document3)).toBe(true); - }); - - it('vc verify with version 2, with keccak256', async (): Promise => { - expect(await vcVerify(fullVC3, document3)).toBe(true); - }); - - it('vc verify with version 2, without keccak256, add Proof', async (): Promise => { - const addProofVC = await addProof(alice, fullVC2); - expect(addProofVC.issuer).toEqual(['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1']); - expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); - expect(await vcVerify(addProofVC)).toBe(true); - - }); - - it('vc verify with version 2, with keccak256, add Proof', async (): Promise => { - const addProofVC = await addProof(alice, fullVC3); - expect(addProofVC.issuer).toEqual(['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1']); - expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); - expect(await vcVerify(addProofVC)).toBe(true); - }); - }); -}); diff --git a/packages/verify/src/vcVerifyIssue.ts b/packages/verify/src/vcVerifyIssue.ts deleted file mode 100644 index 260b40e..0000000 --- a/packages/verify/src/vcVerifyIssue.ts +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2021-2023 zcloak authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { Did } from '@zcloak/did'; -import type { DidResolver } from '@zcloak/did-resolver'; -import type { VerifiableCredential } from '@zcloak/vc/types'; -import { VerifiableCredentialBuilder } from '@zcloak/vc'; - -import { assert } from '@polkadot/util'; -import { vcVerify } from './vcVerify'; - -/** - * since @2.0.0 - * @param issuer - * @param vc - * @returns - */ -export async function addProof( - issuer: Did, - vc: VerifiableCredential, - resolverOrDidDocument?: DidResolver - ): Promise> { - const existedIssuer = vc.issuer; - const existedProof = vc.proof; - const exitedDigest = vc.digest; - - assert(vc.version === '2', 'Only version2 support addProof'); - - // Must have proof - assert(existedIssuer.length > 0 && existedProof.length > 0, 'field issuer or proof is empty'); - - const vcVerifyResult = await vcVerify(vc, resolverOrDidDocument); - assert(vcVerifyResult, 'The VC is invalid') - - // addProof available since vc@2.0.0 - const version = '2'; - const proof = await VerifiableCredentialBuilder._signDigest(issuer, exitedDigest, version); - const modifiedVC: VerifiableCredential = { - ...vc, - issuer: [...existedIssuer, issuer.id] as any, - proof: [...existedProof, proof] - }; - - return modifiedVC; - } \ No newline at end of file diff --git a/packages/verify/src/vpVerify.spec.ts b/packages/verify/src/vpVerify.spec.ts index 34cef0e..b5c89f2 100644 --- a/packages/verify/src/vpVerify.spec.ts +++ b/packages/verify/src/vpVerify.spec.ts @@ -9,9 +9,9 @@ import { initCrypto, randomAsHex } from '@zcloak/crypto'; import { getPublish } from '@zcloak/ctype/publish'; import { Did } from '@zcloak/did'; import { Raw, VerifiableCredentialBuilder, VerifiablePresentationBuilder } from '@zcloak/vc'; +import { VerifiablePresentation } from '@zcloak/vc/types'; import { vpVerify } from './vpVerify'; -import { VerifiablePresentation } from '@zcloak/vc/types'; const CONTENTS1 = { name: 'zCloak', @@ -51,7 +51,8 @@ const vp1: VerifiablePresentation = { '0x6d7154b2efb83c39a5cf81ade1ec18509435c573211301ef3cd45957619d4121' ], credentialSubjectNonceMap: { - '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': '0x7e40f40af672df4c16ee00317cac4a1b6ab62b68efeecd18940e041472765fc7' + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': + '0x7e40f40af672df4c16ee00317cac4a1b6ab62b68efeecd18940e041472765fc7' } } ], @@ -74,7 +75,6 @@ describe('VerifiablePresentation', (): void => { let rawCtype: Raw; let rawCtype2: Raw; - beforeAll(async (): Promise => { await initCrypto(); @@ -155,8 +155,6 @@ describe('VerifiablePresentation', (): void => { expect(await vpVerify(vp, testResolver)).toBe(true); }); }); - - describe('VerifiablePresentation single vc with Version2 keccak256', (): void => { it('verify vp with VPType: VP', async (): Promise => { const vc = await VerifiableCredentialBuilder.fromRawCredential(rawCtype2.toRawCredential(), ctype) @@ -193,6 +191,7 @@ describe('VerifiablePresentation', (): void => { const challenge = randomAsHex(); const vp = await vpBuilder.addVC(vc, 'VP_SelectiveDisclosure', ['isUser']).build(undefined, challenge); + expect(await vpVerify(vp, testResolver)).toBe(true); }); diff --git a/protocol/vc/src/credential/index.spec.ts b/protocol/vc/src/credential/index.spec.ts index eb8ad24..36f1386 100644 --- a/protocol/vc/src/credential/index.spec.ts +++ b/protocol/vc/src/credential/index.spec.ts @@ -110,6 +110,7 @@ describe('VerifiableCredential', (): void => { }); const vc = await vcBuilder.build(issuer, false); + expect(isPrivateVC(vc)).toBe(true); expect(vc).toMatchObject({ @@ -194,6 +195,7 @@ describe('VerifiableCredential', (): void => { }); const vc = await vcBuilder.build(issuer, true); + expect(isPrivateVC(vc)).toBe(false); expect(vc).toMatchObject({ diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index d316abd..725f82e 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -10,8 +10,8 @@ import type { HashType, Proof, RawCredential, VerifiableCredential, VerifiableCr import { assert } from '@polkadot/util'; import { base58Encode } from '@zcloak/crypto'; -// import { vcVerify } from '@zcloak/verify/vcVerify'; +// import { vcVerify } from '@zcloak/verify/vcVerify'; import { DEFAULT_CONTEXT, DEFAULT_VC_VERSION } from '../defaults'; import { calcDigest, DigestPayload } from '../digest'; import { isRawCredential } from '../is'; @@ -224,6 +224,7 @@ export class VerifiableCredentialBuilder { message = digest; } else { const check: never = version; + throw new Error(`VC Version invalid, the wrong VC Version is ${check}`); } diff --git a/protocol/vc/src/is.ts b/protocol/vc/src/is.ts index bc81fb8..230d4c2 100644 --- a/protocol/vc/src/is.ts +++ b/protocol/vc/src/is.ts @@ -15,9 +15,9 @@ import { isArray, isHex, isJsonObject, isNull, isNumber, isString, isUndefined } import { isBase32, isBase58, isBase64 } from '@zcloak/crypto'; import { isDidUrl } from '@zcloak/did/utils'; +import { parseDid } from '@zcloak/did-resolver/parseDid'; import { ALL_HASH_TYPES, ALL_SIG_TYPES, ALL_VP_TYPES } from './defaults'; -import { parseDid } from '@zcloak/did-resolver/parseDid'; /** * @name isHashType @@ -70,6 +70,7 @@ export function isProof(input: unknown): input is Proof { export function isAttesterMapping(issuer: unknown, proof: unknown): boolean { if (isProof(proof)) { const issuerInProof = parseDid(proof.verificationMethod).did; + return issuer === issuerInProof; } else return false; } @@ -85,6 +86,7 @@ export function isAttesterProof(issuer: unknown, proof: unknown): boolean { return isAttesterMapping(issuer, proof[0]); } else if (isArray(issuer) && isArray(proof) && issuer.length === proof.length) { const check = issuer.every((issuer, index) => isAttesterMapping(issuer, proof[index])); + return check; } else { return false; @@ -93,9 +95,10 @@ export function isAttesterProof(issuer: unknown, proof: unknown): boolean { export function isAttester(value: unknown, version: unknown): boolean { if (typeof value === 'string' && (version === '0' || version === '1')) { - return isDidUrl(value) + return isDidUrl(value); } else if (isArray(value) && value.length !== 0 && version === '2') { const check = value.every(isDidUrl); + return check; } else { return false; diff --git a/protocol/vc/src/rootHash.spec.ts b/protocol/vc/src/rootHash.spec.ts index a680ced..00374f7 100644 --- a/protocol/vc/src/rootHash.spec.ts +++ b/protocol/vc/src/rootHash.spec.ts @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 import { HexString } from '@polkadot/util/types'; + import { initCrypto } from '@zcloak/crypto'; import { calcRoothash } from './rootHash'; @@ -130,12 +131,17 @@ describe('calcRoothash', (): void => { age: 111, number_array: [11, 12, 13], isUser: true, - string_array: ["zCloak", "database"] + string_array: ['zCloak', 'database'] }; const values = Object.values(input); const encodedClaimHashes: HexString[] = values.map((values) => encodeAsSol(values)); - expect(encodedClaimHashes).toEqual(["0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a", "0x39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711", "0x8d20824cd86ad1c5673537a4b5d1ee68bd9265b7d357e82bc76483ae879322c2", "0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", "0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3", + expect(encodedClaimHashes).toEqual([ + '0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a', + '0x39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711', + '0x8d20824cd86ad1c5673537a4b5d1ee68bd9265b7d357e82bc76483ae879322c2', + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2', + '0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3' ]); }); }); @@ -147,20 +153,32 @@ describe('calcRoothash', (): void => { age: 111, number_array: [11, 12, 13], isUser: true, - string_array: ["zCloak", "database"] + string_array: ['zCloak', 'database'] }; const values = Object.values(input); const encodedClaimHashes: HexString[] = values.map((values) => encodeAsSol(values)); - expect(encodedClaimHashes).toEqual(["0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a", "0x39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711", "0x8d20824cd86ad1c5673537a4b5d1ee68bd9265b7d357e82bc76483ae879322c2", "0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2", "0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3", + expect(encodedClaimHashes).toEqual([ + '0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a', + '0x39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711', + '0x8d20824cd86ad1c5673537a4b5d1ee68bd9265b7d357e82bc76483ae879322c2', + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2', + '0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3' ]); - const { rootHash } = calcRoothash(input, 'Keccak256', '2', {'0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a': '0xcd769c703ecfdc6798d56711af8b3a7918973524db6c6c0901209fd396f3a61b', - '0x39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711': '0xc5bd9417c2dd820e8c074086acb0e1a785c5f9aa59022ca74606f4f6f32338bb', - '0x8d20824cd86ad1c5673537a4b5d1ee68bd9265b7d357e82bc76483ae879322c2': '0x9895d1010a3c7ae796bfdb2bff52febcfb21d8c71a0fb465a02d8a2a0ad857bd', - '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': '0xddb361f768d83f2f8eabd4f51517adb8d92aef33ce627127311bad01bac41710', - '0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3': '0x51c09e0512047698103565fc9c2aca963eb3af6cf99b9201fc6be1331e4649e5' + const { rootHash } = calcRoothash(input, 'Keccak256', '2', { + '0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a': + '0xcd769c703ecfdc6798d56711af8b3a7918973524db6c6c0901209fd396f3a61b', + '0x39f2babe526038520877fc7c33d81accf578af4a06c5fa6b0d038cae36e12711': + '0xc5bd9417c2dd820e8c074086acb0e1a785c5f9aa59022ca74606f4f6f32338bb', + '0x8d20824cd86ad1c5673537a4b5d1ee68bd9265b7d357e82bc76483ae879322c2': + '0x9895d1010a3c7ae796bfdb2bff52febcfb21d8c71a0fb465a02d8a2a0ad857bd', + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': + '0xddb361f768d83f2f8eabd4f51517adb8d92aef33ce627127311bad01bac41710', + '0x69ab0c29dcf9256886435d72272bceee1f0a0b2cee41865d3b56f9726e7fe0a3': + '0x51c09e0512047698103565fc9c2aca963eb3af6cf99b9201fc6be1331e4649e5' }); + expect(rootHash).toEqual('0x8e94d639398a25f0484ba8f40feff5e694b084164118af84ffece25c68be4342'); }); }); diff --git a/protocol/vc/src/rootHash.ts b/protocol/vc/src/rootHash.ts index d17df99..f9a1b48 100644 --- a/protocol/vc/src/rootHash.ts +++ b/protocol/vc/src/rootHash.ts @@ -53,6 +53,7 @@ export function rootHashFromMerkle( } const leave = HASHER[hashType](nonceMap ? u8aConcat(encode, nonceMap[encode]) : encode); + leaves.push(leave); } @@ -83,21 +84,21 @@ export function calcRoothash( input: AnyJson, hashType: HashType, version: VerifiableCredentialVersion, - nonceMap: Record, + nonceMap: Record ): RootHashResult; export function calcRoothash( input: AnyJson, hashType: HashType, version: VerifiableCredentialVersion, - nonceMap?: Record, + nonceMap?: Record ): RootHashResult { const values = Object.values(input); let encoded: HexString[] = []; // if the version is `2` and the hash in merkletree is Keccak256, we assume this vc aims to be used on chain. if (version === '2') { - if (hashType == 'Keccak256'){ + if (hashType === 'Keccak256') { encoded = values.map((values) => encodeAsSol(values)); } else { encoded = values.map((value) => rlpEncode(value, hashType)).map((value) => u8aToHex(value)); @@ -106,6 +107,7 @@ export function calcRoothash( encoded = values.map((value) => rlpEncode(value, hashType)).map((value) => u8aToHex(value)); } else { const check: never = version; + throw new Error(`VC Version invalid, the wrong VC Version is ${check}`); } diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index 006857f..c746954 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -11,12 +11,12 @@ import type { } from './types'; import { numberToU8a, stringToU8a, u8aConcat } from '@polkadot/util'; +import Web3 from 'web3'; import { rlpEncode as rlpEncodeFn } from '@zcloak/crypto'; import { HASHER } from './hasher'; -import Web3 from 'web3'; const web3 = new Web3() as any; export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: HashType): Uint8Array { @@ -31,28 +31,32 @@ export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexString { switch (typeof input) { - case "string": - return web3.utils.soliditySha3({ type: 'string', value: input }) - case "number": + case 'string': + return web3.utils.soliditySha3({ type: 'string', value: input }); + case 'number': if (_isDecimalNumber(input)) { - throw new Error(`Can not encode number with dot`); + throw new Error('Can not encode number with dot'); } + return web3.utils.soliditySha3({ type: 'int256', value: input }); - case "boolean": + case 'boolean': return web3.utils.soliditySha3({ type: 'bool', value: input }); - case "object": - if (Array.isArray(input) && typeof input[0] == 'string') { + case 'object': + if (Array.isArray(input) && typeof input[0] === 'string') { const encodedParams = web3.eth.abi.encodeParameters(['string[]'], [input]); + return web3.utils.keccak256(encodedParams); - } else if ((Array.isArray(input) && typeof input[0] == 'number')) { + } else if (Array.isArray(input) && typeof input[0] === 'number') { return web3.utils.soliditySha3({ type: 'int256[]', value: input }); } else throw new Error(`This object can not be encoded ${input}`); - case "undefined": + case 'undefined': throw new Error(`Can not encode this undefined type: ${input}`); default: + // eslint-disable-next-line no-case-declarations const check: never = input; + throw new Error(`The input type to be encodeAsSol is wrong, the type is ${check}`); - } + } } export function signedVCMessage(digest: HexString, version: VerifiableCredentialVersion): Uint8Array { @@ -75,9 +79,10 @@ export function signedVPMessage( // helper function, check whether the number is an integer or not function _isDecimalNumber(num: number): boolean { const numStr = num.toString(); - if (numStr.includes(".")) { - return true; + + if (numStr.includes('.')) { + return true; } else { - return false; + return false; } } diff --git a/protocol/vc/src/vp.ts b/protocol/vc/src/vp.ts index 262e895..333447e 100644 --- a/protocol/vc/src/vp.ts +++ b/protocol/vc/src/vp.ts @@ -21,7 +21,7 @@ import { DEFAULT_CONTEXT, DEFAULT_VP_HASH_TYPE, DEFAULT_VP_VERSION } from './def import { HASHER } from './hasher'; import { isPublicVC, isVC } from './is'; import { calcRoothash } from './rootHash'; -import { rlpEncode, encodeAsSol, signedVPMessage } from './utils'; +import { encodeAsSol, rlpEncode, signedVPMessage } from './utils'; // @internal // transform private Verifiable Credential by [[VerifiablePresentationType]] @@ -49,6 +49,7 @@ function transformVC( for (const key of selectedAttributes) { vc.credentialSubject[key] = subject[key]; let encode: HexString; + if (vc.version === '2') { if (vc.hasher[0] == 'Keccak256') { encode = encodeAsSol(subject[key]); @@ -59,8 +60,10 @@ function transformVC( encode = u8aToHex(rlpEncode(subject[key], vc.hasher[0])); } else { const check: never = vc.version; + throw new Error(`VC Version invalid, the wrong VC Version is ${check}`); } + vc.credentialSubjectNonceMap[encode] = nonceMap[encode]; } } else if (type === 'VP_Digest') { @@ -71,6 +74,7 @@ function transformVC( vc.credentialSubjectNonceMap = {}; } else { const check: never = type; + throw new Error(`VP Type invalid, the invalid VP type is: ${check}`); } From b7d79b56365efeb7970b54b682b6246f1136ae47 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Thu, 31 Aug 2023 14:38:30 +0800 Subject: [PATCH 18/24] Test: Add 'extend' test for message.spec.ts --- packages/message/src/message.spec.ts | 52 +++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/packages/message/src/message.spec.ts b/packages/message/src/message.spec.ts index 62db3bd..b39b814 100644 --- a/packages/message/src/message.spec.ts +++ b/packages/message/src/message.spec.ts @@ -4,11 +4,12 @@ import type { CType } from '@zcloak/ctype/types'; import type { RawCredential } from '@zcloak/vc/types'; -import { alice, bob, testResolver } from 'test-support'; +import { alice, bob, charlie, testResolver } from 'test-support'; import { initCrypto } from '@zcloak/crypto'; import { getPublish } from '@zcloak/ctype'; import { Raw, VerifiableCredentialBuilder } from '@zcloak/vc'; +import { addProof } from '@zcloak/verify'; import { decryptMessage } from './decrypt'; import { encryptMessage } from './encrypt'; @@ -110,6 +111,55 @@ describe('message encrypt and decrypt', (): void => { }); describe('Send Extends msgType', () => { + it('Send vc to be add proof', async () => { + const vc = await VerifiableCredentialBuilder.fromRawCredential(rawCredential, ctype) + .setExpirationDate(null) + .build(alice, false); + + const message = await encryptMessage( + 'Extends_Request_Comfirmation', + vc, + alice, + bob.getKeyUrl('keyAgreement'), + undefined, + testResolver + ); + const decrypted = await decryptMessage(message, bob, testResolver); + + expect(decrypted.data).toEqual(vc); + }); + + it('Send multiAttester VC', async () => { + const vc = await VerifiableCredentialBuilder.fromRawCredential(rawCredential, ctype) + .setExpirationDate(null) + .build(alice, false); + + const message = await encryptMessage( + 'Extends_Request_Comfirmation', + vc, + alice, + bob.getKeyUrl('keyAgreement'), + undefined, + testResolver + ); + const decrypted = await decryptMessage(message, bob, testResolver); + const multiAttesterVC = await addProof(bob, decrypted.data); + + expect(multiAttesterVC.issuer).toEqual([alice.getDocument().id, bob.getDocument().id]); + + const messageSentToUser = await encryptMessage( + 'Extends_Response_Approve_Attestation message', + multiAttesterVC, + bob, + charlie.getKeyUrl('keyAgreement'), + undefined, + testResolver + ); + const decryptedMultiVC = await decryptMessage(messageSentToUser, charlie, testResolver); + + expect(decryptedMultiVC.data).toEqual(multiAttesterVC); + }); + it('Send string data', async () => { const message = await encryptMessage( 'Extends_send_string', From 85e44ac66260004333f223a156a9ebbfc2dbcffc Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Fri, 1 Sep 2023 15:40:06 +0800 Subject: [PATCH 19/24] Fix: The input cannot be empty, add more test --- packages/verify/src/vcVerify.spec.ts | 231 ++++++++++++++++++++++----- protocol/vc/src/digest.ts | 3 +- protocol/vc/src/utils.ts | 9 +- protocol/vc/src/vp.ts | 2 +- 4 files changed, 206 insertions(+), 39 deletions(-) diff --git a/packages/verify/src/vcVerify.spec.ts b/packages/verify/src/vcVerify.spec.ts index b3e48a6..690158d 100644 --- a/packages/verify/src/vcVerify.spec.ts +++ b/packages/verify/src/vcVerify.spec.ts @@ -6,9 +6,10 @@ import type { AnyJson, VerifiableCredential } from '@zcloak/vc/types'; import { alice } from 'test-support'; -import { initCrypto } from '@zcloak/crypto'; -import { calcRoothash } from '@zcloak/vc'; +import { base58Decode, initCrypto } from '@zcloak/crypto'; +import { calcDigest, calcRoothash, DigestPayloadV2 } from '@zcloak/vc'; +import { didVerify } from './didVerify'; import { addProof, vcVerify, vcVerifyDigest } from './vcVerify'; const document1: DidDocument = { @@ -205,6 +206,50 @@ const fullVC3: VerifiableCredential = { } }; +const multiAttesterVC: VerifiableCredential = { + '@context': ['https://www.w3.org/2018/credentials/v1'], + version: '2', + ctype: '0xc08734bbd035fe0880ba6e469e40b160601a2389d0284f6255a5f0b395d2336c', + issuanceDate: 1693299329782, + credentialSubject: { name: 'zCloak', age: 19, birthday: '2022.10.31', isUser: true }, + issuer: ['did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1'], + holder: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1', + hasher: ['Keccak256', 'Keccak256'], + digest: '0x63c8827f7d7e7446772799ccfbc0ae0a57199b679a4ea3682951ccc5c418060d', + proof: [ + { + type: 'EcdsaSecp256k1SignatureEip191', + created: 1693299329786, + verificationMethod: 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec#key-0', + proofPurpose: 'assertionMethod', + proofValue: 'zJaNmsWPNQoJ1Gt58AotgQRoBvSoEibuAL6GBKvZ8fV5gbNCrXxBZkMyZFK6fUwUoFkZi2WZNNdMicwGzTPbzdH1Ep' + }, + { + type: 'EcdsaSecp256k1SignatureEip191', + created: 1693465100632, + verificationMethod: 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0', + proofPurpose: 'assertionMethod', + proofValue: 'zMM2jFmT4AdoepwHGNfqxjTxmemRsWpX4b4dVZyB6dLdWunBnLhTwLPYqsxF3nMfP11hQM3HUSLe3tMmiYVpYtCN16' + } + ], + credentialSubjectHashes: [ + '0x1537556bb6125c231e6e76ec1457b80bf43647fdd0de3f57c2bc3189da55617b', + '0x418070cd733fcab053b572eb37f4aea5686ec3485296eb2e517b622c9b59a112', + '0xd4be7b980fc8f5d53f99b5cfcfce5633827baff0be83f16f5290190864708f4b', + '0x4ddccf029950fee195bcd67df5a46986fea14ff00d47b5d3b9d1929c623c1f32' + ], + credentialSubjectNonceMap: { + '0x28cb5b00333a3266fa3d92f3426ad4ef1d20018b44dd64913578d43438b4051a': + '0xc9444e4d54f98aaa9076736432913113f0d6491321cc575ec751208d7f17fb7f', + '0x66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090': + '0x596e356de2ec14369f127afcba1c84441c658687ea9cff7a084af5f1490b8a50', + '0x7320ea69771c4eb8c89284d19ce63eb7a788f605b1f3509c17c6f47cc06cc404': + '0x8c3e7322bb5fa1421684356dfaa32625e849334fcc34122551b5f8440573c9a2', + '0x5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2': + '0xdc2737abd5c3a6bd9f10ec1211f6d6f973ff671d38f25c1003cd17efe5b44d70' + } +}; + const vcWithExpiration: VerifiableCredential = { '@context': ['https://www.w3.org/2018/credentials/v1'], version: '0', @@ -248,6 +293,43 @@ const vcWithExpiration: VerifiableCredential = { expirationDate: 1668362768974 }; +const oldvc: VerifiableCredential = { + '@context': ['https://www.w3.org/2018/credentials/v1'], + version: '1', + ctype: '0x2e0e5ba41f58ffdccb9dba906715b9142e40929d80896310906cde392862fc9e', + issuanceDate: 1684486317809, + credentialSubject: { Name: 'niubi', DateOfBirth: 737801428, Nationality: 156, RiskLevel: 6 }, + issuer: 'did:zk:0x0F6fDe944582dd316467288b374c0A2B1bF85FA3', + holder: 'did:zk:0x266006D511d5f1D439500F03C2Ec2393c56d2F60', + hasher: ['RescuePrimeOptimized', 'Keccak256'], + digest: '0x324c0deb43b9b378d8d0fcf4be10515de988071347cd318920a610ff26093a40', + proof: [ + { + type: 'EcdsaSecp256k1SignatureEip191', + created: 1684486319027, + verificationMethod: 'did:zk:0x0F6fDe944582dd316467288b374c0A2B1bF85FA3#key-0', + proofPurpose: 'assertionMethod', + proofValue: 'zAP6hiSgycNjasu5kbVoSkEDskovCZqLRaGQxfCLo6bU18RVJrMYtuAyG9RBXJBFeTswDuvmsaUfVZ6S3zevkKzkwJ' + } + ], + credentialSubjectHashes: [ + '0xfc173d471bec19736002e054ae6e88529d2c27865db2501645512267a8472ee3', + '0x7510a76897e3c41c1b78d2bda7e627e47fa9914a4637e7fc82da1bcd7f8a7e19', + '0x6aa8322e8248cec1d4ad89f31b5f5939f21e20b92746fd21e2ad6d5dbb7e0d66', + '0x0b4d26948fea931e7fde139afda4e4bf12cd2d36fa939e268a627d51c420cd54' + ], + credentialSubjectNonceMap: { + '0x84bc66b0b72dfb3947cb8cc246812a198a1d71ad46e9b72bf8aea55efa43fa56': + '0xddbc2f87addd89883bc5d6c6fe2796e78706d57bd5de7c88ae0eeda5edbd9e5f', + '0xa3da24bd5605af8b631ef43c92e492d59030017db07b36d4efa7ebf970ae4159': + '0x4f5f413e553c2449a1aef70d9f1ecafe6ddceb3676dd3f6e51dd16158fafdacf', + '0x747e81e49d695483a90dc5193bfbce117649f242c629937926ce312ad8586561': + '0xcb82110b48c35a914d632684b0432210fbe7afd65083059779c7ab141122e62a', + '0x4c106f339d6f5e9b85bdf2b211fb6999e231aa62d66af41d6e8147be7a8ba305': + '0x8bda7aead48651accfcae1a8f81c90a0a390ca4982c275202d65035505c7f75b' + } +}; + describe('vc verify', (): void => { beforeAll(async (): Promise => { await initCrypto(); @@ -357,48 +439,125 @@ describe('vc verify', (): void => { ) ).toBe(true); }); - }); - describe('verify vc with digest', (): void => { - it('vc verify without expiration', async (): Promise => { + it('vc verify old vc', async (): Promise => { + expect(await vcVerify(oldvc)).toBe(true); + }); + + describe('verify vc with digest', (): void => { + it('vc verify without expiration', async (): Promise => { + expect( + await vcVerifyDigest( + { + ...fullVC, + credentialSubject: calcRoothash( + fullVC.credentialSubject as AnyJson, + fullVC.hasher[0], + fullVC.version, + fullVC.credentialSubjectNonceMap || {} + ).rootHash, + credentialSubjectNonceMap: {}, + credentialSubjectHashes: [] + }, + document1 + ) + ).toBe(true); + }); + }); + + it('vc verify with version 2, without keccak256, add Proof', async (): Promise => { + const addProofVC = await addProof(alice, fullVC2); + + expect(addProofVC.issuer).toEqual([ + 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', + 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1' + ]); + expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); + expect(await vcVerify(addProofVC)).toBe(true); expect( - await vcVerifyDigest( - { - ...fullVC, - credentialSubject: calcRoothash( - fullVC.credentialSubject as AnyJson, - fullVC.hasher[0], - fullVC.version, - fullVC.credentialSubjectNonceMap || {} - ).rootHash, - credentialSubjectNonceMap: {}, - credentialSubjectHashes: [] - }, - document1 + await didVerify( + addProofVC.digest, + base58Decode(addProofVC.proof[0].proofValue), + addProofVC.proof[0].type, + addProofVC.proof[0].verificationMethod + ) + ).toBe(true); + expect( + await didVerify( + addProofVC.digest, + base58Decode(addProofVC.proof[1].proofValue), + addProofVC.proof[1].type, + addProofVC.proof[1].verificationMethod ) ).toBe(true); }); - }); - it('vc verify with version 2, without keccak256, add Proof', async (): Promise => { - const addProofVC = await addProof(alice, fullVC2); + it('vc verify with version 2, with keccak256, add Proof', async (): Promise => { + const addProofVC = await addProof(alice, fullVC3); - expect(addProofVC.issuer).toEqual([ - 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', - 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1' - ]); - expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); - expect(await vcVerify(addProofVC)).toBe(true); - }); + expect(addProofVC.issuer).toEqual([ + 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', + 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1' + ]); + expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); + expect(await vcVerify(addProofVC)).toBe(true); + expect( + await didVerify( + addProofVC.digest, + base58Decode(addProofVC.proof[0].proofValue), + addProofVC.proof[0].type, + addProofVC.proof[0].verificationMethod + ) + ).toBe(true); + expect( + await didVerify( + addProofVC.digest, + base58Decode(addProofVC.proof[1].proofValue), + addProofVC.proof[1].type, + addProofVC.proof[1].verificationMethod + ) + ).toBe(true); + }); - it('vc verify with version 2, with keccak256, add Proof', async (): Promise => { - const addProofVC = await addProof(alice, fullVC3); + it('vc verify with version 2, with steps', async (): Promise => { + expect(await vcVerify(multiAttesterVC)).toBe(true); + // console.log(await vcVerify(multiAttesterVC)); + const rootHash = calcRoothash( + multiAttesterVC.credentialSubject as AnyJson, + multiAttesterVC.hasher[0], + '2', + multiAttesterVC.credentialSubjectNonceMap + ); + const payload: DigestPayloadV2 = { + rootHash: rootHash.rootHash, + holder: multiAttesterVC.holder, + expirationDate: multiAttesterVC.expirationDate, + issuanceDate: multiAttesterVC.issuanceDate, + ctype: multiAttesterVC.ctype + }; - expect(addProofVC.issuer).toEqual([ - 'did:zk:0x57E7b664aaa7C895878DdCa5790526B9659350Ec', - 'did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1' - ]); - expect(addProofVC.proof[1].verificationMethod).toEqual('did:zk:0x11f8b77F34FCF14B7095BF5228Ac0606324E82D1#key-0'); - expect(await vcVerify(addProofVC)).toBe(true); + // console.log(payload); + const digest = calcDigest(multiAttesterVC.version, payload, multiAttesterVC.hasher[1]); + + expect(digest.digest).toEqual(multiAttesterVC.digest); + + expect( + await didVerify( + digest.digest, + base58Decode(multiAttesterVC.proof[0].proofValue), + multiAttesterVC.proof[0].type, + multiAttesterVC.proof[0].verificationMethod + ) + ).toBe(true); + + expect( + await didVerify( + digest.digest, + base58Decode(multiAttesterVC.proof[1].proofValue), + multiAttesterVC.proof[1].type, + multiAttesterVC.proof[1].verificationMethod + ) + ).toBe(true); + }); }); }); diff --git a/protocol/vc/src/digest.ts b/protocol/vc/src/digest.ts index a8bb54b..242b939 100644 --- a/protocol/vc/src/digest.ts +++ b/protocol/vc/src/digest.ts @@ -102,7 +102,8 @@ export function calcDigest( ); } else { const check: never = version; - throw new Error(`VC Version invalid, the vcVersionCheckResult is ${check}`); + + throw new Error(`VC Version invalid, the vcVersionCheckResult is ${check}`); } return { diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index c746954..7fade2f 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -10,7 +10,7 @@ import type { VerifiablePresentationVersion } from './types'; -import { numberToU8a, stringToU8a, u8aConcat } from '@polkadot/util'; +import { assert, numberToU8a, stringToU8a, u8aConcat } from '@polkadot/util'; import Web3 from 'web3'; import { rlpEncode as rlpEncodeFn } from '@zcloak/crypto'; @@ -32,6 +32,9 @@ export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexString { switch (typeof input) { case 'string': + // Make sure the input is not empty + assert(input.length !== 0, 'The string input is empty!'); + return web3.utils.soliditySha3({ type: 'string', value: input }); case 'number': if (_isDecimalNumber(input)) { @@ -43,10 +46,14 @@ export function encodeAsSol(input: NativeType | NativeTypeWithOutNull[]): HexStr return web3.utils.soliditySha3({ type: 'bool', value: input }); case 'object': if (Array.isArray(input) && typeof input[0] === 'string') { + assert(input.length !== 0, 'The string array input is empty!'); + const encodedParams = web3.eth.abi.encodeParameters(['string[]'], [input]); return web3.utils.keccak256(encodedParams); } else if (Array.isArray(input) && typeof input[0] === 'number') { + assert(input.length !== 0, 'The number array input is empty!'); + return web3.utils.soliditySha3({ type: 'int256[]', value: input }); } else throw new Error(`This object can not be encoded ${input}`); case 'undefined': diff --git a/protocol/vc/src/vp.ts b/protocol/vc/src/vp.ts index 333447e..b4f360d 100644 --- a/protocol/vc/src/vp.ts +++ b/protocol/vc/src/vp.ts @@ -51,7 +51,7 @@ function transformVC( let encode: HexString; if (vc.version === '2') { - if (vc.hasher[0] == 'Keccak256') { + if (vc.hasher[0] === 'Keccak256') { encode = encodeAsSol(subject[key]); } else { encode = u8aToHex(rlpEncode(subject[key], vc.hasher[0])); From d3cb0782145406b51c742ca42d2d8a063bc185ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BC=9A?= <> Date: Mon, 4 Sep 2023 12:08:47 +0800 Subject: [PATCH 20/24] add web3 lib --- protocol/vc/package.json | 4 +- protocol/vc/src/credential/vc.ts | 2 + protocol/vc/src/vp.spec.ts | 9 +- yarn.lock | 628 ++++++++++++++++++++++++++++++- 4 files changed, 635 insertions(+), 8 deletions(-) diff --git a/protocol/vc/package.json b/protocol/vc/package.json index 437eeaf..d25f6c2 100644 --- a/protocol/vc/package.json +++ b/protocol/vc/package.json @@ -24,7 +24,9 @@ "@zcloak/crypto": "workspace:^", "@zcloak/ctype": "workspace:^", "@zcloak/did": "workspace:^", - "merkletreejs": "^0.3.9" + "@zcloak/did-resolver": "workspace:^", + "merkletreejs": "^0.3.9", + "web3": "^4.1.1" }, "devDependencies": { "@zcloak/did-resolver": "workspace:^" diff --git a/protocol/vc/src/credential/vc.ts b/protocol/vc/src/credential/vc.ts index 725f82e..5bab232 100644 --- a/protocol/vc/src/credential/vc.ts +++ b/protocol/vc/src/credential/vc.ts @@ -79,6 +79,8 @@ export class VerifiableCredentialBuilder { this.raw = raw; } + public async build(issuer: Did, isPublic?: boolean): Promise>; + /** * Build to [[PublicVerifiableCredential]] */ diff --git a/protocol/vc/src/vp.spec.ts b/protocol/vc/src/vp.spec.ts index 9f62a57..fe543ed 100644 --- a/protocol/vc/src/vp.spec.ts +++ b/protocol/vc/src/vp.spec.ts @@ -260,13 +260,15 @@ describe('VerifiablePresentation', (): void => { verifiableCredential: [ { ...vc1, - credentialSubject: calcRoothash(CONTENTS2, vc1.hasher[0], vc1.version, vc1.credentialSubjectNonceMap).rootHash, + credentialSubject: calcRoothash(CONTENTS2, vc1.hasher[0], vc1.version, vc1.credentialSubjectNonceMap) + .rootHash, credentialSubjectHashes: [], credentialSubjectNonceMap: {} }, { ...vc2, - credentialSubject: calcRoothash(CONTENTS2, vc2.hasher[0], vc2.version, vc2.credentialSubjectNonceMap).rootHash, + credentialSubject: calcRoothash(CONTENTS2, vc2.hasher[0], vc2.version, vc2.credentialSubjectNonceMap) + .rootHash, credentialSubjectHashes: [], credentialSubjectNonceMap: {} } @@ -362,7 +364,8 @@ describe('VerifiablePresentation', (): void => { verifiableCredential: [ { ...vc1, - credentialSubject: calcRoothash(CONTENTS1, vc1.hasher[0], vc1.version, vc1.credentialSubjectNonceMap).rootHash, + credentialSubject: calcRoothash(CONTENTS1, vc1.hasher[0], vc1.version, vc1.credentialSubjectNonceMap) + .rootHash, credentialSubjectHashes: [], credentialSubjectNonceMap: {} }, diff --git a/yarn.lock b/yarn.lock index 045f9ac..d9885fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,13 @@ __metadata: languageName: node linkType: hard +"@adraffy/ens-normalize@npm:^1.8.8": + version: 1.9.4 + resolution: "@adraffy/ens-normalize@npm:1.9.4" + checksum: f8e00455f9c81b02b051715fbf38f6d4975ad1ca4b94e6773fac607ec4974a63d5a30846bd6e61d447e3890f606dfdc3b3a64468a28d38f1f5647756e28d88ee + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.2.1 resolution: "@ampproject/remapping@npm:2.2.1" @@ -1799,6 +1806,228 @@ __metadata: languageName: node linkType: hard +"@ethereumjs/rlp@npm:^4.0.1": + version: 4.0.1 + resolution: "@ethereumjs/rlp@npm:4.0.1" + bin: + rlp: bin/rlp + checksum: 641fd88603d38cc891b9596e70cccd0937dcecaa5753a53a590cad09163ef6e0808bd032f03efbb38b0cbe8c34a0b03b526ef9e478a5e3e79dc0a23379e398ab + languageName: node + linkType: hard + +"@ethersproject/abi@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abi@npm:5.7.0" + dependencies: + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: d280355626314f5acb1a3c2e81328d27ddafd0ac9fdeeba496de26a6a53c39102076ebd7d74c38362d2a26e5fcc911759d64c4a446e10cc01216eef6220288d6 + languageName: node + linkType: hard + +"@ethersproject/abstract-provider@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-provider@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/networks": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + checksum: dd46b5444090a32afa967f507091d04ea9e65d555a24744b728e134449e50e5c60419b1c03720eb934d556ab7fe30b8790f98cb4a8f2d0dc2e188c6966bf147f + languageName: node + linkType: hard + +"@ethersproject/abstract-signer@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-signer@npm:5.7.0" + dependencies: + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + checksum: b97eda8abf6584efe2628456b8933fef9e212ba0e2cdc86e84b303bdc5401f88f9b785c9f123b8fb961dbc809dbe4a0f710ee63c67b79b7f96341d28d9650ee4 + languageName: node + linkType: hard + +"@ethersproject/address@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/address@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + checksum: 40d3fc40e075709fef5c986eece2ce21a81803d6fd8c009ae8866de1e50522fa76788771cdd0bc2fb1efc00710caee9c7501a9853844eef8d7a80e7c257414e3 + languageName: node + linkType: hard + +"@ethersproject/base64@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/base64@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + checksum: 920573265a668c4d356b8aa031d2be00901ff16d8d74412a5d4bf5a191af03fae83307e5f9c398ad1e29f9de80bac867b05aa23b942fbc02ea574372e8ffa6dd + languageName: node + linkType: hard + +"@ethersproject/bignumber@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bignumber@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + checksum: 666c8155b98881ac220c15152c24d0e8036c814d036b4105f0d60252777d9582d5d539a34ac41d16d90e28ac89e4816db7478ef2b8e27f793156dcbf4d8a5d4e + languageName: node + linkType: hard + +"@ethersproject/bytes@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bytes@npm:5.7.0" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 65d987c3e7057fcab2407c84dc79341b2e633364532262c635333bf6bb85bf244e2515ab5b582c06407f75b58fe90433b77af9161fa26819ca99fee9026743bc + languageName: node + linkType: hard + +"@ethersproject/constants@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/constants@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + checksum: 1e64c19be14deb69f0c1532c62b24d6d3e8a99df7412004ade36dd5d257a763ff06da9b8729172b7b86aa3d24e59202280d5df3a63dd9860f91109f6fa2356d9 + languageName: node + linkType: hard + +"@ethersproject/hash@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/hash@npm:5.7.0" + dependencies: + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: a4ea4262760273d657c677447fab9668204061de7f376b27996945efd7926ff96fa7b4227a80b60c626e3f76bee39bc948d0e91f8614af9bc7b4b4a639be4c0b + languageName: node + linkType: hard + +"@ethersproject/keccak256@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/keccak256@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + js-sha3: "npm:0.8.0" + checksum: a0cace980f416a5395c3b9fed0a87e73fae6ebb1bf49e25b099670f75ea779d8e458e853bd7f3624ef08b2c098cc5fb7c13952dd0ed790ccf5f1bb879213f0ce + languageName: node + linkType: hard + +"@ethersproject/logger@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/logger@npm:5.7.0" + checksum: 41ef0d49aad3677c36d0e79a6e2346ec13cf378cc6a042cfbc0d76aca6bce0b9f7362cb3fa4d60572e2e24df12edc378e5d8bbf1e33f8234c142e09552c87f8a + languageName: node + linkType: hard + +"@ethersproject/networks@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/networks@npm:5.7.1" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 5495b6a83a896366e8268da5e790898c5f7812fa6c395d3dffb89c2534a46e7cebaec07c6ae526f342843b482eb0e028013cea7f4e7bb8a266c8d6e22d114bda + languageName: node + linkType: hard + +"@ethersproject/properties@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/properties@npm:5.7.0" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 776f2d63f4b0ad04934d34db1b35c974f77e8beaec124d8fd267794fcdc0845c6a57ad8398b0637144a1bb57e5e2552bdbb76f9919c3919ec58e9bf2e5d008c3 + languageName: node + linkType: hard + +"@ethersproject/rlp@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/rlp@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 41ff1717ee483131747ee3b625a7b78df981d221421e824b818dd598139571598e1cde7a00f40a927d08e8352537f7411685eaa9a004bcb78315b4beb9a16c33 + languageName: node + linkType: hard + +"@ethersproject/signing-key@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/signing-key@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + elliptic: "npm:6.5.4" + hash.js: "npm:1.1.7" + checksum: 53bf8187e47537f3715a9c50836b10ecd05feb7448cfe865b44b6e2776eb14a716accdca4b60465cdf814fbfe06a7d3c405448d4c448fe96c9d89e5dadddbaaf + languageName: node + linkType: hard + +"@ethersproject/strings@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/strings@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 9f6e514c6bbbb9ecd7f567a92884c6ed5eb5d14bc60ac91e04bb2ad74e2bab52cb94b14ba875a4495a0f0d2a76babd842d226442e71537ad83606795691f7f16 + languageName: node + linkType: hard + +"@ethersproject/transactions@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/transactions@npm:5.7.0" + dependencies: + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + checksum: 28ed8fefaad0c5689518393eed5bd65abd7d202ba4d0182f06cf21dddecff51738ae9164aac1f86ff7eac634483dd4265a7d21d81cc0fd478724cac326575e44 + languageName: node + linkType: hard + +"@ethersproject/web@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/web@npm:5.7.1" + dependencies: + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 916275c181114ddadaa063d83d1b34817f0fdf996f0b79ddc6204c281883119c095469592babacba4386ec7fa0e1c1ab689d0a56ca267c342fb8f36dc8a7ebff + languageName: node + linkType: hard + "@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -2319,6 +2548,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:1.1.0, @noble/curves@npm:~1.1.0": + version: 1.1.0 + resolution: "@noble/curves@npm:1.1.0" + dependencies: + "@noble/hashes": "npm:1.3.1" + checksum: 87153bd4ec6cb58cfeba223933c7859d250613ba382421bd7d244280ef4ce08672f790750cd900f27d1dd09a650b3f736c08133fdd5c196587b8c461f86098be + languageName: node + linkType: hard + "@noble/hashes@npm:1.1.2": version: 1.1.2 resolution: "@noble/hashes@npm:1.1.2" @@ -2333,6 +2571,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.3.1": + version: 1.3.1 + resolution: "@noble/hashes@npm:1.3.1" + checksum: 69a6d561379bab638dd4608a6780c1f1ac3385505d7a1117040eb672d2633877bd6b06f45145ff915fe9196668c39863aee192f2cdfa546c013f4223e30bb108 + languageName: node + linkType: hard + "@noble/hashes@npm:^1.2.0": version: 1.3.0 resolution: "@noble/hashes@npm:1.3.0" @@ -2340,6 +2585,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:~1.3.0, @noble/hashes@npm:~1.3.1": + version: 1.3.2 + resolution: "@noble/hashes@npm:1.3.2" + checksum: 1743313a088b484a7c37bcf21f7a69a9740bc32f9fa6ee15720e0f9a6e01e7ecad91bd75a37c17fe613269c1dcbdc1b8797e3de5ec52dd4488229089b0819bdd + languageName: node + linkType: hard + "@noble/secp256k1@npm:1.7.1, @noble/secp256k1@npm:^1.7.1": version: 1.7.1 resolution: "@noble/secp256k1@npm:1.7.1" @@ -3001,6 +3253,34 @@ __metadata: languageName: node linkType: hard +"@scure/base@npm:~1.1.0": + version: 1.1.3 + resolution: "@scure/base@npm:1.1.3" + checksum: 6863158a2a8ed76da6f6bfdb028a9d55e4d277afc317165e861c9e1500403200f3e15db455b711949b7da3a0cd53ae05f8f0a038a8221c0200d4cc190e75aad3 + languageName: node + linkType: hard + +"@scure/bip32@npm:1.3.1": + version: 1.3.1 + resolution: "@scure/bip32@npm:1.3.1" + dependencies: + "@noble/curves": "npm:~1.1.0" + "@noble/hashes": "npm:~1.3.1" + "@scure/base": "npm:~1.1.0" + checksum: 37816766f4f07d6b03b5d2017c9bb2fb7fbe2e303ef07c85f8262319fd1a0b3fa0b9085720dfdb07661680f85269ce62e3f7c814d7283c925a0674eb0f594007 + languageName: node + linkType: hard + +"@scure/bip39@npm:1.2.1": + version: 1.2.1 + resolution: "@scure/bip39@npm:1.2.1" + dependencies: + "@noble/hashes": "npm:~1.3.0" + "@scure/base": "npm:~1.1.0" + checksum: a4a1145249a93d4a945581cb29f80b8747e675acb1e5c10e52c550f6686115aab692718f1a87b1fe84d45297cb3861e386d288fa525a4c69b8d2a393343433d5 + languageName: node + linkType: hard + "@settlemint/merkle-tools@npm:^1.0.7": version: 1.0.7 resolution: "@settlemint/merkle-tools@npm:1.0.7" @@ -3553,6 +3833,15 @@ __metadata: languageName: node linkType: hard +"@types/ws@npm:8.5.3": + version: 8.5.3 + resolution: "@types/ws@npm:8.5.3" + dependencies: + "@types/node": "npm:*" + checksum: 079fdee163d7cb86d59e5379d2ea6511ba6a46210af420320a4bd52b04b06f86d2c3acc89289f5eae16c8815a562faada8c717fd55a4888c8a5a5f8ce1420112 + languageName: node + linkType: hard + "@types/ws@npm:^8.5.1": version: 8.5.4 resolution: "@types/ws@npm:8.5.4" @@ -4204,6 +4493,7 @@ __metadata: "@zcloak/did": "workspace:^" "@zcloak/did-resolver": "workspace:^" merkletreejs: "npm:^0.3.9" + web3: "npm:^4.1.1" languageName: unknown linkType: soft @@ -6072,6 +6362,15 @@ __metadata: languageName: node linkType: hard +"crc-32@npm:^1.2.2": + version: 1.2.2 + resolution: "crc-32@npm:1.2.2" + bin: + crc32: bin/crc32.njs + checksum: 3412e2f46a8ef7616a1bcd3e656cd075549ae125ab3a965e874d287a5dfda1114b3cc13891007f00ddeef74e1f19a0266fa48871217ac1b3f53f7b5cf1167f70 + languageName: node + linkType: hard + "create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": version: 1.2.0 resolution: "create-hash@npm:1.2.0" @@ -6829,7 +7128,7 @@ __metadata: languageName: node linkType: hard -"elliptic@npm:^6.5.2, elliptic@npm:^6.5.4": +"elliptic@npm:6.5.4, elliptic@npm:^6.5.2, elliptic@npm:^6.5.4": version: 6.5.4 resolution: "elliptic@npm:6.5.4" dependencies: @@ -7617,6 +7916,18 @@ __metadata: languageName: node linkType: hard +"ethereum-cryptography@npm:^2.0.0": + version: 2.1.2 + resolution: "ethereum-cryptography@npm:2.1.2" + dependencies: + "@noble/curves": "npm:1.1.0" + "@noble/hashes": "npm:1.3.1" + "@scure/bip32": "npm:1.3.1" + "@scure/bip39": "npm:1.2.1" + checksum: 689ec9d4f686b628d69895a70b382fe17bd0d46cf52b6538e6fabe64a6bc6e96f1ebea9b491892ed86331e90e198c3ee7917314c02fcdd504e856c1e1fc576b4 + languageName: node + linkType: hard + "ethereumjs-abi@npm:^0.6.8": version: 0.6.8 resolution: "ethereumjs-abi@npm:0.6.8" @@ -8906,7 +9217,7 @@ __metadata: languageName: node linkType: hard -"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": +"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": version: 1.1.7 resolution: "hash.js@npm:1.1.7" dependencies: @@ -9304,7 +9615,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -9437,6 +9748,15 @@ __metadata: languageName: node linkType: hard +"is-generator-function@npm:^1.0.7": + version: 1.0.10 + resolution: "is-generator-function@npm:1.0.10" + dependencies: + has-tostringtag: "npm:^1.0.0" + checksum: 5ddb05cd61c043348eaee42bd003d52fa2307827dd1690e6cdb6b205a6b62750f4e41d34d0a6a84793dda6dc6b147405e0ba349e631996beea00631302e36294 + languageName: node + linkType: hard + "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -9675,6 +9995,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.3": + version: 1.1.12 + resolution: "is-typed-array@npm:1.1.12" + dependencies: + which-typed-array: "npm:^1.1.11" + checksum: bbc1e04914affd083808bb10a49b30e59106367560b5a20a696f277f47cd1a96263eda2bc5193811f8cb5677e247865bd8f77863864b2db687d956f059509e5d + languageName: node + linkType: hard + "is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -9780,6 +10109,15 @@ __metadata: languageName: node linkType: hard +"isomorphic-ws@npm:^5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: 4c07f7c2fc49e6157adaf8c1563ec135796c66730f119243fec5e0ddb904ab3a9089aefe6a8f70fa6d349ad9585c4b9a5dbdb3147671825fba7b4a5322f9fc99 + languageName: node + linkType: hard + "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -10327,7 +10665,7 @@ __metadata: languageName: node linkType: hard -"js-sha3@npm:^0.8.0": +"js-sha3@npm:0.8.0, js-sha3@npm:^0.8.0": version: 0.8.0 resolution: "js-sha3@npm:0.8.0" checksum: f7ae73fb14080ea094e95c7401eea57468bde1df93441052b3e9823af1f7a61e814b0f61610212249b8499adedbe92199cbb467cfca799b5003d17701427c994 @@ -14869,6 +15207,19 @@ __metadata: languageName: node linkType: hard +"util@npm:^0.12.5": + version: 0.12.5 + resolution: "util@npm:0.12.5" + dependencies: + inherits: "npm:^2.0.3" + is-arguments: "npm:^1.0.4" + is-generator-function: "npm:^1.0.7" + is-typed-array: "npm:^1.1.3" + which-typed-array: "npm:^1.1.2" + checksum: b64a6d3e8ab48037b0f3fb38b6df96e180ab8c430d49386be8444fa2402f26450239bc1fd13aa29c02f3165be380f01aaf88eadb284e77f14df63664a5536e92 + languageName: node + linkType: hard + "utils-merge@npm:1.0.1": version: 1.0.1 resolution: "utils-merge@npm:1.0.1" @@ -14993,6 +15344,206 @@ __metadata: languageName: node linkType: hard +"web3-core@npm:^4.1.1": + version: 4.1.1 + resolution: "web3-core@npm:4.1.1" + dependencies: + web3-errors: "npm:^1.1.1" + web3-eth-iban: "npm:^4.0.5" + web3-providers-http: "npm:^4.0.5" + web3-providers-ipc: "npm:^4.0.5" + web3-providers-ws: "npm:^4.0.5" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + dependenciesMeta: + web3-providers-ipc: + optional: true + checksum: 31891b5139ac1780da2591064c8d945cd7d94bd802df24e3d70cf4da08f031f60e54273e5890033ca7d5182d2178a67d8106507d00b25acf6757f98674ccf2d1 + languageName: node + linkType: hard + +"web3-errors@npm:^1.1.1": + version: 1.1.1 + resolution: "web3-errors@npm:1.1.1" + dependencies: + web3-types: "npm:^1.1.1" + checksum: 4bfa993aa4b452ef346aff2d946261cfa0af6741aa5a9f3bbf96fa8f6d857a4c6113dbae56292d5a74bed10e7c08aa56bd0dfd4e6bca30b5c29da201b9ceae5a + languageName: node + linkType: hard + +"web3-eth-abi@npm:^4.1.1": + version: 4.1.1 + resolution: "web3-eth-abi@npm:4.1.1" + dependencies: + "@ethersproject/abi": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + checksum: 09fdb6ebcfd292cc046014e4ae22aa166dba8c132730c30d4f5eae4fb5b3674f5063c88b4e8b864c88b06b8eda864188636ff72f5de230eb75e1954e49f4f88f + languageName: node + linkType: hard + +"web3-eth-accounts@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-accounts@npm:4.0.5" + dependencies: + "@ethereumjs/rlp": "npm:^4.0.1" + crc-32: "npm:^1.2.2" + ethereum-cryptography: "npm:^2.0.0" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: bd0c1b4420fa477c8c6eba033cf0fb73dc04633ddf45e8f18850bc470bdcb3a6788928922735001b71546531b1ef67c75d15fc8428740b0c23aeea60eb1f5209 + languageName: node + linkType: hard + +"web3-eth-contract@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-contract@npm:4.0.5" + dependencies: + web3-core: "npm:^4.1.1" + web3-errors: "npm:^1.1.1" + web3-eth: "npm:^4.1.1" + web3-eth-abi: "npm:^4.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: be48c33941aee1f28b46154d578ca5f199d227bda2615e6e5751bc71dff19308e0ca9fe0ca0c8edd2b05ab6b5bd832c9a18c779bd69c468157b0658fcf90afb8 + languageName: node + linkType: hard + +"web3-eth-ens@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-ens@npm:4.0.5" + dependencies: + "@adraffy/ens-normalize": "npm:^1.8.8" + web3-core: "npm:^4.1.1" + web3-errors: "npm:^1.1.1" + web3-eth: "npm:^4.1.1" + web3-eth-contract: "npm:^4.0.5" + web3-net: "npm:^4.0.5" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: 6aebbd8c67bf3537168ffd219cccc28f8fd3944538ed0076aa7f8c09d252d34879635eaeb0720f07fd7315150c509bfbd8a382ba9f67f4581131374a81737c08 + languageName: node + linkType: hard + +"web3-eth-iban@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-iban@npm:4.0.5" + dependencies: + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: 829503f1e94b69243fb07bd9c074f640115dad6156d9f6a95d78cfe22ea529b23de6570f16f2c8e421ea05f16cab6ddcc8d4bce09f170e5da71b580a2af6432b + languageName: node + linkType: hard + +"web3-eth-personal@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-personal@npm:4.0.5" + dependencies: + web3-core: "npm:^4.1.1" + web3-eth: "npm:^4.1.1" + web3-rpc-methods: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: b04e50022b3bdf2291115fdfa759d2d819c0c07a2c53f98e362e71829eb9d8766192e94ea31cc47db3c3480671d83d7b36e1cc7b5b199d04c3c4b5c05816681d + languageName: node + linkType: hard + +"web3-eth@npm:^4.1.1": + version: 4.1.1 + resolution: "web3-eth@npm:4.1.1" + dependencies: + setimmediate: "npm:^1.0.5" + web3-core: "npm:^4.1.1" + web3-errors: "npm:^1.1.1" + web3-eth-abi: "npm:^4.1.1" + web3-eth-accounts: "npm:^4.0.5" + web3-net: "npm:^4.0.5" + web3-providers-ws: "npm:^4.0.5" + web3-rpc-methods: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: 78911ecc7e667225b4442e0251ef7acb30ff7059a3c20f2a3187b0218bab8430f42f72a8b5abf930b768190fb0b3a254c922812662974c1e04b911a85cb9c2d5 + languageName: node + linkType: hard + +"web3-net@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-net@npm:4.0.5" + dependencies: + web3-core: "npm:^4.1.1" + web3-rpc-methods: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + checksum: a0bac3119c880ea0b7a4a10e10cc88a25ceed85be77415567feac891ae10b3f443affb4a388817b1074d8924c5290e71bc7ebe061d4805220451d413ed6ed527 + languageName: node + linkType: hard + +"web3-providers-http@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-providers-http@npm:4.0.5" + dependencies: + cross-fetch: "npm:^3.1.5" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + checksum: f46abd42e423b8e2eb8aa5be46238388ef008443c9598f44db14038df604acab06906f8199c96aaa122818e66525f9ec3f5ec7b4c757cbbe131431110ec9d331 + languageName: node + linkType: hard + +"web3-providers-ipc@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-providers-ipc@npm:4.0.5" + dependencies: + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + checksum: 9dc1859754bce6c460861ef3d226154ae3360abf2c0380f39de495b9455ec7eef76a6ab277bb72b196a4eff70d49f55e922c6786759a0d0d3364cfa05384efe7 + languageName: node + linkType: hard + +"web3-providers-ws@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-providers-ws@npm:4.0.5" + dependencies: + "@types/ws": "npm:8.5.3" + isomorphic-ws: "npm:^5.0.0" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + ws: "npm:^8.8.1" + checksum: 15786a7b67b66affb2cac633b1bf0f788a381b84f58555d138ab2a1b0567e5227d830ba873f57e48622015ba1a6089d4fa8f23e46e3f8a5788bc8f558c104dec + languageName: node + linkType: hard + +"web3-rpc-methods@npm:^1.1.1": + version: 1.1.1 + resolution: "web3-rpc-methods@npm:1.1.1" + dependencies: + web3-core: "npm:^4.1.1" + web3-types: "npm:^1.1.1" + web3-validator: "npm:^2.0.1" + checksum: da096bed37e08c123a95882a7d026b2ea30da794d38145cf0a887dbf657d8dc9d52c93af828333d5b0f40ec0889373166d06ac2e4e85282ebc2693692ea5b77b + languageName: node + linkType: hard + +"web3-types@npm:^1.1.1": + version: 1.1.1 + resolution: "web3-types@npm:1.1.1" + checksum: 132cf6b684941003623ea76e81ad70478f8ec014e56e4d44a59aa0b903a76bdc771c34086427029a6ef57ecce6112c8a5fdc86fe0961c33ce663d1dd1cb5841b + languageName: node + linkType: hard + "web3-utils@npm:^1.3.4": version: 1.9.0 resolution: "web3-utils@npm:1.9.0" @@ -15008,6 +15559,55 @@ __metadata: languageName: node linkType: hard +"web3-utils@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-utils@npm:4.0.5" + dependencies: + ethereum-cryptography: "npm:^2.0.0" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-validator: "npm:^2.0.1" + checksum: 69bb8b3eb60b430559fa6c6f56a166433fc30584514b82d1290d41df2b95b30eefd056bac1e4ca776cd65636cd34bfd3e07bf1a1ab540c2064c6d78f6886803e + languageName: node + linkType: hard + +"web3-validator@npm:^2.0.1": + version: 2.0.1 + resolution: "web3-validator@npm:2.0.1" + dependencies: + ethereum-cryptography: "npm:^2.0.0" + util: "npm:^0.12.5" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + zod: "npm:^3.21.4" + checksum: 008d64498533f90fa7ceb75007f23516a4b975934ed24f35c66be71b6e7e2aebfd079e22a68e1436ca45ddfb690e8afcda016da9cb98520d36ff9f3276f63323 + languageName: node + linkType: hard + +"web3@npm:^4.1.1": + version: 4.1.1 + resolution: "web3@npm:4.1.1" + dependencies: + web3-core: "npm:^4.1.1" + web3-errors: "npm:^1.1.1" + web3-eth: "npm:^4.1.1" + web3-eth-abi: "npm:^4.1.1" + web3-eth-accounts: "npm:^4.0.5" + web3-eth-contract: "npm:^4.0.5" + web3-eth-ens: "npm:^4.0.5" + web3-eth-iban: "npm:^4.0.5" + web3-eth-personal: "npm:^4.0.5" + web3-net: "npm:^4.0.5" + web3-providers-http: "npm:^4.0.5" + web3-providers-ws: "npm:^4.0.5" + web3-rpc-methods: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: 907e02d4ae666b97f3db16e2f4500d5b98e50bc82e789dff7802878e0d1f46ef571aaf5205e28522fc22073f714f7465b1ea7c9ee8d8e40ceced246dec074252 + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -15293,6 +15893,19 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2": + version: 1.1.11 + resolution: "which-typed-array@npm:1.1.11" + dependencies: + available-typed-arrays: "npm:^1.0.5" + call-bind: "npm:^1.0.2" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.0" + checksum: b1ba153cb37bb901c64012e256666d5a3e9ad915a1e0f12fd0c8d128f5158a88a85520d28f432ea658393f66f3520684d3c315ceedac8d348a4af067663efaaa + languageName: node + linkType: hard + "which-typed-array@npm:^1.1.9": version: 1.1.9 resolution: "which-typed-array@npm:1.1.9" @@ -15612,3 +16225,10 @@ __metadata: checksum: 63eceacd482622afd71290541a9823a0e5eed88a6b58a5d136a5fb8151ed4d1549c80f28d74d4ad351582f9890635d49e6cf70f8d3cc64948640f839f6a37c70 languageName: node linkType: hard + +"zod@npm:^3.21.4": + version: 3.22.2 + resolution: "zod@npm:3.22.2" + checksum: b6158a49b57cb2f6454789005f9989db4df0dbe213186d3356be56c8ea01a5bc8c9c9af7795ef2156539526bf350e0fd351b0ecb8e1bcff5a6511b1b40293ed0 + languageName: node + linkType: hard From 0dfbf95047760c32acdc2baadf2aa3681f50a8d5 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Mon, 4 Sep 2023 13:50:57 +0800 Subject: [PATCH 21/24] Fix: turn web3 Local Mode, new yarn add --- package.json | 3 + protocol/vc/src/credential/index.spec.ts | 48 ++ protocol/vc/src/utils.ts | 3 +- yarn.lock | 628 ++++++++++++++++++++++- 4 files changed, 677 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4d5c7b9..065f8f8 100644 --- a/package.json +++ b/package.json @@ -43,5 +43,8 @@ }, "resolutions": { "typescript": "^5.0.4" + }, + "dependencies": { + "web3": "^4.1.1" } } diff --git a/protocol/vc/src/credential/index.spec.ts b/protocol/vc/src/credential/index.spec.ts index 36f1386..2ea9a0b 100644 --- a/protocol/vc/src/credential/index.spec.ts +++ b/protocol/vc/src/credential/index.spec.ts @@ -20,6 +20,12 @@ const CONTENTS = { birthday: '2022.10.31', isUser: true }; +const CONTENTS2 = { + name: 'zCloak', + age: -120, + birthday: '2022.10.31', + isUser: true +}; describe('VerifiableCredential', (): void => { let holder: Did; @@ -215,6 +221,48 @@ describe('VerifiableCredential', (): void => { ] }); }); + it('build VC from RawCredential negtive number', async (): Promise => { + const raw = new Raw({ + contents: CONTENTS2, + owner: holder.id, + ctype, + hashType: 'Keccak256' + }); + + const now = Date.now(); + + const vcBuilder = VerifiableCredentialBuilder.fromRawCredential(raw.toRawCredential('Keccak256'), ctype) + .setExpirationDate(null) + .setIssuanceDate(now); + + expect(vcBuilder).toMatchObject({ + raw, + '@context': DEFAULT_CONTEXT, + issuanceDate: now, + digestHashType: 'Keccak256' + }); + + const vc = await vcBuilder.build(issuer, true); + + expect(isPrivateVC(vc)).toBe(false); + + expect(vc).toMatchObject({ + '@context': DEFAULT_CONTEXT, + version: DEFAULT_VC_VERSION, + ctype: ctype.$id, + issuanceDate: now, + credentialSubject: CONTENTS2, + issuer: [issuer.id], + holder: holder.id, + hasher: ['Keccak256', 'Keccak256'], + proof: [ + { + type: 'EcdsaSecp256k1SignatureEip191', + proofPurpose: 'assertionMethod' + } + ] + }); + }); }); describe('PublicVerifiableCredential', () => { diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index 7fade2f..436d465 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -17,7 +17,8 @@ import { rlpEncode as rlpEncodeFn } from '@zcloak/crypto'; import { HASHER } from './hasher'; -const web3 = new Web3() as any; +// Local mode +const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545')); export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: HashType): Uint8Array { const result = rlpEncodeFn(input); diff --git a/yarn.lock b/yarn.lock index 045f9ac..680a0f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,13 @@ __metadata: languageName: node linkType: hard +"@adraffy/ens-normalize@npm:^1.8.8": + version: 1.9.4 + resolution: "@adraffy/ens-normalize@npm:1.9.4" + checksum: f8e00455f9c81b02b051715fbf38f6d4975ad1ca4b94e6773fac607ec4974a63d5a30846bd6e61d447e3890f606dfdc3b3a64468a28d38f1f5647756e28d88ee + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.2.1 resolution: "@ampproject/remapping@npm:2.2.1" @@ -1799,6 +1806,228 @@ __metadata: languageName: node linkType: hard +"@ethereumjs/rlp@npm:^4.0.1": + version: 4.0.1 + resolution: "@ethereumjs/rlp@npm:4.0.1" + bin: + rlp: bin/rlp + checksum: 641fd88603d38cc891b9596e70cccd0937dcecaa5753a53a590cad09163ef6e0808bd032f03efbb38b0cbe8c34a0b03b526ef9e478a5e3e79dc0a23379e398ab + languageName: node + linkType: hard + +"@ethersproject/abi@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abi@npm:5.7.0" + dependencies: + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: d280355626314f5acb1a3c2e81328d27ddafd0ac9fdeeba496de26a6a53c39102076ebd7d74c38362d2a26e5fcc911759d64c4a446e10cc01216eef6220288d6 + languageName: node + linkType: hard + +"@ethersproject/abstract-provider@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-provider@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/networks": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + checksum: dd46b5444090a32afa967f507091d04ea9e65d555a24744b728e134449e50e5c60419b1c03720eb934d556ab7fe30b8790f98cb4a8f2d0dc2e188c6966bf147f + languageName: node + linkType: hard + +"@ethersproject/abstract-signer@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-signer@npm:5.7.0" + dependencies: + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + checksum: b97eda8abf6584efe2628456b8933fef9e212ba0e2cdc86e84b303bdc5401f88f9b785c9f123b8fb961dbc809dbe4a0f710ee63c67b79b7f96341d28d9650ee4 + languageName: node + linkType: hard + +"@ethersproject/address@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/address@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + checksum: 40d3fc40e075709fef5c986eece2ce21a81803d6fd8c009ae8866de1e50522fa76788771cdd0bc2fb1efc00710caee9c7501a9853844eef8d7a80e7c257414e3 + languageName: node + linkType: hard + +"@ethersproject/base64@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/base64@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + checksum: 920573265a668c4d356b8aa031d2be00901ff16d8d74412a5d4bf5a191af03fae83307e5f9c398ad1e29f9de80bac867b05aa23b942fbc02ea574372e8ffa6dd + languageName: node + linkType: hard + +"@ethersproject/bignumber@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bignumber@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + checksum: 666c8155b98881ac220c15152c24d0e8036c814d036b4105f0d60252777d9582d5d539a34ac41d16d90e28ac89e4816db7478ef2b8e27f793156dcbf4d8a5d4e + languageName: node + linkType: hard + +"@ethersproject/bytes@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bytes@npm:5.7.0" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 65d987c3e7057fcab2407c84dc79341b2e633364532262c635333bf6bb85bf244e2515ab5b582c06407f75b58fe90433b77af9161fa26819ca99fee9026743bc + languageName: node + linkType: hard + +"@ethersproject/constants@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/constants@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + checksum: 1e64c19be14deb69f0c1532c62b24d6d3e8a99df7412004ade36dd5d257a763ff06da9b8729172b7b86aa3d24e59202280d5df3a63dd9860f91109f6fa2356d9 + languageName: node + linkType: hard + +"@ethersproject/hash@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/hash@npm:5.7.0" + dependencies: + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: a4ea4262760273d657c677447fab9668204061de7f376b27996945efd7926ff96fa7b4227a80b60c626e3f76bee39bc948d0e91f8614af9bc7b4b4a639be4c0b + languageName: node + linkType: hard + +"@ethersproject/keccak256@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/keccak256@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + js-sha3: "npm:0.8.0" + checksum: a0cace980f416a5395c3b9fed0a87e73fae6ebb1bf49e25b099670f75ea779d8e458e853bd7f3624ef08b2c098cc5fb7c13952dd0ed790ccf5f1bb879213f0ce + languageName: node + linkType: hard + +"@ethersproject/logger@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/logger@npm:5.7.0" + checksum: 41ef0d49aad3677c36d0e79a6e2346ec13cf378cc6a042cfbc0d76aca6bce0b9f7362cb3fa4d60572e2e24df12edc378e5d8bbf1e33f8234c142e09552c87f8a + languageName: node + linkType: hard + +"@ethersproject/networks@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/networks@npm:5.7.1" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 5495b6a83a896366e8268da5e790898c5f7812fa6c395d3dffb89c2534a46e7cebaec07c6ae526f342843b482eb0e028013cea7f4e7bb8a266c8d6e22d114bda + languageName: node + linkType: hard + +"@ethersproject/properties@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/properties@npm:5.7.0" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 776f2d63f4b0ad04934d34db1b35c974f77e8beaec124d8fd267794fcdc0845c6a57ad8398b0637144a1bb57e5e2552bdbb76f9919c3919ec58e9bf2e5d008c3 + languageName: node + linkType: hard + +"@ethersproject/rlp@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/rlp@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 41ff1717ee483131747ee3b625a7b78df981d221421e824b818dd598139571598e1cde7a00f40a927d08e8352537f7411685eaa9a004bcb78315b4beb9a16c33 + languageName: node + linkType: hard + +"@ethersproject/signing-key@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/signing-key@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + elliptic: "npm:6.5.4" + hash.js: "npm:1.1.7" + checksum: 53bf8187e47537f3715a9c50836b10ecd05feb7448cfe865b44b6e2776eb14a716accdca4b60465cdf814fbfe06a7d3c405448d4c448fe96c9d89e5dadddbaaf + languageName: node + linkType: hard + +"@ethersproject/strings@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/strings@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 9f6e514c6bbbb9ecd7f567a92884c6ed5eb5d14bc60ac91e04bb2ad74e2bab52cb94b14ba875a4495a0f0d2a76babd842d226442e71537ad83606795691f7f16 + languageName: node + linkType: hard + +"@ethersproject/transactions@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/transactions@npm:5.7.0" + dependencies: + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + checksum: 28ed8fefaad0c5689518393eed5bd65abd7d202ba4d0182f06cf21dddecff51738ae9164aac1f86ff7eac634483dd4265a7d21d81cc0fd478724cac326575e44 + languageName: node + linkType: hard + +"@ethersproject/web@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/web@npm:5.7.1" + dependencies: + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 916275c181114ddadaa063d83d1b34817f0fdf996f0b79ddc6204c281883119c095469592babacba4386ec7fa0e1c1ab689d0a56ca267c342fb8f36dc8a7ebff + languageName: node + linkType: hard + "@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -2319,6 +2548,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:1.1.0, @noble/curves@npm:~1.1.0": + version: 1.1.0 + resolution: "@noble/curves@npm:1.1.0" + dependencies: + "@noble/hashes": "npm:1.3.1" + checksum: 87153bd4ec6cb58cfeba223933c7859d250613ba382421bd7d244280ef4ce08672f790750cd900f27d1dd09a650b3f736c08133fdd5c196587b8c461f86098be + languageName: node + linkType: hard + "@noble/hashes@npm:1.1.2": version: 1.1.2 resolution: "@noble/hashes@npm:1.1.2" @@ -2333,6 +2571,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.3.1": + version: 1.3.1 + resolution: "@noble/hashes@npm:1.3.1" + checksum: 69a6d561379bab638dd4608a6780c1f1ac3385505d7a1117040eb672d2633877bd6b06f45145ff915fe9196668c39863aee192f2cdfa546c013f4223e30bb108 + languageName: node + linkType: hard + "@noble/hashes@npm:^1.2.0": version: 1.3.0 resolution: "@noble/hashes@npm:1.3.0" @@ -2340,6 +2585,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:~1.3.0, @noble/hashes@npm:~1.3.1": + version: 1.3.2 + resolution: "@noble/hashes@npm:1.3.2" + checksum: 1743313a088b484a7c37bcf21f7a69a9740bc32f9fa6ee15720e0f9a6e01e7ecad91bd75a37c17fe613269c1dcbdc1b8797e3de5ec52dd4488229089b0819bdd + languageName: node + linkType: hard + "@noble/secp256k1@npm:1.7.1, @noble/secp256k1@npm:^1.7.1": version: 1.7.1 resolution: "@noble/secp256k1@npm:1.7.1" @@ -3001,6 +3253,34 @@ __metadata: languageName: node linkType: hard +"@scure/base@npm:~1.1.0": + version: 1.1.3 + resolution: "@scure/base@npm:1.1.3" + checksum: 6863158a2a8ed76da6f6bfdb028a9d55e4d277afc317165e861c9e1500403200f3e15db455b711949b7da3a0cd53ae05f8f0a038a8221c0200d4cc190e75aad3 + languageName: node + linkType: hard + +"@scure/bip32@npm:1.3.1": + version: 1.3.1 + resolution: "@scure/bip32@npm:1.3.1" + dependencies: + "@noble/curves": "npm:~1.1.0" + "@noble/hashes": "npm:~1.3.1" + "@scure/base": "npm:~1.1.0" + checksum: 37816766f4f07d6b03b5d2017c9bb2fb7fbe2e303ef07c85f8262319fd1a0b3fa0b9085720dfdb07661680f85269ce62e3f7c814d7283c925a0674eb0f594007 + languageName: node + linkType: hard + +"@scure/bip39@npm:1.2.1": + version: 1.2.1 + resolution: "@scure/bip39@npm:1.2.1" + dependencies: + "@noble/hashes": "npm:~1.3.0" + "@scure/base": "npm:~1.1.0" + checksum: a4a1145249a93d4a945581cb29f80b8747e675acb1e5c10e52c550f6686115aab692718f1a87b1fe84d45297cb3861e386d288fa525a4c69b8d2a393343433d5 + languageName: node + linkType: hard + "@settlemint/merkle-tools@npm:^1.0.7": version: 1.0.7 resolution: "@settlemint/merkle-tools@npm:1.0.7" @@ -3553,6 +3833,15 @@ __metadata: languageName: node linkType: hard +"@types/ws@npm:8.5.3": + version: 8.5.3 + resolution: "@types/ws@npm:8.5.3" + dependencies: + "@types/node": "npm:*" + checksum: 079fdee163d7cb86d59e5379d2ea6511ba6a46210af420320a4bd52b04b06f86d2c3acc89289f5eae16c8815a562faada8c717fd55a4888c8a5a5f8ce1420112 + languageName: node + linkType: hard + "@types/ws@npm:^8.5.1": version: 8.5.4 resolution: "@types/ws@npm:8.5.4" @@ -6072,6 +6361,15 @@ __metadata: languageName: node linkType: hard +"crc-32@npm:^1.2.2": + version: 1.2.2 + resolution: "crc-32@npm:1.2.2" + bin: + crc32: bin/crc32.njs + checksum: 3412e2f46a8ef7616a1bcd3e656cd075549ae125ab3a965e874d287a5dfda1114b3cc13891007f00ddeef74e1f19a0266fa48871217ac1b3f53f7b5cf1167f70 + languageName: node + linkType: hard + "create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": version: 1.2.0 resolution: "create-hash@npm:1.2.0" @@ -6829,7 +7127,7 @@ __metadata: languageName: node linkType: hard -"elliptic@npm:^6.5.2, elliptic@npm:^6.5.4": +"elliptic@npm:6.5.4, elliptic@npm:^6.5.2, elliptic@npm:^6.5.4": version: 6.5.4 resolution: "elliptic@npm:6.5.4" dependencies: @@ -7617,6 +7915,18 @@ __metadata: languageName: node linkType: hard +"ethereum-cryptography@npm:^2.0.0": + version: 2.1.2 + resolution: "ethereum-cryptography@npm:2.1.2" + dependencies: + "@noble/curves": "npm:1.1.0" + "@noble/hashes": "npm:1.3.1" + "@scure/bip32": "npm:1.3.1" + "@scure/bip39": "npm:1.2.1" + checksum: 689ec9d4f686b628d69895a70b382fe17bd0d46cf52b6538e6fabe64a6bc6e96f1ebea9b491892ed86331e90e198c3ee7917314c02fcdd504e856c1e1fc576b4 + languageName: node + linkType: hard + "ethereumjs-abi@npm:^0.6.8": version: 0.6.8 resolution: "ethereumjs-abi@npm:0.6.8" @@ -8906,7 +9216,7 @@ __metadata: languageName: node linkType: hard -"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": +"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": version: 1.1.7 resolution: "hash.js@npm:1.1.7" dependencies: @@ -9304,7 +9614,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -9437,6 +9747,15 @@ __metadata: languageName: node linkType: hard +"is-generator-function@npm:^1.0.7": + version: 1.0.10 + resolution: "is-generator-function@npm:1.0.10" + dependencies: + has-tostringtag: "npm:^1.0.0" + checksum: 5ddb05cd61c043348eaee42bd003d52fa2307827dd1690e6cdb6b205a6b62750f4e41d34d0a6a84793dda6dc6b147405e0ba349e631996beea00631302e36294 + languageName: node + linkType: hard + "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -9675,6 +9994,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.3": + version: 1.1.12 + resolution: "is-typed-array@npm:1.1.12" + dependencies: + which-typed-array: "npm:^1.1.11" + checksum: bbc1e04914affd083808bb10a49b30e59106367560b5a20a696f277f47cd1a96263eda2bc5193811f8cb5677e247865bd8f77863864b2db687d956f059509e5d + languageName: node + linkType: hard + "is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -9780,6 +10108,15 @@ __metadata: languageName: node linkType: hard +"isomorphic-ws@npm:^5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: 4c07f7c2fc49e6157adaf8c1563ec135796c66730f119243fec5e0ddb904ab3a9089aefe6a8f70fa6d349ad9585c4b9a5dbdb3147671825fba7b4a5322f9fc99 + languageName: node + linkType: hard + "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -10327,7 +10664,7 @@ __metadata: languageName: node linkType: hard -"js-sha3@npm:^0.8.0": +"js-sha3@npm:0.8.0, js-sha3@npm:^0.8.0": version: 0.8.0 resolution: "js-sha3@npm:0.8.0" checksum: f7ae73fb14080ea094e95c7401eea57468bde1df93441052b3e9823af1f7a61e814b0f61610212249b8499adedbe92199cbb467cfca799b5003d17701427c994 @@ -13212,6 +13549,7 @@ __metadata: "@zcloak/dev": "npm:^0.31.0" fs-extra: "npm:^11.1.0" rlp: "npm:^3.0.0" + web3: "npm:^4.1.1" bin: build-wasm: scripts/build-wasm.js install-build-deps: scripts/install-build-deps.js @@ -14869,6 +15207,19 @@ __metadata: languageName: node linkType: hard +"util@npm:^0.12.5": + version: 0.12.5 + resolution: "util@npm:0.12.5" + dependencies: + inherits: "npm:^2.0.3" + is-arguments: "npm:^1.0.4" + is-generator-function: "npm:^1.0.7" + is-typed-array: "npm:^1.1.3" + which-typed-array: "npm:^1.1.2" + checksum: b64a6d3e8ab48037b0f3fb38b6df96e180ab8c430d49386be8444fa2402f26450239bc1fd13aa29c02f3165be380f01aaf88eadb284e77f14df63664a5536e92 + languageName: node + linkType: hard + "utils-merge@npm:1.0.1": version: 1.0.1 resolution: "utils-merge@npm:1.0.1" @@ -14993,6 +15344,206 @@ __metadata: languageName: node linkType: hard +"web3-core@npm:^4.1.1": + version: 4.1.1 + resolution: "web3-core@npm:4.1.1" + dependencies: + web3-errors: "npm:^1.1.1" + web3-eth-iban: "npm:^4.0.5" + web3-providers-http: "npm:^4.0.5" + web3-providers-ipc: "npm:^4.0.5" + web3-providers-ws: "npm:^4.0.5" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + dependenciesMeta: + web3-providers-ipc: + optional: true + checksum: 31891b5139ac1780da2591064c8d945cd7d94bd802df24e3d70cf4da08f031f60e54273e5890033ca7d5182d2178a67d8106507d00b25acf6757f98674ccf2d1 + languageName: node + linkType: hard + +"web3-errors@npm:^1.1.1": + version: 1.1.1 + resolution: "web3-errors@npm:1.1.1" + dependencies: + web3-types: "npm:^1.1.1" + checksum: 4bfa993aa4b452ef346aff2d946261cfa0af6741aa5a9f3bbf96fa8f6d857a4c6113dbae56292d5a74bed10e7c08aa56bd0dfd4e6bca30b5c29da201b9ceae5a + languageName: node + linkType: hard + +"web3-eth-abi@npm:^4.1.1": + version: 4.1.1 + resolution: "web3-eth-abi@npm:4.1.1" + dependencies: + "@ethersproject/abi": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + checksum: 09fdb6ebcfd292cc046014e4ae22aa166dba8c132730c30d4f5eae4fb5b3674f5063c88b4e8b864c88b06b8eda864188636ff72f5de230eb75e1954e49f4f88f + languageName: node + linkType: hard + +"web3-eth-accounts@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-accounts@npm:4.0.5" + dependencies: + "@ethereumjs/rlp": "npm:^4.0.1" + crc-32: "npm:^1.2.2" + ethereum-cryptography: "npm:^2.0.0" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: bd0c1b4420fa477c8c6eba033cf0fb73dc04633ddf45e8f18850bc470bdcb3a6788928922735001b71546531b1ef67c75d15fc8428740b0c23aeea60eb1f5209 + languageName: node + linkType: hard + +"web3-eth-contract@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-contract@npm:4.0.5" + dependencies: + web3-core: "npm:^4.1.1" + web3-errors: "npm:^1.1.1" + web3-eth: "npm:^4.1.1" + web3-eth-abi: "npm:^4.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: be48c33941aee1f28b46154d578ca5f199d227bda2615e6e5751bc71dff19308e0ca9fe0ca0c8edd2b05ab6b5bd832c9a18c779bd69c468157b0658fcf90afb8 + languageName: node + linkType: hard + +"web3-eth-ens@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-ens@npm:4.0.5" + dependencies: + "@adraffy/ens-normalize": "npm:^1.8.8" + web3-core: "npm:^4.1.1" + web3-errors: "npm:^1.1.1" + web3-eth: "npm:^4.1.1" + web3-eth-contract: "npm:^4.0.5" + web3-net: "npm:^4.0.5" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: 6aebbd8c67bf3537168ffd219cccc28f8fd3944538ed0076aa7f8c09d252d34879635eaeb0720f07fd7315150c509bfbd8a382ba9f67f4581131374a81737c08 + languageName: node + linkType: hard + +"web3-eth-iban@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-iban@npm:4.0.5" + dependencies: + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: 829503f1e94b69243fb07bd9c074f640115dad6156d9f6a95d78cfe22ea529b23de6570f16f2c8e421ea05f16cab6ddcc8d4bce09f170e5da71b580a2af6432b + languageName: node + linkType: hard + +"web3-eth-personal@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-eth-personal@npm:4.0.5" + dependencies: + web3-core: "npm:^4.1.1" + web3-eth: "npm:^4.1.1" + web3-rpc-methods: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: b04e50022b3bdf2291115fdfa759d2d819c0c07a2c53f98e362e71829eb9d8766192e94ea31cc47db3c3480671d83d7b36e1cc7b5b199d04c3c4b5c05816681d + languageName: node + linkType: hard + +"web3-eth@npm:^4.1.1": + version: 4.1.1 + resolution: "web3-eth@npm:4.1.1" + dependencies: + setimmediate: "npm:^1.0.5" + web3-core: "npm:^4.1.1" + web3-errors: "npm:^1.1.1" + web3-eth-abi: "npm:^4.1.1" + web3-eth-accounts: "npm:^4.0.5" + web3-net: "npm:^4.0.5" + web3-providers-ws: "npm:^4.0.5" + web3-rpc-methods: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: 78911ecc7e667225b4442e0251ef7acb30ff7059a3c20f2a3187b0218bab8430f42f72a8b5abf930b768190fb0b3a254c922812662974c1e04b911a85cb9c2d5 + languageName: node + linkType: hard + +"web3-net@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-net@npm:4.0.5" + dependencies: + web3-core: "npm:^4.1.1" + web3-rpc-methods: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + checksum: a0bac3119c880ea0b7a4a10e10cc88a25ceed85be77415567feac891ae10b3f443affb4a388817b1074d8924c5290e71bc7ebe061d4805220451d413ed6ed527 + languageName: node + linkType: hard + +"web3-providers-http@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-providers-http@npm:4.0.5" + dependencies: + cross-fetch: "npm:^3.1.5" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + checksum: f46abd42e423b8e2eb8aa5be46238388ef008443c9598f44db14038df604acab06906f8199c96aaa122818e66525f9ec3f5ec7b4c757cbbe131431110ec9d331 + languageName: node + linkType: hard + +"web3-providers-ipc@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-providers-ipc@npm:4.0.5" + dependencies: + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + checksum: 9dc1859754bce6c460861ef3d226154ae3360abf2c0380f39de495b9455ec7eef76a6ab277bb72b196a4eff70d49f55e922c6786759a0d0d3364cfa05384efe7 + languageName: node + linkType: hard + +"web3-providers-ws@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-providers-ws@npm:4.0.5" + dependencies: + "@types/ws": "npm:8.5.3" + isomorphic-ws: "npm:^5.0.0" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + ws: "npm:^8.8.1" + checksum: 15786a7b67b66affb2cac633b1bf0f788a381b84f58555d138ab2a1b0567e5227d830ba873f57e48622015ba1a6089d4fa8f23e46e3f8a5788bc8f558c104dec + languageName: node + linkType: hard + +"web3-rpc-methods@npm:^1.1.1": + version: 1.1.1 + resolution: "web3-rpc-methods@npm:1.1.1" + dependencies: + web3-core: "npm:^4.1.1" + web3-types: "npm:^1.1.1" + web3-validator: "npm:^2.0.1" + checksum: da096bed37e08c123a95882a7d026b2ea30da794d38145cf0a887dbf657d8dc9d52c93af828333d5b0f40ec0889373166d06ac2e4e85282ebc2693692ea5b77b + languageName: node + linkType: hard + +"web3-types@npm:^1.1.1": + version: 1.1.1 + resolution: "web3-types@npm:1.1.1" + checksum: 132cf6b684941003623ea76e81ad70478f8ec014e56e4d44a59aa0b903a76bdc771c34086427029a6ef57ecce6112c8a5fdc86fe0961c33ce663d1dd1cb5841b + languageName: node + linkType: hard + "web3-utils@npm:^1.3.4": version: 1.9.0 resolution: "web3-utils@npm:1.9.0" @@ -15008,6 +15559,55 @@ __metadata: languageName: node linkType: hard +"web3-utils@npm:^4.0.5": + version: 4.0.5 + resolution: "web3-utils@npm:4.0.5" + dependencies: + ethereum-cryptography: "npm:^2.0.0" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-validator: "npm:^2.0.1" + checksum: 69bb8b3eb60b430559fa6c6f56a166433fc30584514b82d1290d41df2b95b30eefd056bac1e4ca776cd65636cd34bfd3e07bf1a1ab540c2064c6d78f6886803e + languageName: node + linkType: hard + +"web3-validator@npm:^2.0.1": + version: 2.0.1 + resolution: "web3-validator@npm:2.0.1" + dependencies: + ethereum-cryptography: "npm:^2.0.0" + util: "npm:^0.12.5" + web3-errors: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + zod: "npm:^3.21.4" + checksum: 008d64498533f90fa7ceb75007f23516a4b975934ed24f35c66be71b6e7e2aebfd079e22a68e1436ca45ddfb690e8afcda016da9cb98520d36ff9f3276f63323 + languageName: node + linkType: hard + +"web3@npm:^4.1.1": + version: 4.1.1 + resolution: "web3@npm:4.1.1" + dependencies: + web3-core: "npm:^4.1.1" + web3-errors: "npm:^1.1.1" + web3-eth: "npm:^4.1.1" + web3-eth-abi: "npm:^4.1.1" + web3-eth-accounts: "npm:^4.0.5" + web3-eth-contract: "npm:^4.0.5" + web3-eth-ens: "npm:^4.0.5" + web3-eth-iban: "npm:^4.0.5" + web3-eth-personal: "npm:^4.0.5" + web3-net: "npm:^4.0.5" + web3-providers-http: "npm:^4.0.5" + web3-providers-ws: "npm:^4.0.5" + web3-rpc-methods: "npm:^1.1.1" + web3-types: "npm:^1.1.1" + web3-utils: "npm:^4.0.5" + web3-validator: "npm:^2.0.1" + checksum: 907e02d4ae666b97f3db16e2f4500d5b98e50bc82e789dff7802878e0d1f46ef571aaf5205e28522fc22073f714f7465b1ea7c9ee8d8e40ceced246dec074252 + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -15293,6 +15893,19 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2": + version: 1.1.11 + resolution: "which-typed-array@npm:1.1.11" + dependencies: + available-typed-arrays: "npm:^1.0.5" + call-bind: "npm:^1.0.2" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.0" + checksum: b1ba153cb37bb901c64012e256666d5a3e9ad915a1e0f12fd0c8d128f5158a88a85520d28f432ea658393f66f3520684d3c315ceedac8d348a4af067663efaaa + languageName: node + linkType: hard + "which-typed-array@npm:^1.1.9": version: 1.1.9 resolution: "which-typed-array@npm:1.1.9" @@ -15612,3 +16225,10 @@ __metadata: checksum: 63eceacd482622afd71290541a9823a0e5eed88a6b58a5d136a5fb8151ed4d1549c80f28d74d4ad351582f9890635d49e6cf70f8d3cc64948640f839f6a37c70 languageName: node linkType: hard + +"zod@npm:^3.21.4": + version: 3.22.2 + resolution: "zod@npm:3.22.2" + checksum: b6158a49b57cb2f6454789005f9989db4df0dbe213186d3356be56c8ea01a5bc8c9c9af7795ef2156539526bf350e0fd351b0ecb8e1bcff5a6511b1b40293ed0 + languageName: node + linkType: hard From 183ce3e14b39d15dcccdada0c098589c0c309475 Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Tue, 5 Sep 2023 16:03:54 +0800 Subject: [PATCH 22/24] Fix: replace yarn relese file to the old version --- .yarn/releases/yarn-4.0.0-rc.40.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 .yarn/releases/yarn-4.0.0-rc.40.cjs diff --git a/.yarn/releases/yarn-4.0.0-rc.40.cjs b/.yarn/releases/yarn-4.0.0-rc.40.cjs old mode 100755 new mode 100644 index 4ad8048..4b8e0df --- a/.yarn/releases/yarn-4.0.0-rc.40.cjs +++ b/.yarn/releases/yarn-4.0.0-rc.40.cjs @@ -279,7 +279,7 @@ ${this.source} ${this.getDeclarations()}`}createSession(){return new CH(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=s2([A,Y.stringifyIdent(n)]),h=Ye.getMapWithDefault(o,a.cwd);Ye.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=s2(n),p=Ye.getMapWithDefault(o,a.cwd);Ye.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=V.resolve(this.project.cwd,em(o.links.WorkspaceCwd)),n=em(o.links.DependencyIdent),u=em(o.links.DependencyRange),A=em(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=Y.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return Ye.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>Y.stringifyIdent(o.locator),({dependencyIdent:o})=>Y.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=V.resolve(this.project.cwd,em(o.links.WorkspaceCwd)),n=em(o.links.FieldPath),u=ugt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return Ye.sortMap(r,[({workspace:o})=>Y.stringifyIdent(o.locator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=em(u));yield a}}}});var _me=U(cQ=>{"use strict";Object.defineProperty(cQ,"__esModule",{value:!0});function x2(t){let e=[...t.caches],r=e.shift();return r===void 0?Ume():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>x2({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>x2({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>x2({caches:e}).delete(o))},clear(){return r.clear().catch(()=>x2({caches:e}).clear())}}}function Ume(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}cQ.createFallbackableCache=x2;cQ.createNullCache=Ume});var qme=U((kWt,Hme)=>{Hme.exports=_me()});var jme=U(TH=>{"use strict";Object.defineProperty(TH,"__esModule",{value:!0});function bgt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}TH.createInMemoryCache=bgt});var Wme=U((RWt,Gme)=>{Gme.exports=jme()});var Kme=U(tu=>{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});function Qgt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===LH.WithinHeaders?o:{}},queryParameters(){return t===LH.WithinQueryParameters?o:{}}}}function kgt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function Yme(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return Yme(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function Fgt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function Rgt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function Tgt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var Lgt="4.14.2",Ngt=t=>()=>t.transporter.requester.destroy(),LH={WithinQueryParameters:0,WithinHeaders:1};tu.AuthMode=LH;tu.addMethods=Rgt;tu.createAuth=Qgt;tu.createRetryablePromise=kgt;tu.createWaitablePromise=Yme;tu.destroy=Ngt;tu.encode=Tgt;tu.shuffle=Fgt;tu.version=Lgt});var P2=U((LWt,Jme)=>{Jme.exports=Kme()});var Vme=U(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});var Ogt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};NH.MethodEnum=Ogt});var b2=U((OWt,zme)=>{zme.exports=Vme()});var Aye=U(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});var Zme=b2();function OH(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var Q2={Read:1,Write:2,Any:3},EC={Up:1,Down:2,Timeouted:3},$me=2*60*1e3;function UH(t,e=EC.Up){return{...t,status:e,lastUpdate:Date.now()}}function eye(t){return t.status===EC.Up||Date.now()-t.lastUpdate>$me}function tye(t){return t.status===EC.Timeouted&&Date.now()-t.lastUpdate<=$me}function _H(t){return typeof t=="string"?{protocol:"https",url:t,accept:Q2.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||Q2.Any}}function Mgt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(UH(r))))).then(r=>{let o=r.filter(A=>eye(A)),a=r.filter(A=>tye(A)),n=[...o,...a],u=n.length>0?n.map(A=>_H(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Ugt=({isTimedOut:t,status:e})=>!t&&~~e===0,_gt=t=>{let e=t.status;return t.isTimedOut||Ugt(t)||~~(e/100)!==2&&~~(e/100)!==4},Hgt=({status:t})=>~~(t/100)===2,qgt=(t,e)=>_gt(t)?e.onRetry(t):Hgt(t)?e.onSuccess(t):e.onFail(t);function Xme(t,e,r,o){let a=[],n=oye(r,o),u=aye(t,o),A=r.method,p=r.method!==Zme.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},C=0,w=(v,b)=>{let E=v.pop();if(E===void 0)throw uye(MH(a));let R={data:n,headers:u,method:A,url:iye(E,r.path,h),connectTimeout:b(C,t.timeouts.connect),responseTimeout:b(C,o.timeout)},N=J=>{let re={request:R,response:J,host:E,triesLeft:v.length};return a.push(re),re},_={onSuccess:J=>rye(J),onRetry(J){let re=N(J);return J.isTimedOut&&C++,Promise.all([t.logger.info("Retryable failure",HH(re)),t.hostsCache.set(E,UH(E,J.isTimedOut?EC.Timeouted:EC.Down))]).then(()=>w(v,b))},onFail(J){throw N(J),nye(J,MH(a))}};return t.requester.send(R).then(J=>qgt(J,_))};return Mgt(t.hostsCache,e).then(v=>w([...v.statelessHosts].reverse(),v.getTimeout))}function jgt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:C}=t,w={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:C,queryParameters:h,hosts:p.map(v=>_H(v)),read(v,b){let E=OH(b,w.timeouts.read),R=()=>Xme(w,w.hosts.filter(J=>(J.accept&Q2.Read)!==0),v,E);if((E.cacheable!==void 0?E.cacheable:v.cacheable)!==!0)return R();let _={request:v,mappedRequestOptions:E,transporter:{queryParameters:w.queryParameters,headers:w.headers}};return w.responsesCache.get(_,()=>w.requestsCache.get(_,()=>w.requestsCache.set(_,R()).then(J=>Promise.all([w.requestsCache.delete(_),J]),J=>Promise.all([w.requestsCache.delete(_),Promise.reject(J)])).then(([J,re])=>re)),{miss:J=>w.responsesCache.set(_,J)})},write(v,b){return Xme(w,w.hosts.filter(E=>(E.accept&Q2.Write)!==0),v,OH(b,w.timeouts.write))}};return w}function Ggt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function rye(t){try{return JSON.parse(t.content)}catch(e){throw cye(e.message,t)}}function nye({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return lye(o,e,r)}function Wgt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function iye(t,e,r){let o=sye(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function sye(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Wgt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function oye(t,e){if(t.method===Zme.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function aye(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function MH(t){return t.map(e=>HH(e))}function HH(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function lye(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function cye(t,e){return{name:"DeserializationError",message:t,response:e}}function uye(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}bi.CallEnum=Q2;bi.HostStatusEnum=EC;bi.createApiError=lye;bi.createDeserializationError=cye;bi.createMappedRequestOptions=OH;bi.createRetryError=uye;bi.createStatefulHost=UH;bi.createStatelessHost=_H;bi.createTransporter=jgt;bi.createUserAgent=Ggt;bi.deserializeFailure=nye;bi.deserializeSuccess=rye;bi.isStatefulHostTimeouted=tye;bi.isStatefulHostUp=eye;bi.serializeData=oye;bi.serializeHeaders=aye;bi.serializeQueryParameters=sye;bi.serializeUrl=iye;bi.stackFrameWithoutCredentials=HH;bi.stackTraceWithoutCredentials=MH});var k2=U((UWt,fye)=>{fye.exports=Aye()});var pye=U(hh=>{"use strict";Object.defineProperty(hh,"__esModule",{value:!0});var CC=P2(),Ygt=k2(),F2=b2(),Kgt=t=>{let e=t.region||"us",r=CC.createAuth(CC.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Ygt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return CC.addMethods({appId:a,transporter:o},t.methods)},Jgt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Post,path:"2/abtests",data:e},r),Vgt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Delete,path:CC.encode("2/abtests/%s",e)},r),zgt=t=>(e,r)=>t.transporter.read({method:F2.MethodEnum.Get,path:CC.encode("2/abtests/%s",e)},r),Xgt=t=>e=>t.transporter.read({method:F2.MethodEnum.Get,path:"2/abtests"},e),Zgt=t=>(e,r)=>t.transporter.write({method:F2.MethodEnum.Post,path:CC.encode("2/abtests/%s/stop",e)},r);hh.addABTest=Jgt;hh.createAnalyticsClient=Kgt;hh.deleteABTest=Vgt;hh.getABTest=zgt;hh.getABTests=Xgt;hh.stopABTest=Zgt});var gye=U((HWt,hye)=>{hye.exports=pye()});var mye=U(R2=>{"use strict";Object.defineProperty(R2,"__esModule",{value:!0});var qH=P2(),$gt=k2(),dye=b2(),edt=t=>{let e=t.region||"us",r=qH.createAuth(qH.AuthMode.WithinHeaders,t.appId,t.apiKey),o=$gt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return qH.addMethods({appId:t.appId,transporter:o},t.methods)},tdt=t=>e=>t.transporter.read({method:dye.MethodEnum.Get,path:"1/strategies/personalization"},e),rdt=t=>(e,r)=>t.transporter.write({method:dye.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);R2.createPersonalizationClient=edt;R2.getPersonalizationStrategy=tdt;R2.setPersonalizationStrategy=rdt});var Eye=U((jWt,yye)=>{yye.exports=mye()});var Rye=U(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Ht=P2(),Ta=k2(),mr=b2(),ndt=Ie("crypto");function uQ(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var idt=t=>{let e=t.appId,r=Ht.createAuth(t.authMode!==void 0?t.authMode:Ht.AuthMode.WithinHeaders,e,t.apiKey),o=Ta.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:Ta.CallEnum.Read},{url:`${e}.algolia.net`,accept:Ta.CallEnum.Write}].concat(Ht.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Ht.addMethods(a,t.methods)};function Cye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function Iye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function wye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var sdt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Ht.createRetryablePromise(h=>T2(t)(A.key,p).catch(C=>{if(C.status!==404)throw C;return h()}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:"1/keys",data:n},a),u)},odt=t=>(e,r,o)=>{let a=Ta.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:mr.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},adt=t=>(e,r,o)=>t.transporter.write({method:mr.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),ldt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>IC(t)(o.taskID,a)),AQ=t=>(e,r,o)=>{let a=(n,u)=>L2(t)(e,{methods:{waitTask:zi}}).waitTask(n.taskID,u);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},cdt=t=>(e,r,o)=>AQ(t)(e,r,{...o,scope:[pQ.Rules]}),udt=t=>(e,r,o)=>AQ(t)(e,r,{...o,scope:[pQ.Settings]}),Adt=t=>(e,r,o)=>AQ(t)(e,r,{...o,scope:[pQ.Synonyms]}),fdt=t=>(e,r)=>e.method===mr.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),pdt=t=>(e,r)=>{let o=(a,n)=>Ht.createRetryablePromise(u=>T2(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/keys/%s",e)},r),o)},hdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>IC(t)(n.taskID,u))},gdt=()=>(t,e)=>{let r=Ta.serializeQueryParameters(e),o=ndt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},T2=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/keys/%s",e)},r),Bye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/task/%s",e.toString())},r),ddt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),mdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/logs"},e),ydt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw wye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},Edt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping/top"},e),Cdt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/clusters/mapping/%s",e)},r),Idt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},L2=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Ht.addMethods(o,r.methods)},wdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/keys"},e),Bdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters"},e),vdt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/indexes"},e),Ddt=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:"1/clusters/mapping"},e),Sdt=t=>(e,r,o)=>{let a=(n,u)=>L2(t)(e,{methods:{waitTask:zi}}).waitTask(n.taskID,u);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},xdt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>L2(t)(u,{methods:{waitTask:zi}}).waitTask(a.taskID[u],n)));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},Pdt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),bdt=t=>(e,r)=>{let o=e.map(a=>({...a,params:Ta.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},Qdt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return L2(t)(o.indexName,{methods:{searchForFacetValues:Qye}}).searchForFacetValues(a,n,{...r,...u})})),kdt=t=>(e,r)=>{let o=Ta.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:mr.MethodEnum.Delete,path:"1/clusters/mapping"},o)},Fdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>IC(t)(n.taskID,u))},Rdt=t=>(e,r)=>{let o=(a,n)=>Ht.createRetryablePromise(u=>T2(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/keys/%s/restore",e)},r),o)},Tdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>IC(t)(n.taskID,u))},Ldt=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),Ndt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),Odt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>IC(t)(o.taskID,a)),Mdt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=C=>Object.keys(o).filter(w=>A.indexOf(w)!==-1).every(w=>C[w]===o[w]),h=(C,w)=>Ht.createRetryablePromise(v=>T2(t)(e,w).then(b=>p(b)?Promise.resolve():v()));return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:Ht.encode("1/keys/%s",e),data:u},n),h)},IC=t=>(e,r)=>Ht.createRetryablePromise(o=>Bye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),vye=t=>(e,r)=>{let o=(a,n)=>zi(t)(a.taskID,n);return Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Udt=t=>e=>uQ({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),_dt=t=>e=>{let r={hitsPerPage:1e3,...e};return uQ({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},Hdt=t=>e=>{let r={hitsPerPage:1e3,...e};return uQ({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},fQ=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],C;for(C=p;C({action:r,body:w})),n).then(w=>(u.objectIDs=u.objectIDs.concat(w.objectIDs),u.taskIDs.push(w.taskID),C++,A(C)))};return Ht.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(C=>zi(t)(C,h))))},qdt=t=>e=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>zi(t)(r.taskID,o)),jdt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ta.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>zi(t)(n.taskID,u))},Gdt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ta.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>zi(t)(n.taskID,u))},Wdt=t=>(e,r)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>zi(t)(o.taskID,a)),Ydt=t=>e=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s",t.indexName)},e),(r,o)=>zi(t)(r.taskID,o)),Kdt=t=>(e,r)=>Ht.createWaitablePromise(Dye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),Dye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return fQ(t)(o,nm.DeleteObject,r)},Jdt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ta.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>zi(t)(u.taskID,A))},Vdt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ta.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Delete,path:Ht.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>zi(t)(u.taskID,A))},zdt=t=>e=>Sye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Xdt=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),Zdt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>bye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,C]of Object.entries(p.hits))if(e(C))return{object:C,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw Iye();return A()});return A()},$dt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/%s",t.indexName,e)},r),emt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},tmt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:mr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},rmt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),Sye=t=>e=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),nmt=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),xye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Get,path:Ht.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),imt=t=>(e,r)=>Ht.createWaitablePromise(Pye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),Pye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?nm.PartialUpdateObject:nm.PartialUpdateObjectNoCreate;return fQ(t)(e,n,a)},smt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(E,R,N,_)=>Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/operation",E),data:{operation:N,destination:R}},_),(J,re)=>zi(t)(J.taskID,re)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,C=jH({appId:t.appId,transporter:t.transporter,indexName:h}),w=[],v=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});w.push(v);let b=(o?v.wait(u):v).then(()=>{let E=C(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return w.push(E),o?E.wait(u):E}).then(()=>{let E=A(h,t.indexName,"move",u);return w.push(E),o?E.wait(u):E}).then(()=>Promise.all(w)).then(([E,R,N])=>({objectIDs:R.objectIDs,taskIDs:[E.taskID,...R.taskIDs,N.taskID]}));return Ht.createWaitablePromise(b,(E,R)=>Promise.all(w.map(N=>N.wait(R))))},omt=t=>(e,r)=>GH(t)(e,{...r,clearExistingRules:!0}),amt=t=>(e,r)=>WH(t)(e,{...r,clearExistingSynonyms:!0}),lmt=t=>(e,r)=>Ht.createWaitablePromise(jH(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>zi(t)(o.taskID,a)),jH=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?nm.AddObject:nm.UpdateObject;if(n===nm.UpdateObject){for(let u of e)if(u.objectID===void 0)return Ht.createWaitablePromise(Promise.reject(Cye()))}return fQ(t)(e,n,a)},cmt=t=>(e,r)=>GH(t)([e],r),GH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=Ta.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>zi(t)(A.taskID,p))},umt=t=>(e,r)=>WH(t)([e],r),WH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=Ta.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>zi(t)(p.taskID,h))},bye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),Qye=t=>(e,r,o)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),kye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),Fye=t=>(e,r)=>t.transporter.read({method:mr.MethodEnum.Post,path:Ht.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),Amt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ta.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Ht.createWaitablePromise(t.transporter.write({method:mr.MethodEnum.Put,path:Ht.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>zi(t)(u.taskID,A))},zi=t=>(e,r)=>Ht.createRetryablePromise(o=>xye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),fmt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},nm={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},pQ={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},pmt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},hmt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=fmt;Ft.BatchActionEnum=nm;Ft.ScopeEnum=pQ;Ft.StrategyEnum=pmt;Ft.SynonymEnum=hmt;Ft.addApiKey=sdt;Ft.assignUserID=odt;Ft.assignUserIDs=adt;Ft.batch=vye;Ft.browseObjects=Udt;Ft.browseRules=_dt;Ft.browseSynonyms=Hdt;Ft.chunkedBatch=fQ;Ft.clearDictionaryEntries=ldt;Ft.clearObjects=qdt;Ft.clearRules=jdt;Ft.clearSynonyms=Gdt;Ft.copyIndex=AQ;Ft.copyRules=cdt;Ft.copySettings=udt;Ft.copySynonyms=Adt;Ft.createBrowsablePromise=uQ;Ft.createMissingObjectIDError=Cye;Ft.createObjectNotFoundError=Iye;Ft.createSearchClient=idt;Ft.createValidUntilNotFoundError=wye;Ft.customRequest=fdt;Ft.deleteApiKey=pdt;Ft.deleteBy=Wdt;Ft.deleteDictionaryEntries=hdt;Ft.deleteIndex=Ydt;Ft.deleteObject=Kdt;Ft.deleteObjects=Dye;Ft.deleteRule=Jdt;Ft.deleteSynonym=Vdt;Ft.exists=zdt;Ft.findAnswers=Xdt;Ft.findObject=Zdt;Ft.generateSecuredApiKey=gdt;Ft.getApiKey=T2;Ft.getAppTask=Bye;Ft.getDictionarySettings=ddt;Ft.getLogs=mdt;Ft.getObject=$dt;Ft.getObjectPosition=emt;Ft.getObjects=tmt;Ft.getRule=rmt;Ft.getSecuredApiKeyRemainingValidity=ydt;Ft.getSettings=Sye;Ft.getSynonym=nmt;Ft.getTask=xye;Ft.getTopUserIDs=Edt;Ft.getUserID=Cdt;Ft.hasPendingMappings=Idt;Ft.initIndex=L2;Ft.listApiKeys=wdt;Ft.listClusters=Bdt;Ft.listIndices=vdt;Ft.listUserIDs=Ddt;Ft.moveIndex=Sdt;Ft.multipleBatch=xdt;Ft.multipleGetObjects=Pdt;Ft.multipleQueries=bdt;Ft.multipleSearchForFacetValues=Qdt;Ft.partialUpdateObject=imt;Ft.partialUpdateObjects=Pye;Ft.removeUserID=kdt;Ft.replaceAllObjects=smt;Ft.replaceAllRules=omt;Ft.replaceAllSynonyms=amt;Ft.replaceDictionaryEntries=Fdt;Ft.restoreApiKey=Rdt;Ft.saveDictionaryEntries=Tdt;Ft.saveObject=lmt;Ft.saveObjects=jH;Ft.saveRule=cmt;Ft.saveRules=GH;Ft.saveSynonym=umt;Ft.saveSynonyms=WH;Ft.search=bye;Ft.searchDictionaryEntries=Ldt;Ft.searchForFacetValues=Qye;Ft.searchRules=kye;Ft.searchSynonyms=Fye;Ft.searchUserIDs=Ndt;Ft.setDictionarySettings=Odt;Ft.setSettings=Amt;Ft.updateApiKey=Mdt;Ft.waitAppTask=IC;Ft.waitTask=zi});var Lye=U((WWt,Tye)=>{Tye.exports=Rye()});var Nye=U(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});function gmt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var dmt={Debug:1,Info:2,Error:3};hQ.LogLevelEnum=dmt;hQ.createNullLogger=gmt});var Mye=U((KWt,Oye)=>{Oye.exports=Nye()});var qye=U(YH=>{"use strict";Object.defineProperty(YH,"__esModule",{value:!0});var Uye=Ie("http"),_ye=Ie("https"),mmt=Ie("url"),Hye={keepAlive:!0},ymt=new Uye.Agent(Hye),Emt=new _ye.Agent(Hye);function Cmt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||ymt,n=r||t||Emt;return{send(u){return new Promise(A=>{let p=mmt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,C={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},w=(p.protocol==="https:"?_ye:Uye).request(C,R=>{let N=[];R.on("data",_=>{N=N.concat(_)}),R.on("end",()=>{clearTimeout(b),clearTimeout(E),A({status:R.statusCode||0,content:Buffer.concat(N).toString(),isTimedOut:!1})})}),v=(R,N)=>setTimeout(()=>{w.abort(),A({status:0,content:N,isTimedOut:!0})},R*1e3),b=v(u.connectTimeout,"Connection timeout"),E;w.on("error",R=>{clearTimeout(b),clearTimeout(E),A({status:0,content:R.message,isTimedOut:!1})}),w.once("response",()=>{clearTimeout(b),E=v(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&w.write(u.data),w.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}YH.createNodeHttpRequester=Cmt});var Gye=U((VWt,jye)=>{jye.exports=qye()});var Jye=U((zWt,Kye)=>{"use strict";var Wye=qme(),Imt=Wme(),wC=gye(),JH=P2(),KH=Eye(),Nt=Lye(),wmt=Mye(),Bmt=Gye(),vmt=k2();function Yye(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:Bmt.createNodeHttpRequester(),logger:wmt.createNullLogger(),responsesCache:Wye.createNullCache(),requestsCache:Wye.createNullCache(),hostsCache:Imt.createInMemoryCache(),userAgent:vmt.createUserAgent(JH.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>KH.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:KH.getPersonalizationStrategy,setPersonalizationStrategy:KH.setPersonalizationStrategy}});return Nt.createSearchClient({...a,methods:{search:Nt.multipleQueries,searchForFacetValues:Nt.multipleSearchForFacetValues,multipleBatch:Nt.multipleBatch,multipleGetObjects:Nt.multipleGetObjects,multipleQueries:Nt.multipleQueries,copyIndex:Nt.copyIndex,copySettings:Nt.copySettings,copyRules:Nt.copyRules,copySynonyms:Nt.copySynonyms,moveIndex:Nt.moveIndex,listIndices:Nt.listIndices,getLogs:Nt.getLogs,listClusters:Nt.listClusters,multipleSearchForFacetValues:Nt.multipleSearchForFacetValues,getApiKey:Nt.getApiKey,addApiKey:Nt.addApiKey,listApiKeys:Nt.listApiKeys,updateApiKey:Nt.updateApiKey,deleteApiKey:Nt.deleteApiKey,restoreApiKey:Nt.restoreApiKey,assignUserID:Nt.assignUserID,assignUserIDs:Nt.assignUserIDs,getUserID:Nt.getUserID,searchUserIDs:Nt.searchUserIDs,listUserIDs:Nt.listUserIDs,getTopUserIDs:Nt.getTopUserIDs,removeUserID:Nt.removeUserID,hasPendingMappings:Nt.hasPendingMappings,generateSecuredApiKey:Nt.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Nt.getSecuredApiKeyRemainingValidity,destroy:JH.destroy,clearDictionaryEntries:Nt.clearDictionaryEntries,deleteDictionaryEntries:Nt.deleteDictionaryEntries,getDictionarySettings:Nt.getDictionarySettings,getAppTask:Nt.getAppTask,replaceDictionaryEntries:Nt.replaceDictionaryEntries,saveDictionaryEntries:Nt.saveDictionaryEntries,searchDictionaryEntries:Nt.searchDictionaryEntries,setDictionarySettings:Nt.setDictionarySettings,waitAppTask:Nt.waitAppTask,customRequest:Nt.customRequest,initIndex:u=>A=>Nt.initIndex(u)(A,{methods:{batch:Nt.batch,delete:Nt.deleteIndex,findAnswers:Nt.findAnswers,getObject:Nt.getObject,getObjects:Nt.getObjects,saveObject:Nt.saveObject,saveObjects:Nt.saveObjects,search:Nt.search,searchForFacetValues:Nt.searchForFacetValues,waitTask:Nt.waitTask,setSettings:Nt.setSettings,getSettings:Nt.getSettings,partialUpdateObject:Nt.partialUpdateObject,partialUpdateObjects:Nt.partialUpdateObjects,deleteObject:Nt.deleteObject,deleteObjects:Nt.deleteObjects,deleteBy:Nt.deleteBy,clearObjects:Nt.clearObjects,browseObjects:Nt.browseObjects,getObjectPosition:Nt.getObjectPosition,findObject:Nt.findObject,exists:Nt.exists,saveSynonym:Nt.saveSynonym,saveSynonyms:Nt.saveSynonyms,getSynonym:Nt.getSynonym,searchSynonyms:Nt.searchSynonyms,browseSynonyms:Nt.browseSynonyms,deleteSynonym:Nt.deleteSynonym,clearSynonyms:Nt.clearSynonyms,replaceAllObjects:Nt.replaceAllObjects,replaceAllSynonyms:Nt.replaceAllSynonyms,searchRules:Nt.searchRules,getRule:Nt.getRule,deleteRule:Nt.deleteRule,saveRule:Nt.saveRule,saveRules:Nt.saveRules,replaceAllRules:Nt.replaceAllRules,browseRules:Nt.browseRules,clearRules:Nt.clearRules}}),initAnalytics:()=>u=>wC.createAnalyticsClient({...o,...u,methods:{addABTest:wC.addABTest,getABTest:wC.getABTest,getABTests:wC.getABTests,stopABTest:wC.stopABTest,deleteABTest:wC.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}Yye.version=JH.version;Kye.exports=Yye});var zH=U((XWt,VH)=>{var Vye=Jye();VH.exports=Vye;VH.exports.default=Vye});var $H=U(($Wt,Zye)=>{"use strict";var Xye=Object.getOwnPropertySymbols,Smt=Object.prototype.hasOwnProperty,xmt=Object.prototype.propertyIsEnumerable;function Pmt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function bmt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Zye.exports=bmt()?Object.assign:function(t,e){for(var r,o=Pmt(t),a,n=1;n{"use strict";var iq=$H(),ru=typeof Symbol=="function"&&Symbol.for,N2=ru?Symbol.for("react.element"):60103,Qmt=ru?Symbol.for("react.portal"):60106,kmt=ru?Symbol.for("react.fragment"):60107,Fmt=ru?Symbol.for("react.strict_mode"):60108,Rmt=ru?Symbol.for("react.profiler"):60114,Tmt=ru?Symbol.for("react.provider"):60109,Lmt=ru?Symbol.for("react.context"):60110,Nmt=ru?Symbol.for("react.forward_ref"):60112,Omt=ru?Symbol.for("react.suspense"):60113,Mmt=ru?Symbol.for("react.memo"):60115,Umt=ru?Symbol.for("react.lazy"):60116,$ye=typeof Symbol=="function"&&Symbol.iterator;function O2(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;rgQ.length&&gQ.push(t)}function tq(t,e,r,o){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var n=!1;if(t===null)n=!0;else switch(a){case"string":case"number":n=!0;break;case"object":switch(t.$$typeof){case N2:case Qmt:n=!0}}if(n)return r(o,t,e===""?"."+eq(t,0):e),1;if(n=0,e=e===""?".":e+":",Array.isArray(t))for(var u=0;u{"use strict";AEe.exports=uEe()});var uq=U((rYt,cq)=>{"use strict";var on=cq.exports;cq.exports.default=on;var kn="\x1B[",M2="\x1B]",vC="\x07",dQ=";",fEe=process.env.TERM_PROGRAM==="Apple_Terminal";on.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?kn+(t+1)+"G":kn+(e+1)+";"+(t+1)+"H"};on.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=kn+-t+"D":t>0&&(r+=kn+t+"C"),e<0?r+=kn+-e+"A":e>0&&(r+=kn+e+"B"),r};on.cursorUp=(t=1)=>kn+t+"A";on.cursorDown=(t=1)=>kn+t+"B";on.cursorForward=(t=1)=>kn+t+"C";on.cursorBackward=(t=1)=>kn+t+"D";on.cursorLeft=kn+"G";on.cursorSavePosition=fEe?"\x1B7":kn+"s";on.cursorRestorePosition=fEe?"\x1B8":kn+"u";on.cursorGetPosition=kn+"6n";on.cursorNextLine=kn+"E";on.cursorPrevLine=kn+"F";on.cursorHide=kn+"?25l";on.cursorShow=kn+"?25h";on.eraseLines=t=>{let e="";for(let r=0;r[M2,"8",dQ,dQ,e,vC,t,M2,"8",dQ,dQ,vC].join("");on.image=(t,e={})=>{let r=`${M2}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+vC};on.iTerm={setCwd:(t=process.cwd())=>`${M2}50;CurrentDir=${t}${vC}`,annotation:(t,e={})=>{let r=`${M2}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+vC}}});var hEe=U((nYt,Aq)=>{"use strict";var pEe=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};Aq.exports=pEe;Aq.exports.default=pEe});var dEe=U((iYt,yQ)=>{"use strict";var Wmt=hEe(),mQ=new WeakMap,gEe=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"",n=function(...u){if(mQ.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return Wmt(n,t),mQ.set(n,o),n};yQ.exports=gEe;yQ.exports.default=gEe;yQ.exports.callCount=t=>{if(!mQ.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return mQ.get(t)}});var mEe=U((sYt,EQ)=>{EQ.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&EQ.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&EQ.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var hq=U((oYt,xC)=>{var gi=global.process,im=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};im(gi)?(yEe=Ie("assert"),DC=mEe(),EEe=/^win/i.test(gi.platform),U2=Ie("events"),typeof U2!="function"&&(U2=U2.EventEmitter),gi.__signal_exit_emitter__?Ps=gi.__signal_exit_emitter__:(Ps=gi.__signal_exit_emitter__=new U2,Ps.count=0,Ps.emitted={}),Ps.infinite||(Ps.setMaxListeners(1/0),Ps.infinite=!0),xC.exports=function(t,e){if(!im(global.process))return function(){};yEe.equal(typeof t,"function","a callback must be provided for exit handler"),SC===!1&&fq();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){Ps.removeListener(r,t),Ps.listeners("exit").length===0&&Ps.listeners("afterexit").length===0&&CQ()};return Ps.on(r,t),o},CQ=function(){!SC||!im(global.process)||(SC=!1,DC.forEach(function(e){try{gi.removeListener(e,IQ[e])}catch{}}),gi.emit=wQ,gi.reallyExit=pq,Ps.count-=1)},xC.exports.unload=CQ,sm=function(e,r,o){Ps.emitted[e]||(Ps.emitted[e]=!0,Ps.emit(e,r,o))},IQ={},DC.forEach(function(t){IQ[t]=function(){if(!!im(global.process)){var r=gi.listeners(t);r.length===Ps.count&&(CQ(),sm("exit",null,t),sm("afterexit",null,t),EEe&&t==="SIGHUP"&&(t="SIGINT"),gi.kill(gi.pid,t))}}}),xC.exports.signals=function(){return DC},SC=!1,fq=function(){SC||!im(global.process)||(SC=!0,Ps.count+=1,DC=DC.filter(function(e){try{return gi.on(e,IQ[e]),!0}catch{return!1}}),gi.emit=IEe,gi.reallyExit=CEe)},xC.exports.load=fq,pq=gi.reallyExit,CEe=function(e){!im(global.process)||(gi.exitCode=e||0,sm("exit",gi.exitCode,null),sm("afterexit",gi.exitCode,null),pq.call(gi,gi.exitCode))},wQ=gi.emit,IEe=function(e,r){if(e==="exit"&&im(global.process)){r!==void 0&&(gi.exitCode=r);var o=wQ.apply(this,arguments);return sm("exit",gi.exitCode,null),sm("afterexit",gi.exitCode,null),o}else return wQ.apply(this,arguments)}):xC.exports=function(){return function(){}};var yEe,DC,EEe,U2,Ps,CQ,sm,IQ,SC,fq,pq,CEe,wQ,IEe});var BEe=U((aYt,wEe)=>{"use strict";var Ymt=dEe(),Kmt=hq();wEe.exports=Ymt(()=>{Kmt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var gq=U(PC=>{"use strict";var Jmt=BEe(),BQ=!1;PC.show=(t=process.stderr)=>{!t.isTTY||(BQ=!1,t.write("\x1B[?25h"))};PC.hide=(t=process.stderr)=>{!t.isTTY||(Jmt(),BQ=!0,t.write("\x1B[?25l"))};PC.toggle=(t,e)=>{t!==void 0&&(BQ=t),BQ?PC.show(e):PC.hide(e)}});var xEe=U(_2=>{"use strict";var SEe=_2&&_2.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_2,"__esModule",{value:!0});var vEe=SEe(uq()),DEe=SEe(gq()),Vmt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&(DEe.default.hide(),a=!0);let A=u+` `;A!==o&&(o=A,t.write(vEe.default.eraseLines(r)+A),r=A.split(` `).length)};return n.clear=()=>{t.write(vEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||(DEe.default.show(),a=!1)},n};_2.default={create:Vmt}});var PEe=U((uYt,zmt)=>{zmt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var kEe=U(gl=>{"use strict";var QEe=PEe(),gA=process.env;Object.defineProperty(gl,"_vendors",{value:QEe.map(function(t){return t.constant})});gl.name=null;gl.isPR=null;QEe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return bEe(o)});if(gl[t.constant]=r,r)switch(gl.name=t.name,typeof t.pr){case"string":gl.isPR=!!gA[t.pr];break;case"object":"env"in t.pr?gl.isPR=t.pr.env in gA&&gA[t.pr.env]!==t.pr.ne:"any"in t.pr?gl.isPR=t.pr.any.some(function(o){return!!gA[o]}):gl.isPR=bEe(t.pr);break;default:gl.isPR=null}});gl.isCI=!!(gA.CI||gA.CONTINUOUS_INTEGRATION||gA.BUILD_NUMBER||gA.RUN_ID||gl.name);function bEe(t){return typeof t=="string"?!!gA[t]:Object.keys(t).every(function(e){return gA[e]===t[e]})}});var REe=U((fYt,FEe)=>{"use strict";FEe.exports=kEe().isCI});var LEe=U((pYt,TEe)=>{"use strict";var Xmt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};TEe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Xmt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var qEe=U(vn=>{"use strict";Object.defineProperty(vn,"__esModule",{value:!0});var QC,j2,PQ,bQ,wq;typeof window>"u"||typeof MessageChannel!="function"?(bC=null,dq=null,mq=function(){if(bC!==null)try{var t=vn.unstable_now();bC(!0,t),bC=null}catch(e){throw setTimeout(mq,0),e}},NEe=Date.now(),vn.unstable_now=function(){return Date.now()-NEe},QC=function(t){bC!==null?setTimeout(QC,0,t):(bC=t,setTimeout(mq,0))},j2=function(t,e){dq=setTimeout(t,e)},PQ=function(){clearTimeout(dq)},bQ=function(){return!1},wq=vn.unstable_forceFrameRate=function(){}):(vQ=window.performance,yq=window.Date,OEe=window.setTimeout,MEe=window.clearTimeout,typeof console<"u"&&(UEe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof UEe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof vQ=="object"&&typeof vQ.now=="function"?vn.unstable_now=function(){return vQ.now()}:(_Ee=yq.now(),vn.unstable_now=function(){return yq.now()-_Ee}),H2=!1,q2=null,DQ=-1,Eq=5,Cq=0,bQ=function(){return vn.unstable_now()>=Cq},wq=function(){},vn.unstable_forceFrameRate=function(t){0>t||125xQ(u,r))p!==void 0&&0>xQ(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>xQ(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function xQ(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var nu=[],gh=[],Zmt=1,$o=null,Ro=3,kQ=!1,om=!1,G2=!1;function FQ(t){for(var e=oc(gh);e!==null;){if(e.callback===null)QQ(gh);else if(e.startTime<=t)QQ(gh),e.sortIndex=e.expirationTime,Bq(nu,e);else break;e=oc(gh)}}function vq(t){if(G2=!1,FQ(t),!om)if(oc(nu)!==null)om=!0,QC(Dq);else{var e=oc(gh);e!==null&&j2(vq,e.startTime-t)}}function Dq(t,e){om=!1,G2&&(G2=!1,PQ()),kQ=!0;var r=Ro;try{for(FQ(e),$o=oc(nu);$o!==null&&(!($o.expirationTime>e)||t&&!bQ());){var o=$o.callback;if(o!==null){$o.callback=null,Ro=$o.priorityLevel;var a=o($o.expirationTime<=e);e=vn.unstable_now(),typeof a=="function"?$o.callback=a:$o===oc(nu)&&QQ(nu),FQ(e)}else QQ(nu);$o=oc(nu)}if($o!==null)var n=!0;else{var u=oc(gh);u!==null&&j2(vq,u.startTime-e),n=!1}return n}finally{$o=null,Ro=r,kQ=!1}}function HEe(t){switch(t){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var $mt=wq;vn.unstable_ImmediatePriority=1;vn.unstable_UserBlockingPriority=2;vn.unstable_NormalPriority=3;vn.unstable_IdlePriority=5;vn.unstable_LowPriority=4;vn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=Ro;Ro=t;try{return e()}finally{Ro=r}};vn.unstable_next=function(t){switch(Ro){case 1:case 2:case 3:var e=3;break;default:e=Ro}var r=Ro;Ro=e;try{return t()}finally{Ro=r}};vn.unstable_scheduleCallback=function(t,e,r){var o=vn.unstable_now();if(typeof r=="object"&&r!==null){var a=r.delay;a=typeof a=="number"&&0o?(t.sortIndex=a,Bq(gh,t),oc(nu)===null&&t===oc(gh)&&(G2?PQ():G2=!0,j2(vq,a-o))):(t.sortIndex=r,Bq(nu,t),om||kQ||(om=!0,QC(Dq))),t};vn.unstable_cancelCallback=function(t){t.callback=null};vn.unstable_wrapCallback=function(t){var e=Ro;return function(){var r=Ro;Ro=e;try{return t.apply(this,arguments)}finally{Ro=r}}};vn.unstable_getCurrentPriorityLevel=function(){return Ro};vn.unstable_shouldYield=function(){var t=vn.unstable_now();FQ(t);var e=oc(nu);return e!==$o&&$o!==null&&e!==null&&e.callback!==null&&e.startTime<=t&&e.expirationTime<$o.expirationTime||bQ()};vn.unstable_requestPaint=$mt;vn.unstable_continueExecution=function(){om||kQ||(om=!0,QC(Dq))};vn.unstable_pauseExecution=function(){};vn.unstable_getFirstCallbackNode=function(){return oc(nu)};vn.unstable_Profiling=null});var Sq=U((gYt,jEe)=>{"use strict";jEe.exports=qEe()});var GEe=U((dYt,W2)=>{W2.exports=function t(e){"use strict";var r=$H(),o=en(),a=Sq();function n(S){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+S,T=1;Tio||(S.current=yl[io],yl[io]=null,io--)}function Fn(S,D){io++,yl[io]=S.current,S.current=D}var Fi={},Rn={current:Fi},Ui={current:!1},Zt=Fi;function Ri(S,D){var T=S.type.contextTypes;if(!T)return Fi;var q=S.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var W={},ce;for(ce in T)W[ce]=D[ce];return q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=D,S.__reactInternalMemoizedMaskedChildContext=W),W}function Zn(S){return S=S.childContextTypes,S!=null}function Oa(S){_e(Ui,S),_e(Rn,S)}function $t(S){_e(Ui,S),_e(Rn,S)}function fc(S,D,T){if(Rn.current!==Fi)throw Error(n(168));Fn(Rn,D,S),Fn(Ui,T,S)}function du(S,D,T){var q=S.stateNode;if(S=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var W in q)if(!(W in S))throw Error(n(108,ge(D)||"Unknown",W));return r({},T,{},q)}function pc(S){var D=S.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Fi,Zt=Rn.current,Fn(Rn,D,S),Fn(Ui,Ui.current,S),!0}function El(S,D,T){var q=S.stateNode;if(!q)throw Error(n(169));T?(D=du(S,D,Zt),q.__reactInternalMemoizedMergedChildContext=D,_e(Ui,S),_e(Rn,S),Fn(Rn,D,S)):_e(Ui,S),Fn(Ui,T,S)}var SA=a.unstable_runWithPriority,mu=a.unstable_scheduleCallback,Ce=a.unstable_cancelCallback,Rt=a.unstable_shouldYield,hc=a.unstable_requestPaint,_i=a.unstable_now,yu=a.unstable_getCurrentPriorityLevel,qt=a.unstable_ImmediatePriority,Cl=a.unstable_UserBlockingPriority,xA=a.unstable_NormalPriority,cp=a.unstable_LowPriority,gc=a.unstable_IdlePriority,PA={},Dn=hc!==void 0?hc:function(){},ui=null,dc=null,bA=!1,ta=_i(),Hi=1e4>ta?_i:function(){return _i()-ta};function No(){switch(yu()){case qt:return 99;case Cl:return 98;case xA:return 97;case cp:return 96;case gc:return 95;default:throw Error(n(332))}}function $e(S){switch(S){case 99:return qt;case 98:return Cl;case 97:return xA;case 96:return cp;case 95:return gc;default:throw Error(n(332))}}function so(S,D){return S=$e(S),SA(S,D)}function Il(S,D,T){return S=$e(S),mu(S,D,T)}function Eu(S){return ui===null?(ui=[S],dc=mu(qt,Cu)):ui.push(S),PA}function qi(){if(dc!==null){var S=dc;dc=null,Ce(S)}Cu()}function Cu(){if(!bA&&ui!==null){bA=!0;var S=0;try{var D=ui;so(99,function(){for(;S=D&&(Mo=!0),S.firstContext=null)}function Ns(S,D){if(na!==S&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(na=S,D=1073741823),D={context:S,observedBits:D,next:null},Rs===null){if(oo===null)throw Error(n(308));Rs=D,oo.dependencies={expirationTime:0,firstContext:D,responders:null}}else Rs=Rs.next=D;return P?S._currentValue:S._currentValue2}var ao=!1;function Wn(S){return{baseState:S,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function qn(S){return{baseState:S.baseState,firstUpdate:S.firstUpdate,lastUpdate:S.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function $i(S,D){return{expirationTime:S,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function es(S,D){S.lastUpdate===null?S.firstUpdate=S.lastUpdate=D:(S.lastUpdate.next=D,S.lastUpdate=D)}function mi(S,D){var T=S.alternate;if(T===null){var q=S.updateQueue,W=null;q===null&&(q=S.updateQueue=Wn(S.memoizedState))}else q=S.updateQueue,W=T.updateQueue,q===null?W===null?(q=S.updateQueue=Wn(S.memoizedState),W=T.updateQueue=Wn(T.memoizedState)):q=S.updateQueue=qn(W):W===null&&(W=T.updateQueue=qn(q));W===null||q===W?es(q,D):q.lastUpdate===null||W.lastUpdate===null?(es(q,D),es(W,D)):(es(q,D),W.lastUpdate=D)}function Ua(S,D){var T=S.updateQueue;T=T===null?S.updateQueue=Wn(S.memoizedState):sa(S,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function sa(S,D){var T=S.alternate;return T!==null&&D===T.updateQueue&&(D=S.updateQueue=qn(D)),D}function ee(S,D,T,q,W,ce){switch(T.tag){case 1:return S=T.payload,typeof S=="function"?S.call(ce,q,W):S;case 3:S.effectTag=S.effectTag&-4097|64;case 0:if(S=T.payload,W=typeof S=="function"?S.call(ce,q,W):S,W==null)break;return r({},q,W);case 2:ao=!0}return q}function we(S,D,T,q,W){ao=!1,D=sa(S,D);for(var ce=D.baseState,Se=null,It=0,Et=D.firstUpdate,Pt=ce;Et!==null;){var Lr=Et.expirationTime;Lrwn?(ri=Sr,Sr=null):ri=Sr.sibling;var Xr=fi(rt,Sr,ft[wn],jt);if(Xr===null){Sr===null&&(Sr=ri);break}S&&Sr&&Xr.alternate===null&&D(rt,Sr),Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr,Sr=ri}if(wn===ft.length)return T(rt,Sr),Er;if(Sr===null){for(;wnwn?(ri=Sr,Sr=null):ri=Sr.sibling;var fo=fi(rt,Sr,Xr.value,jt);if(fo===null){Sr===null&&(Sr=ri);break}S&&Sr&&fo.alternate===null&&D(rt,Sr),Ve=ce(fo,Ve,wn),In===null?Er=fo:In.sibling=fo,In=fo,Sr=ri}if(Xr.done)return T(rt,Sr),Er;if(Sr===null){for(;!Xr.done;wn++,Xr=ft.next())Xr=is(rt,Xr.value,jt),Xr!==null&&(Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return Er}for(Sr=q(rt,Sr);!Xr.done;wn++,Xr=ft.next())Xr=Ao(Sr,rt,wn,Xr.value,jt),Xr!==null&&(S&&Xr.alternate!==null&&Sr.delete(Xr.key===null?wn:Xr.key),Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return S&&Sr.forEach(function(yF){return D(rt,yF)}),Er}return function(rt,Ve,ft,jt){var Er=typeof ft=="object"&&ft!==null&&ft.type===C&&ft.key===null;Er&&(ft=ft.props.children);var In=typeof ft=="object"&&ft!==null;if(In)switch(ft.$$typeof){case p:e:{for(In=ft.key,Er=Ve;Er!==null;){if(Er.key===In)if(Er.tag===7?ft.type===C:Er.elementType===ft.type){T(rt,Er.sibling),Ve=W(Er,ft.type===C?ft.props.children:ft.props,jt),Ve.ref=Yn(rt,Er,ft),Ve.return=rt,rt=Ve;break e}else{T(rt,Er);break}else D(rt,Er);Er=Er.sibling}ft.type===C?(Ve=Fu(ft.props.children,rt.mode,jt,ft.key),Ve.return=rt,rt=Ve):(jt=_m(ft.type,ft.key,ft.props,null,rt.mode,jt),jt.ref=Yn(rt,Ve,ft),jt.return=rt,rt=jt)}return Se(rt);case h:e:{for(Er=ft.key;Ve!==null;){if(Ve.key===Er)if(Ve.tag===4&&Ve.stateNode.containerInfo===ft.containerInfo&&Ve.stateNode.implementation===ft.implementation){T(rt,Ve.sibling),Ve=W(Ve,ft.children||[],jt),Ve.return=rt,rt=Ve;break e}else{T(rt,Ve);break}else D(rt,Ve);Ve=Ve.sibling}Ve=II(ft,rt.mode,jt),Ve.return=rt,rt=Ve}return Se(rt)}if(typeof ft=="string"||typeof ft=="number")return ft=""+ft,Ve!==null&&Ve.tag===6?(T(rt,Ve.sibling),Ve=W(Ve,ft,jt),Ve.return=rt,rt=Ve):(T(rt,Ve),Ve=CI(ft,rt.mode,jt),Ve.return=rt,rt=Ve),Se(rt);if(Ti(ft))return KA(rt,Ve,ft,jt);if(he(ft))return _o(rt,Ve,ft,jt);if(In&&Ha(rt,ft),typeof ft>"u"&&!Er)switch(rt.tag){case 1:case 0:throw rt=rt.type,Error(n(152,rt.displayName||rt.name||"Component"))}return T(rt,Ve)}}var yi=oa(!0),aa=oa(!1),qa={},lo={current:qa},kA={current:qa},yc={current:qa};function la(S){if(S===qa)throw Error(n(174));return S}function eg(S,D){Fn(yc,D,S),Fn(kA,S,S),Fn(lo,qa,S),D=ne(D),_e(lo,S),Fn(lo,D,S)}function Ec(S){_e(lo,S),_e(kA,S),_e(yc,S)}function Dm(S){var D=la(yc.current),T=la(lo.current);D=Z(T,S.type,D),T!==D&&(Fn(kA,S,S),Fn(lo,D,S))}function tg(S){kA.current===S&&(_e(lo,S),_e(kA,S))}var Kn={current:0};function up(S){for(var D=S;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Qs(T)||ro(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if((D.effectTag&64)!==0)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break;for(;D.sibling===null;){if(D.return===null||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function rg(S,D){return{responder:S,props:D}}var FA=u.ReactCurrentDispatcher,Os=u.ReactCurrentBatchConfig,Iu=0,ja=null,ji=null,ca=null,wu=null,ms=null,Cc=null,Ic=0,G=null,Dt=0,wl=!1,Si=null,wc=0;function lt(){throw Error(n(321))}function Bu(S,D){if(D===null)return!1;for(var T=0;TIc&&(Ic=Lr,Um(Ic))):(gI(Lr,Et.suspenseConfig),ce=Et.eagerReducer===S?Et.eagerState:S(ce,Et.action)),Se=Et,Et=Et.next}while(Et!==null&&Et!==q);Pt||(It=Se,W=ce),ds(ce,D.memoizedState)||(Mo=!0),D.memoizedState=ce,D.baseUpdate=It,D.baseState=W,T.lastRenderedState=ce}return[D.memoizedState,T.dispatch]}function ig(S){var D=RA();return typeof S=="function"&&(S=S()),D.memoizedState=D.baseState=S,S=D.queue={last:null,dispatch:null,lastRenderedReducer:yr,lastRenderedState:S},S=S.dispatch=cg.bind(null,ja,S),[D.memoizedState,S]}function sg(S){return ys(yr,S)}function og(S,D,T,q){return S={tag:S,create:D,destroy:T,deps:q,next:null},G===null?(G={lastEffect:null},G.lastEffect=S.next=S):(D=G.lastEffect,D===null?G.lastEffect=S.next=S:(T=D.next,D.next=S,S.next=T,G.lastEffect=S)),S}function fp(S,D,T,q){var W=RA();Dt|=S,W.memoizedState=og(D,T,void 0,q===void 0?null:q)}function Bc(S,D,T,q){var W=Ap();q=q===void 0?null:q;var ce=void 0;if(ji!==null){var Se=ji.memoizedState;if(ce=Se.destroy,q!==null&&Bu(q,Se.deps)){og(0,T,ce,q);return}}Dt|=S,W.memoizedState=og(D,T,ce,q)}function mt(S,D){return fp(516,192,S,D)}function Sm(S,D){return Bc(516,192,S,D)}function ag(S,D){if(typeof D=="function")return S=S(),D(S),function(){D(null)};if(D!=null)return S=S(),D.current=S,function(){D.current=null}}function lg(){}function vu(S,D){return RA().memoizedState=[S,D===void 0?null:D],S}function xm(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(T.memoizedState=[S,D],S)}function cg(S,D,T){if(!(25>wc))throw Error(n(301));var q=S.alternate;if(S===ja||q!==null&&q===ja)if(wl=!0,S={expirationTime:Iu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},Si===null&&(Si=new Map),T=Si.get(D),T===void 0)Si.set(D,S);else{for(D=T;D.next!==null;)D=D.next;D.next=S}else{var W=ha(),ce=Pe.suspense;W=HA(W,S,ce),ce={expirationTime:W,suspenseConfig:ce,action:T,eagerReducer:null,eagerState:null,next:null};var Se=D.last;if(Se===null)ce.next=ce;else{var It=Se.next;It!==null&&(ce.next=It),Se.next=ce}if(D.last=ce,S.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var Et=D.lastRenderedState,Pt=q(Et,T);if(ce.eagerReducer=q,ce.eagerState=Pt,ds(Pt,Et))return}catch{}finally{}Pc(S,W)}}var Du={readContext:Ns,useCallback:lt,useContext:lt,useEffect:lt,useImperativeHandle:lt,useLayoutEffect:lt,useMemo:lt,useReducer:lt,useRef:lt,useState:lt,useDebugValue:lt,useResponder:lt,useDeferredValue:lt,useTransition:lt},aI={readContext:Ns,useCallback:vu,useContext:Ns,useEffect:mt,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,fp(4,36,ag.bind(null,D,S),T)},useLayoutEffect:function(S,D){return fp(4,36,S,D)},useMemo:function(S,D){var T=RA();return D=D===void 0?null:D,S=S(),T.memoizedState=[S,D],S},useReducer:function(S,D,T){var q=RA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,S=q.queue={last:null,dispatch:null,lastRenderedReducer:S,lastRenderedState:D},S=S.dispatch=cg.bind(null,ja,S),[q.memoizedState,S]},useRef:function(S){var D=RA();return S={current:S},D.memoizedState=S},useState:ig,useDebugValue:lg,useResponder:rg,useDeferredValue:function(S,D){var T=ig(S),q=T[0],W=T[1];return mt(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=ig(!1),T=D[0],q=D[1];return[vu(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},Pm={readContext:Ns,useCallback:xm,useContext:Ns,useEffect:Sm,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,Bc(4,36,ag.bind(null,D,S),T)},useLayoutEffect:function(S,D){return Bc(4,36,S,D)},useMemo:function(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(S=S(),T.memoizedState=[S,D],S)},useReducer:ys,useRef:function(){return Ap().memoizedState},useState:sg,useDebugValue:lg,useResponder:rg,useDeferredValue:function(S,D){var T=sg(S),q=T[0],W=T[1];return Sm(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=sg(!1),T=D[0],q=D[1];return[xm(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},ua=null,vc=null,Bl=!1;function Su(S,D){var T=Sl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=S,T.effectTag=8,S.lastEffect!==null?(S.lastEffect.nextEffect=T,S.lastEffect=T):S.firstEffect=S.lastEffect=T}function ug(S,D){switch(S.tag){case 5:return D=to(D,S.type,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 6:return D=Di(D,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function TA(S){if(Bl){var D=vc;if(D){var T=D;if(!ug(S,D)){if(D=Ac(T),!D||!ug(S,D)){S.effectTag=S.effectTag&-1025|2,Bl=!1,ua=S;return}Su(ua,T)}ua=S,vc=gu(D)}else S.effectTag=S.effectTag&-1025|2,Bl=!1,ua=S}}function pp(S){for(S=S.return;S!==null&&S.tag!==5&&S.tag!==3&&S.tag!==13;)S=S.return;ua=S}function Ga(S){if(!y||S!==ua)return!1;if(!Bl)return pp(S),Bl=!0,!1;var D=S.type;if(S.tag!==5||D!=="head"&&D!=="body"&&!Te(D,S.memoizedProps))for(D=vc;D;)Su(S,D),D=Ac(D);if(pp(S),S.tag===13){if(!y)throw Error(n(316));if(S=S.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));vc=ks(S)}else vc=ua?Ac(S.stateNode):null;return!0}function Ag(){y&&(vc=ua=null,Bl=!1)}var hp=u.ReactCurrentOwner,Mo=!1;function Es(S,D,T,q){D.child=S===null?aa(D,null,T,q):yi(D,S.child,T,q)}function Ei(S,D,T,q,W){T=T.render;var ce=D.ref;return Ls(D,W),q=ng(S,D,T,q,ce,W),S!==null&&!Mo?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=W&&(S.expirationTime=0),ei(S,D,W)):(D.effectTag|=1,Es(S,D,q,W),D.child)}function bm(S,D,T,q,W,ce){if(S===null){var Se=T.type;return typeof Se=="function"&&!EI(Se)&&Se.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=Se,Qm(S,D,Se,q,W,ce)):(S=_m(T.type,null,q,null,D.mode,ce),S.ref=D.ref,S.return=D,D.child=S)}return Se=S.child,WD)&&_A.set(S,D)))}}function Eg(S,D){S.expirationTimeS?D:S)}function uo(S){if(S.lastExpiredTime!==0)S.callbackExpirationTime=1073741823,S.callbackPriority=99,S.callbackNode=Eu(hI.bind(null,S));else{var D=Mm(S),T=S.callbackNode;if(D===0)T!==null&&(S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90);else{var q=ha();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var W=S.callbackPriority;if(S.callbackExpirationTime===D&&W>=q)return;T!==PA&&Ce(T)}S.callbackExpirationTime=D,S.callbackPriority=q,D=D===1073741823?Eu(hI.bind(null,S)):Il(q,xv.bind(null,S),{timeout:10*(1073741821-D)-Hi()}),S.callbackNode=D}}}function xv(S,D){if(Om=0,D)return D=ha(),Hm(S,D),uo(S),null;var T=Mm(S);if(T!==0){if(D=S.callbackNode,(pr&(rs|Ms))!==gn)throw Error(n(327));if(Ip(),S===Ai&&T===ns||Qu(S,T),Fr!==null){var q=pr;pr|=rs;var W=jA(S);do try{aF();break}catch(It){qA(S,It)}while(1);if(ia(),pr=q,yp.current=W,Gi===Rm)throw D=Tm,Qu(S,T),YA(S,T),uo(S),D;if(Fr===null)switch(W=S.finishedWork=S.current.alternate,S.finishedExpirationTime=T,q=Gi,Ai=null,q){case xu:case Rm:throw Error(n(345));case Ci:Hm(S,2=T){S.lastPingedTime=T,Qu(S,T);break}}if(ce=Mm(S),ce!==0&&ce!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}S.timeoutHandle=je(ku.bind(null,S),W);break}ku(S);break;case Dl:if(YA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=dI(W)),MA&&(W=S.lastPingedTime,W===0||W>=T)){S.lastPingedTime=T,Qu(S,T);break}if(W=Mm(S),W!==0&&W!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}if(OA!==1073741823?q=10*(1073741821-OA)-Hi():Ka===1073741823?q=0:(q=10*(1073741821-Ka)-5e3,W=Hi(),T=10*(1073741821-T)-W,q=W-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*cI(q/1960))-q,T=q?q=0:(W=Se.busyDelayMs|0,ce=Hi()-(10*(1073741821-ce)-(Se.timeoutMs|0||5e3)),q=ce<=W?0:W+q-ce),10io||(S.current=yl[io],yl[io]=null,io--)}function Fn(S,D){io++,yl[io]=S.current,S.current=D}var Fi={},Rn={current:Fi},Ui={current:!1},Zt=Fi;function Ri(S,D){var T=S.type.contextTypes;if(!T)return Fi;var q=S.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var W={},ce;for(ce in T)W[ce]=D[ce];return q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=D,S.__reactInternalMemoizedMaskedChildContext=W),W}function Zn(S){return S=S.childContextTypes,S!=null}function Oa(S){_e(Ui,S),_e(Rn,S)}function $t(S){_e(Ui,S),_e(Rn,S)}function fc(S,D,T){if(Rn.current!==Fi)throw Error(n(168));Fn(Rn,D,S),Fn(Ui,T,S)}function du(S,D,T){var q=S.stateNode;if(S=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var W in q)if(!(W in S))throw Error(n(108,ge(D)||"Unknown",W));return r({},T,{},q)}function pc(S){var D=S.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Fi,Zt=Rn.current,Fn(Rn,D,S),Fn(Ui,Ui.current,S),!0}function El(S,D,T){var q=S.stateNode;if(!q)throw Error(n(169));T?(D=du(S,D,Zt),q.__reactInternalMemoizedMergedChildContext=D,_e(Ui,S),_e(Rn,S),Fn(Rn,D,S)):_e(Ui,S),Fn(Ui,T,S)}var SA=a.unstable_runWithPriority,mu=a.unstable_scheduleCallback,Ce=a.unstable_cancelCallback,Rt=a.unstable_shouldYield,hc=a.unstable_requestPaint,_i=a.unstable_now,yu=a.unstable_getCurrentPriorityLevel,qt=a.unstable_ImmediatePriority,Cl=a.unstable_UserBlockingPriority,xA=a.unstable_NormalPriority,cp=a.unstable_LowPriority,gc=a.unstable_IdlePriority,PA={},Dn=hc!==void 0?hc:function(){},ui=null,dc=null,bA=!1,ta=_i(),Hi=1e4>ta?_i:function(){return _i()-ta};function No(){switch(yu()){case qt:return 99;case Cl:return 98;case xA:return 97;case cp:return 96;case gc:return 95;default:throw Error(n(332))}}function $e(S){switch(S){case 99:return qt;case 98:return Cl;case 97:return xA;case 96:return cp;case 95:return gc;default:throw Error(n(332))}}function so(S,D){return S=$e(S),SA(S,D)}function Il(S,D,T){return S=$e(S),mu(S,D,T)}function Eu(S){return ui===null?(ui=[S],dc=mu(qt,Cu)):ui.push(S),PA}function qi(){if(dc!==null){var S=dc;dc=null,Ce(S)}Cu()}function Cu(){if(!bA&&ui!==null){bA=!0;var S=0;try{var D=ui;so(99,function(){for(;S=D&&(Mo=!0),S.firstContext=null)}function Ns(S,D){if(na!==S&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(na=S,D=1073741823),D={context:S,observedBits:D,next:null},Rs===null){if(oo===null)throw Error(n(308));Rs=D,oo.dependencies={expirationTime:0,firstContext:D,responders:null}}else Rs=Rs.next=D;return P?S._currentValue:S._currentValue2}var ao=!1;function Wn(S){return{baseState:S,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function qn(S){return{baseState:S.baseState,firstUpdate:S.firstUpdate,lastUpdate:S.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function $i(S,D){return{expirationTime:S,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function es(S,D){S.lastUpdate===null?S.firstUpdate=S.lastUpdate=D:(S.lastUpdate.next=D,S.lastUpdate=D)}function mi(S,D){var T=S.alternate;if(T===null){var q=S.updateQueue,W=null;q===null&&(q=S.updateQueue=Wn(S.memoizedState))}else q=S.updateQueue,W=T.updateQueue,q===null?W===null?(q=S.updateQueue=Wn(S.memoizedState),W=T.updateQueue=Wn(T.memoizedState)):q=S.updateQueue=qn(W):W===null&&(W=T.updateQueue=qn(q));W===null||q===W?es(q,D):q.lastUpdate===null||W.lastUpdate===null?(es(q,D),es(W,D)):(es(q,D),W.lastUpdate=D)}function Ua(S,D){var T=S.updateQueue;T=T===null?S.updateQueue=Wn(S.memoizedState):sa(S,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function sa(S,D){var T=S.alternate;return T!==null&&D===T.updateQueue&&(D=S.updateQueue=qn(D)),D}function ee(S,D,T,q,W,ce){switch(T.tag){case 1:return S=T.payload,typeof S=="function"?S.call(ce,q,W):S;case 3:S.effectTag=S.effectTag&-4097|64;case 0:if(S=T.payload,W=typeof S=="function"?S.call(ce,q,W):S,W==null)break;return r({},q,W);case 2:ao=!0}return q}function we(S,D,T,q,W){ao=!1,D=sa(S,D);for(var ce=D.baseState,Se=null,It=0,Et=D.firstUpdate,Pt=ce;Et!==null;){var Lr=Et.expirationTime;Lrwn?(ri=Sr,Sr=null):ri=Sr.sibling;var Xr=fi(rt,Sr,ft[wn],jt);if(Xr===null){Sr===null&&(Sr=ri);break}S&&Sr&&Xr.alternate===null&&D(rt,Sr),Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr,Sr=ri}if(wn===ft.length)return T(rt,Sr),Er;if(Sr===null){for(;wnwn?(ri=Sr,Sr=null):ri=Sr.sibling;var fo=fi(rt,Sr,Xr.value,jt);if(fo===null){Sr===null&&(Sr=ri);break}S&&Sr&&fo.alternate===null&&D(rt,Sr),Ve=ce(fo,Ve,wn),In===null?Er=fo:In.sibling=fo,In=fo,Sr=ri}if(Xr.done)return T(rt,Sr),Er;if(Sr===null){for(;!Xr.done;wn++,Xr=ft.next())Xr=is(rt,Xr.value,jt),Xr!==null&&(Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return Er}for(Sr=q(rt,Sr);!Xr.done;wn++,Xr=ft.next())Xr=Ao(Sr,rt,wn,Xr.value,jt),Xr!==null&&(S&&Xr.alternate!==null&&Sr.delete(Xr.key===null?wn:Xr.key),Ve=ce(Xr,Ve,wn),In===null?Er=Xr:In.sibling=Xr,In=Xr);return S&&Sr.forEach(function(yF){return D(rt,yF)}),Er}return function(rt,Ve,ft,jt){var Er=typeof ft=="object"&&ft!==null&&ft.type===C&&ft.key===null;Er&&(ft=ft.props.children);var In=typeof ft=="object"&&ft!==null;if(In)switch(ft.$$typeof){case p:e:{for(In=ft.key,Er=Ve;Er!==null;){if(Er.key===In)if(Er.tag===7?ft.type===C:Er.elementType===ft.type){T(rt,Er.sibling),Ve=W(Er,ft.type===C?ft.props.children:ft.props,jt),Ve.ref=Yn(rt,Er,ft),Ve.return=rt,rt=Ve;break e}else{T(rt,Er);break}else D(rt,Er);Er=Er.sibling}ft.type===C?(Ve=Fu(ft.props.children,rt.mode,jt,ft.key),Ve.return=rt,rt=Ve):(jt=_m(ft.type,ft.key,ft.props,null,rt.mode,jt),jt.ref=Yn(rt,Ve,ft),jt.return=rt,rt=jt)}return Se(rt);case h:e:{for(Er=ft.key;Ve!==null;){if(Ve.key===Er)if(Ve.tag===4&&Ve.stateNode.containerInfo===ft.containerInfo&&Ve.stateNode.implementation===ft.implementation){T(rt,Ve.sibling),Ve=W(Ve,ft.children||[],jt),Ve.return=rt,rt=Ve;break e}else{T(rt,Ve);break}else D(rt,Ve);Ve=Ve.sibling}Ve=II(ft,rt.mode,jt),Ve.return=rt,rt=Ve}return Se(rt)}if(typeof ft=="string"||typeof ft=="number")return ft=""+ft,Ve!==null&&Ve.tag===6?(T(rt,Ve.sibling),Ve=W(Ve,ft,jt),Ve.return=rt,rt=Ve):(T(rt,Ve),Ve=CI(ft,rt.mode,jt),Ve.return=rt,rt=Ve),Se(rt);if(Ti(ft))return KA(rt,Ve,ft,jt);if(he(ft))return _o(rt,Ve,ft,jt);if(In&&Ha(rt,ft),typeof ft>"u"&&!Er)switch(rt.tag){case 1:case 0:throw rt=rt.type,Error(n(152,rt.displayName||rt.name||"Component"))}return T(rt,Ve)}}var yi=oa(!0),aa=oa(!1),qa={},lo={current:qa},kA={current:qa},yc={current:qa};function la(S){if(S===qa)throw Error(n(174));return S}function eg(S,D){Fn(yc,D,S),Fn(kA,S,S),Fn(lo,qa,S),D=ne(D),_e(lo,S),Fn(lo,D,S)}function Ec(S){_e(lo,S),_e(kA,S),_e(yc,S)}function Dm(S){var D=la(yc.current),T=la(lo.current);D=Z(T,S.type,D),T!==D&&(Fn(kA,S,S),Fn(lo,D,S))}function tg(S){kA.current===S&&(_e(lo,S),_e(kA,S))}var Kn={current:0};function up(S){for(var D=S;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Qs(T)||ro(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if((D.effectTag&64)!==0)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break;for(;D.sibling===null;){if(D.return===null||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function rg(S,D){return{responder:S,props:D}}var FA=u.ReactCurrentDispatcher,Os=u.ReactCurrentBatchConfig,Iu=0,ja=null,ji=null,ca=null,wu=null,ms=null,Cc=null,Ic=0,G=null,Dt=0,wl=!1,Si=null,wc=0;function lt(){throw Error(n(321))}function Bu(S,D){if(D===null)return!1;for(var T=0;TIc&&(Ic=Lr,Um(Ic))):(gI(Lr,Et.suspenseConfig),ce=Et.eagerReducer===S?Et.eagerState:S(ce,Et.action)),Se=Et,Et=Et.next}while(Et!==null&&Et!==q);Pt||(It=Se,W=ce),ds(ce,D.memoizedState)||(Mo=!0),D.memoizedState=ce,D.baseUpdate=It,D.baseState=W,T.lastRenderedState=ce}return[D.memoizedState,T.dispatch]}function ig(S){var D=RA();return typeof S=="function"&&(S=S()),D.memoizedState=D.baseState=S,S=D.queue={last:null,dispatch:null,lastRenderedReducer:yr,lastRenderedState:S},S=S.dispatch=cg.bind(null,ja,S),[D.memoizedState,S]}function sg(S){return ys(yr,S)}function og(S,D,T,q){return S={tag:S,create:D,destroy:T,deps:q,next:null},G===null?(G={lastEffect:null},G.lastEffect=S.next=S):(D=G.lastEffect,D===null?G.lastEffect=S.next=S:(T=D.next,D.next=S,S.next=T,G.lastEffect=S)),S}function fp(S,D,T,q){var W=RA();Dt|=S,W.memoizedState=og(D,T,void 0,q===void 0?null:q)}function Bc(S,D,T,q){var W=Ap();q=q===void 0?null:q;var ce=void 0;if(ji!==null){var Se=ji.memoizedState;if(ce=Se.destroy,q!==null&&Bu(q,Se.deps)){og(0,T,ce,q);return}}Dt|=S,W.memoizedState=og(D,T,ce,q)}function mt(S,D){return fp(516,192,S,D)}function Sm(S,D){return Bc(516,192,S,D)}function ag(S,D){if(typeof D=="function")return S=S(),D(S),function(){D(null)};if(D!=null)return S=S(),D.current=S,function(){D.current=null}}function lg(){}function vu(S,D){return RA().memoizedState=[S,D===void 0?null:D],S}function xm(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(T.memoizedState=[S,D],S)}function cg(S,D,T){if(!(25>wc))throw Error(n(301));var q=S.alternate;if(S===ja||q!==null&&q===ja)if(wl=!0,S={expirationTime:Iu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},Si===null&&(Si=new Map),T=Si.get(D),T===void 0)Si.set(D,S);else{for(D=T;D.next!==null;)D=D.next;D.next=S}else{var W=ha(),ce=Pe.suspense;W=HA(W,S,ce),ce={expirationTime:W,suspenseConfig:ce,action:T,eagerReducer:null,eagerState:null,next:null};var Se=D.last;if(Se===null)ce.next=ce;else{var It=Se.next;It!==null&&(ce.next=It),Se.next=ce}if(D.last=ce,S.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var Et=D.lastRenderedState,Pt=q(Et,T);if(ce.eagerReducer=q,ce.eagerState=Pt,ds(Pt,Et))return}catch{}finally{}Pc(S,W)}}var Du={readContext:Ns,useCallback:lt,useContext:lt,useEffect:lt,useImperativeHandle:lt,useLayoutEffect:lt,useMemo:lt,useReducer:lt,useRef:lt,useState:lt,useDebugValue:lt,useResponder:lt,useDeferredValue:lt,useTransition:lt},aI={readContext:Ns,useCallback:vu,useContext:Ns,useEffect:mt,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,fp(4,36,ag.bind(null,D,S),T)},useLayoutEffect:function(S,D){return fp(4,36,S,D)},useMemo:function(S,D){var T=RA();return D=D===void 0?null:D,S=S(),T.memoizedState=[S,D],S},useReducer:function(S,D,T){var q=RA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,S=q.queue={last:null,dispatch:null,lastRenderedReducer:S,lastRenderedState:D},S=S.dispatch=cg.bind(null,ja,S),[q.memoizedState,S]},useRef:function(S){var D=RA();return S={current:S},D.memoizedState=S},useState:ig,useDebugValue:lg,useResponder:rg,useDeferredValue:function(S,D){var T=ig(S),q=T[0],W=T[1];return mt(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=ig(!1),T=D[0],q=D[1];return[vu(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},Pm={readContext:Ns,useCallback:xm,useContext:Ns,useEffect:Sm,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,Bc(4,36,ag.bind(null,D,S),T)},useLayoutEffect:function(S,D){return Bc(4,36,S,D)},useMemo:function(S,D){var T=Ap();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Bu(D,q[1])?q[0]:(S=S(),T.memoizedState=[S,D],S)},useReducer:ys,useRef:function(){return Ap().memoizedState},useState:sg,useDebugValue:lg,useResponder:rg,useDeferredValue:function(S,D){var T=sg(S),q=T[0],W=T[1];return Sm(function(){a.unstable_next(function(){var ce=Os.suspense;Os.suspense=D===void 0?null:D;try{W(S)}finally{Os.suspense=ce}})},[S,D]),q},useTransition:function(S){var D=sg(!1),T=D[0],q=D[1];return[xm(function(W){q(!0),a.unstable_next(function(){var ce=Os.suspense;Os.suspense=S===void 0?null:S;try{q(!1),W()}finally{Os.suspense=ce}})},[S,T]),T]}},ua=null,vc=null,Bl=!1;function Su(S,D){var T=Sl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=S,T.effectTag=8,S.lastEffect!==null?(S.lastEffect.nextEffect=T,S.lastEffect=T):S.firstEffect=S.lastEffect=T}function ug(S,D){switch(S.tag){case 5:return D=to(D,S.type,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 6:return D=Di(D,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function TA(S){if(Bl){var D=vc;if(D){var T=D;if(!ug(S,D)){if(D=Ac(T),!D||!ug(S,D)){S.effectTag=S.effectTag&-1025|2,Bl=!1,ua=S;return}Su(ua,T)}ua=S,vc=gu(D)}else S.effectTag=S.effectTag&-1025|2,Bl=!1,ua=S}}function pp(S){for(S=S.return;S!==null&&S.tag!==5&&S.tag!==3&&S.tag!==13;)S=S.return;ua=S}function Ga(S){if(!y||S!==ua)return!1;if(!Bl)return pp(S),Bl=!0,!1;var D=S.type;if(S.tag!==5||D!=="head"&&D!=="body"&&!Te(D,S.memoizedProps))for(D=vc;D;)Su(S,D),D=Ac(D);if(pp(S),S.tag===13){if(!y)throw Error(n(316));if(S=S.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));vc=ks(S)}else vc=ua?Ac(S.stateNode):null;return!0}function Ag(){y&&(vc=ua=null,Bl=!1)}var hp=u.ReactCurrentOwner,Mo=!1;function Es(S,D,T,q){D.child=S===null?aa(D,null,T,q):yi(D,S.child,T,q)}function Ei(S,D,T,q,W){T=T.render;var ce=D.ref;return Ls(D,W),q=ng(S,D,T,q,ce,W),S!==null&&!Mo?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=W&&(S.expirationTime=0),ei(S,D,W)):(D.effectTag|=1,Es(S,D,q,W),D.child)}function bm(S,D,T,q,W,ce){if(S===null){var Se=T.type;return typeof Se=="function"&&!EI(Se)&&Se.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=Se,Qm(S,D,Se,q,W,ce)):(S=_m(T.type,null,q,null,D.mode,ce),S.ref=D.ref,S.return=D,D.child=S)}return Se=S.child,WD)&&_A.set(S,D)))}}function Eg(S,D){S.expirationTimeS?D:S)}function uo(S){if(S.lastExpiredTime!==0)S.callbackExpirationTime=1073741823,S.callbackPriority=99,S.callbackNode=Eu(hI.bind(null,S));else{var D=Mm(S),T=S.callbackNode;if(D===0)T!==null&&(S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90);else{var q=ha();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var W=S.callbackPriority;if(S.callbackExpirationTime===D&&W>=q)return;T!==PA&&Ce(T)}S.callbackExpirationTime=D,S.callbackPriority=q,D=D===1073741823?Eu(hI.bind(null,S)):Il(q,xv.bind(null,S),{timeout:10*(1073741821-D)-Hi()}),S.callbackNode=D}}}function xv(S,D){if(Om=0,D)return D=ha(),Hm(S,D),uo(S),null;var T=Mm(S);if(T!==0){if(D=S.callbackNode,(pr&(rs|Ms))!==gn)throw Error(n(327));if(Ip(),S===Ai&&T===ns||Qu(S,T),Fr!==null){var q=pr;pr|=rs;var W=jA(S);do try{aF();break}catch(It){qA(S,It)}while(1);if(ia(),pr=q,yp.current=W,Gi===Rm)throw D=Tm,Qu(S,T),YA(S,T),uo(S),D;if(Fr===null)switch(W=S.finishedWork=S.current.alternate,S.finishedExpirationTime=T,q=Gi,Ai=null,q){case xu:case Rm:throw Error(n(345));case Ci:Hm(S,2=T){S.lastPingedTime=T,Qu(S,T);break}}if(ce=Mm(S),ce!==0&&ce!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}S.timeoutHandle=je(ku.bind(null,S),W);break}ku(S);break;case Dl:if(YA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=dI(W)),MA&&(W=S.lastPingedTime,W===0||W>=T)){S.lastPingedTime=T,Qu(S,T);break}if(W=Mm(S),W!==0&&W!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}if(OA!==1073741823?q=10*(1073741821-OA)-Hi():Ka===1073741823?q=0:(q=10*(1073741821-Ka)-5e3,W=Hi(),T=10*(1073741821-T)-W,q=W-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*cI(q/1960))-q,T=q?q=0:(W=Se.busyDelayMs|0,ce=Hi()-(10*(1073741821-ce)-(Se.timeoutMs|0||5e3)),q=ce<=W?0:W+q-ce),10 component higher in the tree to provide a loading indicator or placeholder to display.`+ml(W))}Gi!==xc&&(Gi=Ci),ce=pg(ce,W),Et=q;do{switch(Et.tag){case 3:Se=ce,Et.effectTag|=4096,Et.expirationTime=D;var Ve=Dv(Et,Se,D);Ua(Et,Ve);break e;case 1:Se=ce;var ft=Et.type,jt=Et.stateNode;if((Et.effectTag&64)===0&&(typeof ft.getDerivedStateFromError=="function"||jt!==null&&typeof jt.componentDidCatch=="function"&&(bu===null||!bu.has(jt)))){Et.effectTag|=4096,Et.expirationTime=D;var Er=Sv(Et,Se,D);Ua(Et,Er);break e}}Et=Et.return}while(Et!==null)}Fr=kv(Fr)}catch(In){D=In;continue}break}while(1)}function jA(){var S=yp.current;return yp.current=Du,S===null?Du:S}function gI(S,D){SEp&&(Ep=S)}function oF(){for(;Fr!==null;)Fr=Qv(Fr)}function aF(){for(;Fr!==null&&!Rt();)Fr=Qv(Fr)}function Qv(S){var D=Rv(S.alternate,S,ns);return S.memoizedProps=S.pendingProps,D===null&&(D=kv(S)),uI.current=null,D}function kv(S){Fr=S;do{var D=Fr.alternate;if(S=Fr.return,(Fr.effectTag&2048)===0){e:{var T=D;D=Fr;var q=ns,W=D.pendingProps;switch(D.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:Zn(D.type)&&Oa(D);break;case 3:Ec(D),$t(D),W=D.stateNode,W.pendingContext&&(W.context=W.pendingContext,W.pendingContext=null),(T===null||T.child===null)&&Ga(D)&&fa(D),vl(D);break;case 5:tg(D);var ce=la(yc.current);if(q=D.type,T!==null&&D.stateNode!=null)ts(T,D,q,W,ce),T.ref!==D.ref&&(D.effectTag|=128);else if(W){if(T=la(lo.current),Ga(D)){if(W=D,!y)throw Error(n(175));T=ap(W.stateNode,W.type,W.memoizedProps,ce,T,W),W.updateQueue=T,T=T!==null,T&&fa(D)}else{var Se=ut(q,W,ce,T,D);Dc(Se,D,!1,!1),D.stateNode=Se,yt(Se,q,W,ce,T)&&fa(D)}D.ref!==null&&(D.effectTag|=128)}else if(D.stateNode===null)throw Error(n(166));break;case 6:if(T&&D.stateNode!=null)Hr(T,D,T.memoizedProps,W);else{if(typeof W!="string"&&D.stateNode===null)throw Error(n(166));if(T=la(yc.current),ce=la(lo.current),Ga(D)){if(T=D,!y)throw Error(n(176));(T=lp(T.stateNode,T.memoizedProps,T))&&fa(D)}else D.stateNode=Ue(W,T,ce,D)}break;case 11:break;case 13:if(_e(Kn,D),W=D.memoizedState,(D.effectTag&64)!==0){D.expirationTime=q;break e}W=W!==null,ce=!1,T===null?D.memoizedProps.fallback!==void 0&&Ga(D):(q=T.memoizedState,ce=q!==null,W||q===null||(q=T.child.sibling,q!==null&&(Se=D.firstEffect,Se!==null?(D.firstEffect=q,q.nextEffect=Se):(D.firstEffect=D.lastEffect=q,q.nextEffect=null),q.effectTag=8))),W&&!ce&&(D.mode&2)!==0&&(T===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||(Kn.current&1)!==0?Gi===xu&&(Gi=pa):((Gi===xu||Gi===pa)&&(Gi=Dl),Ep!==0&&Ai!==null&&(YA(Ai,ns),Lv(Ai,Ep)))),x&&W&&(D.effectTag|=4),I&&(W||ce)&&(D.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Ec(D),vl(D);break;case 10:Zi(D);break;case 9:break;case 14:break;case 17:Zn(D.type)&&Oa(D);break;case 19:if(_e(Kn,D),W=D.memoizedState,W===null)break;if(ce=(D.effectTag&64)!==0,Se=W.rendering,Se===null){if(ce)Sc(W,!1);else if(Gi!==xu||T!==null&&(T.effectTag&64)!==0)for(T=D.child;T!==null;){if(Se=up(T),Se!==null){for(D.effectTag|=64,Sc(W,!1),T=Se.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),W.lastEffect===null&&(D.firstEffect=null),D.lastEffect=W.lastEffect,T=q,W=D.child;W!==null;)ce=W,q=T,ce.effectTag&=2,ce.nextEffect=null,ce.firstEffect=null,ce.lastEffect=null,Se=ce.alternate,Se===null?(ce.childExpirationTime=0,ce.expirationTime=q,ce.child=null,ce.memoizedProps=null,ce.memoizedState=null,ce.updateQueue=null,ce.dependencies=null):(ce.childExpirationTime=Se.childExpirationTime,ce.expirationTime=Se.expirationTime,ce.child=Se.child,ce.memoizedProps=Se.memoizedProps,ce.memoizedState=Se.memoizedState,ce.updateQueue=Se.updateQueue,q=Se.dependencies,ce.dependencies=q===null?null:{expirationTime:q.expirationTime,firstContext:q.firstContext,responders:q.responders}),W=W.sibling;Fn(Kn,Kn.current&1|2,D),D=D.child;break e}T=T.sibling}}else{if(!ce)if(T=up(Se),T!==null){if(D.effectTag|=64,ce=!0,T=T.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),Sc(W,!0),W.tail===null&&W.tailMode==="hidden"&&!Se.alternate){D=D.lastEffect=W.lastEffect,D!==null&&(D.nextEffect=null);break}}else Hi()>W.tailExpiration&&1W&&(W=q),Se>W&&(W=Se),ce=ce.sibling;T.childExpirationTime=W}if(D!==null)return D;S!==null&&(S.effectTag&2048)===0&&(S.firstEffect===null&&(S.firstEffect=Fr.firstEffect),Fr.lastEffect!==null&&(S.lastEffect!==null&&(S.lastEffect.nextEffect=Fr.firstEffect),S.lastEffect=Fr.lastEffect),1S?D:S}function ku(S){var D=No();return so(99,lF.bind(null,S,D)),null}function lF(S,D){do Ip();while(mg!==null);if((pr&(rs|Ms))!==gn)throw Error(n(327));var T=S.finishedWork,q=S.finishedExpirationTime;if(T===null)return null;if(S.finishedWork=null,S.finishedExpirationTime=0,T===S.current)throw Error(n(177));S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90,S.nextKnownPendingLevel=0;var W=dI(T);if(S.firstPendingTime=W,q<=S.lastSuspendedTime?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:q<=S.firstSuspendedTime&&(S.firstSuspendedTime=q-1),q<=S.lastPingedTime&&(S.lastPingedTime=0),q<=S.lastExpiredTime&&(S.lastExpiredTime=0),S===Ai&&(Fr=Ai=null,ns=0),1=T?rn(S,D,T):(Fn(Kn,Kn.current&1,D),D=ei(S,D,T),D!==null?D.sibling:null);Fn(Kn,Kn.current&1,D);break;case 19:if(q=D.childExpirationTime>=T,(S.effectTag&64)!==0){if(q)return Wa(S,D,T);D.effectTag|=64}if(W=D.memoizedState,W!==null&&(W.rendering=null,W.tail=null),Fn(Kn,Kn.current,D),!q)return null}return ei(S,D,T)}Mo=!1}}else Mo=!1;switch(D.expirationTime=0,D.tag){case 2:if(q=D.type,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,W=Ri(D,Rn.current),Ls(D,T),W=ng(null,D,q,S,W,T),D.effectTag|=1,typeof W=="object"&&W!==null&&typeof W.render=="function"&&W.$$typeof===void 0){if(D.tag=1,oI(),Zn(q)){var ce=!0;pc(D)}else ce=!1;D.memoizedState=W.state!==null&&W.state!==void 0?W.state:null;var Se=q.getDerivedStateFromProps;typeof Se=="function"&&vt(D,q,Se,S),W.updater=tr,D.stateNode=W,W._reactInternalFiber=D,$n(D,q,S,T),D=dp(null,D,q,!0,ce,T)}else D.tag=0,Es(null,D,W,T),D=D.child;return D;case 16:if(W=D.elementType,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,ve(W),W._status!==1)throw W._result;switch(W=W._result,D.type=W,ce=D.tag=gF(W),S=di(W,S),ce){case 0:D=LA(null,D,W,S,T);break;case 1:D=gp(null,D,W,S,T);break;case 11:D=Ei(null,D,W,S,T);break;case 14:D=bm(null,D,W,di(W.type,S),q,T);break;default:throw Error(n(306,W,""))}return D;case 0:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),LA(S,D,q,W,T);case 1:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),gp(S,D,q,W,T);case 3:if(fg(D),q=D.updateQueue,q===null)throw Error(n(282));if(W=D.memoizedState,W=W!==null?W.element:null,we(D,q,D.pendingProps,null,T),q=D.memoizedState.element,q===W)Ag(),D=ei(S,D,T);else{if((W=D.stateNode.hydrate)&&(y?(vc=gu(D.stateNode.containerInfo),ua=D,W=Bl=!0):W=!1),W)for(T=aa(D,null,q,T),D.child=T;T;)T.effectTag=T.effectTag&-3|1024,T=T.sibling;else Es(S,D,q,T),Ag();D=D.child}return D;case 5:return Dm(D),S===null&&TA(D),q=D.type,W=D.pendingProps,ce=S!==null?S.memoizedProps:null,Se=W.children,Te(q,W)?Se=null:ce!==null&&Te(q,ce)&&(D.effectTag|=16),Uo(S,D),D.mode&4&&T!==1&&Qe(q,W)?(D.expirationTime=D.childExpirationTime=1,D=null):(Es(S,D,Se,T),D=D.child),D;case 6:return S===null&&TA(D),null;case 13:return rn(S,D,T);case 4:return eg(D,D.stateNode.containerInfo),q=D.pendingProps,S===null?D.child=yi(D,null,q,T):Es(S,D,q,T),D.child;case 11:return q=D.type,W=D.pendingProps,W=D.elementType===q?W:di(q,W),Ei(S,D,q,W,T);case 7:return Es(S,D,D.pendingProps,T),D.child;case 8:return Es(S,D,D.pendingProps.children,T),D.child;case 12:return Es(S,D,D.pendingProps.children,T),D.child;case 10:e:{if(q=D.type._context,W=D.pendingProps,Se=D.memoizedProps,ce=W.value,Oo(D,ce),Se!==null){var It=Se.value;if(ce=ds(It,ce)?0:(typeof q._calculateChangedBits=="function"?q._calculateChangedBits(It,ce):1073741823)|0,ce===0){if(Se.children===W.children&&!Ui.current){D=ei(S,D,T);break e}}else for(It=D.child,It!==null&&(It.return=D);It!==null;){var Et=It.dependencies;if(Et!==null){Se=It.child;for(var Pt=Et.firstContext;Pt!==null;){if(Pt.context===q&&(Pt.observedBits&ce)!==0){It.tag===1&&(Pt=$i(T,null),Pt.tag=2,mi(It,Pt)),It.expirationTime"u")return!1;var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(D.isDisabled||!D.supportsFiber)return!0;try{var T=D.inject(S);mI=function(q){try{D.onCommitFiberRoot(T,q,void 0,(q.current.effectTag&64)===64)}catch{}},yI=function(q){try{D.onCommitFiberUnmount(T,q)}catch{}}}catch{}return!0}function hF(S,D,T,q){this.tag=S,this.key=T,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=q,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Sl(S,D,T,q){return new hF(S,D,T,q)}function EI(S){return S=S.prototype,!(!S||!S.isReactComponent)}function gF(S){if(typeof S=="function")return EI(S)?1:0;if(S!=null){if(S=S.$$typeof,S===N)return 11;if(S===re)return 14}return 2}function WA(S,D){var T=S.alternate;return T===null?(T=Sl(S.tag,D,S.key,S.mode),T.elementType=S.elementType,T.type=S.type,T.stateNode=S.stateNode,T.alternate=S,S.alternate=T):(T.pendingProps=D,T.effectTag=0,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null),T.childExpirationTime=S.childExpirationTime,T.expirationTime=S.expirationTime,T.child=S.child,T.memoizedProps=S.memoizedProps,T.memoizedState=S.memoizedState,T.updateQueue=S.updateQueue,D=S.dependencies,T.dependencies=D===null?null:{expirationTime:D.expirationTime,firstContext:D.firstContext,responders:D.responders},T.sibling=S.sibling,T.index=S.index,T.ref=S.ref,T}function _m(S,D,T,q,W,ce){var Se=2;if(q=S,typeof S=="function")EI(S)&&(Se=1);else if(typeof S=="string")Se=5;else e:switch(S){case C:return Fu(T.children,W,ce,D);case R:Se=8,W|=7;break;case w:Se=8,W|=1;break;case v:return S=Sl(12,T,D,W|8),S.elementType=v,S.type=v,S.expirationTime=ce,S;case _:return S=Sl(13,T,D,W),S.type=_,S.elementType=_,S.expirationTime=ce,S;case J:return S=Sl(19,T,D,W),S.elementType=J,S.expirationTime=ce,S;default:if(typeof S=="object"&&S!==null)switch(S.$$typeof){case b:Se=10;break e;case E:Se=9;break e;case N:Se=11;break e;case re:Se=14;break e;case oe:Se=16,q=null;break e}throw Error(n(130,S==null?S:typeof S,""))}return D=Sl(Se,T,D,W),D.elementType=S,D.type=q,D.expirationTime=ce,D}function Fu(S,D,T,q){return S=Sl(7,S,q,D),S.expirationTime=T,S}function CI(S,D,T){return S=Sl(6,S,null,D),S.expirationTime=T,S}function II(S,D,T){return D=Sl(4,S.children!==null?S.children:[],S.key,D),D.expirationTime=T,D.stateNode={containerInfo:S.containerInfo,pendingChildren:null,implementation:S.implementation},D}function dF(S,D,T){this.tag=D,this.current=null,this.containerInfo=S,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=Ne,this.pendingContext=this.context=null,this.hydrate=T,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function Tv(S,D){var T=S.firstSuspendedTime;return S=S.lastSuspendedTime,T!==0&&T>=D&&S<=D}function YA(S,D){var T=S.firstSuspendedTime,q=S.lastSuspendedTime;TD||T===0)&&(S.lastSuspendedTime=D),D<=S.lastPingedTime&&(S.lastPingedTime=0),D<=S.lastExpiredTime&&(S.lastExpiredTime=0)}function Lv(S,D){D>S.firstPendingTime&&(S.firstPendingTime=D);var T=S.firstSuspendedTime;T!==0&&(D>=T?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:D>=S.lastSuspendedTime&&(S.lastSuspendedTime=D+1),D>S.nextKnownPendingLevel&&(S.nextKnownPendingLevel=D))}function Hm(S,D){var T=S.lastExpiredTime;(T===0||T>D)&&(S.lastExpiredTime=D)}function Nv(S){var D=S._reactInternalFiber;if(D===void 0)throw typeof S.render=="function"?Error(n(188)):Error(n(268,Object.keys(S)));return S=De(D),S===null?null:S.stateNode}function Ov(S,D){S=S.memoizedState,S!==null&&S.dehydrated!==null&&S.retryTime{"use strict";WEe.exports=GEe()});var JEe=U((yYt,KEe)=>{"use strict";var eyt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};KEe.exports=eyt});var ZEe=U((EYt,XEe)=>{"use strict";var tyt=Object.assign||function(t){for(var e=1;e"}}]),t}(),VEe=function(){RQ(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){Pq(this,t),this.width=e,this.height=r}return RQ(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),t}(),zEe=function(){function t(e,r){Pq(this,t),this.unit=e,this.value=r}return RQ(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case iu.UNIT_POINT:return String(this.value);case iu.UNIT_PERCENT:return this.value+"%";case iu.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();XEe.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var C=arguments.length,w=Array(C),v=0;v1?w-1:0),b=1;b1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:iu.DIRECTION_LTR;return u.call(this,A,p,h)}),tyt({Config:e.Config,Node:e.Node,Layout:t("Layout",ryt),Size:t("Size",VEe),Value:t("Value",zEe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},iu)}});var $Ee=U((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof Ie=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o>2]=0;for(p=A+n;o>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,C,w,v;h>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var C=o-65536;h+=String.fromCharCode(55296|C>>10,56320|C&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` `+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var C=Browser.mainLoop.remainingBlockers,w=C%1==0?C-1:Math.floor(C);h.counted?Browser.mainLoop.remainingBlockers=w:(w=w+.5,Browser.mainLoop.remainingBlockers=(8*C+w)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(b){Runtime.warnOnce("Blob constructor present but fails: "+b+"; falling back to blob builder")}if(!h){var C=new Browser.BlobBuilder;C.append(new Uint8Array(n).buffer),h=C.getBlob()}var w=Browser.URLObject.createObjectURL(h),v=new Image;v.onload=function(){assert(v.complete,"Image "+u+" could not be decoded");var E=document.createElement("canvas");E.width=v.width,E.height=v.height;var R=E.getContext("2d");R.drawImage(v,0,0),Module.preloadedImages[u]=E,Browser.URLObject.revokeObjectURL(w),A&&A(n)},v.onerror=function(E){console.log("Image "+w+" could not be decoded"),p&&p()},v.src=w},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function C(R){h||(h=!0,Module.preloadedAudios[u]=R,A&&A(n))}function w(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var v=new Blob([n],{type:Browser.getMimetype(u)})}catch{return w()}var b=Browser.URLObject.createObjectURL(v),E=new Audio;E.addEventListener("canplaythrough",function(){C(E)},!1),E.onerror=function(N){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function _(J){for(var re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",oe="=",pe="",he=0,ve=0,ge=0;ge=6;){var le=he>>ve-6&63;ve-=6,pe+=re[le]}return ve==2?(pe+=re[(he&3)<<4],pe+=oe+oe):ve==4&&(pe+=re[(he&15)<<2],pe+=oe),pe}E.src="data:audio/x-"+u.substr(-3)+";base64,"+_(n),C(E)},E.src=b,Browser.safeSetTimeout(function(){C(E)},1e4)}else return w()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var C=Browser.touches[u.identifier];C||(C=h),Browser.lastTouches[u.identifier]=C,Browser.touches[u.identifier]=h}return}var w=t.pageX-(a+e.left),v=t.pageY-(n+e.top);w=w*(r/e.width),v=v*(o/e.height),Browser.mouseMovementX=w-Browser.mouseX,Browser.mouseMovementY=v-Browser.mouseY,Browser.mouseX=w,Browser.mouseY=v}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(p,h,C,w,v,b){if(h==1){var E=w&896;(E==128||E==256||E==384)&&(p="X const")}var R;return b?R=C.replace("X",p).replace("Y",v):R=p.replace("X",C).replace("Y",v),R.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,C,w,v){throw new Error(p+" type "+C.replace("X",h+"?")+(w?" with flag "+w:"")+" in "+v)}function a(p,h,C,w,v,b,E,R){b===void 0&&(b="X"),R===void 0&&(R=1);var N=C(p);if(N)return N;var _=w(p),J=_.placeholderFlag,re=e[J];E&&re&&(b=r(E[2],E[0],b,re[0],"?",!0));var oe;J==0&&(oe="Unbound"),J>=10&&(oe="Corrupt"),R>20&&(oe="Deeply nested"),oe&&o(oe,p,b,J,v||"?");var pe=_.paramList[0],he=a(pe,h,C,w,v,b,re,R+1),ve,ge={flags:re[0],id:p,name:"",paramList:[he]},le=[],xe="?";switch(_.placeholderFlag){case 1:ve=he.spec;break;case 2:if((he.flags&15360)==1024&&he.spec.ptrSize==1){ge.flags=7168;break}case 3:case 6:case 5:ve=he.spec,he.flags&15360;break;case 8:xe=""+_.paramList[1],ge.paramList.push(_.paramList[1]);break;case 9:for(var g=0,De=_.paramList[1];g>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(C,w){var v=___syscall146.buffers[C];assert(v),w===0||w===10?((C===1?Module.print:Module.printErr)(UTF8ArrayToString(v,0)),v.length=0):v.push(w)});for(var u=0;u>2],p=HEAP32[o+(u*8+4)>>2],h=0;h"u"||!(C instanceof FS.ErrnoError))&&abort(C),-C.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;tt.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var C=u,w=A,v=p;if(n!==_nbind.ptrMarker){var b=h.__nbindConstructor.apply(h,arguments);C=4608,v=HEAPU32[b/4],w=HEAPU32[b/4+1]}var E={configurable:!0,enumerable:!1,value:null,writable:!1},R={__nbindFlags:C,__nbindPtr:w};v&&(R.__nbindShared=v,_nbind.mark(h));for(var N=0,_=Object.keys(R);N<_.length;N++){var J=_[N];E.value=R[J],Object.defineProperty(h,J,E)}return _defineHidden(0)(h,"__nbindState"),h}return a.prototype.free=function(){e.destroy.call(this,this.__nbindShared,this.__nbindFlags),this.__nbindState|=2,disableMember(this,"__nbindShared"),disableMember(this,"__nbindPtr")},a}(Wrapper);return __decorate([_defineHidden()],r.prototype,"__nbindConstructor",void 0),__decorate([_defineHidden()],r.prototype,"__nbindValueConstructor",void 0),__decorate([_defineHidden(t)],r.prototype,"__nbindPolicies",void 0),r}_nbind.makeBound=makeBound;function disableMember(t,e){function r(){throw new Error("Accessing deleted object")}Object.defineProperty(t,e,{configurable:!1,enumerable:!1,get:r,set:r})}_nbind.ptrMarker={};var BindClass=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this;return o.wireRead=function(a){return _nbind.popValue(a,o.ptrType)},o.wireWrite=function(a){return pushPointer(a,o.ptrType,!0)},o.pendingSuperCount=0,o.ready=!1,o.methodTbl={},r.paramList?(o.classType=r.paramList[0].classType,o.proto=o.classType.proto):o.classType=o,o}return e.prototype.makeBound=function(r){var o=_nbind.makeBound(r,this);return this.proto=o,this.ptrType.proto=o,o},e.prototype.addMethod=function(r){var o=this.methodTbl[r.name]||[];o.push(r),this.methodTbl[r.name]=o},e.prototype.registerMethods=function(r,o){for(var a,n=0,u=Object.keys(r.methodTbl);n>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),C=new t.Float64Array(r),w=e.DYNAMICTOP_PTR|0,v=e.tempDoublePtr|0,b=e.ABORT|0,E=e.STACKTOP|0,R=e.STACK_MAX|0,N=e.cttz_i8|0,_=e.___dso_handle|0,J=0,re=0,oe=0,pe=0,he=t.NaN,ve=t.Infinity,ge=0,le=0,xe=0,g=0,De=0,Ee=0,de=t.Math.floor,ne=t.Math.abs,Z=t.Math.sqrt,me=t.Math.pow,be=t.Math.cos,ut=t.Math.sin,H=t.Math.tan,yt=t.Math.acos,Me=t.Math.asin,Te=t.Math.atan,Qe=t.Math.atan2,Ue=t.Math.exp,je=t.Math.log,At=t.Math.ceil,Ne=t.Math.imul,P=t.Math.min,I=t.Math.max,x=t.Math.clz32,y=t.Math.fround,F=e.abort,z=e.assert,X=e.enlargeMemory,$=e.getTotalMemory,ie=e.abortOnCannotGrowMemory,ke=e.invoke_viiiii,Le=e.invoke_vif,st=e.invoke_vid,ht=e.invoke_fiff,Ut=e.invoke_vi,Xt=e.invoke_vii,xt=e.invoke_ii,tn=e.invoke_viddi,Dr=e.invoke_vidd,fr=e.invoke_iiii,Br=e.invoke_diii,jr=e.invoke_di,Hn=e.invoke_iid,bs=e.invoke_iii,ki=e.invoke_viiddi,gs=e.invoke_viiiiii,to=e.invoke_dii,Di=e.invoke_i,Qs=e.invoke_iiiiii,ro=e.invoke_viiid,Ac=e.invoke_viififi,gu=e.invoke_viii,ap=e.invoke_v,lp=e.invoke_viid,ks=e.invoke_idd,Cn=e.invoke_viiii,no=e._emscripten_asm_const_iiiii,Fs=e._emscripten_asm_const_iiidddddd,ml=e._emscripten_asm_const_iiiid,yl=e.__nbind_reference_external,io=e._emscripten_asm_const_iiiiiiii,_e=e._removeAccessorPrefix,Fn=e._typeModule,Fi=e.__nbind_register_pool,Rn=e.__decorate,Ui=e._llvm_stackrestore,Zt=e.___cxa_atexit,Ri=e.__extends,Zn=e.__nbind_get_value_object,Oa=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,$t=e._emscripten_set_main_loop_timing,fc=e.__nbind_register_primitive,du=e.__nbind_register_type,pc=e._emscripten_memcpy_big,El=e.__nbind_register_function,SA=e.___setErrNo,mu=e.__nbind_register_class,Ce=e.__nbind_finish,Rt=e._abort,hc=e._nbind_value,_i=e._llvm_stacksave,yu=e.___syscall54,qt=e._defineHidden,Cl=e._emscripten_set_main_loop,xA=e._emscripten_get_now,cp=e.__nbind_register_callback_signature,gc=e._emscripten_asm_const_iiiiii,PA=e.__nbind_free_external,Dn=e._emscripten_asm_const_iiii,ui=e._emscripten_asm_const_iiididi,dc=e.___syscall6,bA=e._atexit,ta=e.___syscall140,Hi=e.___syscall146,No=y(0);let $e=y(0);function so(s){s=s|0;var l=0;return l=E,E=E+s|0,E=E+15&-16,l|0}function Il(){return E|0}function Eu(s){s=s|0,E=s}function qi(s,l){s=s|0,l=l|0,E=s,R=l}function Cu(s,l){s=s|0,l=l|0,J||(J=s,re=l)}function QA(s){s=s|0,Ee=s}function Ma(){return Ee|0}function mc(){var s=0,l=0;Cr(8104,8,400)|0,Cr(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,Zt(17,8104,_|0)|0}function ds(s){s=s|0,Be(s+948|0)}function Ot(s){return s=y(s),((bu(s)|0)&2147483647)>>>0>2139095040|0}function Sn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(0);return s|0}function di(s){s=s|0;var l=0;return l=Jv(1e3)|0,ra(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Cr(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function ra(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=E,E=E+16|0,f=d,l||(n[f>>2]=c,pg(s,5,3197,f)),E=d}function oo(){return di(956)|0}function Rs(s){s=s|0;var l=0;return l=Gt(1e3)|0,na(l,s),ra(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function na(s,l){s=s|0,l=l|0;var c=0;Cr(s|0,l|0,948)|0,km(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function ia(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Oo(c+948|0,s)|0,n[l>>2]=0),c=Zi(s)|0,c|0){l=0;do n[(Ts(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),Ls(c),Vv(s),n[2276]=(n[2276]|0)+-1}function Oo(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0;f=n[s>>2]|0,Q=s+4|0,c=n[Q>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(0);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(SI(d|0,f|0,s|0)|0,c=n[Q>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[Q>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function Zi(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function Ts(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function Ls(s){s=s|0;var l=0,c=0,f=0,d=0;f=E,E=E+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,Cp(l,d,d,s+8|0),mg(s,l),UA(l)),E=f}function Ns(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;M=Zi(s)|0;do if(M|0){if((n[(Ts(s,0)|0)+944>>2]|0)==(s|0)){if(!(Oo(s+948|0,l)|0))break;Cr(l+400|0,8504,540)|0,n[l+944>>2]=0,qe(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,Q=s+948|0,k=(B|0)==0,c=0,m=0;do f=n[(n[Q>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?qe(s):(d=Rs(f)|0,n[(n[Q>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,k||PR[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(M|0));if(c>>>0>>0){k=s+948|0,Q=s+952|0,B=c,c=n[Q>>2]|0;do m=(n[k>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(SI(m|0,f|0,d|0)|0,c=n[Q>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[Q>>2]=c),B=B+1|0;while((B|0)!=(M|0))}}while(0)}function ao(s){s=s|0;var l=0,c=0,f=0,d=0;Wn(s,(Zi(s)|0)==0,2491),Wn(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),Ls(l),l=s+976|0,c=n[l>>2]|0,Cr(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function Wn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=E,E=E+16|0,f=d,l||(n[f>>2]=c,co(s,5,3197,f)),E=d}function qn(){return n[2276]|0}function $i(){var s=0;return s=Jv(20)|0,es((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function es(s,l){s=s|0,l=l|0;var c=0,f=0;f=E,E=E+16|0,c=f,s||(n[c>>2]=l,co(0,5,3197,c)),E=f}function mi(s){s=s|0,Vv(s),n[2277]=(n[2277]|0)+-1}function Ua(s,l){s=s|0,l=l|0;var c=0;l?(Wn(s,(Zi(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function sa(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,Wn(s,(n[l+944>>2]|0)==0,2709),Wn(s,(n[s+964>>2]|0)==0,2763),ee(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],we(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,qe(s),E=f}function ee(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;if(c=Zi(s)|0,c|0&&(n[(Ts(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,Q=Rs(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=Q,n[Q+944>>2]=s,m||PR[f&15](B,Q,s,l),l=l+1|0;while((l|0)!=(c|0))}}function we(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0;et=E,E=E+64|0,j=et+52|0,Q=et+48|0,se=et+28|0,We=et+24|0,Oe=et+20|0,Re=et,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}_A(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=L(s)|0,d>>>0>>0&&Jr(s),O=n[s>>2]|0,M=(n[B>>2]|0)-O|0,m=M>>1,Cp(Re,M>>2>>>0>>1>>>0?m>>>0>>0?f:m:d,l-O>>2,s+8|0),O=Re+8|0,f=n[O>>2]|0,m=Re+12|0,M=n[m>>2]|0,B=M,k=f;do if((f|0)==(M|0)){if(M=Re+4|0,f=n[M>>2]|0,Ze=n[Re>>2]|0,d=Ze,f>>>0<=Ze>>>0){f=B-d>>1,f=(f|0)==0?1:f,Cp(se,f,f>>>2,n[Re+16>>2]|0),n[We>>2]=n[M>>2],n[Oe>>2]=n[O>>2],n[Q>>2]=n[We>>2],n[j>>2]=n[Oe>>2],pI(se,Q,j),f=n[Re>>2]|0,n[Re>>2]=n[se>>2],n[se>>2]=f,f=se+4|0,Ze=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Ze,f=se+8|0,Ze=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Ze,f=se+12|0,Ze=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Ze,UA(se),f=n[O>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,Q=f+(B<<2)|0,d=k-m|0,m=d>>2,m&&(SI(Q|0,f|0,d|0)|0,f=n[M>>2]|0),Ze=Q+(m<<2)|0,n[O>>2]=Ze,n[M>>2]=f+(B<<2),f=Ze}while(0);n[f>>2]=n[c>>2],n[O>>2]=(n[O>>2]|0)+4,l=yg(s,Re,l)|0,UA(Re)}while(0);return E=et,l|0}function qe(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(he),s=n[s+944>>2]|0}while((s|0)!=0)}function Be(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function Pe(s){return s=s|0,n[s+944>>2]|0}function Je(s){s=s|0,Wn(s,(n[s+964>>2]|0)!=0,2832),qe(s)}function vt(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function tr(s,l){s=s|0,l=l|0,zUe(s,l,400)|0&&(Cr(s|0,l|0,400)|0,qe(s))}function Zr(s){s=s|0;var l=$e;return l=y(h[s+44>>2]),s=Ot(l)|0,y(s?y(0):l)}function Tn(s){s=s|0;var l=$e;return l=y(h[s+48>>2]),Ot(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function _r(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function $n(s){return s=s|0,n[s+980>>2]|0}function Ti(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function Yn(s){return s=s|0,n[s+4>>2]|0}function Ha(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function oa(s){return s=s|0,n[s+8>>2]|0}function yi(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function aa(s){return s=s|0,n[s+12>>2]|0}function qa(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function lo(s){return s=s|0,n[s+16>>2]|0}function kA(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function yc(s){return s=s|0,n[s+20>>2]|0}function la(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function eg(s){return s=s|0,n[s+24>>2]|0}function Ec(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function Dm(s){return s=s|0,n[s+28>>2]|0}function tg(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function Kn(s){return s=s|0,n[s+32>>2]|0}function up(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,qe(s))}function rg(s){return s=s|0,n[s+36>>2]|0}function FA(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,qe(s))}function Os(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,qe(s))}function Iu(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,qe(s))}function ja(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function ji(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,qe(s))}function ca(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function wu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function ms(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function Cc(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Ic(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function G(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function Dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wl(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(he),n[c>>2]=3,qe(s))}function Si(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function wc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function lt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Bu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,qe(s))}function ng(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function oI(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function RA(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,qe(s))}function Ap(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(he),n[l>>2]=3,qe(s))}function yr(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function ys(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function ig(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,qe(s))}function sg(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(he),n[l>>2]=3,qe(s))}function og(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function fp(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function Bc(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function mt(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Sm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function ag(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function lg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function vu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function xm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function cg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Du(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function aI(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,qe(s))}function Pm(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function ua(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,qe(s))}function vc(s){return s=s|0,y(h[s+396>>2])}function Bl(s){return s=s|0,y(h[s+400>>2])}function Su(s){return s=s|0,y(h[s+404>>2])}function ug(s){return s=s|0,y(h[s+408>>2])}function TA(s){return s=s|0,y(h[s+412>>2])}function pp(s){return s=s|0,y(h[s+416>>2])}function Ga(s){return s=s|0,y(h[s+420>>2])}function Ag(s,l){switch(s=s|0,l=l|0,Wn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function hp(s,l){switch(s=s|0,l=l|0,Wn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function Mo(s,l){switch(s=s|0,l=l|0,Wn(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function Es(s,l){s=s|0,l=l|0;var c=0,f=$e;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ne(y(f-y(h[l>>2]))))>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,Oa(f|0,s|0,l|0,0),co(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),E3e(f),E=c}function Uo(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=$e;s=y(s*l),d=y(wR(s,y(1)));do if(Ei(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),Ei(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=Ei(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(0);return y(s/l)}function LA(s,l,c,f,d,m,B,Q,k,M,O,j,se){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,Q=y(Q),k=y(k),M=y(M),O=y(O),j=y(j),se=se|0;var We=0,Oe=$e,Re=$e,et=$e,Ze=$e,at=$e,He=$e;return k>2]),Oe!=y(0))?(et=y(Uo(l,Oe,0,0)),Ze=y(Uo(f,Oe,0,0)),Re=y(Uo(m,Oe,0,0)),Oe=y(Uo(Q,Oe,0,0))):(Re=m,et=l,Oe=Q,Ze=f),(d|0)==(s|0)?We=Ei(Re,et)|0:We=0,(B|0)==(c|0)?se=Ei(Oe,Ze)|0:se=0,!We&&(at=y(l-O),!(gp(s,at,k)|0))&&!(dp(s,at,d,k)|0)?We=fg(s,at,d,m,k)|0:We=1,!se&&(He=y(f-j),!(gp(c,He,M)|0))&&!(dp(c,He,B,M)|0)?se=fg(c,He,B,Q,M)|0:se=1,se=We&se),se|0}function gp(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=Ei(l,c)|0:s=0,s|0}function dp(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=Ei(l,f)|0:s=0,s|0}function fg(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=Ei(l,d)|0:s=0,s|0}function Aa(s,l,c,f,d,m,B,Q,k,M,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),Q=y(Q),k=k|0,M=M|0,O=O|0;var j=0,se=0,We=0,Oe=0,Re=$e,et=$e,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0,Bn=$e,po=$e,ho=$e,go=0,ma=0;rr=E,E=E+160|0,Vt=rr+152|0,ir=rr+120|0,Rr=rr+104|0,He=rr+72|0,Oe=rr+56|0,Tt=rr+8|0,at=rr,Ge=(n[2279]|0)+1|0,n[2279]=Ge,Ir=s+984|0,(o[Ir>>0]|0)!=0&&(n[s+512>>2]|0)!=(n[2278]|0)?Ze=4:(n[s+516>>2]|0)==(f|0)?Qr=0:Ze=4,(Ze|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Qr=1);e:do if(n[s+964>>2]|0)if(Re=y(rn(s,2,B)),et=y(rn(s,0,B)),j=s+916|0,ho=y(h[j>>2]),po=y(h[s+920>>2]),Bn=y(h[s+932>>2]),LA(d,l,m,c,n[s+924>>2]|0,ho,n[s+928>>2]|0,po,Bn,y(h[s+936>>2]),Re,et,O)|0)Ze=22;else if(We=n[s+520>>2]|0,!We)Ze=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Bn=y(h[j>>2]),po=y(h[s+524+(se*24|0)+4>>2]),ho=y(h[s+524+(se*24|0)+16>>2]),LA(d,l,m,c,n[s+524+(se*24|0)+8>>2]|0,Bn,n[s+524+(se*24|0)+12>>2]|0,po,ho,y(h[s+524+(se*24|0)+20>>2]),Re,et,O)|0){Ze=22;break e}if(se=se+1|0,se>>>0>=We>>>0){Ze=21;break}}else{if(k){if(j=s+916|0,!(Ei(y(h[j>>2]),l)|0)){Ze=21;break}if(!(Ei(y(h[s+920>>2]),c)|0)){Ze=21;break}if((n[s+924>>2]|0)!=(d|0)){Ze=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Ze=22;break}if(We=n[s+520>>2]|0,!We)Ze=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Ei(y(h[j>>2]),l)|0&&Ei(y(h[s+524+(se*24|0)+4>>2]),c)|0&&(n[s+524+(se*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(se*24|0)+12>>2]|0)==(m|0)){Ze=22;break e}if(se=se+1|0,se>>>0>=We>>>0){Ze=21;break}}}while(0);do if((Ze|0)==21)o[11697]|0?(j=0,Ze=28):(j=0,Ze=31);else if((Ze|0)==22){if(se=(o[11697]|0)!=0,!((j|0)!=0&(Qr^1)))if(se){Ze=28;break}else{Ze=31;break}Oe=j+16|0,n[s+908>>2]=n[Oe>>2],We=j+20|0,n[s+912>>2]=n[We>>2],(o[11698]|0)==0|se^1||(n[at>>2]=NA(Ge)|0,n[at+4>>2]=Ge,co(s,4,2972,at),se=n[s+972>>2]|0,se|0&&ef[se&127](s),d=Wa(d,k)|0,m=Wa(m,k)|0,ma=+y(h[Oe>>2]),go=+y(h[We>>2]),n[Tt>>2]=d,n[Tt+4>>2]=m,C[Tt+8>>3]=+l,C[Tt+16>>3]=+c,C[Tt+24>>3]=ma,C[Tt+32>>3]=go,n[Tt+40>>2]=M,co(s,4,2989,Tt))}while(0);return(Ze|0)==28&&(se=NA(Ge)|0,n[Oe>>2]=se,n[Oe+4>>2]=Ge,n[Oe+8>>2]=Qr?3047:11699,co(s,4,3038,Oe),se=n[s+972>>2]|0,se|0&&ef[se&127](s),Tt=Wa(d,k)|0,Ze=Wa(m,k)|0,n[He>>2]=Tt,n[He+4>>2]=Ze,C[He+8>>3]=+l,C[He+16>>3]=+c,n[He+24>>2]=M,co(s,4,3049,He),Ze=31),(Ze|0)==31&&(ei(s,l,c,f,d,m,B,Q,k,O),o[11697]|0&&(se=n[2279]|0,Tt=NA(se)|0,n[Rr>>2]=Tt,n[Rr+4>>2]=se,n[Rr+8>>2]=Qr?3047:11699,co(s,4,3083,Rr),se=n[s+972>>2]|0,se|0&&ef[se&127](s),Tt=Wa(d,k)|0,Rr=Wa(m,k)|0,go=+y(h[s+908>>2]),ma=+y(h[s+912>>2]),n[ir>>2]=Tt,n[ir+4>>2]=Rr,C[ir+8>>3]=go,C[ir+16>>3]=ma,n[ir+24>>2]=M,co(s,4,3092,ir)),n[s+516>>2]=f,j||(se=s+520|0,j=n[se>>2]|0,(j|0)==16&&(o[11697]|0&&co(s,4,3124,Vt),n[se>>2]=0,j=0),k?j=s+916|0:(n[se>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),k&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[Ir>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],E=rr,Qr|(j|0)==0|0}function rn(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(K(s,l,c)),y(f+y(te(s,l,c)))}function co(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=E,E=E+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,hg(f,s,l,c,d),E=m}function NA(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function Wa(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=E,E=E+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,E=d,s|0}function ei(s,l,c,f,d,m,B,Q,k,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),Q=y(Q),k=k|0,M=M|0;var O=0,j=0,se=0,We=0,Oe=$e,Re=$e,et=$e,Ze=$e,at=$e,He=$e,Ge=$e,Tt=0,Rr=0,ir=0,Vt=$e,Ir=$e,Qr=0,rr=$e,Bn=0,po=0,ho=0,go=0,ma=0,Qp=0,kp=0,bl=0,Fp=0,Nu=0,Ou=0,Rp=0,Tp=0,Lp=0,Vr=0,Ql=0,Np=0,Qc=0,Op=$e,Mp=$e,Mu=$e,Uu=$e,kc=$e,Us=0,Za=0,Ho=0,kl=0,rf=0,nf=$e,_u=$e,sf=$e,of=$e,_s=$e,ws=$e,Fl=0,xn=$e,af=$e,mo=$e,Fc=$e,yo=$e,Rc=$e,lf=0,cf=0,Tc=$e,Hs=$e,Rl=0,uf=0,Af=0,ff=0,vr=$e,jn=0,Bs=0,Eo=0,qs=0,xr=0,lr=0,Tl=0,Wt=$e,pf=0,ni=0;Tl=E,E=E+16|0,Us=Tl+12|0,Za=Tl+8|0,Ho=Tl+4|0,kl=Tl,Wn(s,(d|0)==0|(Ot(l)|0)^1,3326),Wn(s,(m|0)==0|(Ot(c)|0)^1,3406),Bs=gt(s,f)|0,n[s+496>>2]=Bs,xr=ur(2,Bs)|0,lr=ur(0,Bs)|0,h[s+440>>2]=y(K(s,xr,B)),h[s+444>>2]=y(te(s,xr,B)),h[s+428>>2]=y(K(s,lr,B)),h[s+436>>2]=y(te(s,lr,B)),h[s+464>>2]=y(gr(s,xr)),h[s+468>>2]=y(hn(s,xr)),h[s+452>>2]=y(gr(s,lr)),h[s+460>>2]=y(hn(s,lr)),h[s+488>>2]=y(ti(s,xr,B)),h[s+492>>2]=y(Li(s,xr,B)),h[s+476>>2]=y(ti(s,lr,B)),h[s+484>>2]=y(Li(s,lr,B));do if(n[s+964>>2]|0)dg(s,l,c,d,m,B,Q);else{if(Eo=s+948|0,qs=(n[s+952>>2]|0)-(n[Eo>>2]|0)>>2,!qs){Dv(s,l,c,d,m,B,Q);break}if(!k&&Sv(s,l,c,d,m,B,Q)|0)break;ee(s),Ql=s+508|0,o[Ql>>0]=0,xr=ur(n[s+4>>2]|0,Bs)|0,lr=cI(xr,Bs)|0,jn=ue(xr)|0,Np=n[s+8>>2]|0,uf=s+28|0,Qc=(n[uf>>2]|0)!=0,yo=jn?B:Q,Tc=jn?Q:B,Op=y(yp(s,xr,B)),Mp=y(uI(s,xr,B)),Oe=y(yp(s,lr,B)),Rc=y(gn(s,xr,B)),Hs=y(gn(s,lr,B)),ir=jn?d:m,Rl=jn?m:d,vr=jn?Rc:Hs,at=jn?Hs:Rc,Fc=y(rn(s,2,B)),Ze=y(rn(s,0,B)),Re=y(y(Hr(s+364|0,B))-vr),et=y(y(Hr(s+380|0,B))-vr),He=y(y(Hr(s+372|0,Q))-at),Ge=y(y(Hr(s+388|0,Q))-at),Mu=jn?Re:He,Uu=jn?et:Ge,Fc=y(l-Fc),l=y(Fc-vr),Ot(l)|0?vr=l:vr=y(Ln(y(Pg(l,et)),Re)),af=y(c-Ze),l=y(af-at),Ot(l)|0?mo=l:mo=y(Ln(y(Pg(l,Ge)),He)),Re=jn?vr:mo,xn=jn?mo:vr;e:do if((ir|0)==1)for(f=0,j=0;;){if(O=Ts(s,j)|0,!f)y(rs(O))>y(0)&&y(Ms(O))>y(0)?f=O:f=0;else if(Fm(O)|0){We=0;break e}if(j=j+1|0,j>>>0>=qs>>>0){We=f;break}}else We=0;while(0);Tt=We+500|0,Rr=We+504|0,f=0,O=0,l=y(0),se=0;do{if(j=n[(n[Eo>>2]|0)+(se<<2)>>2]|0,(n[j+36>>2]|0)==1)xu(j),o[j+985>>0]=1,o[j+984>>0]=0;else{vl(j),k&&mp(j,gt(j,Bs)|0,Re,xn,vr);do if((n[j+24>>2]|0)!=1)if((j|0)==(We|0)){n[Tt>>2]=n[2278],h[Rr>>2]=y(0);break}else{Rm(s,j,vr,d,mo,vr,mo,m,Bs,M);break}else O|0&&(n[O+960>>2]=j),n[j+960>>2]=0,O=j,f=(f|0)==0?j:f;while(0);ws=y(h[j+504>>2]),l=y(l+y(ws+y(rn(j,xr,vr))))}se=se+1|0}while((se|0)!=(qs|0));for(ho=l>Re,Fl=Qc&((ir|0)==2&ho)?1:ir,Bn=(Rl|0)==1,ma=Bn&(k^1),Qp=(Fl|0)==1,kp=(Fl|0)==2,bl=976+(xr<<2)|0,Fp=(Rl|2|0)==2,Lp=Bn&(Qc^1),Nu=1040+(lr<<2)|0,Ou=1040+(xr<<2)|0,Rp=976+(lr<<2)|0,Tp=(Rl|0)!=1,ho=Qc&((ir|0)!=0&ho),po=s+976|0,Bn=Bn^1,l=Re,Qr=0,go=0,ws=y(0),kc=y(0);;){e:do if(Qr>>>0>>0)for(Rr=n[Eo>>2]|0,se=0,Ge=y(0),He=y(0),et=y(0),Re=y(0),j=0,O=0,We=Qr;;){if(Tt=n[Rr+(We<<2)>>2]|0,(n[Tt+36>>2]|0)!=1&&(n[Tt+940>>2]=go,(n[Tt+24>>2]|0)!=1)){if(Ze=y(rn(Tt,xr,vr)),Vr=n[bl>>2]|0,c=y(Hr(Tt+380+(Vr<<3)|0,yo)),at=y(h[Tt+504>>2]),c=y(Pg(c,at)),c=y(Ln(y(Hr(Tt+364+(Vr<<3)|0,yo)),c)),Qc&(se|0)!=0&y(Ze+y(He+c))>l){m=se,Ze=Ge,ir=We;break e}Ze=y(Ze+c),c=y(He+Ze),Ze=y(Ge+Ze),Fm(Tt)|0&&(et=y(et+y(rs(Tt))),Re=y(Re-y(at*y(Ms(Tt))))),O|0&&(n[O+960>>2]=Tt),n[Tt+960>>2]=0,se=se+1|0,O=Tt,j=(j|0)==0?Tt:j}else Ze=Ge,c=He;if(We=We+1|0,We>>>0>>0)Ge=Ze,He=c;else{m=se,ir=We;break}}else m=0,Ze=y(0),et=y(0),Re=y(0),j=0,ir=Qr;while(0);Vr=et>y(0)&ety(0)&ReUu&((Ot(Uu)|0)^1))l=Uu,Vr=51;else if(o[(n[po>>2]|0)+3>>0]|0)Vr=51;else{if(Vt!=y(0)&&y(rs(s))!=y(0)){Vr=53;break}l=Ze,Vr=53}while(0);if((Vr|0)==51&&(Vr=0,Ot(l)|0?Vr=53:(Ir=y(l-Ze),rr=l)),(Vr|0)==53&&(Vr=0,Ze>2]|0,We=Iry(0),He=y(Ir/Vt),et=y(0),Ze=y(0),l=y(0),O=j;do c=y(Hr(O+380+(se<<3)|0,yo)),Re=y(Hr(O+364+(se<<3)|0,yo)),Re=y(Pg(c,y(Ln(Re,y(h[O+504>>2]))))),We?(c=y(Re*y(Ms(O))),c!=y(-0)&&(Wt=y(Re-y(at*c)),nf=y(Ci(O,xr,Wt,rr,vr)),Wt!=nf)&&(et=y(et-y(nf-Re)),l=y(l+c))):Tt&&(_u=y(rs(O)),_u!=y(0))&&(Wt=y(Re+y(He*_u)),sf=y(Ci(O,xr,Wt,rr,vr)),Wt!=sf)&&(et=y(et-y(sf-Re)),Ze=y(Ze-_u)),O=n[O+960>>2]|0;while((O|0)!=0);if(l=y(Ge+l),Re=y(Ir+et),rf)l=y(0);else{at=y(Vt+Ze),We=n[bl>>2]|0,Tt=Rey(0),at=y(Re/at),l=y(0);do{Wt=y(Hr(j+380+(We<<3)|0,yo)),et=y(Hr(j+364+(We<<3)|0,yo)),et=y(Pg(Wt,y(Ln(et,y(h[j+504>>2]))))),Tt?(Wt=y(et*y(Ms(j))),Re=y(-Wt),Wt!=y(-0)?(Wt=y(He*Re),Re=y(Ci(j,xr,y(et+(Rr?Re:Wt)),rr,vr))):Re=et):se&&(of=y(rs(j)),of!=y(0))?Re=y(Ci(j,xr,y(et+y(at*of)),rr,vr)):Re=et,l=y(l-y(Re-et)),Ze=y(rn(j,xr,vr)),c=y(rn(j,lr,vr)),Re=y(Re+Ze),h[Za>>2]=Re,n[kl>>2]=1,et=y(h[j+396>>2]);e:do if(Ot(et)|0){O=Ot(xn)|0;do if(!O){if(ho|(ts(j,lr,xn)|0|Bn)||(pa(s,j)|0)!=4||(n[(Dl(j,lr)|0)+4>>2]|0)==3||(n[(xc(j,lr)|0)+4>>2]|0)==3)break;h[Us>>2]=xn,n[Ho>>2]=1;break e}while(0);if(ts(j,lr,xn)|0){O=n[j+992+(n[Rp>>2]<<2)>>2]|0,Wt=y(c+y(Hr(O,xn))),h[Us>>2]=Wt,O=Tp&(n[O+4>>2]|0)==2,n[Ho>>2]=((Ot(Wt)|0|O)^1)&1;break}else{h[Us>>2]=xn,n[Ho>>2]=O?0:2;break}}else Wt=y(Re-Ze),Vt=y(Wt/et),Wt=y(et*Wt),n[Ho>>2]=1,h[Us>>2]=y(c+(jn?Vt:Wt));while(0);pr(j,xr,rr,vr,kl,Za),pr(j,lr,xn,vr,Ho,Us);do if(!(ts(j,lr,xn)|0)&&(pa(s,j)|0)==4){if((n[(Dl(j,lr)|0)+4>>2]|0)==3){O=0;break}O=(n[(xc(j,lr)|0)+4>>2]|0)!=3}else O=0;while(0);Wt=y(h[Za>>2]),Vt=y(h[Us>>2]),pf=n[kl>>2]|0,ni=n[Ho>>2]|0,Aa(j,jn?Wt:Vt,jn?Vt:Wt,Bs,jn?pf:ni,jn?ni:pf,vr,mo,k&(O^1),3488,M)|0,o[Ql>>0]=o[Ql>>0]|o[j+508>>0],j=n[j+960>>2]|0}while((j|0)!=0)}}else l=y(0);if(l=y(Ir+l),ni=l>0]=ni|u[Ql>>0],kp&l>y(0)?(O=n[bl>>2]|0,(n[s+364+(O<<3)+4>>2]|0)!=0&&(_s=y(Hr(s+364+(O<<3)|0,yo)),_s>=y(0))?Re=y(Ln(y(0),y(_s-y(rr-l)))):Re=y(0)):Re=l,Tt=Qr>>>0>>0,Tt){We=n[Eo>>2]|0,se=Qr,O=0;do j=n[We+(se<<2)>>2]|0,n[j+24>>2]|0||(O=((n[(Dl(j,xr)|0)+4>>2]|0)==3&1)+O|0,O=O+((n[(xc(j,xr)|0)+4>>2]|0)==3&1)|0),se=se+1|0;while((se|0)!=(ir|0));O?(Ze=y(0),c=y(0)):Vr=101}else Vr=101;e:do if((Vr|0)==101)switch(Vr=0,Np|0){case 1:{O=0,Ze=y(Re*y(.5)),c=y(0);break e}case 2:{O=0,Ze=Re,c=y(0);break e}case 3:{if(m>>>0<=1){O=0,Ze=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),O=0,Ze=y(0),c=y(y(Ln(Re,y(0)))/c);break e}case 5:{c=y(Re/y((m+1|0)>>>0)),O=0,Ze=c;break e}case 4:{c=y(Re/y(m>>>0)),O=0,Ze=y(c*y(.5));break e}default:{O=0,Ze=y(0),c=y(0);break e}}while(0);if(l=y(Op+Ze),Tt){et=y(Re/y(O|0)),se=n[Eo>>2]|0,j=Qr,Re=y(0);do{O=n[se+(j<<2)>>2]|0;e:do if((n[O+36>>2]|0)!=1){switch(n[O+24>>2]|0){case 1:{if(Ai(O,xr)|0){if(!k)break e;Wt=y(Fr(O,xr,rr)),Wt=y(Wt+y(gr(s,xr))),Wt=y(Wt+y(K(O,xr,vr))),h[O+400+(n[Ou>>2]<<2)>>2]=Wt;break e}break}case 0:if(ni=(n[(Dl(O,xr)|0)+4>>2]|0)==3,Wt=y(et+l),l=ni?Wt:l,k&&(ni=O+400+(n[Ou>>2]<<2)|0,h[ni>>2]=y(l+y(h[ni>>2]))),ni=(n[(xc(O,xr)|0)+4>>2]|0)==3,Wt=y(et+l),l=ni?Wt:l,ma){Wt=y(c+y(rn(O,xr,vr))),Re=xn,l=y(l+y(Wt+y(h[O+504>>2])));break e}else{l=y(l+y(c+y(ns(O,xr,vr)))),Re=y(Ln(Re,y(ns(O,lr,vr))));break e}default:}k&&(Wt=y(Ze+y(gr(s,xr))),ni=O+400+(n[Ou>>2]<<2)|0,h[ni>>2]=y(Wt+y(h[ni>>2])))}while(0);j=j+1|0}while((j|0)!=(ir|0))}else Re=y(0);if(c=y(Mp+l),Fp?Ze=y(y(Ci(s,lr,y(Hs+Re),Tc,B))-Hs):Ze=xn,et=y(y(Ci(s,lr,y(Hs+(Lp?xn:Re)),Tc,B))-Hs),Tt&k){j=Qr;do{se=n[(n[Eo>>2]|0)+(j<<2)>>2]|0;do if((n[se+36>>2]|0)!=1){if((n[se+24>>2]|0)==1){if(Ai(se,lr)|0){if(Wt=y(Fr(se,lr,xn)),Wt=y(Wt+y(gr(s,lr))),Wt=y(Wt+y(K(se,lr,vr))),O=n[Nu>>2]|0,h[se+400+(O<<2)>>2]=Wt,!(Ot(Wt)|0))break}else O=n[Nu>>2]|0;Wt=y(gr(s,lr)),h[se+400+(O<<2)>>2]=y(Wt+y(K(se,lr,vr)));break}O=pa(s,se)|0;do if((O|0)==4){if((n[(Dl(se,lr)|0)+4>>2]|0)==3){Vr=139;break}if((n[(xc(se,lr)|0)+4>>2]|0)==3){Vr=139;break}if(ts(se,lr,xn)|0){l=Oe;break}pf=n[se+908+(n[bl>>2]<<2)>>2]|0,n[Us>>2]=pf,l=y(h[se+396>>2]),ni=Ot(l)|0,Re=(n[v>>2]=pf,y(h[v>>2])),ni?l=et:(Ir=y(rn(se,lr,vr)),Wt=y(Re/l),l=y(l*Re),l=y(Ir+(jn?Wt:l))),h[Za>>2]=l,h[Us>>2]=y(y(rn(se,xr,vr))+Re),n[Ho>>2]=1,n[kl>>2]=1,pr(se,xr,rr,vr,Ho,Us),pr(se,lr,xn,vr,kl,Za),l=y(h[Us>>2]),Ir=y(h[Za>>2]),Wt=jn?l:Ir,l=jn?Ir:l,ni=((Ot(Wt)|0)^1)&1,Aa(se,Wt,l,Bs,ni,((Ot(l)|0)^1)&1,vr,mo,1,3493,M)|0,l=Oe}else Vr=139;while(0);e:do if((Vr|0)==139){Vr=0,l=y(Ze-y(ns(se,lr,vr)));do if((n[(Dl(se,lr)|0)+4>>2]|0)==3){if((n[(xc(se,lr)|0)+4>>2]|0)!=3)break;l=y(Oe+y(Ln(y(0),y(l*y(.5)))));break e}while(0);if((n[(xc(se,lr)|0)+4>>2]|0)==3){l=Oe;break}if((n[(Dl(se,lr)|0)+4>>2]|0)==3){l=y(Oe+y(Ln(y(0),l)));break}switch(O|0){case 1:{l=Oe;break e}case 2:{l=y(Oe+y(l*y(.5)));break e}default:{l=y(Oe+l);break e}}}while(0);Wt=y(ws+l),ni=se+400+(n[Nu>>2]<<2)|0,h[ni>>2]=y(Wt+y(h[ni>>2]))}while(0);j=j+1|0}while((j|0)!=(ir|0))}if(ws=y(ws+et),kc=y(Ln(kc,c)),m=go+1|0,ir>>>0>=qs>>>0)break;l=rr,Qr=ir,go=m}do if(k){if(O=m>>>0>1,!O&&!(Gi(s)|0))break;if(!(Ot(xn)|0)){l=y(xn-ws);e:do switch(n[s+12>>2]|0){case 3:{Oe=y(Oe+l),He=y(0);break}case 2:{Oe=y(Oe+y(l*y(.5))),He=y(0);break}case 4:{xn>ws?He=y(l/y(m>>>0)):He=y(0);break}case 7:if(xn>ws){Oe=y(Oe+y(l/y(m<<1>>>0))),He=y(l/y(m>>>0)),He=O?He:y(0);break e}else{Oe=y(Oe+y(l*y(.5))),He=y(0);break e}case 6:{He=y(l/y(go>>>0)),He=xn>ws&O?He:y(0);break}default:He=y(0)}while(0);if(m|0)for(Tt=1040+(lr<<2)|0,Rr=976+(lr<<2)|0,We=0,j=0;;){e:do if(j>>>0>>0)for(Re=y(0),et=y(0),l=y(0),se=j;;){O=n[(n[Eo>>2]|0)+(se<<2)>>2]|0;do if((n[O+36>>2]|0)!=1&&(n[O+24>>2]|0)==0){if((n[O+940>>2]|0)!=(We|0))break e;if(Tm(O,lr)|0&&(Wt=y(h[O+908+(n[Rr>>2]<<2)>>2]),l=y(Ln(l,y(Wt+y(rn(O,lr,vr)))))),(pa(s,O)|0)!=5)break;_s=y(Ka(O)),_s=y(_s+y(K(O,0,vr))),Wt=y(h[O+912>>2]),Wt=y(y(Wt+y(rn(O,0,vr)))-_s),_s=y(Ln(et,_s)),Wt=y(Ln(Re,Wt)),Re=Wt,et=_s,l=y(Ln(l,y(_s+Wt)))}while(0);if(O=se+1|0,O>>>0>>0)se=O;else{se=O;break}}else et=y(0),l=y(0),se=j;while(0);if(at=y(He+l),c=Oe,Oe=y(Oe+at),j>>>0>>0){Ze=y(c+et),O=j;do{j=n[(n[Eo>>2]|0)+(O<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&(n[j+24>>2]|0)==0)switch(pa(s,j)|0){case 1:{Wt=y(c+y(K(j,lr,vr))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 3:{Wt=y(y(Oe-y(te(j,lr,vr)))-y(h[j+908+(n[Rr>>2]<<2)>>2])),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 2:{Wt=y(c+y(y(at-y(h[j+908+(n[Rr>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt;break e}case 4:{if(Wt=y(c+y(K(j,lr,vr))),h[j+400+(n[Tt>>2]<<2)>>2]=Wt,ts(j,lr,xn)|0||(jn?(Re=y(h[j+908>>2]),l=y(Re+y(rn(j,xr,vr))),et=at):(et=y(h[j+912>>2]),et=y(et+y(rn(j,lr,vr))),l=at,Re=y(h[j+908>>2])),Ei(l,Re)|0&&Ei(et,y(h[j+912>>2]))|0))break e;Aa(j,l,et,Bs,1,1,vr,mo,1,3501,M)|0;break e}case 5:{h[j+404>>2]=y(y(Ze-y(Ka(j)))+y(Fr(j,0,xn)));break e}default:break e}while(0);O=O+1|0}while((O|0)!=(se|0))}if(We=We+1|0,(We|0)==(m|0))break;j=se}}}while(0);if(h[s+908>>2]=y(Ci(s,2,Fc,B,B)),h[s+912>>2]=y(Ci(s,0,af,Q,B)),(Fl|0)!=0&&(lf=n[s+32>>2]|0,cf=(Fl|0)==2,!(cf&(lf|0)!=2))?cf&(lf|0)==2&&(l=y(Rc+rr),l=y(Ln(y(Pg(l,y(OA(s,xr,kc,yo)))),Rc)),Vr=198):(l=y(Ci(s,xr,kc,yo,B)),Vr=198),(Vr|0)==198&&(h[s+908+(n[976+(xr<<2)>>2]<<2)>>2]=l),(Rl|0)!=0&&(Af=n[s+32>>2]|0,ff=(Rl|0)==2,!(ff&(Af|0)!=2))?ff&(Af|0)==2&&(l=y(Hs+xn),l=y(Ln(y(Pg(l,y(OA(s,lr,y(Hs+ws),Tc)))),Hs)),Vr=204):(l=y(Ci(s,lr,y(Hs+ws),Tc,B)),Vr=204),(Vr|0)==204&&(h[s+908+(n[976+(lr<<2)>>2]<<2)>>2]=l),k){if((n[uf>>2]|0)==2){j=976+(lr<<2)|0,se=1040+(lr<<2)|0,O=0;do We=Ts(s,O)|0,n[We+24>>2]|0||(pf=n[j>>2]|0,Wt=y(h[s+908+(pf<<2)>>2]),ni=We+400+(n[se>>2]<<2)|0,Wt=y(Wt-y(h[ni>>2])),h[ni>>2]=y(Wt-y(h[We+908+(pf<<2)>>2]))),O=O+1|0;while((O|0)!=(qs|0))}if(f|0){O=jn?Fl:d;do Lm(s,f,vr,O,mo,Bs,M),f=n[f+960>>2]|0;while((f|0)!=0)}if(O=(xr|2|0)==3,j=(lr|2|0)==3,O|j){f=0;do se=n[(n[Eo>>2]|0)+(f<<2)>>2]|0,(n[se+36>>2]|0)!=1&&(O&&Ep(s,se,xr),j&&Ep(s,se,lr)),f=f+1|0;while((f|0)!=(qs|0))}}}while(0);E=Tl}function fa(s,l){s=s|0,l=y(l);var c=0;ra(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function Dc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=$e,m=$e,B=0,Q=0,k=0;n[2278]=(n[2278]|0)+1,vl(s),ts(s,2,l)|0?(d=y(Hr(n[s+992>>2]|0,l)),k=1,d=y(d+y(rn(s,2,l)))):(d=y(Hr(s+380|0,l)),d>=y(0)?k=2:(k=((Ot(l)|0)^1)&1,d=l)),ts(s,0,c)|0?(m=y(Hr(n[s+996>>2]|0,c)),Q=1,m=y(m+y(rn(s,0,l)))):(m=y(Hr(s+388|0,c)),m>=y(0)?Q=2:(Q=((Ot(c)|0)^1)&1,m=c)),B=s+976|0,Aa(s,d,m,f,k,Q,l,c,1,3189,n[B>>2]|0)|0&&(mp(s,n[s+496>>2]|0,l,c,l),Sc(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&bm(s,7)}function vl(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;Q=E,E=E+32|0,B=Q+24|0,m=Q+16|0,f=Q+8|0,d=Q,c=0;do l=s+380+(c<<3)|0,(n[s+380+(c<<3)+4>>2]|0)!=0&&(k=l,M=n[k+4>>2]|0,O=f,n[O>>2]=n[k>>2],n[O+4>>2]=M,O=s+364+(c<<3)|0,M=n[O+4>>2]|0,k=d,n[k>>2]=n[O>>2],n[k+4>>2]=M,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],Es(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);E=Q}function ts(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])>2])>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(he)}return y(l)}function mp(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=$e;l=n[s+944>>2]|0?l:1,m=ur(n[s+4>>2]|0,l)|0,l=cI(m,l)|0,c=y(Nm(s,m,c)),f=y(Nm(s,l,f)),B=y(c+y(K(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(te(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(K(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(te(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function Sc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=$e,Q=$e,k=0,M=0,O=$e,j=0,se=$e,We=$e,Oe=$e,Re=$e;if(l!=y(0)&&(d=s+400|0,Re=y(h[d>>2]),m=s+404|0,Oe=y(h[m>>2]),j=s+416|0,We=y(h[j>>2]),M=s+420|0,B=y(h[M>>2]),se=y(Re+c),O=y(Oe+f),f=y(se+We),Q=y(O+B),k=(n[s+988>>2]|0)==1,h[d>>2]=y(Uo(Re,l,0,k)),h[m>>2]=y(Uo(Oe,l,0,k)),c=y(wR(y(We*l),y(1))),Ei(c,y(0))|0?m=0:m=(Ei(c,y(1))|0)^1,c=y(wR(y(B*l),y(1))),Ei(c,y(0))|0?d=0:d=(Ei(c,y(1))|0)^1,Re=y(Uo(f,l,k&m,k&(m^1))),h[j>>2]=y(Re-y(Uo(se,l,0,k))),Re=y(Uo(Q,l,k&d,k&(d^1))),h[M>>2]=y(Re-y(Uo(O,l,0,k))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do Sc(Ts(s,d)|0,l,se,O),d=d+1|0;while((d|0)!=(m|0))}}function lI(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=Z5(n[489]|0,f,d)|0;break}default:s=g3e(f,d)|0}return s|0}function pg(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=E,E=E+16|0,m=d,n[m>>2]=f,hg(s,0,l,c,m),E=d}function hg(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,E7[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Rt();else return}function Ya(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function km(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(gg(s,f),kt(s,n[l>>2]|0,n[c>>2]|0,f))}function gg(s,l){s=s|0,l=l|0;var c=0;if((L(s)|0)>>>0>>0&&Jr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function kt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Cr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function L(s){return s=s|0,1073741823}function K(s,l,c){return s=s|0,l=l|0,c=y(c),ue(l)|0&&(n[s+96>>2]|0)!=0?s=s+92|0:s=Sn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function te(s,l,c){return s=s|0,l=l|0,c=y(c),ue(l)|0&&(n[s+104>>2]|0)!=0?s=s+100|0:s=Sn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function ue(s){return s=s|0,(s|1|0)==3|0}function ze(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Hr(s,l)),y(l)}function gt(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,((s|0)==0?(l|0)>1?l:1:s)|0}function ur(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(0);return s|0}function gr(s,l){s=s|0,l=l|0;var c=$e;return ue(l)|0&&(n[s+312>>2]|0)!=0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(Ln(y(h[(Sn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function hn(s,l){s=s|0,l=l|0;var c=$e;return ue(l)|0&&(n[s+320>>2]|0)!=0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(Ln(y(h[(Sn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function ti(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return ue(l)|0&&(n[s+240>>2]|0)!=0&&(f=y(Hr(s+236|0,c)),f>=y(0))||(f=y(Ln(y(Hr(Sn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Li(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return ue(l)|0&&(n[s+248>>2]|0)!=0&&(f=y(Hr(s+244|0,c)),f>=y(0))||(f=y(Ln(y(Hr(Sn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function dg(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=$e,k=$e,M=$e,O=$e,j=$e,se=$e,We=0,Oe=0,Re=0;Re=E,E=E+16|0,We=Re,Oe=s+964|0,Wn(s,(n[Oe>>2]|0)!=0,3519),Q=y(gn(s,2,l)),k=y(gn(s,0,l)),M=y(rn(s,2,l)),O=y(rn(s,0,l)),Ot(l)|0?j=l:j=y(Ln(y(0),y(y(l-M)-Q))),Ot(c)|0?se=c:se=y(Ln(y(0),y(y(c-O)-k))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Ci(s,2,y(l-M),m,m)),l=y(Ci(s,0,y(c-O),B,m))):(C7[n[Oe>>2]&1](We,s,j,f,se,d),j=y(Q+y(h[We>>2])),se=y(l-M),h[s+908>>2]=y(Ci(s,2,(f|2|0)==2?j:se,m,m)),se=y(k+y(h[We+4>>2])),l=y(c-O),l=y(Ci(s,0,(d|2|0)==2?se:l,B,m))),h[s+912>>2]=l,E=Re}function Dv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=$e,k=$e,M=$e,O=$e;M=y(gn(s,2,m)),Q=y(gn(s,0,m)),O=y(rn(s,2,m)),k=y(rn(s,0,m)),l=y(l-O),h[s+908>>2]=y(Ci(s,2,(f|2|0)==2?M:l,m,m)),c=y(c-k),h[s+912>>2]=y(Ci(s,0,(d|2|0)==2?Q:c,B,m))}function Sv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var Q=0,k=$e,M=$e;return Q=(f|0)==2,!(l<=y(0)&Q)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(k=y(rn(s,0,m)),M=y(rn(s,2,m)),Q=l>2]=y(Ci(s,2,Q?y(0):l,m,m)),l=y(c-k),Q=c>2]=y(Ci(s,0,Q?y(0):l,B,m)),s=1),s|0}function cI(s,l){return s=s|0,l=l|0,MA(s)|0?s=ur(2,l)|0:s=0,s|0}function yp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(ti(s,l,c)),y(c+y(gr(s,l)))}function uI(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(Li(s,l,c)),y(c+y(hn(s,l)))}function gn(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(yp(s,l,c)),y(f+y(uI(s,l,c)))}function Fm(s){return s=s|0,n[s+24>>2]|0?s=0:y(rs(s))!=y(0)?s=1:s=y(Ms(s))!=y(0),s|0}function rs(s){s=s|0;var l=$e;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),Ot(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((Ot(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function Ms(s){s=s|0;var l=$e,c=0,f=$e;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),Ot(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,c<<24>>24==0&&(f=y(h[s+40>>2]),f>24?y(1):y(0)}}else l=y(0);while(0);return y(l)}function xu(s){s=s|0;var l=0,c=0;if(Vm(s+400|0,0,540)|0,o[s+985>>0]=1,ee(s),c=Zi(s)|0,c|0){l=s+948|0,s=0;do xu(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function Rm(s,l,c,f,d,m,B,Q,k,M){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),Q=Q|0,k=k|0,M=M|0;var O=0,j=$e,se=0,We=0,Oe=$e,Re=$e,et=0,Ze=$e,at=0,He=$e,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0,Bn=0,po=0;Bn=E,E=E+16|0,Rr=Bn+12|0,ir=Bn+8|0,Vt=Bn+4|0,Ir=Bn,rr=ur(n[s+4>>2]|0,k)|0,Ge=ue(rr)|0,j=y(Hr(AI(l)|0,Ge?m:B)),Tt=ts(l,2,m)|0,Qr=ts(l,0,B)|0;do if(!(Ot(j)|0)&&!(Ot(Ge?c:d)|0)){if(O=l+504|0,!(Ot(y(h[O>>2]))|0)&&(!(fI(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[O>>2]=y(Ln(j,y(gn(l,rr,m))))}else se=7;while(0);do if((se|0)==7){if(at=Ge^1,!(at|Tt^1)){B=y(Hr(n[l+992>>2]|0,m)),h[l+504>>2]=y(Ln(B,y(gn(l,2,m))));break}if(!(Ge|Qr^1)){B=y(Hr(n[l+996>>2]|0,B)),h[l+504>>2]=y(Ln(B,y(gn(l,0,m))));break}h[Rr>>2]=y(he),h[ir>>2]=y(he),n[Vt>>2]=0,n[Ir>>2]=0,Ze=y(rn(l,2,m)),He=y(rn(l,0,m)),Tt?(Oe=y(Ze+y(Hr(n[l+992>>2]|0,m))),h[Rr>>2]=Oe,n[Vt>>2]=1,We=1):(We=0,Oe=y(he)),Qr?(j=y(He+y(Hr(n[l+996>>2]|0,B))),h[ir>>2]=j,n[Ir>>2]=1,O=1):(O=0,j=y(he)),se=n[s+32>>2]|0,Ge&(se|0)==2?se=2:Ot(Oe)|0&&!(Ot(c)|0)&&(h[Rr>>2]=c,n[Vt>>2]=2,We=2,Oe=c),!((se|0)==2&at)&&Ot(j)|0&&!(Ot(d)|0)&&(h[ir>>2]=d,n[Ir>>2]=2,O=2,j=d),Re=y(h[l+396>>2]),et=Ot(Re)|0;do if(et)se=We;else{if((We|0)==1&at){h[ir>>2]=y(y(Oe-Ze)/Re),n[Ir>>2]=1,O=1,se=1;break}Ge&(O|0)==1?(h[Rr>>2]=y(Re*y(j-He)),n[Vt>>2]=1,O=1,se=1):se=We}while(0);po=Ot(c)|0,We=(pa(s,l)|0)!=4,!(Ge|Tt|((f|0)!=1|po)|(We|(se|0)==1))&&(h[Rr>>2]=c,n[Vt>>2]=1,!et)&&(h[ir>>2]=y(y(c-Ze)/Re),n[Ir>>2]=1,O=1),!(Qr|at|((Q|0)!=1|(Ot(d)|0))|(We|(O|0)==1))&&(h[ir>>2]=d,n[Ir>>2]=1,!et)&&(h[Rr>>2]=y(Re*y(d-He)),n[Vt>>2]=1),pr(l,2,m,m,Vt,Rr),pr(l,0,B,m,Ir,ir),c=y(h[Rr>>2]),d=y(h[ir>>2]),Aa(l,c,d,k,n[Vt>>2]|0,n[Ir>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(rr<<2)>>2]<<2)>>2]),h[l+504>>2]=y(Ln(B,y(gn(l,rr,m))))}while(0);n[l+500>>2]=n[2278],E=Bn}function Ci(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(OA(s,l,c,f)),y(Ln(f,y(gn(s,l,d))))}function pa(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[((n[l>>2]|0)==0?s+16|0:l)>>2]|0,(l|0)==5&&MA(n[s+4>>2]|0)|0&&(l=1),l|0}function Dl(s,l){return s=s|0,l=l|0,ue(l)|0&&(n[s+96>>2]|0)!=0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function xc(s,l){return s=s|0,l=l|0,ue(l)|0&&(n[s+104>>2]|0)!=0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function pr(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Hr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(rn(s,l,f))),n[d>>2]|0){case 2:case 1:{d=Ot(c)|0,f=y(h[m>>2]),h[m>>2]=d|f>2]=2,h[m>>2]=c);break}default:}}function Ai(s,l){return s=s|0,l=l|0,s=s+132|0,ue(l)|0&&(n[(Sn(s,4,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Sn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Fr(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,ue(l)|0&&(f=Sn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Sn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Hr(f,c))),y(c)}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=$e;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(K(s,l,c))),y(f+y(te(s,l,c)))}function Gi(s){s=s|0;var l=0,c=0,f=0;e:do if(MA(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=Zi(s)|0,!c)l=0;else for(l=0;;){if(f=Ts(s,l)|0,(n[f+24>>2]|0)==0&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(0);return l|0}function Tm(s,l){s=s|0,l=l|0;var c=$e;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((Ot(c)|0)^1)|0}function Ka(s){s=s|0;var l=$e,c=0,f=0,d=0,m=0,B=0,Q=0,k=$e;if(c=n[s+968>>2]|0,c)k=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(g7[c&0](s,k,l)),Wn(s,(Ot(l)|0)^1,3573);else{m=Zi(s)|0;do if(m|0){for(c=0,d=0;;){if(f=Ts(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(Q=(pa(s,f)|0)==5,Q){c=f;break}else c=(c|0)==0?f:c;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(Ka(c)),y(l+y(h[c+404>>2]))}while(0);l=y(h[s+912>>2])}return y(l)}function OA(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=$e,m=0;return MA(l)|0?(l=1,m=3):ue(l)|0?(l=0,m=3):(f=y(he),d=y(he)),(m|0)==3&&(d=y(Hr(s+364+(l<<3)|0,f)),f=y(Hr(s+380+(l<<3)|0,f))),m=f=y(0)&((Ot(f)|0)^1)),c=m?f:c,m=d>=y(0)&((Ot(d)|0)^1)&c>2]|0,m)|0,Oe=cI(et,m)|0,Re=ue(et)|0,j=y(rn(l,2,c)),se=y(rn(l,0,c)),ts(l,2,c)|0?Q=y(j+y(Hr(n[l+992>>2]|0,c))):Ai(l,2)|0&&nr(l,2)|0?(Q=y(h[s+908>>2]),k=y(gr(s,2)),k=y(Q-y(k+y(hn(s,2)))),Q=y(Fr(l,2,c)),Q=y(Ci(l,2,y(k-y(Q+y(Pu(l,2,c)))),c,c))):Q=y(he),ts(l,0,d)|0?k=y(se+y(Hr(n[l+996>>2]|0,d))):Ai(l,0)|0&&nr(l,0)|0?(k=y(h[s+912>>2]),at=y(gr(s,0)),at=y(k-y(at+y(hn(s,0)))),k=y(Fr(l,0,d)),k=y(Ci(l,0,y(at-y(k+y(Pu(l,0,d)))),d,c))):k=y(he),M=Ot(Q)|0,O=Ot(k)|0;do if(M^O&&(We=y(h[l+396>>2]),!(Ot(We)|0)))if(M){Q=y(j+y(y(k-se)*We));break}else{at=y(se+y(y(Q-j)/We)),k=O?at:k;break}while(0);O=Ot(Q)|0,M=Ot(k)|0,O|M&&(He=(O^1)&1,f=c>y(0)&((f|0)!=0&O),Q=Re?Q:f?c:Q,Aa(l,Q,k,m,Re?He:f?2:He,O&(M^1)&1,Q,k,0,3623,B)|0,Q=y(h[l+908>>2]),Q=y(Q+y(rn(l,2,c))),k=y(h[l+912>>2]),k=y(k+y(rn(l,0,c)))),Aa(l,Q,k,m,1,1,Q,k,1,3635,B)|0,nr(l,et)|0&&!(Ai(l,et)|0)?(He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),at=y(at-y(hn(s,et))),at=y(at-y(te(l,et,c))),at=y(at-y(Pu(l,et,Re?c:d))),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at):Ze=21;do if((Ze|0)==21){if(!(Ai(l,et)|0)&&(n[s+8>>2]|0)==1){He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(y(at-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at;break}!(Ai(l,et)|0)&&(n[s+8>>2]|0)==2&&(He=n[976+(et<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=at)}while(0);nr(l,Oe)|0&&!(Ai(l,Oe)|0)?(He=n[976+(Oe<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),at=y(at-y(hn(s,Oe))),at=y(at-y(te(l,Oe,c))),at=y(at-y(Pu(l,Oe,Re?d:c))),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=at):Ze=30;do if((Ze|0)==30&&!(Ai(l,Oe)|0)){if((pa(s,l)|0)==2){He=n[976+(Oe<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(y(at-y(h[l+908+(He<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=at;break}He=(pa(s,l)|0)==3,He^(n[s+28>>2]|0)==2&&(He=n[976+(Oe<<2)>>2]|0,at=y(h[s+908+(He<<2)>>2]),at=y(at-y(h[l+908+(He<<2)>>2])),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=at)}while(0)}function Ep(s,l,c){s=s|0,l=l|0,c=c|0;var f=$e,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function MA(s){return s=s|0,(s|1|0)==1|0}function AI(s){s=s|0;var l=$e;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((Ot(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function fI(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function nr(s,l){return s=s|0,l=l|0,s=s+132|0,ue(l)|0&&(n[(Sn(s,5,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Sn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Pu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,ue(l)|0&&(f=Sn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Sn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Hr(f,c))),y(c)}function Nm(s,l,c){return s=s|0,l=l|0,c=y(c),Ai(s,l)|0?c=y(Fr(s,l,c)):c=y(-y(Pu(s,l,c))),y(c)}function bu(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function Cp(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function mg(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function UA(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function _A(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;if(B=s+4|0,Q=n[B>>2]|0,d=Q-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0>>0){f=Q;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0>>0)}m|0&&SI(Q+(0-m<<2)|0,l|0,d|0)|0}function yg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0;return Q=l+4|0,k=n[Q>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=k+(0-(m>>2)<<2)|0,n[Q>>2]=f,(m|0)>0&&Cr(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(Cr(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[Q>>2],n[Q>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[Q>>2],k|0}function pI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function Om(){mc()}function ha(){var s=0;return s=Gt(4)|0,HA(s),s|0}function HA(s){s=s|0,n[s>>2]=$i()|0}function Pc(s){s=s|0,s|0&&(Eg(s),pt(s))}function Eg(s){s=s|0,mi(n[s>>2]|0)}function Mm(s,l,c){s=s|0,l=l|0,c=c|0,Ya(n[s>>2]|0,l,c)}function uo(s,l){s=s|0,l=y(l),fa(n[s>>2]|0,l)}function xv(s,l){return s=s|0,l=l|0,fI(n[s>>2]|0,l)|0}function hI(){var s=0;return s=Gt(8)|0,Pv(s,0),s|0}function Pv(s,l){s=s|0,l=l|0,l?l=di(n[l>>2]|0)|0:l=oo()|0,n[s>>2]=l,n[s+4>>2]=0,_r(l,s)}function sF(s){s=s|0;var l=0;return l=Gt(8)|0,Pv(l,s),l|0}function bv(s){s=s|0,s|0&&(Qu(s),pt(s))}function Qu(s){s=s|0;var l=0;ia(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(qA(s),pt(s))}function qA(s){s=s|0,jA(s)}function jA(s){s=s|0,s=n[s>>2]|0,s|0&&PA(s|0)}function gI(s){return s=s|0,$n(s)|0}function Um(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(qA(l),pt(l)),ao(n[s>>2]|0)}function oF(s,l){s=s|0,l=l|0,tr(n[s>>2]|0,n[l>>2]|0)}function aF(s,l){s=s|0,l=l|0,la(n[s>>2]|0,l)}function Qv(s,l,c){s=s|0,l=l|0,c=+c,wu(n[s>>2]|0,l,y(c))}function kv(s,l,c){s=s|0,l=l|0,c=+c,ms(n[s>>2]|0,l,y(c))}function dI(s,l){s=s|0,l=l|0,yi(n[s>>2]|0,l)}function ku(s,l){s=s|0,l=l|0,qa(n[s>>2]|0,l)}function lF(s,l){s=s|0,l=l|0,kA(n[s>>2]|0,l)}function cF(s,l){s=s|0,l=l|0,Ti(n[s>>2]|0,l)}function Ip(s,l){s=s|0,l=l|0,Ec(n[s>>2]|0,l)}function uF(s,l){s=s|0,l=l|0,Ha(n[s>>2]|0,l)}function Fv(s,l,c){s=s|0,l=l|0,c=+c,Ic(n[s>>2]|0,l,y(c))}function GA(s,l,c){s=s|0,l=l|0,c=+c,G(n[s>>2]|0,l,y(c))}function AF(s,l){s=s|0,l=l|0,wl(n[s>>2]|0,l)}function fF(s,l){s=s|0,l=l|0,tg(n[s>>2]|0,l)}function Rv(s,l){s=s|0,l=l|0,up(n[s>>2]|0,l)}function mI(s,l){s=s|0,l=+l,FA(n[s>>2]|0,y(l))}function yI(s,l){s=s|0,l=+l,ja(n[s>>2]|0,y(l))}function pF(s,l){s=s|0,l=+l,ji(n[s>>2]|0,y(l))}function hF(s,l){s=s|0,l=+l,Os(n[s>>2]|0,y(l))}function Sl(s,l){s=s|0,l=+l,Iu(n[s>>2]|0,y(l))}function EI(s,l){s=s|0,l=+l,oI(n[s>>2]|0,y(l))}function gF(s,l){s=s|0,l=+l,RA(n[s>>2]|0,y(l))}function WA(s){s=s|0,Ap(n[s>>2]|0)}function _m(s,l){s=s|0,l=+l,ys(n[s>>2]|0,y(l))}function Fu(s,l){s=s|0,l=+l,ig(n[s>>2]|0,y(l))}function CI(s){s=s|0,sg(n[s>>2]|0)}function II(s,l){s=s|0,l=+l,fp(n[s>>2]|0,y(l))}function dF(s,l){s=s|0,l=+l,Bc(n[s>>2]|0,y(l))}function Tv(s,l){s=s|0,l=+l,Sm(n[s>>2]|0,y(l))}function YA(s,l){s=s|0,l=+l,ag(n[s>>2]|0,y(l))}function Lv(s,l){s=s|0,l=+l,vu(n[s>>2]|0,y(l))}function Hm(s,l){s=s|0,l=+l,xm(n[s>>2]|0,y(l))}function Nv(s,l){s=s|0,l=+l,Du(n[s>>2]|0,y(l))}function Ov(s,l){s=s|0,l=+l,aI(n[s>>2]|0,y(l))}function qm(s,l){s=s|0,l=+l,ua(n[s>>2]|0,y(l))}function Mv(s,l,c){s=s|0,l=l|0,c=+c,Bu(n[s>>2]|0,l,y(c))}function mF(s,l,c){s=s|0,l=l|0,c=+c,Si(n[s>>2]|0,l,y(c))}function S(s,l,c){s=s|0,l=l|0,c=+c,wc(n[s>>2]|0,l,y(c))}function D(s){return s=s|0,eg(n[s>>2]|0)|0}function T(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,Cc(d,n[l>>2]|0,c),q(s,d),E=f}function q(s,l){s=s|0,l=l|0,W(s,n[l+4>>2]|0,+y(h[l>>2]))}function W(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,C[s+8>>3]=c}function ce(s){return s=s|0,aa(n[s>>2]|0)|0}function Se(s){return s=s|0,lo(n[s>>2]|0)|0}function It(s){return s=s|0,yc(n[s>>2]|0)|0}function Et(s){return s=s|0,Yn(n[s>>2]|0)|0}function Pt(s){return s=s|0,Dm(n[s>>2]|0)|0}function Lr(s){return s=s|0,oa(n[s>>2]|0)|0}function is(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,Dt(d,n[l>>2]|0,c),q(s,d),E=f}function fi(s){return s=s|0,Kn(n[s>>2]|0)|0}function Ao(s){return s=s|0,rg(n[s>>2]|0)|0}function KA(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,ca(f,n[l>>2]|0),q(s,f),E=c}function _o(s){return s=s|0,+ +y(Zr(n[s>>2]|0))}function rt(s){return s=s|0,+ +y(Tn(n[s>>2]|0))}function Ve(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,yr(f,n[l>>2]|0),q(s,f),E=c}function ft(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,og(f,n[l>>2]|0),q(s,f),E=c}function jt(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,mt(f,n[l>>2]|0),q(s,f),E=c}function Er(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,lg(f,n[l>>2]|0),q(s,f),E=c}function In(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,cg(f,n[l>>2]|0),q(s,f),E=c}function Sr(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,Pm(f,n[l>>2]|0),q(s,f),E=c}function wn(s){return s=s|0,+ +y(vc(n[s>>2]|0))}function ri(s,l){return s=s|0,l=l|0,+ +y(ng(n[s>>2]|0,l))}function Xr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,lt(d,n[l>>2]|0,c),q(s,d),E=f}function fo(s,l,c){s=s|0,l=l|0,c=c|0,sa(n[s>>2]|0,n[l>>2]|0,c)}function yF(s,l){s=s|0,l=l|0,Ns(n[s>>2]|0,n[l>>2]|0)}function Eve(s){return s=s|0,Zi(n[s>>2]|0)|0}function Cve(s){return s=s|0,s=Pe(n[s>>2]|0)|0,s?s=gI(s)|0:s=0,s|0}function Ive(s,l){return s=s|0,l=l|0,s=Ts(n[s>>2]|0,l)|0,s?s=gI(s)|0:s=0,s|0}function wve(s,l){s=s|0,l=l|0;var c=0,f=0;f=Gt(4)|0,G9(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(qA(l),pt(l)),Ua(n[s>>2]|0,1)}function G9(s,l){s=s|0,l=l|0,Tve(s,l)}function Bve(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,Q=0;B=E,E=E+16|0,Q=B,vve(Q,$n(l)|0,+c,f,+d,m),h[s>>2]=y(+C[Q>>3]),h[s+4>>2]=y(+C[Q+8>>3]),E=B}function vve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,Q=0,k=0,M=0,O=0;B=E,E=E+32|0,O=B+8|0,M=B+20|0,k=B,Q=B+16|0,C[O>>3]=c,n[M>>2]=f,C[k>>3]=d,n[Q>>2]=m,Dve(s,n[l+4>>2]|0,O,M,k,Q),E=B}function Dve(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0;B=E,E=E+16|0,Q=B,Va(Q),l=ga(l)|0,Sve(s,l,+C[c>>3],n[f>>2]|0,+C[d>>3],n[m>>2]|0),za(Q),E=B}function ga(s){return s=s|0,n[s>>2]|0}function Sve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=xl(xve()|0)|0,c=+JA(c),f=EF(f)|0,d=+JA(d),Pve(s,ui(0,B|0,l|0,+c,f|0,+d,EF(m)|0)|0)}function xve(){var s=0;return o[7608]|0||(Fve(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function xl(s){return s=s|0,n[s+8>>2]|0}function JA(s){return s=+s,+ +CF(s)}function EF(s){return s=s|0,Y9(s)|0}function Pve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=E,E=E+32|0,c=d,f=l,f&1?(bve(c,0),Zn(f|0,c|0)|0,Qve(s,c),kve(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),E=d}function bve(s,l){s=s|0,l=l|0,W9(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function Qve(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function kve(s){s=s|0,o[s+24>>0]=0}function W9(s,l){s=s|0,l=l|0,n[s>>2]=l}function Y9(s){return s=s|0,s|0}function CF(s){return s=+s,+s}function Fve(s){s=s|0,Pl(s,Rve()|0,4)}function Rve(){return 1064}function Pl(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=cp(l|0,c+1|0)|0}function Tve(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,yl(l|0)}function Lve(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(qA(l),pt(l)),Ua(n[s>>2]|0,0)}function Nve(s){s=s|0,Je(n[s>>2]|0)}function Ove(s){return s=s|0,vt(n[s>>2]|0)|0}function Mve(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,Dc(n[s>>2]|0,y(l),y(c),f)}function Uve(s){return s=s|0,+ +y(Bl(n[s>>2]|0))}function _ve(s){return s=s|0,+ +y(ug(n[s>>2]|0))}function Hve(s){return s=s|0,+ +y(Su(n[s>>2]|0))}function qve(s){return s=s|0,+ +y(TA(n[s>>2]|0))}function jve(s){return s=s|0,+ +y(pp(n[s>>2]|0))}function Gve(s){return s=s|0,+ +y(Ga(n[s>>2]|0))}function Wve(s,l){s=s|0,l=l|0,C[s>>3]=+y(Bl(n[l>>2]|0)),C[s+8>>3]=+y(ug(n[l>>2]|0)),C[s+16>>3]=+y(Su(n[l>>2]|0)),C[s+24>>3]=+y(TA(n[l>>2]|0)),C[s+32>>3]=+y(pp(n[l>>2]|0)),C[s+40>>3]=+y(Ga(n[l>>2]|0))}function Yve(s,l){return s=s|0,l=l|0,+ +y(Ag(n[s>>2]|0,l))}function Kve(s,l){return s=s|0,l=l|0,+ +y(hp(n[s>>2]|0,l))}function Jve(s,l){return s=s|0,l=l|0,+ +y(Mo(n[s>>2]|0,l))}function Vve(){return qn()|0}function zve(){Xve(),Zve(),$ve(),eDe(),tDe(),rDe()}function Xve(){tNe(11713,4938,1)}function Zve(){CLe(10448)}function $ve(){tLe(10408)}function eDe(){vTe(10324)}function tDe(){FFe(10096)}function rDe(){nDe(9132)}function nDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0,Bn=0,po=0,ho=0,go=0,ma=0,Qp=0,kp=0,bl=0,Fp=0,Nu=0,Ou=0,Rp=0,Tp=0,Lp=0,Vr=0,Ql=0,Np=0,Qc=0,Op=0,Mp=0,Mu=0,Uu=0,kc=0,Us=0,Za=0,Ho=0,kl=0,rf=0,nf=0,_u=0,sf=0,of=0,_s=0,ws=0,Fl=0,xn=0,af=0,mo=0,Fc=0,yo=0,Rc=0,lf=0,cf=0,Tc=0,Hs=0,Rl=0,uf=0,Af=0,ff=0,vr=0,jn=0,Bs=0,Eo=0,qs=0,xr=0,lr=0,Tl=0;l=E,E=E+672|0,c=l+656|0,Tl=l+648|0,lr=l+640|0,xr=l+632|0,qs=l+624|0,Eo=l+616|0,Bs=l+608|0,jn=l+600|0,vr=l+592|0,ff=l+584|0,Af=l+576|0,uf=l+568|0,Rl=l+560|0,Hs=l+552|0,Tc=l+544|0,cf=l+536|0,lf=l+528|0,Rc=l+520|0,yo=l+512|0,Fc=l+504|0,mo=l+496|0,af=l+488|0,xn=l+480|0,Fl=l+472|0,ws=l+464|0,_s=l+456|0,of=l+448|0,sf=l+440|0,_u=l+432|0,nf=l+424|0,rf=l+416|0,kl=l+408|0,Ho=l+400|0,Za=l+392|0,Us=l+384|0,kc=l+376|0,Uu=l+368|0,Mu=l+360|0,Mp=l+352|0,Op=l+344|0,Qc=l+336|0,Np=l+328|0,Ql=l+320|0,Vr=l+312|0,Lp=l+304|0,Tp=l+296|0,Rp=l+288|0,Ou=l+280|0,Nu=l+272|0,Fp=l+264|0,bl=l+256|0,kp=l+248|0,Qp=l+240|0,ma=l+232|0,go=l+224|0,ho=l+216|0,po=l+208|0,Bn=l+200|0,rr=l+192|0,Qr=l+184|0,Ir=l+176|0,Vt=l+168|0,ir=l+160|0,Rr=l+152|0,Tt=l+144|0,Ge=l+136|0,He=l+128|0,at=l+120|0,Ze=l+112|0,et=l+104|0,Re=l+96|0,Oe=l+88|0,We=l+80|0,se=l+72|0,j=l+64|0,O=l+56|0,M=l+48|0,k=l+40|0,Q=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,iDe(s,3646),sDe(s,3651,2)|0,oDe(s,3665,2)|0,aDe(s,3682,18)|0,n[Tl>>2]=19,n[Tl+4>>2]=0,n[c>>2]=n[Tl>>2],n[c+4>>2]=n[Tl+4>>2],wI(s,3690,c)|0,n[lr>>2]=1,n[lr+4>>2]=0,n[c>>2]=n[lr>>2],n[c+4>>2]=n[lr+4>>2],lDe(s,3696,c)|0,n[xr>>2]=2,n[xr+4>>2]=0,n[c>>2]=n[xr>>2],n[c+4>>2]=n[xr+4>>2],Ru(s,3706,c)|0,n[qs>>2]=1,n[qs+4>>2]=0,n[c>>2]=n[qs>>2],n[c+4>>2]=n[qs+4>>2],Cg(s,3722,c)|0,n[Eo>>2]=2,n[Eo+4>>2]=0,n[c>>2]=n[Eo>>2],n[c+4>>2]=n[Eo+4>>2],Cg(s,3734,c)|0,n[Bs>>2]=3,n[Bs+4>>2]=0,n[c>>2]=n[Bs>>2],n[c+4>>2]=n[Bs+4>>2],Ru(s,3753,c)|0,n[jn>>2]=4,n[jn+4>>2]=0,n[c>>2]=n[jn>>2],n[c+4>>2]=n[jn+4>>2],Ru(s,3769,c)|0,n[vr>>2]=5,n[vr+4>>2]=0,n[c>>2]=n[vr>>2],n[c+4>>2]=n[vr+4>>2],Ru(s,3783,c)|0,n[ff>>2]=6,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],Ru(s,3796,c)|0,n[Af>>2]=7,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],Ru(s,3813,c)|0,n[uf>>2]=8,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],Ru(s,3825,c)|0,n[Rl>>2]=3,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],Cg(s,3843,c)|0,n[Hs>>2]=4,n[Hs+4>>2]=0,n[c>>2]=n[Hs>>2],n[c+4>>2]=n[Hs+4>>2],Cg(s,3853,c)|0,n[Tc>>2]=9,n[Tc+4>>2]=0,n[c>>2]=n[Tc>>2],n[c+4>>2]=n[Tc+4>>2],Ru(s,3870,c)|0,n[cf>>2]=10,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],Ru(s,3884,c)|0,n[lf>>2]=11,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Ru(s,3896,c)|0,n[Rc>>2]=1,n[Rc+4>>2]=0,n[c>>2]=n[Rc>>2],n[c+4>>2]=n[Rc+4>>2],Cs(s,3907,c)|0,n[yo>>2]=2,n[yo+4>>2]=0,n[c>>2]=n[yo>>2],n[c+4>>2]=n[yo+4>>2],Cs(s,3915,c)|0,n[Fc>>2]=3,n[Fc+4>>2]=0,n[c>>2]=n[Fc>>2],n[c+4>>2]=n[Fc+4>>2],Cs(s,3928,c)|0,n[mo>>2]=4,n[mo+4>>2]=0,n[c>>2]=n[mo>>2],n[c+4>>2]=n[mo+4>>2],Cs(s,3948,c)|0,n[af>>2]=5,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],Cs(s,3960,c)|0,n[xn>>2]=6,n[xn+4>>2]=0,n[c>>2]=n[xn>>2],n[c+4>>2]=n[xn+4>>2],Cs(s,3974,c)|0,n[Fl>>2]=7,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],Cs(s,3983,c)|0,n[ws>>2]=20,n[ws+4>>2]=0,n[c>>2]=n[ws>>2],n[c+4>>2]=n[ws+4>>2],wI(s,3999,c)|0,n[_s>>2]=8,n[_s+4>>2]=0,n[c>>2]=n[_s>>2],n[c+4>>2]=n[_s+4>>2],Cs(s,4012,c)|0,n[of>>2]=9,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],Cs(s,4022,c)|0,n[sf>>2]=21,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],wI(s,4039,c)|0,n[_u>>2]=10,n[_u+4>>2]=0,n[c>>2]=n[_u>>2],n[c+4>>2]=n[_u+4>>2],Cs(s,4053,c)|0,n[nf>>2]=11,n[nf+4>>2]=0,n[c>>2]=n[nf>>2],n[c+4>>2]=n[nf+4>>2],Cs(s,4065,c)|0,n[rf>>2]=12,n[rf+4>>2]=0,n[c>>2]=n[rf>>2],n[c+4>>2]=n[rf+4>>2],Cs(s,4084,c)|0,n[kl>>2]=13,n[kl+4>>2]=0,n[c>>2]=n[kl>>2],n[c+4>>2]=n[kl+4>>2],Cs(s,4097,c)|0,n[Ho>>2]=14,n[Ho+4>>2]=0,n[c>>2]=n[Ho>>2],n[c+4>>2]=n[Ho+4>>2],Cs(s,4117,c)|0,n[Za>>2]=15,n[Za+4>>2]=0,n[c>>2]=n[Za>>2],n[c+4>>2]=n[Za+4>>2],Cs(s,4129,c)|0,n[Us>>2]=16,n[Us+4>>2]=0,n[c>>2]=n[Us>>2],n[c+4>>2]=n[Us+4>>2],Cs(s,4148,c)|0,n[kc>>2]=17,n[kc+4>>2]=0,n[c>>2]=n[kc>>2],n[c+4>>2]=n[kc+4>>2],Cs(s,4161,c)|0,n[Uu>>2]=18,n[Uu+4>>2]=0,n[c>>2]=n[Uu>>2],n[c+4>>2]=n[Uu+4>>2],Cs(s,4181,c)|0,n[Mu>>2]=5,n[Mu+4>>2]=0,n[c>>2]=n[Mu>>2],n[c+4>>2]=n[Mu+4>>2],Cg(s,4196,c)|0,n[Mp>>2]=6,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],Cg(s,4206,c)|0,n[Op>>2]=7,n[Op+4>>2]=0,n[c>>2]=n[Op>>2],n[c+4>>2]=n[Op+4>>2],Cg(s,4217,c)|0,n[Qc>>2]=3,n[Qc+4>>2]=0,n[c>>2]=n[Qc>>2],n[c+4>>2]=n[Qc+4>>2],VA(s,4235,c)|0,n[Np>>2]=1,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],IF(s,4251,c)|0,n[Ql>>2]=4,n[Ql+4>>2]=0,n[c>>2]=n[Ql>>2],n[c+4>>2]=n[Ql+4>>2],VA(s,4263,c)|0,n[Vr>>2]=5,n[Vr+4>>2]=0,n[c>>2]=n[Vr>>2],n[c+4>>2]=n[Vr+4>>2],VA(s,4279,c)|0,n[Lp>>2]=6,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],VA(s,4293,c)|0,n[Tp>>2]=7,n[Tp+4>>2]=0,n[c>>2]=n[Tp>>2],n[c+4>>2]=n[Tp+4>>2],VA(s,4306,c)|0,n[Rp>>2]=8,n[Rp+4>>2]=0,n[c>>2]=n[Rp>>2],n[c+4>>2]=n[Rp+4>>2],VA(s,4323,c)|0,n[Ou>>2]=9,n[Ou+4>>2]=0,n[c>>2]=n[Ou>>2],n[c+4>>2]=n[Ou+4>>2],VA(s,4335,c)|0,n[Nu>>2]=2,n[Nu+4>>2]=0,n[c>>2]=n[Nu>>2],n[c+4>>2]=n[Nu+4>>2],IF(s,4353,c)|0,n[Fp>>2]=12,n[Fp+4>>2]=0,n[c>>2]=n[Fp>>2],n[c+4>>2]=n[Fp+4>>2],Ig(s,4363,c)|0,n[bl>>2]=1,n[bl+4>>2]=0,n[c>>2]=n[bl>>2],n[c+4>>2]=n[bl+4>>2],zA(s,4376,c)|0,n[kp>>2]=2,n[kp+4>>2]=0,n[c>>2]=n[kp>>2],n[c+4>>2]=n[kp+4>>2],zA(s,4388,c)|0,n[Qp>>2]=13,n[Qp+4>>2]=0,n[c>>2]=n[Qp>>2],n[c+4>>2]=n[Qp+4>>2],Ig(s,4402,c)|0,n[ma>>2]=14,n[ma+4>>2]=0,n[c>>2]=n[ma>>2],n[c+4>>2]=n[ma+4>>2],Ig(s,4411,c)|0,n[go>>2]=15,n[go+4>>2]=0,n[c>>2]=n[go>>2],n[c+4>>2]=n[go+4>>2],Ig(s,4421,c)|0,n[ho>>2]=16,n[ho+4>>2]=0,n[c>>2]=n[ho>>2],n[c+4>>2]=n[ho+4>>2],Ig(s,4433,c)|0,n[po>>2]=17,n[po+4>>2]=0,n[c>>2]=n[po>>2],n[c+4>>2]=n[po+4>>2],Ig(s,4446,c)|0,n[Bn>>2]=18,n[Bn+4>>2]=0,n[c>>2]=n[Bn>>2],n[c+4>>2]=n[Bn+4>>2],Ig(s,4458,c)|0,n[rr>>2]=3,n[rr+4>>2]=0,n[c>>2]=n[rr>>2],n[c+4>>2]=n[rr+4>>2],zA(s,4471,c)|0,n[Qr>>2]=1,n[Qr+4>>2]=0,n[c>>2]=n[Qr>>2],n[c+4>>2]=n[Qr+4>>2],Uv(s,4486,c)|0,n[Ir>>2]=10,n[Ir+4>>2]=0,n[c>>2]=n[Ir>>2],n[c+4>>2]=n[Ir+4>>2],VA(s,4496,c)|0,n[Vt>>2]=11,n[Vt+4>>2]=0,n[c>>2]=n[Vt>>2],n[c+4>>2]=n[Vt+4>>2],VA(s,4508,c)|0,n[ir>>2]=3,n[ir+4>>2]=0,n[c>>2]=n[ir>>2],n[c+4>>2]=n[ir+4>>2],IF(s,4519,c)|0,n[Rr>>2]=4,n[Rr+4>>2]=0,n[c>>2]=n[Rr>>2],n[c+4>>2]=n[Rr+4>>2],cDe(s,4530,c)|0,n[Tt>>2]=19,n[Tt+4>>2]=0,n[c>>2]=n[Tt>>2],n[c+4>>2]=n[Tt+4>>2],uDe(s,4542,c)|0,n[Ge>>2]=12,n[Ge+4>>2]=0,n[c>>2]=n[Ge>>2],n[c+4>>2]=n[Ge+4>>2],ADe(s,4554,c)|0,n[He>>2]=13,n[He+4>>2]=0,n[c>>2]=n[He>>2],n[c+4>>2]=n[He+4>>2],fDe(s,4568,c)|0,n[at>>2]=2,n[at+4>>2]=0,n[c>>2]=n[at>>2],n[c+4>>2]=n[at+4>>2],pDe(s,4578,c)|0,n[Ze>>2]=20,n[Ze+4>>2]=0,n[c>>2]=n[Ze>>2],n[c+4>>2]=n[Ze+4>>2],hDe(s,4587,c)|0,n[et>>2]=22,n[et+4>>2]=0,n[c>>2]=n[et>>2],n[c+4>>2]=n[et+4>>2],wI(s,4602,c)|0,n[Re>>2]=23,n[Re+4>>2]=0,n[c>>2]=n[Re>>2],n[c+4>>2]=n[Re+4>>2],wI(s,4619,c)|0,n[Oe>>2]=14,n[Oe+4>>2]=0,n[c>>2]=n[Oe>>2],n[c+4>>2]=n[Oe+4>>2],gDe(s,4629,c)|0,n[We>>2]=1,n[We+4>>2]=0,n[c>>2]=n[We>>2],n[c+4>>2]=n[We+4>>2],dDe(s,4637,c)|0,n[se>>2]=4,n[se+4>>2]=0,n[c>>2]=n[se>>2],n[c+4>>2]=n[se+4>>2],zA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],zA(s,4669,c)|0,n[O>>2]=6,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],zA(s,4686,c)|0,n[M>>2]=7,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],zA(s,4701,c)|0,n[k>>2]=8,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],zA(s,4719,c)|0,n[Q>>2]=9,n[Q+4>>2]=0,n[c>>2]=n[Q>>2],n[c+4>>2]=n[Q+4>>2],zA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],mDe(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],Uv(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],Uv(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],Uv(s,4808,c)|0,E=l}function iDe(s,l){s=s|0,l=l|0;var c=0;c=BFe()|0,n[s>>2]=c,vFe(c,l),xp(n[s>>2]|0)}function sDe(s,l,c){return s=s|0,l=l|0,c=c|0,cFe(s,cn(l)|0,c,0),s|0}function oDe(s,l,c){return s=s|0,l=l|0,c=c|0,Kke(s,cn(l)|0,c,0),s|0}function aDe(s,l,c){return s=s|0,l=l|0,c=c|0,Rke(s,cn(l)|0,c,0),s|0}function wI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mke(s,l,d),E=f,s|0}function lDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZQe(s,l,d),E=f,s|0}function Ru(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],NQe(s,l,d),E=f,s|0}function Cg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CQe(s,l,d),E=f,s|0}function Cs(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iQe(s,l,d),E=f,s|0}function VA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qbe(s,l,d),E=f,s|0}function IF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Sbe(s,l,d),E=f,s|0}function Ig(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZPe(s,l,d),E=f,s|0}function zA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],NPe(s,l,d),E=f,s|0}function Uv(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CPe(s,l,d),E=f,s|0}function cDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iPe(s,l,d),E=f,s|0}function uDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qxe(s,l,d),E=f,s|0}function ADe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xxe(s,l,d),E=f,s|0}function fDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fxe(s,l,d),E=f,s|0}function pDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],VSe(s,l,d),E=f,s|0}function hDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],FSe(s,l,d),E=f,s|0}function gDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],dSe(s,l,d),E=f,s|0}function dDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZDe(s,l,d),E=f,s|0}function mDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],yDe(s,l,d),E=f,s|0}function yDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],EDe(s,c,d,1),E=f}function cn(s){return s=s|0,s|0}function EDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=wF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=CDe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,IDe(m,f)|0,f),E=d}function wF(){var s=0,l=0;if(o[7616]|0||(V9(9136),Zt(24,9136,_|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(br(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));V9(9136)}return 9136}function CDe(s){return s=s|0,0}function IDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=wF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],J9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vDe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function un(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0;B=E,E=E+32|0,se=B+24|0,j=B+20|0,k=B+16|0,O=B+12|0,M=B+8|0,Q=B+4|0,We=B,n[j>>2]=l,n[k>>2]=c,n[O>>2]=f,n[M>>2]=d,n[Q>>2]=m,m=s+28|0,n[We>>2]=n[m>>2],n[se>>2]=n[We>>2],wDe(s+24|0,se,j,O,M,k,Q)|0,n[m>>2]=n[n[m>>2]>>2],E=B}function wDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=BDe(l)|0,l=Gt(24)|0,K9(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function BDe(s){return s=s|0,n[s>>2]|0}function K9(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function Ar(s,l){return s=s|0,l=l|0,l|s|0}function J9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DDe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SDe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],J9(m,f,c),n[k>>2]=(n[k>>2]|0)+12,xDe(s,Q),PDe(Q),E=M;return}}function DDe(s){return s=s|0,357913941}function SDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function xDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function V9(s){s=s|0,kDe(s)}function bDe(s){s=s|0,QDe(s+24|0)}function br(s){return s=s|0,n[s>>2]|0}function QDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function kDe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,3,l,FDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Gr(){return 9228}function FDe(){return 1140}function RDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=TDe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=LDe(l,f)|0,E=c,l|0}function Wr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function TDe(s){return s=s|0,(n[(wF()|0)+24>>2]|0)+(s*12|0)|0}function LDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=E,E=E+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=NDe(f)|0,E=d,f|0}function NDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=E,E=E+32|0,l=d+12|0,c=d,f=BF(z9()|0)|0,f?(vF(l,f),DF(c,l),ODe(s,c),s=SF(l)|0):s=MDe(s)|0,E=d,s|0}function z9(){var s=0;return o[7632]|0||(JDe(9184),Zt(25,9184,_|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function BF(s){return s=s|0,n[s+36>>2]|0}function vF(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function DF(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function ODe(s,l){s=s|0,l=l|0,qDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function SF(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function MDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0;k=E,E=E+16|0,c=k+4|0,f=k,d=Ja(8)|0,m=d,B=Gt(48)|0,Q=B,l=Q+48|0;do n[Q>>2]=n[s>>2],Q=Q+4|0,s=s+4|0;while((Q|0)<(l|0));return l=m+4|0,n[l>>2]=B,Q=Gt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],X9(Q,B,c),n[d>>2]=Q,E=k,m|0}function X9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function UDe(s){s=s|0,Jm(s),pt(s)}function _De(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function HDe(s){s=s|0,pt(s)}function qDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=jDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function jDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var Q=0,k=0;return Q=E,E=E+16|0,k=Q,Va(k),s=ga(s)|0,B=GDe(s,+C[l>>3],+C[c>>3],+C[f>>3],+C[d>>3],+C[m>>3],+C[B>>3])|0,za(k),E=Q,B|0}function GDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var Q=0;return Q=xl(WDe()|0)|0,l=+JA(l),c=+JA(c),f=+JA(f),d=+JA(d),m=+JA(m),Fs(0,Q|0,s|0,+l,+c,+f,+d,+m,+ +JA(B))|0}function WDe(){var s=0;return o[7624]|0||(YDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function YDe(s){s=s|0,Pl(s,KDe()|0,6)}function KDe(){return 1112}function JDe(s){s=s|0,wp(s)}function VDe(s){s=s|0,Z9(s+24|0),$9(s+16|0)}function Z9(s){s=s|0,XDe(s)}function $9(s){s=s|0,zDe(s)}function zDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function XDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function wp(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function ZDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$De(s,c,d,0),E=f}function $De(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=xF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=eSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,tSe(m,f)|0,f),E=d}function xF(){var s=0,l=0;if(o[7640]|0||(tG(9232),Zt(26,9232,_|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(br(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));tG(9232)}return 9232}function eSe(s){return s=s|0,0}function tSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=xF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],eG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rSe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function eG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nSe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,iSe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],eG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,sSe(s,Q),oSe(Q),E=M;return}}function nSe(s){return s=s|0,357913941}function iSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function sSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function tG(s){s=s|0,cSe(s)}function aSe(s){s=s|0,lSe(s+24|0)}function lSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function cSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,uSe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uSe(){return 1144}function ASe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,Q=0,k=0;m=E,E=E+16|0,B=m+8|0,Q=m,k=fSe(s)|0,s=n[k+4>>2]|0,n[Q>>2]=n[k>>2],n[Q+4>>2]=s,n[B>>2]=n[Q>>2],n[B+4>>2]=n[Q+4>>2],pSe(l,B,c,f,d),E=m}function fSe(s){return s=s|0,(n[(xF()|0)+24>>2]|0)+(s*12|0)|0}function pSe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,Q=0,k=0,M=0;M=E,E=E+16|0,B=M+2|0,Q=M+1|0,k=M,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),Tu(B,c),c=+Lu(B,c),Tu(Q,f),f=+Lu(Q,f),XA(k,d),k=ZA(k,d)|0,d7[m&1](s,c,f,k),E=M}function Tu(s,l){s=s|0,l=+l}function Lu(s,l){return s=s|0,l=+l,+ +gSe(l)}function XA(s,l){s=s|0,l=l|0}function ZA(s,l){return s=s|0,l=l|0,hSe(l)|0}function hSe(s){return s=s|0,s|0}function gSe(s){return s=+s,+s}function dSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mSe(s,c,d,1),E=f}function mSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=PF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=ySe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,ESe(m,f)|0,f),E=d}function PF(){var s=0,l=0;if(o[7648]|0||(nG(9268),Zt(27,9268,_|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(br(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));nG(9268)}return 9268}function ySe(s){return s=s|0,0}function ESe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=PF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],rG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(CSe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function rG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function CSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=ISe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,wSe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],rG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,BSe(s,Q),vSe(Q),E=M;return}}function ISe(s){return s=s|0,357913941}function wSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function BSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function vSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function nG(s){s=s|0,xSe(s)}function DSe(s){s=s|0,SSe(s+24|0)}function SSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function xSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,4,l,PSe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function PSe(){return 1160}function bSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=QSe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=kSe(l,f)|0,E=c,l|0}function QSe(s){return s=s|0,(n[(PF()|0)+24>>2]|0)+(s*12|0)|0}function kSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),iG(Qg[c&31](s)|0)|0}function iG(s){return s=s|0,s&1|0}function FSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],RSe(s,c,d,0),E=f}function RSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=bF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=TSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,LSe(m,f)|0,f),E=d}function bF(){var s=0,l=0;if(o[7656]|0||(oG(9304),Zt(28,9304,_|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(br(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));oG(9304)}return 9304}function TSe(s){return s=s|0,0}function LSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=bF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],sG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(NSe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function sG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function NSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=OSe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,MSe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],sG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,USe(s,Q),_Se(Q),E=M;return}}function OSe(s){return s=s|0,357913941}function MSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function USe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _Se(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function oG(s){s=s|0,jSe(s)}function HSe(s){s=s|0,qSe(s+24|0)}function qSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function jSe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,GSe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function GSe(){return 1164}function WSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=YSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KSe(l,d,c),E=f}function YSe(s){return s=s|0,(n[(bF()|0)+24>>2]|0)+(s*12|0)|0}function KSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Bp(d,c),c=vp(d,c)|0,tf[f&31](s,c),Dp(d),E=m}function Bp(s,l){s=s|0,l=l|0,JSe(s,l)}function vp(s,l){return s=s|0,l=l|0,s|0}function Dp(s){s=s|0,qA(s)}function JSe(s,l){s=s|0,l=l|0,QF(s,l)}function QF(s,l){s=s|0,l=l|0,n[s>>2]=l}function VSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],zSe(s,c,d,0),E=f}function zSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=kF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=XSe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,ZSe(m,f)|0,f),E=d}function kF(){var s=0,l=0;if(o[7664]|0||(lG(9340),Zt(29,9340,_|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(br(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));lG(9340)}return 9340}function XSe(s){return s=s|0,0}function ZSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=kF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],aG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):($Se(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function aG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function $Se(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=exe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,txe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],aG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,rxe(s,Q),nxe(Q),E=M;return}}function exe(s){return s=s|0,357913941}function txe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function rxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function nxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function lG(s){s=s|0,oxe(s)}function ixe(s){s=s|0,sxe(s+24|0)}function sxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function oxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,4,l,axe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function axe(){return 1180}function lxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=cxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=uxe(l,d,c)|0,E=f,c|0}function cxe(s){return s=s|0,(n[(kF()|0)+24>>2]|0)+(s*12|0)|0}function uxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),wg(d,c),d=Bg(d,c)|0,d=_v(xR[f&15](s,d)|0)|0,E=m,d|0}function wg(s,l){s=s|0,l=l|0}function Bg(s,l){return s=s|0,l=l|0,Axe(l)|0}function _v(s){return s=s|0,s|0}function Axe(s){return s=s|0,s|0}function fxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pxe(s,c,d,0),E=f}function pxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=FF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=hxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,gxe(m,f)|0,f),E=d}function FF(){var s=0,l=0;if(o[7672]|0||(uG(9376),Zt(30,9376,_|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(br(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));uG(9376)}return 9376}function hxe(s){return s=s|0,0}function gxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=FF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],cG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(dxe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function cG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function dxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=mxe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,yxe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],cG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Exe(s,Q),Cxe(Q),E=M;return}}function mxe(s){return s=s|0,357913941}function yxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Exe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Cxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function uG(s){s=s|0,Bxe(s)}function Ixe(s){s=s|0,wxe(s+24|0)}function wxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Bxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,AG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function AG(){return 1196}function vxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=Dxe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Sxe(l,f)|0,E=c,l|0}function Dxe(s){return s=s|0,(n[(FF()|0)+24>>2]|0)+(s*12|0)|0}function Sxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),_v(Qg[c&31](s)|0)|0}function xxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Pxe(s,c,d,1),E=f}function Pxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=RF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=bxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Qxe(m,f)|0,f),E=d}function RF(){var s=0,l=0;if(o[7680]|0||(pG(9412),Zt(31,9412,_|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(br(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));pG(9412)}return 9412}function bxe(s){return s=s|0,0}function Qxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=RF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],fG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(kxe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function fG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function kxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Fxe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Rxe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],fG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Txe(s,Q),Lxe(Q),E=M;return}}function Fxe(s){return s=s|0,357913941}function Rxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Txe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Lxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function pG(s){s=s|0,Mxe(s)}function Nxe(s){s=s|0,Oxe(s+24|0)}function Oxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Mxe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,hG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function hG(){return 1200}function Uxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=_xe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Hxe(l,f)|0,E=c,l|0}function _xe(s){return s=s|0,(n[(RF()|0)+24>>2]|0)+(s*12|0)|0}function Hxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),Hv(Qg[c&31](s)|0)|0}function Hv(s){return s=s|0,s|0}function qxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jxe(s,c,d,0),E=f}function jxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=TF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Gxe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Wxe(m,f)|0,f),E=d}function TF(){var s=0,l=0;if(o[7688]|0||(dG(9448),Zt(32,9448,_|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(br(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));dG(9448)}return 9448}function Gxe(s){return s=s|0,0}function Wxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=TF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],gG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Yxe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function gG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Yxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Kxe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Jxe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],gG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Vxe(s,Q),zxe(Q),E=M;return}}function Kxe(s){return s=s|0,357913941}function Jxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Vxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function zxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function dG(s){s=s|0,$xe(s)}function Xxe(s){s=s|0,Zxe(s+24|0)}function Zxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function $xe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,mG()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function mG(){return 1204}function ePe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=tPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rPe(l,d,c),E=f}function tPe(s){return s=s|0,(n[(TF()|0)+24>>2]|0)+(s*12|0)|0}function rPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),LF(d,c),d=NF(d,c)|0,tf[f&31](s,d),E=m}function LF(s,l){s=s|0,l=l|0}function NF(s,l){return s=s|0,l=l|0,nPe(l)|0}function nPe(s){return s=s|0,s|0}function iPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sPe(s,c,d,0),E=f}function sPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=OF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=oPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,aPe(m,f)|0,f),E=d}function OF(){var s=0,l=0;if(o[7696]|0||(EG(9484),Zt(33,9484,_|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(br(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));EG(9484)}return 9484}function oPe(s){return s=s|0,0}function aPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=OF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],yG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lPe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function yG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cPe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,uPe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],yG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,APe(s,Q),fPe(Q),E=M;return}}function cPe(s){return s=s|0,357913941}function uPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function APe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function EG(s){s=s|0,gPe(s)}function pPe(s){s=s|0,hPe(s+24|0)}function hPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function gPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,dPe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dPe(){return 1212}function mPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+8|0,B=d,Q=yPe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],EPe(l,m,c,f),E=d}function yPe(s){return s=s|0,(n[(OF()|0)+24>>2]|0)+(s*12|0)|0}function EPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;Q=E,E=E+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),LF(m,c),m=NF(m,c)|0,wg(B,f),B=Bg(B,f)|0,bI[d&15](s,m,B),E=Q}function CPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IPe(s,c,d,1),E=f}function IPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=MF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=wPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,BPe(m,f)|0,f),E=d}function MF(){var s=0,l=0;if(o[7704]|0||(IG(9520),Zt(34,9520,_|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(br(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));IG(9520)}return 9520}function wPe(s){return s=s|0,0}function BPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=MF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],CG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vPe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function CG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DPe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SPe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],CG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,xPe(s,Q),PPe(Q),E=M;return}}function DPe(s){return s=s|0,357913941}function SPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function xPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function IG(s){s=s|0,kPe(s)}function bPe(s){s=s|0,QPe(s+24|0)}function QPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function kPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,FPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FPe(){return 1224}function RPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;return d=E,E=E+16|0,m=d+8|0,B=d,Q=TPe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+LPe(l,m,c),E=d,+f}function TPe(s){return s=s|0,(n[(MF()|0)+24>>2]|0)+(s*12|0)|0}function LPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,B=+CF(+y7[f&7](s,d)),E=m,+B}function NPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OPe(s,c,d,1),E=f}function OPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=UF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=MPe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,UPe(m,f)|0,f),E=d}function UF(){var s=0,l=0;if(o[7712]|0||(BG(9556),Zt(35,9556,_|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(br(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));BG(9556)}return 9556}function MPe(s){return s=s|0,0}function UPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=UF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],wG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_Pe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function wG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _Pe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=HPe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,qPe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],wG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,jPe(s,Q),GPe(Q),E=M;return}}function HPe(s){return s=s|0,357913941}function qPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function BG(s){s=s|0,KPe(s)}function WPe(s){s=s|0,YPe(s+24|0)}function YPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function KPe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,JPe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function JPe(){return 1232}function VPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=zPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+XPe(l,d),E=f,+c}function zPe(s){return s=s|0,(n[(UF()|0)+24>>2]|0)+(s*12|0)|0}function XPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +CF(+m7[c&15](s))}function ZPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$Pe(s,c,d,1),E=f}function $Pe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=_F()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=ebe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,tbe(m,f)|0,f),E=d}function _F(){var s=0,l=0;if(o[7720]|0||(DG(9592),Zt(36,9592,_|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(br(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));DG(9592)}return 9592}function ebe(s){return s=s|0,0}function tbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=_F()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],vG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rbe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function vG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nbe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,ibe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],vG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,sbe(s,Q),obe(Q),E=M;return}}function nbe(s){return s=s|0,357913941}function ibe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function sbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function obe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function DG(s){s=s|0,cbe(s)}function abe(s){s=s|0,lbe(s+24|0)}function lbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function cbe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,7,l,ube()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ube(){return 1276}function Abe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=fbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=pbe(l,f)|0,E=c,l|0}function fbe(s){return s=s|0,(n[(_F()|0)+24>>2]|0)+(s*12|0)|0}function pbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=E,E=E+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=SG(f)|0,E=d,f|0}function SG(s){s=s|0;var l=0,c=0,f=0,d=0;return d=E,E=E+32|0,l=d+12|0,c=d,f=BF(xG()|0)|0,f?(vF(l,f),DF(c,l),hbe(s,c),s=SF(l)|0):s=gbe(s)|0,E=d,s|0}function xG(){var s=0;return o[7736]|0||(Dbe(9640),Zt(25,9640,_|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function hbe(s,l){s=s|0,l=l|0,Ebe(l,s,s+8|0)|0}function gbe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=E,E=E+16|0,d=c+4|0,B=c,f=Ja(8)|0,l=f,Q=Gt(16)|0,n[Q>>2]=n[s>>2],n[Q+4>>2]=n[s+4>>2],n[Q+8>>2]=n[s+8>>2],n[Q+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],HF(s,m,d),n[f>>2]=s,E=c,l|0}function HF(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function dbe(s){s=s|0,Jm(s),pt(s)}function mbe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function ybe(s){s=s|0,pt(s)}function Ebe(s,l,c){return s=s|0,l=l|0,c=c|0,l=Cbe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function Cbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=E,E=E+16|0,d=f,Va(d),s=ga(s)|0,c=Ibe(s,n[l>>2]|0,+C[c>>3])|0,za(d),E=f,c|0}function Ibe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=xl(wbe()|0)|0,l=EF(l)|0,ml(0,f|0,s|0,l|0,+ +JA(c))|0}function wbe(){var s=0;return o[7728]|0||(Bbe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function Bbe(s){s=s|0,Pl(s,vbe()|0,2)}function vbe(){return 1264}function Dbe(s){s=s|0,wp(s)}function Sbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],xbe(s,c,d,1),E=f}function xbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=qF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Pbe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,bbe(m,f)|0,f),E=d}function qF(){var s=0,l=0;if(o[7744]|0||(bG(9684),Zt(37,9684,_|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(br(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));bG(9684)}return 9684}function Pbe(s){return s=s|0,0}function bbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=qF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],PG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Qbe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function PG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Qbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=kbe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Fbe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],PG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Rbe(s,Q),Tbe(Q),E=M;return}}function kbe(s){return s=s|0,357913941}function Fbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Rbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Tbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function bG(s){s=s|0,Obe(s)}function Lbe(s){s=s|0,Nbe(s+24|0)}function Nbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Obe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,5,l,Mbe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Mbe(){return 1280}function Ube(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=_be(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=Hbe(l,d,c)|0,E=f,c|0}function _be(s){return s=s|0,(n[(qF()|0)+24>>2]|0)+(s*12|0)|0}function Hbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=E,E=E+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(m,c),m=ZA(m,c)|0,bI[f&15](d,s,m),m=SG(d)|0,E=B,m|0}function qbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jbe(s,c,d,1),E=f}function jbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=jF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Gbe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Wbe(m,f)|0,f),E=d}function jF(){var s=0,l=0;if(o[7752]|0||(kG(9720),Zt(38,9720,_|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(br(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));kG(9720)}return 9720}function Gbe(s){return s=s|0,0}function Wbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=jF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],QG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Ybe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function QG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Ybe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Kbe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Jbe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],QG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,Vbe(s,Q),zbe(Q),E=M;return}}function Kbe(s){return s=s|0,357913941}function Jbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Vbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function zbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function kG(s){s=s|0,$be(s)}function Xbe(s){s=s|0,Zbe(s+24|0)}function Zbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function $be(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,eQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function eQe(){return 1288}function tQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=E,E=E+16|0,f=c+8|0,d=c,m=rQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=nQe(l,f)|0,E=c,l|0}function rQe(s){return s=s|0,(n[(jF()|0)+24>>2]|0)+(s*12|0)|0}function nQe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),Y9(Qg[c&31](s)|0)|0}function iQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sQe(s,c,d,0),E=f}function sQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=GF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=oQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,aQe(m,f)|0,f),E=d}function GF(){var s=0,l=0;if(o[7760]|0||(RG(9756),Zt(39,9756,_|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(br(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));RG(9756)}return 9756}function oQe(s){return s=s|0,0}function aQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=GF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],FG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lQe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function FG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cQe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,uQe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],FG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,AQe(s,Q),fQe(Q),E=M;return}}function cQe(s){return s=s|0,357913941}function uQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function AQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function RG(s){s=s|0,gQe(s)}function pQe(s){s=s|0,hQe(s+24|0)}function hQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function gQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,dQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dQe(){return 1292}function mQe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=yQe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],EQe(l,d,c),E=f}function yQe(s){return s=s|0,(n[(GF()|0)+24>>2]|0)+(s*12|0)|0}function EQe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Tu(d,c),c=+Lu(d,c),h7[f&31](s,c),E=m}function CQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IQe(s,c,d,0),E=f}function IQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=WF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=wQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,BQe(m,f)|0,f),E=d}function WF(){var s=0,l=0;if(o[7768]|0||(LG(9792),Zt(40,9792,_|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(br(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));LG(9792)}return 9792}function wQe(s){return s=s|0,0}function BQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=WF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],TG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vQe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function TG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DQe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SQe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],TG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,xQe(s,Q),PQe(Q),E=M;return}}function DQe(s){return s=s|0,357913941}function SQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function xQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function LG(s){s=s|0,kQe(s)}function bQe(s){s=s|0,QQe(s+24|0)}function QQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function kQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,1,l,FQe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FQe(){return 1300}function RQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+8|0,B=d,Q=TQe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],LQe(l,m,c,f),E=d}function TQe(s){return s=s|0,(n[(WF()|0)+24>>2]|0)+(s*12|0)|0}function LQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,Q=0;Q=E,E=E+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,Tu(B,f),f=+Lu(B,f),w7[d&15](s,m,f),E=Q}function NQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OQe(s,c,d,0),E=f}function OQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=YF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=MQe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,UQe(m,f)|0,f),E=d}function YF(){var s=0,l=0;if(o[7776]|0||(OG(9828),Zt(41,9828,_|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(br(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));OG(9828)}return 9828}function MQe(s){return s=s|0,0}function UQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=YF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],NG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_Qe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function NG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _Qe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=HQe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,qQe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],NG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,jQe(s,Q),GQe(Q),E=M;return}}function HQe(s){return s=s|0,357913941}function qQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function OG(s){s=s|0,KQe(s)}function WQe(s){s=s|0,YQe(s+24|0)}function YQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function KQe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,7,l,JQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function JQe(){return 1312}function VQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=zQe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XQe(l,d,c),E=f}function zQe(s){return s=s|0,(n[(YF()|0)+24>>2]|0)+(s*12|0)|0}function XQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,tf[f&31](s,d),E=m}function ZQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$Qe(s,c,d,0),E=f}function $Qe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=KF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=eke(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,tke(m,f)|0,f),E=d}function KF(){var s=0,l=0;if(o[7784]|0||(UG(9864),Zt(42,9864,_|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(br(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));UG(9864)}return 9864}function eke(s){return s=s|0,0}function tke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=KF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],MG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rke(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function MG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nke(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,ike(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],MG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,ske(s,Q),oke(Q),E=M;return}}function nke(s){return s=s|0,357913941}function ike(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ske(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function UG(s){s=s|0,cke(s)}function ake(s){s=s|0,lke(s+24|0)}function lke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function cke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,8,l,uke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uke(){return 1320}function Ake(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=fke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pke(l,d,c),E=f}function fke(s){return s=s|0,(n[(KF()|0)+24>>2]|0)+(s*12|0)|0}function pke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),hke(d,c),d=gke(d,c)|0,tf[f&31](s,d),E=m}function hke(s,l){s=s|0,l=l|0}function gke(s,l){return s=s|0,l=l|0,dke(l)|0}function dke(s){return s=s|0,s|0}function mke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],yke(s,c,d,0),E=f}function yke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=JF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Eke(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,Cke(m,f)|0,f),E=d}function JF(){var s=0,l=0;if(o[7792]|0||(HG(9900),Zt(43,9900,_|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(br(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));HG(9900)}return 9900}function Eke(s){return s=s|0,0}function Cke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=JF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_G(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Ike(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _G(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Ike(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=wke(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Bke(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_G(m,f,c),n[k>>2]=(n[k>>2]|0)+12,vke(s,Q),Dke(Q),E=M;return}}function wke(s){return s=s|0,357913941}function Bke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function vke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Dke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function HG(s){s=s|0,Pke(s)}function Ske(s){s=s|0,xke(s+24|0)}function xke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function Pke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,22,l,bke()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function bke(){return 1344}function Qke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=E,E=E+16|0,f=c+8|0,d=c,m=kke(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],Fke(l,f),E=c}function kke(s){return s=s|0,(n[(JF()|0)+24>>2]|0)+(s*12|0)|0}function Fke(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),ef[c&127](s)}function Rke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=VF()|0,s=Tke(c)|0,un(m,l,d,s,Lke(c,f)|0,f)}function VF(){var s=0,l=0;if(o[7800]|0||(jG(9936),Zt(44,9936,_|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(br(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));jG(9936)}return 9936}function Tke(s){return s=s|0,s|0}function Lke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=VF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(qG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(Nke(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function qG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function Nke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=Oke(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,Mke(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,qG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,Uke(s,d),_ke(d),E=Q;return}}function Oke(s){return s=s|0,536870911}function Mke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function Uke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _ke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function jG(s){s=s|0,jke(s)}function Hke(s){s=s|0,qke(s+24|0)}function qke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function jke(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,23,l,mG()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Gke(s,l){s=s|0,l=l|0,Yke(n[(Wke(s)|0)>>2]|0,l)}function Wke(s){return s=s|0,(n[(VF()|0)+24>>2]|0)+(s<<3)|0}function Yke(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,LF(f,l),l=NF(f,l)|0,ef[s&127](l),E=c}function Kke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=zF()|0,s=Jke(c)|0,un(m,l,d,s,Vke(c,f)|0,f)}function zF(){var s=0,l=0;if(o[7808]|0||(WG(9972),Zt(45,9972,_|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(br(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));WG(9972)}return 9972}function Jke(s){return s=s|0,s|0}function Vke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=zF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(GG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(zke(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function GG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function zke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=Xke(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,Zke(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,GG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,$ke(s,d),eFe(d),E=Q;return}}function Xke(s){return s=s|0,536870911}function Zke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function $ke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function WG(s){s=s|0,nFe(s)}function tFe(s){s=s|0,rFe(s+24|0)}function rFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function nFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,9,l,iFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function iFe(){return 1348}function sFe(s,l){return s=s|0,l=l|0,aFe(n[(oFe(s)|0)>>2]|0,l)|0}function oFe(s){return s=s|0,(n[(zF()|0)+24>>2]|0)+(s<<3)|0}function aFe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=E,E=E+16|0,f=c,YG(f,l),l=KG(f,l)|0,l=_v(Qg[s&31](l)|0)|0,E=c,l|0}function YG(s,l){s=s|0,l=l|0}function KG(s,l){return s=s|0,l=l|0,lFe(l)|0}function lFe(s){return s=s|0,s|0}function cFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=XF()|0,s=uFe(c)|0,un(m,l,d,s,AFe(c,f)|0,f)}function XF(){var s=0,l=0;if(o[7816]|0||(VG(10008),Zt(46,10008,_|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(br(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));VG(10008)}return 10008}function uFe(s){return s=s|0,s|0}function AFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=XF()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(JG(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(fFe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function JG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function fFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=pFe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,hFe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,JG(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,gFe(s,d),dFe(d),E=Q;return}}function pFe(s){return s=s|0,536870911}function hFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function gFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function dFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function VG(s){s=s|0,EFe(s)}function mFe(s){s=s|0,yFe(s+24|0)}function yFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function EFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,15,l,AG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function CFe(s){return s=s|0,wFe(n[(IFe(s)|0)>>2]|0)|0}function IFe(s){return s=s|0,(n[(XF()|0)+24>>2]|0)+(s<<3)|0}function wFe(s){return s=s|0,_v(tD[s&7]()|0)|0}function BFe(){var s=0;return o[7832]|0||(kFe(10052),Zt(25,10052,_|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function vFe(s,l){s=s|0,l=l|0,n[s>>2]=DFe()|0,n[s+4>>2]=SFe()|0,n[s+12>>2]=l,n[s+8>>2]=xFe()|0,n[s+32>>2]=2}function DFe(){return 11709}function SFe(){return 1188}function xFe(){return qv()|0}function PFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(bFe(c),pt(c)):l|0&&(Qu(l),pt(l))}function Sp(s,l){return s=s|0,l=l|0,l&s|0}function bFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function qv(){var s=0;return o[7824]|0||(n[2511]=QFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function QFe(){return 0}function kFe(s){s=s|0,wp(s)}function FFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=E,E=E+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,RFe(s,4827),TFe(s,4834,3)|0,LFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],NFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],OFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],MFe(s,4891,c)|0,E=l}function RFe(s,l){s=s|0,l=l|0;var c=0;c=dTe()|0,n[s>>2]=c,mTe(c,l),xp(n[s>>2]|0)}function TFe(s,l,c){return s=s|0,l=l|0,c=c|0,eTe(s,cn(l)|0,c,0),s|0}function LFe(s,l,c){return s=s|0,l=l|0,c=c|0,URe(s,cn(l)|0,c,0),s|0}function NFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CRe(s,l,d),E=f,s|0}function OFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tRe(s,l,d),E=f,s|0}function MFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],UFe(s,l,d),E=f,s|0}function UFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_Fe(s,c,d,1),E=f}function _Fe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=ZF()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=HFe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,qFe(m,f)|0,f),E=d}function ZF(){var s=0,l=0;if(o[7840]|0||(XG(10100),Zt(48,10100,_|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(br(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));XG(10100)}return 10100}function HFe(s){return s=s|0,0}function qFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=ZF()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],zG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(jFe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function zG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function jFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=GFe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,WFe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],zG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,YFe(s,Q),KFe(Q),E=M;return}}function GFe(s){return s=s|0,357913941}function WFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function YFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function KFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function XG(s){s=s|0,zFe(s)}function JFe(s){s=s|0,VFe(s+24|0)}function VFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function zFe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,6,l,XFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XFe(){return 1364}function ZFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=E,E=E+16|0,d=f+8|0,m=f,B=$Fe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=eRe(l,d,c)|0,E=f,c|0}function $Fe(s){return s=s|0,(n[(ZF()|0)+24>>2]|0)+(s*12|0)|0}function eRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,d=iG(xR[f&15](s,d)|0)|0,E=m,d|0}function tRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rRe(s,c,d,0),E=f}function rRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=$F()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=nRe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,iRe(m,f)|0,f),E=d}function $F(){var s=0,l=0;if(o[7848]|0||($G(10136),Zt(49,10136,_|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(br(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));$G(10136)}return 10136}function nRe(s){return s=s|0,0}function iRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=$F()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],ZG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sRe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function ZG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oRe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,aRe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],ZG(m,f,c),n[k>>2]=(n[k>>2]|0)+12,lRe(s,Q),cRe(Q),E=M;return}}function oRe(s){return s=s|0,357913941}function aRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function $G(s){s=s|0,fRe(s)}function uRe(s){s=s|0,ARe(s+24|0)}function ARe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function fRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,9,l,pRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pRe(){return 1372}function hRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,d=f+8|0,m=f,B=gRe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],dRe(l,d,c),E=f}function gRe(s){return s=s|0,(n[($F()|0)+24>>2]|0)+(s*12|0)|0}function dRe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=$e;m=E,E=E+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),mRe(d,c),B=y(yRe(d,c)),p7[f&1](s,B),E=m}function mRe(s,l){s=s|0,l=+l}function yRe(s,l){return s=s|0,l=+l,y(ERe(l))}function ERe(s){return s=+s,y(s)}function CRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,d=f+8|0,m=f,Q=n[c>>2]|0,B=n[c+4>>2]|0,c=cn(l)|0,n[m>>2]=Q,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IRe(s,c,d,0),E=f}function IRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0,k=0,M=0,O=0;d=E,E=E+32|0,m=d+16|0,O=d+8|0,Q=d,M=n[c>>2]|0,k=n[c+4>>2]|0,B=n[s>>2]|0,s=eR()|0,n[O>>2]=M,n[O+4>>2]=k,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=wRe(m)|0,n[Q>>2]=M,n[Q+4>>2]=k,n[m>>2]=n[Q>>2],n[m+4>>2]=n[Q+4>>2],un(B,l,s,c,BRe(m,f)|0,f),E=d}function eR(){var s=0,l=0;if(o[7856]|0||(t5(10172),Zt(50,10172,_|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(br(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t5(10172)}return 10172}function wRe(s){return s=s|0,0}function BRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0;return O=E,E=E+32|0,d=O+24|0,B=O+16|0,Q=O,k=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[Q>>2]=m,n[Q+4>>2]=f,j=eR()|0,M=j+24|0,s=Ar(l,4)|0,n[k>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],e5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vRe(M,Q,k),s=n[l>>2]|0),E=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function e5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;if(M=E,E=E+48|0,f=M+32|0,B=M+24|0,Q=M,k=s+4|0,d=(((n[k>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DRe(s)|0,m>>>0>>0)Jr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SRe(Q,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[k>>2]|0)-O|0)/12|0,s+8|0),k=Q+8|0,m=n[k>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],e5(m,f,c),n[k>>2]=(n[k>>2]|0)+12,xRe(s,Q),PRe(Q),E=M;return}}function DRe(s){return s=s|0,357913941}function SRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Gt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function xRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&pt(s)}function t5(s){s=s|0,kRe(s)}function bRe(s){s=s|0,QRe(s+24|0)}function QRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),pt(c))}function kRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,2,3,l,FRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FRe(){return 1380}function RRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+8|0,B=d,Q=TRe(s)|0,s=n[Q+4>>2]|0,n[B>>2]=n[Q>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],LRe(l,m,c,f),E=d}function TRe(s){return s=s|0,(n[(eR()|0)+24>>2]|0)+(s*12|0)|0}function LRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;Q=E,E=E+16|0,m=Q+1|0,B=Q,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,NRe(B,f),B=ORe(B,f)|0,bI[d&15](s,m,B),E=Q}function NRe(s,l){s=s|0,l=l|0}function ORe(s,l){return s=s|0,l=l|0,MRe(l)|0}function MRe(s){return s=s|0,(s|0)!=0|0}function URe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=tR()|0,s=_Re(c)|0,un(m,l,d,s,HRe(c,f)|0,f)}function tR(){var s=0,l=0;if(o[7864]|0||(n5(10208),Zt(51,10208,_|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(br(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));n5(10208)}return 10208}function _Re(s){return s=s|0,s|0}function HRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=tR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(r5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(qRe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function r5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function qRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=jRe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,GRe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,r5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,WRe(s,d),YRe(d),E=Q;return}}function jRe(s){return s=s|0,536870911}function GRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function WRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function YRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function n5(s){s=s|0,VRe(s)}function KRe(s){s=s|0,JRe(s+24|0)}function JRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function VRe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,24,l,zRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function zRe(){return 1392}function XRe(s,l){s=s|0,l=l|0,$Re(n[(ZRe(s)|0)>>2]|0,l)}function ZRe(s){return s=s|0,(n[(tR()|0)+24>>2]|0)+(s<<3)|0}function $Re(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,YG(f,l),l=KG(f,l)|0,ef[s&127](l),E=c}function eTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=rR()|0,s=tTe(c)|0,un(m,l,d,s,rTe(c,f)|0,f)}function rR(){var s=0,l=0;if(o[7872]|0||(s5(10244),Zt(52,10244,_|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(br(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s5(10244)}return 10244}function tTe(s){return s=s|0,s|0}function rTe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=rR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(i5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(nTe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function i5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function nTe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=iTe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,sTe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,i5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,oTe(s,d),aTe(d),E=Q;return}}function iTe(s){return s=s|0,536870911}function sTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function oTe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function aTe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function s5(s){s=s|0,uTe(s)}function lTe(s){s=s|0,cTe(s+24|0)}function cTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function uTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,16,l,ATe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ATe(){return 1400}function fTe(s){return s=s|0,hTe(n[(pTe(s)|0)>>2]|0)|0}function pTe(s){return s=s|0,(n[(rR()|0)+24>>2]|0)+(s<<3)|0}function hTe(s){return s=s|0,gTe(tD[s&7]()|0)|0}function gTe(s){return s=s|0,s|0}function dTe(){var s=0;return o[7880]|0||(BTe(10280),Zt(25,10280,_|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function mTe(s,l){s=s|0,l=l|0,n[s>>2]=yTe()|0,n[s+4>>2]=ETe()|0,n[s+12>>2]=l,n[s+8>>2]=CTe()|0,n[s+32>>2]=4}function yTe(){return 11711}function ETe(){return 1356}function CTe(){return qv()|0}function ITe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(wTe(c),pt(c)):l|0&&(Eg(l),pt(l))}function wTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function BTe(s){s=s|0,wp(s)}function vTe(s){s=s|0,DTe(s,4920),STe(s)|0,xTe(s)|0}function DTe(s,l){s=s|0,l=l|0;var c=0;c=xG()|0,n[s>>2]=c,JTe(c,l),xp(n[s>>2]|0)}function STe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,MTe()|0),s|0}function xTe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,PTe()|0),s|0}function PTe(){var s=0;return o[7888]|0||(o5(10328),Zt(53,10328,_|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),br(10328)|0||o5(10328),10328}function vg(s,l){s=s|0,l=l|0,un(s,0,l,0,0,0)}function o5(s){s=s|0,kTe(s),Dg(s,10)}function bTe(s){s=s|0,QTe(s+24|0)}function QTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function kTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,1,l,LTe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FTe(s,l,c){s=s|0,l=l|0,c=+c,RTe(s,l,c)}function Dg(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function RTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+16|0,m=f+8|0,Q=f+13|0,d=f,B=f+12|0,XA(Q,l),n[m>>2]=ZA(Q,l)|0,Tu(B,c),C[d>>3]=+Lu(B,c),TTe(s,m,d),E=f}function TTe(s,l,c){s=s|0,l=l|0,c=c|0,W(s+8|0,n[l>>2]|0,+C[c>>3]),o[s+24>>0]=1}function LTe(){return 1404}function NTe(s,l){return s=s|0,l=+l,OTe(s,l)|0}function OTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return f=E,E=E+16|0,m=f+4|0,B=f+8|0,Q=f,d=Ja(8)|0,c=d,k=Gt(16)|0,XA(m,s),s=ZA(m,s)|0,Tu(B,l),W(k,s,+Lu(B,l)),B=c+4|0,n[B>>2]=k,s=Gt(8)|0,B=n[B>>2]|0,n[Q>>2]=0,n[m>>2]=n[Q>>2],HF(s,B,m),n[d>>2]=s,E=f,c|0}function MTe(){var s=0;return o[7896]|0||(a5(10364),Zt(54,10364,_|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),br(10364)|0||a5(10364),10364}function a5(s){s=s|0,HTe(s),Dg(s,55)}function UTe(s){s=s|0,_Te(s+24|0)}function _Te(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function HTe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,4,l,WTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qTe(s){s=s|0,jTe(s)}function jTe(s){s=s|0,GTe(s)}function GTe(s){s=s|0,l5(s+8|0),o[s+24>>0]=1}function l5(s){s=s|0,n[s>>2]=0,C[s+8>>3]=0}function WTe(){return 1424}function YTe(){return KTe()|0}function KTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=E,E=E+16|0,d=l+4|0,B=l,c=Ja(8)|0,s=c,f=Gt(16)|0,l5(f),m=s+4|0,n[m>>2]=f,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],HF(f,m,d),n[c>>2]=f,E=l,s|0}function JTe(s,l){s=s|0,l=l|0,n[s>>2]=VTe()|0,n[s+4>>2]=zTe()|0,n[s+12>>2]=l,n[s+8>>2]=XTe()|0,n[s+32>>2]=5}function VTe(){return 11710}function zTe(){return 1416}function XTe(){return jv()|0}function ZTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&($Te(c),pt(c)):l|0&&pt(l)}function $Te(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function jv(){var s=0;return o[7904]|0||(n[2600]=eLe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function eLe(){return n[357]|0}function tLe(s){s=s|0,rLe(s,4926),nLe(s)|0}function rLe(s,l){s=s|0,l=l|0;var c=0;c=z9()|0,n[s>>2]=c,hLe(c,l),xp(n[s>>2]|0)}function nLe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,iLe()|0),s|0}function iLe(){var s=0;return o[7912]|0||(c5(10412),Zt(56,10412,_|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),br(10412)|0||c5(10412),10412}function c5(s){s=s|0,aLe(s),Dg(s,57)}function sLe(s){s=s|0,oLe(s+24|0)}function oLe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function aLe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,5,l,ALe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function lLe(s){s=s|0,cLe(s)}function cLe(s){s=s|0,uLe(s)}function uLe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function ALe(){return 1432}function fLe(){return pLe()|0}function pLe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,Q=0;B=E,E=E+16|0,s=B+4|0,l=B,c=Ja(8)|0,f=c,d=Gt(48)|0,m=d,Q=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(Q|0));return m=f+4|0,n[m>>2]=d,Q=Gt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],X9(Q,m,s),n[c>>2]=Q,E=B,f|0}function hLe(s,l){s=s|0,l=l|0,n[s>>2]=gLe()|0,n[s+4>>2]=dLe()|0,n[s+12>>2]=l,n[s+8>>2]=mLe()|0,n[s+32>>2]=6}function gLe(){return 11704}function dLe(){return 1436}function mLe(){return jv()|0}function yLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(ELe(c),pt(c)):l|0&&pt(l)}function ELe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function CLe(s){s=s|0,ILe(s,4933),wLe(s)|0,BLe(s)|0}function ILe(s,l){s=s|0,l=l|0;var c=0;c=KLe()|0,n[s>>2]=c,JLe(c,l),xp(n[s>>2]|0)}function wLe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,OLe()|0),s|0}function BLe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,vLe()|0),s|0}function vLe(){var s=0;return o[7920]|0||(u5(10452),Zt(58,10452,_|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),br(10452)|0||u5(10452),10452}function u5(s){s=s|0,xLe(s),Dg(s,1)}function DLe(s){s=s|0,SLe(s+24|0)}function SLe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function xLe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,1,l,kLe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function PLe(s,l,c){s=s|0,l=+l,c=+c,bLe(s,l,c)}function bLe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+32|0,m=f+8|0,Q=f+17|0,d=f,B=f+16|0,Tu(Q,l),C[m>>3]=+Lu(Q,l),Tu(B,c),C[d>>3]=+Lu(B,c),QLe(s,m,d),E=f}function QLe(s,l,c){s=s|0,l=l|0,c=c|0,A5(s+8|0,+C[l>>3],+C[c>>3]),o[s+24>>0]=1}function A5(s,l,c){s=s|0,l=+l,c=+c,C[s>>3]=l,C[s+8>>3]=c}function kLe(){return 1472}function FLe(s,l){return s=+s,l=+l,RLe(s,l)|0}function RLe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return f=E,E=E+16|0,B=f+4|0,Q=f+8|0,k=f,d=Ja(8)|0,c=d,m=Gt(16)|0,Tu(B,s),s=+Lu(B,s),Tu(Q,l),A5(m,s,+Lu(Q,l)),Q=c+4|0,n[Q>>2]=m,m=Gt(8)|0,Q=n[Q>>2]|0,n[k>>2]=0,n[B>>2]=n[k>>2],f5(m,Q,B),n[d>>2]=m,E=f,c|0}function f5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function TLe(s){s=s|0,Jm(s),pt(s)}function LLe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function NLe(s){s=s|0,pt(s)}function OLe(){var s=0;return o[7928]|0||(p5(10488),Zt(59,10488,_|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),br(10488)|0||p5(10488),10488}function p5(s){s=s|0,_Le(s),Dg(s,60)}function MLe(s){s=s|0,ULe(s+24|0)}function ULe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function _Le(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,6,l,GLe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function HLe(s){s=s|0,qLe(s)}function qLe(s){s=s|0,jLe(s)}function jLe(s){s=s|0,h5(s+8|0),o[s+24>>0]=1}function h5(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function GLe(){return 1492}function WLe(){return YLe()|0}function YLe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=E,E=E+16|0,d=l+4|0,B=l,c=Ja(8)|0,s=c,f=Gt(16)|0,h5(f),m=s+4|0,n[m>>2]=f,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],f5(f,m,d),n[c>>2]=f,E=l,s|0}function KLe(){var s=0;return o[7936]|0||(eNe(10524),Zt(25,10524,_|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function JLe(s,l){s=s|0,l=l|0,n[s>>2]=VLe()|0,n[s+4>>2]=zLe()|0,n[s+12>>2]=l,n[s+8>>2]=XLe()|0,n[s+32>>2]=7}function VLe(){return 11700}function zLe(){return 1484}function XLe(){return jv()|0}function ZLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&($Le(c),pt(c)):l|0&&pt(l)}function $Le(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function eNe(s){s=s|0,wp(s)}function tNe(s,l,c){s=s|0,l=l|0,c=c|0,s=cn(l)|0,l=rNe(c)|0,c=nNe(c,0)|0,RNe(s,l,c,nR()|0,0)}function rNe(s){return s=s|0,s|0}function nNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=nR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(d5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(uNe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function nR(){var s=0,l=0;if(o[7944]|0||(g5(10568),Zt(61,10568,_|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(br(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));g5(10568)}return 10568}function g5(s){s=s|0,oNe(s)}function iNe(s){s=s|0,sNe(s+24|0)}function sNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function oNe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,17,l,hG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function aNe(s){return s=s|0,cNe(n[(lNe(s)|0)>>2]|0)|0}function lNe(s){return s=s|0,(n[(nR()|0)+24>>2]|0)+(s<<3)|0}function cNe(s){return s=s|0,Hv(tD[s&7]()|0)|0}function d5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function uNe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=ANe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,fNe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,d5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,pNe(s,d),hNe(d),E=Q;return}}function ANe(s){return s=s|0,536870911}function fNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function pNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function hNe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function gNe(){dNe()}function dNe(){mNe(10604)}function mNe(s){s=s|0,yNe(s,4955)}function yNe(s,l){s=s|0,l=l|0;var c=0;c=ENe()|0,n[s>>2]=c,CNe(c,l),xp(n[s>>2]|0)}function ENe(){var s=0;return o[7952]|0||(bNe(10612),Zt(25,10612,_|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function CNe(s,l){s=s|0,l=l|0,n[s>>2]=vNe()|0,n[s+4>>2]=DNe()|0,n[s+12>>2]=l,n[s+8>>2]=SNe()|0,n[s+32>>2]=8}function xp(s){s=s|0;var l=0,c=0;l=E,E=E+16|0,c=l,jm()|0,n[c>>2]=s,INe(10608,c),E=l}function jm(){return o[11714]|0||(n[2652]=0,Zt(62,10608,_|0)|0,o[11714]=1),10608}function INe(s,l){s=s|0,l=l|0;var c=0;c=Gt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function wNe(s){s=s|0,BNe(s)}function BNe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,pt(c);while((l|0)!=0);n[s>>2]=0}function vNe(){return 11715}function DNe(){return 1496}function SNe(){return qv()|0}function xNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(PNe(c),pt(c)):l|0&&pt(l)}function PNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function bNe(s){s=s|0,wp(s)}function QNe(s,l){s=s|0,l=l|0;var c=0,f=0;jm()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&(X5(iR(f)|0,s)|0)==0);)if(c=n[c>>2]|0,!c)break e;kNe(f,l)}while(0)}function iR(s){return s=s|0,n[s+12>>2]|0}function kNe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(qA(c),pt(c)),c=Gt(4)|0,G9(c,l),n[s>>2]=c}function sR(){return o[11716]|0||(n[2664]=0,Zt(63,10656,_|0)|0,o[11716]=1),10656}function m5(){var s=0;return o[11717]|0?s=n[2665]|0:(FNe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function FNe(){o[11740]|0||(o[11718]=Ar(Ar(8,0)|0,0)|0,o[11719]=Ar(Ar(0,0)|0,0)|0,o[11720]=Ar(Ar(0,16)|0,0)|0,o[11721]=Ar(Ar(8,0)|0,0)|0,o[11722]=Ar(Ar(0,0)|0,0)|0,o[11723]=Ar(Ar(8,0)|0,0)|0,o[11724]=Ar(Ar(0,0)|0,0)|0,o[11725]=Ar(Ar(8,0)|0,0)|0,o[11726]=Ar(Ar(0,0)|0,0)|0,o[11727]=Ar(Ar(8,0)|0,0)|0,o[11728]=Ar(Ar(0,0)|0,0)|0,o[11729]=Ar(Ar(0,0)|0,32)|0,o[11730]=Ar(Ar(0,0)|0,32)|0,o[11740]=1)}function y5(){return 1572}function RNe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0;m=E,E=E+32|0,O=m+16|0,M=m+12|0,k=m+8|0,Q=m+4|0,B=m,n[O>>2]=s,n[M>>2]=l,n[k>>2]=c,n[Q>>2]=f,n[B>>2]=d,sR()|0,TNe(10656,O,M,k,Q,B),E=m}function TNe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Gt(24)|0,K9(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function E5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0;if(at=E,E=E+32|0,Oe=at+20|0,Re=at+8|0,et=at+4|0,Ze=at,l=n[l>>2]|0,l|0){We=Oe+4|0,k=Oe+8|0,M=Re+4|0,O=Re+8|0,j=Re+8|0,se=Oe+8|0;do{if(B=l+4|0,Q=oR(B)|0,Q|0){if(d=BI(Q)|0,n[Oe>>2]=0,n[We>>2]=0,n[k>>2]=0,f=(vI(Q)|0)+1|0,LNe(Oe,f),f|0)for(;f=f+-1|0,bc(Re,n[d>>2]|0),m=n[We>>2]|0,m>>>0<(n[se>>2]|0)>>>0?(n[m>>2]=n[Re>>2],n[We>>2]=(n[We>>2]|0)+4):aR(Oe,Re),f;)d=d+4|0;f=DI(Q)|0,n[Re>>2]=0,n[M>>2]=0,n[O>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?NNe(Re,f):(n[d>>2]=n[f>>2],n[M>>2]=(n[M>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[M>>2]|0,m=n[j>>2]|0}while(0);n[et>>2]=Gv(B)|0,n[Ze>>2]=br(Q)|0,ONe(c,s,et,Ze,Oe,Re),lR(Re),$A(Oe)}l=n[l>>2]|0}while((l|0)!=0)}E=at}function oR(s){return s=s|0,n[s+12>>2]|0}function BI(s){return s=s|0,n[s+12>>2]|0}function vI(s){return s=s|0,n[s+16>>2]|0}function LNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=E,E=E+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0>>0&&(x5(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),P5(s,c),b5(c)),E=d}function aR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;if(B=E,E=E+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=S5(s)|0,m>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,k=M>>1,x5(c,M>>2>>>0>>1>>>0?k>>>0>>0?d:k:m,(n[f>>2]|0)-Q>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,P5(s,c),b5(c),E=B;return}}function DI(s){return s=s|0,n[s+8>>2]|0}function NNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;if(B=E,E=E+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=D5(s)|0,m>>>0>>0)Jr(s);else{Q=n[s>>2]|0,M=(n[s+8>>2]|0)-Q|0,k=M>>1,rOe(c,M>>2>>>0>>1>>>0?k>>>0>>0?d:k:m,(n[f>>2]|0)-Q>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,nOe(s,c),iOe(c),E=B;return}}function Gv(s){return s=s|0,n[s>>2]|0}function ONe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,MNe(s,l,c,f,d,m)}function lR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function $A(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),pt(c))}function MNe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=E,E=E+48|0,O=B+40|0,Q=B+32|0,j=B+24|0,k=B+12|0,M=B,Va(Q),s=ga(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,cR(k,d),UNe(M,m),n[O>>2]=n[j>>2],_Ne(s,O,c,f,k,M),lR(M),$A(k),za(Q),E=B}function cR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(eOe(s,f),tOe(s,n[l>>2]|0,n[c>>2]|0,f))}function UNe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(ZNe(s,f),$Ne(s,n[l>>2]|0,n[c>>2]|0,f))}function _Ne(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=E,E=E+32|0,O=B+28|0,j=B+24|0,Q=B+12|0,k=B,M=xl(HNe()|0)|0,n[j>>2]=n[l>>2],n[O>>2]=n[j>>2],l=Sg(O)|0,c=C5(c)|0,f=uR(f)|0,n[Q>>2]=n[d>>2],O=d+4|0,n[Q+4>>2]=n[O>>2],j=d+8|0,n[Q+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[d>>2]=0,d=AR(Q)|0,n[k>>2]=n[m>>2],O=m+4|0,n[k+4>>2]=n[O>>2],j=m+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[m>>2]=0,io(0,M|0,s|0,l|0,c|0,f|0,d|0,qNe(k)|0)|0,lR(k),$A(Q),E=B}function HNe(){var s=0;return o[7968]|0||(zNe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function Sg(s){return s=s|0,w5(s)|0}function C5(s){return s=s|0,I5(s)|0}function uR(s){return s=s|0,Hv(s)|0}function AR(s){return s=s|0,GNe(s)|0}function qNe(s){return s=s|0,jNe(s)|0}function jNe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Ja(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=I5(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function I5(s){return s=s|0,s|0}function GNe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Ja(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=w5((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function w5(s){s=s|0;var l=0,c=0,f=0,d=0;return d=E,E=E+32|0,l=d+12|0,c=d,f=BF(B5()|0)|0,f?(vF(l,f),DF(c,l),SUe(s,c),s=SF(l)|0):s=WNe(s)|0,E=d,s|0}function B5(){var s=0;return o[7960]|0||(VNe(10664),Zt(25,10664,_|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function WNe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=E,E=E+16|0,d=c+4|0,B=c,f=Ja(8)|0,l=f,Q=Gt(4)|0,n[Q>>2]=n[s>>2],m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],v5(s,m,d),n[f>>2]=s,E=c,l|0}function v5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function YNe(s){s=s|0,Jm(s),pt(s)}function KNe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function JNe(s){s=s|0,pt(s)}function VNe(s){s=s|0,wp(s)}function zNe(s){s=s|0,Pl(s,XNe()|0,5)}function XNe(){return 1676}function ZNe(s,l){s=s|0,l=l|0;var c=0;if((D5(s)|0)>>>0>>0&&Jr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function $Ne(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Cr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function D5(s){return s=s|0,1073741823}function eOe(s,l){s=s|0,l=l|0;var c=0;if((S5(s)|0)>>>0>>0&&Jr(s),l>>>0>1073741823)Rt();else{c=Gt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function tOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Cr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function S5(s){return s=s|0,1073741823}function rOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function nOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function iOe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function x5(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Gt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function P5(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function b5(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&pt(s)}function sOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0;if(Re=E,E=E+32|0,O=Re+20|0,j=Re+12|0,M=Re+16|0,se=Re+4|0,We=Re,Oe=Re+8|0,Q=m5()|0,m=n[Q>>2]|0,B=n[m>>2]|0,B|0)for(k=n[Q+8>>2]|0,Q=n[Q+4>>2]|0;bc(O,B),oOe(s,O,Q,k),m=m+4|0,B=n[m>>2]|0,B;)k=k+1|0,Q=Q+1|0;if(m=y5()|0,B=n[m>>2]|0,B|0)do bc(O,B),n[j>>2]=n[m+4>>2],aOe(l,O,j),m=m+8|0,B=n[m>>2]|0;while((B|0)!=0);if(m=n[(jm()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,bc(O,n[(Gm(l)|0)>>2]|0),n[j>>2]=iR(l)|0,lOe(c,O,j),m=n[m>>2]|0;while((m|0)!=0);if(bc(M,0),m=sR()|0,n[O>>2]=n[M>>2],E5(O,m,d),m=n[(jm()|0)>>2]|0,m|0){s=O+4|0,l=O+8|0,c=O+8|0;do{if(k=n[m+4>>2]|0,bc(j,n[(Gm(k)|0)>>2]|0),cOe(se,Q5(k)|0),B=n[se>>2]|0,B|0){n[O>>2]=0,n[s>>2]=0,n[l>>2]=0;do bc(We,n[(Gm(n[B+4>>2]|0)|0)>>2]|0),Q=n[s>>2]|0,Q>>>0<(n[c>>2]|0)>>>0?(n[Q>>2]=n[We>>2],n[s>>2]=(n[s>>2]|0)+4):aR(O,We),B=n[B>>2]|0;while((B|0)!=0);uOe(f,j,O),$A(O)}n[Oe>>2]=n[j>>2],M=k5(k)|0,n[O>>2]=n[Oe>>2],E5(O,M,d),$9(se),m=n[m>>2]|0}while((m|0)!=0)}E=Re}function oOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,wOe(s,l,c,f)}function aOe(s,l,c){s=s|0,l=l|0,c=c|0,IOe(s,l,c)}function Gm(s){return s=s|0,s|0}function lOe(s,l,c){s=s|0,l=l|0,c=c|0,mOe(s,l,c)}function Q5(s){return s=s|0,s+16|0}function cOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;if(m=E,E=E+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=dOe(c)|0,f|0){if(f=Gt(12)|0,B=(F5(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Gt(12)|0,k=(F5(d)|0)+4|0,Q=n[k+4>>2]|0,B=s+4|0,n[B>>2]=n[k>>2],n[B+4>>2]=Q,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}E=m}function uOe(s,l,c){s=s|0,l=l|0,c=c|0,AOe(s,l,c)}function k5(s){return s=s|0,s+24|0}function AOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+32|0,B=f+24|0,d=f+16|0,Q=f+12|0,m=f,Va(d),s=ga(s)|0,n[Q>>2]=n[l>>2],cR(m,c),n[B>>2]=n[Q>>2],fOe(s,B,m),$A(m),za(d),E=f}function fOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=E,E=E+32|0,B=f+16|0,Q=f+12|0,d=f,m=xl(pOe()|0)|0,n[Q>>2]=n[l>>2],n[B>>2]=n[Q>>2],l=Sg(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],Q=c+8|0,n[d+8>>2]=n[Q>>2],n[Q>>2]=0,n[B>>2]=0,n[c>>2]=0,no(0,m|0,s|0,l|0,AR(d)|0)|0,$A(d),E=f}function pOe(){var s=0;return o[7976]|0||(hOe(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function hOe(s){s=s|0,Pl(s,gOe()|0,2)}function gOe(){return 1732}function dOe(s){return s=s|0,n[s>>2]|0}function F5(s){return s=s|0,n[s>>2]|0}function mOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+32|0,m=f+16|0,d=f+8|0,B=f,Va(d),s=ga(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],R5(s,m,c),za(d),E=f}function R5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+16|0,m=f+4|0,B=f,d=xl(yOe()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=Sg(m)|0,no(0,d|0,s|0,l|0,C5(c)|0)|0,E=f}function yOe(){var s=0;return o[7984]|0||(EOe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function EOe(s){s=s|0,Pl(s,COe()|0,2)}function COe(){return 1744}function IOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=E,E=E+32|0,m=f+16|0,d=f+8|0,B=f,Va(d),s=ga(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],R5(s,m,c),za(d),E=f}function wOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+32|0,B=d+16|0,m=d+8|0,Q=d,Va(m),s=ga(s)|0,n[Q>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[Q>>2],BOe(s,B,c,f),za(m),E=d}function BOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,B=d+4|0,Q=d,m=xl(vOe()|0)|0,n[Q>>2]=n[l>>2],n[B>>2]=n[Q>>2],l=Sg(B)|0,c=Wm(c)|0,gc(0,m|0,s|0,l|0,c|0,Wm(f)|0)|0,E=d}function vOe(){var s=0;return o[7992]|0||(SOe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function Wm(s){return s=s|0,DOe(s)|0}function DOe(s){return s=s|0,s&255|0}function SOe(s){s=s|0,Pl(s,xOe()|0,3)}function xOe(){return 1756}function POe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;switch(se=E,E=E+32|0,Q=se+8|0,k=se+4|0,M=se+20|0,O=se,QF(s,0),f=DUe(l)|0,n[Q>>2]=0,j=Q+4|0,n[j>>2]=0,n[Q+8>>2]=0,f<<24>>24){case 0:{o[M>>0]=0,bOe(k,c,M),Wv(s,k)|0,jA(k);break}case 8:{j=mR(l)|0,o[M>>0]=8,bc(O,n[j+4>>2]|0),QOe(k,c,M,O,j+8|0),Wv(s,k)|0,jA(k);break}case 9:{if(m=mR(l)|0,l=n[m+4>>2]|0,l|0)for(B=Q+8|0,d=m+12|0;l=l+-1|0,bc(k,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[k>>2],n[j>>2]=(n[j>>2]|0)+4):aR(Q,k),l;)d=d+4|0;o[M>>0]=9,bc(O,n[m+8>>2]|0),kOe(k,c,M,O,Q),Wv(s,k)|0,jA(k);break}default:j=mR(l)|0,o[M>>0]=f,bc(O,n[j+4>>2]|0),FOe(k,c,M,O),Wv(s,k)|0,jA(k)}$A(Q),E=se}function bOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=E,E=E+16|0,d=f,Va(d),l=ga(l)|0,WOe(s,l,o[c>>0]|0),za(d),E=f}function Wv(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&PA(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function QOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0;m=E,E=E+32|0,Q=m+16|0,B=m+8|0,k=m,Va(B),l=ga(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],d=n[d>>2]|0,n[Q>>2]=n[k>>2],HOe(s,l,c,Q,d),za(B),E=m}function kOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0;m=E,E=E+32|0,k=m+24|0,B=m+16|0,M=m+12|0,Q=m,Va(B),l=ga(l)|0,c=o[c>>0]|0,n[M>>2]=n[f>>2],cR(Q,d),n[k>>2]=n[M>>2],OOe(s,l,c,k,Q),$A(Q),za(B),E=m}function FOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+32|0,B=d+16|0,m=d+8|0,Q=d,Va(m),l=ga(l)|0,c=o[c>>0]|0,n[Q>>2]=n[f>>2],n[B>>2]=n[Q>>2],ROe(s,l,c,B),za(m),E=d}function ROe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,Q=0;d=E,E=E+16|0,m=d+4|0,Q=d,B=xl(TOe()|0)|0,c=Wm(c)|0,n[Q>>2]=n[f>>2],n[m>>2]=n[Q>>2],Yv(s,no(0,B|0,l|0,c|0,Sg(m)|0)|0),E=d}function TOe(){var s=0;return o[8e3]|0||(LOe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function Yv(s,l){s=s|0,l=l|0,QF(s,l)}function LOe(s){s=s|0,Pl(s,NOe()|0,2)}function NOe(){return 1772}function OOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0;m=E,E=E+32|0,k=m+16|0,M=m+12|0,B=m,Q=xl(MOe()|0)|0,c=Wm(c)|0,n[M>>2]=n[f>>2],n[k>>2]=n[M>>2],f=Sg(k)|0,n[B>>2]=n[d>>2],k=d+4|0,n[B+4>>2]=n[k>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[k>>2]=0,n[d>>2]=0,Yv(s,gc(0,Q|0,l|0,c|0,f|0,AR(B)|0)|0),$A(B),E=m}function MOe(){var s=0;return o[8008]|0||(UOe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function UOe(s){s=s|0,Pl(s,_Oe()|0,3)}function _Oe(){return 1784}function HOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0;m=E,E=E+16|0,Q=m+4|0,k=m,B=xl(qOe()|0)|0,c=Wm(c)|0,n[k>>2]=n[f>>2],n[Q>>2]=n[k>>2],f=Sg(Q)|0,Yv(s,gc(0,B|0,l|0,c|0,f|0,uR(d)|0)|0),E=m}function qOe(){var s=0;return o[8016]|0||(jOe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function jOe(s){s=s|0,Pl(s,GOe()|0,3)}function GOe(){return 1800}function WOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=xl(YOe()|0)|0,Yv(s,Dn(0,f|0,l|0,Wm(c)|0)|0)}function YOe(){var s=0;return o[8024]|0||(KOe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function KOe(s){s=s|0,Pl(s,JOe()|0,1)}function JOe(){return 1816}function VOe(){zOe(),XOe(),ZOe()}function zOe(){n[2702]=a7(65536)|0}function XOe(){yMe(10856)}function ZOe(){$Oe(10816)}function $Oe(s){s=s|0,eMe(s,5044),tMe(s)|0}function eMe(s,l){s=s|0,l=l|0;var c=0;c=B5()|0,n[s>>2]=c,fMe(c,l),xp(n[s>>2]|0)}function tMe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,rMe()|0),s|0}function rMe(){var s=0;return o[8032]|0||(T5(10820),Zt(64,10820,_|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),br(10820)|0||T5(10820),10820}function T5(s){s=s|0,sMe(s),Dg(s,25)}function nMe(s){s=s|0,iMe(s+24|0)}function iMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function sMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,18,l,cMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function oMe(s,l){s=s|0,l=l|0,aMe(s,l)}function aMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=E,E=E+16|0,f=c,d=c+4|0,wg(d,l),n[f>>2]=Bg(d,l)|0,lMe(s,f),E=c}function lMe(s,l){s=s|0,l=l|0,L5(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function L5(s,l){s=s|0,l=l|0,n[s>>2]=l}function cMe(){return 1824}function uMe(s){return s=s|0,AMe(s)|0}function AMe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0;return c=E,E=E+16|0,d=c+4|0,B=c,f=Ja(8)|0,l=f,Q=Gt(4)|0,wg(d,s),L5(Q,Bg(d,s)|0),m=l+4|0,n[m>>2]=Q,s=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],v5(s,m,d),n[f>>2]=s,E=c,l|0}function Ja(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=a7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function fMe(s,l){s=s|0,l=l|0,n[s>>2]=pMe()|0,n[s+4>>2]=hMe()|0,n[s+12>>2]=l,n[s+8>>2]=gMe()|0,n[s+32>>2]=9}function pMe(){return 11744}function hMe(){return 1832}function gMe(){return jv()|0}function dMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(mMe(c),pt(c)):l|0&&pt(l)}function mMe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function yMe(s){s=s|0,EMe(s,5052),CMe(s)|0,IMe(s,5058,26)|0,wMe(s,5069,1)|0,BMe(s,5077,10)|0,vMe(s,5087,19)|0,DMe(s,5094,27)|0}function EMe(s,l){s=s|0,l=l|0;var c=0;c=mUe()|0,n[s>>2]=c,yUe(c,l),xp(n[s>>2]|0)}function CMe(s){s=s|0;var l=0;return l=n[s>>2]|0,vg(l,nUe()|0),s|0}function IMe(s,l,c){return s=s|0,l=l|0,c=c|0,U4e(s,cn(l)|0,c,0),s|0}function wMe(s,l,c){return s=s|0,l=l|0,c=c|0,v4e(s,cn(l)|0,c,0),s|0}function BMe(s,l,c){return s=s|0,l=l|0,c=c|0,r4e(s,cn(l)|0,c,0),s|0}function vMe(s,l,c){return s=s|0,l=l|0,c=c|0,HMe(s,cn(l)|0,c,0),s|0}function N5(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}pt(c)}n[2701]=s}function DMe(s,l,c){return s=s|0,l=l|0,c=c|0,SMe(s,cn(l)|0,c,0),s|0}function SMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=fR()|0,s=xMe(c)|0,un(m,l,d,s,PMe(c,f)|0,f)}function fR(){var s=0,l=0;if(o[8040]|0||(M5(10860),Zt(65,10860,_|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(br(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));M5(10860)}return 10860}function xMe(s){return s=s|0,s|0}function PMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=fR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(O5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(bMe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function O5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function bMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=QMe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,kMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,O5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,FMe(s,d),RMe(d),E=Q;return}}function QMe(s){return s=s|0,536870911}function kMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function FMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function RMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function M5(s){s=s|0,NMe(s)}function TMe(s){s=s|0,LMe(s+24|0)}function LMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function NMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,11,l,OMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function OMe(){return 1840}function MMe(s,l,c){s=s|0,l=l|0,c=c|0,_Me(n[(UMe(s)|0)>>2]|0,l,c)}function UMe(s){return s=s|0,(n[(fR()|0)+24>>2]|0)+(s<<3)|0}function _Me(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=E,E=E+16|0,m=f+1|0,d=f,wg(m,l),l=Bg(m,l)|0,wg(d,c),c=Bg(d,c)|0,tf[s&31](l,c),E=f}function HMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=pR()|0,s=qMe(c)|0,un(m,l,d,s,jMe(c,f)|0,f)}function pR(){var s=0,l=0;if(o[8048]|0||(_5(10896),Zt(66,10896,_|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(br(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));_5(10896)}return 10896}function qMe(s){return s=s|0,s|0}function jMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=pR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(U5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(GMe(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function U5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function GMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=WMe(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,YMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,U5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,KMe(s,d),JMe(d),E=Q;return}}function WMe(s){return s=s|0,536870911}function YMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function KMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function JMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function _5(s){s=s|0,XMe(s)}function VMe(s){s=s|0,zMe(s+24|0)}function zMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function XMe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,11,l,ZMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ZMe(){return 1852}function $Me(s,l){return s=s|0,l=l|0,t4e(n[(e4e(s)|0)>>2]|0,l)|0}function e4e(s){return s=s|0,(n[(pR()|0)+24>>2]|0)+(s<<3)|0}function t4e(s,l){s=s|0,l=l|0;var c=0,f=0;return c=E,E=E+16|0,f=c,wg(f,l),l=Bg(f,l)|0,l=Hv(Qg[s&31](l)|0)|0,E=c,l|0}function r4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=hR()|0,s=n4e(c)|0,un(m,l,d,s,i4e(c,f)|0,f)}function hR(){var s=0,l=0;if(o[8056]|0||(q5(10932),Zt(67,10932,_|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(br(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));q5(10932)}return 10932}function n4e(s){return s=s|0,s|0}function i4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=hR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(H5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(s4e(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function H5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function s4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=o4e(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,a4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,H5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,l4e(s,d),c4e(d),E=Q;return}}function o4e(s){return s=s|0,536870911}function a4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function l4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function c4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function q5(s){s=s|0,f4e(s)}function u4e(s){s=s|0,A4e(s+24|0)}function A4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function f4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,7,l,p4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function p4e(){return 1860}function h4e(s,l,c){return s=s|0,l=l|0,c=c|0,d4e(n[(g4e(s)|0)>>2]|0,l,c)|0}function g4e(s){return s=s|0,(n[(hR()|0)+24>>2]|0)+(s<<3)|0}function d4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0;return f=E,E=E+32|0,B=f+12|0,m=f+8|0,Q=f,k=f+16|0,d=f+4|0,m4e(k,l),y4e(Q,k,l),Bp(d,c),c=vp(d,c)|0,n[B>>2]=n[Q>>2],bI[s&15](m,B,c),c=E4e(m)|0,jA(m),Dp(d),E=f,c|0}function m4e(s,l){s=s|0,l=l|0}function y4e(s,l,c){s=s|0,l=l|0,c=c|0,C4e(s,c)}function E4e(s){return s=s|0,ga(s)|0}function C4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=E,E=E+16|0,c=d,f=l,f&1?(I4e(c,0),Zn(f|0,c|0)|0,w4e(s,c),B4e(c)):n[s>>2]=n[l>>2],E=d}function I4e(s,l){s=s|0,l=l|0,W9(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function w4e(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function B4e(s){s=s|0,o[s+8>>0]=0}function v4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=gR()|0,s=D4e(c)|0,un(m,l,d,s,S4e(c,f)|0,f)}function gR(){var s=0,l=0;if(o[8064]|0||(G5(10968),Zt(68,10968,_|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(br(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));G5(10968)}return 10968}function D4e(s){return s=s|0,s|0}function S4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=gR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(j5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(x4e(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function j5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function x4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=P4e(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,b4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,j5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,Q4e(s,d),k4e(d),E=Q;return}}function P4e(s){return s=s|0,536870911}function b4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function Q4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function k4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function G5(s){s=s|0,T4e(s)}function F4e(s){s=s|0,R4e(s+24|0)}function R4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function T4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,1,l,L4e()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function L4e(){return 1872}function N4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,M4e(n[(O4e(s)|0)>>2]|0,l,c,f,d,m)}function O4e(s){return s=s|0,(n[(gR()|0)+24>>2]|0)+(s<<3)|0}function M4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0;B=E,E=E+32|0,Q=B+16|0,k=B+12|0,M=B+8|0,O=B+4|0,j=B,Bp(Q,l),l=vp(Q,l)|0,Bp(k,c),c=vp(k,c)|0,Bp(M,f),f=vp(M,f)|0,Bp(O,d),d=vp(O,d)|0,Bp(j,m),m=vp(j,m)|0,f7[s&1](l,c,f,d,m),Dp(j),Dp(O),Dp(M),Dp(k),Dp(Q),E=B}function U4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=dR()|0,s=_4e(c)|0,un(m,l,d,s,H4e(c,f)|0,f)}function dR(){var s=0,l=0;if(o[8072]|0||(Y5(11004),Zt(69,11004,_|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(br(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Y5(11004)}return 11004}function _4e(s){return s=s|0,s|0}function H4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,Q=0,k=0;return Q=E,E=E+16|0,d=Q,m=Q+4|0,n[d>>2]=s,k=dR()|0,B=k+24|0,l=Ar(l,4)|0,n[m>>2]=l,c=k+28|0,f=n[c>>2]|0,f>>>0<(n[k+32>>2]|0)>>>0?(W5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(q4e(B,d,m),l=n[c>>2]|0),E=Q,(l-(n[B>>2]|0)>>3)+-1|0}function W5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function q4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0;if(Q=E,E=E+32|0,d=Q,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=j4e(s)|0,f>>>0>>0)Jr(s);else{k=n[s>>2]|0,O=(n[s+8>>2]|0)-k|0,M=O>>2,G4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-k>>3,s+8|0),B=d+8|0,W5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,W4e(s,d),Y4e(d),E=Q;return}}function j4e(s){return s=s|0,536870911}function G4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Gt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function W4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Cr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Y4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&pt(s)}function Y5(s){s=s|0,V4e(s)}function K4e(s){s=s|0,J4e(s+24|0)}function J4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function V4e(s){s=s|0;var l=0;l=Gr()|0,Wr(s,1,12,l,z4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function z4e(){return 1896}function X4e(s,l,c){s=s|0,l=l|0,c=c|0,$4e(n[(Z4e(s)|0)>>2]|0,l,c)}function Z4e(s){return s=s|0,(n[(dR()|0)+24>>2]|0)+(s<<3)|0}function $4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=E,E=E+16|0,m=f+4|0,d=f,eUe(m,l),l=tUe(m,l)|0,Bp(d,c),c=vp(d,c)|0,tf[s&31](l,c),Dp(d),E=f}function eUe(s,l){s=s|0,l=l|0}function tUe(s,l){return s=s|0,l=l|0,rUe(l)|0}function rUe(s){return s=s|0,s|0}function nUe(){var s=0;return o[8080]|0||(K5(11040),Zt(70,11040,_|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),br(11040)|0||K5(11040),11040}function K5(s){s=s|0,oUe(s),Dg(s,71)}function iUe(s){s=s|0,sUe(s+24|0)}function sUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),pt(c))}function oUe(s){s=s|0;var l=0;l=Gr()|0,Wr(s,5,7,l,uUe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function aUe(s){s=s|0,lUe(s)}function lUe(s){s=s|0,cUe(s)}function cUe(s){s=s|0,o[s+8>>0]=1}function uUe(){return 1936}function AUe(){return fUe()|0}function fUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=E,E=E+16|0,d=l+4|0,B=l,c=Ja(8)|0,s=c,m=s+4|0,n[m>>2]=Gt(1)|0,f=Gt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],pUe(f,m,d),n[c>>2]=f,E=l,s|0}function pUe(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Gt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function hUe(s){s=s|0,Jm(s),pt(s)}function gUe(s){s=s|0,s=n[s+12>>2]|0,s|0&&pt(s)}function dUe(s){s=s|0,pt(s)}function mUe(){var s=0;return o[8088]|0||(vUe(11076),Zt(25,11076,_|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function yUe(s,l){s=s|0,l=l|0,n[s>>2]=EUe()|0,n[s+4>>2]=CUe()|0,n[s+12>>2]=l,n[s+8>>2]=IUe()|0,n[s+32>>2]=10}function EUe(){return 11745}function CUe(){return 1940}function IUe(){return qv()|0}function wUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Sp(f,896)|0)==512?c|0&&(BUe(c),pt(c)):l|0&&pt(l)}function BUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Pp(s)}function vUe(s){s=s|0,wp(s)}function bc(s,l){s=s|0,l=l|0,n[s>>2]=l}function mR(s){return s=s|0,n[s>>2]|0}function DUe(s){return s=s|0,o[n[s>>2]>>0]|0}function SUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=E,E=E+16|0,f=c,n[f>>2]=n[s>>2],xUe(l,f)|0,E=c}function xUe(s,l){s=s|0,l=l|0;var c=0;return c=PUe(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function PUe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=E,E=E+16|0,f=c,Va(f),s=ga(s)|0,l=bUe(s,n[l>>2]|0)|0,za(f),E=c,l|0}function Va(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function bUe(s,l){s=s|0,l=l|0;var c=0;return c=xl(QUe()|0)|0,Dn(0,c|0,s|0,uR(l)|0)|0}function za(s){s=s|0,N5(n[s>>2]|0,n[s+4>>2]|0)}function QUe(){var s=0;return o[8096]|0||(kUe(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function kUe(s){s=s|0,Pl(s,FUe()|0,1)}function FUe(){return 1948}function RUe(){TUe()}function TUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0;if(Oe=E,E=E+16|0,O=Oe+4|0,j=Oe,Fi(65536,10804,n[2702]|0,10812),c=m5()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;fc(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=y5()|0,l=n[s>>2]|0,l|0)do du(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while((l|0)!=0);du(LUe()|0,5167),M=jm()|0,s=n[M>>2]|0;e:do if(s|0){do NUe(n[s+4>>2]|0),s=n[s>>2]|0;while((s|0)!=0);if(s=n[M>>2]|0,s|0){k=M;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(OUe(d)|0);)if(n[j>>2]=k,n[O>>2]=n[j>>2],MUe(M,O)|0,!s)break e;if(UUe(d),k=n[k>>2]|0,l=J5(d)|0,m=_i()|0,B=E,E=E+((1*(l<<2)|0)+15&-16)|0,Q=E,E=E+((1*(l<<2)|0)+15&-16)|0,l=n[(Q5(d)|0)>>2]|0,l|0)for(c=B,f=Q;n[c>>2]=n[(Gm(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Re=Gm(d)|0,l=_Ue(d)|0,c=J5(d)|0,f=HUe(d)|0,mu(Re|0,l|0,B|0,Q|0,c|0,f|0,iR(d)|0),Ui(m|0)}while((s|0)!=0)}}while(0);if(s=n[(sR()|0)>>2]|0,s|0)do Re=s+4|0,M=oR(Re)|0,d=DI(M)|0,m=BI(M)|0,B=(vI(M)|0)+1|0,Q=Kv(M)|0,k=V5(Re)|0,M=br(M)|0,O=Gv(Re)|0,j=yR(Re)|0,El(0,d|0,m|0,B|0,Q|0,k|0,M|0,O|0,j|0,ER(Re)|0),s=n[s>>2]|0;while((s|0)!=0);s=n[(jm()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(se=n[(Gm(l)|0)>>2]|0,We=n[(k5(l)|0)>>2]|0,We|0)){c=We;do{l=c+4|0,f=oR(l)|0;r:do if(f|0)switch(br(f)|0){case 0:break t;case 4:case 3:case 2:{Q=DI(f)|0,k=BI(f)|0,M=(vI(f)|0)+1|0,O=Kv(f)|0,j=br(f)|0,Re=Gv(l)|0,El(se|0,Q|0,k|0,M|0,O|0,0,j|0,Re|0,yR(l)|0,ER(l)|0);break r}case 1:{B=DI(f)|0,Q=BI(f)|0,k=(vI(f)|0)+1|0,M=Kv(f)|0,O=V5(l)|0,j=br(f)|0,Re=Gv(l)|0,El(se|0,B|0,Q|0,k|0,M|0,O|0,j|0,Re|0,yR(l)|0,ER(l)|0);break r}case 5:{M=DI(f)|0,O=BI(f)|0,j=(vI(f)|0)+1|0,Re=Kv(f)|0,El(se|0,M|0,O|0,j|0,Re|0,qUe(f)|0,br(f)|0,0,0,0);break r}default:break r}while(0);c=n[c>>2]|0}while((c|0)!=0)}if(s=n[s>>2]|0,!s)break e}Rt()}while(0);Ce(),E=Oe}function LUe(){return 11703}function NUe(s){s=s|0,o[s+40>>0]=0}function OUe(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function MUe(s,l){return s=s|0,l=l|0,l=jUe(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],pt(s),n[l>>2]|0}function UUe(s){s=s|0,o[s+40>>0]=1}function J5(s){return s=s|0,n[s+20>>2]|0}function _Ue(s){return s=s|0,n[s+8>>2]|0}function HUe(s){return s=s|0,n[s+32>>2]|0}function Kv(s){return s=s|0,n[s+4>>2]|0}function V5(s){return s=s|0,n[s+4>>2]|0}function yR(s){return s=s|0,n[s+8>>2]|0}function ER(s){return s=s|0,n[s+16>>2]|0}function qUe(s){return s=s|0,n[s+20>>2]|0}function jUe(s){return s=s|0,n[s>>2]|0}function Jv(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0;Tt=E,E=E+16|0,se=Tt;do if(s>>>0<245){if(M=s>>>0<11?16:s+11&-8,s=M>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<>2]=s,n[c>>2]=m),Ge=l<<3,n[f+4>>2]=Ge|3,Ge=f+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1,Ge=d,E=Tt,Ge|0;if(O=n[2785]|0,M>>>0>O>>>0){if(c|0)return l=2<>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<>2]=l,n[s>>2]=c,s=j),m=(f<<3)-M|0,n[d+4>>2]=M|3,f=d+M|0,n[f+4>>2]=m|1,n[f+m>>2]=m,O|0&&(d=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,Ge=B,E=Tt,Ge|0;if(Q=n[2784]|0,Q){if(c=(Q&0-Q)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,k=c>>>2&4,c=c>>>k,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|k|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-M|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)k=s,m=c;else{do B=(n[f+4>>2]&-8)-M|0,k=B>>>0>>0,c=k?B:c,s=k?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while((f|0)!=0);k=s,m=c}if(B=k+M|0,k>>>0>>0){d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[k+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(0);do if(d|0){if(l=n[k+28>>2]|0,s=11436+(l<<2)|0,(k|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=Q&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[k+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[k+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(0);return m>>>0<16?(Ge=m+M|0,n[k+4>>2]=Ge|3,Ge=k+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1):(n[k+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,O|0&&(f=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),Ge=k+8|0,E=Tt,Ge|0}else j=M}else j=M}else j=M}else if(s>>>0<=4294967231)if(s=s+11|0,M=s&-8,k=n[2784]|0,k){f=0-M|0,s=s>>>8,s?M>>>0>16777215?Q=31:(j=(s+1048320|0)>>>16&8,He=s<>>16&4,He=He<>>16&2,Q=14-(O|j|Q)+(He<>>15)|0,Q=M>>>(Q+7|0)&1|Q<<1):Q=0,c=n[11436+(Q<<2)>>2]|0;e:do if(!c)c=0,s=0,He=57;else for(s=0,B=M<<((Q|0)==31?0:25-(Q>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-M|0,d>>>0>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,He=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,He=57;break}else B=B<<((d^1)&1)}while(0);if((He|0)==57){if((c|0)==0&(s|0)==0){if(s=2<>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,Q=j>>>2&4,j=j>>>Q,O=j>>>1&2,j=j>>>O,c=j>>>1&1,s=0,c=n[11436+((m|B|Q|O|c)+(j>>>c)<<2)>>2]|0}c?(d=c,He=61):(Q=s,B=f)}if((He|0)==61)for(;;)if(He=0,c=(n[d+4>>2]&-8)-M|0,j=c>>>0>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,He=61;else{Q=s,B=c;break}if((Q|0)!=0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=Q+M|0,Q>>>0>=m>>>0)return Ge=0,E=Tt,Ge|0;d=n[Q+24>>2]|0,l=n[Q+12>>2]|0;do if((l|0)==(Q|0)){if(s=Q+20|0,l=n[s>>2]|0,!l&&(s=Q+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else Ge=n[Q+8>>2]|0,n[Ge+12>>2]=l,n[l+8>>2]=Ge;while(0);do if(d){if(s=n[Q+28>>2]|0,c=11436+(s<<2)|0,(Q|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=k&~(1<>2]|0)!=(Q|0)&1)<<2)>>2]=l,!l){f=k;break}n[l+24>>2]=d,s=n[Q+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[Q+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=k}else f=k;while(0);do if(B>>>0>=16){if(n[Q+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(He=(l+1048320|0)>>>16&8,Ge=l<>>16&4,Ge=Ge<>>16&2,l=14-(at|He|l)+(Ge<>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){He=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=96;break}}if((He|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((He|0)==97){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=m,n[He>>2]=m,n[m+8>>2]=Ge,n[m+12>>2]=c,n[m+24>>2]=0;break}}else Ge=B+M|0,n[Q+4>>2]=Ge|3,Ge=Q+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1;while(0);return Ge=Q+8|0,E=Tt,Ge|0}else j=M}else j=M;else j=-1;while(0);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(Ge=s+j|0,n[2788]=Ge,n[2785]=l,n[Ge+4>>2]=l|1,n[Ge+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,Ge=s+c+4|0,n[Ge>>2]=n[Ge>>2]|1),Ge=s+8|0,E=Tt,Ge|0;if(B=n[2786]|0,B>>>0>j>>>0)return at=B-j|0,n[2786]=at,Ge=n[2789]|0,He=Ge+j|0,n[2789]=He,n[He+4>>2]=at|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,E=Tt,Ge|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=se&-16^1431655768,n[se>>2]=s,n[2901]=s,s=4096),Q=j+48|0,k=j+47|0,m=s+k|0,d=0-s|0,M=m&d,M>>>0<=j>>>0||(s=n[2893]|0,s|0&&(O=n[2891]|0,se=O+M|0,se>>>0<=O>>>0|se>>>0>s>>>0)))return Ge=0,E=Tt,Ge|0;e:do if(n[2894]&4)l=0,He=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Re=f+4|0,(s+(n[Re>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{He=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=bp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Re>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,He=135;break e}}else f=s,He=126;else l=0}else He=118;while(0);do if((He|0)==118)if(c=bp(0)|0,(c|0)!=-1&&(l=c,We=n[2902]|0,Oe=We+-1|0,l=((Oe&l|0)==0?0:(Oe+l&0-We)-l|0)+M|0,We=n[2891]|0,Oe=l+We|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Re=n[2893]|0,Re|0&&Oe>>>0<=We>>>0|Oe>>>0>Re>>>0){l=0;break}if(s=bp(l|0)|0,(s|0)==(c|0)){B=l,m=c,He=135;break e}else f=s,He=126}else l=0;while(0);do if((He|0)==126){if(c=0-l|0,!(Q>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,He=135;break e}if(s=n[2903]|0,s=k-l+s&0-s,s>>>0>=2147483647){B=l,m=f,He=135;break e}if((bp(s|0)|0)==-1){bp(c|0)|0,l=0;break}else{B=s+l|0,m=f,He=135;break e}}while(0);n[2894]=n[2894]|4,He=133}while(0);if((He|0)==133&&M>>>0<2147483647&&(at=bp(M|0)|0,Re=bp(0)|0,et=Re-at|0,Ze=et>>>0>(j+40|0)>>>0,!((at|0)==-1|Ze^1|at>>>0>>0&((at|0)!=-1&(Re|0)!=-1)^1))&&(B=Ze?et:l,m=at,He=135),(He|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),k=n[2789]|0;do if(k){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){He=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((He|0)==145&&(n[l+12>>2]&8|0)==0&&k>>>0>>0&k>>>0>=s>>>0){n[c>>2]=f+B,Ge=k+8|0,Ge=(Ge&7|0)==0?0:0-Ge&7,He=k+Ge|0,Ge=(n[2786]|0)+(B-Ge)|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){He=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((He|0)==153&&(n[l+12>>2]&8|0)==0){n[l>>2]=m,O=l+4|0,n[O>>2]=(n[O>>2]|0)+B,O=m+8|0,O=m+((O&7|0)==0?0:0-O&7)|0,l=c+8|0,l=c+((l&7|0)==0?0:0-l&7)|0,M=O+j|0,Q=l-O-j|0,n[O+4>>2]=j|3;do if((l|0)!=(k|0)){if((l|0)==(n[2788]|0)){Ge=(n[2785]|0)+Q|0,n[2785]=Ge,n[2788]=M,n[M+4>>2]=Ge|1,n[M+Ge>>2]=Ge;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else Ge=n[l+8>>2]|0,n[Ge+12>>2]=s,n[s+8>>2]=Ge;while(0);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(0);l=l+B|0,d=B+Q|0}else d=Q;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}He=(l+1048320|0)>>>16&8,Ge=l<>>16&4,Ge=Ge<>>16&2,l=14-(at|He|l)+(Ge<>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(0);if(f=11436+(l<<2)|0,n[M+28>>2]=l,s=M+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<>2]=M,n[M+24>>2]=f,n[M+12>>2]=M,n[M+8>>2]=M;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){He=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=193;break}}if((He|0)==193){n[f>>2]=M,n[M+24>>2]=c,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((He|0)==194){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=M,n[He>>2]=M,n[M+8>>2]=Ge,n[M+12>>2]=c,n[M+24>>2]=0;break}}else Ge=(n[2786]|0)+Q|0,n[2786]=Ge,n[2789]=M,n[M+4>>2]=Ge|1;while(0);return Ge=O+8|0,E=Tt,Ge|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=k>>>0&&(Ge=s+(n[l+4>>2]|0)|0,Ge>>>0>k>>>0));)l=n[l+8>>2]|0;d=Ge+-47|0,s=d+8|0,s=d+((s&7|0)==0?0:0-s&7)|0,d=k+16|0,s=s>>>0>>0?k:s,l=s+8|0,c=m+8|0,c=(c&7|0)==0?0:0-c&7,He=m+c|0,c=B+-40-c|0,n[2789]=He,n[2786]=c,n[He+4>>2]=c|1,n[He+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do He=l,l=l+4|0,n[l>>2]=7;while((He+8|0)>>>0>>0);if((s|0)!=(k|0)){if(m=s-k|0,n[c>>2]=n[c>>2]&-2,n[k+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=k,n[l+12>>2]=k,n[k+8>>2]=l,n[k+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(He=(l+1048320|0)>>>16&8,Ge=l<>>16&4,Ge=Ge<>>16&2,c=14-(at|He|c)+(Ge<>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[k+28>>2]=c,n[k+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){He=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{He=215;break}}if((He|0)==215){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((He|0)==216){He=c+8|0,Ge=n[He>>2]|0,n[Ge+12>>2]=k,n[He>>2]=k,n[k+8>>2]=Ge,n[k+12>>2]=c,n[k+24>>2]=0;break}}}else{Ge=n[2787]|0,(Ge|0)==0|m>>>0>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do Ge=11172+(l<<1<<2)|0,n[Ge+12>>2]=Ge,n[Ge+8>>2]=Ge,l=l+1|0;while((l|0)!=32);Ge=m+8|0,Ge=(Ge&7|0)==0?0:0-Ge&7,He=m+Ge|0,Ge=B+-40-Ge|0,n[2789]=He,n[2786]=Ge,n[He+4>>2]=Ge|1,n[He+Ge+4>>2]=40,n[2790]=n[2905]}while(0);if(l=n[2786]|0,l>>>0>j>>>0)return at=l-j|0,n[2786]=at,Ge=n[2789]|0,He=Ge+j|0,n[2789]=He,n[He+4>>2]=at|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,E=Tt,Ge|0}return n[(Ym()|0)>>2]=12,Ge=0,E=Tt,Ge|0}function Vv(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,Q=0,k=0;if(!!s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,k=c+l|0;do if(s&1)Q=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0>>0))return;if((B|0)==(n[2788]|0)){if(s=k+4|0,l=n[s>>2]|0,(l&3|0)!=3){Q=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=l,n[l+8>>2]=s,Q=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else Q=n[B+8>>2]|0,n[Q+12>>2]=s,n[s+8>>2]=Q;while(0);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){Q=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,Q=B,l=m):(Q=B,l=m)}else Q=B,l=m}while(0);if(!(B>>>0>=k>>>0)&&(s=k+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[Q+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(k|0)==(n[2789]|0)){if(k=(n[2786]|0)+l|0,n[2786]=k,n[2789]=Q,n[Q+4>>2]=k|1,(Q|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((k|0)==(s|0)){k=(n[2785]|0)+l|0,n[2785]=k,n[2788]=B,n[Q+4>>2]=k|1,n[B+k>>2]=k;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[k+8>>2]|0,s=n[k+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<>2]=s,n[s+8>>2]=l;break}else{m=n[k+24>>2]|0,s=n[k+12>>2]|0;do if((s|0)==(k|0)){if(c=k+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[k+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(0);if(m|0){if(s=n[k+28>>2]|0,l=11436+(s<<2)|0,(k|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=k+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(0);if(n[Q+4>>2]=d|1,n[B+d>>2]=d,(Q|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=Q,n[s+12>>2]=Q,n[Q+8>>2]=s,n[Q+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,k=s<>>16&4,k=k<>>16&2,s=14-(m|B|s)+(k<>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[Q+28>>2]=s,n[Q+20>>2]=0,n[Q+16>>2]=0,l=n[2784]|0,c=1<>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=Q,n[Q+24>>2]=c,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}else if((s|0)==73){B=c+8|0,k=n[B>>2]|0,n[k+12>>2]=Q,n[B>>2]=Q,n[Q+8>>2]=k,n[Q+12>>2]=c,n[Q+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=Q,n[Q+24>>2]=f,n[Q+12>>2]=Q,n[Q+8>>2]=Q;while(0);if(k=(n[2791]|0)+-1|0,n[2791]=k,!k)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function GUe(){return 11628}function WUe(s){s=s|0;var l=0,c=0;return l=E,E=E+16|0,c=l,n[c>>2]=JUe(n[s+60>>2]|0)|0,s=zv(dc(6,c|0)|0)|0,E=l,s|0}function z5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0;j=E,E=E+48|0,M=j+16|0,m=j,d=j+32|0,Q=s+28|0,f=n[Q>>2]|0,n[d>>2]=f,k=s+20|0,f=(n[k>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=zv(Hi(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,We=n[d+4>>2]|0,se=m>>>0>We>>>0,d=se?d+8|0:d,l=(se<<31>>31)+l|0,We=m-(se?We:0)|0,n[d>>2]=(n[d>>2]|0)+We,se=d+4|0,n[se>>2]=(n[se>>2]|0)-We,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=zv(Hi(146,M|0)|0)|0,(f|0)==(m|0)){O=3;break e}n[s+16>>2]=0,n[Q>>2]=0,n[k>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else O=3;while(0);return(O|0)==3&&(We=n[s+44>>2]|0,n[s+16>>2]=We+(n[s+48>>2]|0),n[Q>>2]=We,n[k>>2]=We),E=j,c|0}function YUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=E,E=E+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(zv(ta(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,E=d,s|0}function zv(s){return s=s|0,s>>>0>4294963200&&(n[(Ym()|0)>>2]=0-s,s=-1),s|0}function Ym(){return(KUe()|0)+64|0}function KUe(){return CR()|0}function CR(){return 2084}function JUe(s){return s=s|0,s|0}function VUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=E,E=E+32|0,f=d,n[s+36>>2]=1,(n[s>>2]&64|0)==0&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,yu(54,f|0)|0)&&(o[s+75>>0]=-1),f=z5(s,l,c)|0,E=d,f|0}function X5(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,c<<24>>24==0||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(c<<24>>24==0||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function zUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(0);return s|0}function Z5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0;Re=E,E=E+224|0,O=Re+120|0,j=Re+80|0,We=Re,Oe=Re+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[O>>2]=n[c>>2],(IR(0,l,O,We,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?se=XUe(s)|0:se=0,c=n[s>>2]|0,M=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=IR(s,l,O,We,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Oe,B=s+28|0,n[B>>2]=Oe,Q=s+20|0,n[Q>>2]=Oe,n[f>>2]=80,k=s+16|0,n[k>>2]=Oe+80,c=IR(s,l,O,We,j)|0,m&&(eD[n[s+36>>2]&7](s,0,0)|0,c=(n[Q>>2]|0)==0?-1:c,n[d>>2]=m,n[f>>2]=0,n[k>>2]=0,n[B>>2]=0,n[Q>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|M,se|0&&ZUe(s),c=(f&32|0)==0?c:-1),E=Re,c|0}function IR(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0;rr=E,E=E+64|0,ir=rr+16|0,Vt=rr,Tt=rr+24|0,Ir=rr+8|0,Qr=rr+20|0,n[ir>>2]=l,at=(s|0)!=0,He=Tt+40|0,Ge=He,Tt=Tt+39|0,Rr=Ir+4|0,B=0,m=0,O=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(Ym()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(0);if(B=o[l>>0]|0,B<<24>>24)Q=l;else{Ze=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=Q,Ze=9;break t}case 0:{B=Q;break t}default:}et=Q+1|0,n[ir>>2]=et,B=o[et>>0]|0,Q=et}t:do if((Ze|0)==9)for(;;){if(Ze=0,(o[Q+1>>0]|0)!=37)break t;if(B=B+1|0,Q=Q+2|0,n[ir>>2]=Q,(o[Q>>0]|0)==37)Ze=9;else break}while(0);if(B=B-l|0,at&&ss(s,l,B),B|0){l=Q;continue}k=Q+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10?(et=(o[Q+2>>0]|0)==36,Re=et?B:-1,O=et?1:O,k=et?Q+3|0:k):Re=-1,n[ir>>2]=k,B=o[k>>0]|0,Q=(B<<24>>24)+-32|0;t:do if(Q>>>0<32)for(M=0,j=B;;){if(B=1<>2]=k,B=o[k>>0]|0,Q=(B<<24>>24)+-32|0,Q>>>0>=32)break;j=B}else M=0;while(0);if(B<<24>>24==42){if(Q=k+1|0,B=(o[Q>>0]|0)+-48|0,B>>>0<10&&(o[k+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[Q>>0]|0)+-48<<3)>>2]|0,O=1,k=k+3|0;else{if(O|0){m=-1;break}at?(O=(n[c>>2]|0)+(4-1)&~(4-1),B=n[O>>2]|0,n[c>>2]=O+4,O=0,k=Q):(B=0,O=0,k=Q)}n[ir>>2]=k,et=(B|0)<0,B=et?0-B|0:B,M=et?M|8192:M}else{if(B=$5(ir)|0,(B|0)<0){m=-1;break}k=n[ir>>2]|0}do if((o[k>>0]|0)==46){if((o[k+1>>0]|0)!=42){n[ir>>2]=k+1,Q=$5(ir)|0,k=n[ir>>2]|0;break}if(j=k+2|0,Q=(o[j>>0]|0)+-48|0,Q>>>0<10&&(o[k+3>>0]|0)==36){n[d+(Q<<2)>>2]=10,Q=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,k=k+4|0,n[ir>>2]=k;break}if(O|0){m=-1;break e}at?(et=(n[c>>2]|0)+(4-1)&~(4-1),Q=n[et>>2]|0,n[c>>2]=et+4):Q=0,n[ir>>2]=j,k=j}else Q=-1;while(0);for(Oe=0;;){if(((o[k>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(et=k+1|0,n[ir>>2]=et,j=o[(o[k>>0]|0)+-65+(5178+(Oe*58|0))>>0]|0,se=j&255,(se+-1|0)>>>0<8)Oe=se,k=et;else break}if(!(j<<24>>24)){m=-1;break}We=(Re|0)>-1;do if(j<<24>>24==19)if(We){m=-1;break e}else Ze=49;else{if(We){n[d+(Re<<2)>>2]=se,We=f+(Re<<3)|0,Re=n[We+4>>2]|0,Ze=Vt,n[Ze>>2]=n[We>>2],n[Ze+4>>2]=Re,Ze=49;break}if(!at){m=0;break e}e7(Vt,se,c)}while(0);if((Ze|0)==49&&(Ze=0,!at)){B=0,l=et;continue}k=o[k>>0]|0,k=(Oe|0)!=0&(k&15|0)==3?k&-33:k,We=M&-65537,Re=(M&8192|0)==0?M:We;t:do switch(k|0){case 110:switch((Oe&255)<<24>>24){case 0:{n[n[Vt>>2]>>2]=m,B=0,l=et;continue e}case 1:{n[n[Vt>>2]>>2]=m,B=0,l=et;continue e}case 2:{B=n[Vt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}case 3:{a[n[Vt>>2]>>1]=m,B=0,l=et;continue e}case 4:{o[n[Vt>>2]>>0]=m,B=0,l=et;continue e}case 6:{n[n[Vt>>2]>>2]=m,B=0,l=et;continue e}case 7:{B=n[Vt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}default:{B=0,l=et;continue e}}case 112:{k=120,Q=Q>>>0>8?Q:8,l=Re|8,Ze=61;break}case 88:case 120:{l=Re,Ze=61;break}case 111:{k=Vt,l=n[k>>2]|0,k=n[k+4>>2]|0,se=e3e(l,k,He)|0,We=Ge-se|0,M=0,j=5642,Q=(Re&8|0)==0|(Q|0)>(We|0)?Q:We+1|0,We=Re,Ze=67;break}case 105:case 100:if(k=Vt,l=n[k>>2]|0,k=n[k+4>>2]|0,(k|0)<0){l=Xv(0,0,l|0,k|0)|0,k=Ee,M=Vt,n[M>>2]=l,n[M+4>>2]=k,M=1,j=5642,Ze=66;break t}else{M=(Re&2049|0)!=0&1,j=(Re&2048|0)==0?(Re&1|0)==0?5642:5644:5643,Ze=66;break t}case 117:{k=Vt,M=0,j=5642,l=n[k>>2]|0,k=n[k+4>>2]|0,Ze=66;break}case 99:{o[Tt>>0]=n[Vt>>2],l=Tt,M=0,j=5642,se=He,k=1,Q=We;break}case 109:{k=t3e(n[(Ym()|0)>>2]|0)|0,Ze=71;break}case 115:{k=n[Vt>>2]|0,k=k|0?k:5652,Ze=71;break}case 67:{n[Ir>>2]=n[Vt>>2],n[Rr>>2]=0,n[Vt>>2]=Ir,se=-1,k=Ir,Ze=75;break}case 83:{l=n[Vt>>2]|0,Q?(se=Q,k=l,Ze=75):(Is(s,32,B,0,Re),l=0,Ze=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=n3e(s,+C[Vt>>3],B,Q,Re,k)|0,l=et;continue e}default:M=0,j=5642,se=He,k=Q,Q=Re}while(0);t:do if((Ze|0)==61)Re=Vt,Oe=n[Re>>2]|0,Re=n[Re+4>>2]|0,se=$Ue(Oe,Re,He,k&32)|0,j=(l&8|0)==0|(Oe|0)==0&(Re|0)==0,M=j?0:2,j=j?5642:5642+(k>>4)|0,We=l,l=Oe,k=Re,Ze=67;else if((Ze|0)==66)se=Km(l,k,He)|0,We=Re,Ze=67;else if((Ze|0)==71)Ze=0,Re=r3e(k,0,Q)|0,Oe=(Re|0)==0,l=k,M=0,j=5642,se=Oe?k+Q|0:Re,k=Oe?Q:Re-k|0,Q=We;else if((Ze|0)==75){for(Ze=0,j=k,l=0,Q=0;M=n[j>>2]|0,!(!M||(Q=t7(Qr,M)|0,(Q|0)<0|Q>>>0>(se-l|0)>>>0));)if(l=Q+l|0,se>>>0>l>>>0)j=j+4|0;else break;if((Q|0)<0){m=-1;break e}if(Is(s,32,B,l,Re),!l)l=0,Ze=84;else for(M=0;;){if(Q=n[k>>2]|0,!Q){Ze=84;break t}if(Q=t7(Qr,Q)|0,M=Q+M|0,(M|0)>(l|0)){Ze=84;break t}if(ss(s,Qr,Q),M>>>0>=l>>>0){Ze=84;break}else k=k+4|0}}while(0);if((Ze|0)==67)Ze=0,k=(l|0)!=0|(k|0)!=0,Re=(Q|0)!=0|k,k=((k^1)&1)+(Ge-se)|0,l=Re?se:He,se=He,k=Re?(Q|0)>(k|0)?Q:k:Q,Q=(Q|0)>-1?We&-65537:We;else if((Ze|0)==84){Ze=0,Is(s,32,B,l,Re^8192),B=(B|0)>(l|0)?B:l,l=et;continue}Oe=se-l|0,We=(k|0)<(Oe|0)?Oe:k,Re=We+M|0,B=(B|0)<(Re|0)?Re:B,Is(s,32,B,Re,Q),ss(s,j,M),Is(s,48,B,Re,Q^65536),Is(s,48,We,Oe,0),ss(s,l,Oe),Is(s,32,B,Re,Q^8192),l=et}e:do if((Ze|0)==87&&!s)if(!O)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(e7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(0);return E=rr,m|0}function XUe(s){return s=s|0,0}function ZUe(s){s=s|0}function ss(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||f3e(l,c,s)|0}function $5(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function e7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+(8-1)&~(8-1),l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+C[d>>3],n[c>>2]=d+8,C[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+C[d>>3],n[c>>2]=d+8,C[s>>3]=m;break e}default:break e}while(0);while(0)}function $Ue(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=Zv(s|0,l|0,4)|0,l=Ee;while(!((s|0)==0&(l|0)==0));return c|0}function e3e(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=Zv(s|0,l|0,3)|0,l=Ee;while(!((s|0)==0&(l|0)==0));return c|0}function Km(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=DR(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=vR(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=Ee;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function t3e(s){return s=s|0,l3e(s,n[(a3e()|0)+188>>2]|0)|0}function r3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(0);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=Ne(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(0);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(0);return(c|0?s:0)|0}function Is(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=E,E=E+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,Vm(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do ss(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}ss(s,m,d)}E=B}function t7(s,l){return s=s|0,l=l|0,s?s=s3e(s,l,0)|0:s=0,s|0}function n3e(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0,Re=0,et=0,Ze=0,at=0,He=0,Ge=0,Tt=0,Rr=0,ir=0,Vt=0,Ir=0,Qr=0,rr=0,Bn=0;Bn=E,E=E+560|0,k=Bn+8|0,et=Bn,rr=Bn+524|0,Qr=rr,M=Bn+512|0,n[et>>2]=0,Ir=M+12|0,r7(l)|0,(Ee|0)<0?(l=-l,ir=1,Rr=5659):(ir=(d&2049|0)!=0&1,Rr=(d&2048|0)==0?(d&1|0)==0?5660:5665:5662),r7(l)|0,Vt=Ee&2146435072;do if(Vt>>>0<2146435072|(Vt|0)==2146435072&0<0){if(We=+i3e(l,et)*2,B=We!=0,B&&(n[et>>2]=(n[et>>2]|0)+-1),at=m|32,(at|0)==97){Oe=m&32,se=(Oe|0)==0?Rr:Rr+9|0,j=ir|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=We;else{l=8;do B=B+-1|0,l=l*16;while((B|0)!=0);if((o[se>>0]|0)==45){l=-(l+(-We-l));break}else{l=We+l-l;break}}while(0);Q=n[et>>2]|0,B=(Q|0)<0?0-Q|0:Q,B=Km(B,((B|0)<0)<<31>>31,Ir)|0,(B|0)==(Ir|0)&&(B=M+11|0,o[B>>0]=48),o[B+-1>>0]=(Q>>31&2)+43,O=B+-2|0,o[O>>0]=m+15,M=(f|0)<1,k=(d&8|0)==0,B=rr;do Vt=~~l,Q=B+1|0,o[B>>0]=u[5694+Vt>>0]|Oe,l=(l-+(Vt|0))*16,(Q-Qr|0)==1&&!(k&(M&l==0))?(o[Q>>0]=46,B=B+2|0):B=Q;while(l!=0);Vt=B-Qr|0,Qr=Ir-O|0,Ir=(f|0)!=0&(Vt+-2|0)<(f|0)?f+2|0:Vt,B=Qr+j+Ir|0,Is(s,32,c,B,d),ss(s,se,j),Is(s,48,c,B,d^65536),ss(s,rr,Vt),Is(s,48,Ir-Vt|0,0,0),ss(s,O,Qr),Is(s,32,c,B,d^8192);break}Q=(f|0)<0?6:f,B?(B=(n[et>>2]|0)+-28|0,n[et>>2]=B,l=We*268435456):(l=We,B=n[et>>2]|0),Vt=(B|0)<0?k:k+288|0,k=Vt;do Ge=~~l>>>0,n[k>>2]=Ge,k=k+4|0,l=(l-+(Ge>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=Vt,j=k;;){if(O=(B|0)<29?B:29,B=j+-4|0,B>>>0>=M>>>0){k=0;do He=l7(n[B>>2]|0,0,O|0)|0,He=BR(He|0,Ee|0,k|0,0)|0,Ge=Ee,Ze=DR(He|0,Ge|0,1e9,0)|0,n[B>>2]=Ze,k=vR(He|0,Ge|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);k&&(M=M+-4|0,n[M>>2]=k)}for(k=j;!(k>>>0<=M>>>0);)if(B=k+-4|0,!(n[B>>2]|0))k=B;else break;if(B=(n[et>>2]|0)-O|0,n[et>>2]=B,(B|0)>0)j=k;else break}else M=Vt;if((B|0)<0){f=((Q+25|0)/9|0)+1|0,Re=(at|0)==102;do{if(Oe=0-B|0,Oe=(Oe|0)<9?Oe:9,M>>>0>>0){O=(1<>>Oe,se=0,B=M;do Ge=n[B>>2]|0,n[B>>2]=(Ge>>>Oe)+se,se=Ne(Ge&O,j)|0,B=B+4|0;while(B>>>0>>0);B=(n[M>>2]|0)==0?M+4|0:M,se?(n[k>>2]=se,M=B,B=k+4|0):(M=B,B=k)}else M=(n[M>>2]|0)==0?M+4|0:M,B=k;k=Re?Vt:M,k=(B-k>>2|0)>(f|0)?k+(f<<2)|0:B,B=(n[et>>2]|0)+Oe|0,n[et>>2]=B}while((B|0)<0);B=M,f=k}else B=M,f=k;if(Ge=Vt,B>>>0>>0){if(k=(Ge-B>>2)*9|0,O=n[B>>2]|0,O>>>0>=10){M=10;do M=M*10|0,k=k+1|0;while(O>>>0>=M>>>0)}}else k=0;if(Re=(at|0)==103,Ze=(Q|0)!=0,M=Q-((at|0)!=102?k:0)+((Ze&Re)<<31>>31)|0,(M|0)<(((f-Ge>>2)*9|0)+-9|0)){if(M=M+9216|0,Oe=Vt+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(j=n[Oe>>2]|0,se=(j>>>0)%(O>>>0)|0,M=(Oe+4|0)==(f|0),M&(se|0)==0)M=Oe;else if(We=(((j>>>0)/(O>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,He=(O|0)/2|0,l=se>>>0>>0?.5:M&(se|0)==(He|0)?1:1.5,ir&&(He=(o[Rr>>0]|0)==45,l=He?-l:l,We=He?-We:We),M=j-se|0,n[Oe>>2]=M,We+l!=We){if(He=M+O|0,n[Oe>>2]=He,He>>>0>999999999)for(k=Oe;M=k+-4|0,n[k>>2]=0,M>>>0>>0&&(B=B+-4|0,n[B>>2]=0),He=(n[M>>2]|0)+1|0,n[M>>2]=He,He>>>0>999999999;)k=M;else M=Oe;if(k=(Ge-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){O=10;do O=O*10|0,k=k+1|0;while(j>>>0>=O>>>0)}}else M=Oe;M=M+4|0,M=f>>>0>M>>>0?M:f,He=B}else M=f,He=B;for(at=M;;){if(at>>>0<=He>>>0){et=0;break}if(B=at+-4|0,!(n[B>>2]|0))at=B;else{et=1;break}}f=0-k|0;do if(Re)if(B=((Ze^1)&1)+Q|0,(B|0)>(k|0)&(k|0)>-5?(O=m+-1|0,Q=B+-1-k|0):(O=m+-2|0,Q=B+-1|0),B=d&8,B)Oe=B;else{if(et&&(Tt=n[at+-4>>2]|0,(Tt|0)!=0))if((Tt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Tt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((at-Ge>>2)*9|0)+-9|0,(O|32|0)==102){Oe=B-M|0,Oe=(Oe|0)>0?Oe:0,Q=(Q|0)<(Oe|0)?Q:Oe,Oe=0;break}else{Oe=B+k-M|0,Oe=(Oe|0)>0?Oe:0,Q=(Q|0)<(Oe|0)?Q:Oe,Oe=0;break}}else O=m,Oe=d&8;while(0);if(Re=Q|Oe,j=(Re|0)!=0&1,se=(O|32|0)==102,se)Ze=0,B=(k|0)>0?k:0;else{if(B=(k|0)<0?f:k,B=Km(B,((B|0)<0)<<31>>31,Ir)|0,M=Ir,(M-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((M-B|0)<2);o[B+-1>>0]=(k>>31&2)+43,B=B+-2|0,o[B>>0]=O,Ze=B,B=M-B|0}if(B=ir+1+Q+j+B|0,Is(s,32,c,B,d),ss(s,Rr,ir),Is(s,48,c,B,d^65536),se){O=He>>>0>Vt>>>0?Vt:He,Oe=rr+9|0,j=Oe,se=rr+8|0,M=O;do{if(k=Km(n[M>>2]|0,0,Oe)|0,(M|0)==(O|0))(k|0)==(Oe|0)&&(o[se>>0]=48,k=se);else if(k>>>0>rr>>>0){Vm(rr|0,48,k-Qr|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}ss(s,k,j-k|0),M=M+4|0}while(M>>>0<=Vt>>>0);if(Re|0&&ss(s,5710,1),M>>>0>>0&(Q|0)>0)for(;;){if(k=Km(n[M>>2]|0,0,Oe)|0,k>>>0>rr>>>0){Vm(rr|0,48,k-Qr|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}if(ss(s,k,(Q|0)<9?Q:9),M=M+4|0,k=Q+-9|0,M>>>0>>0&(Q|0)>9)Q=k;else{Q=k;break}}Is(s,48,Q+9|0,9,0)}else{if(Re=et?at:He+4|0,(Q|0)>-1){et=rr+9|0,Oe=(Oe|0)==0,f=et,j=0-Qr|0,se=rr+8|0,O=He;do{k=Km(n[O>>2]|0,0,et)|0,(k|0)==(et|0)&&(o[se>>0]=48,k=se);do if((O|0)==(He|0)){if(M=k+1|0,ss(s,k,1),Oe&(Q|0)<1){k=M;break}ss(s,5710,1),k=M}else{if(k>>>0<=rr>>>0)break;Vm(rr|0,48,k+j|0)|0;do k=k+-1|0;while(k>>>0>rr>>>0)}while(0);Qr=f-k|0,ss(s,k,(Q|0)>(Qr|0)?Qr:Q),Q=Q-Qr|0,O=O+4|0}while(O>>>0>>0&(Q|0)>-1)}Is(s,48,Q+18|0,18,0),ss(s,Ze,Ir-Ze|0)}Is(s,32,c,B,d^8192)}else rr=(m&32|0)!=0,B=ir+3|0,Is(s,32,c,B,d&-65537),ss(s,Rr,ir),ss(s,l!=l|!1?rr?5686:5690:rr?5678:5682,3),Is(s,32,c,B,d^8192);while(0);return E=Bn,((B|0)<(c|0)?c:B)|0}function r7(s){s=+s;var l=0;return C[v>>3]=s,l=n[v>>2]|0,Ee=n[v+4>>2]|0,l|0}function i3e(s,l){return s=+s,l=l|0,+ +n7(s,l)}function n7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(C[v>>3]=s,c=n[v>>2]|0,f=n[v+4>>2]|0,d=Zv(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+n7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[v>>2]=c,n[v+4>>2]=f&-2146435073|1071644672,s=+C[v>>3]}return+s}function s3e(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(o3e()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(Ym()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(Ym()|0)>>2]=84,s=-1;break}}else s=1;while(0);return s|0}function o3e(){return CR()|0}function a3e(){return CR()|0}function l3e(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while((o[s>>0]|0)!=0);if(f=f+-1|0,f)s=5;else break}return c3e(c,n[l+20>>2]|0)|0}function c3e(s,l){return s=s|0,l=l|0,u3e(s,l)|0}function u3e(s,l){return s=s|0,l=l|0,l?l=A3e(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function A3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0;se=(n[s>>2]|0)+1794895138|0,m=xg(n[s+8>>2]|0,se)|0,f=xg(n[s+12>>2]|0,se)|0,d=xg(n[s+16>>2]|0,se)|0;e:do if(m>>>0>>2>>>0&&(j=l-(m<<2)|0,f>>>0>>0&d>>>0>>0)&&((d|f)&3|0)==0){for(j=f>>>2,O=d>>>2,M=0;;){if(Q=m>>>1,k=M+Q|0,B=k<<1,d=B+j|0,f=xg(n[s+(d<<2)>>2]|0,se)|0,d=xg(n[s+(d+1<<2)>>2]|0,se)|0,!(d>>>0>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=X5(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else M=f?M:k,m=f?Q:m-Q|0}f=B+O|0,d=xg(n[s+(f<<2)>>2]|0,se)|0,f=xg(n[s+(f+1<<2)>>2]|0,se)|0,f>>>0>>0&d>>>0<(l-f|0)>>>0?f=(o[s+(f+d)>>0]|0)==0?s+f|0:0:f=0}else f=0;while(0);return f|0}function xg(s,l){s=s|0,l=l|0;var c=0;return c=A7(s|0)|0,((l|0)==0?s:c)|0}function f3e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,Q=0;f=c+16|0,d=n[f>>2]|0,d?m=5:p3e(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(Q=c+20|0,B=n[Q>>2]|0,f=B,(d-B|0)>>>0>>0){f=eD[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=eD[n[c+36>>2]&7](c,s,B)|0,f>>>0>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[Q>>2]|0}else m=0,d=s;while(0);Cr(f|0,d|0,l|0)|0,n[Q>>2]=(n[Q>>2]|0)+l,f=m+l|0}while(0);return f|0}function p3e(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function Ln(s,l){s=y(s),l=y(l);var c=0,f=0;c=i7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=i7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s>2]=s,n[v>>2]|0|0}function Pg(s,l){s=y(s),l=y(l);var c=0,f=0;c=s7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=s7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s>2]=s,n[v>>2]|0|0}function wR(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,Q=0,k=0,M=0;m=(h[v>>2]=s,n[v>>2]|0),Q=(h[v>>2]=l,n[v>>2]|0),c=m>>>23&255,B=Q>>>23&255,k=m&-2147483648,d=Q<<1;e:do if((d|0)!=0&&!((c|0)==255|((h3e(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)Q=Q&8388607|8388608;else{if(m=Q<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,Q=Q<<1-d}d=f-Q|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-Q|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(0);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[v>>2]=c|k,y(h[v>>2]))}else M=3;while(0);return(M|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function h3e(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function g3e(s,l){return s=s|0,l=l|0,Z5(n[582]|0,s,l)|0}function Jr(s){s=s|0,Rt()}function Jm(s){s=s|0}function d3e(s,l){return s=s|0,l=l|0,0}function m3e(s){return s=s|0,(o7(s+4|0)|0)==-1?(ef[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function o7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function Pp(s){s=s|0,m3e(s)|0&&y3e(s)}function y3e(s){s=s|0;var l=0;l=s+8|0,(n[l>>2]|0)!=0&&(o7(l)|0)!=-1||ef[n[(n[s>>2]|0)+16>>2]&127](s)}function Gt(s){s=s|0;var l=0;for(l=(s|0)==0?1:s;s=Jv(l)|0,!(s|0);){if(s=C3e()|0,!s){s=0;break}I7[s&0]()}return s|0}function a7(s){return s=s|0,Gt(s)|0}function pt(s){s=s|0,Vv(s)}function E3e(s){s=s|0,(o[s+11>>0]|0)<0&&pt(n[s>>2]|0)}function C3e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function I3e(){}function Xv(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,Ee=f,s-c>>>0|0|0}function BR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,Ee=l+f+(c>>>0>>0|0)>>>0,c|0|0}function Vm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function l7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Ee=l<>>32-c,s<>>c,s>>>c|(l&(1<>>c-32|0)}function Cr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return pc(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function c7(s){s=s|0;var l=0;return l=o[N+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[N+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[N+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[N+(s>>>24)>>0]|0)+24|0))}function u7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,Q=0,k=0,M=0,O=0,j=0,se=0,We=0,Oe=0;if(O=s,k=l,M=k,B=c,se=f,Q=se,!M)return m=(d|0)!=0,Q?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,se=0,d=0,Ee=se,d|0):(se=0,d=0,Ee=se,d|0):(m&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),se=0,d=(O>>>0)/(B>>>0)>>>0,Ee=se,d|0);m=(Q|0)==0;do if(B){if(!m){if(m=(x(Q|0)|0)-(x(M|0)|0)|0,m>>>0<=31){j=m+1|0,Q=31-m|0,l=m-31>>31,B=j,s=O>>>(j>>>0)&l|M<>>(j>>>0)&l,m=0,Q=O<>2]=s|0,n[d+4>>2]=k|l&0,se=0,d=0,Ee=se,d|0):(se=0,d=0,Ee=se,d|0)}if(m=B-1|0,m&B|0){Q=(x(B|0)|0)+33-(x(M|0)|0)|0,Oe=64-Q|0,j=32-Q|0,k=j>>31,We=Q-32|0,l=We>>31,B=Q,s=j-1>>31&M>>>(We>>>0)|(M<>>(Q>>>0))&l,l=l&M>>>(Q>>>0),m=O<>>(We>>>0))&k|O<>31;break}return d|0&&(n[d>>2]=m&O,n[d+4>>2]=0),(B|0)==1?(We=k|l&0,Oe=s|0|0,Ee=We,Oe|0):(Oe=c7(B|0)|0,We=M>>>(Oe>>>0)|0,Oe=M<<32-Oe|O>>>(Oe>>>0)|0,Ee=We,Oe|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),We=0,Oe=(M>>>0)/(B>>>0)>>>0,Ee=We,Oe|0;if(!O)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(Q>>>0)),We=0,Oe=(M>>>0)/(Q>>>0)>>>0,Ee=We,Oe|0;if(m=Q-1|0,!(m&Q))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&M|l&0),We=0,Oe=M>>>((c7(Q|0)|0)>>>0),Ee=We,Oe|0;if(m=(x(Q|0)|0)-(x(M|0)|0)|0,m>>>0<=30){l=m+1|0,Q=31-m|0,B=l,s=M<>>(l>>>0),l=M>>>(l>>>0),m=0,Q=O<>2]=s|0,n[d+4>>2]=k|l&0,We=0,Oe=0,Ee=We,Oe|0):(We=0,Oe=0,Ee=We,Oe|0)}while(0);if(!B)M=Q,k=0,Q=0;else{j=c|0|0,O=se|f&0,M=BR(j|0,O|0,-1,-1)|0,c=Ee,k=Q,Q=0;do f=k,k=m>>>31|k<<1,m=Q|m<<1,f=s<<1|f>>>31|0,se=s>>>31|l<<1|0,Xv(M|0,c|0,f|0,se|0)|0,Oe=Ee,We=Oe>>31|((Oe|0)<0?-1:0)<<1,Q=We&1,s=Xv(f|0,se|0,We&j|0,(((Oe|0)<0?-1:0)>>31|((Oe|0)<0?-1:0)<<1)&O|0)|0,l=Ee,B=B-1|0;while((B|0)!=0);M=k,k=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),We=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|k,Oe=(m<<1|0>>>31)&-2|Q,Ee=We,Oe|0}function vR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,u7(s,l,c,f,0)|0}function bp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[w>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(ie()|0,SA(12),-1):(n[w>>2]=s,(s|0)>($()|0)&&(X()|0)==0?(n[w>>2]=l,SA(12),-1):l|0)}function SI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else Cr(s,l,c)|0;return s|0}function DR(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=E,E=E+16|0,d=m|0,u7(s,l,c,f,d)|0,E=m,Ee=n[d+4>>2]|0,n[d>>2]|0|0}function A7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function w3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,f7[s&1](l|0,c|0,f|0,d|0,m|0)}function B3e(s,l,c){s=s|0,l=l|0,c=y(c),p7[s&1](l|0,y(c))}function v3e(s,l,c){s=s|0,l=l|0,c=+c,h7[s&31](l|0,+c)}function D3e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(g7[s&0](l|0,y(c),y(f)))}function S3e(s,l){s=s|0,l=l|0,ef[s&127](l|0)}function x3e(s,l,c){s=s|0,l=l|0,c=c|0,tf[s&31](l|0,c|0)}function P3e(s,l){return s=s|0,l=l|0,Qg[s&31](l|0)|0}function b3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,d7[s&1](l|0,+c,+f,d|0)}function Q3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,u_e[s&1](l|0,+c,+f)}function k3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,eD[s&7](l|0,c|0,f|0)|0}function F3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+A_e[s&1](l|0,c|0,f|0)}function R3e(s,l){return s=s|0,l=l|0,+m7[s&15](l|0)}function T3e(s,l,c){return s=s|0,l=l|0,c=+c,f_e[s&1](l|0,+c)|0}function L3e(s,l,c){return s=s|0,l=l|0,c=c|0,xR[s&15](l|0,c|0)|0}function N3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,p_e[s&1](l|0,c|0,+f,+d,m|0)}function O3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,h_e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function M3e(s,l,c){return s=s|0,l=l|0,c=c|0,+y7[s&7](l|0,c|0)}function U3e(s){return s=s|0,tD[s&7]()|0}function _3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,E7[s&1](l|0,c|0,f|0,d|0,m|0)|0}function H3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,g_e[s&1](l|0,c|0,f|0,+d)}function q3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,C7[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function j3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,bI[s&15](l|0,c|0,f|0)}function G3e(s){s=s|0,I7[s&0]()}function W3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,w7[s&15](l|0,c|0,+f)}function Y3e(s,l,c){return s=s|0,l=+l,c=+c,d_e[s&1](+l,+c)|0}function K3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,PR[s&15](l|0,c|0,f|0,d|0)}function J3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(0)}function V3e(s,l){s=s|0,l=y(l),F(1)}function da(s,l){s=s|0,l=+l,F(2)}function z3e(s,l,c){return s=s|0,l=y(l),c=y(c),F(3),$e}function hr(s){s=s|0,F(4)}function xI(s,l){s=s|0,l=l|0,F(5)}function Xa(s){return s=s|0,F(6),0}function X3e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,F(7)}function Z3e(s,l,c){s=s|0,l=+l,c=+c,F(8)}function $3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(9),0}function e_e(s,l,c){return s=s|0,l=l|0,c=c|0,F(10),0}function bg(s){return s=s|0,F(11),0}function t_e(s,l){return s=s|0,l=+l,F(12),0}function PI(s,l){return s=s|0,l=l|0,F(13),0}function r_e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,F(14)}function n_e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,F(15)}function SR(s,l){return s=s|0,l=l|0,F(16),0}function i_e(){return F(17),0}function s_e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(18),0}function o_e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,F(19)}function a_e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,F(20)}function $v(s,l,c){s=s|0,l=l|0,c=c|0,F(21)}function l_e(){F(22)}function zm(s,l,c){s=s|0,l=l|0,c=+c,F(23)}function c_e(s,l){return s=+s,l=+l,F(24),0}function Xm(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,F(25)}var f7=[J3e,sOe],p7=[V3e,uo],h7=[da,mI,yI,pF,hF,Sl,EI,gF,_m,Fu,II,dF,Tv,YA,Lv,Hm,Nv,Ov,qm,da,da,da,da,da,da,da,da,da,da,da,da,da],g7=[z3e],ef=[hr,Jm,UDe,_De,HDe,dbe,mbe,ybe,TLe,LLe,NLe,YNe,KNe,JNe,hUe,gUe,dUe,ds,bv,Um,WA,CI,Lve,Nve,bDe,VDe,aSe,DSe,HSe,ixe,Ixe,Nxe,Xxe,pPe,bPe,WPe,abe,Lbe,Xbe,pQe,bQe,WQe,ake,Ske,Hke,tFe,mFe,Pc,JFe,uRe,bRe,KRe,lTe,bTe,UTe,qTe,sLe,lLe,DLe,MLe,HLe,iNe,wNe,Z9,nMe,TMe,VMe,u4e,F4e,K4e,iUe,aUe,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr,hr],tf=[xI,oF,aF,dI,ku,lF,cF,Ip,uF,AF,fF,Rv,KA,Ve,ft,jt,Er,In,Sr,yF,wve,Wve,Qke,Gke,XRe,oMe,QNe,N5,xI,xI,xI,xI],Qg=[Xa,WUe,sF,D,ce,Se,It,Et,Pt,Lr,fi,Ao,Eve,Cve,Ove,CFe,fTe,aNe,uMe,Ja,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa,Xa],d7=[X3e,Mve],u_e=[Z3e,PLe],eD=[$3e,z5,YUe,VUe,lxe,Ube,ZFe,h4e],A_e=[e_e,RPe],m7=[bg,_o,rt,wn,Uve,_ve,Hve,qve,jve,Gve,bg,bg,bg,bg,bg,bg],f_e=[t_e,NTe],xR=[PI,d3e,Ive,RDe,bSe,vxe,Uxe,Abe,tQe,sFe,xv,$Me,PI,PI,PI,PI],p_e=[r_e,ASe],h_e=[n_e,N4e],y7=[SR,ri,Yve,Kve,Jve,VPe,SR,SR],tD=[i_e,Vve,hI,ha,YTe,fLe,WLe,AUe],E7=[s_e,lI],g_e=[o_e,RQe],C7=[a_e,Bve],bI=[$v,T,is,Xr,fo,WSe,ePe,VQe,Ake,Mm,POe,MMe,X4e,$v,$v,$v],I7=[l_e],w7=[zm,Qv,kv,Fv,GA,Mv,mF,S,mQe,hRe,FTe,zm,zm,zm,zm,zm],d_e=[c_e,FLe],PR=[Xm,mPe,PFe,RRe,ITe,ZTe,yLe,ZLe,xNe,dMe,wUe,Xm,Xm,Xm,Xm,Xm];return{_llvm_bswap_i32:A7,dynCall_idd:Y3e,dynCall_i:U3e,_i64Subtract:Xv,___udivdi3:vR,dynCall_vif:B3e,setThrew:Cu,dynCall_viii:j3e,_bitshift64Lshr:Zv,_bitshift64Shl:l7,dynCall_vi:S3e,dynCall_viiddi:N3e,dynCall_diii:F3e,dynCall_iii:L3e,_memset:Vm,_sbrk:bp,_memcpy:Cr,__GLOBAL__sub_I_Yoga_cpp:Om,dynCall_vii:x3e,___uremdi3:DR,dynCall_vid:v3e,stackAlloc:so,_nbind_init:RUe,getTempRet0:Ma,dynCall_di:R3e,dynCall_iid:T3e,setTempRet0:QA,_i64Add:BR,dynCall_fiff:D3e,dynCall_iiii:k3e,_emscripten_get_global_libc:GUe,dynCall_viid:W3e,dynCall_viiid:H3e,dynCall_viififi:q3e,dynCall_ii:P3e,__GLOBAL__sub_I_Binding_cc:VOe,dynCall_viiii:K3e,dynCall_iiiiii:_3e,stackSave:Il,dynCall_viiiii:w3e,__GLOBAL__sub_I_nbind_cc:zve,dynCall_vidd:Q3e,_free:Vv,runPostSets:I3e,dynCall_viiiiii:O3e,establishStackSpace:qi,_memmove:SI,stackRestore:Eu,_malloc:Jv,__GLOBAL__sub_I_common_cc:gNe,dynCall_viddi:b3e,dynCall_dii:M3e,dynCall_v:G3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<4-1;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` From a3263b2a64b7c16614e7147d15f90389f24bccef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=BC=9A?= <> Date: Tue, 5 Sep 2023 16:12:02 +0800 Subject: [PATCH 23/24] upgrade to 2.0.0 --- .changeset/stupid-deers-pull.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .changeset/stupid-deers-pull.md diff --git a/.changeset/stupid-deers-pull.md b/.changeset/stupid-deers-pull.md new file mode 100644 index 0000000..8d41100 --- /dev/null +++ b/.changeset/stupid-deers-pull.md @@ -0,0 +1,22 @@ +--- +"@zcloak/message": major +"@zcloak/verify": major +"@zcloak/vc": major +"@zcloak/login-did": major +"@zcloak/login-providers": major +"@zcloak/login-rpc": major +"@zcloak/login-rpc-defines": major +"@zcloak/login-verify": major +"@zcloak/ctype": major +"@zcloak/did": major +"@zcloak/did-resolver": major +"@zcloak/cross": major +"@zcloak/crypto": major +"@zcloak/keyring": major +"@zcloak/miden": major +"@zcloak/wasm": major +"@zcloak/wasm-asm": major +"@zcloak/wasm-bridge": major +--- + +[ upgrade to 2.0.0 ] From bd05b50bfb2c08cde58899f312c994f33732713d Mon Sep 17 00:00:00 2001 From: J <1410101208@qq.com> Date: Tue, 5 Sep 2023 16:22:23 +0800 Subject: [PATCH 24/24] Fix: fix web3 import --- package.json | 6 +++--- protocol/vc/src/utils.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 065f8f8..2dd0292 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,9 @@ "test:one": "zcloak-dev-run-test --runInBand", "test:watch": "zcloak-dev-run-test --watch" }, + "dependencies": { + "web3": "^4.1.1" + }, "devDependencies": { "@types/jest": "^29.4.0", "@zcloak/dev": "^0.31.0", @@ -43,8 +46,5 @@ }, "resolutions": { "typescript": "^5.0.4" - }, - "dependencies": { - "web3": "^4.1.1" } } diff --git a/protocol/vc/src/utils.ts b/protocol/vc/src/utils.ts index 436d465..4e9cebb 100644 --- a/protocol/vc/src/utils.ts +++ b/protocol/vc/src/utils.ts @@ -18,7 +18,7 @@ import { rlpEncode as rlpEncodeFn } from '@zcloak/crypto'; import { HASHER } from './hasher'; // Local mode -const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545')); +const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545')) as any; export function rlpEncode(input: NativeType | NativeTypeWithOutNull[], hashType: HashType): Uint8Array { const result = rlpEncodeFn(input);