kline-orderbook-chart 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,4 +11,4 @@
11
11
  * Web: https://app.mrd-indicators.com
12
12
  * NPM: https://www.npmjs.com/package/kline-orderbook-chart
13
13
  */
14
- var kn=Object.defineProperty;var Is=(t,e,n)=>e in t?kn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var tr=(t,e)=>()=>(t&&(e=t(t=0)),e);var Zn=(t,e)=>{for(var n in e)kn(t,n,{get:e[n],enumerable:!0})};var G=(t,e,n)=>Is(t,typeof e!="symbol"?e+"":e,n);var zo={};Zn(zo,{Point:()=>ue,etc:()=>pi,getPublicKey:()=>No,getPublicKeyAsync:()=>xo,hash:()=>li,hashes:()=>Yo,keygen:()=>bi,keygenAsync:()=>mi,sign:()=>_i,signAsync:()=>ui,utils:()=>gi,verify:()=>hi,verifyAsync:()=>di});var To,Sr,yr,bo,mo,tn,en,ri,fe,ni,Rt,oi,si,ii,Wt,Ar,sn,Eo,an,me,go,ln,Co,ai,He,Ao,Tr,Be,Et,wo,st,Po,Mo,cn,fn,li,rn,nn,ce,ue,Pe,Ye,Fo,un,le,ci,vo,fi,Er,_n,dn,Lo,hn,pn,xo,No,Ro,Io,Oo,ui,_i,bn,Bo,di,hi,pi,Yo,mn,bi,mi,gi,Cr,wi,Ho,on,vi,yo,So,yi,Xo=tr(()=>{To=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:Sr,n:yr,Gx:bo,Gy:mo,a:tn,d:en,h:ri}=To,fe=32,ni=(...t)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...t)},Rt=(t="")=>{let e=new Error(t);throw ni(e,Rt),e},oi=t=>typeof t=="bigint",si=t=>typeof t=="string",ii=t=>t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1,Wt=(t,e,n="")=>{let s=ii(t),v=t?.length,c=e!==void 0;if(!s||c&&v!==e){let d=n&&`"${n}" `,h=c?` of length ${e}`:"",r=s?`length=${v}`:`type=${typeof t}`,i=d+"expected Uint8Array"+h+", got "+r;throw s?new RangeError(i):new TypeError(i)}return t},Ar=t=>new Uint8Array(t),sn=t=>Uint8Array.from(t),Eo=(t,e)=>t.toString(16).padStart(e,"0"),an=t=>Array.from(Wt(t)).map(e=>Eo(e,2)).join(""),me={_0:48,_9:57,A:65,F:70,a:97,f:102},go=t=>{if(t>=me._0&&t<=me._9)return t-me._0;if(t>=me.A&&t<=me.F)return t-(me.A-10);if(t>=me.a&&t<=me.f)return t-(me.a-10)},ln=t=>{let e="hex invalid";if(!si(t))return Rt(e);let n=t.length,s=n/2;if(n%2)return Rt(e);let v=Ar(s);for(let c=0,d=0;c<s;c++,d+=2){let h=go(t.charCodeAt(d)),r=go(t.charCodeAt(d+1));if(h===void 0||r===void 0)return Rt(e);v[c]=h*16+r}return v},Co=()=>globalThis?.crypto,ai=()=>Co()?.subtle??Rt("crypto.subtle must be defined, consider polyfill"),He=(...t)=>{let e=0;for(let v of t)e+=Wt(v).length;let n=Ar(e),s=0;return t.forEach(v=>{n.set(v,s),s+=v.length}),n},Ao=(t=fe)=>Co().getRandomValues(Ar(t)),Tr=BigInt,Be=(t,e,n,s="bad number: out of range")=>{if(!oi(t))throw new TypeError(s);if(e<=t&&t<n)return t;throw new RangeError(s)},Et=(t,e=Sr)=>{let n=t%e;return n>=0n?n:e+n},wo=(1n<<255n)-1n,st=t=>{t<0n&&Rt("negative coordinate");let e=(t>>255n)*19n+(t&wo);return e=(e>>255n)*19n+(e&wo),e%Sr},Po=t=>Et(t,yr),Mo=(t,e)=>{(t===0n||e<=0n)&&Rt("no inverse n="+t+" mod="+e);let n=Et(t,e),s=e,v=0n,c=1n,d=1n,h=0n;for(;n!==0n;){let r=s/n,i=s%n,o=v-d*r,a=c-h*r;s=n,n=i,v=d,c=h,d=o,h=a}return s===1n?Et(v,e):Rt("no inverse")},cn=t=>{let e=Yo[t];return typeof e!="function"&&Rt("hashes."+t+" not set"),e},fn=t=>Wt(t,64,"digest"),li=t=>fn(cn("sha512")(Wt(t,void 0,"message"))),rn=t=>t instanceof ue?t:Rt("Point expected"),nn=2n**256n,ce=class ce{constructor(e,n,s,v){G(this,"X");G(this,"Y");G(this,"Z");G(this,"T");let c=nn;this.X=Be(e,0n,c),this.Y=Be(n,0n,c),this.Z=Be(s,1n,c),this.T=Be(v,0n,c),Object.freeze(this)}static CURVE(){return To}static fromAffine(e){return new ce(e.x,e.y,1n,st(e.x*e.y))}static fromBytes(e,n=!1){let s=en,v=sn(Wt(e,fe)),c=e[31];v[31]=c&-129;let d=un(v);Be(d,0n,n?nn:Sr);let r=st(d*d),i=Et(r-1n),o=st(s*r+1n),{isValid:a,value:_}=fi(i,o);a||Rt("bad point: y not sqrt");let f=(_&1n)===1n,E=(c&128)!==0;return!n&&_===0n&&E&&Rt("bad point: x==0, isLastByteOdd"),E!==f&&(_=Et(-_)),new ce(_,d,1n,st(_*d))}static fromHex(e,n){return ce.fromBytes(ln(e),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let e=tn,n=en,s=this;if(s.is0())return Rt("bad point: ZERO");let{X:v,Y:c,Z:d,T:h}=s,r=st(v*v),i=st(c*c),o=st(d*d),a=st(o*o),_=st(r*e),f=st(o*(_+i)),E=Et(a+st(n*st(r*i)));if(f!==E)return Rt("bad point: equation left != right (1)");let p=st(v*c),F=st(d*h);return p!==F?Rt("bad point: equation left != right (2)"):this}equals(e){let{X:n,Y:s,Z:v}=this,{X:c,Y:d,Z:h}=rn(e),r=st(n*h),i=st(c*v),o=st(s*h),a=st(d*v);return r===i&&o===a}is0(){return this.equals(Ye)}negate(){return new ce(Et(-this.X),this.Y,this.Z,Et(-this.T))}double(){let{X:e,Y:n,Z:s}=this,v=tn,c=st(e*e),d=st(n*n),h=st(2n*s*s),r=st(v*c),i=Et(e+n),o=Et(st(i*i)-c-d),a=Et(r+d),_=Et(a-h),f=Et(r-d),E=st(o*_),p=st(a*f),F=st(o*f),u=st(_*a);return new ce(E,p,u,F)}add(e){let{X:n,Y:s,Z:v,T:c}=this,{X:d,Y:h,Z:r,T:i}=rn(e),o=tn,a=en,_=st(n*d),f=st(s*h),E=st(st(c*a)*i),p=st(v*r),F=Et(st(Et(n+s)*Et(d+h))-_-f),u=Et(p-E),O=Et(p+E),A=Et(f-st(o*_)),T=st(F*u),P=st(O*A),H=st(F*A),x=st(u*O);return new ce(T,P,x,H)}subtract(e){return this.add(rn(e).negate())}multiply(e,n=!0){if(!n&&e===0n||(Be(e,1n,yr),!n&&this.is0()))return Ye;if(e===1n)return this;if(this.equals(Pe))return yi(e).p;let s=Ye,v=Pe;for(let c=this;e>0n;c=c.double(),e>>=1n)e&1n?s=s.add(c):n&&(v=v.add(c));return s}multiplyUnsafe(e){return this.multiply(e,!1)}toAffine(){let{X:e,Y:n,Z:s}=this;if(this.equals(Ye))return{x:0n,y:1n};let v=Mo(s,Sr);st(s*v)!==1n&&Rt("invalid inverse");let c=st(e*v),d=st(n*v);return{x:c,y:d}}toBytes(){let{x:e,y:n}=this.toAffine(),s=Fo(n);return s[31]|=e&1n?128:0,s}toHex(){return an(this.toBytes())}clearCofactor(){return this.multiply(Tr(ri),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let e=this.multiply(yr/2n,!1).double();return yr%2n&&(e=e.add(this)),e.is0()}};G(ce,"BASE"),G(ce,"ZERO");ue=ce,Pe=new ue(bo,mo,1n,Et(bo*mo)),Ye=new ue(0n,1n,1n,0n);ue.BASE=Pe;ue.ZERO=Ye;Fo=t=>ln(Eo(Be(t,0n,nn),64)).reverse(),un=t=>Tr("0x"+an(sn(Wt(t)).reverse())),le=(t,e)=>{let n=t;for(;e-- >0n;)n=st(n*n);return n},ci=t=>{let e=st(t*t),n=st(e*t),s=st(le(n,2n)*n),v=st(le(s,1n)*t),c=st(le(v,5n)*v),d=st(le(c,10n)*c),h=st(le(d,20n)*d),r=st(le(h,40n)*h),i=st(le(r,80n)*r),o=st(le(i,80n)*r),a=st(le(o,10n)*c);return{pow_p_5_8:st(le(a,2n)*t),b2:n}},vo=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,fi=(t,e)=>{let n=st(e*st(e*e)),s=st(st(n*n)*e),v=ci(st(t*s)).pow_p_5_8,c=st(t*st(n*v)),d=st(e*st(c*c)),h=c,r=st(c*vo),i=d===t,o=d===Et(-t),a=d===Et(-t*vo);return i&&(c=h),(o||a)&&(c=r),(Et(c)&1n)===1n&&(c=Et(-c)),{isValid:i||o,value:c}},Er=t=>Po(un(t)),_n=(...t)=>Promise.resolve(cn("sha512Async")(He(...t))).then(fn),dn=(...t)=>fn(cn("sha512")(He(...t))),Lo=t=>{let e=sn(t),n=e.slice(0,32);n[0]&=248,n[31]&=127,n[31]|=64;let s=e.slice(32,64),v=Er(n),c=Pe.multiply(v),d=c.toBytes();return{head:n,prefix:s,scalar:v,point:c,pointBytes:d}},hn=t=>_n(Wt(t,fe)).then(Lo),pn=t=>Lo(dn(Wt(t,fe))),xo=t=>hn(t).then(e=>e.pointBytes),No=t=>pn(t).pointBytes,Ro=t=>_n(t.hashable).then(t.finish),Io=t=>t.finish(dn(t.hashable)),Oo=(t,e,n)=>{let{pointBytes:s,scalar:v}=t,c=Er(e),d=Pe.multiply(c).toBytes();return{hashable:He(d,s,n),finish:i=>{let o=Po(c+Er(i)*v);return Wt(He(d,Fo(o)),64)}}},ui=async(t,e)=>{let n=Wt(t),s=await hn(e),v=await _n(s.prefix,n);return Ro(Oo(s,v,n))},_i=(t,e)=>{let n=Wt(t),s=pn(e),v=dn(s.prefix,n);return Io(Oo(s,v,n))},bn={zip215:!0},Bo=(t,e,n,s=bn)=>{t=Wt(t,64),e=Wt(e),n=Wt(n,fe);let{zip215:v=!0}=s,c=t.subarray(0,fe),d=un(t.subarray(fe,fe*2)),h,r,i,o=Uint8Array.of(),a=!1;try{h=ue.fromBytes(n,v),r=ue.fromBytes(c,v),i=Pe.multiply(d,!1),o=He(c,n,e),a=!0}catch{}return{hashable:o,finish:f=>{if(!a||!v&&h.isSmallOrder())return!1;let E=Er(f);return r.add(h.multiply(E,!1)).subtract(i).clearCofactor().is0()}}},di=async(t,e,n,s=bn)=>Ro(Bo(t,e,n,s)),hi=(t,e,n,s=bn)=>Io(Bo(t,e,n,s)),pi=Object.freeze({bytesToHex:an,hexToBytes:ln,concatBytes:He,mod:Et,invert:Mo,randomBytes:Ao}),Yo={sha512Async:async t=>{let e=ai(),n=He(t);return Ar(await e.digest("SHA-512",n.buffer))},sha512:void 0},mn=t=>(t=t===void 0?Ao(fe):t,Wt(t,fe)),bi=t=>{let e=mn(t),n=No(e);return{secretKey:e,publicKey:n}},mi=async t=>{let e=mn(t),n=await xo(e);return{secretKey:e,publicKey:n}},gi=Object.freeze({getExtendedPublicKeyAsync:hn,getExtendedPublicKey:pn,randomSecretKey:mn}),Cr=8,wi=256,Ho=Math.ceil(wi/Cr)+1,on=2**(Cr-1),vi=()=>{let t=[],e=Pe,n=e;for(let s=0;s<Ho;s++){n=e,t.push(n);for(let v=1;v<on;v++)n=n.add(e),t.push(n);e=n.double()}return t},So=(t,e)=>{let n=e.negate();return t?n:e},yi=t=>{let e=yo||(yo=vi()),n=Ye,s=Pe,v=2**Cr,c=v,d=Tr(v-1),h=Tr(Cr);for(let r=0;r<Ho;r++){let i=Number(t&d);t>>=h,i>on&&(i-=c,t+=1n);let o=r*on,a=o,_=o+Math.abs(i)-1,f=r%2!==0,E=i<0;i===0?s=s.add(So(f,e[a])):n=n.add(So(E,e[_]))}return t!==0n&&Rt("invalid wnaf"),{p:n,f:s}}});function Si(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function gn(t,e,n=""){let s=Si(t),v=t?.length,c=e!==void 0;if(!s||c&&v!==e){let d=n&&`"${n}" `,h=c?` of length ${e}`:"",r=s?`length=${v}`:`type=${typeof t}`,i=d+"expected Uint8Array"+h+", got "+r;throw s?new RangeError(i):new TypeError(i)}return t}function wn(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Vo(t,e){gn(t,void 0,"digestInto() output");let n=e.outputLen;if(t.length<n)throw new RangeError('"digestInto() output" expected to be of length >='+n)}function ze(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function Pr(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function se(t,e){return t<<32-e|t>>>e}function Xe(t,e={}){let n=(v,c)=>t(c).update(v).digest(),s=t(void 0);return n.outputLen=s.outputLen,n.blockLen=s.blockLen,n.canXOF=s.canXOF,n.create=v=>t(v),Object.assign(n,e),Object.freeze(n)}var Ve,vn=tr(()=>{Ve=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])})});function Wo(t,e,n){return t&e^~t&n}function qo(t,e,n){return t&e^t&n^e&n}var ar,ge,we,It,Ot,ko=tr(()=>{vn();ar=class{constructor(e,n,s,v){G(this,"blockLen");G(this,"outputLen");G(this,"canXOF",!1);G(this,"padOffset");G(this,"isLE");G(this,"buffer");G(this,"view");G(this,"finished",!1);G(this,"length",0);G(this,"pos",0);G(this,"destroyed",!1);this.blockLen=e,this.outputLen=n,this.padOffset=s,this.isLE=v,this.buffer=new Uint8Array(e),this.view=Pr(this.buffer)}update(e){wn(this),gn(e);let{view:n,buffer:s,blockLen:v}=this,c=e.length;for(let d=0;d<c;){let h=Math.min(v-this.pos,c-d);if(h===v){let r=Pr(e);for(;v<=c-d;d+=v)this.process(r,d);continue}s.set(e.subarray(d,d+h),this.pos),this.pos+=h,d+=h,this.pos===v&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){wn(this),Vo(e,this),this.finished=!0;let{buffer:n,view:s,blockLen:v,isLE:c}=this,{pos:d}=this;n[d++]=128,ze(this.buffer.subarray(d)),this.padOffset>v-d&&(this.process(s,0),d=0);for(let a=d;a<v;a++)n[a]=0;s.setBigUint64(v-8,BigInt(this.length*8),c),this.process(s,0);let h=Pr(e),r=this.outputLen;if(r%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let i=r/4,o=this.get();if(i>o.length)throw new Error("_sha2: outputLen bigger than state");for(let a=0;a<i;a++)h.setUint32(4*a,o[a],c)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let s=e.slice(0,n);return this.destroy(),s}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:s,length:v,finished:c,destroyed:d,pos:h}=this;return e.destroyed=d,e.finished=c,e.length=v,e.pos=h,v%n&&e.buffer.set(s),e}clone(){return this._cloneInto()}},ge=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),we=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),It=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Ot=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])});function Ti(t,e=!1){return e?{h:Number(t&Mr),l:Number(t>>Zo&Mr)}:{h:Number(t>>Zo&Mr)|0,l:Number(t&Mr)|0}}function Uo(t,e=!1){let n=t.length,s=new Uint32Array(n),v=new Uint32Array(n);for(let c=0;c<n;c++){let{h:d,l:h}=Ti(t[c],e);[s[c],v[c]]=[d,h]}return[s,v]}function _e(t,e,n,s){let v=(e>>>0)+(s>>>0);return{h:t+n+(v/2**32|0)|0,l:v|0}}var Mr,Zo,yn,Sn,We,qe,lr,cr,Go,Ko,$o,jo,Qo,Jo,Do=tr(()=>{Mr=BigInt(4294967295),Zo=BigInt(32);yn=(t,e,n)=>t>>>n,Sn=(t,e,n)=>t<<32-n|e>>>n,We=(t,e,n)=>t>>>n|e<<32-n,qe=(t,e,n)=>t<<32-n|e>>>n,lr=(t,e,n)=>t<<64-n|e>>>n-32,cr=(t,e,n)=>t>>>n-32|e<<64-n;Go=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),Ko=(t,e,n,s)=>e+n+s+(t/2**32|0)|0,$o=(t,e,n,s)=>(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0),jo=(t,e,n,s,v)=>e+n+s+v+(t/2**32|0)|0,Qo=(t,e,n,s,v)=>(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0)+(v>>>0),Jo=(t,e,n,s,v,c)=>e+n+s+v+c+(t/2**32|0)|0});var es={};Zn(es,{_SHA224:()=>xr,_SHA256:()=>Lr,_SHA384:()=>Rr,_SHA512:()=>Nr,_SHA512_224:()=>Ir,_SHA512_256:()=>Or,sha224:()=>Fi,sha256:()=>Mi,sha384:()=>xi,sha512:()=>Li,sha512_224:()=>Ri,sha512_256:()=>Ni});var Ci,Me,Fr,Lr,xr,ts,Ai,Pi,Fe,Le,Ge,Nr,Rr,Yt,Ht,Ir,Or,Mi,Fi,Li,xi,Ni,Ri,rs=tr(()=>{ko();Do();vn();Ci=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Me=new Uint32Array(64),Fr=class extends ar{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:n,C:s,D:v,E:c,F:d,G:h,H:r}=this;return[e,n,s,v,c,d,h,r]}set(e,n,s,v,c,d,h,r){this.A=e|0,this.B=n|0,this.C=s|0,this.D=v|0,this.E=c|0,this.F=d|0,this.G=h|0,this.H=r|0}process(e,n){for(let a=0;a<16;a++,n+=4)Me[a]=e.getUint32(n,!1);for(let a=16;a<64;a++){let _=Me[a-15],f=Me[a-2],E=se(_,7)^se(_,18)^_>>>3,p=se(f,17)^se(f,19)^f>>>10;Me[a]=p+Me[a-7]+E+Me[a-16]|0}let{A:s,B:v,C:c,D:d,E:h,F:r,G:i,H:o}=this;for(let a=0;a<64;a++){let _=se(h,6)^se(h,11)^se(h,25),f=o+_+Wo(h,r,i)+Ci[a]+Me[a]|0,p=(se(s,2)^se(s,13)^se(s,22))+qo(s,v,c)|0;o=i,i=r,r=h,h=d+f|0,d=c,c=v,v=s,s=f+p|0}s=s+this.A|0,v=v+this.B|0,c=c+this.C|0,d=d+this.D|0,h=h+this.E|0,r=r+this.F|0,i=i+this.G|0,o=o+this.H|0,this.set(s,v,c,d,h,r,i,o)}roundClean(){ze(Me)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),ze(this.buffer)}},Lr=class extends Fr{constructor(){super(32);G(this,"A",ge[0]|0);G(this,"B",ge[1]|0);G(this,"C",ge[2]|0);G(this,"D",ge[3]|0);G(this,"E",ge[4]|0);G(this,"F",ge[5]|0);G(this,"G",ge[6]|0);G(this,"H",ge[7]|0)}},xr=class extends Fr{constructor(){super(28);G(this,"A",we[0]|0);G(this,"B",we[1]|0);G(this,"C",we[2]|0);G(this,"D",we[3]|0);G(this,"E",we[4]|0);G(this,"F",we[5]|0);G(this,"G",we[6]|0);G(this,"H",we[7]|0)}},ts=Uo(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),Ai=ts[0],Pi=ts[1],Fe=new Uint32Array(80),Le=new Uint32Array(80),Ge=class extends ar{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:n,Bh:s,Bl:v,Ch:c,Cl:d,Dh:h,Dl:r,Eh:i,El:o,Fh:a,Fl:_,Gh:f,Gl:E,Hh:p,Hl:F}=this;return[e,n,s,v,c,d,h,r,i,o,a,_,f,E,p,F]}set(e,n,s,v,c,d,h,r,i,o,a,_,f,E,p,F){this.Ah=e|0,this.Al=n|0,this.Bh=s|0,this.Bl=v|0,this.Ch=c|0,this.Cl=d|0,this.Dh=h|0,this.Dl=r|0,this.Eh=i|0,this.El=o|0,this.Fh=a|0,this.Fl=_|0,this.Gh=f|0,this.Gl=E|0,this.Hh=p|0,this.Hl=F|0}process(e,n){for(let A=0;A<16;A++,n+=4)Fe[A]=e.getUint32(n),Le[A]=e.getUint32(n+=4);for(let A=16;A<80;A++){let T=Fe[A-15]|0,P=Le[A-15]|0,H=We(T,P,1)^We(T,P,8)^yn(T,P,7),x=qe(T,P,1)^qe(T,P,8)^Sn(T,P,7),B=Fe[A-2]|0,Y=Le[A-2]|0,z=We(B,Y,19)^lr(B,Y,61)^yn(B,Y,6),K=qe(B,Y,19)^cr(B,Y,61)^Sn(B,Y,6),at=$o(x,K,Le[A-7],Le[A-16]),j=jo(at,H,z,Fe[A-7],Fe[A-16]);Fe[A]=j|0,Le[A]=at|0}let{Ah:s,Al:v,Bh:c,Bl:d,Ch:h,Cl:r,Dh:i,Dl:o,Eh:a,El:_,Fh:f,Fl:E,Gh:p,Gl:F,Hh:u,Hl:O}=this;for(let A=0;A<80;A++){let T=We(a,_,14)^We(a,_,18)^lr(a,_,41),P=qe(a,_,14)^qe(a,_,18)^cr(a,_,41),H=a&f^~a&p,x=_&E^~_&F,B=Qo(O,P,x,Pi[A],Le[A]),Y=Jo(B,u,T,H,Ai[A],Fe[A]),z=B|0,K=We(s,v,28)^lr(s,v,34)^lr(s,v,39),at=qe(s,v,28)^cr(s,v,34)^cr(s,v,39),j=s&c^s&h^c&h,X=v&d^v&r^d&r;u=p|0,O=F|0,p=f|0,F=E|0,f=a|0,E=_|0,{h:a,l:_}=_e(i|0,o|0,Y|0,z|0),i=h|0,o=r|0,h=c|0,r=d|0,c=s|0,d=v|0;let k=Go(z,at,X);s=Ko(k,Y,K,j),v=k|0}({h:s,l:v}=_e(this.Ah|0,this.Al|0,s|0,v|0)),{h:c,l:d}=_e(this.Bh|0,this.Bl|0,c|0,d|0),{h,l:r}=_e(this.Ch|0,this.Cl|0,h|0,r|0),{h:i,l:o}=_e(this.Dh|0,this.Dl|0,i|0,o|0),{h:a,l:_}=_e(this.Eh|0,this.El|0,a|0,_|0),{h:f,l:E}=_e(this.Fh|0,this.Fl|0,f|0,E|0),{h:p,l:F}=_e(this.Gh|0,this.Gl|0,p|0,F|0),{h:u,l:O}=_e(this.Hh|0,this.Hl|0,u|0,O|0),this.set(s,v,c,d,h,r,i,o,a,_,f,E,p,F,u,O)}roundClean(){ze(Fe,Le)}destroy(){this.destroyed=!0,ze(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Nr=class extends Ge{constructor(){super(64);G(this,"Ah",Ot[0]|0);G(this,"Al",Ot[1]|0);G(this,"Bh",Ot[2]|0);G(this,"Bl",Ot[3]|0);G(this,"Ch",Ot[4]|0);G(this,"Cl",Ot[5]|0);G(this,"Dh",Ot[6]|0);G(this,"Dl",Ot[7]|0);G(this,"Eh",Ot[8]|0);G(this,"El",Ot[9]|0);G(this,"Fh",Ot[10]|0);G(this,"Fl",Ot[11]|0);G(this,"Gh",Ot[12]|0);G(this,"Gl",Ot[13]|0);G(this,"Hh",Ot[14]|0);G(this,"Hl",Ot[15]|0)}},Rr=class extends Ge{constructor(){super(48);G(this,"Ah",It[0]|0);G(this,"Al",It[1]|0);G(this,"Bh",It[2]|0);G(this,"Bl",It[3]|0);G(this,"Ch",It[4]|0);G(this,"Cl",It[5]|0);G(this,"Dh",It[6]|0);G(this,"Dl",It[7]|0);G(this,"Eh",It[8]|0);G(this,"El",It[9]|0);G(this,"Fh",It[10]|0);G(this,"Fl",It[11]|0);G(this,"Gh",It[12]|0);G(this,"Gl",It[13]|0);G(this,"Hh",It[14]|0);G(this,"Hl",It[15]|0)}},Yt=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),Ht=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),Ir=class extends Ge{constructor(){super(28);G(this,"Ah",Yt[0]|0);G(this,"Al",Yt[1]|0);G(this,"Bh",Yt[2]|0);G(this,"Bl",Yt[3]|0);G(this,"Ch",Yt[4]|0);G(this,"Cl",Yt[5]|0);G(this,"Dh",Yt[6]|0);G(this,"Dl",Yt[7]|0);G(this,"Eh",Yt[8]|0);G(this,"El",Yt[9]|0);G(this,"Fh",Yt[10]|0);G(this,"Fl",Yt[11]|0);G(this,"Gh",Yt[12]|0);G(this,"Gl",Yt[13]|0);G(this,"Hh",Yt[14]|0);G(this,"Hl",Yt[15]|0)}},Or=class extends Ge{constructor(){super(32);G(this,"Ah",Ht[0]|0);G(this,"Al",Ht[1]|0);G(this,"Bh",Ht[2]|0);G(this,"Bl",Ht[3]|0);G(this,"Ch",Ht[4]|0);G(this,"Cl",Ht[5]|0);G(this,"Dh",Ht[6]|0);G(this,"Dl",Ht[7]|0);G(this,"Eh",Ht[8]|0);G(this,"El",Ht[9]|0);G(this,"Fh",Ht[10]|0);G(this,"Fl",Ht[11]|0);G(this,"Gh",Ht[12]|0);G(this,"Gl",Ht[13]|0);G(this,"Hh",Ht[14]|0);G(this,"Hl",Ht[15]|0)}},Mi=Xe(()=>new Lr,Ve(1)),Fi=Xe(()=>new xr,Ve(4)),Li=Xe(()=>new Nr,Ve(3)),xi=Xe(()=>new Rr,Ve(2)),Ni=Xe(()=>new Or,Ve(6)),Ri=Xe(()=>new Ir,Ve(5))});var vt={FILL_RECT:1,FILL_ROUND_RECT:27,STROKE_RECT:2,LINE:3,DASHED_LINE:4,POLYLINE:5,TEXT:6,CIRCLE:7,TRIANGLE:8,SAVE:9,RESTORE:10,CLIP_RECT:11,ROTATED_TEXT:12,BUBBLE_3D:13,FILL_POLYGON:14,DASHED_POLYLINE:15,GRADIENT_RECT:16,GRADIENT_RECT_H:28,GRADIENT_RECT_H_MULTI:29,LINEAR_POLYLINE:17,SMOOTH_POLYLINE:24,BEGIN_HEATMAP_LAYER:18,END_HEATMAP_LAYER:19,HEATMAP_BITMAP:20,LINE_WITH_EXTEND:21,LABEL_CALLOUT:22,HEATMAP_WORLD:23,DRAW_IMAGE:25,FILL_SMOOTH_BAND:26,END_FRAME:255},Ee=null,Un=null;function Os(t,e){return Ee?(Ee.width!==t||Ee.height!==e)&&(Ee.width=t,Ee.height=e):(Ee=typeof OffscreenCanvas<"u"?new OffscreenCanvas(t,e):Object.assign(document.createElement("canvas"),{width:t,height:e}),Un=Ee.getContext("2d")),Un}var er=new Float64Array(0),Vr=new Float64Array(0),Wr=new Float64Array(0),rr=new Float64Array(0);function Bs(t){return er.length<t&&(er=new Float64Array(t)),er}function Ys(t){return Vr.length<t&&(Vr=new Float64Array(t)),Vr}function Hs(t){return Wr.length<t&&(Wr=new Float64Array(t)),Wr}function zs(t){return rr.length<t&&(rr=new Float64Array(t)),rr}function qr(t,e){if(e<2)return;let n=e-1,s=Bs(n),v=Ys(n),c=Hs(n);for(let h=0;h<n;h++){let r=t[h*2],i=t[h*2+1],o=t[(h+1)*2],a=t[(h+1)*2+1];s[h]=o-r,v[h]=a-i,c[h]=s[h]>0?v[h]/s[h]:0}let d=zs(e);d[0]=c[0],d[e-1]=c[n-1];for(let h=1;h<n;h++){let r=c[h-1],i=c[h];d[h]=r*i<=0?0:(r+i)*.5}for(let h=0;h<n;h++){let r=c[h];if(r===0){d[h]=0,d[h+1]=0;continue}let i=d[h]/r,o=d[h+1]/r,a=i*i+o*o;if(a>9){let _=3/Math.sqrt(a);d[h]=_*i*r,d[h+1]=_*o*r}}}function Gn(t,e,n){let s=n-1,v=er,c=rr;for(let d=0;d<s;d++){let h=e[d*2],r=e[d*2+1],i=e[(d+1)*2],o=e[(d+1)*2+1],a=v[d];if(a<=0){t.lineTo(i,o);continue}let _=a/3;t.bezierCurveTo(h+_,r+c[d]*_,i-_,o-c[d+1]*_,i,o)}}function Xs(t,e,n){let s=n-1,v=er,c=rr;for(let d=s-1;d>=0;d--){let h=e[d*2],r=e[d*2+1],i=e[(d+1)*2],o=e[(d+1)*2+1],a=v[d];if(a<=0){t.lineTo(h,r);continue}let _=a/3;t.bezierCurveTo(i-_,o-c[d+1]*_,h+_,r+c[d]*_,h,r)}}var Vs=["left","center","right"],hr=new Map,Ws=4096;function qs(t,e,n,s){return t<<24|e<<16|n<<8|s}function St(t,e,n,s){let v=qs(t,e,n,s),c=hr.get(v);return c||(c=`rgba(${t},${e},${n},${(s/255).toFixed(3)})`,hr.size>=Ws&&hr.clear(),hr.set(v,c),c)}var kr=new TextDecoder;function pr(t,e){return Math.round(t*e)/e}var Kn=new Map;function Zr(t,e){let n=Kn.get(e);if(n!==void 0)return n;let s=t.font,v=t.textBaseline;t.font=e,t.textBaseline="alphabetic";let c=t.measureText("0"),d=c.actualBoundingBoxAscent||0,h=c.actualBoundingBoxDescent||0;return n=(d-h)/2,(!Number.isFinite(n)||n===0)&&(n=(parseFloat(e)||11)*.35),Kn.set(e,n),t.font=s,t.textBaseline=v,n}function Bt(t,e,n){let s=Math.max(1,Math.round(e*n)),v=Math.round(t*n)/n;return s&1?v+.5/n:v}function Te(t,e,n,s,v){let c=Math.round(t*v),d=Math.round(e*v),h=Math.round((t+n)*v),r=Math.round((e+s)*v);return{x:c/v,y:d/v,w:(h-c)/v,h:(r-d)/v}}function $n(){let t=null,e=null,n=null,s=0;function v(c,d,h){return c<=0||d<=0?null:(t?(t.width!==c||t.height!==d)&&(t.width=c,t.height=d,n=null):(typeof OffscreenCanvas<"u"?t=new OffscreenCanvas(c,d):(t=document.createElement("canvas"),t.width=c,t.height=d),e=t.getContext("2d",{alpha:!0})),e&&s!==h&&(e.setTransform(h,0,0,h,0,0),s=h,n=null),e)}return{ensureSize:v,getCanvas(){return t},getKey(){return n},setKey(c){n=c},invalidate(){n=null}}}function jn(){let t=null,e=null,n=0,s=0;function v(c,d){return c<=0||d<=0?null:(t&&n===c&&s===d||(t?(t.width=c,t.height=d,e.imageSmoothingEnabled=!1):(typeof OffscreenCanvas<"u"?t=new OffscreenCanvas(c,d):(t=document.createElement("canvas"),t.width=c,t.height=d),e=t.getContext("2d",{alpha:!0}),e.imageSmoothingEnabled=!1),n=c,s=d),e)}return{ensureSize:v,getCanvas(){return t},getCols(){return n},getRows(){return s},invalidate(){e&&n>0&&s>0&&e.clearRect(0,0,n,s)}}}function ne(t,e,n,s,v=null,c=null,d=null){let h=e.buffer;if(n+s>h.byteLength)return;let r=new DataView(h,n,s),i=new Uint8Array(h,n,s),o=0,a="",_="",f=-1,E="",p=Math.max(1,Math.abs(t.getTransform?.().a||window.devicePixelRatio||1)),F=t,u=!1,O="";for(;o<s;){let A=i[o];if(o+=1,A===vt.END_FRAME)break;switch(A){case vt.FILL_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4,B!==a&&(t.fillStyle=B,a=B);let Y=Te(T,P,H,x,p);t.fillRect(Y.x,Y.y,Y.w,Y.h);break}case vt.FILL_ROUND_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4,B!==a&&(t.fillStyle=B,a=B);let z=Te(T,P,H,x,p),K=Math.min(Y,z.w*.5,z.h*.5);K<=.5?t.fillRect(z.x,z.y,z.w,z.h):(t.beginPath(),t.moveTo(z.x+K,z.y),t.lineTo(z.x+z.w-K,z.y),t.arcTo(z.x+z.w,z.y,z.x+z.w,z.y+K,K),t.lineTo(z.x+z.w,z.y+z.h-K),t.arcTo(z.x+z.w,z.y+z.h,z.x+z.w-K,z.y+z.h,K),t.lineTo(z.x+K,z.y+z.h),t.arcTo(z.x,z.y+z.h,z.x,z.y+z.h-K,K),t.lineTo(z.x,z.y+K),t.arcTo(z.x,z.y,z.x+K,z.y,K),t.closePath(),t.fill());break}case vt.STROKE_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4,B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y);let z=Bt(T,Y,p),K=Bt(P,Y,p),at=Math.round(H*p)/p,j=Math.round(x*p)/p;t.strokeRect(z,K,at,j);break}case vt.LINE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4,t.beginPath(),B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y),t.setLineDash([]),t.moveTo(Bt(T,Y,p),Bt(P,Y,p)),t.lineTo(Bt(H,Y,p),Bt(x,Y,p)),t.stroke();break}case vt.DASHED_LINE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4;let K=r.getFloat32(o,!0);o+=4,t.beginPath(),B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y),t.setLineDash([z,K]),t.moveTo(Bt(T,Y,p),Bt(P,Y,p)),t.lineTo(Bt(H,Y,p),Bt(x,Y,p)),t.stroke(),t.setLineDash([]);break}case vt.LINEAR_POLYLINE:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let H=r.getFloat32(o,!0);if(o+=4,T>1){t.beginPath(),P!==_&&(t.strokeStyle=P,_=P),H!==f&&(t.lineWidth=H,f=H),t.setLineDash([]),t.lineJoin="miter",t.lineCap="butt",t.miterLimit=10;let x=r.getFloat32(o,!0);o+=4;let B=r.getFloat32(o,!0);o+=4,t.moveTo(x,B);for(let Y=1;Y<T;Y++)t.lineTo(r.getFloat32(o,!0),r.getFloat32(o+4,!0)),o+=8;t.stroke()}else o+=T*8;break}case vt.SMOOTH_POLYLINE:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let H=r.getFloat32(o,!0);if(o+=4,T>1){let x=new Float32Array(T*2);for(let B=0;B<T;B++)x[B*2]=r.getFloat32(o,!0),o+=4,x[B*2+1]=r.getFloat32(o,!0),o+=4;t.beginPath(),P!==_&&(t.strokeStyle=P,_=P),H!==f&&(t.lineWidth=H,f=H),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",T===2?(t.moveTo(x[0],x[1]),t.lineTo(x[2],x[3])):(qr(x,T),t.moveTo(x[0],x[1]),Gn(t,x,T)),t.stroke()}else o+=T*8;break}case vt.POLYLINE:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let H=r.getFloat32(o,!0);if(o+=4,T>0){let x=new Float32Array(T*2);for(let B=0;B<T;B++)x[B*2]=r.getFloat32(o,!0),o+=4,x[B*2+1]=r.getFloat32(o,!0),o+=4;if(t.beginPath(),P!==_&&(t.strokeStyle=P,_=P),H!==f&&(t.lineWidth=H,f=H),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",T===2)t.moveTo(x[0],x[1]),t.lineTo(x[2],x[3]);else{t.moveTo(x[0],x[1]);for(let B=0;B<T-1;B++){let Y=B>0?B-1:0,z=B,K=B+1,at=B<T-2?B+2:T-1,j=x[Y*2],X=x[Y*2+1],k=x[z*2],J=x[z*2+1],it=x[K*2],rt=x[K*2+1],ut=x[at*2],nt=x[at*2+1],ct=k+(it-j)/6,ft=J+(rt-X)/6,mt=it-(ut-k)/6,dt=rt-(nt-J)/6;t.bezierCurveTo(ct,ft,mt,dt,it,rt)}}t.stroke()}break}case vt.TEXT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=i[o];o+=1;let Y=r.getUint16(o,!0);o+=2;let z=kr.decode(new Uint8Array(e.buffer,n+o,Y));o+=Y,H!==a&&(t.fillStyle=H,a=H);let K=`${Math.round(x)}px "IBM Plex Mono",monospace`;K!==E&&(t.font=K,E=K),t.textAlign=Vs[B]||"left",t.textBaseline="alphabetic";let at=P+Zr(t,K);t.fillText(z,pr(T,p),pr(at,p));break}case vt.CIRCLE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4,t.beginPath(),t.arc(T,P,H,0,Math.PI*2),x!==a&&(t.fillStyle=x,a=x),t.fill(),Y>0&&(B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y),t.stroke());break}case vt.TRIANGLE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=r.getFloat32(o,!0);o+=4;let Y=r.getFloat32(o,!0);o+=4;let z=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4,t.beginPath(),t.moveTo(T,P),t.lineTo(H,x),t.lineTo(B,Y),t.closePath(),z!==a&&(t.fillStyle=z,a=z),t.fill();break}case vt.SAVE:{t.save();break}case vt.RESTORE:{t.restore(),a="",_="",f=-1,E="";break}case vt.CLIP_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=Te(T,P,H,x,p);t.beginPath(),t.rect(B.x,B.y,B.w,B.h),t.clip();break}case vt.ROTATED_TEXT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=r.getFloat32(o,!0);o+=4;let Y=r.getUint16(o,!0);o+=2;let z=kr.decode(i.subarray(o,o+Y));o+=Y;let K=`${x}px sans-serif`;K!==E&&(t.font=K,E=K),H!==a&&(t.fillStyle=H,a=H),t.textAlign="center",t.textBaseline="alphabetic";let at=Zr(t,K);t.save(),t.translate(T,P),t.rotate(B),t.fillText(z,0,at),t.restore();break}case vt.BUBBLE_3D:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=i[o],B=i[o+1],Y=i[o+2],z=i[o+3];o+=4;let K=i[o],at=i[o+1],j=i[o+2],X=i[o+3];o+=4;let k=i[o],J=i[o+1],it=i[o+2],rt=i[o+3];o+=4;let ut=r.getFloat32(o,!0);o+=4;let nt=H;if(nt<10){let ct=`rgba(${x},${B},${Y},${(z/255).toFixed(3)})`;t.beginPath(),t.arc(T,P,nt,0,Math.PI*2),t.fillStyle=ct,t.fill(),a=""}else if(nt<18){let ct=T-nt*.25,ft=P-nt*.25,mt=t.createRadialGradient(ct,ft,nt*.08,T,P,nt);mt.addColorStop(0,`rgba(${K},${at},${j},${(X/255).toFixed(3)})`),mt.addColorStop(1,`rgba(${x},${B},${Y},${(z/255).toFixed(3)})`),t.beginPath(),t.arc(T,P,nt,0,Math.PI*2),t.fillStyle=mt,t.fill(),a=""}else{let ct=T-nt*.25,ft=P-nt*.25,mt=t.createRadialGradient(T,P,nt*.85,T,P,nt*1.2);mt.addColorStop(0,`rgba(${k},${J},${it},${(rt/255*.5).toFixed(3)})`),mt.addColorStop(1,`rgba(${k},${J},${it},0)`),t.beginPath(),t.arc(T,P,nt*1.2,0,Math.PI*2),t.fillStyle=mt,t.fill();let dt=t.createRadialGradient(ct,ft,nt*.08,T,P,nt);dt.addColorStop(0,`rgba(${K},${at},${j},${(X/255).toFixed(3)})`),dt.addColorStop(1,`rgba(${x},${B},${Y},${(z/255).toFixed(3)})`),t.beginPath(),t.arc(T,P,nt,0,Math.PI*2),t.fillStyle=dt,t.fill();let At=nt*.2,Ft=t.createRadialGradient(ct,ft,0,ct,ft,At);Ft.addColorStop(0,"rgba(255,255,255,0.22)"),Ft.addColorStop(1,"rgba(255,255,255,0)"),t.beginPath(),t.arc(ct,ft,At,0,Math.PI*2),t.fillStyle=Ft,t.fill(),a=""}break}case vt.FILL_POLYGON:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);if(o+=4,T>2){t.beginPath();let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4,t.moveTo(H,x);for(let B=1;B<T;B++)t.lineTo(r.getFloat32(o,!0),r.getFloat32(o+4,!0)),o+=8;t.closePath(),P!==a&&(t.fillStyle=P,a=P),t.fill()}else o+=T*8;break}case vt.FILL_SMOOTH_BAND:{let T=r.getUint16(o,!0);o+=2;let P=r.getUint16(o,!0);o+=2;let H=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let x=new Float32Array(T*2);for(let Y=0;Y<T;Y++)x[Y*2]=r.getFloat32(o,!0),o+=4,x[Y*2+1]=r.getFloat32(o,!0),o+=4;let B=new Float32Array(P*2);for(let Y=0;Y<P;Y++)B[Y*2]=r.getFloat32(o,!0),o+=4,B[Y*2+1]=r.getFloat32(o,!0),o+=4;T>=2&&P>=2&&(t.beginPath(),H!==a&&(t.fillStyle=H,a=H),T===2?(t.moveTo(x[0],x[1]),t.lineTo(x[2],x[3])):(qr(x,T),t.moveTo(x[0],x[1]),Gn(t,x,T)),t.lineTo(B[(P-1)*2],B[(P-1)*2+1]),P===2?t.lineTo(B[0],B[1]):(qr(B,P),Xs(t,B,P)),t.closePath(),t.fill());break}case vt.DASHED_POLYLINE:{let T=r.getUint16(o,!0);o+=2;let P=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=r.getFloat32(o,!0);if(o+=4,T>1){t.beginPath(),P!==_&&(t.strokeStyle=P,_=P),H!==f&&(t.lineWidth=H,f=H),t.setLineDash([x,B]),t.lineJoin="round";let Y=r.getFloat32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4,t.moveTo(Y,z);for(let K=1;K<T;K++)t.lineTo(r.getFloat32(o,!0),r.getFloat32(o+4,!0)),o+=8;t.stroke(),t.setLineDash([])}else o+=T*8;break}case vt.GRADIENT_RECT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let z=Te(T,P,H,x,p),K=t.createLinearGradient(z.x,z.y,z.x,z.y+z.h);K.addColorStop(0,B),K.addColorStop(1,Y),t.fillStyle=K,a="",t.fillRect(z.x,z.y,z.w,z.h);break}case vt.GRADIENT_RECT_H:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let z=Te(T,P,H,x,p),K=t.createLinearGradient(z.x,z.y,z.x+z.w,z.y);K.addColorStop(0,B),K.addColorStop(1,Y),t.fillStyle=K,a="",t.fillRect(z.x,z.y,z.w,z.h);break}case vt.GRADIENT_RECT_H_MULTI:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=i[o];o+=1;let Y=Te(T,P,H,x,p),z=t.createLinearGradient(Y.x,Y.y,Y.x+Y.w,Y.y);for(let K=0;K<B;K++){let at=r.getFloat32(o,!0);o+=4;let j=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4,z.addColorStop(at<0?0:at>1?1:at,j)}t.fillStyle=z,a="",t.fillRect(Y.x,Y.y,Y.w,Y.h);break}case vt.BEGIN_HEATMAP_LAYER:{let T=o-1,P=r.getUint32(o,!0);o+=4;let H=r.getUint32(o,!0);o+=4;let x=r.getUint32(o,!0);if(o+=4,!v||x===0)break;let B=F.canvas.width,Y=F.canvas.height,z=`${P}|${H}|${B}|${Y}|${p}`;if(v.getKey()===z&&v.getCanvas()){let K=B/p,at=Y/p;F.drawImage(v.getCanvas(),0,0,K,at),o=T+x}else{let K=v.ensureSize(B,Y,p);if(!K)break;K.save(),K.setTransform(1,0,0,1,0,0),K.clearRect(0,0,B,Y),K.restore(),t=K,a="",_="",f=-1,E="",u=!0,O=z}break}case vt.END_HEATMAP_LAYER:{if(!u)break;let T=F.canvas.width/p,P=F.canvas.height/p;F.drawImage(v.getCanvas(),0,0,T,P),v.setKey(O),t=F,a="",_="",f=-1,E="",u=!1,O="";break}case vt.HEATMAP_BITMAP:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getUint32(o,!0);o+=4;let x=r.getUint32(o,!0);o+=4;let B=H*x*4;if(o+B>i.byteLength){o=i.byteLength;break}let Y=new Uint8ClampedArray(i.buffer,i.byteOffset+o,B);o+=B;let z=new ImageData(Y,H,x),K=Os(H,x);if(!K)break;K.putImageData(z,0,0),t.drawImage(Ee,T,P,H,x);break}case vt.HEATMAP_WORLD:{let T=r.getUint32(o,!0);o+=4;let P=r.getUint32(o,!0);o+=4;let H=r.getUint32(o,!0);o+=4;let x=r.getUint32(o,!0);o+=4;let B=r.getUint32(o,!0);o+=4;let Y=r.getUint32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4;let K=r.getFloat32(o,!0);o+=4;let at=r.getFloat32(o,!0);o+=4;let j=r.getFloat32(o,!0);o+=4;let X=r.getFloat32(o,!0);o+=4;let k=r.getFloat32(o,!0);o+=4;let J=r.getFloat32(o,!0);o+=4;let it=r.getFloat32(o,!0);o+=4;let rt=i[o];o+=1;let ut=(rt&1)!==0,nt=B*Y*4;if(o+nt>i.byteLength){o=i.byteLength;break}if(!c||T===0||P===0){o+=nt;break}let ct=c.ensureSize(T,P);if(!ct){o+=nt;break}if(ut&&ct.clearRect(0,0,T,P),nt>0){let ft=new Uint8ClampedArray(i.buffer,i.byteOffset+o,nt),mt=new ImageData(ft,B,Y);ct.putImageData(mt,H,x)}if(o+=nt,at>0&&j>0&&J>0&&it>0){let ft=Te(X,k,J,it,p);if(ft.w>0&&ft.h>0){let mt=t.imageSmoothingEnabled;t.imageSmoothingEnabled=!1,t.drawImage(c.getCanvas(),z,K,at,j,ft.x,ft.y,ft.w,ft.h),t.imageSmoothingEnabled=mt}}break}case vt.LINE_WITH_EXTEND:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4;let K=r.getFloat32(o,!0);o+=4;let at=i[o];o+=1,B!==_&&(t.strokeStyle=B,_=B),Y!==f&&(t.lineWidth=Y,f=Y),t.setLineDash(z>0?[z,K]:[]);let j=1e5,X=T,k=P,J=H,it=x,rt=H-T,ut=x-P,nt=Math.hypot(rt,ut);if(nt>0&&at!==0){let ct=rt/nt,ft=ut/nt;at&1&&(X=T-ct*j,k=P-ft*j),at&2&&(J=H+ct*j,it=x+ft*j),at&4&&ft<0&&(X=T-ct*j,k=P-ft*j),at&8&&ft>0&&(J=H+ct*j,it=x+ft*j)}t.beginPath(),t.moveTo(Bt(X,Y,p),Bt(k,Y,p)),t.lineTo(Bt(J,Y,p),Bt(it,Y,p)),t.stroke(),z>0&&t.setLineDash([]);break}case vt.LABEL_CALLOUT:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let x=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let B=St(i[o],i[o+1],i[o+2],i[o+3]);o+=4;let Y=r.getFloat32(o,!0);o+=4;let z=r.getFloat32(o,!0);o+=4;let K=i[o];o+=1;let at=i[o];o+=1;let j=r.getUint16(o,!0);o+=2;let X=kr.decode(i.subarray(o,o+j));o+=j;let k=`${Math.round(Y)}px "IBM Plex Mono",monospace`;k!==E&&(t.font=k,E=k);let J=4,it=6,rt=t.measureText(X).width,ut=Math.round(Y)+J*2,nt=Math.ceil(rt)+J*2,ct,ft;switch(at){case 1:ft=P-it-ut,ct=T-nt/2;break;case 2:ft=P+it,ct=T-nt/2;break;case 3:ft=P-ut/2,ct=T+it;break;case 4:ft=P-ut/2,ct=T-it-nt;break;default:ft=P-ut/2,K===1?ct=T-nt/2:K===2?ct=T-nt:ct=T;break}let mt=Te(ct,ft,nt,ut,p);if(H!==a&&(t.fillStyle=H,a=H),t.fillRect(mt.x,mt.y,mt.w,mt.h),z>0){x!==_&&(t.strokeStyle=x,_=x),z!==f&&(t.lineWidth=z,f=z),t.setLineDash([]);let At=Bt(ct,z,p),Ft=Bt(ft,z,p),zt=Math.round(nt*p)/p,xt=Math.round(ut*p)/p;t.strokeRect(At,Ft,zt,xt)}if(at>=1&&at<=4){switch(H!==a&&(t.fillStyle=H,a=H),t.beginPath(),at){case 1:t.moveTo(T-it/2,ft+ut),t.lineTo(T+it/2,ft+ut),t.lineTo(T,P);break;case 2:t.moveTo(T-it/2,ft),t.lineTo(T+it/2,ft),t.lineTo(T,P);break;case 3:t.moveTo(ct,P-it/2),t.lineTo(ct,P+it/2),t.lineTo(T,P);break;case 4:t.moveTo(ct+nt,P-it/2),t.lineTo(ct+nt,P+it/2),t.lineTo(T,P);break}t.closePath(),t.fill()}B!==a&&(t.fillStyle=B,a=B),t.textAlign="left",t.textBaseline="alphabetic";let dt=Zr(t,k);t.fillText(X,pr(ct+J,p),pr(ft+ut/2+dt,p));break}case vt.DRAW_IMAGE:{let T=r.getFloat32(o,!0);o+=4;let P=r.getFloat32(o,!0);o+=4;let H=r.getFloat32(o,!0);o+=4;let x=r.getFloat32(o,!0);o+=4;let B=r.getUint32(o,!0);if(o+=4,!d||B===0||H<=0||x<=0)break;let Y=d.get(B);if(!Y)break;try{t.drawImage(Y,T,P,H,x)}catch(z){d.delete(B),console.warn("[canvasRenderer] drawImage failed for id="+B,z?.message||z)}break}default:return}}if(u&&v){let A=F.canvas.width/p,T=F.canvas.height/p;F.drawImage(v.getCanvas(),0,0,A,T),v.invalidate()}}var jt={trendline:{type:"2point",previewKind:0,addFn:"add_trendline"},arrow:{type:"2point",previewKind:4,addFn:"add_arrow"},arrowmarker:{type:"2point",previewKind:14,addFn:"add_arrow_marker"},measure:{type:"2point",previewKind:2,addFn:"add_price_range"},pricerange:{type:"2point",previewKind:23,addFn:"add_price_range_measure"},dayrange:{type:"2point",previewKind:24,addFn:"add_day_range_measure"},fib:{type:"2point",previewKind:3,addFn:"add_fib_retracement"},long:{type:"2point",previewKind:5,addFn:"add_long_position"},short:{type:"2point",previewKind:5,addFn:"add_short_position"},hline:{type:"1point_xp",previewKind:1,addFn:"add_horizontal_line"},verticalline:{type:"1point_x",previewKind:15,addFn:"add_vertical_line"},vwap:{type:"1point_x",previewKind:6,addFn:"add_anchored_vwap"},pricelabel:{type:"1point_xy",previewKind:7,addFn:"add_price_label"},circle:{type:"2point",previewKind:8,addFn:"add_circle"},arrowup:{type:"1point_xy",previewKind:9,addFn:"add_arrow_marker_up"},arrowdown:{type:"1point_xy",previewKind:10,addFn:"add_arrow_marker_down"},textnote:{type:"1point_xy",previewKind:11,addFn:"add_text_note"},channel:{type:"3point",previewKind:0,addFn:"add_parallel_channel"},fibext:{type:"3point",previewKind:0,addFn:"add_fib_extension",previewFn:"fib_ext"},brush:{type:"freehand"},path:{type:"npoint"},elliott:{type:"elliott_manual"},elliottauto:{type:"1point_xy",previewKind:12,addFn:"add_elliott_impulse",previewFn:"elliott"},elliottautorange:{type:"drag2point",previewKind:2,addFn:"add_elliott_auto_range"},elliottzigzag:{type:"1point_xy",previewKind:13,addFn:"add_elliott_zigzag",previewFn:"zigzag"},elliottzigzagrange:{type:"drag2point",previewKind:2,addFn:"add_elliott_zigzag_range"}};function nr(t){return jt[t]?.type==="2point"}function or(t){return jt[t]?.type==="3point"}function Ze(t){let e=jt[t]?.type;return e==="1point"||e==="1point_x"||e==="1point_xy"||e==="1point_xp"}function br(t){return jt[t]?.type==="freehand"}function de(t){return jt[t]?.type==="npoint"}function he(t){return jt[t]?.type==="elliott_manual"}function sr(t){return jt[t]?.type==="drag2point"}var Qn={r:.04,g:.49,b:1,lineWidth:2,dashed:!1,fontSize:12};function ie(t,e,n,s,v,c){c=c||Qn;let d=jt[e];if(!d)return 0;let h=0;if(d.type==="3point"?h=t[d.addFn](n.x1,n.y1,n.x2,n.y2,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="2point"||d.type==="drag2point"?h=t[d.addFn](n.x1,n.y1,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_x"?h=t[d.addFn](s,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_xp"?h=t[d.addFn](s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_xy"?h=t[d.addFn](s,v,c.r,c.g,c.b,c.fontSize||12,n.pane):h=t[d.addFn](v,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane),h&&c.fontSize&&typeof t.set_drawing_font_size=="function"&&(d.type==="2point"||d.type==="3point"||d.type==="drag2point"))try{t.set_drawing_font_size(h,c.fontSize)}catch{}if(h&&c.hideLabel===!0&&typeof t.set_drawing_hide_label=="function")try{t.set_drawing_hide_label(h,!0)}catch{}return h||0}function Jt(t,e,n,s,v,c,d){c=c||Qn;let h=jt[e];if(h){if(h.previewFn==="elliott"){t.set_elliott_preview(s,v,c.r,c.g,c.b,c.lineWidth,d);return}if(h.previewFn==="zigzag"){t.set_elliott_zigzag_preview(s,v,c.r,c.g,c.b,c.lineWidth,d);return}h.type==="3point"?n.step===1?t.set_drawing_preview(h.previewKind,n.x1,n.y1,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,d):n.step===2&&(h.previewFn==="fib_ext"?t.set_fib_ext_preview(n.x1,n.y1,n.x2,n.y2,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,d):t.set_channel_preview(n.x1,n.y1,n.x2,n.y2,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,d)):h.type==="2point"||h.type==="drag2point"?t.set_drawing_preview(h.previewKind,n.x1,n.y1,s,v,c.r,c.g,c.b,c.lineWidth,c.dashed,d):h.type==="1point_x"?t.set_drawing_preview(h.previewKind,s,0,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d):h.type==="1point_xp"||h.type==="1point_xy"?t.set_drawing_preview(h.previewKind,s,v,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d):t.set_drawing_preview(h.previewKind,0,v,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d)}}function mr(t,e,n,s,v,c){if(s!=null&&v!=null){let i=e-s,o=n-v,a=Math.sqrt(i*i+o*o);if(a>1.5*1.2){let _=Math.min(128,Math.ceil(a/1.5));for(let f=1;f<_;f++){let E=f/_,p=s+i*E,F=v+o*E,{wx:u,wy:O}=Tt(t,p,F,c);t.add_brush_point(u,O)}}}let{wx:h,wy:r}=Tt(t,e,n,c);t.add_brush_point(h,r)}function Tt(t,e,n,s){let v=t.screen_to_world_x(e),c;switch(s){case 1:c=t.screen_to_rsi_y(n);break;case 2:c=t.screen_to_oi_y(n);break;case 3:c=t.screen_to_fr_y(n);break;case 4:c=t.screen_to_cvd_y(n);break;case 5:c=t.screen_to_vpin_y(n);break;case 6:c=t.screen_to_ob_flow_y(n);break;case 7:c=t.screen_to_agg_liq_y(n);break;case 8:c=t.screen_to_custom_pane_y(n);break;default:c=t.screen_to_world_y(n);break}return{wx:v,wy:c}}function Dt(t){return t===4?1:t===6?2:t===8?3:t===10?4:t===12?5:t===19?6:t===22?7:t===25?8:0}function Ie(t){return t===4||t===6||t===8||t===10||t===12||t===19||t===22||t===25}function Vt(t){return t===14||t===15||t===16||t===17||t===18||t===21||t===24||t===27}function oe(t){return t===4||t===14?1:t===6||t===15?2:t===8||t===16?3:t===10||t===17?4:t===12||t===18?5:t===19||t===21?6:t===22||t===24?7:0}function pe(t,e,n,s){Ie(e)?(t.pan(n,0),Math.abs(s)>.01&&e!==4&&t.pan_indicator_y(oe(e),s)):t.pan(n,s)}function Gt(t){return t===0||t===4||t===6||t===8||t===10||t===12||t===22||t===25}function io(t,e,n,s){t.addEventListener("wheel",a=>{if(s.disposed)return;a.preventDefault(),s.cancelMomentum();let _=a.deltaY>0?1.1:.9,f=e.hit_zone(a.offsetX,a.offsetY);f!==255&&(Vt(f)?f!==14&&e.zoom_indicator_y(oe(f),a.offsetY,_):Ie(f)?f===4?e.zoom_x(a.offsetX,_):a.ctrlKey?e.zoom_indicator_y(oe(f),a.offsetY,_):e.zoom_x(a.offsetX,_):a.ctrlKey?e.zoom_y(a.offsetY,_):a.shiftKey||f===2?e.zoom_x(a.offsetX,_):f===3?e.zoom_y(a.offsetY,_):e.zoom(a.offsetX,a.offsetY,_),n.onDirty())},{passive:!1}),t.addEventListener("mousedown",a=>{if(s.disposed||a.button!==0)return;s.cancelMomentum(),c();let _=performance.now();if(_-s.lastClickTime<300){s.lastClickTime=_;return}if(s.lastClickTime=_,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(a.offsetX,a.offsetY)){s.watermarkPending=!0;return}if(s.watermarkPending=!1,typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(a.offsetX,a.offsetY)){s.qtbPending=!0;try{s.qtbWorldY=e.crosshair_world_y()}catch{s.qtbWorldY=0}return}let f=s.drawingMode;if(f){let p=e.hit_zone(a.offsetX,a.offsetY);if(!Gt(p))return;let F=Dt(p),{wx:u,wy:O}=Tt(e,a.offsetX,a.offsetY,F),A=f.style,T=f.tool;if(f.undoSnapshotTaken||(n.onDrawingMutationBegin?.(),f.undoSnapshotTaken=!0),he(T)){if(!f.pathStarted)f.pane=F,e.start_elliott_manual(A.r,A.g,A.b,A.lineWidth,F),e.add_elliott_manual_point(u,O),f.pathStarted=!0,f.step=1;else if(e.add_elliott_manual_point(u,O)){s.finishDrawing(),n.onDirty();return}}else if(de(T))f.pathStarted?e.add_path_point(u,O):(f.pane=F,e.start_path(A.r,A.g,A.b,A.lineWidth,A.dashed,F),e.add_path_point(u,O),f.pathStarted=!0,f.step=1);else if(br(T))f.pane=F,e.start_brush(A.r,A.g,A.b,A.lineWidth,F),e.add_brush_point(u,O),s.isBrushing=!0,s.brushLastSx=a.offsetX,s.brushLastSy=a.offsetY;else if(or(T))if(f.step===0)f.x1=u,f.y1=O,f.pane=F,f.step=1;else if(f.step===1)f.x2=u,f.y2=O,f.step=2,e.clear_drawing_preview();else{let P=jt[T];P&&P.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ie(e,T,f,u,O,A),s.finishDrawing()}else if(nr(T))f.step===0?(f.x1=u,f.y1=O,f.pane=F,f.step=1):(ie(e,T,f,u,O,A),s.finishDrawing());else if(sr(T))f.x1=u,f.y1=O,f.pane=F,f.step=1,f.dragStartSx=a.offsetX,f.dragStartSy=a.offsetY,s.isDrawingDragRange=!0;else{f.pane=F;let P=ie(e,T,f,u,O,A);s.finishDrawing(),T==="textnote"&&P>0&&(e.select_drawing(P),n.onDrawingSelected?.(P),n.onDrawingDblClick?.(P,a.offsetX,a.offsetY,a.clientX,a.clientY))}n.onDirty();return}let E=e.hit_zone(a.offsetX,a.offsetY);if(E!==255){if(E===5){s.isResizingRsi=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_rsi_ratio(),t.style.cursor="ns-resize";return}if(E===7){s.isResizingOi=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_oi_ratio(),t.style.cursor="ns-resize";return}if(E===9){s.isResizingFr=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_fr_ratio(),t.style.cursor="ns-resize";return}if(E===11){s.isResizingCvd=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_cvd_ratio(),t.style.cursor="ns-resize";return}if(E===13){s.isResizingVpin=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_vpin_ratio(),t.style.cursor="ns-resize";return}if(E===20){s.isResizingObFlow=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_obf_ratio(),t.style.cursor="ns-resize";return}if(E===23){s.isResizingAggLiq=!0,s.resizeStartY=a.offsetY,s.resizeStartRatio=e.get_agg_liq_ratio(),t.style.cursor="ns-resize";return}if(Gt(E)){let p=e.get_selected_drawing();if(p>0){let T=e.hit_test_drawing_anchor(a.offsetX,a.offsetY);if(T>=0){n.onDrawingMutationBegin?.(),s.isDraggingAnchor=!0,s.dragAnchorIdx=T,s.dragAnchorPane=Dt(E),t.style.cursor="grabbing";return}if(e.hit_test_drawing(a.offsetX,a.offsetY)===p){n.onDrawingMutationBegin?.(),s.isDraggingDrawing=!0,s.dragDrawingPane=Dt(E);let{wx:H,wy:x}=Tt(e,a.offsetX,a.offsetY,s.dragDrawingPane);s.dragDrawingLastWx=H,s.dragDrawingLastWy=x,t.style.cursor="move";return}}let F=e.hit_test_drawing(a.offsetX,a.offsetY);if(F>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(F),n.onDrawingSelected?.(F),n.onDirty();return}let u=e.hit_test_marker(a.offsetX,a.offsetY);if(u>0){e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(u),n.onMarkerSelected?.(u),n.onDirty();return}let O=e.get_selected_drawing(),A=e.get_selected_marker();O>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),A>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty())}Gt(E)&&(s.liqPinSx=a.offsetX,s.liqPinSy=a.offsetY,s.liqPinTimer&&clearTimeout(s.liqPinTimer),s.liqPinTimer=setTimeout(()=>{s.liqPinTimer=null,n.onLiqAnnotationPin?.(s.liqPinSx,s.liqPinSy)},700)),s.isDragging=!0,s.dragZone=E,s.lastX=a.offsetX,s.lastY=a.offsetY,E===2?t.style.cursor="ew-resize":E===3||Vt(E)?t.style.cursor="ns-resize":t.style.cursor="grabbing"}});let v=null;function c(){v&&(cancelAnimationFrame(v),v=null)}function d(){if(v=null,s.disposed)return;let a=s._pendingHoverX,_=s._pendingHoverY;if(a==null||_==null)return;let f=e.hit_zone(a,_);f===2||f===3||Vt(f)||f===255?e.hide_crosshair():e.set_crosshair(a,_),n.onDirty(),n.onCrosshairMove?.(a,_,f),n.onVrvpHover?.(a,_),h(a,_)}function h(a,_){if(typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(a,_)){t.style.cursor="pointer";return}if(typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(a,_)){t.style.cursor="pointer";return}let f=e.hover_hit_test(a,_),E=f[0],p=f[1],F=f[2],u=f[3],O=f[4],A=s.drawingMode;if(E===255)t.style.cursor="default";else if(E===2)t.style.cursor="ew-resize";else if(E===3||Vt(E))t.style.cursor="ns-resize";else if(E===5||E===7||E===9||E===11||E===13||E===20||E===23)t.style.cursor="ns-resize";else if(!A&&Gt(E)&&p>0&&F>=0){let T="grab";try{e.get_drawing_kind_id?.(p)===18&&(F===0||F===1?T="nwse-resize":F===2||F===3?T="nesw-resize":F===4||F===6?T="ns-resize":(F===5||F===7)&&(T="ew-resize"))}catch{}t.style.cursor=T}else!A&&Gt(E)&&p>0&&u===p?t.style.cursor="move":!A&&Gt(E)&&(u>0||O>0)||!A&&r(a,_)?t.style.cursor="pointer":t.style.cursor="crosshair"}function r(a,_){if(typeof e.indicator_at_point=="function")try{let f=e.indicator_at_point(a,_)||"";if(f)return f}catch{}if(n&&typeof n.customIndicatorAtPoint=="function")try{return n.customIndicatorAtPoint(a,_)||""}catch{return""}return""}function i(a,_){s._pendingHoverX=a,s._pendingHoverY=_,v||(v=requestAnimationFrame(d))}t.addEventListener("mousemove",a=>{if(s.disposed)return;if(s.liqPinTimer){let f=Math.abs(a.offsetX-s.liqPinSx),E=Math.abs(a.offsetY-s.liqPinSy);(f>6||E>6)&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null)}if(s.isResizingRsi){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_rsi_ratio(u),n.onDirty();return}if(s.isResizingOi){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_oi_ratio(u),n.onDirty();return}if(s.isResizingFr){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_fr_ratio(u),n.onDirty();return}if(s.isResizingCvd){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_cvd_ratio(u),n.onDirty();return}if(s.isResizingVpin){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_vpin_ratio(u),n.onDirty();return}if(s.isResizingObFlow){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_obf_ratio(u),n.onDirty();return}if(s.isResizingAggLiq){let E=t.getBoundingClientRect().height-28,F=(s.resizeStartY-a.offsetY)/E,u=Math.max(.05,Math.min(.5,s.resizeStartRatio+F));e.set_agg_liq_ratio(u),n.onDirty();return}if(s.isDraggingAnchor){let{wx:f,wy:E}=Tt(e,a.offsetX,a.offsetY,s.dragAnchorPane);e.update_drawing_anchor(s.dragAnchorIdx,f,E),e.set_crosshair(a.offsetX,a.offsetY),n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,e.hit_zone(a.offsetX,a.offsetY));return}if(s.isDraggingDrawing){let{wx:f,wy:E}=Tt(e,a.offsetX,a.offsetY,s.dragDrawingPane),p=f-s.dragDrawingLastWx,F=E-s.dragDrawingLastWy;e.move_drawing(p,F),s.dragDrawingLastWx=f,s.dragDrawingLastWy=E,e.set_crosshair(a.offsetX,a.offsetY),n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,e.hit_zone(a.offsetX,a.offsetY));return}let _=s.drawingMode;if(s.isBrushing&&_){let f=_.pane||0;mr(e,a.offsetX,a.offsetY,s.brushLastSx,s.brushLastSy,f),s.brushLastSx=a.offsetX,s.brushLastSy=a.offsetY,e.set_crosshair(a.offsetX,a.offsetY),n.onDirty();return}if(_&&he(_.tool)&&_.pathStarted){let f=_.pane||0,{wx:E,wy:p}=Tt(e,a.offsetX,a.offsetY,f);e.set_elliott_manual_cursor(E,p),e.set_crosshair(a.offsetX,a.offsetY);let F=e.hit_zone(a.offsetX,a.offsetY);n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,F);return}if(_&&de(_.tool)&&_.pathStarted){let f=_.pane||0,{wx:E,wy:p}=Tt(e,a.offsetX,a.offsetY,f);e.set_path_cursor(E,p),e.set_crosshair(a.offsetX,a.offsetY);let F=e.hit_zone(a.offsetX,a.offsetY);n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,F);return}if(_&&_.step>0){let f=_.pane||0,{wx:E,wy:p}=Tt(e,a.offsetX,a.offsetY,f);Jt(e,_.tool,_,E,p,_.style,f),e.set_crosshair(a.offsetX,a.offsetY);let F=e.hit_zone(a.offsetX,a.offsetY);n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,F);return}if(_&&Ze(_.tool)){let f=e.hit_zone(a.offsetX,a.offsetY),E=Dt(f),{wx:p,wy:F}=Tt(e,a.offsetX,a.offsetY,E);Jt(e,_.tool,_,p,F,_.style,E),e.set_crosshair(a.offsetX,a.offsetY),n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,f);return}if(s.isDragging){let f=a.offsetX-s.lastX,E=a.offsetY-s.lastY;s.lastX=a.offsetX,s.lastY=a.offsetY,(f!==0||E!==0)&&(s.isPanning=!0),s.dragZone===2?e.pan_x(f):s.dragZone===3?e.pan_y(E):s.dragZone===14||(Vt(s.dragZone)?e.pan_indicator_y(oe(s.dragZone),E):pe(e,s.dragZone,f,E)),e.set_crosshair(a.offsetX,a.offsetY),n.onDirty(),n.onCrosshairMove?.(a.offsetX,a.offsetY,s.dragZone),n.onVrvpHover?.(a.offsetX,a.offsetY);return}i(a.offsetX,a.offsetY)}),t.addEventListener("mouseup",a=>{if(!s.disposed){if(s.watermarkPending){if(s.watermarkPending=!1,a&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(a.offsetX,a.offsetY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(s.qtbPending){if(s.qtbPending=!1,a&&typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(a.offsetX,a.offsetY)){let f=Number(s.qtbWorldY)||0;f>0&&n.onQuickTradeBtnClick?.(f,a.offsetX,a.offsetY)}s.qtbWorldY=0;return}if(s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isBrushing&&(s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,e.finish_brush(),s.finishDrawing(),n.onDirty()),s.isDrawingDragRange){s.isDrawingDragRange=!1;let _=s.drawingMode;if(_&&_.step===1){let f=a.offsetX-(_.dragStartSx||0),E=a.offsetY-(_.dragStartSy||0);if(f*f+E*E>=16){let F=e.hit_zone(a.offsetX,a.offsetY),u=Gt(F)?Dt(F):_.pane||0,{wx:O,wy:A}=Tt(e,a.offsetX,a.offsetY,u);ie(e,_.tool,_,O,A,_.style),s.finishDrawing(),n.onDirty()}else e.clear_drawing_preview(),_.step=0,n.onDirty()}}s.isDragging=!1,s.isPanning=!1,s.isResizingRsi=!1,s.isResizingOi=!1,s.isResizingFr=!1,s.isResizingCvd=!1,s.isResizingVpin=!1,s.isResizingObFlow=!1,s.isResizingAggLiq=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.dragAnchorIdx=-1,t.style.cursor="crosshair"}});function o(){if(!s.disposed&&!s._leaveHandled){if(s._leaveHandled=!0,requestAnimationFrame(()=>{s._leaveHandled=!1}),c(),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isBrushing&&(s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,e.finish_brush(),s.finishDrawing()),s.isDrawingDragRange){s.isDrawingDragRange=!1;let a=s.drawingMode;a&&a.step===1&&(e.clear_drawing_preview(),a.step=0)}s.isDragging=!1,s.isPanning=!1,s.isResizingRsi=!1,s.isResizingOi=!1,s.isResizingFr=!1,s.isResizingCvd=!1,s.isResizingVpin=!1,s.isResizingObFlow=!1,s.isResizingAggLiq=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.dragAnchorIdx=-1,s.qtbPending=!1,s.qtbWorldY=0,c(),s._pendingHoverX=null,s._pendingHoverY=null,e.hide_crosshair(),t.style.cursor="crosshair",n.onDirty(),n.onCrosshairHide?.(),n.onVrvpHover?.(null,null)}}t.addEventListener("pointerleave",o),t.addEventListener("mouseleave",o),t.addEventListener("dblclick",a=>{if(s.disposed)return;a.preventDefault(),a.stopPropagation();let _=s.drawingMode;if(_&&he(_.tool)&&_.pathStarted){e.finish_elliott_manual(),s.finishDrawing(),n.onDirty();return}if(_&&de(_.tool)&&_.pathStarted){e.finish_path(),s.finishDrawing(),n.onDirty();return}if(_)return;let f=e.hit_zone(a.offsetX,a.offsetY),E=e.hit_test_drawing(a.offsetX,a.offsetY);if(E>0){e.select_drawing(E),n.onDirty(),n.onDrawingDblClick?.(E,a.offsetX,a.offsetY,a.clientX,a.clientY);return}if(Vt(f)){e.reset_indicator_y_auto(oe(f)),n.onDirty();return}let p=r(a.offsetX,a.offsetY);if(p){n.onIndicatorDblClick?.(p,a.offsetX,a.offsetY,a.clientX,a.clientY);return}if(Ie(f)){e.reset_indicator_y_auto(oe(f)),n.onDirty();return}(f===0||f===1)&&n.onChartDblClick?.(a.offsetX,a.offsetY,a.clientX,a.clientY)}),t.addEventListener("contextmenu",a=>{if(s.disposed)return;let _=s.drawingMode;if(_&&he(_.tool)&&_.pathStarted){a.preventDefault(),a.stopPropagation(),e.finish_elliott_manual(),s.finishDrawing(),n.onDirty();return}if(_&&de(_.tool)&&_.pathStarted){a.preventDefault(),a.stopPropagation(),e.finish_path(),s.finishDrawing(),n.onDirty();return}})}var gr=25;function ao(t,e,n,s){let v=null,c=()=>v||(v=t.getBoundingClientRect()),d=()=>{v=null};window.addEventListener("resize",d,{passive:!0}),typeof window.visualViewport<"u"&&window.visualViewport&&window.visualViewport.addEventListener("resize",d,{passive:!0}),t.addEventListener("touchstart",h=>{if(!s.disposed){if(h.preventDefault(),s.cancelMomentum(),d(),h.touches.length===2){clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isCrosshairMode=!1,s.pinchActive=!0,s.lastTapTime=0;let r=c(),i=h.touches[1].clientX-h.touches[0].clientX,o=h.touches[1].clientY-h.touches[0].clientY;if(s.lastTouchDist=Math.sqrt(i*i+o*o),s.lastX=(h.touches[0].clientX+h.touches[1].clientX)/2-r.left,s.lastY=(h.touches[0].clientY+h.touches[1].clientY)/2-r.top,s.dragZone=e.hit_zone(s.lastX,s.lastY),s.pinchAnchorY=s.lastY,s.dragZone===255){s.pinchActive=!1,s.lastTouchDist=0;return}}else if(h.touches.length===1){let r=c(),i=h.touches[0].clientX-r.left,o=h.touches[0].clientY-r.top;if(s.touchStartX=i,s.touchStartY=o,s.touchMoved=!1,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(i,o)){s.watermarkTapPending=!0,s.watermarkTapX=i,s.watermarkTapY=o;return}s.watermarkTapPending=!1;let a=s.drawingMode;if(a){let F=e.hit_zone(i,o);if(Gt(F)){let u=Dt(F),{wx:O,wy:A}=Tt(e,i,o,u),T=a.tool;if(he(T)){if(!a.pathStarted)a.pane=u,e.start_elliott_manual(a.style.r,a.style.g,a.style.b,a.style.lineWidth,u),e.add_elliott_manual_point(O,A),a.pathStarted=!0,a.step=1;else if(e.add_elliott_manual_point(O,A)){s.finishDrawing(),n.onDirty();return}}else de(T)?a.pathStarted?e.add_path_point(O,A):(a.pane=u,e.start_path(a.style.r,a.style.g,a.style.b,a.style.lineWidth,a.style.dashed,u),e.add_path_point(O,A),a.pathStarted=!0,a.step=1):br(T)?(a.pane=u,e.start_brush(a.style.r,a.style.g,a.style.b,a.style.lineWidth,u),e.add_brush_point(O,A),s.isBrushing=!0,s.brushLastSx=i,s.brushLastSy=o):or(T)?a.step===0?(a.x1=O,a.y1=A,a.pane=u,a.step=1,a._stepAtTouchStart=0,Jt(e,T,a,O,A,a.style,u)):a.step===1?(a._stepAtTouchStart=1,Jt(e,T,a,O,A,a.style,a.pane)):(a._stepAtTouchStart=2,Jt(e,T,a,O,A,a.style,a.pane)):nr(T)||sr(T)?a.step===0?(a.x1=O,a.y1=A,a.pane=u,a.step=1,a._stepAtTouchStart=0,Jt(e,T,a,O,A,a.style,u)):(a._stepAtTouchStart=1,Jt(e,T,a,O,A,a.style,a.pane)):Ze(T)?(a.pane=u,Jt(e,T,a,O,A,a.style,u)):(a.pane=u,ie(e,T,a,O,A,a.style),s.finishDrawing());e.set_crosshair(i,o),n.onDirty(),n.onCrosshairMove?.(i,o,F)}return}let _=e.hover_hit_test(i,o),f=_[0],E=_[1],p=_[2];if(f===255)return;if(Gt(f)&&!s.drawingMode&&E>0){if(p>=0){s.isDraggingAnchor=!0,s.dragAnchorIdx=p,s.dragAnchorPane=Dt(f);return}if(_[3]===E){s.isDraggingDrawing=!0,s.dragDrawingPane=Dt(f);let{wx:u,wy:O}=Tt(e,i,o,s.dragDrawingPane);s.dragDrawingLastWx=u,s.dragDrawingLastWy=O;return}}s.isDragging=!0,s.isCrosshairMode=!1,s.lastX=i,s.lastY=o,s.dragZone=f,clearTimeout(s.longPressTimer),s.longPressTimer=setTimeout(()=>{s.isDragging&&!s.touchMoved&&(s.isCrosshairMode=!0,e.set_crosshair(i,o),n.onDirty(),n.onCrosshairMove?.(i,o,s.dragZone),n.onVrvpHover?.(i,o))},300),Gt(s.dragZone)&&(s.liqPinSx=i,s.liqPinSy=o,s.liqPinTimer&&clearTimeout(s.liqPinTimer),s.liqPinTimer=setTimeout(()=>{s.liqPinTimer=null,s.touchMoved||n.onLiqAnnotationPin?.(s.liqPinSx,s.liqPinSy)},700))}}},{passive:!1}),t.addEventListener("touchmove",h=>{if(s.disposed)return;h.preventDefault();let r=c();if(s.isDraggingAnchor&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,{wx:_,wy:f}=Tt(e,o,a,s.dragAnchorPane);e.update_drawing_anchor(s.dragAnchorIdx,_,f),e.set_crosshair(o,a),n.onDirty();return}if(s.isDraggingDrawing&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top;s.touchMoved=!0;let{wx:_,wy:f}=Tt(e,o,a,s.dragDrawingPane),E=_-s.dragDrawingLastWx,p=f-s.dragDrawingLastWy;e.move_drawing(E,p),s.dragDrawingLastWx=_,s.dragDrawingLastWy=f,e.set_crosshair(o,a),n.onDirty();return}let i=s.drawingMode;if(s.isBrushing&&i&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=i.pane||0;mr(e,o,a,s.brushLastSx,s.brushLastSy,_),s.brushLastSx=o,s.brushLastSy=a,e.set_crosshair(o,a),n.onDirty(),s.touchMoved=!0;return}if(i&&he(i.tool)&&i.pathStarted&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=i.pane||0,{wx:f,wy:E}=Tt(e,o,a,_);e.set_elliott_manual_cursor(f,E),e.set_crosshair(o,a),n.onDirty(),s.touchMoved=!0;return}if(i&&de(i.tool)&&i.pathStarted&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=i.pane||0,{wx:f,wy:E}=Tt(e,o,a,_);e.set_path_cursor(f,E),e.set_crosshair(o,a),n.onDirty(),s.touchMoved=!0;return}if(i&&i.step>0&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top;!s.touchMoved&&(Math.abs(o-s.touchStartX)>gr||Math.abs(a-s.touchStartY)>gr)&&(s.touchMoved=!0);let _=i.pane||0,{wx:f,wy:E}=Tt(e,o,a,_);Jt(e,i.tool,i,f,E,i.style,_),e.set_crosshair(o,a);let p=e.hit_zone(o,a);n.onDirty(),n.onCrosshairMove?.(o,a,p);return}if(i&&Ze(i.tool)&&h.touches.length===1){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=e.hit_zone(o,a),f=Dt(_),{wx:E,wy:p}=Tt(e,o,a,f);Jt(e,i.tool,i,E,p,i.style,f),e.set_crosshair(o,a),n.onDirty(),n.onCrosshairMove?.(o,a,_);return}if(h.touches.length===2){if(s.dragZone===255)return;s.velSamples=[],s.pinchActive=!0;let o=h.touches[1].clientX-h.touches[0].clientX,a=h.touches[1].clientY-h.touches[0].clientY,_=Math.sqrt(o*o+a*a),f=s.lastTouchDist/_,E=(h.touches[0].clientX+h.touches[1].clientX)/2-r.left,p=(h.touches[0].clientY+h.touches[1].clientY)/2-r.top,F=s.pinchAnchorY??p;s.dragZone===3?e.zoom_y(F,f):Vt(s.dragZone)&&s.dragZone!==14?e.zoom_indicator_y(oe(s.dragZone),F,f):s.dragZone===14?(e.zoom_x(E,f),pe(e,4,E-s.lastX,p-s.lastY)):s.dragZone===2?e.zoom_x(E,f):Ie(s.dragZone)?(e.zoom_x(E,f),pe(e,s.dragZone,E-s.lastX,p-s.lastY)):(e.zoom_x(E,f),pe(e,s.dragZone,E-s.lastX,p-s.lastY)),s.lastTouchDist=_,s.lastX=E,s.lastY=p,n.onDirty()}else if(h.touches.length===1&&s.isDragging){let o=h.touches[0].clientX-r.left,a=h.touches[0].clientY-r.top,_=o-s.lastX,f=a-s.lastY;if(!s.touchMoved&&(Math.abs(o-s.touchStartX)>gr||Math.abs(a-s.touchStartY)>gr)&&(s.touchMoved=!0,s.isCrosshairMode||clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null)),s.isCrosshairMode)e.set_crosshair(o,a),n.onDirty(),n.onCrosshairMove?.(o,a,s.dragZone),n.onVrvpHover?.(o,a);else if(s.touchMoved){if(s.isPanning=!0,s.lastX=o,s.lastY=a,s.dragZone===3||Vt(s.dragZone)||s.recordVelocity(_,f),s.dragZone===2)e.pan_x(_);else if(s.dragZone===3){let p=Math.pow(1.005,f);e.zoom_y(s.touchStartY,p)}else if(s.dragZone!==14)if(Vt(s.dragZone)){let p=Math.pow(1.005,f);e.zoom_indicator_y(oe(s.dragZone),s.touchStartY,p)}else pe(e,s.dragZone,_,f);n.onDirty()}else s.lastX=o,s.lastY=a}},{passive:!1}),t.addEventListener("touchend",h=>{if(s.disposed)return;if(clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.watermarkTapPending&&h.touches.length===0){if(s.watermarkTapPending=!1,!s.touchMoved&&!s.pinchActive&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(s.watermarkTapX,s.watermarkTapY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(s.isDraggingAnchor){s.isDraggingAnchor=!1,s.dragAnchorIdx=-1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.();return}if(s.isDraggingDrawing){if(s.isDraggingDrawing=!1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.(),!s.touchMoved){let a=e.get_selected_drawing();if(a>0){let _=t.getBoundingClientRect();n.onDrawingDblClick?.(a,s.touchStartX,s.touchStartY,s.touchStartX+_.left,s.touchStartY+_.top)}}return}if(s.isBrushing){s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,e.finish_brush(),s.finishDrawing(),n.onDirty(),n.onCrosshairHide?.();return}let r=s.drawingMode;if(r&&he(r.tool)&&r.pathStarted){let a=Date.now(),_=s.touchStartX-(s._pathLastTapX||0),f=s.touchStartY-(s._pathLastTapY||0),E=Math.sqrt(_*_+f*f);a-(s._pathLastTapTime||0)<350&&E<30?(e.finish_elliott_manual(),s.finishDrawing(),s._pathLastTapTime=0):(s._pathLastTapTime=a,s._pathLastTapX=s.touchStartX,s._pathLastTapY=s.touchStartY),s.isDragging=!1,s.lastTouchDist=0,n.onDirty();return}if(r&&de(r.tool)&&r.pathStarted){let a=Date.now(),_=s.touchStartX-(s._pathLastTapX||0),f=s.touchStartY-(s._pathLastTapY||0),E=Math.sqrt(_*_+f*f);a-(s._pathLastTapTime||0)<350&&E<30?(e.finish_path(),s.finishDrawing(),s._pathLastTapTime=0):(s._pathLastTapTime=a,s._pathLastTapX=s.touchStartX,s._pathLastTapY=s.touchStartY),s.isDragging=!1,s.lastTouchDist=0,n.onDirty();return}if(r&&or(r.tool)){let a=r._stepAtTouchStart;if(r.step===1&&(a===1||s.touchMoved)){let _=t.getBoundingClientRect(),f=h.changedTouches?.[0];if(f){let E=f.clientX-_.left,p=f.clientY-_.top,F=r.pane||0,{wx:u,wy:O}=Tt(e,E,p,F);r.x2=u,r.y2=O,r.step=2,e.clear_drawing_preview()}}else if(r.step===2&&(a===2||s.touchMoved)){let _=t.getBoundingClientRect(),f=h.changedTouches?.[0];if(f){let E=f.clientX-_.left,p=f.clientY-_.top,F=r.pane||0,{wx:u,wy:O}=Tt(e,E,p,F),A=jt[r.tool];A&&A.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ie(e,r.tool,r,u,O,r.style),s.finishDrawing()}}s.isDragging=!1,s.lastTouchDist=0,s.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&r.step===1&&(nr(r.tool)||sr(r.tool))){if(r._stepAtTouchStart===1||s.touchMoved){let _=t.getBoundingClientRect(),f=h.changedTouches?.[0];if(f){let E=f.clientX-_.left,p=f.clientY-_.top,F=r.pane||0,{wx:u,wy:O}=Tt(e,E,p,F);ie(e,r.tool,r,u,O,r.style),s.finishDrawing()}}s.isDragging=!1,s.lastTouchDist=0,s.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&Ze(r.tool)){let a=t.getBoundingClientRect(),_=h.changedTouches?.[0];if(_){let f=_.clientX-a.left,E=_.clientY-a.top,p=e.hit_zone(f,E),F=Gt(p)?Dt(p):r.pane||0,{wx:u,wy:O}=Tt(e,f,E,F),A=r.tool;e.clear_drawing_preview();let T=ie(e,A,r,u,O,r.style);s.finishDrawing(),A==="textnote"&&T>0&&(e.select_drawing(T),n.onDrawingSelected?.(T),n.onDrawingDblClick?.(T,f,E,f+a.left,E+a.top))}s.isDragging=!1,s.lastTouchDist=0,e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty();return}let i=h.touches.length===0;if(i&&!s.pinchActive&&!s.touchMoved&&!s.drawingMode){let a=Date.now(),_=s.touchStartX,f=s.touchStartY,E=_-s.lastTapX,p=f-s.lastTapY,F=Math.sqrt(E*E+p*p),u=a-s.lastTapTime<350&&F<30,O=e.hit_zone(_,f),A=u?e.hit_test_drawing(_,f):0;if(u&&(Ie(O)||Vt(O))&&A<=0)e.reset_indicator_y_auto(oe(O)),n.onDirty();else if(Gt(O)){let T=e.get_selected_drawing(),P=A>0?A:e.hit_test_drawing(_,f),H=0;if(P<=0&&(H=e.hit_test_marker(_,f)),P>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(P);let x=t.getBoundingClientRect(),B=_+x.left,Y=f+x.top;n.onDrawingSelected?.(P,B,Y),(T<=0||T===P)&&n.onDrawingDblClick?.(P,_,f,B,Y),n.onDirty()}else if(H>0)e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(H),n.onMarkerSelected?.(H),n.onDirty();else if(T>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),e.get_selected_marker()>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty()),u&&O===0){let B=t.getBoundingClientRect();n.onChartDblClick?.(_,f,_+B.left,f+B.top)}}s.lastTapTime=a,s.lastTapX=_,s.lastTapY=f}i&&!s.pinchActive&&s.touchMoved&&!s.isCrosshairMode&&!s.drawingMode&&s.dragZone!==3&&!Vt(s.dragZone)&&s.startMomentum(s.dragZone),s.isDragging=!1,s.isPanning=!1,s.isCrosshairMode=!1,s.lastTouchDist=0,i&&(s.pinchActive=!1),(!s.drawingMode||s.drawingMode.step===0)&&(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty(),n.onVrvpHover?.(null,null)}),t.addEventListener("touchcancel",()=>{clearTimeout(s.longPressTimer),s.liqPinTimer&&(clearTimeout(s.liqPinTimer),s.liqPinTimer=null),s.isDragging=!1,s.isPanning=!1,s.isDraggingAnchor=!1,s.isDraggingDrawing=!1,s.isBrushing=!1,s.brushLastSx=null,s.brushLastSy=null,s.isCrosshairMode=!1,s.lastTouchDist=0,s.pinchActive=!1,s.cancelMomentum(),e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty()})}function jr(t,e,n){let s={disposed:!1,isDragging:!1,dragZone:0,lastX:0,lastY:0,lastTouchDist:0,isResizingRsi:!1,isResizingOi:!1,isResizingFr:!1,isResizingCvd:!1,resizeStartY:0,resizeStartRatio:0,lastClickTime:0,isDraggingAnchor:!1,dragAnchorIdx:-1,dragAnchorPane:0,isBrushing:!1,isDraggingDrawing:!1,dragDrawingPane:0,dragDrawingLastWx:0,dragDrawingLastWy:0,touchStartX:0,touchStartY:0,touchMoved:!1,pinchActive:!1,longPressTimer:null,isCrosshairMode:!1,liqPinTimer:null,liqPinSx:0,liqPinSy:0,velSamples:[],momentumRaf:null,momentumVx:0,momentumVy:0,momentumZone:0,lastTapTime:0,lastTapX:0,lastTapY:0,drawingMode:null,watermarkPending:!1,watermarkTapPending:!1,watermarkTapX:0,watermarkTapY:0,qtbPending:!1,qtbWorldY:0},v=!1;Object.defineProperty(s,"isPanning",{get(){return v},set(f){let E=!!f;E!==v&&(v=E,E?n.onPanStart?.():n.onPanEnd?.())}});let c=.86,d=.5,h=80;s.recordVelocity=function(f,E){let p=performance.now();for(s.velSamples.push({dx:f,dy:E,t:p});s.velSamples.length>0&&p-s.velSamples[0].t>h;)s.velSamples.shift()};function r(){if(s.velSamples.length<2)return{vx:0,vy:0};let f=s.velSamples[0],p=s.velSamples[s.velSamples.length-1].t-f.t;if(p<5)return{vx:0,vy:0};let F=0,u=0;for(let A of s.velSamples)F+=A.dx,u+=A.dy;let O=16.67;return{vx:F/p*O,vy:u/p*O}}s.cancelMomentum=function(){s.momentumRaf&&(cancelAnimationFrame(s.momentumRaf),s.momentumRaf=null),s.velSamples=[]},s.startMomentum=function(f){let{vx:E}=r();if(s.velSamples=[],Math.abs(E)<d)return;s.momentumVx=E,s.momentumVy=0,s.momentumZone=f;function p(){if(s.momentumVx*=c,Math.abs(s.momentumVx)<d){s.momentumRaf=null;return}if(s.momentumZone===2)e.pan_x(s.momentumVx);else if(s.momentumZone===3){s.momentumRaf=null;return}else if(s.momentumZone===14){s.momentumRaf=null;return}else if(Vt(s.momentumZone)){s.momentumRaf=null;return}else pe(e,s.momentumZone,s.momentumVx,0);n.onDirty(),s.momentumRaf=requestAnimationFrame(p)}s.momentumRaf=requestAnimationFrame(p)};let i={setMode(f,E){f?(s.drawingMode={tool:f,style:E,step:0,x1:0,y1:0},t.style.cursor="crosshair"):(s.drawingMode?.pathStarted&&e.finish_path(),s.drawingMode=null,e.clear_drawing_preview(),t.style.cursor="crosshair"),n.onDirty()},getMode(){return s.drawingMode}};n.drawingApi?.(i),s.finishDrawing=function(){e.clear_drawing_preview(),n.onDrawingComplete?.(),s.drawingMode=null,t.style.cursor="crosshair"},io(t,e,n,s),ao(t,e,n,s);let o=null,a=f=>{let E=document.activeElement?.tagName,p=E==="INPUT"||E==="TEXTAREA"||document.activeElement?.isContentEditable;if((f.key==="Delete"||f.key==="Backspace")&&!s.drawingMode&&!p){let u=e.get_selected_drawing();if(u>0){n.onDrawingMutationBegin?.(),e.remove_drawing(u),n.onDrawingSelected?.(0),n.onDirty();return}let O=e.get_selected_marker();if(O>0){n.onDrawingMutationBegin?.(),e.remove_marker(O),n.onMarkerSelected?.(0),n.onDirty();return}}if(f.key==="z"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!p&&!s.drawingMode&&(window.getSelection?.()?.toString()||"").length===0&&n.onUndoRequest?.()){n.onDrawingSelected?.(0),n.onMarkerSelected?.(0),n.onDirty(),f.preventDefault();return}if((f.key==="z"&&(f.ctrlKey||f.metaKey)&&f.shiftKey&&!f.altKey&&!p&&!s.drawingMode||f.key==="y"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!p&&!s.drawingMode)&&(window.getSelection?.()?.toString()||"").length===0&&n.onRedoRequest?.()){n.onDrawingSelected?.(0),n.onMarkerSelected?.(0),n.onDirty(),f.preventDefault();return}if(f.key==="c"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!p&&!s.drawingMode){let u=e.get_selected_drawing();if(u>0&&(window.getSelection?.()?.toString()||"").length===0){let A=e.export_drawing_by_id(u);if(A&&A.length>0){o=A,f.preventDefault();return}}}if(f.key==="v"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!p&&!s.drawingMode&&o){n.onDrawingMutationBegin?.();let u=e.paste_drawing_json(o,30,30);if(u>0){n.onDrawingSelected?.(u),n.onDirty(),f.preventDefault();return}}if(f.key==="Escape"&&!s.drawingMode){if(e.get_selected_drawing()>0){e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty();return}if(e.get_selected_marker()>0){e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty();return}}if(f.key==="Escape"&&s.drawingMode){if(s.drawingMode.pathStarted){s.drawingMode.tool==="elliott"?e.finish_elliott_manual():e.finish_path(),s.finishDrawing(),n.onDirty();return}e.clear_drawing_preview(),s.drawingMode=null,t.style.cursor="crosshair",n.onDrawingCancel?.(),n.onDirty();return}if(p)return;let F=20;switch(f.key){case"+":case"=":e.zoom(t.width/2,t.height/2,.9);break;case"-":e.zoom(t.width/2,t.height/2,1.1);break;case"ArrowLeft":e.pan_x(F);break;case"ArrowRight":e.pan_x(-F);break;case"ArrowUp":e.pan_y(-F);break;case"ArrowDown":e.pan_y(F);break;case"r":case"R":e.set_y_auto_scale(!0);for(let u=1;u<=5;u++)e.reset_indicator_y_auto(u);break;default:return}n.onDirty()};window.addEventListener("keydown",a);let _=f=>{if(s.disposed||s.drawingMode)return;let E=typeof n.onImagePasted=="function",p=typeof n.onTextPasted=="function";if(!E&&!p)return;let F=document.activeElement?.tagName;if(F==="INPUT"||F==="TEXTAREA"||document.activeElement?.isContentEditable)return;let O=f.clipboardData?.items;if(O){if(E)for(let A=0;A<O.length;A++){let T=O[A];if(!T.type||!T.type.startsWith("image/")||T.type==="image/svg+xml")continue;let P=T.getAsFile();if(P){try{f.preventDefault()}catch{}try{n.onImagePasted(P)}catch(H){console.warn("[eventHandler] onImagePasted callback threw",H?.message||H)}return}}if(p){let A="";try{A=f.clipboardData?.getData?.("text/plain")||""}catch{}if(A&&A.trim().length>0){try{f.preventDefault()}catch{}try{n.onTextPasted(A)}catch(T){console.warn("[eventHandler] onTextPasted callback threw",T?.message||T)}}}}};return window.addEventListener("paste",_),()=>{s.disposed=!0,s.cancelMomentum(),window.removeEventListener("keydown",a),window.removeEventListener("paste",_)}}var be=t=>t instanceof Float64Array?t:new Float64Array(t),lo=(t,e=0)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"bull":return 0;case"bear":return 1;case"neutral":return 2;case"all":return 255;default:return e}},Us=(t,e=255)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"offside_buy":return 0;case"offside_sell":return 1;case"distribution":return 2;case"accumulation":return 3;case"absorption":return 4;default:return e}},Gs=(t,e=0)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"wick":return 0;case"close":return 1;case"all":return 255;default:return e}};function uo(t,e,n,s){let v=r=>s()(r),c=null,d=null,h=null;return{enableRsi(){t.enable_rsi(),e()},disableRsi(){t.disable_rsi(),e()},setRsiPeriod(r){t.set_rsi_period(r),e()},isRsiEnabled(){return t.is_rsi_enabled()},setRsiShowEma(r){t.set_rsi_show_ema(r),e()},setRsiShowWma(r){t.set_rsi_show_wma(r),e()},setRsiShowSignals(r){t.set_rsi_show_signals(r),e()},setRsiShowDivergence(r){t.set_rsi_show_divergence(r),e()},setRsiShowTraps(r){t.set_rsi_show_traps(r),e()},setRsiShowLevels(r){t.set_rsi_show_levels(r),e()},setRsiShowOnChart(r){t.set_rsi_show_on_chart(r),e()},setRsiSmoothing(r){t.set_rsi_smoothing(r),e()},setRsiRatio(r){t.set_rsi_ratio(r),e()},getRsiRatio(){return t.get_rsi_ratio()},rsiSignalHitTest(r,i){if(n())return"";try{return t.rsi_signal_hit_test(r,i)}catch{return""}},setRsiTooltip(r){if(n())return!1;if(r===h)return!0;try{let i=t.set_rsi_tooltip(r);return h=r,e(),!!i}catch{return!1}},clearRsiTooltip(){if(!n()&&h!==null)try{t.clear_rsi_tooltip(),h=null,e()}catch{}},setLiqProfileTooltip(r){if(n())return!1;if(r===c)return!0;try{let i=t.set_liq_profile_tooltip(r);return c=r,e(),!!i}catch{return!1}},clearLiqProfileTooltip(){if(!n()&&c!==null)try{t.clear_liq_profile_tooltip(),c=null,e()}catch{}},setLiqZoneTooltip(r){if(n())return!1;if(r===d)return!0;try{let i=t.set_liq_zone_tooltip(r);return d=r,e(),!!i}catch{return!1}},clearLiqZoneTooltip(){if(!n()&&d!==null)try{t.clear_liq_zone_tooltip(),d=null,e()}catch{}},enableForexSignals(){v("forexSignals")&&(t.enable_forex_signals(),e())},disableForexSignals(){t.disable_forex_signals(),e()},isForexSignalsEnabled(){return t.is_forex_signals_enabled()},setForexSignalsSetup(r){t.set_forex_signals_setup(r),e()},setForexSignalsMode(r){t.set_forex_signals_mode(r),e()},setForexSignalsShowStats(r){t.set_forex_signals_show_stats(r),e()},getForexSignalsCount(){return t.get_forex_signals_count()},enableOi(){n()||v("oi")&&(t.enable_oi(),e())},disableOi(){n()||(t.disable_oi(),e())},isOiEnabled(){if(n())return!1;try{return t.is_oi_enabled()}catch{return!1}},setOiData(r){n()||(t.set_oi_data(r),e())},setOiDataTs(r,i){n()||(t.set_oi_data_ts(r,i),e())},setOiShowOnChart(r){n()||(t.set_oi_show_on_chart(r),e())},setOiShowSpike(r){n()||(t.set_oi_show_spike(r),e())},setOiSpikeTextSize(r){if(n())return;let i=Number(r);Number.isFinite(i)&&(t.set_oi_spike_text_size(i),e())},setOiDisplayMode(r){n()||(t.set_oi_display_mode(r),e())},setOiRatio(r){n()||(t.set_oi_ratio(r),e())},getOiRatio(){if(n())return .2;try{return t.get_oi_ratio()}catch{return .2}},enableFundingRate(){n()||v("fundingRate")&&(t.enable_funding_rate(),e())},disableFundingRate(){n()||(t.disable_funding_rate(),e())},isFundingRateEnabled(){if(n())return!1;try{return t.is_funding_rate_enabled()}catch{return!1}},setFrBinanceData(r,i){n()||(t.set_fr_binance_data(r,i),e())},setFrAggData(r,i){n()||(t.set_fr_agg_data(r,i),e())},setFrShowAgg(r){n()||(t.set_fr_show_agg(r),e())},setFrShowSma(r){n()||(t.set_fr_show_sma(r),e())},setFrDisplayStyle(r){if(n())return;let i=Number(r),o=Number.isFinite(i)?Math.max(0,Math.min(3,Math.trunc(i))):0;t.set_fr_display_style(o),e()},getFrDisplayStyle(){if(n())return 0;try{return t.get_fr_display_style()}catch{return 0}},clearFrData(){n()||(t.clear_fr_data(),e())},enableCvd(){n()||v("cvd")&&(t.enable_cvd(),e())},disableCvd(){n()||(t.disable_cvd(),e())},isCvdEnabled(){if(n())return!1;try{return t.is_cvd_enabled()}catch{return!1}},setCvdData(r,i){n()||(t.set_cvd_data(r,i),e())},setCvdSpotData(r,i){n()||(t.set_cvd_spot_data(r,i),e())},setCvdSource(r){n()||(t.set_cvd_source(r),e())},getCvdSource(){if(n())return 0;try{return t.get_cvd_source()}catch{return 0}},setCvdMode(r){n()||(t.set_cvd_mode(r),e())},getCvdMode(){if(n())return 0;try{return t.get_cvd_mode()}catch{return 0}},setCvdShowDelta(r){n()||(t.set_cvd_show_delta(r),e())},getCvdShowDelta(){if(n())return!0;try{return t.get_cvd_show_delta()}catch{return!0}},setCvdShowSignals(r){n()||(t.set_cvd_show_signals(r),e())},getCvdShowSignals(){if(n())return!0;try{return t.get_cvd_show_signals()}catch{return!0}},setCvdShowDivergence(r){n()||(t.set_cvd_show_divergence(r),e())},getCvdShowDivergence(){if(n())return!1;try{return t.get_cvd_show_divergence()}catch{return!1}},enableLargeTrades(){n()||v("largeTrades")&&(t.enable_large_trades(),e())},disableLargeTrades(){n()||(t.disable_large_trades(),e())},isLargeTradesEnabled(){if(n())return!1;try{return t.is_large_trades_enabled()}catch{return!1}},setLargeTradesData(r){n()||(t.set_large_trades_data(r),e())},pushLargeTrade(r,i,o,a){n()||(t.push_large_trade(r,i,o,a),e())},clearLargeTrades(){n()||(t.clear_large_trades(),e())},setLtVolumeFilter(r,i){n()||(t.set_lt_volume_filter(r,i),e())},setLtBubbleScale(r){n()||(t.set_lt_bubble_scale(r),e())},setLtBubbleStyle(r){if(n())return;let o=Number(r)===1?1:0;t.set_lt_bubble_style(o),e()},getLtDataMinVol(){return n()?0:t.get_lt_data_min_vol()},getLtDataMaxVol(){return n()?0:t.get_lt_data_max_vol()},ltHitTest(r,i){if(n())return"";try{return t.lt_hit_test(r,i)}catch{return""}},enableVrvp(){n()||v("vrvp")&&(t.enable_vrvp(),e())},disableVrvp(){n()||(t.disable_vrvp(),e())},isVrvpEnabled(){if(n())return!1;try{return t.is_vrvp_enabled()}catch{return!1}},setVrvpPocLine(r){n()||(t.set_vrvp_poc_line(r),e())},setVrvpData(r,i){n()||(t.set_vrvp_data(r,i),e())},vrvpHitTest(r,i){if(n())return"";try{return t.vrvp_hit_test(r,i)}catch{return""}},setVrvpSignalsEnabled(r){n()||(t.set_vrvp_signals_enabled(!!r),e())},isVrvpSignalsEnabled(){if(n())return!1;try{return t.is_vrvp_signals_enabled()}catch{return!1}},setVrvpSignalKinds(r){if(n())return;let i=(Number(r)|0)&255;t.set_vrvp_signal_kinds(i>>>0),e()},setVrvpSignalThresholds(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_vrvp_signal_thresholds(i(r.vaPct,70),i(r.hvnThreshold,.55),i(r.hvnMinSpacing,6)>>>0,i(r.pocDistancePct,.6),i(r.vaBreakoutVolMult,1.5),i(r.hvnImbalancePct,65),i(r.cooldownBars,5)>>>0),e()},setVrvpSignalTpSl(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_vrvp_signal_tpsl((Number(r.mode)|0)&1,i(r.atrPeriod,14)>>>0,i(r.atrSlMult,1.5),i(r.atrTpMult,3)),e()},setVrvpSignalShowLabels(r){n()||(t.set_vrvp_signal_show_labels(!!r),e())},getVrvpEvents(){if(n())return[];try{let r=t.get_vrvp_events_json();return r?JSON.parse(r):[]}catch{return[]}},vrvpSignalHitTest(r,i){if(n())return"";try{return t.vrvp_signal_hit_test(r,i)}catch{return""}},enableGaussianVwapCloud(){n()||v("gaussianVwapCloud")&&(t.enable_gaussian_vwap_cloud(),e())},disableGaussianVwapCloud(){n()||(t.disable_gaussian_vwap_cloud(),e())},isGaussianVwapCloudEnabled(){if(n())return!1;try{return t.is_gaussian_vwap_cloud_enabled()}catch{return!1}},setGvwcAnchorMode(r){if(n())return;let i=(Number(r)|0)&255;t.set_gvwc_anchor_mode(i>5?0:i),e()},setGvwcWindowBars(r){if(n())return;let i=Math.max(10,Math.min(1e3,Number(r)|0));t.set_gvwc_window_bars(i>>>0),e()},setGvwcAppearance(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_gvwc_appearance(i(r.bins,60)>>>0,i(r.sigmaClip,2.5),i(r.gamma,.7),i(r.lineWidth,1.5),!!r.showBands),e()},setGvwcShowBand3(r){n()||(t.set_gvwc_show_band3(!!r),e())},setGvwcSignalsEnabled(r){n()||(t.set_gvwc_signals_enabled(!!r),e())},setGvwcSignalKinds(r){if(n())return;let i=(Number(r)|0)&255;t.set_gvwc_signal_kinds(i),e()},setGvwcSignalThresholds(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_gvwc_signal_thresholds(i(r.minZscore,2),Math.max(1,Math.min(50,i(r.cooldownBars,10)|0))>>>0),e()},setGvwcSignalHighlightLeg(r){n()||(t.set_gvwc_signal_highlight_leg(!!r),e())},setGvwcUseBodyWeight(r){n()||(t.set_gvwc_use_body_weight(!!r),e())},setGvwcCloud(r){if(n()||!r)return;let i=(a,_)=>typeof a=="boolean"?a:_,o=(a,_)=>{let f=Number(a);return Number.isFinite(f)?f:_};t.set_gvwc_cloud(i(r.enabled,!0),i(r.cloud3d,!0),o(r.depthLayers,1)|0,o(r.opacity,.7),i(r.volumeWeighted,!0),i(r.volumeClassify,!0),i(r.sessionVolume,!1)),e()},gvwcHitTest(r,i){if(n())return"";try{return t.gvwc_hit_test(r,i)}catch{return""}},enableCvdProfile(){n()||v("cvdProfile")&&(t.enable_cvd_profile(),e())},disableCvdProfile(){n()||(t.disable_cvd_profile(),e())},isCvdProfileEnabled(){if(n())return!1;try{return t.is_cvd_profile_enabled()}catch{return!1}},setCvdProfileSessions(r){n()||(t.set_cvd_profile_sessions(be(r)),e())},applyCvdProfileUpdate(r,i,o,a){n()||(t.apply_cvd_profile_update(r,i,o,be(a)),e())},replaceCvdProfileSession(r,i,o,a,_){n()||(t.replace_cvd_profile_session(r,i,!!o,a,be(_)),e())},openCvdProfileSession(r,i,o){n()||(t.open_cvd_profile_session(r,i,o),e())},clearCvdProfile(){n()||(t.clear_cvd_profile(),e())},setCvdProfileViewMode(r){n()||(t.set_cvd_profile_view_mode(r|0),e())},getCvdProfileViewMode(){if(n())return 2;try{return t.get_cvd_profile_view_mode()}catch{return 2}},setCvdProfileShowAnchors(r){n()||(t.set_cvd_profile_show_anchors(!!r),e())},setCvdProfileShowPoc(r){n()||(t.set_cvd_profile_show_poc(!!r),e())},setCvdProfileShowSessionPocLine(r){n()||(t.set_cvd_profile_show_session_poc_line(!!r),e())},setCvdProfileShowDeltaPoc(r){n()||(t.set_cvd_profile_show_delta_poc(!!r),e())},setCvdProfileTooltipEnabled(r){n()||(t.set_cvd_profile_tooltip_enabled(!!r),e())},setCvdProfileMaxBarRatio(r){n()||(t.set_cvd_profile_max_bar_ratio(Number(r)||.85),e())},setCvdProfileLabelSizeScale(r){if(n())return;let i=Number(r);t.set_cvd_profile_label_size_scale(Number.isFinite(i)?i:1),e()},setCvdProfileBarHeightPx(r){n()||(t.set_cvd_profile_bar_height_px(Number(r)||0),e())},setCvdProfileBarMaxWidthPx(r){n()||(t.set_cvd_profile_bar_max_width_px(Number(r)||0),e())},setCvdProfileThemeMode(r){if(n())return;let i=Number(r),o=i===1||i===2?i:0;t.set_cvd_profile_theme_mode(o),e()},setCvdProfileValueInQuote(r){n()||(t.set_cvd_profile_value_in_quote(!!r),e())},cvdProfileHitTest(r,i){if(n())return"";try{return t.cvd_profile_hit_test(r,i)}catch{return""}},enableCvdOrderBlock(){n()||v("cvdProfile")&&(t.enable_cvd_orderblock(),e())},disableCvdOrderBlock(){n()||(t.disable_cvd_orderblock(),e())},isCvdOrderBlockEnabled(){if(n())return!1;try{return t.is_cvd_orderblock_enabled()}catch{return!1}},clearCvdOrderBlockObs(){n()||(t.clear_cvd_orderblock_obs(),e())},clearCvdOrderBlockAll(){n()||(t.clear_cvd_orderblock_all(),e())},upsertCvdOrderBlockOb(r,i,o,a,_,f,E,p,F,u,O,A,T,P,H,x,B,Y,z,K,at,j,X,k,J,it,rt,ut,nt,ct,ft,mt,dt,At,Ft){n()||(t.upsert_cvd_orderblock_ob(String(r||""),lo(i),Us(o),(a|0)>>>0,Number(_)||0,Number(f)||0,Number(E)||0,Number(p)||0,Number(F)||0,Number(u)||0,Number(O)||0,Number(A)||0,Number(T)||0,Number(P)||0,Number(H)||0,Number(x)||0,Number(B)||0,Number(Y)||0,Number(z)||0,Number(K)||0,Number(at)||0,Number(j)||0,Number(X)||0,(k|0)>>>0,Number(J)||0,(it|0)>>>0,!!rt,Number(ut)||0,nt===void 0?!0:!!nt,!!ct,!!ft,Number(mt)||0,Number(dt)||0,Number(At)||0,Number(Ft)||0),e())},removeCvdOrderBlockOb(r){if(n())return!1;try{let i=t.remove_cvd_orderblock_ob(String(r||""));return i&&e(),i}catch{return!1}},setCvdOrderBlockDirectionFilter(r){n()||(t.set_cvd_orderblock_direction_filter(lo(r,255)),e())},setCvdOrderBlockMitigationFilter(r){n()||(t.set_cvd_orderblock_mitigation_filter(Gs(r,255)),e())},setCvdOrderBlockMinScore(r){n()||(t.set_cvd_orderblock_min_score(Number(r)||0),e())},setCvdOrderBlockShowMitigated(r){n()||(t.set_cvd_orderblock_show_mitigated(!!r),e())},setCvdOrderBlockBreakerStyle(r){if(n())return;let i=Number(r),o=Number.isFinite(i)?Math.max(0,Math.min(2,Math.trunc(i))):0;t.set_cvd_orderblock_breaker_style(o),e()},setCvdOrderBlockShowObs(r){n()||(t.set_cvd_orderblock_show_obs(!!r),e())},setCvdOrderBlockShowGaps(r){n()||(t.set_cvd_orderblock_show_gaps(!!r),e())},setCvdOrderBlockShowFilledGaps(r){n()||(t.set_cvd_orderblock_show_filled_gaps(!!r),e())},setCvdOrderBlockShowLabels(r){n()||(t.set_cvd_orderblock_show_labels(!!r),e())},setCvdOrderBlockLabelSizeScale(r){if(n())return;let i=Number(r);t.set_cvd_orderblock_label_size_scale(Number.isFinite(i)?i:1),e()},setCvdOrderBlockRenderMode(r){if(n())return;let i=Number(r),o=i===0||i===1||i===2?i:1;t.set_cvd_orderblock_render_mode(o),e()},cvdOrderBlockObCount(){if(n())return 0;try{return t.cvd_orderblock_ob_count()}catch{return 0}},cvdOrderBlockGapCount(){if(n())return 0;try{return t.cvd_orderblock_gap_count()}catch{return 0}},cvdOrderBlockHitTest(r,i){if(n())return"";try{return t.cvd_orderblock_hit_test(r,i)}catch{return""}},enableCvdTradeSignals(){n()||v("cvdProfile")&&(t.enable_cvd_trade_signals(),e())},disableCvdTradeSignals(){n()||(t.disable_cvd_trade_signals(),e())},isCvdTradeSignalsEnabled(){if(n())return!1;try{return t.is_cvd_trade_signals_enabled()}catch{return!1}},clearCvdTradeSignals(){n()||(t.clear_cvd_trade_signals(),e())},upsertCvdTradeSignal(r,i,o,a,_,f,E,p,F,u,O,A,T,P,H,x,B,Y,z,K,at){if(n())return;let j=0;(i==="short"||i===1)&&(j=1);let X=0;o==="breakout"||o===1?X=1:o==="delta_trap"||o===2?X=2:o==="absorption_resolution"||o===3?X=3:(o==="divergence"||o===4)&&(X=4);let k=0;P==="bull"||P===1?k=1:(P==="bear"||P===2)&&(k=2),t.upsert_cvd_trade_signal(String(r||""),j,X,Number(a)||0,Number(_)||0,Number(f)||0,Number(E)||0,Number(p)||0,Number(F)||0,Number(u)||0,Number(O)||0,Number(A)||0,Number(T)||0,k,(H|0)>>>0,Number(x)||0,Number(B)||0,Number(Y)||0,Number(z)||0,(K|0)>>>0,String(at||"")),e()},removeCvdTradeSignal(r){if(n())return!1;try{let i=t.remove_cvd_trade_signal(String(r||""));return i&&e(),i}catch{return!1}},setCvdTradeSignalsShowLong(r){n()||(t.set_cvd_trade_signals_show_long(!!r),e())},setCvdTradeSignalsShowShort(r){n()||(t.set_cvd_trade_signals_show_short(!!r),e())},setCvdTradeSignalsShowRejection(r){n()||(t.set_cvd_trade_signals_show_rejection(!!r),e())},setCvdTradeSignalsShowBreakout(r){n()||(t.set_cvd_trade_signals_show_breakout(!!r),e())},setCvdTradeSignalsShowDeltaTrap(r){n()||(t.set_cvd_trade_signals_show_delta_trap(!!r),e())},setCvdTradeSignalsShowAbsorptionResolution(r){n()||(t.set_cvd_trade_signals_show_absorption_resolution(!!r),e())},setCvdTradeSignalsShowDivergence(r){n()||(t.set_cvd_trade_signals_show_divergence(!!r),e())},setCvdTradeSignalsShowLabels(r){n()||(t.set_cvd_trade_signals_show_labels(!!r),e())},setCvdTradeSignalsShowLevels(r){n()||(t.set_cvd_trade_signals_show_levels(!!r),e())},setCvdTradeSignalsMinConfidence(r){n()||(t.set_cvd_trade_signals_min_confidence(Number(r)||0),e())},cvdTradeSignalCount(){if(n())return 0;try{return t.cvd_trade_signal_count()}catch{return 0}},cvdTradeSignalsHitTest(r,i){if(n())return"";try{return t.cvd_trade_signals_hit_test(r,i)}catch{return""}},enableCvdDivergence(){n()||v("cvdProfile")&&(t.enable_cvd_divergence(),e())},disableCvdDivergence(){n()||(t.disable_cvd_divergence(),e())},isCvdDivergenceEnabled(){if(n())return!1;try{return t.is_cvd_divergence_enabled()}catch{return!1}},clearCvdDivergence(){n()||(t.clear_cvd_divergence(),e())},upsertCvdDivergence(r,i,o,a,_,f,E,p,F,u,O){if(n())return;let A=0;(i==="hidden"||i===1)&&(A=1);let T=0;(o==="short"||o===1)&&(T=1),t.upsert_cvd_divergence(String(r||""),A,T,Number(a)||0,Number(_)||0,Number(f)||0,Number(E)||0,Number(p)||0,Number(F)||0,Number(u)||0,Number(O)||0),e()},removeCvdDivergence(r){if(n())return!1;try{let i=t.remove_cvd_divergence(String(r||""));return i&&e(),i}catch{return!1}},setCvdDivergenceShowRegular(r){n()||(t.set_cvd_divergence_show_regular(!!r),e())},setCvdDivergenceShowHidden(r){n()||(t.set_cvd_divergence_show_hidden(!!r),e())},setCvdDivergenceShowLong(r){n()||(t.set_cvd_divergence_show_long(!!r),e())},setCvdDivergenceShowShort(r){n()||(t.set_cvd_divergence_show_short(!!r),e())},setCvdDivergenceShowLabels(r){n()||(t.set_cvd_divergence_show_labels(!!r),e())},setCvdDivergenceShowBand(r){n()||(t.set_cvd_divergence_show_band(!!r),e())},setCvdDivergenceMinStrength(r){n()||(t.set_cvd_divergence_min_strength(Number(r)||0),e())},cvdDivergenceCount(){if(n())return 0;try{return t.cvd_divergence_count()}catch{return 0}},cvdDivergenceHitTest(r,i){if(n())return"";try{return t.cvd_divergence_hit_test(r,i)}catch{return""}},enableCvdRegime(){n()||v("cvdProfile")&&(t.enable_cvd_regime(),e())},disableCvdRegime(){n()||(t.disable_cvd_regime(),e())},isCvdRegimeEnabled(){if(n())return!1;try{return t.is_cvd_regime_enabled()}catch{return!1}},clearCvdRegime(){n()||(t.clear_cvd_regime(),e())},upsertCvdRegimeFlip(r,i,o,a,_,f,E,p){if(n())return;let F=u=>u==="bull"||u===1?1:u==="bear"||u===2?2:0;t.upsert_cvd_regime_flip(String(r||""),Number(i)||0,Number(o)||0,F(a),F(_),Number(f)||0,(E|0)>>>0,Number(p)||0),e()},removeCvdRegimeFlip(r){if(n())return!1;try{let i=t.remove_cvd_regime_flip(String(r||""));return i&&e(),i}catch{return!1}},setCvdRegimeShowRibbon(r){n()||(t.set_cvd_regime_show_ribbon(!!r),e())},setCvdRegimeShowWash(r){n()||(t.set_cvd_regime_show_wash(!!r),e())},setCvdRegimeShowFlipLines(r){n()||(t.set_cvd_regime_show_flip_lines(!!r),e())},cvdRegimeFlipCount(){if(n())return 0;try{return t.cvd_regime_flip_count()}catch{return 0}},cvdRegimeHitTest(r,i){if(n())return"";try{return t.cvd_regime_hit_test(r,i)}catch{return""}},enableTpo(){n()||v("tpo")&&(t.enable_tpo(),e())},disableTpo(){n()||(t.disable_tpo(),e())},isTpoEnabled(){if(n())return!1;try{return t.is_tpo_enabled()}catch{return!1}},setTpoPocLine(r){n()||(t.set_tpo_poc_line(r),e())},setTpoVaLines(r){n()||(t.set_tpo_va_lines(r),e())},setTpoIb(r){n()||(t.set_tpo_ib(r),e())},setTpoSinglePrints(r){n()||(t.set_tpo_single_prints(r),e())},setTpoPeriod(r){n()||(t.set_tpo_period(r),e())},getTpoPeriod(){if(n())return 1440;try{return t.get_tpo_period()}catch{return 1440}},setTpoPeriodKind(r){if(n()||typeof t.set_tpo_period_kind!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>255||(t.set_tpo_period_kind(i|0),e())},getTpoPeriodKind(){if(n())return 1;try{return typeof t.get_tpo_period_kind!="function"?1:t.get_tpo_period_kind()}catch{return 1}},setTpoVpPosition(r){if(n()||typeof t.set_tpo_vp_position!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>255||(t.set_tpo_vp_position(i|0),e())},getTpoVpPosition(){if(n())return 0;try{return typeof t.get_tpo_vp_position!="function"?0:t.get_tpo_vp_position()}catch{return 0}},setTpoVpWidth(r){if(n()||typeof t.set_tpo_vp_width!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>100||(t.set_tpo_vp_width(i|0),e())},getTpoVpWidth(){if(n())return 50;try{return typeof t.get_tpo_vp_width!="function"?50:t.get_tpo_vp_width()}catch{return 50}},setTpoVpColorGrade(r){n()||typeof t.set_tpo_vp_color_grade=="function"&&(t.set_tpo_vp_color_grade(!!r),e())},getTpoVpColorGrade(){if(n())return!1;try{return typeof t.get_tpo_vp_color_grade!="function"?!1:!!t.get_tpo_vp_color_grade()}catch{return!1}},setTpoVaPct(r){if(n()||typeof t.set_tpo_va_pct!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>100||(t.set_tpo_va_pct(i|0),e())},getTpoVaPct(){if(n())return 70;try{return typeof t.get_tpo_va_pct!="function"?70:t.get_tpo_va_pct()}catch{return 70}},setTpoCellStyle(r){if(n()||typeof t.set_tpo_cell_style!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>1||(t.set_tpo_cell_style(i|0),e())},getTpoCellStyle(){if(n())return 0;try{return typeof t.get_tpo_cell_style!="function"?0:t.get_tpo_cell_style()}catch{return 0}},setTpoNakedPoc(r){n()||(t.set_tpo_naked_poc(r),e())},setTpoProfileShape(r){n()||(t.set_tpo_profile_shape(r),e())},setTpoIbMinutes(r){n()||(t.set_tpo_ib_minutes(r),e())},setTpoLetterMinutes(r){n()||(t.set_tpo_letter_minutes(r),e())},setTpoSignals(r){n()||(t.set_tpo_signals(r),e())},isTpoSignals(){if(n())return!1;try{return t.is_tpo_signals()}catch{return!1}},setTpoMode(r){if(n())return;let i=Number(r);!Number.isFinite(i)||i<0||i>2||(t.set_tpo_mode(i),e())},getTpoMode(){if(n())return 0;try{return t.get_tpo_mode()}catch{return 0}},setTpoVolUnit(r){if(n()||typeof t.set_tpo_vol_unit!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>1||(t.set_tpo_vol_unit(i|0),e())},getTpoVolUnit(){if(n())return 0;try{return t.get_tpo_vol_unit()}catch{return 0}},setTpoProfileTextSize(r){if(n()||typeof t.set_tpo_profile_text_size!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>4||(t.set_tpo_profile_text_size(i|0),e())},getTpoProfileTextSize(){if(n())return 2;try{return t.get_tpo_profile_text_size()}catch{return 2}},setTpoProfileBrightness(r){if(n()||typeof t.set_tpo_profile_brightness!="function")return;let i=Number(r);if(!Number.isFinite(i))return;let o=Math.max(20,Math.min(200,Math.round(i)));t.set_tpo_profile_brightness(o|0),e()},getTpoProfileBrightness(){if(n())return 100;try{return t.get_tpo_profile_brightness()}catch{return 100}},setTpoVpType(r){if(n()||typeof t.set_tpo_vp_type!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>3||(t.set_tpo_vp_type(i|0),e())},getTpoVpType(){if(n())return 0;try{return t.get_tpo_vp_type()}catch{return 0}},setTpoShowValues(r){n()||(t.set_tpo_show_values(r),e())},isTpoShowValues(){if(n())return!1;try{return t.is_tpo_show_values()}catch{return!0}},setTpoShowStats(r){n()||typeof t.set_tpo_show_stats=="function"&&(t.set_tpo_show_stats(r),e())},isTpoShowStats(){if(n())return!0;try{return t.is_tpo_show_stats()}catch{return!0}},setTpoShowLevels(r){n()||typeof t.set_tpo_show_levels=="function"&&(t.set_tpo_show_levels(r),e())},isTpoShowLevels(){if(n())return!0;try{return t.is_tpo_show_levels()}catch{return!0}},setTpoTextSize(r){if(n()||typeof t.set_tpo_text_size!="function")return;let i=Number(r);!Number.isFinite(i)||i<0||i>3||(t.set_tpo_text_size(i|0),e())},getTpoTextSize(){if(n())return 1;try{return t.get_tpo_text_size()}catch{return 1}},enableLiqHeatmap(){n()||v("liqHeatmap")&&(t.enable_liq_heatmap(),e())},disableLiqHeatmap(){n()||(t.disable_liq_heatmap(),e())},isLiqHeatmapEnabled(){if(n())return!1;try{return t.is_liq_heatmap_enabled()}catch{return!1}},setLiqHeatmapRange(r,i){n()||(t.set_liq_heatmap_range(r,i),e())},getLiqHeatmapMin(){if(n())return 0;try{return t.get_liq_heatmap_min()}catch{return 0}},getLiqHeatmapMax(){if(n())return 1;try{return t.get_liq_heatmap_max()}catch{return 1}},getLiqHeatmapSegMax(){if(n())return 0;try{return t.get_liq_heatmap_seg_max()}catch{return 0}},setLiqHeatmapProfile(r){n()||(t.set_liq_heatmap_profile(r),e())},isLiqHeatmapProfile(){if(n())return!0;try{return t.is_liq_heatmap_profile()}catch{return!0}},setLiqHeatmapCellHeight(r){n()||(t.set_liq_heatmap_cell_height(r),e())},getLiqHeatmapCellHeight(){if(n())return 1;try{return t.get_liq_heatmap_cell_height()}catch{return 1}},setLiqHeatmapBarWidth(r){n()||(t.set_liq_heatmap_bar_width(r),e())},getLiqHeatmapBarWidth(){if(n())return 1;try{return t.get_liq_heatmap_bar_width()}catch{return 1}},setLiqHeatmapPalette(r){n()||(t.set_liq_heatmap_palette(r|0),e())},getLiqHeatmapPalette(){if(n())return 0;try{return t.get_liq_heatmap_palette()}catch{return 0}},setLiqHeatmapIntensity(r){n()||(t.set_liq_heatmap_intensity(r),e())},getLiqHeatmapIntensity(){if(n())return 1;try{return t.get_liq_heatmap_intensity()}catch{return 1}},setLiqHeatmapLookbackBars(r){n()||(t.set_liq_heatmap_lookback_bars(r|0),e())},getLiqHeatmapLookbackBars(){if(n())return 500;try{return t.get_liq_heatmap_lookback_bars()}catch{return 500}},setLiqHeatmapProfileFontMult(r){n()||(t.set_liq_heatmap_profile_font_mult(Number(r)||1),e())},getLiqHeatmapProfileFontMult(){if(n())return 1;try{return t.get_liq_heatmap_profile_font_mult()}catch{return 1}},setLiqHeatmapCumSplit(r){n()||(t.set_liq_heatmap_cum_split(!!r),e())},getLiqHeatmapCumSplit(){if(n())return!1;try{return t.is_liq_heatmap_cum_split()}catch{return!1}},setLiqHeatmapPredictions(r){n()||(t.set_liq_heatmap_predictions(r),e())},setLiqHeatmapFilledPct(r){n()||(t.set_liq_heatmap_filled_pct(r),e())},getLiqHeatmapFilledPct(){if(n())return .85;try{return t.get_liq_heatmap_filled_pct()}catch{return .85}},liqHeatmapHitTest(r,i){if(n())return"";try{return t.liq_heatmap_hit_test(r,i)}catch{return""}},liqZoneHitTest(r,i){if(n())return"";try{return t.liq_zone_hit_test(r,i)}catch{return""}},enableSmartRanges(){n()||v("smartRanges")&&(t.enable_smart_ranges(),e())},disableSmartRanges(){n()||(t.disable_smart_ranges(),e())},isSmartRangesEnabled(){if(n())return!1;try{return t.is_smart_ranges_enabled()}catch{return!1}},setSrTextSize(r){n()||(t.set_sr_text_size(r),e())},setSrShowOb(r){n()||(t.set_sr_show_ob(r),e())},setSrObLast(r){n()||(t.set_sr_ob_last(r),e())},setSrShowObActivity(r){n()||(t.set_sr_show_ob_activity(r),e())},setSrShowBreakers(r){n()||(t.set_sr_show_breakers(r),e())},setSrMitigation(r){n()||(t.set_sr_mitigation(r),e())},setSrShowMetrics(r){n()||(t.set_sr_show_metrics(r),e())},setSrShowHtfOb(r){n()||(t.set_sr_show_htf_ob(r),e())},setSrHtfMinutes(r){n()||(t.set_sr_htf_minutes(r),e())},setSrShowFvg(r){n()||(t.set_sr_show_fvg(r),e())},setSrFvgTheme(r){n()||(t.set_sr_fvg_theme(r),e())},setSrFvgMitigation(r){n()||(t.set_sr_fvg_mitigation(r),e())},setSrFvgHtf(r){n()||(t.set_sr_fvg_htf(r),e())},setSrFvgExtend(r){n()||(t.set_sr_fvg_extend(r),e())},setSrShowObSignals(r){n()||(t.set_sr_show_ob_signals(r),e())},setSrShowPredict(r){n()||(t.set_sr_show_predict(r),e())},setSrShowFvgSignals(r){n()||(t.set_sr_show_fvg_signals(r),e())},setSrShowSmartRev(r){n()||(t.set_sr_show_smart_rev(r),e())},setSrSmartRevHtf(r){n()||(t.set_sr_smart_rev_htf(r),e())},setSrStatsType(r){n()||(t.set_sr_stats_type(r),e())},setSrStatsPosition(r){n()||(t.set_sr_stats_position(r),e())},getSrSignalsCount(){if(n())return 0;try{return t.get_sr_signals_count()}catch{return 0}},enableEmaStructure(){n()||v("emaStructure")&&(t.enable_ema_structure(),e())},disableEmaStructure(){n()||(t.disable_ema_structure(),e())},isEmaStructureEnabled(){if(n())return!1;try{return t.is_ema_structure_enabled()}catch{return!1}},setEsEma1Len(r){n()||(t.set_es_ema1_len(r),e())},setEsEma2Len(r){n()||(t.set_es_ema2_len(r),e())},setEsWmaLen(r){n()||(t.set_es_wma_len(r),e())},setEsShowEma1(r){n()||(t.set_es_show_ema1(r),e())},setEsShowEma2(r){n()||(t.set_es_show_ema2(r),e())},setEsShowWma(r){n()||(t.set_es_show_wma(r),e())},setEsSwingLen(r){n()||(t.set_es_swing_len(r),e())},setEsShowBos(r){n()||(t.set_es_show_bos(r),e())},enableLiveSignals(){n()||(t.enable_live_signals(),e())},disableLiveSignals(){n()||(t.disable_live_signals(),e())},isLiveSignalsEnabled(){if(n())return!1;try{return t.is_live_signals_enabled()}catch{return!1}},setLiveSignalsData(r){n()||(t.set_live_signals_data(new Float64Array(r)),e())},clearLiveSignals(){n()||(t.clear_live_signals(),e())},setLiveSignalsLeverage(r){n()||(t.set_live_signals_leverage(r),e())},getLiveSignalsLeverage(){if(n())return 10;try{return t.get_live_signals_leverage()}catch{return 10}},setLiveSignalsTrial(r){n()||(t.set_live_signals_trial(r),e())},setLiveSignalsShowEntry(r){n()||(t.set_live_signals_show_entry(r),e())},setLiveSignalsShowTpSl(r){n()||(t.set_live_signals_show_tp_sl(r),e())},setLiveSignalsShowMaxProfit(r){n()||(t.set_live_signals_show_max_profit(r),e())},setLiveSignalsShowLabels(r){n()||(t.set_live_signals_show_labels(r),e())},setLiveSignalsShowZones(r){n()||(t.set_live_signals_show_zones(r),e())},setLiveSignalsTextSize(r){n()||(t.set_live_signals_text_size(r),e())},setLiveSignalsPipValue(r){n()||(t.set_live_signals_pip_value(r),e())},setLiveSignalsLoading(r){n()||(t.set_live_signals_loading(r),e())},getLiveSignalsCount(){if(n())return 0;try{return t.get_live_signals_count()}catch{return 0}},enableVpin(){n()||v("vpin")&&(t.enable_vpin(),e())},disableVpin(){n()||(t.disable_vpin(),e())},isVpinEnabled(){if(n())return!1;try{return t.is_vpin_enabled()}catch{return!1}},setVpinData(r,i){n()||(t.set_vpin_data(r,i),e())},setVpinBucketSize(r){n()||(t.set_vpin_bucket_size(r),e())},getVpinBucketSize(){if(n())return 50;try{return t.get_vpin_bucket_size()}catch{return 50}},setVpinNumBuckets(r){n()||(t.set_vpin_num_buckets(r),e())},getVpinNumBuckets(){if(n())return 50;try{return t.get_vpin_num_buckets()}catch{return 50}},setVpinThreshold(r){n()||(t.set_vpin_threshold(r),e())},getVpinThreshold(){if(n())return .7;try{return t.get_vpin_threshold()}catch{return .7}},setVpinShowSma(r){n()||(t.set_vpin_show_sma(r),e())},setVpinShowZones(r){n()||(t.set_vpin_show_zones(r),e())},enableStopIceberg(){n()||v("stopIceberg")&&(t.enable_stop_iceberg(),e())},disableStopIceberg(){n()||(t.disable_stop_iceberg(),e())},isStopIcebergEnabled(){if(n())return!1;try{return t.is_stop_iceberg_enabled()}catch{return!1}},setSiShowStops(r){n()||(t.set_si_show_stops(r),e())},setSiShowIcebergs(r){n()||(t.set_si_show_icebergs(r),e())},setSiShowZones(r){n()||(t.set_si_show_zones(r),e())},setIcebergEvents(r,i,o,a,_,f){n()||(t.set_iceberg_events(r,i,o,a,_,f),e())},getStopRunCount(){if(n())return 0;try{return t.get_stop_run_count()}catch{return 0}},getIcebergCount(){if(n())return 0;try{return t.get_iceberg_count()}catch{return 0}},enableVolume(){t.enable_volume(),e()},disableVolume(){t.disable_volume(),e()},isVolumeEnabled(){return t.is_volume_enabled()},setVolumeMaPeriod(r){t.set_volume_ma_period(r),e()},setVolumeShowMa(r){t.set_volume_show_ma(r),e()},setVolumeShowSignals(r){t.set_volume_show_signals(r),e()},setVolumeColorMode(r){t.set_volume_color_mode(r),e()},getVolumeMaPeriod(){return t.get_volume_ma_period()},getVolumeShowMa(){return t.get_volume_show_ma()},getVolumeShowSignals(){return t.get_volume_show_signals()},getVolumeColorMode(){return t.get_volume_color_mode()},enableObSignals(){t.enable_ob_signals(),e()},disableObSignals(){t.disable_ob_signals(),e()},isObSignalsEnabled(){return t.is_ob_signals_enabled()},setObsShowWalls(r){t.set_obs_show_walls(r),e()},setObsShowGaps(r){t.set_obs_show_gaps(r),e()},setObsShowAlerts(r){t.set_obs_show_alerts(r),e()},setObsShowCom(r){t.set_obs_show_com(r),e()},setObsWalls(r,i){t.set_obs_walls(new Float64Array(r),new Float64Array(i)),e()},setObsGaps(r,i){t.set_obs_gaps(new Float64Array(r),new Float64Array(i)),e()},pushObsAlert(r,i,o,a,_){t.push_obs_alert(r,i,o,a,_),e()},setObsCom(r){t.set_obs_com(r),e()},clearObSignals(){t.clear_ob_signals(),e()},enableObFlow(){t.enable_ob_flow(),e()},disableObFlow(){t.disable_ob_flow(),e()},isObFlowEnabled(){return t.is_ob_flow_enabled()},setObfShowObi(r){t.set_obf_show_obi(r),e()},setObfShowNetFlow(r){t.set_obf_show_net_flow(r),e()},setObfShowCumDelta(r){t.set_obf_show_cum_delta(r),e()},pushObfSample(r,i,o,a){t.push_obf_sample(r,i,o,a),e()},setObfData(r){t.set_obf_data(new Float64Array(r)),e()},clearObFlow(){t.clear_ob_flow(),e()},setObfRatio(r){t.set_obf_ratio(r),e()},getObfRatio(){return t.get_obf_ratio()},enableObMicro(){t.enable_ob_micro(),e()},disableObMicro(){t.disable_ob_micro(),e()},isObMicroEnabled(){return t.is_ob_micro_enabled()},setObmData(r,i,o,a,_,f,E,p,F,u,O,A,T){t.set_obm_data(r,i,o,a,_,f,E,p,F,u,O,A,T),e()},setObmAnchorTopRight(r){t.set_obm_anchor_top_right(r),e()},clearObMicro(){t.clear_ob_micro(),e()},enableAggLiq(){v("aggLiquidations")&&(t.enable_agg_liq(),e())},disableAggLiq(){t.disable_agg_liq(),e()},isAggLiqEnabled(){return t.is_agg_liq_enabled()},setAggLiqData(r){let i;if(r&&r.length>0&&typeof r[0]=="object"&&!Array.isArray(r[0])){i=new Float64Array(r.length*6);for(let o=0;o<r.length;o++){let a=r[o];i[o*6+0]=Number(a.time)||0,i[o*6+1]=Number(a.longUsd)||0,i[o*6+2]=Number(a.shortUsd)||0,i[o*6+3]=Number(a.longQty)||0,i[o*6+4]=Number(a.shortQty)||0,i[o*6+5]=Number(a.count)||0}}else i=new Float64Array(r||[]);t.set_agg_liq_data(i),e()},pushAggLiqBar(r,i,o,a,_,f){t.push_agg_liq_bar(r,i,o,a,_,f>>>0),e()},clearAggLiq(){t.clear_agg_liq(),e()},setAggLiqMode(r){t.set_agg_liq_mode(r),e()},getAggLiqMode(){return t.get_agg_liq_mode()},setAggLiqShowLong(r){t.set_agg_liq_show_long(r),e()},setAggLiqShowShort(r){t.set_agg_liq_show_short(r),e()},setAggLiqHover(r){t.set_agg_liq_hover(r|0),e()},aggLiqBarJson(r){let i=t.agg_liq_bar_json(r|0);if(!i)return null;try{return JSON.parse(i)}catch{return null}},setAggLiqRatio(r){t.set_agg_liq_ratio(r),e()},getAggLiqRatio(){return t.get_agg_liq_ratio()},screenToAggLiqY(r){return t.screen_to_agg_liq_y(r)},aggLiqToScreenY(r){return t.agg_liq_to_screen_y(r)},setAggLiqSignals(r){let i;if(r&&r.length>0&&typeof r[0]=="object"&&!Array.isArray(r[0])){i=new Float64Array(r.length*6);for(let o=0;o<r.length;o++){let a=r[o];i[o*6+0]=Number(a.time)/1e3,i[o*6+1]=co[a.type]??-1,i[o*6+2]=fo[a.side]??0,i[o*6+3]=Number(a.volumeUsd)||0,i[o*6+4]=Number(a.ratio)||0,i[o*6+5]=Math.max(0,Math.min(1,Number(a.confidence)||0))}}else i=new Float64Array(r||[]);t.set_agg_liq_signals(i),e()},pushAggLiqSignal(r){if(!r||r.time==null||r.type==null)return;let i=co[r.type];i!=null&&(t.push_agg_liq_signal(Number(r.time)/1e3,i,fo[r.side]??0,Number(r.volumeUsd)||0,Number(r.ratio)||0,Math.max(0,Math.min(1,Number(r.confidence)||0))),e())},clearAggLiqSignals(){t.clear_agg_liq_signals(),e()},setAggLiqShowSignals(r){t.set_agg_liq_show_signals(!!r),e()},isAggLiqShowSignals(){return t.is_agg_liq_show_signals()},setAggLiqSignalsOnChart(r){t.set_agg_liq_signals_on_chart(!!r),e()},isAggLiqSignalsOnChart(){return t.is_agg_liq_signals_on_chart()},enableMrdPullback(){n()||v("mrdPullback")&&(t.enable_mrd_pullback(),e())},disableMrdPullback(){n()||(t.disable_mrd_pullback(),e())},isMrdPullbackEnabled(){if(n())return!1;try{return t.is_mrd_pullback_enabled()}catch{return!1}},setMrdPullbackEntryMode(r){n()||(t.set_mrd_pullback_entry_mode(r),e())},setMrdPullbackTrendMode(r){n()||(t.set_mrd_pullback_trend_mode(r),e())},setMrdPullbackShowBand(r){n()||(t.set_mrd_pullback_show_band(r),e())},setMrdPullbackShowHiddenDiv(r){n()||(t.set_mrd_pullback_show_hidden_div(r),e())},setMrdPullbackSrMode(r){n()||(t.set_mrd_pullback_sr_mode(r),e())},setMrdPullbackTextSize(r){n()||(t.set_mrd_pullback_text_size(r),e())},setMrdPullbackTfMode(r){n()||(t.set_mrd_pullback_tf_mode(r),e())},setMrdPullbackHtfKlines(r,i,o,a,_,f){n()||(t.set_mrd_pullback_htf_klines(be(r),be(i),be(o),be(a),be(_),be(f)),e())},updateMrdPullbackLastHtfKline(r,i,o,a,_,f){n()||(t.update_mrd_pullback_last_htf_kline(r,i,o,a,_,f),e())},clearMrdPullbackHtfKlines(){n()||(t.clear_mrd_pullback_htf_klines(),e())},enableOiCvdPattern(){n()||(t.enable_oi_cvd_pattern(),e())},disableOiCvdPattern(){n()||(t.disable_oi_cvd_pattern(),e())},isOiCvdPatternEnabled(){if(n())return!1;try{return t.is_oi_cvd_pattern_enabled()}catch{return!1}},setOiCvdPatternKinds(r){if(n())return;let i=(Number(r)|0)&15;t.set_oi_cvd_pattern_kinds(i>>>0),e()},setOiCvdPatternThresholds(r){if(n()||!r)return;let i=(o,a)=>{let _=Number(o);return Number.isFinite(_)?_:a};t.set_oi_cvd_pattern_thresholds(i(r.lookback,20)>>>0,i(r.oiThresholdPct,3),i(r.priceCompressPct,1),i(r.cvdQuietFactor,.2),i(r.trapLookback,5)>>>0,i(r.trapOiPct,.2),i(r.cooldownBars,10)>>>0),e()},setOiCvdPatternShowLabels(r){n()||(t.set_oi_cvd_pattern_show_labels(!!r),e())},setOiCvdPatternTextSize(r){if(n())return;let i=Number(r);Number.isFinite(i)&&(t.set_oi_cvd_pattern_text_size(i),e())}}}var co=Object.freeze({spike:0,capitulation:1,cascade_start:2,cascade_exhaustion:3,imbalance:4,silent_zone:5}),fo=Object.freeze({neutral:0,long:1,short:2}),ya=Object.freeze({POC_REVERT_LONG:{code:1,bit:0,side:"long",label:"POC\u2191"},POC_REVERT_SHORT:{code:2,bit:1,side:"short",label:"POC\u2193"},VAL_BOUNCE:{code:3,bit:2,side:"long",label:"VAL\u2192"},VAH_REJECT:{code:4,bit:3,side:"short",label:"VAH\u2192"},VAH_BREAK:{code:5,bit:4,side:"long",label:"\u25B6VAH"},VAL_BREAK:{code:6,bit:5,side:"short",label:"\u25C0VAL"},HVN_BUY_IMBAL:{code:7,bit:6,side:"long",label:"+HVN"},HVN_SELL_IMBAL:{code:8,bit:7,side:"short",label:"-HVN"}}),Sa=Object.freeze({ROLLING:0,SESSION_DAY:1,AUTO:2,SESSION_3D:3,SESSION_WEEK:4,SESSION_MONTH:5}),Ta=Object.freeze({EXHAUSTION:1,ABSORPTION:2,DELTA_DIV:4,STRICT_CVD:8,ALL:15});function _o(t,e,n,s,v){let c=r=>s()(r),d=()=>{try{v?.()}catch{}},h=(r,i,o)=>r<=1&&i<=1&&o<=1&&(r>0||i>0||o>0)?[Math.round(r*255),Math.round(i*255),Math.round(o*255)]:[r&255,i&255,o&255];return{addMarker(r,i,o){d(),t.add_marker(r,i,o),e()},clearMarkers(){d(),t.clear_markers(),e()},hitTestMarker(r,i){return t.hit_test_marker(r,i)},selectMarker(r){t.select_marker(r),e()},deselectMarker(){t.deselect_marker(),e()},getSelectedMarker(){return t.get_selected_marker()},removeMarker(r){d(),t.remove_marker(r),e()},deleteSelectedMarker(){let r=t.get_selected_marker();return r>0&&(d(),t.remove_marker(r),e()),r},addTrendline(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_trendline(r,i,o,a,O,A,T,p,F,u);return e(),P},addImage(r,i,o,a,_,f,E,p,F=0){d();let[u,O,A]=h(f,E,p),T=t.add_image(r>>>0,i,o,a,_,u,O,A,F);return e(),T},getDrawingImageId(r){try{return t.get_drawing_image_id(r>>>0)}catch{return 0}},listImageDrawingIds(){try{let r=t.list_image_ids();return Array.from(r||[])}catch{return[]}},addHorizontalLine(r,i,o,a,_,f,E,p=0){d();let[F,u,O]=h(o,a,_),A=t.add_horizontal_line(r,i,F,u,O,f,E,p);return e(),A},addVerticalLine(r,i,o,a,_,f,E=0){d();let[p,F,u]=h(i,o,a),O=t.add_vertical_line(r,p,F,u,_,f,E);return e(),O},addArrow(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_arrow(r,i,o,a,O,A,T,p,F,u);return e(),P},addArrowMarker(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_arrow_marker(r,i,o,a,O,A,T,p,F,u);return e(),P},addPriceRangeMeasure(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_price_range_measure(r,i,o,a,O,A,T,p,F,u);return e(),P},addDayRangeMeasure(r,i,o,a,_,f,E,p,F,u=0){d();let[O,A,T]=h(_,f,E),P=t.add_day_range_measure(r,i,o,a,O,A,T,p,F,u);return e(),P},addFibRetracement(r,i,o,a,_,f,E,p,F,u=0){if(!c("drawingFull"))return 0;d();let[O,A,T]=h(_,f,E),P=t.add_fib_retracement(r,i,o,a,O,A,T,p,F,u);return e(),P},addFibExtension(r,i,o,a,_,f,E,p,F,u,O,A=0){if(!c("drawingFull"))return 0;d();let[T,P,H]=h(E,p,F),x=t.add_fib_extension(r,i,o,a,_,f,T,P,H,u,O,A);return e(),x},addLongPosition(r,i,o,a,_,f,E,p,F,u=0){if(!c("drawingFull"))return 0;d();let[O,A,T]=h(_,f,E),P=t.add_long_position(r,i,o,a,O,A,T,p,F,u);return e(),P},addShortPosition(r,i,o,a,_,f,E,p,F,u=0){if(!c("drawingFull"))return 0;d();let[O,A,T]=h(_,f,E),P=t.add_short_position(r,i,o,a,O,A,T,p,F,u);return e(),P},addAnchoredVwap(r,i,o,a,_,f,E=0){if(!c("drawingFull"))return 0;d();let[p,F,u]=h(i,o,a),O=t.add_anchored_vwap(r,p,F,u,_,f,E);return e(),O},setVwapRenderConfig(r){if(!(n()||!r))try{t.set_vwap_render_config(JSON.stringify(r)),e()}catch(i){console.warn("[bridge] setVwapRenderConfig failed",i)}},setFibRenderConfig(r){if(!(n()||!r))try{t.set_fib_render_config(JSON.stringify(r)),e()}catch(i){console.warn("[bridge] setFibRenderConfig failed",i)}},setFibExtRenderConfig(r){if(!(n()||!r))try{t.set_fib_ext_render_config(JSON.stringify(r)),e()}catch(i){console.warn("[bridge] setFibExtRenderConfig failed",i)}},addPriceLabel(r,i,o,a,_,f,E=0){d();let[p,F,u]=h(o,a,_),O=t.add_price_label(r,i,p,F,u,f,E);return e(),O},addTextNote(r,i,o,a,_,f,E=0){d();let[p,F,u]=h(o,a,_),O=t.add_text_note(r,i,p,F,u,f,E);return e(),O},addElliottImpulse(r,i,o,a,_,f,E=0){if(!c("drawingFull"))return 0;d();let[p,F,u]=h(o,a,_),O=t.add_elliott_impulse(r,i,p,F,u,f,E);return e(),O},addElliottAutoRange(r,i,o,a,_,f,E,p,F,u=0){if(!c("drawingFull"))return 0;d();let[O,A,T]=h(_,f,E),P=t.add_elliott_auto_range(r,i,o,a,O,A,T,p,F,u);return e(),P},setElliottAutoConfig(r,i,o){try{t.set_elliott_auto_config(!!r,(i|0)>>>0,Number.isFinite(o)?o:1),e()}catch(a){console.warn("[bridge] setElliottAutoConfig failed",a)}},refreshElliottAuto(){try{t.refresh_elliott_auto_drawings(),e()}catch{}},setDrawingFontSize(r,i){d(),t.set_drawing_font_size(r,i),e()},getDrawingFontSize(r){return t.get_drawing_font_size(r)},setDrawingText(r,i){d(),t.set_drawing_text(r,i),e()},getDrawingText(r){return t.get_drawing_text(r)},setDrawingStyle(r,i,o,a,_){d();let[f,E,p]=h(i,o,a);t.set_drawing_style(r,f,E,p,_),e()},getDrawingColor(r){let i=t.get_drawing_color(r);return i?{r:i>>>24&255,g:i>>>16&255,b:i>>>8&255,lineWidth:(i&255)/10}:null},getDrawingDashed(r){try{return t.get_drawing_dashed(r)}catch{return!1}},setDrawingDashed(r,i){d(),t.set_drawing_dashed(r,i),e()},getDrawingHideLabel(r){try{return t.get_drawing_hide_label(r)}catch{return!1}},setDrawingHideLabel(r,i){d(),t.set_drawing_hide_label(r,i),e()},getDrawingBgColor(r){try{let i=t.get_drawing_bg_color(r)>>>0;return i===0?null:{r:i>>16&255,g:i>>8&255,b:i&255}}catch{return null}},setDrawingBgColor(r,i,o,a){d();let[_,f,E]=h(i,o,a);t.set_drawing_bg_color(r,_,f,E),e()},clearDrawingBgColor(r){d(),t.clear_drawing_bg_color(r),e()},getDrawingFlipLeft(r){try{return t.get_drawing_flip_left(r)}catch{return!1}},setDrawingFlipLeft(r,i){d();try{t.set_drawing_flip_left(r,i),e()}catch{}},getDrawingTextWrap(r){try{return t.get_drawing_text_wrap(r)}catch{return!1}},setDrawingTextWrap(r,i){d();try{t.set_drawing_text_wrap(r,i),e()}catch{}},getDrawingKindId(r){try{return t.get_drawing_kind_id(r)}catch{return 255}},removeDrawing(r){d(),t.remove_drawing(r),e()},clearDrawings(){d(),t.clear_drawings(),e()},drawingCount(){return t.drawing_count()},setDrawingPreview(r,i,o,a,_,f,E,p,F,u,O=0){let[A,T,P]=h(f,E,p);t.set_drawing_preview(r,i,o,a,_,A,T,P,F,u,O),e()},clearDrawingPreview(){t.clear_drawing_preview(),e()},cancelBrush(){t.cancel_brush(),e()},selectDrawing(r){t.select_drawing(r),e()},deselectDrawing(){t.deselect_drawing(),e()},getSelectedDrawing(){return t.get_selected_drawing()},deleteSelectedDrawing(){let r=t.get_selected_drawing();return r>0&&(d(),t.remove_drawing(r),e()),r},exportDrawingsJson(){try{return t.export_drawings_json()}catch{return"[]"}},importDrawingsJson(r){try{t.import_drawings_json(r),e()}catch(i){console.warn("[bridge] importDrawingsJson failed",i)}},exportDrawingById(r){try{return t.export_drawing_by_id(r)}catch{return""}},pasteDrawingJson(r,i=30,o=30){if(typeof r!="string"||r.length===0)return 0;try{d();let a=t.paste_drawing_json(r,i,o);return a>0&&e(),a>>>0}catch(a){return console.warn("[bridge] pasteDrawingJson failed",a),0}},screenToWorld(r,i){return{x:t.screen_to_world_x(r),y:t.screen_to_world_y(i)}},worldToScreen(r,i){try{return{x:t.world_to_screen_x(r),y:t.world_to_screen_y(i)}}catch{return null}}}}var Ct=t=>t instanceof Float64Array?t:new Float64Array(t);function ho(t,e,n,s){let v=c=>s()(c);return{setKlines(c,d,h,r,i,o){n()||(t.set_klines(Ct(c),Ct(d),Ct(h),Ct(r),Ct(i),Ct(o)),e())},setKlinesPreserveViewport(c,d,h,r,i,o){n()||(t.set_klines_preserve_viewport(Ct(c),Ct(d),Ct(h),Ct(r),Ct(i),Ct(o)),e())},setRealTimestamps(c){n()||(t.set_real_timestamps(Ct(c)),e())},appendRealTimestamp(c){n()||t.append_real_timestamp(c)},prependKlines(c,d,h,r,i,o){n()||(t.prepend_klines(Ct(c),Ct(d),Ct(h),Ct(r),Ct(i),Ct(o)),e())},appendKline(c,d,h,r,i,o){n()||(t.append_kline(c,d,h,r,i,o),e())},updateLastKline(c,d,h,r,i,o){n()||(t.update_last_kline(c,d,h,r,i,o),e())},updateKlineAt(c,d,h,r,i,o,a){if(!n()){try{t.update_kline_at(c,d,h,r,i,o,a)}catch{}e()}},popLastKline(){if(n())return!1;let c=t.pop_last_kline();return c&&e(),!!c},getLastClose(){try{return t.get_last_close()}catch{return 0}},getKlineCount(){if(n())return 0;try{return t.kline_count()}catch{return 0}},getKlineTimestamps(){if(n())return null;try{return t.kline_timestamps()}catch{return null}},getKlineOpens(){if(n())return null;try{return t.kline_opens()}catch{return null}},getKlineHighs(){if(n())return null;try{return t.kline_highs()}catch{return null}},getKlineLows(){if(n())return null;try{return t.kline_lows()}catch{return null}},getKlineCloses(){if(n())return null;try{return t.kline_closes()}catch{return null}},getKlineVolumes(){if(n())return null;try{return t.kline_volumes()}catch{return null}},setHeatmap(c,d,h,r,i,o,a){n()||v("heatmap")&&(t.set_heatmap(Ct(c),d,h,r,i,o,a),e())},appendHeatmapColumn(c,d,h,r){n()||v("heatmap")&&(t.append_heatmap_column(Ct(c),d,h,r),e())},updateLastHeatmapColumn(c,d,h){n()||(t.update_last_heatmap_column(Ct(c),d,h),e())},getHeatmapLastTimestamp(){if(n())return 0;try{return t.get_heatmap_last_timestamp()??0}catch{return 0}},getHeatmapXStep(){if(n())return 0;try{return t.get_heatmap_x_step()??0}catch{return 0}},updateHeatmapColumnAt(c,d,h,r){n()||(t.update_heatmap_column_at(Ct(c),d,h,r),e())},setHeatmapRange(c,d){n()||(t.set_heatmap_range(c,d),e())},getHeatmapDataRange(){try{return{min:t.get_heatmap_data_min(),max:t.get_heatmap_data_max()}}catch{return{min:0,max:0}}},setHeatmapPrefetchRange(c){try{t.set_heatmap_prefetch_range(c)}catch{}},clearHeatmapPrefetchRange(){try{t.clear_heatmap_prefetch_range()}catch{}},getHeatmapPrefetchMax(){try{return t.get_heatmap_prefetch_max()}catch{return 0}},setHeatmapColorScheme(c){try{t.set_heatmap_color_scheme(c),e()}catch{}},setHeatmapShowProfile(c){try{t.set_heatmap_show_profile(c),e()}catch{}},isHeatmapShowProfile(){try{return t.is_heatmap_show_profile()}catch{return!1}},setHeatmapProfileBrightness(c){try{t.set_heatmap_profile_brightness(Number(c)||1),e()}catch{}},getHeatmapProfileBrightness(){try{return t.get_heatmap_profile_brightness()}catch{return 1}},setHeatmapProfileBarLength(c){try{t.set_heatmap_profile_bar_length(Number(c)||1),e()}catch{}},getHeatmapProfileBarLength(){try{return t.get_heatmap_profile_bar_length()}catch{return 1}},setHeatmapWalls(c){try{t.set_heatmap_walls(new Float64Array(c)),e()}catch{}},clearHeatmapWalls(){try{t.clear_heatmap_walls(),e()}catch{}},getHeatmapWallCount(){try{return t.get_heatmap_wall_count()}catch{return 0}},setChartType(c){n()||c===2&&!v("footprint")||(t.set_chart_type(c),e())},getChartType(){if(n())return 0;try{return t.get_chart_type()}catch{return 0}},setFootprintTickSize(c){n()||v("footprint")&&(t.set_footprint_tick_size(c),e())},footprintSetFontScale(c){if(n()||!v("footprint"))return;let d=Number.isFinite(+c)?+c:1;try{t.footprint_set_font_scale(d)}catch{}e()},footprintEnsureLen(c){n()||t.footprint_ensure_len(c)},footprintAddTrade(c,d,h,r){n()||t.footprint_add_trade(c,d,h,r)},footprintAddTradeBatch(c){n()||!c||c.length===0||t.footprint_add_trade_batch(Ct(c))},footprintSetBar(c,d,h,r,i){n()||(t.footprint_set_bar(c,d,h,r,i),e())},footprintClear(){n()||(t.footprint_clear(),e())},footprintClearBar(c){n()||t.footprint_clear_bar(c)},footprintPrependEmpty(c){n()||t.footprint_prepend_empty(c)},footprintSetSignalKindsMask(c){if(!n()&&v("footprint")){try{t.footprint_set_signal_kinds_mask((c|0)&255)}catch{}e()}},footprintSetPocMarkerStyle(c){if(n()||!v("footprint"))return;let d=Math.max(0,Math.min(3,c|0));try{t.footprint_set_poc_marker_style(d)}catch{}e()},footprintSetNakedPocEnabled(c){if(!n()&&v("footprint")){try{t.footprint_set_naked_poc_enabled(!!c)}catch{}e()}},footprintSetMinCellVolumePct(c){if(n()||!v("footprint"))return;let d=Number.isFinite(+c)?Math.max(0,Math.min(100,+c)):0;try{t.footprint_set_min_cell_volume_pct(d)}catch{}e()},footprintSetShowSignals(c){n()||(t.footprint_set_show_signals(c),e())},footprintGetShowSignals(){if(n())return!0;try{return t.footprint_get_show_signals()}catch{return!0}},footprintSignalCount(){if(n())return 0;try{return t.footprint_signal_count()}catch{return 0}},footprintSetShowProfile(c){n()||(t.footprint_set_show_profile(c),e())},footprintGetShowProfile(){if(n())return!1;try{return t.footprint_get_show_profile()}catch{return!1}},footprintSetProfileScope(c){if(!n()){try{t.footprint_set_profile_scope((c|0)&255)}catch{}e()}},footprintGetProfileScope(){if(n())return 1;try{return t.footprint_get_profile_scope()}catch{return 1}},footprintSetProfileLookbackBars(c){if(n())return;let d=Math.max(5,Math.min(5e3,c|0));try{t.footprint_set_profile_lookback_bars(d)}catch{}e()},footprintSetVolumeUnitIsUsd(c){if(!n()){try{t.footprint_set_volume_unit_is_usd?.(!!c)}catch{}e()}},footprintGetVolumeUnitIsUsd(){if(n())return!1;try{return!!t.footprint_get_volume_unit_is_usd?.()}catch{return!1}},footprintGetProfileLookbackBars(){if(n())return 100;try{return t.footprint_get_profile_lookback_bars()}catch{return 100}},footprintProfileHitTest(c,d){if(n())return"";try{return t.footprint_profile_hit_test(c,d)}catch{return""}},footprintSetDisplayMode(c){n()||(t.footprint_set_display_mode(c),e())},footprintGetDisplayMode(){if(n())return 0;try{return t.footprint_get_display_mode()}catch{return 0}},footprintSetCellShape(c){if(!n()){try{t.footprint_set_cell_shape((c|0)===1?1:0)}catch{}e()}},footprintGetCellShape(){if(n())return 0;try{return t.footprint_get_cell_shape()}catch{return 0}},footprintSetBidColor(c){if(!n()){if(c==null)try{t.footprint_clear_bid_color()}catch{}else{let d=Math.max(0,Math.min(255,c.r|0)),h=Math.max(0,Math.min(255,c.g|0)),r=Math.max(0,Math.min(255,c.b|0));try{t.footprint_set_bid_color(d,h,r)}catch{}}e()}},footprintSetAskColor(c){if(!n()){if(c==null)try{t.footprint_clear_ask_color()}catch{}else{let d=Math.max(0,Math.min(255,c.r|0)),h=Math.max(0,Math.min(255,c.g|0)),r=Math.max(0,Math.min(255,c.b|0));try{t.footprint_set_ask_color(d,h,r)}catch{}}e()}},footprintSetColorIntensity(c){if(n())return;let d=Number.isFinite(+c)?+c:1;try{t.footprint_set_color_intensity(d)}catch{}e()},footprintGetColorIntensity(){if(n())return 1;try{return t.footprint_get_color_intensity()}catch{return 1}},footprintGetTooltipRect(){if(n())return null;try{let c=t.footprint_tooltip_rect();if(!c||c.length!==4)return null;let d=+c[2],h=+c[3];return!Number.isFinite(d)||!Number.isFinite(h)||d<=0||h<=0?null:{x:+c[0],y:+c[1],w:d,h}}catch{return null}},footprintGetProfileTooltipRect(){if(n())return null;try{let c=t.footprint_profile_tooltip_rect();if(!c||c.length!==4)return null;let d=+c[2],h=+c[3];return!Number.isFinite(d)||!Number.isFinite(h)||d<=0||h<=0?null:{x:+c[0],y:+c[1],w:d,h}}catch{return null}},footprintSetTooltipEnabled(c){if(!n())try{t.set_footprint_tooltip_enabled(!!c)}catch(d){console.error("[bridgeData] footprintSetTooltipEnabled failed:",d)}},footprintSetProfileTooltipEnabled(c){if(!n())try{t.set_footprint_profile_tooltip_enabled(!!c)}catch(d){console.error("[bridgeData] footprintSetProfileTooltipEnabled failed:",d)}},footprintSetStackedImbalanceEnabled(c){n()||(t.footprint_set_stacked_imbalance_enabled(!!c),e())},footprintGetStackedImbalanceEnabled(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_enabled()}catch{return!1}},footprintSetStackedImbalanceMode(c){n()||(t.footprint_set_stacked_imbalance_mode(c|0),e())},footprintSetStackedImbalanceRatio(c){n()||(t.footprint_set_stacked_imbalance_ratio(Number(c)||2.3),e())},footprintSetStackedImbalanceMinStack(c){n()||(t.footprint_set_stacked_imbalance_min_stack(Math.max(2,c|0)),e())},footprintSetStackedImbalanceShowFilled(c){n()||(t.footprint_set_stacked_imbalance_show_filled(!!c),e())},footprintSetStackedImbalanceShowBox(c){n()||(t.footprint_set_stacked_imbalance_show_box(!!c),e())},footprintSetStackedImbalanceMaxAge(c){n()||(t.footprint_set_stacked_imbalance_max_age(Math.max(0,c|0)),e())},footprintSetStackedImbalanceHighlightCells(c){if(!n()){try{t.footprint_set_stacked_imbalance_highlight_cells(!!c)}catch{}e()}},footprintGetStackedImbalanceHighlightCells(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_highlight_cells()}catch{return!1}},footprintSetStackedImbalanceShowBracket(c){if(!n()){try{t.footprint_set_stacked_imbalance_show_bracket(!!c)}catch{}e()}},footprintGetStackedImbalanceShowBracket(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_show_bracket()}catch{return!1}},footprintSetStackedImbalanceShowRay(c){if(!n()){try{t.footprint_set_stacked_imbalance_show_ray(!!c)}catch{}e()}},footprintGetStackedImbalanceShowRay(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_show_ray()}catch{return!1}},footprintStackedZoneCount(){if(n())return 0;try{return t.footprint_stacked_zone_count()}catch{return 0}},footprintRecomputeStackedImbalances(){if(!n()){try{t.footprint_recompute_stacked_imbalances()}catch{}e()}},enableDeltaHistogram(){n()||t.enable_delta_histogram()},disableDeltaHistogram(){n()||t.disable_delta_histogram()},deltaHistogramEnabled(){if(n())return!1;try{return t.delta_histogram_enabled()}catch{return!1}}}}var Ks=1,wr=new Map,$s=4096,Qr=Object.freeze({r:255,g:255,b:255,a:153});function js(t){if(typeof t!="string")return Qr;if(t.charCodeAt(0)===35){let n=t.slice(1);return n.length===8?Object.freeze({r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16),a:parseInt(n.slice(6,8),16)}):Object.freeze({r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16),a:255})}let e=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\)/);return e?Object.freeze({r:+e[1],g:+e[2],b:+e[3],a:e[4]!==void 0?Math.round(+e[4]*255):255}):Qr}function $(t){if(typeof t!="string")return Qr;let e=wr.get(t);if(e!==void 0)return e;wr.size>=$s&&wr.clear();let n=js(t);return wr.set(t,n),n}var ir=null,vr=new Map,Qs=512;function Js(t,e){if(t==null)return 0;let n=String(t),s=`${e}|${n}`,v=vr.get(s);if(v!==void 0)return v;if(ir===null){if(typeof document>"u")return 0;let d=document.createElement("canvas");if(d.width=d.height=8,ir=d.getContext("2d"),!ir)return 0}ir.font=`${Math.round(e)}px "IBM Plex Mono",monospace`;let c=ir.measureText(n).width;return vr.size>=Qs&&vr.clear(),vr.set(s,c),c}function Ds(){}function Jr(t,e,n,s){let v=typeof s=="function"?s:Ds,c=new Map,d=null,h=0,r=NaN,i=NaN,o=0,a=0,_=0,f=null,E={tbv:!1,oi:!1,fr:!1};function p(){let l=!1,g=!1,b=!1;for(let y of c.values())if(y.enabled&&(y._needsTakerBuy&&(l=!0),y._needsOpenInterest&&(g=!0),y._needsFundingRate&&(b=!0),l&&g&&b))break;return{tbv:l,oi:g,fr:b}}function F(){let l=p(),g=!E.tbv&&l.tbv||!E.oi&&l.oi||!E.fr&&l.fr;if(E=l,g&&typeof f=="function")try{f({...l})}catch(b){console.warn("[CustomIndicator] dsl-deriv-needed callback failed:",b)}}let u=300,O=16,A=500,T=500,P=100,H=100,x=500,B=100,Y=100,z=500;function K(){let l;try{l=t.kline_count()}catch{return d}if(l===0)return null;a!==_&&(_=a,d=null,h=-1,r=NaN,i=NaN);let g=t.kline_closes(),b=g?.[l-1]??NaN,y=l!==h,m=d==null,S=NaN,M=(()=>{if(y||m)return!1;if(b!==r)return!0;try{S=t.kline_highs()?.[l-1]??NaN}catch{}return S!==i})();if(!y&&!m&&!M)return d;if(M){let N=!1;for(let C of c.values())if(C.calcOnEveryTick&&!C._heavyCompute&&C.enabled){N=!0;break}if(!N||performance.now()-o<u)return r=b,isNaN(S)||(i=S),d}try{let N=t.kline_timestamps(),R=t.kline_opens(),C=t.kline_highs(),I=t.kline_lows(),U=t.kline_volumes();if(!N||!g)return d;let Z=(bt,Ut)=>{if(!bt||bt.length===0)return[];if(bt.length===Ut)return Array.from(bt);let ve=new Array(Ut),Mt=Math.min(bt.length,Ut);for(let $t=0;$t<Mt;$t++)ve[$t]=bt[$t];for(let $t=Mt;$t<Ut;$t++)ve[$t]=NaN;return ve},Q=Z(t.kline_taker_buy_volume?.()??[],l),lt=Z(t.kline_oi_aligned?.()??[],l),_t=Z(t.kline_fr_aligned?.()??[],l);d={timestamps:Array.from(N),open:Array.from(R),high:Array.from(C),low:Array.from(I),close:Array.from(g),volume:Array.from(U),taker_buy_volume:Q,open_interest:lt,funding_rate:_t,length:l},h=l,r=b,i=isNaN(S)?C?.[l-1]??NaN:S,o=performance.now();let wt=M&&!y&&!m;for(let bt of c.values())bt.enabled&&(wt?bt.calcOnEveryTick&&!bt._heavyCompute&&(bt._needsCompute=!0):bt._needsCompute=!0)}catch{}return d}let at=new WeakMap;function j(l){if(l instanceof Float64Array)return l;if(!Array.isArray(l))return new Float64Array(0);let g=at.get(l);if(g&&g.length===l.length)return g;g=new Float64Array(l.length);for(let b=0;b<l.length;b++)g[b]=l[b];return at.set(l,g),g}function X(l){return l instanceof Uint32Array?l:new Uint32Array(l||[])}function k(l){if(typeof l=="number")return(l|0)&15;switch(l){case"left":return 1;case"right":return 2;case"both":return 3;case"up":return 4;case"down":return 8;default:return 0}}function J(l){switch(l){case"below":return 1;case"above":return 2;case"left":return 3;case"right":return 4;default:return 0}}function it(l){switch(l){case"triangleUp":return 1;case"triangleDown":return 2;case"square":return 3;case"diamond":return 4;case"cross":return 5;case"xcross":return 6;case"arrowUp":return 7;case"arrowDown":return 8;default:return 0}}let rt=0,ut=null,nt=new Map,ct=null,ft=new Map,mt={slotLabel:P,slotBox:T,slotLine:A,slotPolyline:H,slotTrendline:z,slotHline:x,slotFibRet:B,slotChannel:Y};function dt(l){if(!Array.isArray(l)||l.length===0)return;let g=Object.create(null),b=new Uint8Array(l.length),y=!1;for(let S=l.length-1;S>=0;S--){let M=l[S],N=mt[M?.kind];if(!N)continue;let R=g[M.kind]||0;R>=N?(b[S]=1,y=!0):g[M.kind]=R+1}if(!y)return;let m=0;for(let S=0;S<l.length;S++)b[S]||(l[m++]=l[S]);l.length=m}function At(l,g,b,y){if(b<=0)return;let m=0,S=null;for(let[M,N]of l)N.kind===g&&(m++,S===null&&(S=M));if(!(m<b))for(;m>=b&&S!==null;){let M=l.get(S);if(M){try{y(M.id)}catch{}l.delete(S)}m--,S=null;for(let[N,R]of l)if(R.kind===g){S=N;break}}}let Ft=l=>t.script_object_delete(l),zt=l=>t.script_drawing_delete(l);function xt(){return{seriesLine(l,g="#ffffff99",b=1.5){let y=$(g);t.custom_series_line(j(l),y.r,y.g,y.b,y.a,b)},seriesDashedLine(l,g="#ffffff66",b=1,y=4,m=4){let S=$(g);t.custom_series_dashed_line(j(l),S.r,S.g,S.b,S.a,b,y,m)},band(l,g,b="rgba(100,149,237,0.08)"){let y=$(b);t.custom_band(j(l),j(g),y.r,y.g,y.b,y.a)},seriesCandles(l,g,b,y,m="#089981",S="#F23645",M,N){let R=$(m),C=$(S),I=M!=null?$(M):{r:0,g:0,b:0,a:0},U=Number.isFinite(N)&&N>0?N:0;t.custom_candles(j(l),j(g),j(b),j(y),R.r,R.g,R.b,R.a,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U)},hline(l,g="#ffffff66",b=1){let y=$(g);t.custom_hline(l,y.r,y.g,y.b,y.a,b)},dashedHline(l,g="#ffffff66",b=1,y=6,m=4){let S=$(g);t.custom_dashed_hline(l,S.r,S.g,S.b,S.a,b,y,m)},marker(l,g,b="#e8a04a",y=3){let m=$(b);t.custom_marker(l,g,m.r,m.g,m.b,m.a,y)},markerUp(l,g,b="#26a69a",y=5){let m=$(b);t.custom_marker_up(l,g,m.r,m.g,m.b,m.a,y)},markerDown(l,g,b="#ef5350",y=5){let m=$(b);t.custom_marker_down(l,g,m.r,m.g,m.b,m.a,y)},text(l,g,b,y="#ffffffaa",m=10,S="center"){let M=$(y),N=S==="center"?1:S==="right"?2:0;t.custom_text(l,g,b,M.r,M.g,M.b,M.a,m,N)},priceLabel(l,g,b="#ffffffaa",y=10){let m=$(b);t.custom_price_label(l,g,m.r,m.g,m.b,m.a,y)},linePx(l,g,b,y,m,S=1){let M=$(m);t.custom_line_px(l,g,b,y,M.r,M.g,M.b,M.a,S)},fillRectPx(l,g,b,y,m){let S=$(m);t.custom_fill_rect_px(l,g,b,y,S.r,S.g,S.b,S.a)},fillRoundRectPx(l,g,b,y,m,S){let M=$(S);t.custom_fill_round_rect_px(l,g,b,y,m,M.r,M.g,M.b,M.a)},strokeRectPx(l,g,b,y,m,S=1){let M=$(m);t.custom_stroke_rect_px(l,g,b,y,M.r,M.g,M.b,M.a,S)},textPx(l,g,b,y,m=10,S="left"){let M=$(y),N=S==="center"?1:S==="right"?2:0;t.custom_text_px(l,g,b,M.r,M.g,M.b,M.a,m,N)},measureTextPx(l,g=10){return Js(l,g)},worldToScreenX:l=>t.world_to_screen_x(l),worldToScreenY:l=>t.world_to_screen_y(l),screenToWorldX:l=>t.screen_to_world_x(l),screenToWorldY:l=>t.screen_to_world_y(l),chartArea:()=>({x:t.chart_area_x(),y:t.chart_area_y(),w:t.chart_area_w(),h:t.chart_area_h()}),paneSeriesLine(l,g="#e8a04a",b=1.5){let y=$(g);t.custom_pane_series_line(j(l),y.r,y.g,y.b,y.a,b)},paneSeriesDashedLine(l,g="#e8a04a99",b=1,y=4,m=4){let S=$(g);t.custom_pane_series_dashed_line(j(l),S.r,S.g,S.b,S.a,b,y,m)},paneBand(l,g,b="rgba(232, 160, 74, 0.10)"){let y=$(b);t.custom_pane_band(j(l),j(g),y.r,y.g,y.b,y.a)},paneSeriesCandles(l,g,b,y,m="#089981",S="#F23645",M,N){let R=$(m),C=$(S),I=M!=null?$(M):{r:0,g:0,b:0,a:0},U=Number.isFinite(N)&&N>0?N:0;t.custom_pane_candles(j(l),j(g),j(b),j(y),R.r,R.g,R.b,R.a,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U)},paneHline(l,g="#ffffff44",b=1){let y=$(g);t.custom_pane_hline(l,y.r,y.g,y.b,y.a,b)},paneDashedHline(l,g="#ffffff44",b=1,y=4,m=4){let S=$(g);t.custom_pane_dashed_hline(l,S.r,S.g,S.b,S.a,b,y,m)},paneLabel(l,g,b="#ffffffaa",y=10,m="left"){let S=$(b),M=m==="center"?1:m==="right"?2:0;t.custom_pane_label(l,String(g),S.r,S.g,S.b,S.a,y,M)},line(l,g,b,y,m="#ffffff66",S=1,M=0,N=0,R=0){let C=$(m),I=k(R);t.custom_line(l,g,b,y,C.r,C.g,C.b,C.a,S,M,N,I)},vline(l,g="#ffffff66",b=1,y=0,m=0){let S=$(g);t.custom_vline(l,S.r,S.g,S.b,S.a,b,y,m)},box(l,g,b,y,m={}){let S=$(m.bg??m.bgColor??"rgba(232,160,74,0.08)"),M=$(m.border??m.borderColor??"#ffffff44"),N=Number.isFinite(m.lineWidth)?m.lineWidth:1,R=!!m.dashed;t.custom_box(l,g,b,y,S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N,R)},label(l,g,b,y={}){let m=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),S=$(y.border??y.borderColor??"#ffffff44"),M=$(y.color??y.textColor??"#ffffffe0"),N=Number.isFinite(y.fontSize)?y.fontSize:11,R=Number.isFinite(y.lineWidth)?y.lineWidth:1,C=y.align==="center"?1:y.align==="right"?2:0,I=J(y.anchor);t.custom_label(l,g,String(b),m.r,m.g,m.b,m.a,S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N,R,C,I)},polylineWorld(l,g,b="#e8a04a",y=1.5,m={}){let S=$(b),M=!!m.dashed,N=Number.isFinite(m.dash)?m.dash:4,R=Number.isFinite(m.gap)?m.gap:4;t.custom_polyline_world(j(l),j(g),S.r,S.g,S.b,S.a,y,M,N,R)},polygonWorld(l,g,b={}){let y=$(b.fill??b.bg??"rgba(232,160,74,0.18)"),m=$(b.border??"#e8a04a"),S=Number.isFinite(b.lineWidth)?b.lineWidth:1;t.custom_polygon_world(j(l),j(g),y.r,y.g,y.b,y.a,m.r,m.g,m.b,m.a,S)},arrow(l,g,b,y,m="#e8a04a",S=1.5,M=8){let N=$(m);t.custom_arrow(l,g,b,y,N.r,N.g,N.b,N.a,S,M)},shape(l,g,b={}){let y=it(b.shape),m=$(b.color??"#e8a04a"),S=Number.isFinite(b.size)?b.size:4;t.custom_shape_batch(X(l),j(g),y,m.r,m.g,m.b,m.a,S)},bgColor(l,g,b="rgba(232,160,74,0.05)"){let y=$(b),m=Array.isArray(l)?l:[l],S=Array.isArray(g)?g:[g];t.custom_bg_color_batch(X(m),X(S),y.r,y.g,y.b,y.a)},plotchar(l,g,b="\xB7",y="#e8a04a",m=10){let S=$(y);t.custom_plotchar_batch(X(l),j(g),String(b),S.r,S.g,S.b,S.a,m)},markersBatch(l,g,b=0,y="#e8a04a",m=5){let S=$(y);t.custom_markers_batch(X(l),j(g),b,S.r,S.g,S.b,S.a,m)},textsBatch(l,g,b,y="#ffffffaa",m=10,S="center"){let M=$(y),N=S==="center"?1:S==="right"?2:0;t.custom_texts_batch(X(l),j(g),String(b),M.r,M.g,M.b,M.a,m,N)},paneLine(l,g,b,y,m="#ffffff66",S=1,M=0,N=0,R=0){let C=$(m),I=k(R);t.custom_pane_line(l,g,b,y,C.r,C.g,C.b,C.a,S,M,N,I)},paneVline(l,g="#ffffff66",b=1,y=0,m=0){let S=$(g);t.custom_pane_vline(l,S.r,S.g,S.b,S.a,b,y,m)},paneBox(l,g,b,y,m={}){let S=$(m.bg??m.bgColor??"rgba(232,160,74,0.08)"),M=$(m.border??m.borderColor??"#ffffff44"),N=Number.isFinite(m.lineWidth)?m.lineWidth:1,R=!!m.dashed;t.custom_pane_box(l,g,b,y,S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N,R)},paneLabelXY(l,g,b,y={}){let m=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),S=$(y.border??y.borderColor??"#ffffff44"),M=$(y.color??y.textColor??"#ffffffe0"),N=Number.isFinite(y.fontSize)?y.fontSize:11,R=Number.isFinite(y.lineWidth)?y.lineWidth:1,C=y.align==="center"?1:y.align==="right"?2:0,I=J(y.anchor);t.custom_pane_label_xy(l,g,String(b),m.r,m.g,m.b,m.a,S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N,R,C,I)},setPaneYRange(l,g){!Number.isFinite(l)||!Number.isFinite(g)||t.set_custom_pane_y_range(l,g)},setPaneRatio(l){if(!(!Number.isFinite(l)||l<=0))try{t.set_custom_pane_ratio(l)}catch{}},paneArea:()=>({x:t.custom_pane_x(),y:t.custom_pane_y(),w:t.custom_pane_w(),h:t.custom_pane_h()}),paneYAxisArea:()=>({x:t.custom_pane_yaxis_x(),y:t.custom_pane_y(),w:t.custom_pane_yaxis_w(),h:t.custom_pane_h()}),paneYRange:()=>({min:t.custom_pane_y_min(),max:t.custom_pane_y_max()}),paneToScreenY:l=>t.custom_pane_to_screen_y(l),screenToPaneY:l=>t.screen_to_custom_pane_y(l),auxPaneSeriesLine(l,g,b="#e8a04a",y=1.5){let m=$(b);t.aux_pane_series_line(l,j(g),m.r,m.g,m.b,m.a,y)},auxPaneBand(l,g,b,y="rgba(232,160,74,0.10)"){let m=$(y);t.aux_pane_band(l,j(g),j(b),m.r,m.g,m.b,m.a)},auxPaneHline(l,g,b="#ffffff44",y=1){let m=$(b);t.aux_pane_hline(l,g,m.r,m.g,m.b,m.a,y)},auxPaneLabel(l,g,b,y="#ffffffaa",m=10,S="right"){let M=$(y),N=S==="center"?1:S==="left"?0:2;t.aux_pane_label(l,g,String(b),M.r,M.g,M.b,M.a,m,N)},auxPaneLine(l,g,b,y,m,S="#ffffff66",M=1,N=0,R=0,C=0){let I=$(S),U=k(C);t.aux_pane_line(l,g,b,y,m,I.r,I.g,I.b,I.a,M,N,R,U)},auxPaneBox(l,g,b,y,m,S={}){let M=$(S.bg??S.bgColor??"rgba(232,160,74,0.08)"),N=$(S.border??S.borderColor??"#ffffff44"),R=Number.isFinite(S.lineWidth)?S.lineWidth:1,C=!!S.dashed;t.aux_pane_box(l,g,b,y,m,M.r,M.g,M.b,M.a,N.r,N.g,N.b,N.a,R,C)},auxPaneLabelXY(l,g,b,y,m={}){let S=$(m.bg??m.bgColor??"rgba(13,15,19,0.92)"),M=$(m.border??m.borderColor??"#ffffff44"),N=$(m.color??m.textColor??"#ffffffe0"),R=Number.isFinite(m.fontSize)?m.fontSize:11,C=Number.isFinite(m.lineWidth)?m.lineWidth:1,I=m.align==="center"?1:m.align==="right"?2:0,U=J(m.anchor);t.aux_pane_label_xy(l,g,b,String(y),S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N.r,N.g,N.b,N.a,R,C,I,U)},setAuxPaneYRange(l,g,b){!Number.isFinite(g)||!Number.isFinite(b)||t.set_aux_pane_y_range(l,g,b)},setAuxPaneRatio(l,g){if(!(!Number.isFinite(g)||g<=0))try{t.set_aux_pane_ratio(l,g)}catch{}},auxPaneArea:l=>({x:t.aux_pane_x(l),y:t.aux_pane_y(l),w:t.aux_pane_w(l),h:t.aux_pane_h(l)}),auxPaneYAxisArea:l=>({x:t.aux_pane_yaxis_x(l),y:t.aux_pane_y(l),w:t.aux_pane_yaxis_w(l),h:t.aux_pane_h(l)}),auxPaneYRange:l=>({min:t.aux_pane_y_min_get(l),max:t.aux_pane_y_max_get(l)}),auxPaneToScreenY:(l,g)=>t.aux_pane_to_screen_y(l,g),screenToAuxPaneY:(l,g)=>t.screen_to_aux_pane_y(l,g),scriptLabelNew(l,g,b,y={}){let m=rt;if(!m)return 0;let S=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),M=$(y.border??y.borderColor??"#ffffff44"),N=$(y.color??y.textColor??"#ffffffe0"),R=Number.isFinite(y.fontSize)?y.fontSize:11,C=Number.isFinite(y.lineWidth)?y.lineWidth:1,I=y.align==="center"?1:y.align==="right"?2:0,U=J(y.anchor),Z=String(y.pane??"overlay");return t.script_label_new(m,Z,l,g,String(b),S.r,S.g,S.b,S.a,M.r,M.g,M.b,M.a,N.r,N.g,N.b,N.a,R,C,I,U)},scriptLabelSetXY(l,g,b){l&&t.script_label_set_xy(l,g,b)},scriptLabelSetText(l,g){l&&t.script_label_set_text(l,String(g))},scriptLabelSetColor(l,g){if(!l)return;let b=$(g);t.script_label_set_color(l,b.r,b.g,b.b,b.a)},scriptLabelSetBg(l,g){if(!l)return;let b=$(g);t.script_label_set_bg(l,b.r,b.g,b.b,b.a)},scriptLabelSetVisible(l,g){l&&t.script_label_set_visible(l,!!g)},scriptBoxNew(l,g,b,y,m={}){let S=rt;if(!S)return 0;let M=$(m.bg??m.bgColor??"rgba(232,160,74,0.10)"),N=$(m.border??m.borderColor??"#ffffff44"),R=Number.isFinite(m.lineWidth)?m.lineWidth:1,C=!!m.dashed,I=k(m.extend??0),U=String(m.pane??"overlay");return t.script_box_new(S,U,l,g,b,y,M.r,M.g,M.b,M.a,N.r,N.g,N.b,N.a,R,C,I)},scriptBoxSetCorners(l,g,b,y,m){l&&t.script_box_set_corners(l,g,b,y,m)},scriptBoxSetTop(l,g){l&&t.script_box_set_top(l,g)},scriptBoxSetBottom(l,g){l&&t.script_box_set_bottom(l,g)},scriptBoxSetRight(l,g){l&&t.script_box_set_right(l,g)},scriptBoxSetBg(l,g){if(!l)return;let b=$(g);t.script_box_set_bg(l,b.r,b.g,b.b,b.a)},scriptBoxSetBorder(l,g){if(!l)return;let b=$(g);t.script_box_set_border(l,b.r,b.g,b.b,b.a)},scriptBoxSetVisible(l,g){l&&t.script_box_set_visible(l,!!g)},scriptLineNew(l,g,b,y,m={}){let S=rt;if(!S)return 0;let M=$(m.color??"#F0B90B"),N=Number.isFinite(m.lineWidth)?m.lineWidth:1.5,R=Number.isFinite(m.dash)?m.dash:0,C=Number.isFinite(m.gap)?m.gap:0,I=k(m.extend??0),U=String(m.pane??"overlay");return t.script_line_new(S,U,l,g,b,y,M.r,M.g,M.b,M.a,N,R,C,I)},scriptLineSetAnchors(l,g,b,y,m){l&&t.script_line_set_anchors(l,g,b,y,m)},scriptLineSetColor(l,g){if(!l)return;let b=$(g);t.script_line_set_color(l,b.r,b.g,b.b,b.a)},scriptLineSetExtend(l,g){l&&t.script_line_set_extend(l,k(g))},scriptLineSetVisible(l,g){l&&t.script_line_set_visible(l,!!g)},scriptPolylineNew(l,g,b={}){let y=rt;if(!y)return 0;let m=$(b.color??"#F0B90B"),S=Number.isFinite(b.lineWidth)?b.lineWidth:1.5,M=!!b.dashed,N=Number.isFinite(b.dash)?b.dash:4,R=Number.isFinite(b.gap)?b.gap:4,C=$(b.fill??"rgba(0,0,0,0)"),I=!!b.closed,U=String(b.pane??"overlay");return t.script_polyline_new(y,U,j(l),j(g),m.r,m.g,m.b,m.a,S,M,N,R,C.r,C.g,C.b,C.a,I)},scriptPolylineSetVisible(l,g){l&&t.script_polyline_set_visible(l,!!g)},scriptTableNew(l,g,b,y,m={}){let S=rt;if(!S)return 0;let M=Number.isFinite(m.cellW)?m.cellW:80,N=Number.isFinite(m.cellH)?m.cellH:22,R=$(m.bg??"rgba(13,15,19,0.92)"),C=$(m.border??"#ffffff22"),I=$(m.color??"#ffffffe0"),U=Number.isFinite(m.fontSize)?m.fontSize:11;return t.script_table_new(S,+l,+g,+M,+N,+b,+y,R.r,R.g,R.b,R.a,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U)},scriptTableSetCell(l,g,b,y){l&&t.script_table_set_cell(l,+g,+b,String(y))},scriptTableSetVisible(l,g){l&&t.script_table_set_visible(l,!!g)},scriptObjectDelete(l){l&&t.script_object_delete(l)},slotLabel(l,g,b,y,m={}){let S=ut;if(!S)return 0;let M=String(l),N=S.get(M);if(N&&N.kind!=="label"){try{t.script_object_delete(N.id)}catch{}N=null}let R=$(m.bg??m.bgColor??"rgba(13,15,19,0.92)"),C=$(m.border??m.borderColor??"#ffffff44"),I=$(m.color??m.textColor??"#ffffffe0"),U=Number.isFinite(m.fontSize)?m.fontSize:11,Z=Number.isFinite(m.lineWidth)?m.lineWidth:1,Q=m.align==="center"?1:m.align==="right"?2:0,lt=J(m.anchor),_t=String(m.pane??"overlay");if(!N){At(S,"label",P,Ft);let wt=t.script_label_new(rt,_t,g,b,String(y),R.r,R.g,R.b,R.a,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U,Z,Q,lt);return wt?(N={id:wt,kind:"label",touched:!0},S.set(M,N),wt):0}return t.script_label_set_xy(N.id,g,b),t.script_label_set_text(N.id,String(y)),t.script_label_set_color(N.id,I.r,I.g,I.b,I.a),t.script_label_set_bg(N.id,R.r,R.g,R.b,R.a),N.touched=!0,N.id},slotBox(l,g,b,y,m,S={}){let M=ut;if(!M)return 0;let N=String(l),R=M.get(N);if(R&&R.kind!=="box"){try{t.script_object_delete(R.id)}catch{}R=null}let C=$(S.bg??S.bgColor??"rgba(232,160,74,0.10)"),I=$(S.border??S.borderColor??"#ffffff44"),U=Number.isFinite(S.lineWidth)?S.lineWidth:1,Z=!!S.dashed,Q=k(S.extend??0),lt=String(S.pane??"overlay");if(!R){At(M,"box",T,Ft);let _t=t.script_box_new(rt,lt,g,b,y,m,C.r,C.g,C.b,C.a,I.r,I.g,I.b,I.a,U,Z,Q);return _t?(R={id:_t,kind:"box",touched:!0},M.set(N,R),_t):0}return t.script_box_set_corners(R.id,g,b,y,m),t.script_box_set_bg(R.id,C.r,C.g,C.b,C.a),t.script_box_set_border(R.id,I.r,I.g,I.b,I.a),R.touched=!0,R.id},slotLine(l,g,b,y,m,S={}){let M=ut;if(!M)return 0;let N=String(l),R=M.get(N);if(R&&R.kind!=="line"){try{t.script_object_delete(R.id)}catch{}R=null}let C=$(S.color??"#F0B90B"),I=Number.isFinite(S.lineWidth)?S.lineWidth:1.5,U=Number.isFinite(S.dash)?S.dash:0,Z=Number.isFinite(S.gap)?S.gap:0,Q=k(S.extend??0),lt=String(S.pane??"overlay");if(!R){At(M,"line",A,Ft);let _t=t.script_line_new(rt,lt,g,b,y,m,C.r,C.g,C.b,C.a,I,U,Z,Q);return _t?(R={id:_t,kind:"line",touched:!0},M.set(N,R),_t):0}return t.script_line_set_anchors(R.id,g,b,y,m),t.script_line_set_color(R.id,C.r,C.g,C.b,C.a),t.script_line_set_extend(R.id,Q),R.touched=!0,R.id},slotPolyline(l,g,b,y={}){let m=ut;if(!m)return 0;let S=String(l),M=m.get(S);if(M)try{t.script_object_delete(M.id)}catch{}else At(m,"polyline",H,Ft);let N=$(y.color??"#F0B90B"),R=Number.isFinite(y.lineWidth)?y.lineWidth:1.5,C=!!y.dashed,I=Number.isFinite(y.dash)?y.dash:4,U=Number.isFinite(y.gap)?y.gap:4,Z=$(y.fill??"rgba(0,0,0,0)"),Q=!!y.closed,lt=String(y.pane??"overlay"),_t=t.script_polyline_new(rt,lt,j(g),j(b),N.r,N.g,N.b,N.a,R,C,I,U,Z.r,Z.g,Z.b,Z.a,Q);return _t?(m.set(S,{id:_t,kind:"polyline",touched:!0}),_t):(m.delete(S),0)},slotTable(l,g,b,y,m,S={}){let M=ut;if(!M)return 0;let N=String(l),R=M.get(N),C=Number.isFinite(S.cellW)?S.cellW:80,I=Number.isFinite(S.cellH)?S.cellH:22,U=$(S.bg??"rgba(13,15,19,0.92)"),Z=$(S.border??"#ffffff22"),Q=$(S.color??"#ffffffe0"),lt=Number.isFinite(S.fontSize)?S.fontSize:11;if(R&&(R.kind!=="table"||R.cols!==y||R.rows!==m)){try{t.script_object_delete(R.id)}catch{}R=null}if(!R){let _t=t.script_table_new(rt,+g,+b,+C,+I,+y,+m,U.r,U.g,U.b,U.a,Z.r,Z.g,Z.b,Z.a,Q.r,Q.g,Q.b,Q.a,lt);return _t?(R={id:_t,kind:"table",touched:!0,cols:+y,rows:+m},M.set(N,R),_t):0}return R.touched=!0,R.id},slotTableSet(l,g,b,y){l&&t.script_table_set_cell(l,+g,+b,String(y))},slotTrendline(l,g,b,y,m,S={}){let M=ct;if(!M||!rt)return 0;let N=String(l),R=M.get(N);if(R&&R.kind!=="trendline"){try{t.script_drawing_delete(R.id)}catch{}R=null}let C=$(S.color??"#F0B90B"),I=Number.isFinite(S.lineWidth)?S.lineWidth:1.5,U=!!S.dashed,Z=String(S.pane??"overlay");if(!R){At(M,"trendline",z,zt);let Q=t.script_drawing_trendline_new(rt,Z,g,b,y,m,C.r,C.g,C.b,C.a,I,U);return Q?(R={id:Q,kind:"trendline",touched:!0},M.set(N,R),Q):0}return t.script_drawing_set_anchors(R.id,j([g,b,y,m])),t.script_drawing_set_color(R.id,C.r,C.g,C.b,C.a),R.touched=!0,R.id},slotHline(l,g,b={}){let y=ct;if(!y||!rt)return 0;let m=String(l),S=y.get(m);if(S&&S.kind!=="hline"){try{t.script_drawing_delete(S.id)}catch{}S=null}let M=Number.isFinite(b.anchorX)?b.anchorX:0,N=$(b.color??"#F0B90B"),R=Number.isFinite(b.lineWidth)?b.lineWidth:1,C=!!b.dashed,I=String(b.pane??"overlay");if(!S){At(y,"hline",x,zt);let U=t.script_drawing_hline_new(rt,I,g,M,N.r,N.g,N.b,N.a,R,C);return U?(S={id:U,kind:"hline",touched:!0},y.set(m,S),U):0}return t.script_drawing_set_anchors(S.id,j([M,g])),t.script_drawing_set_color(S.id,N.r,N.g,N.b,N.a),S.touched=!0,S.id},slotFibRet(l,g,b,y,m,S={}){let M=ct;if(!M||!rt)return 0;let N=String(l),R=M.get(N);if(R&&R.kind!=="fib_ret"){try{t.script_drawing_delete(R.id)}catch{}R=null}let C=$(S.color??"#F0B90B"),I=Number.isFinite(S.lineWidth)?S.lineWidth:1,U=!!S.dashed,Z=String(S.pane??"overlay");if(!R){At(M,"fib_ret",B,zt);let Q=t.script_drawing_fib_ret_new(rt,Z,g,b,y,m,C.r,C.g,C.b,C.a,I,U);return Q?(R={id:Q,kind:"fib_ret",touched:!0},M.set(N,R),Q):0}return t.script_drawing_set_anchors(R.id,j([g,b,y,m])),t.script_drawing_set_color(R.id,C.r,C.g,C.b,C.a),R.touched=!0,R.id},slotChannel(l,g,b,y,m,S,M,N={}){let R=ct;if(!R||!rt)return 0;let C=String(l),I=R.get(C);if(I&&I.kind!=="channel"){try{t.script_drawing_delete(I.id)}catch{}I=null}let U=$(N.color??"#F0B90B"),Z=Number.isFinite(N.lineWidth)?N.lineWidth:1,Q=!!N.dashed,lt=String(N.pane??"overlay");if(!I){At(R,"channel",Y,zt);let _t=t.script_drawing_channel_new(rt,lt,g,b,y,m,S,M,U.r,U.g,U.b,U.a,Z,Q);return _t?(I={id:_t,kind:"channel",touched:!0},R.set(C,I),_t):0}return t.script_drawing_set_anchors(I.id,j([g,b,y,m,S,M])),t.script_drawing_set_color(I.id,U.r,U.g,U.b,U.a),I.touched=!0,I.id}}}let D=new Map;function Pt(l="below"){let g=D.get(l)||0;if(D.set(l,g+1),g===0)try{l==="below"?t.enable_custom_pane():t.enable_aux_pane(l,.22)}catch(b){console.warn(`[CustomIndicator] enable pane "${l}" failed:`,b)}}function Xt(l="below"){let g=D.get(l)||0;if(!(g<=0))if(g===1){D.delete(l);try{l==="below"?t.disable_custom_pane():t.disable_aux_pane(l)}catch(b){console.warn(`[CustomIndicator] disable pane "${l}" failed:`,b)}}else D.set(l,g-1)}function qt(l){if(!l.compute&&!l.evaluateInWorker)return;let g=K();if(!g)return;let b=[];try{let S=t.drawing_count?.()??0;for(let M=0;M<S;M++){let N=t.drawing_descriptor?.(M);if(N)try{let R=JSON.parse(N);if(R.owner!=="user")continue;let C=new Set(["trendline","arrow","range","fib_ret","circle","channel","fib_ext","brush","path","elliott"]),I=Array.isArray(R.anchors)?R.anchors:[],U=[];if(C.has(R.kind))for(let lt=0;lt+1<I.length;lt+=2)U.push({t:I[lt],p:I[lt+1]});else R.kind==="hline"?I.length>=2&&U.push({t:I[0],p:I[1]}):R.kind==="arrow_marker_up"||R.kind==="arrow_marker_down"||R.kind==="text_note"?I.length>=2&&U.push({t:I[0],p:I[1]}):R.kind==="price_label"&&I.length>=2&&U.push({t:I[0],p:I[1]});let Z=Array.isArray(R.color)?R.color:null,Q=Z?`#${[Z[0]|0,Z[1]|0,Z[2]|0].map(lt=>lt.toString(16).padStart(2,"0")).join("")}`:void 0;b.push({id:`u_${R.id}`,owner:"user",scriptId:null,kind:R.kind,pane:R.pane,anchors:U,anchorsRaw:I,style:{color:Q,lineWidth:R.line_width,dashed:!!R.dashed,text:R.text||""}})}catch{}}}catch{}if(Object.freeze(b),globalThis.__mrdScriptUserDrawings=b,typeof l.evaluateInWorker=="function"){if(l._workerInFlight){l._workerPending={ohlcv:g,params:l.params,userDrawings:b};return}l._perf||(l._perf={compute:0,render:0,primitives:0,frames:0}),l._workerInFlight=!0;let S=performance.now();l.evaluateInWorker(g,l.params,b).then(M=>{let N=performance.now();l._computed=M?.computed||{},l._perf.compute=N-S,!l._heavyCompute&&l._perf.compute>O&&(l._heavyCompute=!0,console.warn(`[CustomIndicator "${l.name}"] worker compute=${l._perf.compute.toFixed(1)}ms > ${O}ms \u2014 auto-throttled to bar-close-only (set calcOnEveryTick=false explicitly to silence this).`)),dt(l._computed?.__draws),l._fa=kt(l._computed,l._fa),l._workerInFlight=!1,v(),l._workerPending&&(l._workerPending=null,qt(l))}).catch(M=>{console.warn(`[CustomIndicator "${l.name}"] worker eval error:`,M?.message||M),l._workerInFlight=!1});return}let y=performance.now();try{l._computed=l.compute(g,l.params)||{}}catch(S){console.warn(`[CustomIndicator "${l.name}"] compute error:`,S),l._computed={}}let m=performance.now();l._perf||(l._perf={compute:0,render:0,primitives:0,frames:0}),l._perf.compute=m-y,!l._heavyCompute&&l._perf.compute>O&&(l._heavyCompute=!0,console.warn(`[CustomIndicator "${l.name}"] compute=${l._perf.compute.toFixed(1)}ms > ${O}ms budget \u2014 auto-throttled to bar-close-only (set calcOnEveryTick=false explicitly to silence this).`)),dt(l._computed?.__draws),l._fa=kt(l._computed,l._fa)}function kt(l,g){if(!l||typeof l!="object")return null;let b={};for(let y in l){if(!Object.prototype.hasOwnProperty.call(l,y))continue;let m=l[y];if(Array.isArray(m)&&(typeof m[0]=="number"||m.length===0)){let S=g&&g[y]&&g[y].length===m.length?g[y]:new Float64Array(m.length);for(let M=0;M<m.length;M++)S[M]=m[M];b[y]=S}else m instanceof Float64Array?b[y]=m:m&&typeof m=="object"&&!Array.isArray(m)&&(b[y]=kt(m,g?.[y]))}return b}let V=Object.freeze({length:0,timestamps:[],open:[],high:[],low:[],close:[],volume:[]});function q(l){if(c.size===0)return;let g=K(),b=!1;for(let N of c.values())if(N.enabled&&!(N.compute&&!g)){b=!0;break}if(!b)return;t.custom_begin();let y=xt(),m=g||V,S=t.custom_command_count();for(let N of c.values()){if(!N.enabled||N.compute&&!g)continue;if(N._needsCompute&&(qt(N),N._needsCompute=!1),N._computed?.__draws?.length&&g){let _t=g.length;try{let wt=t.kline_closes();if(wt&&wt.length===_t){let bt=t.kline_opens(),Ut=t.kline_highs(),ve=t.kline_lows(),Mt=_t-1;for(let $t of N._computed.__draws){if($t.kind!=="seriesCandles")continue;let[ye,De,w,L]=$t.args;if(!Array.isArray(ye)||ye.length!==_t||isNaN(ye[Mt]))continue;let W=at.get(ye);W&&(W[Mt]=bt[Mt]);let et=at.get(De);et&&(et[Mt]=Ut[Mt]);let pt=at.get(w);pt&&(pt[Mt]=ve[Mt]);let yt=at.get(L);yt&&(yt[Mt]=wt[Mt]),ye[Mt]=bt[Mt],De[Mt]=Ut[Mt],w[Mt]=ve[Mt],L[Mt]=wt[Mt]}}}catch{}}let R=performance.now();rt=N.id;let C=nt.get(N.id);C||(C=new Map,nt.set(N.id,C));for(let _t of C.values())_t.touched=!1;ut=C;let I=ft.get(N.id);I||(I=new Map,ft.set(N.id,I));for(let _t of I.values())_t.touched=!1;ct=I;try{N.render.call(N,y,N._computed||{},m)}catch(_t){console.warn(`[CustomIndicator "${N.name}"] render error:`,_t)}finally{for(let[_t,wt]of C)if(!wt.touched){try{t.script_object_delete(wt.id)}catch{}C.delete(_t)}for(let[_t,wt]of I)if(!wt.touched){try{t.script_drawing_delete(wt.id)}catch{}I.delete(_t)}rt=0,ut=null,ct=null}let U=performance.now();N._perf||(N._perf={compute:0,render:0,primitives:0,frames:0});let Z=.2,Q=U-R;N._perf.render=N._perf.render===0?Q:N._perf.render*(1-Z)+Q*Z;let lt=t.custom_command_count();N._perf.primitives=lt-S,N._perf.frames++,S=lt}if(t.custom_end(),t.custom_command_count()>0){let N=t.get_custom_buffer_ptr(),R=t.get_custom_buffer_len();n(l,e,N,R)}}function tt(){d=null,h=0,r=NaN,i=NaN;for(let l of c.values())l._needsCompute=!0}function ht(l,g,b){return l&&Number.isFinite(l.x)&&g>=l.x&&g<=l.x+l.w&&b>=l.y&&b<=l.y+l.h}function gt(l,g){let b=[...c.values()];for(let y=b.length-1;y>=0;y--){let m=b[y];if(m.enabled&&m.pane!=="overlay"){if(ht(m._paneSeparatorRect,l,g))return{ind:m,role:"separator"};if(ht(m._paneYAxisRect,l,g))return{ind:m,role:"yaxis"};if(ht(m._paneRect,l,g))return{ind:m,role:"body"}}}return null}function ot(l,g){let b=gt(l,g);return b?b.ind:null}function Qt(l,g){let b=l._paneRect,y=l._paneDomain;if(!b||!y)return;let m=y.ymax-y.ymin;if(m<=0||b.h<=0)return;let S=g/b.h*m,M=l._paneViewport||y;l._paneViewport={ymin:M.ymin+S,ymax:M.ymax+S,heightRatio:M.heightRatio}}function ee(l,g,b){let y=l._paneRect,m=l._paneDomain;if(!y||!m||!Number.isFinite(m.ymin)||!Number.isFinite(m.ymax))return;let S=m.ymax-m.ymin;if(S<=0)return;let M=Math.max(0,Math.min(1,(g-y.y)/Math.max(1,y.h))),N=m.ymax-M*S,R=S*b,C=l._paneViewportDefault?l._paneViewportDefault.ymax-l._paneViewportDefault.ymin:S;if(C>0&&(R/C>50||R/C<.005))return;let I=N+M*R,U=I-R;l._paneViewport={ymin:U,ymax:I,heightRatio:l._paneViewport?.heightRatio??m.heightRatio}}function Ne(l){l._paneViewportDefault?l._paneViewport={...l._paneViewportDefault}:l._paneViewport=null}function Zt(l,g={}){if(!l||typeof l.addEventListener!="function")return{destroy(){}};let b=typeof g.markDirty=="function"?g.markDirty:()=>{},y=typeof g.getDrawingMode=="function"?g.getDrawingMode:null,m=Z=>{let Q=ot(Z.offsetX,Z.offsetY);if(!Q)return;let lt=Z.deltaY>0?1.1:.9;if(Z.ctrlKey||Z.metaKey)ee(Q,Z.offsetY,lt);else try{t.zoom_x(Z.offsetX,lt)}catch{}Z.preventDefault(),Z.stopPropagation(),b()},S=Z=>{if(y&&y())return;let Q=ot(Z.offsetX,Z.offsetY);Q&&(Ne(Q),Z.preventDefault(),Z.stopPropagation(),b())},M=null;function N(){M=null,window.removeEventListener("mousemove",R,!0),window.removeEventListener("mouseup",C,!0);try{l.style.cursor=""}catch{}}function R(Z){if(!M)return;let Q=M;if(Q.type==="separator"){let lt=Q.startSy-Z.offsetY,_t=Math.max(.05,Math.min(.5,Q.startRatio+lt/Q.totalH));try{t.set_custom_pane_ratio(_t)}catch{}Q.ind._paneViewport={ymin:Q.ind._paneViewport?.ymin??Q.ind._paneDomain?.ymin,ymax:Q.ind._paneViewport?.ymax??Q.ind._paneDomain?.ymax,heightRatio:_t},b()}else if(Q.type==="yaxis"){let lt=Z.offsetY-Q.lastSy;Q.lastSy=Z.offsetY,Qt(Q.ind,lt),b()}else if(Q.type==="body"){let lt=Z.offsetX-Q.lastSx,_t=Z.offsetY-Q.lastSy;if(Q.lastSx=Z.offsetX,Q.lastSy=Z.offsetY,lt!==0)try{t.pan(lt,0)}catch{}_t!==0&&Qt(Q.ind,_t),b()}Z.preventDefault(),Z.stopPropagation()}function C(Z){M&&(N(),Z.preventDefault(),Z.stopPropagation())}function I(Z){if(Z.button!==0)return;let Q=gt(Z.offsetX,Z.offsetY);if(!Q)return;let{ind:lt,role:_t}=Q;if(_t==="body"){if(y&&y())return;try{if(t.hit_test_drawing&&t.hit_test_drawing(Z.offsetX,Z.offsetY)>0||t.hit_test_marker&&t.hit_test_marker(Z.offsetX,Z.offsetY)>0)return}catch{}}if(_t==="separator"){let wt=l.getBoundingClientRect(),bt=Math.max(1,wt.height-28),Ut=lt._paneViewport?.heightRatio??lt._paneDomain?.heightRatio??(()=>{try{return t.get_custom_pane_ratio?.()??.25}catch{return .25}})();M={type:"separator",ind:lt,startSy:Z.offsetY,startRatio:Ut,totalH:bt},l.style.cursor="ns-resize"}else _t==="yaxis"?(M={type:"yaxis",ind:lt,lastSy:Z.offsetY},l.style.cursor="ns-resize"):_t==="body"&&(M={type:"body",ind:lt,lastSx:Z.offsetX,lastSy:Z.offsetY},l.style.cursor="grabbing");window.addEventListener("mousemove",R,!0),window.addEventListener("mouseup",C,!0),Z.preventDefault(),Z.stopPropagation()}function U(Z){if(M)return;let Q=gt(Z.offsetX,Z.offsetY);if(!Q)return;let _t=y&&y()?"crosshair":Q.role==="separator"||Q.role==="yaxis"?"ns-resize":"crosshair";requestAnimationFrame(()=>{if(!M)try{l.style.cursor=_t}catch{}})}return l.addEventListener("wheel",m,{passive:!1,capture:!0}),l.addEventListener("dblclick",S,{capture:!0}),l.addEventListener("mousedown",I,{capture:!0}),l.addEventListener("mousemove",U,{capture:!1}),{destroy(){l.removeEventListener("wheel",m,{capture:!0}),l.removeEventListener("dblclick",S,{capture:!0}),l.removeEventListener("mousedown",I,{capture:!0}),l.removeEventListener("mousemove",U,{capture:!1}),M&&N()}}}return{notifyKlinesChanged(){a++},notifyDerivativesChanged(){a++},releaseAllPersistentState(){for(let l of c.values()){let g=l.id;try{t.script_release(g)}catch(b){console.warn(`[CustomIndicator] script_release(${g}) on symbol change failed:`,b)}try{t.script_release_drawings(g)}catch(b){console.warn(`[CustomIndicator] script_release_drawings(${g}) on symbol change failed:`,b)}nt.delete(g),ft.delete(g),l._needsCompute=!0,l._computed={}}a++},add(l){let g=Ks++,b=typeof l?.pane=="string"?l.pane.trim():"",y=!b||b==="overlay",m=y?null:b,S={id:g,name:l.name||`Custom ${g}`,params:{...l.params},compute:l.compute||null,render:l.render,enabled:!0,pane:y?"overlay":m,paneId:m,calcOnEveryTick:l.calcOnEveryTick!==!1,_heavyCompute:!1,_computed:{},_needsCompute:!0,_workerInFlight:!1,_workerPending:null,_paneRect:null,_paneDomain:null,_paneViewport:null,_paneViewportDefault:null,_needsTakerBuy:!!l.__needsTakerBuy,_needsOpenInterest:!!l.__needsOpenInterest,_needsFundingRate:!!l.__needsFundingRate};return c.set(g,S),m&&Pt(m),F(),g},remove(l){let g=c.get(l);if(!g)return;let b=g.paneId,y=!!g._hiddenForFocus;try{t.script_release(l)}catch(m){console.warn(`[CustomIndicator] script_release(${l}) failed:`,m)}try{t.script_release_drawings(l)}catch(m){console.warn(`[CustomIndicator] script_release_drawings(${l}) failed:`,m)}nt.delete(l),ft.delete(l),c.delete(l),b&&!y&&Xt(b),F()},updateParams(l,g){let b=c.get(l);b&&(Object.assign(b.params,g),b._needsCompute=!0,b._paneViewport=null,b._paneViewportDefault=null)},setEnabled(l,g){let b=c.get(l);if(!b)return;let y=!!g;if(b.enabled!==y){if(b.enabled=y,!y&&!b._hiddenForFocus){try{t.script_release(l)}catch(m){console.warn(`[CustomIndicator] script_release(${l}) on hide failed:`,m)}try{t.script_release_drawings(l)}catch(m){console.warn(`[CustomIndicator] script_release_drawings(${l}) on hide failed:`,m)}nt.delete(l),ft.delete(l),b._needsCompute=!0,b._computed={}}F(),!(!b.paneId||b._hiddenForFocus)&&(y?Pt(b.paneId):Xt(b.paneId))}},indicatorAtPoint(l,g){let b=[...c.values()];for(let y=b.length-1;y>=0;y--){let m=b[y];if(!(!m.enabled||!m.paneId)&&m.pane!=="overlay"&&(ht(m._paneSeparatorRect,l,g)||ht(m._paneYAxisRect,l,g)||ht(m._paneRect,l,g)))return m.id}return""},hidePanesForFocus(){let l=[];for(let g of c.values())!g.enabled||!g.paneId||g._hiddenForFocus||(g._hiddenForFocus=!0,g.enabled=!1,l.push(g.id),Xt(g.paneId));return l},restorePanesFromFocus(l){if(!(!Array.isArray(l)||l.length===0))for(let g of l){let b=c.get(g);!b||!b._hiddenForFocus||(b._hiddenForFocus=!1,b.enabled=!0,b.paneId&&Pt(b.paneId))}},setCalcOnEveryTick(l,g){let b=c.get(l);b&&(b.calcOnEveryTick=!!g,b._heavyCompute=!1)},list(){return[...c.values()].map(l=>({id:l.id,name:l.name,params:{...l.params},enabled:l.enabled,calcOnEveryTick:!!l.calcOnEveryTick,heavyCompute:!!l._heavyCompute,compute:l._perf?.compute??0}))},perfStats(l){if(l!=null){let b=c.get(l);return!b||!b._perf?null:{...b._perf}}let g={};for(let b of c.values())b._perf&&(g[b.id]={...b._perf,name:b.name});return g},listDrawings(){let l=[],g=0;try{g=t.drawing_count()}catch{return l}for(let b=0;b<g;b++){let y="";try{y=t.drawing_descriptor(b)}catch{continue}if(y)try{l.push(JSON.parse(y))}catch(m){console.warn(`[CustomIndicator] failed to parse drawing[${b}]:`,m,y)}}return l},scriptObjectStats(l){try{let g=t.script_object_counts_for(l)||[],[b=0,y=0,m=0,S=0,M=0]=g;return{labels:b,boxes:y,lines:m,polylines:S,tables:M,total:b+y+m+S+M}}catch{return{labels:0,boxes:0,lines:0,polylines:0,tables:0,total:0}}},invalidateCompute:tt,renderAll:q,setupPaneInteraction:Zt,isDslNeedsTakerBuy(){return p().tbv},isDslNeedsOpenInterest(){return p().oi},isDslNeedsFundingRate(){return p().fr},setDslDerivativesNeededCallback(l){f=typeof l=="function"?l:null,f&&(E={tbv:!1,oi:!1,fr:!1},F())}}}var po={trial:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0},standard:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!1,heatmap:!1,footprint:!1,liqHeatmap:!1,oi:!1,fundingRate:!1,cvd:!1,largeTrades:!1,vrvp:!1,tpo:!1,cvdProfile:!1,smartRanges:!1,emaStructure:!0,customIndicators:!1,vpin:!1,stopIceberg:!1,aggLiquidations:!1,mrdPullback:!0,gaussianVwapCloud:!0},professional:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!1,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0},enterprise:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0}},ti={rsi:"RSI",drawingBasic:"Basic Drawing Tools",heatmap:"Orderbook Heatmap",footprint:"Footprint Chart",liqHeatmap:"Liquidation Heatmap",oi:"Open Interest",fundingRate:"Funding Rate",cvd:"CVD",largeTrades:"Large Trades",vrvp:"VRVP",tpo:"TPO / Market Profile",cvdProfile:"CVD Profile",smartRanges:"Smart Ranges",emaStructure:"EMA Structure",drawingFull:"All Drawing Tools",customIndicators:"Custom Indicators",forexSignals:"Forex Signals",vpin:"VPIN",stopIceberg:"Stops & Icebergs",aggLiquidations:"Aggregated Liquidations",mrdPullback:"mrD-Pullback Signals",gaussianVwapCloud:"Gaussian VWAP Cloud"},ei={rsi:"Standard",drawingBasic:"Standard",mrdPullback:"Standard",emaStructure:"Standard",gaussianVwapCloud:"Standard",drawingFull:"Professional",vrvp:"Professional",tpo:"Professional",smartRanges:"Professional",heatmap:"Professional",footprint:"Professional",liqHeatmap:"Professional",oi:"Professional",fundingRate:"Professional",cvd:"Professional",cvdProfile:"Professional",largeTrades:"Professional",vpin:"Professional",stopIceberg:"Professional",aggLiquidations:"Professional",customIndicators:"Enterprise",forexSignals:"Enterprise"};function Oe(t){return po[t]||po.trial}function Dr(t){let e=Oe(t),n=new Set;return function(v){if(e[v])return!0;if(!n.has(v)){n.add(v);let c=ti[v]||v,d=ei[v]||"a higher";console.warn(`[MRD Chart Engine] "${c}" requires ${d} plan. Current plan: ${t}. Upgrade at https://app.mrd-indicators.com/charting-library/pricing`)}return!1}}var Tn="jx9hUoH64b12M9nidvauYGZa3KQRjU1UcuQtI2l-0uI",ns=30,os="trial",Br="free";var ss="https://app.mrd-indicators.com/charting-library/pricing",An=[95,95,109,114].map(t=>String.fromCharCode(t)).join(""),Ii=1297237059;function En(t){t=t.replace(/-/g,"+").replace(/_/g,"/");let e=t.length%4;if(e===2)t+="==";else if(e===3)t+="=";else if(e!==0)throw new Error("bad b64url");return atob(t)}function Cn(t){let e=En(t),n=new Uint8Array(e.length);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return n}function Oi(t){return new TextEncoder().encode(t)}var Ke=null,$e=null;async function Bi(){if(Ke)return Ke;let t=globalThis.crypto?.subtle;if(!t)throw new Error("WebCrypto not available");let e=Cn(Tn);if(e.length!==32)throw new Error("Public key must be 32 bytes (Ed25519 raw)");return Ke=(async()=>{let n={kty:"OKP",crv:"Ed25519",x:Tn,ext:!0};try{return await t.importKey("jwk",n,{name:"Ed25519"},!1,["verify"])}catch{return await t.importKey("raw",e,{name:"Ed25519"},!1,["verify"])}})(),Ke.catch(()=>{Ke=null}),Ke}async function Yi(){return $e||($e=(async()=>{let t=await Promise.resolve().then(()=>(Xo(),zo)),{sha512:e}=await Promise.resolve().then(()=>(rs(),es));return t.hashes.sha512=e,t.verify})(),$e.catch(()=>{$e=null}),$e)}async function Hi(t){let e=t.split(".");if(e.length!==3)return null;let n,s;try{n=JSON.parse(En(e[0])),s=JSON.parse(En(e[1]))}catch{return null}if(n.alg!=="EdDSA"||n.typ!=="MRD-LIC")return null;let v=Cn(e[2]),c=Oi(e[0]+"."+e[1]);try{let d=await Bi();return await globalThis.crypto.subtle.verify("Ed25519",d,v,c)?s:null}catch(d){try{let h=await Yi(),r=Cn(Tn);return h(v,c,r)?s:null}catch{throw d}}}function zi(t,e){if(t==="*"||t===e)return!0;if(t.startsWith("*.")){let n=t.slice(1);return e.endsWith(n)||e===t.slice(2)}return!1}var as=An+"e7x",ls=An+"p3q",cs="mrd_engine_session_id",fs="mrd_ce_db",je="meta",us="trial_ts",_s=An+"ck";function ds(t){let e=`${t}:${Ii}:${(t^2043453)>>>0}`,n=2166136261;for(let s=0;s<e.length;s++)n^=e.charCodeAt(s),n=Math.imul(n,16777619);return(n>>>0).toString(36)}function fr(t){return`${t}.${ds(t)}`}function ur(t){if(!t||typeof t!="string")return null;let e=t.lastIndexOf(".");if(e<1)return null;let n=parseInt(t.slice(0,e),10);return!n||n<1e9||n>2e9||t.slice(e+1)!==ds(n)?null:n}function Pn(){try{return ur(localStorage.getItem(as))}catch{return null}}function Mn(t){try{localStorage.setItem(as,fr(t))}catch{}}function Fn(){try{return ur(localStorage.getItem(ls))}catch{return null}}function Ln(t){try{localStorage.setItem(ls,fr(t))}catch{}}function xn(){try{return ur(sessionStorage.getItem(cs))}catch{return null}}function Nn(t){try{sessionStorage.setItem(cs,fr(t))}catch{}}function Rn(){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${_s}=([^;]+)`));return t?ur(decodeURIComponent(t[1])):null}catch{return null}}function In(t){try{let e=encodeURIComponent(fr(t));document.cookie=`${_s}=${e};path=/;max-age=${86400*400};SameSite=Lax`}catch{}}var Qe=null,is=!1;function Xi(){if(!(is||typeof indexedDB>"u")){is=!0;try{let t=indexedDB.open(fs,1);t.onupgradeneeded=()=>{let e=t.result;e.objectStoreNames.contains(je)||e.createObjectStore(je)},t.onsuccess=()=>{let s=t.result.transaction(je,"readonly").objectStore(je).get(us);s.onsuccess=()=>{let v=ur(s.result);v&&(!Qe||v<Qe)&&(Qe=v,Vi(v))}}}catch{}}}function hs(t){Qe=t;try{let e=indexedDB.open(fs,1);e.onsuccess=()=>{e.result.transaction(je,"readwrite").objectStore(je).put(fr(t),us)}}catch{}}function ps(t,e){let n=null;for(let s of t)s&&(s>e+60||s<17e8||(!n||s<n)&&(n=s));return n}function Vi(t){let e=Math.floor(Date.now()/1e3),n=ps([Pn(),Fn(),xn(),Rn(),t],e);n&&n!==t||n&&(Mn(n),Ln(n),Nn(n),In(n))}function Wi(){let t=Math.floor(Date.now()/1e3);return ps([Pn(),Fn(),xn(),Rn(),Qe],t)}function qi(t){Mn(t),Ln(t),Nn(t),In(t),hs(t)}function ki(t){Pn()||Mn(t),Fn()||Ln(t),xn()||Nn(t),Rn()||In(t),Qe||hs(t)}Xi();function Zi(){let t=Wi();t?ki(t):(t=Math.floor(Date.now()/1e3),qi(t));let e=t+ns*86400,n=Date.now()/1e3,s=Math.max(0,Math.ceil((e-n)/86400));return n>e?{valid:!1,expired:!0,plan:Br,watermark:!0,trialExpired:!0,daysLeft:0,pricingUrl:ss,error:`Trial expired (${ns} days). Purchase a license: ${ss}`,features:Oe(Br)}:{valid:!0,plan:os,watermark:!1,daysLeft:s,trialEnd:e,features:Oe(os)}}async function Yr(t){if(!t||t==="trial")return Zi();let e;try{e=await Hi(t)}catch(i){return{valid:!1,error:`License verification error: ${i.message}`}}if(!e)return{valid:!1,error:"Invalid license signature"};let{p:n,d:s,e:v,pl:c,a:d}=e;if(!n)return{valid:!1,error:"Invalid license payload (missing plan)"};let h=Math.floor(Date.now()/1e3);if(v>0&&h>v)return{valid:!0,plan:Br,watermark:!0,trialExpired:!0,originalPlan:n,error:`License expired on ${new Date(v*1e3).toLocaleDateString()}`,features:Oe(Br)};let r=c||"web";if((r==="web"||r==="any")&&s&&s!=="*"&&typeof window<"u"){let i=window.location.hostname;if(i&&i!=="localhost"&&i!=="127.0.0.1"&&i!=="0.0.0.0"&&i!==""&&!String(s).split(",").map(_=>_.trim()).some(_=>zi(_,i)))return{valid:!1,error:`License not valid for domain: ${i}`}}if(r==="mobile"&&d&&typeof window<"u"){let i=window.__mrd_app_id;if(i&&i!==d)return{valid:!1,error:`License not valid for app: ${i}`}}return{valid:!0,plan:n,domain:s,platform:r,appId:d||null,expiry:v,issuedAt:e.iat,subject:e.sub,watermark:!1,features:e.f?{...Oe(n),custom:e.f}:Oe(n)}}var On=null,Bn=null,Je=null;async function xe(){return On?{module:On,memory:Bn}:Je||(Je=(async()=>{let t=await import("./chart_engine.js");try{await t.default()}catch(e){console.warn("[mrd-chart] WebAssembly streaming init failed, retrying with arrayBuffer fallback:",e);let n=new URL("../wasm/chart_engine_bg.wasm",import.meta.url),s=await fetch(n);if(!s.ok)throw new Error(`WASM fetch failed (${s.status} ${s.statusText}) at ${n}`);let v=await s.arrayBuffer();await t.default(v)}return Bn=t.wasm_memory(),On=t,{module:t,memory:Bn}})(),Je.catch(()=>{Je=null}),Je)}function Kt(t){let e=t.replace("#","");return[parseInt(e.substring(0,2),16)||0,parseInt(e.substring(2,4),16)||0,parseInt(e.substring(4,6),16)||0]}var Hr=null,zr=null;async function bs(){if(Hr)return Hr;let{module:t,memory:e}=await xe();return Hr=t,zr=e,t}function Ui(){Hr||bs().catch(()=>{})}async function Gi(t,e={}){e.appId&&typeof window<"u"&&(window.__mrd_app_id=e.appId);let n=e.licenseKey||e.key||null,s=await Yr(n);if(!s.valid)throw new Error(`[MRD Chart Engine] ${s.error}`);s.plan==="trial"&&console.info(`[MRD Chart Engine] Trial mode \u2014 ${s.daysLeft} days remaining. Purchase: https://app.mrd-indicators.com/charting-library/pricing`);let v=await bs(),c=window.devicePixelRatio||1,d=c,h=c,r=t.getBoundingClientRect();(r.width<1||r.height<1)&&(await new Promise(w=>{let L=new ResizeObserver(W=>{for(let et of W)if(et.contentRect.width>0&&et.contentRect.height>0){L.disconnect(),w();return}});L.observe(t.parentElement||t),setTimeout(()=>{L.disconnect(),w()},2e3)}),r=t.getBoundingClientRect());let i=Math.max(r.width,100),o=Math.max(r.height,100);t.width=Math.max(1,Math.round(i*c)),t.height=Math.max(1,Math.round(o*c));let a=t.getContext("2d");d=t.width/i,h=t.height/o,a.setTransform(d,0,0,h,0,0);let _=new v.ChartEngine(i,o),f=!1,E={dead:!1,destroyed:!1,cleanupEvents:null};function p(w){if(!E.dead){E.dead=!0,f=!0;try{let L=w?.message?String(w.message):String(w||"unknown");console.error("[MRD Chart Engine] fatal WASM error \u2014 engine disabled:",L)}catch{}try{E.cleanupEvents?.()}catch{}}}function F(w){if(!w)return!1;if(typeof WebAssembly<"u"&&w instanceof WebAssembly.RuntimeError)return!0;let L=w.message?String(w.message):"";return L.includes("memory access out of bounds")||L.includes("recursive use of an object")||L.includes("null pointer passed to rust")||L.includes("unreachable")}let u=new Proxy(_,{get(w,L){let W=Reflect.get(w,L);return typeof W!="function"?W:function(...pt){if(!E.dead)try{return W.apply(w,pt)}catch(yt){if(F(yt)){p(yt);return}throw yt}}}});if("ontouchstart"in window||navigator.maxTouchPoints>0)try{u.set_touch_mode(!0)}catch{}try{let w=typeof n=="string"?n:"",L=Date.now(),W=typeof window<"u"&&window.location?.hostname||"";u.set_license_token(w,L,W)}catch(w){console.warn("[MRD] set_license_token failed:",w.message)}let A=!0,T=null,P=!1,H=!1,x=!1,B=null,Y=null,z=0,K=!1,at=$n(),j=jn(),X=new Map,k=1,J=50,it=[],rt=[],ut=!1;function nt(){if(!ut)try{let w=u.export_drawings_json?.();if(typeof w!="string")return;it.push(w),it.length>J&&it.shift(),rt.length>0&&(rt.length=0)}catch(w){console.warn("[bridge] pushUndoSnapshot failed",w?.message||w)}}function ct(){if(it.length===0)return!1;try{let w=it.pop(),L=u.export_drawings_json?.();if(typeof L=="string"&&(rt.push(L),rt.length>J&&rt.shift()),ut=!0,u.clear_drawings?.(),w)try{u.import_drawings_json?.(w)}catch(W){console.warn("[bridge] undo import failed",W?.message||W)}return D(),!0}catch(w){return console.warn("[bridge] undo failed",w?.message||w),!1}finally{ut=!1}}function ft(){if(rt.length===0)return!1;try{let w=rt.pop(),L=u.export_drawings_json?.();if(typeof L=="string"&&(it.push(L),it.length>J&&it.shift()),ut=!0,u.clear_drawings?.(),w)try{u.import_drawings_json?.(w)}catch(W){console.warn("[bridge] redo import failed",W?.message||W)}return D(),!0}catch(w){return console.warn("[bridge] redo failed",w?.message||w),!1}finally{ut=!1}}async function mt(w){if(!w)return null;try{let L=URL.createObjectURL(w),W=new Image;await new Promise((pt,yt)=>{W.onload=()=>pt(),W.onerror=Lt=>yt(Lt),W.src=L});let et=k++;return X.set(et,W),D(),{imageId:et,width:W.naturalWidth||W.width||1,height:W.naturalHeight||W.height||1}}catch(L){return console.warn("[bridge] addImageBlob decode failed",L?.message||L),null}}async function dt(w){let L=await mt(w);if(!L)return null;let{imageId:W,width:et,height:pt}=L;nt();let yt=Math.max(1,r.width),Lt=Math.max(1,r.height),re=yt*.5,Se=Lt*.5,_r=(et||1)/Math.max(1,pt||1),ke=re,Re=ke/Math.max(.01,_r);Re>Se&&(Re=Se,ke=Re*_r),ke=Math.max(40,ke),Re=Math.max(40,Re);let Wn=yt*.5,qn=Lt*.5,Ps=Wn-ke/2,Ms=qn-Re/2,Fs=Wn+ke/2,Ls=qn+Re/2,Xr;try{let dr=u.screen_to_world_x(Ps),xs=u.screen_to_world_x(Fs),Ns=u.screen_to_world_y(Ms),Rs=u.screen_to_world_y(Ls);Xr=u.add_image(W,dr,Ns,xs,Rs,212,166,10,0),u.select_drawing(Xr)}catch(dr){return console.warn("[bridge] pasteImageFromClipboard add_image failed",dr?.message||dr),null}return D(),{drawingId:Xr,imageId:W,blob:w,width:et,height:pt}}function At(w){if(typeof w!="string")return null;let L=w.replace(/\s+$/g,"");if(L.length===0)return null;nt();let W=Math.max(1,r.width),et=Math.max(1,r.height),pt=W*.5,yt=et*.5,Lt;try{let re=u.screen_to_world_x(pt),Se=u.screen_to_world_y(yt);if(Lt=u.add_text_note(re,Se,212,166,10,14,0),u.set_drawing_text(Lt,L),/\n/.test(L))try{u.set_drawing_text_wrap?.(Lt,!0)}catch{}u.select_drawing(Lt)}catch(re){return console.warn("[bridge] pasteTextFromClipboard add_text_note failed",re?.message||re),null}return D(),{drawingId:Lt,text:L}}let zt=("ontouchstart"in window||navigator.maxTouchPoints>0)&&window.innerWidth<=1399?33:8;function xt(){if(!(!P||H||T)){if(zt>0){let w=performance.now()-z;if(w<zt){Y||(Y=setTimeout(()=>{Y=null,xt()},zt-w));return}}T=requestAnimationFrame(Z)}}let D=()=>{A=!0,xt()},Pt=()=>x||E.dead,Xt=null,qt=null,kt=null,V=null,q=null,tt=null,ht=null,gt=null,ot=null,Qt=null,ee=null,Ne=null,Zt=null,l=0,g=null,b=null,y=0,m=0,S=-1,M=!1,N=!1,R=!1,C=null,I=jr(t,u,{onDirty:D,onCrosshairMove:(w,L,W)=>{if(y=w,m=L,S=W,M=!0,N=!0,C)try{C({visible:!0,worldX:u.crosshair_world_x()})}catch{}},onCrosshairHide:()=>{if(N&&(N=!1,M=!0,S=-1),C)try{C({visible:!1,worldX:0})}catch{}},drawingApi:w=>{Xt=w},onDrawingMutationBegin:()=>{nt()},onUndoRequest:()=>ct(),onRedoRequest:()=>ft(),onDrawingComplete:()=>{qt?.()},onDrawingCancel:()=>{kt?.()},onDrawingSelected:(w,L,W)=>{V?.(w,L,W)},onMarkerSelected:w=>{q?.(w)},onImagePasted:async w=>{try{let L=await dt(w);L?.drawingId>0&&(V?.(L.drawingId),tt?.(L.imageId,L.blob,L.drawingId))}catch(L){console.warn("[bridge] onImagePasted handler failed",L?.message||L)}},onTextPasted:w=>{try{let L=At(w);L?.drawingId>0&&(V?.(L.drawingId),ht?.(L.drawingId,L.text))}catch(L){console.warn("[bridge] onTextPasted handler failed",L?.message||L)}},onDrawingDblClick:(w,L,W,et,pt)=>{gt?.(w,L,W,et,pt)},onChartDblClick:(w,L,W,et)=>{ot?.(w,L,W,et)},onIndicatorDblClick:(w,L,W,et,pt)=>{Qt?.(w,L,W,et,pt)},customIndicatorAtPoint:(w,L)=>bt.indicatorAtPoint(w,L),onVrvpHover:(w,L)=>{R||ee?.(w,L)},onLiqAnnotationPin:(w,L)=>{b?.(w,L)},onQuickTradeBtnClick:(w,L,W)=>{Ne?.(w,L,W)},onPanStart:()=>{R=!0;try{B?.(null,0,0)}catch{}try{Zt?.("")}catch{}try{ee?.(null,null)}catch{}},onPanEnd:()=>{R=!1}});E.cleanupEvents=I;function U(){if(!(!M||f)){if(M=!1,!N||R){B&&B(null,0,0),Zt&&Zt("");return}if(B)if(S===0||S===1)try{let w=u.get_tooltip_data();B(w,y,m)}catch{}else B(null,0,0);if(Zt){let w=performance.now();if(S===0||S===1){if(w-l>=80){l=w;try{Zt(u.lt_hit_test(y,m))}catch{}}}else Zt("")}}}function Z(){if(T=null,!(!P||H||f)){K=!0;try{let w=!1;try{w=A||u.is_dirty()}catch{f=!0;return}if(w){A=!1,z=performance.now();let L=!1;try{if(u.render()>0){let et=u.get_command_buffer_ptr(),pt=u.get_command_buffer_len();a.save(),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,t.width,t.height),a.restore(),ne(a,zr,et,pt,at,j,X),L=!0}Mt()}catch(W){if(L||(A=!0),W instanceof WebAssembly.RuntimeError){f=!0,console.error("[MRD] Engine crashed:",W.message);return}}U();try{g?.()}catch{}try{(A||u.is_dirty())&&xt()}catch{}}}finally{K=!1}}}let Q=Dr(s.plan),lt=uo(u,D,Pt,()=>Q),_t=_o(u,D,Pt,()=>Q,nt),wt=ho(u,D,Pt,()=>Q),bt=Jr(u,zr,ne,D);{let w=wt.setKlines,L=wt.setKlinesPreserveViewport;typeof w=="function"&&(wt.setKlines=function(...W){return bt.notifyKlinesChanged(),w.apply(wt,W)}),typeof L=="function"&&(wt.setKlinesPreserveViewport=function(...W){return bt.notifyKlinesChanged(),L.apply(wt,W)})}{let w=L=>{let W=lt[L];typeof W=="function"&&(lt[L]=function(...et){return bt.notifyDerivativesChanged(),W.apply(lt,et)})};w("setOiData"),w("setOiDataTs"),w("setFrBinanceData"),w("setFrAggData"),w("setCvdData"),w("setCvdSpotData")}let Ut=null,ve=3e4;{let w=lt.setOiDataTs;typeof w=="function"&&(lt.setOiDataTs=function(pt,yt){let Lt=0;try{Lt=Number(u.kline_count?.()||0)}catch{}if(Lt===0){Ut={timestamps:pt,values:yt,stashedAt:Date.now()};return}return w.call(lt,pt,yt)});let L=wt.setKlines,W=wt.setKlinesPreserveViewport,et=()=>{if(!Ut)return;let{timestamps:pt,values:yt,stashedAt:Lt}=Ut;if(Ut=null,!(Date.now()-Lt>ve))try{lt.setOiDataTs?.(pt,yt)}catch(re){console.warn("[bridge] deferred OI flush failed:",re?.message??re)}};typeof L=="function"&&(wt.setKlines=function(...pt){let yt=L.apply(wt,pt);return et(),yt}),typeof W=="function"&&(wt.setKlinesPreserveViewport=function(...pt){let yt=W.apply(wt,pt);return et(),yt})}function Mt(){let w=0,L=0,W=0,et=0;try{w=u.chart_area_x(),L=u.chart_area_y(),W=u.chart_area_w(),et=u.pane_stack_bottom_y()-L}catch{return}if(!(!(W>0)||!(et>0))){a.save();try{a.beginPath(),a.rect(w,L,W,et),a.clip(),bt.renderAll(a)}catch{}finally{a.restore()}}}let $t=bt.setupPaneInteraction(t,{markDirty:D,getDrawingMode:()=>Xt?.getMode()}),ye=["__trade_overlay","__position_overlay"],De=!0;return{engine:u,start(){P=!0,H=!1,A=!0,xt()},stop(){P=!1,T&&(cancelAnimationFrame(T),T=null),Y&&(clearTimeout(Y),Y=null)},resize(w){if(f||K)return;if(r=t.getBoundingClientRect(),r.width<1||r.height<1){(w||0)<8&&setTimeout(()=>this.resize((w||0)+1),250);return}c=window.devicePixelRatio||1;let L=Math.max(1,Math.round(r.width*c)),W=Math.max(1,Math.round(r.height*c));t.width=L,t.height=W,d=t.width/r.width,h=t.height/r.height,a.setTransform(1,0,0,1,0,0),a.setTransform(d,0,0,h,0,0);try{at.invalidate()}catch{}try{u.resize(r.width,r.height)}catch(et){if(et instanceof WebAssembly.RuntimeError){f=!0;return}throw et}H||this.renderSync(),D()},renderSync(){if(f)return 0;try{let w=u.render();if(w>0){let L=u.get_command_buffer_ptr(),W=u.get_command_buffer_len();a.save(),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,t.width,t.height),a.restore(),ne(a,zr,L,W,at,j,X)}return Mt(),w}catch(w){return w instanceof WebAssembly.RuntimeError&&(f=!0),0}},renderFrameNow(){!P||H||f||(T&&(cancelAnimationFrame(T),T=null),Y&&(clearTimeout(Y),Y=null),A=!0,Z())},setCrosshairExternal(w,L,W){if(f)return!1;try{return u.set_crosshair(w,L),y=w,m=L,S=typeof W=="number"?W:0,M=!0,N=!0,!0}catch{return!1}},getCrosshairWorldX(){if(f)return 0;try{return u.crosshair_world_x()}catch{return 0}},isCrosshairSyncVisible(){if(f)return!1;try{return u.crosshair_visible()}catch{return!1}},setCrosshairAtWorldX(w){if(f)return!1;try{let L=u.set_crosshair_at_world_x(w);return L&&(N=!0,M=!0,S=-1),L}catch{return!1}},setCrosshairSyncHandler(w){C=typeof w=="function"?w:null},hideCrosshairExternal(){if(!f)try{u.hide_crosshair(),N&&(N=!1,M=!0,S=-1)}catch{}},setHoverPrice(w){Pt()||(u.set_hover_price(w),D())},clearHoverPrice(){Pt()||(u.clear_hover_price(),D())},hitZone(w,L){if(Pt())return-1;let W=u.hit_zone(w,L);return W===void 0?-1:W},startDrawing(w,L){Xt?.setMode(w,L)},cancelDrawing(){Xt?.setMode(null)},onDrawingComplete(w){qt=w},onDrawingCancel(w){kt=w},onDrawingSelected(w){V=w},onMarkerSelected(w){q=w},onImagePasted(w){tt=w},onTextPasted(w){ht=w},onDrawingDblClick(w){gt=w},onChartDblClick(w){ot=w},onIndicatorDblClick(w){Qt=w},setReplayState(w,L,W){Pt()||(u.set_replay_state(w,L,W),D())},setReplayHovered(w){Pt()||u.set_replay_hovered(w)},setReplayPreview(w){Pt()||(u.set_replay_preview(w),D())},setPrecision(w){u.set_price_precision(w),D()},setYAutoScale(w){typeof u.set_y_auto_scale=="function"&&(u.set_y_auto_scale(!!w),D())},getYAutoScale(){return typeof u.y_auto_scale=="function"?!!u.y_auto_scale():!0},setCandleInterval(w){u.set_candle_interval(w)},setTzOffsetSeconds(w){if(Pt())return;let L=Number.isFinite(w)?Math.trunc(w):0;if(typeof u.set_tz_offset_seconds=="function"){try{u.set_tz_offset_seconds(L)}catch{}D()}},setTheme(w){let L=w==="light"?1:0;typeof u.set_theme=="function"?(u.set_theme(L),D()):console.warn("[ChartEngine] set_theme not available \u2014 reload page to load updated WASM")},getTheme(){return u.get_theme()===1?"light":"dark"},setCandleBullColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bull_color=="function"&&(u.set_candle_bull_color(L,W,et),D())},setCandleBearColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bear_color=="function"&&(u.set_candle_bear_color(L,W,et),D())},setBackgroundColor(w){let[L,W,et]=Kt(w);typeof u.set_background_color=="function"&&(u.set_background_color(L,W,et),D())},setGridColor(w,L=255){let[W,et,pt]=Kt(w);typeof u.set_grid_color=="function"&&(u.set_grid_color(W,et,pt,L),D())},setCrosshairColor(w,L=160){let[W,et,pt]=Kt(w);typeof u.set_crosshair_color=="function"&&(u.set_crosshair_color(W,et,pt,L),D())},setCrosshairStyle(w){typeof u.set_crosshair_style=="function"&&(u.set_crosshair_style(w),D())},setCrosshairWidth(w){typeof u.set_crosshair_width=="function"&&(u.set_crosshair_width(w),D())},setAxisLabelColor(w,L=255){let[W,et,pt]=Kt(w);typeof u.set_axis_label_color=="function"&&(u.set_axis_label_color(W,et,pt,L),D())},setAxisLabelHiColor(w,L=255){let[W,et,pt]=Kt(w);typeof u.set_axis_label_hi_color=="function"&&(u.set_axis_label_hi_color(W,et,pt,L),D())},setPriceTagTextColor(w,L=255){let[W,et,pt]=Kt(w);typeof u.set_price_tag_text_color=="function"&&(u.set_price_tag_text_color(W,et,pt,L),D())},setCrosshairLabelTextColor(w,L=230){let[W,et,pt]=Kt(w);typeof u.set_crosshair_label_text_color=="function"&&(u.set_crosshair_label_text_color(W,et,pt,L),D())},setCrosshairMagnet(w){if(typeof u.set_crosshair_magnet!="function")return;let L=0;if(typeof w=="number")L=w===1||w===2?w:0;else if(typeof w=="string"){let W=w.toLowerCase();W==="weak"?L=1:W==="strong"?L=2:L=0}u.set_crosshair_magnet(L),D()},setFontSize(w){typeof u.set_font_size=="function"&&(u.set_font_size(w),D())},getFontSize(){return typeof u.get_font_size=="function"?u.get_font_size():11},setGridHVisible(w){typeof u.set_grid_h_visible=="function"&&(u.set_grid_h_visible(!!w),D())},setGridVVisible(w){typeof u.set_grid_v_visible=="function"&&(u.set_grid_v_visible(!!w),D())},setSessionLevels(w){typeof u.set_session_levels_enabled=="function"&&(u.set_session_levels_enabled(!!w),D())},setLastPriceLine(w){if(!(!w||typeof w!="object")){if(typeof w.enabled=="boolean"&&typeof u.set_last_price_line_enabled=="function"&&u.set_last_price_line_enabled(w.enabled),typeof u.set_last_price_line_style=="function"){let L=Number.isFinite(w.width)?w.width:1,W=Number.isFinite(w.dashLen)?w.dashLen:4,et=Number.isFinite(w.gapLen)?w.gapLen:3;u.set_last_price_line_style(L,W,et)}D()}},setBarCloseCountdown(w){!w||typeof w!="object"||(typeof w.enabled=="boolean"&&typeof u.set_bar_close_countdown_enabled=="function"&&u.set_bar_close_countdown_enabled(w.enabled),typeof w.text=="string"&&typeof u.set_bar_close_countdown_text=="function"&&u.set_bar_close_countdown_text(w.text),D())},setDrawingsVisible(w){typeof u.set_drawings_visible=="function"&&(u.set_drawings_visible(!!w),D())},setIndicatorsVisible(w){typeof u.set_indicators_visible=="function"&&(u.set_indicators_visible(!!w),D())},setKlineVisible(w){typeof u.set_kline_visible=="function"&&(u.set_kline_visible(!!w),D())},getKlineVisible(){return typeof u.get_kline_visible=="function"?!!u.get_kline_visible():!0},setPositionMarkersVisible(w){let L=!!w;De=L;for(let W of bt.list())ye.includes(W.name)&&bt.setEnabled(W.id,L);D()},setBgGradient(w,L){if(typeof u.set_bg_gradient=="function"){let[W,et,pt]=Kt(L||"#000000");u.set_bg_gradient(!!w,W,et,pt),D()}},setCandleBullWickColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bull_wick_color=="function"&&(u.set_candle_bull_wick_color(L,W,et),D())},setCandleBullBorderColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bull_border_color=="function"&&(u.set_candle_bull_border_color(L,W,et),D())},setCandleBearWickColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bear_wick_color=="function"&&(u.set_candle_bear_wick_color(L,W,et),D())},setCandleBearBorderColor(w){let[L,W,et]=Kt(w);typeof u.set_candle_bear_border_color=="function"&&(u.set_candle_bear_border_color(L,W,et),D())},onTooltip(w){B=w},onVrvpHover(w){ee=w},onLtHover(w){Zt=w},onPostRender(w){g=w},onLiqAnnotationPin(w){b=w},onQuickTradeBtnClick(w){Ne=w},setQuickTradeBtnEnabled(w){typeof u.set_quick_trade_btn_enabled=="function"&&(u.set_quick_trade_btn_enabled(!!w),D())},hitQuickTradeBtn(w,L){return typeof u.is_in_quick_trade_btn!="function"?!1:!!u.is_in_quick_trade_btn(w,L)},crosshairWorldY(){return typeof u.crosshair_world_y!="function"?0:u.crosshair_world_y()},pause(){H||(H=!0,T&&(cancelAnimationFrame(T),T=null),Y&&(clearTimeout(Y),Y=null))},resume(){H&&(H=!1,P&&(A=!0,xt()))},get isPaused(){return H},addImageBlob(w){return mt(w)},async registerImage(w,L){if(!w||w<=0||!L)return!1;try{let W=L;if(L instanceof Blob){let et=URL.createObjectURL(L);W=new Image,await new Promise((pt,yt)=>{W.onload=()=>pt(),W.onerror=Lt=>yt(Lt),W.src=et})}return X.set(w>>>0,W),w>=k&&(k=(w>>>0)+1),D(),!0}catch(W){return console.warn("[bridge] registerImage failed id="+w,W?.message||W),!1}},unregisterImage(w){let L=X.delete(w>>>0);return L&&D(),L},hasImage(w){return X.has(w>>>0)},listImageIds(){return Array.from(X.keys())},nextImageId(){return k++},pushUndoSnapshot(){nt()},undo(){return ct()},redo(){return ft()},canUndo(){return it.length>0},canRedo(){return rt.length>0},getUndoSnapshots(){return[...it,...rt]},clearUndoStack(){it.length=0,rt.length=0},pasteImageFromClipboard(w){return dt(w)},pasteTextFromClipboard(w){return At(w)},destroy(){x=!0,E.destroyed=!0,P=!1,H=!1,T&&(cancelAnimationFrame(T),T=null),Y&&(clearTimeout(Y),Y=null),I();try{$t?.destroy?.()}catch{}try{at.invalidate()}catch{}try{j.invalidate()}catch{}try{X.clear()}catch{}if(!E.dead)try{_.free()}catch{}E.dead=!0},addIndicator(w){if(!Q("customIndicators"))return null;let L=bt.add(w);return!De&&w&&ye.includes(w.name)&&bt.setEnabled(L,!1),D(),L},removeIndicator(w){bt.remove(w),D()},updateIndicatorParams(w,L){bt.updateParams(w,L),D()},setIndicatorEnabled(w,L){bt.setEnabled(w,L),D()},isDslNeedsCvd(){return bt.isDslNeedsTakerBuy()},isDslNeedsOi(){return bt.isDslNeedsOpenInterest()},isDslNeedsFr(){return bt.isDslNeedsFundingRate()},setDslDerivativesNeededCallback(w){bt.setDslDerivativesNeededCallback(w)},customIndicatorAtPoint(w,L){return bt.indicatorAtPoint(w,L)},listIndicators(){return bt.list()},setIndicatorCalcOnEveryTick(w,L){bt.setCalcOnEveryTick(w,L),D()},invalidateCustomIndicators(){bt.invalidateCompute(),D()},releaseAllCustomIndicatorState(){bt.releaseAllPersistentState(),D()},hideCustomPanesForFocus(){let w=bt.hidePanesForFocus();return w.length>0&&D(),w},restoreCustomPanesFromFocus(w){!Array.isArray(w)||w.length===0||(bt.restorePanesFromFocus(w),D())},resetPriceScale(){if(!f){try{u.set_y_auto_scale(!0)}catch{}for(let w=1;w<=5;w++)try{u.reset_indicator_y_auto(w)}catch{}D()}},resetView({isMobile:w=!1}={}){if(!f){try{typeof u.show_default_view=="function"?u.show_default_view():u.show_latest(w?115:450)}catch{}try{u.set_y_auto_scale(!0)}catch{}for(let L=1;L<=5;L++)try{u.reset_indicator_y_auto(L)}catch{}D()}},fitFootprintView({isMobile:w}={}){if(!f){try{let L=(()=>{try{return Math.max(0,u.chart_area_w())}catch{return 0}})(),W=typeof w=="boolean"?w:L>0&&L<992,et=W?28:50,pt=W?12:24,yt=W?60:120,Lt=W?30:50,re=L>1?Math.floor(L/et):Lt,Se=0;try{Se=Number(u.kline_count?.()||0)}catch{}let _r=Math.max(2,Math.min(Math.max(pt,Math.min(yt,re)),Se>0?Se:yt));u.show_latest(_r)}catch{}try{u.set_y_auto_scale(!0)}catch{}for(let L=1;L<=5;L++)try{u.reset_indicator_y_auto(L)}catch{}D()}},get license(){return{plan:s.plan,valid:s.valid,expired:!!s.expired,watermark:!!s.watermark,daysLeft:s.daysLeft,features:s.features||{}}},async setLicenseKey(w){s=await Yr(w),!s.valid&&!s.expired&&console.error(`[MRD Chart Engine] ${s.error}`),Q=Dr(s.plan);try{let L=typeof w=="string"?w:"",W=Date.now(),et=typeof window<"u"&&window.location?.hostname||"";u.set_license_token(L,W,et)}catch{}return D(),s.valid},...wt,...lt,..._t}}function Ki(t,e){let{t:n,o:s,h:v,l:c,c:d,v:h}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let i=[],o=[],a=[],_=[],f=[],E=[],p=Math.round(d[0]/e)*e,F=0;for(let u=0;u<r;u++){F+=h[u];let A=d[u]-p;for(;A>=e;){let T=p,P=p+e;i.push(n[u]),o.push(T),a.push(P),_.push(T),f.push(P),E.push(F),F=0,p=P}for(;-A>=e;){let T=p,P=p-e;i.push(n[u]),o.push(T),a.push(T),_.push(P),f.push(P),E.push(F),F=0,p=P}}return{t:i,o,h:a,l:_,c:f,v:E}}function $i(t,e){let{t:n,o:s,h:v,l:c,c:d,v:h}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let i=[],o=[],a=[],_=[],f=[],E=[],p=s[0],F=v[0],u=c[0],O=0,A=n[0];for(let T=0;T<r;T++)for(F=Math.max(F,v[T]),u=Math.min(u,c[T]),O+=h[T];F-u>=e;){let P=d[T]>=p,H=P?u+e:F-e;if(i.push(A),o.push(p),a.push(F),_.push(u),f.push(H),E.push(O),p=H,F=P?Math.max(v[T],H):H,u=P?H:Math.min(c[T],H),O=0,A=n[T],F-u<e)break}return(O>0||i.length===0)&&(i.push(A),o.push(p),a.push(F),_.push(u),f.push(d[r-1]),E.push(O)),{t:i,o,h:a,l:_,c:f,v:E}}function ji(t,e){let{t:n,o:s,h:v,l:c,c:d,v:h}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let i=[],o=[],a=[],_=[],f=[],E=[],p=Math.max(1,Math.round(e));for(let F=0;F<r;F+=p){let u=Math.min(F+p,r),O=-1/0,A=1/0,T=0;for(let P=F;P<u;P++)v[P]>O&&(O=v[P]),c[P]<A&&(A=c[P]),T+=h[P];i.push(n[F]),o.push(s[F]),a.push(O),_.push(A),f.push(d[u-1]),E.push(T)}return{t:i,o,h:a,l:_,c:f,v:E}}function Qi(t,e){let n=t>1e4?50:t>1e3?10:t>100?1:t>1?.1:.001,s=n*2,v=e<=60?10:e<=300?5:3;return{brickSize:n,rangeSize:s,tickCount:v}}var Ji={minRefills:3,hiddenRatio:2,refillWindowMs:1e4,maxTrackedLevels:200,maxEvents:500,decayMs:3e5};function Di(t={}){let e={...Ji,...t},n=new Map,s=new Map,v=[],c=0;function d(_){return Math.round(_*1e8)/1e8}function h(_,f,E,p){for(let[F,u]of _){let O=d(F),A=f.get(O);if(!A){f.set(O,{lastVol:u,refills:0,totalConsumed:0,lastRefillTs:p,peakVisible:u});continue}if(u<A.lastVol*.3&&A.lastVol>0){let T=A.lastVol-u;A.totalConsumed+=T,A.lastVol=u;continue}if(u>A.lastVol*1.5&&A.totalConsumed>0)if(p-A.lastRefillTs<e.refillWindowMs){if(A.refills++,A.lastRefillTs=p,A.peakVisible=Math.max(A.peakVisible,u),A.refills>=e.minRefills){let P=A.totalConsumed,H=A.peakVisible;P>=H*e.hiddenRatio&&(v.push({timestamp:p,price:F,visibleSize:H,hiddenSize:P,isBid:E,refillCount:A.refills}),v.length>e.maxEvents&&v.shift(),A.refills=0,A.totalConsumed=0)}}else A.refills=1,A.totalConsumed=0,A.lastRefillTs=p;A.lastVol=u}if(f.size>e.maxTrackedLevels){let F=[...f.entries()];F.sort((O,A)=>O[1].lastRefillTs-A[1].lastRefillTs);let u=F.length-e.maxTrackedLevels;for(let O=0;O<u;O++)f.delete(F[O][0])}}function r(_,f,E){let p=E||Date.now();c=p;let F=_ instanceof Map?_:new Map(_.map(([A,T])=>[A,T])),u=f instanceof Map?f:new Map(f.map(([A,T])=>[A,T]));h(F,n,!0,p),h(u,s,!1,p);let O=p-e.decayMs;for(;v.length>0&&v[0].timestamp<O;)v.shift()}function i(){return v}function o(_){if(!_||v.length===0)return;let f=v.length,E=new Float64Array(f),p=new Float64Array(f),F=new Float64Array(f),u=new Float64Array(f),O=new Uint8Array(f),A=new Uint32Array(f);for(let T=0;T<f;T++){let P=v[T];E[T]=P.timestamp,p[T]=P.price,F[T]=P.visibleSize,u[T]=P.hiddenSize,O[T]=P.isBid?1:0,A[T]=P.refillCount}_.setIcebergEvents(E,p,F,u,O,A)}function a(){n.clear(),s.clear(),v.length=0}return{onOrderbookUpdate:r,getEvents:i,pushToEngine:o,reset:a}}var Yn=null,ws=null;async function ta(){if(Yn)return Yn;let{module:t,memory:e}=await xe();return Yn=t,ws=e,t}var ms=Promise.resolve();async function ea(t,e={}){let n=await ta();return await(ms=ms.then(()=>gs(n,t,e),()=>gs(n,t,e)))}function gs(t,e,n){let s=window.devicePixelRatio||1,c=(e.parentElement||e).getBoundingClientRect(),d=Math.max(c.width,60),h=Math.max(c.height,60),r={width:d,height:h};e.width=Math.round(d*s),e.height=Math.round(h*s);let i=e.getContext("2d");i.setTransform(s,0,0,s,0,0);let o=new t.OrderbookEngine(d,h);n.symbol&&o.set_symbol(n.symbol),n.tickSize&&o.set_tick_size(n.tickSize),n.visibleTicks&&o.set_visible_ticks(n.visibleTicks),n.exchangeCount&&o.set_exchange_count(n.exchangeCount),n.pricePrecision!=null&&o.set_price_precision(n.pricePrecision),n.theme==="light"&&o.set_theme(1),n.heatmapCols&&o.set_heatmap_cols(n.heatmapCols),(n.ringCols||n.ringRows)&&o.set_ring_capacity(n.ringCols||300,n.ringRows||400),n.heatmapAlphaMul!=null&&o.set_heatmap_alpha_mul(Number(n.heatmapAlphaMul)),n.showCumulative!=null&&o.set_show_cumulative(!!n.showCumulative),n.showSignalOverlays!=null&&o.set_show_signal_overlays(!!n.showSignalOverlays);let a=!0,_=null,f=!1,E=!1,p=!1,F=null,u=null;function O(){!f||p||_||(_=requestAnimationFrame(P))}let A=()=>{a=!0,O()};function T(){if(p)return!1;try{if(o.render()>0){let q=o.get_command_buffer_ptr(),tt=o.get_command_buffer_len();i.save(),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,e.width,e.height),i.restore(),ne(i,ws,q,tt)}return!0}catch(V){return V instanceof WebAssembly.RuntimeError&&(p=!0,console.error("[OrderbookEngine] crashed:",V.message)),!1}}function P(){if(_=null,!f||p)return;let V=!1;try{V=a||o.is_dirty()}catch{p=!0;return}V&&(T()?a=!1:a=!0)}e.style.touchAction="none";let H=!1,x=0,B=new Map,Y=0,z=0,K=0,at=0,j=!1,X=!1,k=0,J=null,it=280,rt=5,ut=null,nt=!1,ct=0,ft=0;function mt(){ut!=null&&(clearTimeout(ut),ut=null)}function dt(){if(nt){nt=!1;try{o.clear_range()}catch{}if(J)try{J(null)}catch{}A()}}function At(V){if(!p){nt=!0,H=!1;try{o.set_range_from_mid(V)}catch{}try{o.clear_hover()}catch{}try{navigator.vibrate&&navigator.vibrate(8)}catch{}if(A(),J)try{let q=o.get_range_low_price(),tt=o.get_range_high_price();tt>q&&J({low:q,high:tt,delta:tt-q,deltaPct:q>0?(tt-q)/q*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"hover"})}catch{}}}function Ft(V){if(p)return;V.preventDefault();let q=V.deltaY>0?1.08:.93;o.zoom_y(q,V.offsetY),A()}function zt(V){if(!p){if(B.set(V.pointerId,{y:V.offsetY}),e.setPointerCapture(V.pointerId),B.size===1)if(V.shiftKey){X=!0,k=V.offsetY,H=!1;try{o.set_range(k,V.offsetY)}catch{}try{o.clear_hover()}catch{}A()}else{try{o.clear_range()}catch{}if(J)try{J(null)}catch{}H=!0,x=V.offsetY,at=V.offsetX,K=V.offsetY,j=!1,V.pointerType==="touch"&&(ct=V.offsetX,ft=V.offsetY,mt(),ut=setTimeout(()=>{ut=null,!(B.size!==1||!H||j)&&At(ft)},it))}else if(B.size===2){if(mt(),nt&&dt(),X){X=!1;try{o.clear_range()}catch{}}H=!1;let q=[...B.values()];Y=Math.abs(q[0].y-q[1].y),z=(q[0].y+q[1].y)/2}}}function xt(V){if(!p)if(B.set(V.pointerId,{y:V.offsetY}),B.size>=2){let q=[...B.values()],tt=Math.abs(q[0].y-q[1].y),ht=(q[0].y+q[1].y)/2;if(Y>0){let ot=Y/Math.max(tt,1);o.zoom_y(ot,ht)}let gt=ht-z;Math.abs(gt)>.5&&o.pan_y(gt),Y=tt,z=ht,A()}else if(X){try{o.set_range(k,V.offsetY)}catch{}if(A(),J)try{let q=o.get_range_low_price(),tt=o.get_range_high_price();tt>q&&J({low:q,high:tt,delta:tt-q,deltaPct:q>0?(tt-q)/q*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"measure"})}catch{}}else if(nt){try{o.set_range_from_mid(V.offsetY)}catch{}if(A(),J)try{let q=o.get_range_low_price(),tt=o.get_range_high_price();tt>q?J({low:q,high:tt,delta:tt-q,deltaPct:q>0?(tt-q)/q*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"hover"}):J(null)}catch{}}else if(H){let q=V.offsetY-x;x=V.offsetY,(Math.abs(V.offsetX-at)>4||Math.abs(V.offsetY-K)>4)&&(j=!0),ut!=null&&(Math.abs(V.offsetX-ct)>rt||Math.abs(V.offsetY-ft)>rt)&&mt(),o.pan_y(q),A()}else{o.set_hover(V.offsetX,V.offsetY);try{o.set_range_from_mid(V.offsetY)}catch{}if(A(),F)try{let q=o.get_hover_price();if(q>0){let tt=o.get_hover_qty(),ht=o.get_hover_side();F({price:q,qty:tt,side:ht===2?"ask":"bid"})}else F(null)}catch{}if(J)try{let q=o.get_range_low_price(),tt=o.get_range_high_price();tt>q?J({low:q,high:tt,delta:tt-q,deltaPct:q>0?(tt-q)/q*100:0,bidQty:o.get_range_bid_qty(),askQty:o.get_range_ask_qty(),ticks:o.get_range_tick_count(),mode:"hover"}):J(null)}catch{}}}function D(){if(!p){if(F&&F(null),o.clear_hover(),!X){try{o.clear_range()}catch{}if(J)try{J(null)}catch{}}A()}}function Pt(V){let q=H&&!j&&B.size===1&&!nt,tt=X,ht=nt;B.delete(V.pointerId);try{e.releasePointerCapture(V.pointerId)}catch{}if(mt(),B.size===0){if(tt&&!p){try{o.clear_range()}catch{}if(J)try{J(null)}catch{}X=!1,A()}if(ht&&dt(),q&&u&&!p)try{o.set_hover(V.offsetX,V.offsetY);let gt=o.get_hover_price();if(gt>0){let ot=o.get_hover_qty(),Qt=o.get_hover_side();u({price:gt,qty:ot,side:Qt===2?"ask":"bid"})}}catch{}H=!1,Y=0}else B.size===1&&(H=!0,x=[...B.values()][0].y,Y=0)}function Xt(V){if(!(V.key!=="Escape"||p)&&X){X=!1;try{o.clear_range()}catch{}if(J)try{J(null)}catch{}A()}}function qt(){p||(o.center_on_mid(),A())}e.addEventListener("wheel",Ft,{passive:!1}),e.addEventListener("pointerdown",zt),e.addEventListener("pointermove",xt),e.addEventListener("pointerup",Pt),e.addEventListener("pointercancel",Pt),e.addEventListener("pointerleave",D),e.addEventListener("dblclick",qt),window.addEventListener("keydown",Xt);function kt(){e.removeEventListener("wheel",Ft),e.removeEventListener("pointerdown",zt),e.removeEventListener("pointermove",xt),e.removeEventListener("pointerup",Pt),e.removeEventListener("pointercancel",Pt),e.removeEventListener("pointerleave",D),e.removeEventListener("dblclick",qt),window.removeEventListener("keydown",Xt)}return{engine:o,start(){f=!0,a=!0,O()},stop(){f=!1,_&&(cancelAnimationFrame(_),_=null)},resize(){if(E||p)return;let q=(e.parentElement||e).getBoundingClientRect(),tt=Math.max(q.width,1),ht=Math.max(q.height,1);if(tt<1||ht<1)return;s=window.devicePixelRatio||1;let gt=Math.round(tt*s),ot=Math.round(ht*s),Qt=e.width!==gt||e.height!==ot;e.width!==gt&&(e.width=gt),e.height!==ot&&(e.height=ot),i.setTransform(s,0,0,s,0,0),r={width:tt,height:ht};try{o.resize(tt,ht),Qt&&T()}catch(ee){if(ee instanceof WebAssembly.RuntimeError){p=!0;return}throw ee}A()},pushSnapshot(V,q,tt){if(p)return;let ht=new Float64Array(V.length*2);for(let ot=0;ot<V.length;ot++)ht[ot*2]=V[ot][0],ht[ot*2+1]=V[ot][1];let gt=new Float64Array(q.length*2);for(let ot=0;ot<q.length;ot++)gt[ot*2]=q[ot][0],gt[ot*2+1]=q[ot][1];try{o.push_snapshot(ht,gt,tt)}catch(ot){if(ot instanceof WebAssembly.RuntimeError){p=!0;return}throw ot}A()},pushSnapshotFlat(V,q,tt){if(!p){try{o.push_snapshot(V,q,tt)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},setDepthBook(V,q,tt){if(p)return;let ht=new Float64Array(V.length*2);for(let ot=0;ot<V.length;ot++)ht[ot*2]=V[ot][0],ht[ot*2+1]=V[ot][1];let gt=new Float64Array(q.length*2);for(let ot=0;ot<q.length;ot++)gt[ot*2]=q[ot][0],gt[ot*2+1]=q[ot][1];try{o.set_depth_book(ht,gt,tt)}catch(ot){if(ot instanceof WebAssembly.RuntimeError){p=!0;return}throw ot}A()},setDepthBookFlat(V,q,tt){if(!p){try{o.set_depth_book(V,q,tt)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},pushHeatmapCol(V,q,tt){if(p)return;let ht=new Float64Array(V.length*2);for(let ot=0;ot<V.length;ot++)ht[ot*2]=V[ot][0],ht[ot*2+1]=V[ot][1];let gt=new Float64Array(q.length*2);for(let ot=0;ot<q.length;ot++)gt[ot*2]=q[ot][0],gt[ot*2+1]=q[ot][1];try{o.push_heatmap_col(ht,gt,tt)}catch(ot){if(ot instanceof WebAssembly.RuntimeError){p=!0;return}throw ot}A()},pushHeatmapColFlat(V,q,tt){if(!p){try{o.push_heatmap_col(V,q,tt)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},resetRing(){if(!p){try{o.reset_ring()}catch(V){if(V instanceof WebAssembly.RuntimeError){p=!0;return}throw V}A()}},setExchangeLabels(V){if(p)return;let q=Array.isArray(V)?V.join(","):String(V);try{o.set_exchange_labels(q)}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()},setSignalObi(V,q,tt){if(!p){try{o.set_signal_obi(V,q,tt)}catch(ht){if(ht instanceof WebAssembly.RuntimeError){p=!0;return}throw ht}A()}},setSignalSpoof(V){if(!p){try{o.set_signal_spoof(V)}catch(q){if(q instanceof WebAssembly.RuntimeError){p=!0;return}throw q}A()}},setSignalAbsorption(V,q){if(!p){try{o.set_signal_absorption(V,q)}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()}},setSignalFlow(V,q){if(!p){try{o.set_signal_flow(V,q)}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()}},setSignalWalls(V,q){if(!p){try{o.set_signal_walls(new Float64Array(V),new Float64Array(q))}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()}},setSignalGaps(V,q){if(!p){try{o.set_signal_gaps(new Float64Array(V),new Float64Array(q))}catch(tt){if(tt instanceof WebAssembly.RuntimeError){p=!0;return}throw tt}A()}},setSymbol(V){p||(o.set_symbol(V),A())},setTickSize(V){p||(o.set_tick_size(V),A())},setVisibleTicks(V){p||(o.set_visible_ticks(V),A())},setExchangeCount(V){p||(o.set_exchange_count(V),A())},setPrecision(V){p||(o.set_price_precision(V),A())},setAutoCenter(V){p||o.set_auto_center(V)},centerOnMid(){p||(o.center_on_mid(),A())},setHeatmapCols(V){p||(o.set_heatmap_cols(V),A())},setHeatmapAlphaMul(V){if(!p){try{o.set_heatmap_alpha_mul(Number(V))}catch(q){if(q instanceof WebAssembly.RuntimeError){p=!0;return}throw q}A()}},setShowCumulative(V){if(!p){try{o.set_show_cumulative(!!V)}catch(q){if(q instanceof WebAssembly.RuntimeError){p=!0;return}throw q}A()}},setShowSignalOverlays(V){if(!p){try{o.set_show_signal_overlays(!!V)}catch(q){if(q instanceof WebAssembly.RuntimeError){p=!0;return}throw q}A()}},getHoverPrice(){return p?0:o.get_hover_price()},getHoverQty(){return p?0:o.get_hover_qty()},getHoverSide(){return p?0:o.get_hover_side()},onHoverPrice(V){F=V},onClickPrice(V){u=V},onRangeUpdate(V){J=V},clearRange(){if(!p){if(X&&(X=!1,J))try{J(null)}catch{}try{o.clear_range()}catch{}A()}},setTheme(V){p||(o.set_theme(V==="light"?1:0),A())},setThemePalette(V){if(!(p||!V)&&typeof o.set_trade_palette=="function"){try{o.set_trade_palette(Hn(V.bg),Hn(V.bull),Hn(V.bear),V.themed?1:0)}catch{}A()}},clear(){p||(o.clear(),A())},get isDead(){return p},destroy(){E=!0,f=!1,_&&(cancelAnimationFrame(_),_=null),mt(),kt();try{o.free()}catch{}}}}function Hn(t){if(typeof t!="string")return 0;let e=t.trim().replace(/^#/,"");if(e.length<6)return 0;let n=parseInt(e.slice(0,6),16);return Number.isFinite(n)?n>>>0:0}var zn=null,Ts=null;async function ra(){if(zn)return zn;let{module:t,memory:e}=await xe();return zn=t,Ts=e,t}var vs=Promise.resolve();async function na(t,e={}){let n=await ra();return vs=vs.then(()=>ys(n,t,e),()=>ys(n,t,e))}function ys(t,e,n){let s=window.devicePixelRatio||1,v=()=>{let X=e.parentElement,k=X?X.getBoundingClientRect():e.getBoundingClientRect();return{w:Math.max(60,Math.floor(k.width||60)),h:Math.max(120,Math.floor(k.height||120))}},{w:c,h:d}=v();e.width=Math.round(c*s),e.height=Math.round(d*s);let h=e.getContext("2d");h.setTransform(s,0,0,s,0,0);let r=new t.DomLadderEngine(c,d);n.tickSize&&r.set_tick_size(n.tickSize),n.pricePrecision!=null&&r.set_price_precision(n.pricePrecision),n.visibleRows&&r.set_visible_rows(n.visibleRows),n.theme==="light"&&r.set_theme(1),Number.isFinite(n.textScale)&&r.set_text_scale(n.textScale),Number.isFinite(n.fillIntensity)&&r.set_fill_intensity(n.fillIntensity),n.qtyDisplayUsd===!0&&r.set_qty_display_usd(1);let i=!0,o=null,a=!1,_=!1,f=!1,E=null,p=null;function F(){!a||f||o||(o=requestAnimationFrame(A))}let u=()=>{i=!0,F()};function O(){if(f)return!1;try{if(r.render()>0){let k=r.get_command_buffer_ptr(),J=r.get_command_buffer_len();h.save(),h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,e.width,e.height),h.restore(),ne(h,Ts,k,J)}return!0}catch(X){return X instanceof WebAssembly.RuntimeError&&(f=!0,console.error("[DomLadderEngine] crashed:",X.message)),!1}}function A(){if(o=null,!a||f)return;let X=!1;try{r.set_now_ms(Date.now()),X=i||r.is_dirty()}catch{f=!0;return}X&&(O()?i=!1:i=!0),a&&!f&&(o=requestAnimationFrame(A))}e.style.touchAction="none";let T=0,P=0,H=!1;function x(X){f||(T=X.offsetX,P=X.offsetY,H=!1)}function B(X){if(!f&&((Math.abs(X.offsetX-T)>4||Math.abs(X.offsetY-P)>4)&&(H=!0),r.set_hover(X.offsetX,X.offsetY),u(),E))try{let k=r.get_hover_price();if(k>0){let J=r.get_hover_side();E({price:k,side:J===1?"ask":"bid"},X)}else E(null,X)}catch{}}function Y(){f||(E&&E(null),r.clear_hover(),u())}function z(X){if(!f&&!H&&p)try{r.set_hover(X.offsetX,X.offsetY);let k=r.get_hover_price();if(k>0){let J=r.get_hover_side();p({price:k,side:J===1?"ask":"bid"})}}catch{}}function K(){f||(r.center_on_mid(),u())}function at(X){if(f)return;X.preventDefault();let k=X.deltaY;if(X.deltaMode===1?k*=16:X.deltaMode===2&&(k*=e.clientHeight||400),!(Math.abs(k)<.5)){try{r.scroll_by(k)}catch(J){if(J instanceof WebAssembly.RuntimeError){f=!0;return}return}u()}}e.addEventListener("pointerdown",x),e.addEventListener("pointermove",B),e.addEventListener("pointerup",z),e.addEventListener("pointerleave",Y),e.addEventListener("dblclick",K),e.addEventListener("wheel",at,{passive:!1});function j(){e.removeEventListener("pointerdown",x),e.removeEventListener("pointermove",B),e.removeEventListener("pointerup",z),e.removeEventListener("pointerleave",Y),e.removeEventListener("dblclick",K),e.removeEventListener("wheel",at)}return{engine:r,start(){a=!0,i=!0,F()},stop(){a=!1,o&&(cancelAnimationFrame(o),o=null)},resize(){if(_||f)return;let{w:X,h:k}=v();if(X<1||k<1)return;s=window.devicePixelRatio||1;let J=Math.round(X*s),it=Math.round(k*s),rt=e.width!==J||e.height!==it;e.width!==J&&(e.width=J),e.height!==it&&(e.height=it),h.setTransform(s,0,0,s,0,0);try{if(r.resize(X,k),rt){try{r.set_now_ms(Date.now())}catch{}O()}}catch(ut){if(ut instanceof WebAssembly.RuntimeError){f=!0;return}throw ut}u()},pushBook(X,k,J){if(f)return;let it=X instanceof Float64Array?X:Ss(X),rt=k instanceof Float64Array?k:Ss(k);try{r.push_book(it,rt,J)}catch(ut){if(ut instanceof WebAssembly.RuntimeError){f=!0;return}throw ut}u()},appendTrade(X,k,J,it){if(!f){try{r.append_trade(X,k,!!J,it||Date.now())}catch(rt){if(rt instanceof WebAssembly.RuntimeError){f=!0;return}throw rt}u()}},pushDomVol(X){if(!(f||!Array.isArray(X)||X.length===0)){try{for(let k of X){if(!k)continue;let J=Number(k.p??k.price),it=Number(k.b??k.buy??0),rt=Number(k.s??k.sell??0);J>0&&r.push_dom_vol(J,it,rt)}}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},clearDomVol(){if(!f){try{r.clear_dom_vol()}catch(X){if(X instanceof WebAssembly.RuntimeError){f=!0;return}throw X}u()}},setWalls(X,k){if(f)return;let J=X instanceof Float64Array?X:new Float64Array(X||[]),it=k instanceof Float64Array?k:new Float64Array(k||[]);try{r.set_walls(J,it)}catch(rt){if(rt instanceof WebAssembly.RuntimeError){f=!0;return}throw rt}u()},setTickSize(X){if(!f){try{r.set_tick_size(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setPricePrecision(X){if(!f){try{r.set_price_precision(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setVisibleRows(X){f||(r.set_visible_rows(X),u())},setTextScale(X){if(!(f||!Number.isFinite(X))){try{r.set_text_scale(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setFillIntensity(X){if(!(f||!Number.isFinite(X))){try{r.set_fill_intensity(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setQtyDisplayUsd(X){if(!f){try{r.set_qty_display_usd(X?1:0)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},setTheme(X){f||(r.set_theme(X==="light"?1:0),u())},setThemePalette(X){if(!(f||!X)&&typeof r.set_trade_palette=="function"){try{r.set_trade_palette(Xn(X.bg),Xn(X.bull),Xn(X.bear),X.themed?1:0)}catch{}u()}},resetSymbol(){f||(r.reset_symbol(),u())},centerOnMid(){f||(r.center_on_mid(),u())},scrollBy(X){if(!(f||!Number.isFinite(X))){try{r.scroll_by(X)}catch(k){if(k instanceof WebAssembly.RuntimeError){f=!0;return}throw k}u()}},isViewLocked(){if(f)return!1;try{return r.is_view_locked()}catch{return!1}},getMomentum(){if(f)return{m1:0,buy1m:0,sell1m:0};try{return{m1:r.momentum_1m(),buy1m:r.buy_volume_1m(),sell1m:r.sell_volume_1m()}}catch{return{m1:0,buy1m:0,sell1m:0}}},onHover(X){E=X},onClick(X){p=X},destroy(){_=!0,a=!1,o&&cancelAnimationFrame(o),o=null,j();try{r.free&&r.free()}catch{}}}}function Xn(t){if(typeof t!="string")return 0;let e=t.trim().replace(/^#/,"");if(e.length<6)return 0;let n=parseInt(e.slice(0,6),16);return Number.isFinite(n)?n>>>0:0}function Ss(t){let e=new Float64Array(t.length*2);for(let n=0;n<t.length;n++)e[n*2]=t[n][0],e[n*2+1]=t[n][1];return e}var Vn=null,As=null;async function oa(){if(Vn)return Vn;let{module:t,memory:e}=await xe();return Vn=t,As=e,t}function sa(){if(typeof navigator>"u")return!1;let t=navigator.userAgent||"",e=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,n=typeof window<"u"&&Math.min(window.innerWidth,window.innerHeight)<820;return/iphone|ipad|ipod|android|mobile/i.test(t)||e&&n}var Es=Promise.resolve();async function ia(t,e={}){let n=await oa();return Es=Es.then(()=>Cs(n,t,e),()=>Cs(n,t,e))}function Cs(t,e,n){let s=window.devicePixelRatio||1,v=e.getBoundingClientRect(),c=Math.max(v.width,60),d=Math.max(v.height,60);e.width=c*s,e.height=d*s;let h=e.getContext("2d");h.setTransform(1,0,0,1,0,0),h.scale(s,s);let r=e.width,i=e.height,o=new t.TickEngine(c,d);n.tickSize&&o.set_tick_size(n.tickSize),n.pricePrecision!=null&&o.set_price_precision(n.pricePrecision),n.theme==="light"&&o.set_theme(1);let a=n.lookbackMs||5*60*1e3,_=n.cellMs||1e3;(n.lookbackMs||n.cellMs)&&o.set_lookback(a,_),n.showTradeTape!=null&&o.set_show_trade_tape(!!n.showTradeTape),n.showBookHeatmap!=null&&o.set_show_book_heatmap(!!n.showBookHeatmap),n.showVwap!=null&&o.set_show_vwap(!!n.showVwap),n.showGrid!=null&&o.set_show_grid(!!n.showGrid);let f=n.isMobile!=null?!!n.isMobile:sa(),E=!!n.lowPower,p=f||E?33:8,F=66,u=3e4,O=!0,A=null,T=!1,P=!1,H=!1,x=!1,B=0,Y=performance.now(),z=performance.now(),K=0,at=Math.max(4,p-1),j=0,X=0,k=0,J=null,it=null,rt=0,ut=[];function nt(){if(P||!T||typeof document<"u"&&document.hidden)return Number.POSITIVE_INFINITY;let C=performance.now();return(C-Y>u&&C-z>u?F:p)+X}function ct(){!T||P||x||A||(A=requestAnimationFrame(ft))}function ft(C){if(A=null,!T||P||x)return;let I=nt();if(!Number.isFinite(I))return;if(C-B<I){A=requestAnimationFrame(ft);return}B=C,mt();let U=O;if(!U)try{U=o.is_dirty()}catch{x=!0;return}if(U){O=!1;let Z=performance.now();if(!At()){if(x)return;O=!0}let lt=performance.now()-Z;K=K*.85+lt*.15,lt>at?(j+=1,j>=8&&(X=Math.min(100,X+16),j=0,console.debug(`[TickEngine] adaptive throttle \u2192 ${p+X}ms (EMA ${K.toFixed(1)}ms, last ${lt.toFixed(1)}ms)`))):(j=0,X>0&&K<at*.5&&(X=Math.max(0,X-8)))}A=requestAnimationFrame(ft)}function mt(){if(J&&rt>0){try{o.push_book(k,J,it,rt)}catch(C){if(C instanceof WebAssembly.RuntimeError){x=!0;return}}J=null,it=null,rt=0}if(ut.length){let C=new Float64Array(ut);ut.length=0;try{o.push_trades_batch(C)}catch(I){if(I instanceof WebAssembly.RuntimeError){x=!0;return}}}}let dt=()=>{O=!0,ct()};function At(){if(x)return!1;try{if(o.render()>0){let I=o.get_command_buffer_ptr(),U=o.get_command_buffer_len();h.save(),h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,e.width,e.height),h.restore(),ne(h,As,I,U)}return!0}catch(C){return C instanceof WebAssembly.RuntimeError&&(x=!0,console.error("[TickEngine] crashed:",C.message)),!1}}function Ft(){typeof document>"u"||(document.hidden?A&&(cancelAnimationFrame(A),A=null):(ut.length=0,J=null,it=null,rt=0,B=0,dt()))}typeof document<"u"&&document.addEventListener("visibilitychange",Ft);function zt(){if(H||x||(v=e.getBoundingClientRect(),v.width<1||v.height<1))return;s=window.devicePixelRatio||1;let C=Math.round(v.width*s),I=Math.round(v.height*s);try{o.resize(v.width,v.height)}catch(U){if(U instanceof WebAssembly.RuntimeError){x=!0;return}throw U}if(P){dt();return}(C!==r||I!==i)&&(r=C,i=I,e.width=C,e.height=I,h.setTransform(1,0,0,1,0,0),h.scale(s,s)),At(),dt()}let xt=0,D=2,Pt=3,Xt=xt,qt=!1,kt=0,V=0,q=new Map,tt=0,ht=0;function gt(C,I){if(x)return xt;try{let U=o.hit_zone?.(C,I);return Number.isFinite(U)?U:xt}catch{return xt}}function ot(){}e.style.touchAction="none";function Qt(C){if(x||P)return;C.stopImmediatePropagation(),C.preventDefault(),Y=performance.now();let I=C.deltaY,U=C.deltaX,Z=Math.abs(I)>=Math.abs(U)?I:U;if(Z===0)return;let Q=Z>0?1.1:.9,lt=gt(C.offsetX,C.offsetY);try{C.ctrlKey?o.zoom_y(C.offsetY,Q):C.shiftKey||lt===D?o.zoom_x(C.offsetX,Q):lt===Pt?o.zoom_y(C.offsetY,Q):o.zoom(C.offsetX,C.offsetY,Q)}catch{}dt()}function ee(C){if(!(x||P)){if(C.stopImmediatePropagation(),Y=performance.now(),q.set(C.pointerId,{x:C.offsetX,y:C.offsetY}),e.setPointerCapture(C.pointerId),q.size===1)qt=!0,kt=C.offsetX,V=C.offsetY,Xt=gt(C.offsetX,C.offsetY);else if(q.size===2){qt=!1;let I=[...q.values()];tt=Math.abs(I[0].y-I[1].y),ht=(I[0].y+I[1].y)/2}}}function Ne(C){if(x||P)return;let I=q.has(C.pointerId);if(I&&C.stopImmediatePropagation(),Y=performance.now(),I&&q.set(C.pointerId,{x:C.offsetX,y:C.offsetY}),I&&q.size>=2){let U=[...q.values()],Z=Math.abs(U[0].y-U[1].y),Q=(U[0].y+U[1].y)/2;if(tt>0){let _t=tt/Math.max(Z,1);try{o.zoom_y(Q,_t)}catch{}}let lt=Q-ht;if(Math.abs(lt)>.5)try{o.pan_y(lt)}catch{}tt=Z,ht=Q,dt()}else if(I&&qt){let U=C.offsetX-kt,Z=C.offsetY-V;kt=C.offsetX,V=C.offsetY;try{if(Xt===D){if(Math.abs(U)>.5){let Q=Math.exp(U*.004);o.zoom_x(kt,Q)}}else if(Xt===Pt){if(Math.abs(Z)>.5){let Q=Math.exp(Z*.004);o.zoom_y(V,Q)}}else Math.abs(U)>.5&&o.pan_x(U),Math.abs(Z)>.5&&o.pan_y(Z)}catch{}dt()}else{try{o.set_hover(C.offsetX,C.offsetY)}catch{}dt()}}function Zt(C){if(x)return;let I=q.has(C.pointerId);!P&&I&&C.stopImmediatePropagation(),q.delete(C.pointerId);try{e.releasePointerCapture(C.pointerId)}catch{}if(q.size===0)qt=!1,tt=0;else if(q.size===1){qt=!0;let U=[...q.values()][0];kt=U.x,V=U.y,tt=0}}function l(C){if(x)return;let I=q.has(C.pointerId);!P&&I&&C.stopImmediatePropagation();try{o.clear_hover()}catch{}dt()}function g(C){if(x||P)return;C.stopImmediatePropagation();let I=gt(C.offsetX,C.offsetY);try{I===Pt?o.reset_y_auto?.():I===D?o.set_follow_live?.(!0):o.reset_view?.()}catch{}dt()}function b(C){x||P||C.stopImmediatePropagation()}function y(C){x||P||q.size>0&&C.stopImmediatePropagation()}function m(C){x||P||q.size>0&&C.stopImmediatePropagation()}function S(C){x||P||(C.stopImmediatePropagation(),C.preventDefault())}let M={capture:!0},N={capture:!0,passive:!1};e.addEventListener("wheel",Qt,N),e.addEventListener("pointerdown",ee,M),e.addEventListener("pointermove",Ne,M),e.addEventListener("pointerup",Zt,M),e.addEventListener("pointercancel",Zt,M),e.addEventListener("pointerleave",l,M),e.addEventListener("dblclick",g,M),e.addEventListener("mousedown",b,M),e.addEventListener("mousemove",y,M),e.addEventListener("mouseup",m,M),e.addEventListener("contextmenu",S,M);function R(){e.removeEventListener("wheel",Qt,N),e.removeEventListener("pointerdown",ee,M),e.removeEventListener("pointermove",Ne,M),e.removeEventListener("pointerup",Zt,M),e.removeEventListener("pointercancel",Zt,M),e.removeEventListener("pointerleave",l,M),e.removeEventListener("dblclick",g,M),e.removeEventListener("mousedown",b,M),e.removeEventListener("mousemove",y,M),e.removeEventListener("mouseup",m,M),e.removeEventListener("contextmenu",S,M),typeof document<"u"&&document.removeEventListener("visibilitychange",Ft)}return{engine:o,isMobile:f,start(){T=!0,P=!1,O=!0,B=0,Y=performance.now(),z=performance.now(),ct()},pause(){P=!0,A&&(cancelAnimationFrame(A),A=null)},resume(){H||x||(P=!1,T=!0,O=!0,B=0,ct())},stop(){T=!1,A&&(cancelAnimationFrame(A),A=null)},resize:zt,pushBook(C,I,U,Z){x||P||(z=performance.now(),k=C,J=I,it=U,rt=Z,ct())},pushTrade(C,I,U,Z){x||P||(z=performance.now(),ut.push(C,I,U,Z),ct())},pushTradesFlat(C){if(!(x||P)){z=performance.now();for(let I=0;I<C.length;I++)ut.push(C[I]);ct()}},setTheme(C){if(!x){try{o.set_theme(C==="light"||C===1?1:0)}catch{}dt()}},setTickSize(C){if(!x){try{o.set_tick_size(C)}catch{}dt()}},setPricePrecision(C){if(!x){try{o.set_price_precision(C)}catch{}dt()}},setTzOffsetSeconds(C){if(x)return;let I=Number.isFinite(C)?Math.trunc(C):0;if(typeof o.set_tz_offset_seconds=="function"){try{o.set_tz_offset_seconds(I)}catch{}dt()}},setLookback(C,I){if(x)return;let U=Math.max(20,I|0),Z=Math.max(U,C|0);if(!(U===_&&Z===a)){_=U,a=Z;try{o.set_lookback(Z,U)}catch{}dt()}},setShowTradeTape(C){x||(o.set_show_trade_tape(!!C),dt())},setShowBookHeatmap(C){x||(o.set_show_book_heatmap(!!C),dt())},setShowVwap(C){x||(o.set_show_vwap(!!C),dt())},setShowGrid(C){x||(o.set_show_grid(!!C),dt())},setHeatmapPalette(C){if(x)return;let I=Math.max(0,Math.min(4,C|0));try{o.set_heatmap_palette?.(I)}catch{}dt()},setHeatmapStyle(C){if(x)return;let I=Math.max(0,Math.min(1,C|0));try{o.set_heatmap_style?.(I)}catch{}dt()},setLargeTrade3d(C){if(!x){try{o.set_large_trade_3d?.(!!C)}catch{}dt()}},setLargeTradeScale(C){if(x)return;let I=Number.isFinite(C)?+C:1;try{o.set_large_trade_scale?.(I)}catch{}dt()},setShowVolume(C){if(!x){try{o.set_show_volume?.(!!C)}catch{}dt()}},setShowPriceLine(C){if(!x){try{o.set_show_price_line?.(!!C)}catch{}dt()}},setShowDepthLens(C){if(!x){try{o.set_show_depth_lens?.(!!C)}catch{}dt()}},setShowCvd(C){if(!x){try{o.set_show_cvd?.(!!C)}catch{}dt()}},setHeatmapIntensity(C,I){if(x)return;let U=Number.isFinite(C)?Math.max(0,Math.min(.99,+C)):0,Z=Number.isFinite(I)?Math.max(U+.01,Math.min(1,+I)):1;try{o.set_heatmap_intensity?.(U,Z)}catch{}dt()},setShowLatestProfile(C){if(!x){try{o.set_show_latest_profile?.(!!C)}catch{}dt()}},setFollowLive(C){x||(o.set_follow_live(!!C),dt())},setAutoScaleY(C){x||(o.set_auto_scale_y(!!C),dt())},resetView(){x||(o.reset_view(),dt())},getLastMid(){if(x)return 0;try{return o.get_last_mid()}catch{return 0}},clearData(){if(!x){try{o.clear()}catch{}ut.length=0,J=null,it=null,rt=0,dt()}},destroy(){if(!H){H=!0,T=!1,P=!0,A&&(cancelAnimationFrame(A),A=null),R();try{o.free?.()}catch{}}}}}export{$i as buildRange,Ki as buildRenko,ji as buildTick,Gi as createChartBridge,Jr as createCustomIndicatorManager,na as createDomLadderBridge,Di as createIcebergDetector,ea as createOrderbookBridge,ia as createTickBridge,ne as dispatchCommands,Ui as prefetchEngine,Ui as prefetchWasm,jr as setupEvents,Qi as suggestDefaults,Yr as validateLicense};
14
+ var Zn=Object.defineProperty;var Bs=(t,e,n)=>e in t?Zn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var er=(t,e)=>()=>(t&&(e=t(t=0)),e);var Un=(t,e)=>{for(var n in e)Zn(t,n,{get:e[n],enumerable:!0})};var K=(t,e,n)=>Bs(t,typeof e!="symbol"?e+"":e,n);var Vo={};Un(Vo,{Point:()=>_e,etc:()=>mi,getPublicKey:()=>Io,getPublicKeyAsync:()=>Ro,hash:()=>fi,hashes:()=>zo,keygen:()=>gi,keygenAsync:()=>wi,sign:()=>hi,signAsync:()=>di,utils:()=>vi,verify:()=>bi,verifyAsync:()=>pi});var Co,Er,Tr,go,wo,en,rn,oi,ue,si,Nt,ii,ai,li,kt,Mr,an,Ao,ln,ge,vo,cn,Po,ci,Ye,Mo,Cr,Be,Et,yo,lt,Lo,xo,fn,un,fi,nn,on,fe,_e,Le,He,Fo,_n,ce,ui,So,_i,Ar,dn,hn,No,pn,bn,Ro,Io,Oo,Bo,Ho,di,hi,mn,Yo,pi,bi,mi,zo,gn,gi,wi,vi,Pr,yi,Xo,sn,Si,To,Eo,Ti,Wo=er(()=>{Co=Object.freeze({p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n}),{p:Er,n:Tr,Gx:go,Gy:wo,a:en,d:rn,h:oi}=Co,ue=32,si=(...t)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...t)},Nt=(t="")=>{let e=new Error(t);throw si(e,Nt),e},ii=t=>typeof t=="bigint",ai=t=>typeof t=="string",li=t=>t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1,kt=(t,e,n="")=>{let o=li(t),h=t?.length,c=e!==void 0;if(!o||c&&h!==e){let d=n&&`"${n}" `,g=c?` of length ${e}`:"",r=o?`length=${h}`:`type=${typeof t}`,a=d+"expected Uint8Array"+g+", got "+r;throw o?new RangeError(a):new TypeError(a)}return t},Mr=t=>new Uint8Array(t),an=t=>Uint8Array.from(t),Ao=(t,e)=>t.toString(16).padStart(e,"0"),ln=t=>Array.from(kt(t)).map(e=>Ao(e,2)).join(""),ge={_0:48,_9:57,A:65,F:70,a:97,f:102},vo=t=>{if(t>=ge._0&&t<=ge._9)return t-ge._0;if(t>=ge.A&&t<=ge.F)return t-(ge.A-10);if(t>=ge.a&&t<=ge.f)return t-(ge.a-10)},cn=t=>{let e="hex invalid";if(!ai(t))return Nt(e);let n=t.length,o=n/2;if(n%2)return Nt(e);let h=Mr(o);for(let c=0,d=0;c<o;c++,d+=2){let g=vo(t.charCodeAt(d)),r=vo(t.charCodeAt(d+1));if(g===void 0||r===void 0)return Nt(e);h[c]=g*16+r}return h},Po=()=>globalThis?.crypto,ci=()=>Po()?.subtle??Nt("crypto.subtle must be defined, consider polyfill"),Ye=(...t)=>{let e=0;for(let h of t)e+=kt(h).length;let n=Mr(e),o=0;return t.forEach(h=>{n.set(h,o),o+=h.length}),n},Mo=(t=ue)=>Po().getRandomValues(Mr(t)),Cr=BigInt,Be=(t,e,n,o="bad number: out of range")=>{if(!ii(t))throw new TypeError(o);if(e<=t&&t<n)return t;throw new RangeError(o)},Et=(t,e=Er)=>{let n=t%e;return n>=0n?n:e+n},yo=(1n<<255n)-1n,lt=t=>{t<0n&&Nt("negative coordinate");let e=(t>>255n)*19n+(t&yo);return e=(e>>255n)*19n+(e&yo),e%Er},Lo=t=>Et(t,Tr),xo=(t,e)=>{(t===0n||e<=0n)&&Nt("no inverse n="+t+" mod="+e);let n=Et(t,e),o=e,h=0n,c=1n,d=1n,g=0n;for(;n!==0n;){let r=o/n,a=o%n,s=h-d*r,i=c-g*r;o=n,n=a,h=d,c=g,d=s,g=i}return o===1n?Et(h,e):Nt("no inverse")},fn=t=>{let e=zo[t];return typeof e!="function"&&Nt("hashes."+t+" not set"),e},un=t=>kt(t,64,"digest"),fi=t=>un(fn("sha512")(kt(t,void 0,"message"))),nn=t=>t instanceof _e?t:Nt("Point expected"),on=2n**256n,fe=class fe{constructor(e,n,o,h){K(this,"X");K(this,"Y");K(this,"Z");K(this,"T");let c=on;this.X=Be(e,0n,c),this.Y=Be(n,0n,c),this.Z=Be(o,1n,c),this.T=Be(h,0n,c),Object.freeze(this)}static CURVE(){return Co}static fromAffine(e){return new fe(e.x,e.y,1n,lt(e.x*e.y))}static fromBytes(e,n=!1){let o=rn,h=an(kt(e,ue)),c=e[31];h[31]=c&-129;let d=_n(h);Be(d,0n,n?on:Er);let r=lt(d*d),a=Et(r-1n),s=lt(o*r+1n),{isValid:i,value:u}=_i(a,s);i||Nt("bad point: y not sqrt");let f=(u&1n)===1n,m=(c&128)!==0;return!n&&u===0n&&m&&Nt("bad point: x==0, isLastByteOdd"),m!==f&&(u=Et(-u)),new fe(u,d,1n,lt(u*d))}static fromHex(e,n){return fe.fromBytes(cn(e),n)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let e=en,n=rn,o=this;if(o.is0())return Nt("bad point: ZERO");let{X:h,Y:c,Z:d,T:g}=o,r=lt(h*h),a=lt(c*c),s=lt(d*d),i=lt(s*s),u=lt(r*e),f=lt(s*(u+a)),m=Et(i+lt(n*lt(r*a)));if(f!==m)return Nt("bad point: equation left != right (1)");let A=lt(h*c),T=lt(d*g);return A!==T?Nt("bad point: equation left != right (2)"):this}equals(e){let{X:n,Y:o,Z:h}=this,{X:c,Y:d,Z:g}=nn(e),r=lt(n*g),a=lt(c*h),s=lt(o*g),i=lt(d*h);return r===a&&s===i}is0(){return this.equals(He)}negate(){return new fe(Et(-this.X),this.Y,this.Z,Et(-this.T))}double(){let{X:e,Y:n,Z:o}=this,h=en,c=lt(e*e),d=lt(n*n),g=lt(2n*o*o),r=lt(h*c),a=Et(e+n),s=Et(lt(a*a)-c-d),i=Et(r+d),u=Et(i-g),f=Et(r-d),m=lt(s*u),A=lt(i*f),T=lt(s*f),_=lt(u*i);return new fe(m,A,_,T)}add(e){let{X:n,Y:o,Z:h,T:c}=this,{X:d,Y:g,Z:r,T:a}=nn(e),s=en,i=rn,u=lt(n*d),f=lt(o*g),m=lt(lt(c*i)*a),A=lt(h*r),T=Et(lt(Et(n+o)*Et(d+g))-u-f),_=Et(A-m),I=Et(A+m),P=Et(f-lt(s*u)),S=lt(T*_),C=lt(I*P),B=lt(T*P),V=lt(_*I);return new fe(S,C,V,B)}subtract(e){return this.add(nn(e).negate())}multiply(e,n=!0){if(!n&&e===0n||(Be(e,1n,Tr),!n&&this.is0()))return He;if(e===1n)return this;if(this.equals(Le))return Ti(e).p;let o=He,h=Le;for(let c=this;e>0n;c=c.double(),e>>=1n)e&1n?o=o.add(c):n&&(h=h.add(c));return o}multiplyUnsafe(e){return this.multiply(e,!1)}toAffine(){let{X:e,Y:n,Z:o}=this;if(this.equals(He))return{x:0n,y:1n};let h=xo(o,Er);lt(o*h)!==1n&&Nt("invalid inverse");let c=lt(e*h),d=lt(n*h);return{x:c,y:d}}toBytes(){let{x:e,y:n}=this.toAffine(),o=Fo(n);return o[31]|=e&1n?128:0,o}toHex(){return ln(this.toBytes())}clearCofactor(){return this.multiply(Cr(oi),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let e=this.multiply(Tr/2n,!1).double();return Tr%2n&&(e=e.add(this)),e.is0()}};K(fe,"BASE"),K(fe,"ZERO");_e=fe,Le=new _e(go,wo,1n,Et(go*wo)),He=new _e(0n,1n,1n,0n);_e.BASE=Le;_e.ZERO=He;Fo=t=>cn(Ao(Be(t,0n,on),64)).reverse(),_n=t=>Cr("0x"+ln(an(kt(t)).reverse())),ce=(t,e)=>{let n=t;for(;e-- >0n;)n=lt(n*n);return n},ui=t=>{let e=lt(t*t),n=lt(e*t),o=lt(ce(n,2n)*n),h=lt(ce(o,1n)*t),c=lt(ce(h,5n)*h),d=lt(ce(c,10n)*c),g=lt(ce(d,20n)*d),r=lt(ce(g,40n)*g),a=lt(ce(r,80n)*r),s=lt(ce(a,80n)*r),i=lt(ce(s,10n)*c);return{pow_p_5_8:lt(ce(i,2n)*t),b2:n}},So=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,_i=(t,e)=>{let n=lt(e*lt(e*e)),o=lt(lt(n*n)*e),h=ui(lt(t*o)).pow_p_5_8,c=lt(t*lt(n*h)),d=lt(e*lt(c*c)),g=c,r=lt(c*So),a=d===t,s=d===Et(-t),i=d===Et(-t*So);return a&&(c=g),(s||i)&&(c=r),(Et(c)&1n)===1n&&(c=Et(-c)),{isValid:a||s,value:c}},Ar=t=>Lo(_n(t)),dn=(...t)=>Promise.resolve(fn("sha512Async")(Ye(...t))).then(un),hn=(...t)=>un(fn("sha512")(Ye(...t))),No=t=>{let e=an(t),n=e.slice(0,32);n[0]&=248,n[31]&=127,n[31]|=64;let o=e.slice(32,64),h=Ar(n),c=Le.multiply(h),d=c.toBytes();return{head:n,prefix:o,scalar:h,point:c,pointBytes:d}},pn=t=>dn(kt(t,ue)).then(No),bn=t=>No(hn(kt(t,ue))),Ro=t=>pn(t).then(e=>e.pointBytes),Io=t=>bn(t).pointBytes,Oo=t=>dn(t.hashable).then(t.finish),Bo=t=>t.finish(hn(t.hashable)),Ho=(t,e,n)=>{let{pointBytes:o,scalar:h}=t,c=Ar(e),d=Le.multiply(c).toBytes();return{hashable:Ye(d,o,n),finish:a=>{let s=Lo(c+Ar(a)*h);return kt(Ye(d,Fo(s)),64)}}},di=async(t,e)=>{let n=kt(t),o=await pn(e),h=await dn(o.prefix,n);return Oo(Ho(o,h,n))},hi=(t,e)=>{let n=kt(t),o=bn(e),h=hn(o.prefix,n);return Bo(Ho(o,h,n))},mn={zip215:!0},Yo=(t,e,n,o=mn)=>{t=kt(t,64),e=kt(e),n=kt(n,ue);let{zip215:h=!0}=o,c=t.subarray(0,ue),d=_n(t.subarray(ue,ue*2)),g,r,a,s=Uint8Array.of(),i=!1;try{g=_e.fromBytes(n,h),r=_e.fromBytes(c,h),a=Le.multiply(d,!1),s=Ye(c,n,e),i=!0}catch{}return{hashable:s,finish:f=>{if(!i||!h&&g.isSmallOrder())return!1;let m=Ar(f);return r.add(g.multiply(m,!1)).subtract(a).clearCofactor().is0()}}},pi=async(t,e,n,o=mn)=>Oo(Yo(t,e,n,o)),bi=(t,e,n,o=mn)=>Bo(Yo(t,e,n,o)),mi=Object.freeze({bytesToHex:ln,hexToBytes:cn,concatBytes:Ye,mod:Et,invert:xo,randomBytes:Mo}),zo={sha512Async:async t=>{let e=ci(),n=Ye(t);return Mr(await e.digest("SHA-512",n.buffer))},sha512:void 0},gn=t=>(t=t===void 0?Mo(ue):t,kt(t,ue)),gi=t=>{let e=gn(t),n=Io(e);return{secretKey:e,publicKey:n}},wi=async t=>{let e=gn(t),n=await Ro(e);return{secretKey:e,publicKey:n}},vi=Object.freeze({getExtendedPublicKeyAsync:pn,getExtendedPublicKey:bn,randomSecretKey:gn}),Pr=8,yi=256,Xo=Math.ceil(yi/Pr)+1,sn=2**(Pr-1),Si=()=>{let t=[],e=Le,n=e;for(let o=0;o<Xo;o++){n=e,t.push(n);for(let h=1;h<sn;h++)n=n.add(e),t.push(n);e=n.double()}return t},Eo=(t,e)=>{let n=e.negate();return t?n:e},Ti=t=>{let e=To||(To=Si()),n=He,o=Le,h=2**Pr,c=h,d=Cr(h-1),g=Cr(Pr);for(let r=0;r<Xo;r++){let a=Number(t&d);t>>=g,a>sn&&(a-=c,t+=1n);let s=r*sn,i=s,u=s+Math.abs(a)-1,f=r%2!==0,m=a<0;a===0?o=o.add(Eo(f,e[i])):n=n.add(Eo(m,e[u]))}return t!==0n&&Nt("invalid wnaf"),{p:n,f:o}}});function Ei(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function wn(t,e,n=""){let o=Ei(t),h=t?.length,c=e!==void 0;if(!o||c&&h!==e){let d=n&&`"${n}" `,g=c?` of length ${e}`:"",r=o?`length=${h}`:`type=${typeof t}`,a=d+"expected Uint8Array"+g+", got "+r;throw o?new RangeError(a):new TypeError(a)}return t}function vn(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function qo(t,e){wn(t,void 0,"digestInto() output");let n=e.outputLen;if(t.length<n)throw new RangeError('"digestInto() output" expected to be of length >='+n)}function ze(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function Lr(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function ie(t,e){return t<<32-e|t>>>e}function Xe(t,e={}){let n=(h,c)=>t(c).update(h).digest(),o=t(void 0);return n.outputLen=o.outputLen,n.blockLen=o.blockLen,n.canXOF=o.canXOF,n.create=h=>t(h),Object.assign(n,e),Object.freeze(n)}var Ve,yn=er(()=>{Ve=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])})});function ko(t,e,n){return t&e^~t&n}function Zo(t,e,n){return t&e^t&n^e&n}var lr,we,ve,Rt,It,Uo=er(()=>{yn();lr=class{constructor(e,n,o,h){K(this,"blockLen");K(this,"outputLen");K(this,"canXOF",!1);K(this,"padOffset");K(this,"isLE");K(this,"buffer");K(this,"view");K(this,"finished",!1);K(this,"length",0);K(this,"pos",0);K(this,"destroyed",!1);this.blockLen=e,this.outputLen=n,this.padOffset=o,this.isLE=h,this.buffer=new Uint8Array(e),this.view=Lr(this.buffer)}update(e){vn(this),wn(e);let{view:n,buffer:o,blockLen:h}=this,c=e.length;for(let d=0;d<c;){let g=Math.min(h-this.pos,c-d);if(g===h){let r=Lr(e);for(;h<=c-d;d+=h)this.process(r,d);continue}o.set(e.subarray(d,d+g),this.pos),this.pos+=g,d+=g,this.pos===h&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){vn(this),qo(e,this),this.finished=!0;let{buffer:n,view:o,blockLen:h,isLE:c}=this,{pos:d}=this;n[d++]=128,ze(this.buffer.subarray(d)),this.padOffset>h-d&&(this.process(o,0),d=0);for(let i=d;i<h;i++)n[i]=0;o.setBigUint64(h-8,BigInt(this.length*8),c),this.process(o,0);let g=Lr(e),r=this.outputLen;if(r%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let a=r/4,s=this.get();if(a>s.length)throw new Error("_sha2: outputLen bigger than state");for(let i=0;i<a;i++)g.setUint32(4*i,s[i],c)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let o=e.slice(0,n);return this.destroy(),o}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:o,length:h,finished:c,destroyed:d,pos:g}=this;return e.destroyed=d,e.finished=c,e.length=h,e.pos=g,h%n&&e.buffer.set(o),e}clone(){return this._cloneInto()}},we=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ve=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),Rt=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),It=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])});function Ci(t,e=!1){return e?{h:Number(t&xr),l:Number(t>>Go&xr)}:{h:Number(t>>Go&xr)|0,l:Number(t&xr)|0}}function Ko(t,e=!1){let n=t.length,o=new Uint32Array(n),h=new Uint32Array(n);for(let c=0;c<n;c++){let{h:d,l:g}=Ci(t[c],e);[o[c],h[c]]=[d,g]}return[o,h]}function de(t,e,n,o){let h=(e>>>0)+(o>>>0);return{h:t+n+(h/2**32|0)|0,l:h|0}}var xr,Go,Sn,Tn,We,qe,cr,fr,$o,jo,Qo,Jo,Do,ts,es=er(()=>{xr=BigInt(4294967295),Go=BigInt(32);Sn=(t,e,n)=>t>>>n,Tn=(t,e,n)=>t<<32-n|e>>>n,We=(t,e,n)=>t>>>n|e<<32-n,qe=(t,e,n)=>t<<32-n|e>>>n,cr=(t,e,n)=>t<<64-n|e>>>n-32,fr=(t,e,n)=>t>>>n-32|e<<64-n;$o=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),jo=(t,e,n,o)=>e+n+o+(t/2**32|0)|0,Qo=(t,e,n,o)=>(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0),Jo=(t,e,n,o,h)=>e+n+o+h+(t/2**32|0)|0,Do=(t,e,n,o,h)=>(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0)+(h>>>0),ts=(t,e,n,o,h,c)=>e+n+o+h+c+(t/2**32|0)|0});var ns={};Un(ns,{_SHA224:()=>Rr,_SHA256:()=>Nr,_SHA384:()=>Or,_SHA512:()=>Ir,_SHA512_224:()=>Br,_SHA512_256:()=>Hr,sha224:()=>Fi,sha256:()=>xi,sha384:()=>Ri,sha512:()=>Ni,sha512_224:()=>Oi,sha512_256:()=>Ii});var Pi,xe,Fr,Nr,Rr,rs,Mi,Li,Fe,Ne,Ge,Ir,Or,Xt,Vt,Br,Hr,xi,Fi,Ni,Ri,Ii,Oi,os=er(()=>{Uo();es();yn();Pi=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),xe=new Uint32Array(64),Fr=class extends lr{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:n,C:o,D:h,E:c,F:d,G:g,H:r}=this;return[e,n,o,h,c,d,g,r]}set(e,n,o,h,c,d,g,r){this.A=e|0,this.B=n|0,this.C=o|0,this.D=h|0,this.E=c|0,this.F=d|0,this.G=g|0,this.H=r|0}process(e,n){for(let i=0;i<16;i++,n+=4)xe[i]=e.getUint32(n,!1);for(let i=16;i<64;i++){let u=xe[i-15],f=xe[i-2],m=ie(u,7)^ie(u,18)^u>>>3,A=ie(f,17)^ie(f,19)^f>>>10;xe[i]=A+xe[i-7]+m+xe[i-16]|0}let{A:o,B:h,C:c,D:d,E:g,F:r,G:a,H:s}=this;for(let i=0;i<64;i++){let u=ie(g,6)^ie(g,11)^ie(g,25),f=s+u+ko(g,r,a)+Pi[i]+xe[i]|0,A=(ie(o,2)^ie(o,13)^ie(o,22))+Zo(o,h,c)|0;s=a,a=r,r=g,g=d+f|0,d=c,c=h,h=o,o=f+A|0}o=o+this.A|0,h=h+this.B|0,c=c+this.C|0,d=d+this.D|0,g=g+this.E|0,r=r+this.F|0,a=a+this.G|0,s=s+this.H|0,this.set(o,h,c,d,g,r,a,s)}roundClean(){ze(xe)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),ze(this.buffer)}},Nr=class extends Fr{constructor(){super(32);K(this,"A",we[0]|0);K(this,"B",we[1]|0);K(this,"C",we[2]|0);K(this,"D",we[3]|0);K(this,"E",we[4]|0);K(this,"F",we[5]|0);K(this,"G",we[6]|0);K(this,"H",we[7]|0)}},Rr=class extends Fr{constructor(){super(28);K(this,"A",ve[0]|0);K(this,"B",ve[1]|0);K(this,"C",ve[2]|0);K(this,"D",ve[3]|0);K(this,"E",ve[4]|0);K(this,"F",ve[5]|0);K(this,"G",ve[6]|0);K(this,"H",ve[7]|0)}},rs=Ko(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),Mi=rs[0],Li=rs[1],Fe=new Uint32Array(80),Ne=new Uint32Array(80),Ge=class extends lr{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:n,Bh:o,Bl:h,Ch:c,Cl:d,Dh:g,Dl:r,Eh:a,El:s,Fh:i,Fl:u,Gh:f,Gl:m,Hh:A,Hl:T}=this;return[e,n,o,h,c,d,g,r,a,s,i,u,f,m,A,T]}set(e,n,o,h,c,d,g,r,a,s,i,u,f,m,A,T){this.Ah=e|0,this.Al=n|0,this.Bh=o|0,this.Bl=h|0,this.Ch=c|0,this.Cl=d|0,this.Dh=g|0,this.Dl=r|0,this.Eh=a|0,this.El=s|0,this.Fh=i|0,this.Fl=u|0,this.Gh=f|0,this.Gl=m|0,this.Hh=A|0,this.Hl=T|0}process(e,n){for(let P=0;P<16;P++,n+=4)Fe[P]=e.getUint32(n),Ne[P]=e.getUint32(n+=4);for(let P=16;P<80;P++){let S=Fe[P-15]|0,C=Ne[P-15]|0,B=We(S,C,1)^We(S,C,8)^Sn(S,C,7),V=qe(S,C,1)^qe(S,C,8)^Tn(S,C,7),x=Fe[P-2]|0,O=Ne[P-2]|0,Y=We(x,O,19)^cr(x,O,61)^Sn(x,O,6),G=qe(x,O,19)^fr(x,O,61)^Tn(x,O,6),st=Qo(V,G,Ne[P-7],Ne[P-16]),Q=Jo(st,B,Y,Fe[P-7],Fe[P-16]);Fe[P]=Q|0,Ne[P]=st|0}let{Ah:o,Al:h,Bh:c,Bl:d,Ch:g,Cl:r,Dh:a,Dl:s,Eh:i,El:u,Fh:f,Fl:m,Gh:A,Gl:T,Hh:_,Hl:I}=this;for(let P=0;P<80;P++){let S=We(i,u,14)^We(i,u,18)^cr(i,u,41),C=qe(i,u,14)^qe(i,u,18)^fr(i,u,41),B=i&f^~i&A,V=u&m^~u&T,x=Do(I,C,V,Li[P],Ne[P]),O=ts(x,_,S,B,Mi[P],Fe[P]),Y=x|0,G=We(o,h,28)^cr(o,h,34)^cr(o,h,39),st=qe(o,h,28)^fr(o,h,34)^fr(o,h,39),Q=o&c^o&g^c&g,dt=h&d^h&r^d&r;_=A|0,I=T|0,A=f|0,T=m|0,f=i|0,m=u|0,{h:i,l:u}=de(a|0,s|0,O|0,Y|0),a=g|0,s=r|0,g=c|0,r=d|0,c=o|0,d=h|0;let _t=$o(Y,st,dt);o=jo(_t,O,G,Q),h=_t|0}({h:o,l:h}=de(this.Ah|0,this.Al|0,o|0,h|0)),{h:c,l:d}=de(this.Bh|0,this.Bl|0,c|0,d|0),{h:g,l:r}=de(this.Ch|0,this.Cl|0,g|0,r|0),{h:a,l:s}=de(this.Dh|0,this.Dl|0,a|0,s|0),{h:i,l:u}=de(this.Eh|0,this.El|0,i|0,u|0),{h:f,l:m}=de(this.Fh|0,this.Fl|0,f|0,m|0),{h:A,l:T}=de(this.Gh|0,this.Gl|0,A|0,T|0),{h:_,l:I}=de(this.Hh|0,this.Hl|0,_|0,I|0),this.set(o,h,c,d,g,r,a,s,i,u,f,m,A,T,_,I)}roundClean(){ze(Fe,Ne)}destroy(){this.destroyed=!0,ze(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Ir=class extends Ge{constructor(){super(64);K(this,"Ah",It[0]|0);K(this,"Al",It[1]|0);K(this,"Bh",It[2]|0);K(this,"Bl",It[3]|0);K(this,"Ch",It[4]|0);K(this,"Cl",It[5]|0);K(this,"Dh",It[6]|0);K(this,"Dl",It[7]|0);K(this,"Eh",It[8]|0);K(this,"El",It[9]|0);K(this,"Fh",It[10]|0);K(this,"Fl",It[11]|0);K(this,"Gh",It[12]|0);K(this,"Gl",It[13]|0);K(this,"Hh",It[14]|0);K(this,"Hl",It[15]|0)}},Or=class extends Ge{constructor(){super(48);K(this,"Ah",Rt[0]|0);K(this,"Al",Rt[1]|0);K(this,"Bh",Rt[2]|0);K(this,"Bl",Rt[3]|0);K(this,"Ch",Rt[4]|0);K(this,"Cl",Rt[5]|0);K(this,"Dh",Rt[6]|0);K(this,"Dl",Rt[7]|0);K(this,"Eh",Rt[8]|0);K(this,"El",Rt[9]|0);K(this,"Fh",Rt[10]|0);K(this,"Fl",Rt[11]|0);K(this,"Gh",Rt[12]|0);K(this,"Gl",Rt[13]|0);K(this,"Hh",Rt[14]|0);K(this,"Hl",Rt[15]|0)}},Xt=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),Vt=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),Br=class extends Ge{constructor(){super(28);K(this,"Ah",Xt[0]|0);K(this,"Al",Xt[1]|0);K(this,"Bh",Xt[2]|0);K(this,"Bl",Xt[3]|0);K(this,"Ch",Xt[4]|0);K(this,"Cl",Xt[5]|0);K(this,"Dh",Xt[6]|0);K(this,"Dl",Xt[7]|0);K(this,"Eh",Xt[8]|0);K(this,"El",Xt[9]|0);K(this,"Fh",Xt[10]|0);K(this,"Fl",Xt[11]|0);K(this,"Gh",Xt[12]|0);K(this,"Gl",Xt[13]|0);K(this,"Hh",Xt[14]|0);K(this,"Hl",Xt[15]|0)}},Hr=class extends Ge{constructor(){super(32);K(this,"Ah",Vt[0]|0);K(this,"Al",Vt[1]|0);K(this,"Bh",Vt[2]|0);K(this,"Bl",Vt[3]|0);K(this,"Ch",Vt[4]|0);K(this,"Cl",Vt[5]|0);K(this,"Dh",Vt[6]|0);K(this,"Dl",Vt[7]|0);K(this,"Eh",Vt[8]|0);K(this,"El",Vt[9]|0);K(this,"Fh",Vt[10]|0);K(this,"Fl",Vt[11]|0);K(this,"Gh",Vt[12]|0);K(this,"Gl",Vt[13]|0);K(this,"Hh",Vt[14]|0);K(this,"Hl",Vt[15]|0)}},xi=Xe(()=>new Nr,Ve(1)),Fi=Xe(()=>new Rr,Ve(4)),Ni=Xe(()=>new Ir,Ve(3)),Ri=Xe(()=>new Or,Ve(2)),Ii=Xe(()=>new Hr,Ve(6)),Oi=Xe(()=>new Br,Ve(5))});var vt={FILL_RECT:1,FILL_ROUND_RECT:27,STROKE_RECT:2,LINE:3,DASHED_LINE:4,POLYLINE:5,TEXT:6,CIRCLE:7,TRIANGLE:8,SAVE:9,RESTORE:10,CLIP_RECT:11,ROTATED_TEXT:12,BUBBLE_3D:13,FILL_POLYGON:14,DASHED_POLYLINE:15,GRADIENT_RECT:16,GRADIENT_RECT_H:28,GRADIENT_RECT_H_MULTI:29,LINEAR_POLYLINE:17,SMOOTH_POLYLINE:24,BEGIN_HEATMAP_LAYER:18,END_HEATMAP_LAYER:19,HEATMAP_BITMAP:20,LINE_WITH_EXTEND:21,LABEL_CALLOUT:22,HEATMAP_WORLD:23,DRAW_IMAGE:25,FILL_SMOOTH_BAND:26,END_FRAME:255},Ce=null,Gn=null;function Hs(t,e){return Ce?(Ce.width!==t||Ce.height!==e)&&(Ce.width=t,Ce.height=e):(Ce=typeof OffscreenCanvas<"u"?new OffscreenCanvas(t,e):Object.assign(document.createElement("canvas"),{width:t,height:e}),Gn=Ce.getContext("2d")),Gn}var rr=new Float64Array(0),Wr=new Float64Array(0),qr=new Float64Array(0),nr=new Float64Array(0);function Ys(t){return rr.length<t&&(rr=new Float64Array(t)),rr}function zs(t){return Wr.length<t&&(Wr=new Float64Array(t)),Wr}function Xs(t){return qr.length<t&&(qr=new Float64Array(t)),qr}function Vs(t){return nr.length<t&&(nr=new Float64Array(t)),nr}function kr(t,e){if(e<2)return;let n=e-1,o=Ys(n),h=zs(n),c=Xs(n);for(let g=0;g<n;g++){let r=t[g*2],a=t[g*2+1],s=t[(g+1)*2],i=t[(g+1)*2+1];o[g]=s-r,h[g]=i-a,c[g]=o[g]>0?h[g]/o[g]:0}let d=Vs(e);d[0]=c[0],d[e-1]=c[n-1];for(let g=1;g<n;g++){let r=c[g-1],a=c[g];d[g]=r*a<=0?0:(r+a)*.5}for(let g=0;g<n;g++){let r=c[g];if(r===0){d[g]=0,d[g+1]=0;continue}let a=d[g]/r,s=d[g+1]/r,i=a*a+s*s;if(i>9){let u=3/Math.sqrt(i);d[g]=u*a*r,d[g+1]=u*s*r}}}function Kn(t,e,n){let o=n-1,h=rr,c=nr;for(let d=0;d<o;d++){let g=e[d*2],r=e[d*2+1],a=e[(d+1)*2],s=e[(d+1)*2+1],i=h[d];if(i<=0){t.lineTo(a,s);continue}let u=i/3;t.bezierCurveTo(g+u,r+c[d]*u,a-u,s-c[d+1]*u,a,s)}}function Ws(t,e,n){let o=n-1,h=rr,c=nr;for(let d=o-1;d>=0;d--){let g=e[d*2],r=e[d*2+1],a=e[(d+1)*2],s=e[(d+1)*2+1],i=h[d];if(i<=0){t.lineTo(g,r);continue}let u=i/3;t.bezierCurveTo(a-u,s-c[d+1]*u,g+u,r+c[d]*u,g,r)}}var qs=["left","center","right"],br=new Map,ks=4096;function Zs(t,e,n,o){return t<<24|e<<16|n<<8|o}function St(t,e,n,o){let h=Zs(t,e,n,o),c=br.get(h);return c||(c=`rgba(${t},${e},${n},${(o/255).toFixed(3)})`,br.size>=ks&&br.clear(),br.set(h,c),c)}var Zr=new TextDecoder;function mr(t,e){return Math.round(t*e)/e}var $n=new Map;function Ur(t,e){let n=$n.get(e);if(n!==void 0)return n;let o=t.font,h=t.textBaseline;t.font=e,t.textBaseline="alphabetic";let c=t.measureText("0"),d=c.actualBoundingBoxAscent||0,g=c.actualBoundingBoxDescent||0;return n=(d-g)/2,(!Number.isFinite(n)||n===0)&&(n=(parseFloat(e)||11)*.35),$n.set(e,n),t.font=o,t.textBaseline=h,n}function zt(t,e,n){let o=Math.max(1,Math.round(e*n)),h=Math.round(t*n)/n;return o&1?h+.5/n:h}function Ee(t,e,n,o,h){let c=Math.round(t*h),d=Math.round(e*h),g=Math.round((t+n)*h),r=Math.round((e+o)*h);return{x:c/h,y:d/h,w:(g-c)/h,h:(r-d)/h}}function jn(){let t=null,e=null,n=null,o=0;function h(c,d,g){return c<=0||d<=0?null:(t?(t.width!==c||t.height!==d)&&(t.width=c,t.height=d,n=null):(typeof OffscreenCanvas<"u"?t=new OffscreenCanvas(c,d):(t=document.createElement("canvas"),t.width=c,t.height=d),e=t.getContext("2d",{alpha:!0})),e&&o!==g&&(e.setTransform(g,0,0,g,0,0),o=g,n=null),e)}return{ensureSize:h,getCanvas(){return t},getKey(){return n},setKey(c){n=c},invalidate(){n=null}}}function Qn(){let t=null,e=null,n=0,o=0;function h(c,d){return c<=0||d<=0?null:(t&&n===c&&o===d||(t?(t.width=c,t.height=d,e.imageSmoothingEnabled=!1):(typeof OffscreenCanvas<"u"?t=new OffscreenCanvas(c,d):(t=document.createElement("canvas"),t.width=c,t.height=d),e=t.getContext("2d",{alpha:!0}),e.imageSmoothingEnabled=!1),n=c,o=d),e)}return{ensureSize:h,getCanvas(){return t},getCols(){return n},getRows(){return o},invalidate(){e&&n>0&&o>0&&e.clearRect(0,0,n,o)}}}function oe(t,e,n,o,h=null,c=null,d=null){let g=e.buffer;if(n+o>g.byteLength)return;let r=new DataView(g,n,o),a=new Uint8Array(g,n,o),s=0,i="",u="",f=-1,m="",A=Math.max(1,Math.abs(t.getTransform?.().a||window.devicePixelRatio||1)),T=t,_=!1,I="";for(;s<o;){let P=a[s];if(s+=1,P===vt.END_FRAME)break;switch(P){case vt.FILL_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4,x!==i&&(t.fillStyle=x,i=x);let O=Ee(S,C,B,V,A);t.fillRect(O.x,O.y,O.w,O.h);break}case vt.FILL_ROUND_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4,x!==i&&(t.fillStyle=x,i=x);let Y=Ee(S,C,B,V,A),G=Math.min(O,Y.w*.5,Y.h*.5);G<=.5?t.fillRect(Y.x,Y.y,Y.w,Y.h):(t.beginPath(),t.moveTo(Y.x+G,Y.y),t.lineTo(Y.x+Y.w-G,Y.y),t.arcTo(Y.x+Y.w,Y.y,Y.x+Y.w,Y.y+G,G),t.lineTo(Y.x+Y.w,Y.y+Y.h-G),t.arcTo(Y.x+Y.w,Y.y+Y.h,Y.x+Y.w-G,Y.y+Y.h,G),t.lineTo(Y.x+G,Y.y+Y.h),t.arcTo(Y.x,Y.y+Y.h,Y.x,Y.y+Y.h-G,G),t.lineTo(Y.x,Y.y+G),t.arcTo(Y.x,Y.y,Y.x+G,Y.y,G),t.closePath(),t.fill());break}case vt.STROKE_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4,x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O);let Y=zt(S,O,A),G=zt(C,O,A),st=Math.round(B*A)/A,Q=Math.round(V*A)/A;t.strokeRect(Y,G,st,Q);break}case vt.LINE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4,t.beginPath(),x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O),t.setLineDash([]),t.moveTo(zt(S,O,A),zt(C,O,A)),t.lineTo(zt(B,O,A),zt(V,O,A)),t.stroke();break}case vt.DASHED_LINE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4;let G=r.getFloat32(s,!0);s+=4,t.beginPath(),x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O),t.setLineDash([Y,G]),t.moveTo(zt(S,O,A),zt(C,O,A)),t.lineTo(zt(B,O,A),zt(V,O,A)),t.stroke(),t.setLineDash([]);break}case vt.LINEAR_POLYLINE:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let B=r.getFloat32(s,!0);if(s+=4,S>1){t.beginPath(),C!==u&&(t.strokeStyle=C,u=C),B!==f&&(t.lineWidth=B,f=B),t.setLineDash([]),t.lineJoin="miter",t.lineCap="butt",t.miterLimit=10;let V=r.getFloat32(s,!0);s+=4;let x=r.getFloat32(s,!0);s+=4,t.moveTo(V,x);for(let O=1;O<S;O++)t.lineTo(r.getFloat32(s,!0),r.getFloat32(s+4,!0)),s+=8;t.stroke()}else s+=S*8;break}case vt.SMOOTH_POLYLINE:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let B=r.getFloat32(s,!0);if(s+=4,S>1){let V=new Float32Array(S*2);for(let x=0;x<S;x++)V[x*2]=r.getFloat32(s,!0),s+=4,V[x*2+1]=r.getFloat32(s,!0),s+=4;t.beginPath(),C!==u&&(t.strokeStyle=C,u=C),B!==f&&(t.lineWidth=B,f=B),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",S===2?(t.moveTo(V[0],V[1]),t.lineTo(V[2],V[3])):(kr(V,S),t.moveTo(V[0],V[1]),Kn(t,V,S)),t.stroke()}else s+=S*8;break}case vt.POLYLINE:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let B=r.getFloat32(s,!0);if(s+=4,S>0){let V=new Float32Array(S*2);for(let x=0;x<S;x++)V[x*2]=r.getFloat32(s,!0),s+=4,V[x*2+1]=r.getFloat32(s,!0),s+=4;if(t.beginPath(),C!==u&&(t.strokeStyle=C,u=C),B!==f&&(t.lineWidth=B,f=B),t.setLineDash([]),t.lineJoin="round",t.lineCap="round",S===2)t.moveTo(V[0],V[1]),t.lineTo(V[2],V[3]);else{t.moveTo(V[0],V[1]);for(let x=0;x<S-1;x++){let O=x>0?x-1:0,Y=x,G=x+1,st=x<S-2?x+2:S-1,Q=V[O*2],dt=V[O*2+1],_t=V[Y*2],mt=V[Y*2+1],X=V[G*2],Z=V[G*2+1],J=V[st*2],D=V[st*2+1],ot=_t+(X-Q)/6,ct=mt+(Z-dt)/6,gt=X-(J-_t)/6,Mt=Z-(D-mt)/6;t.bezierCurveTo(ot,ct,gt,Mt,X,Z)}}t.stroke()}break}case vt.TEXT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=a[s];s+=1;let O=r.getUint16(s,!0);s+=2;let Y=Zr.decode(new Uint8Array(e.buffer,n+s,O));s+=O,B!==i&&(t.fillStyle=B,i=B);let G=`${Math.round(V)}px "IBM Plex Mono",monospace`;G!==m&&(t.font=G,m=G),t.textAlign=qs[x]||"left",t.textBaseline="alphabetic";let st=C+Ur(t,G);t.fillText(Y,mr(S,A),mr(st,A));break}case vt.CIRCLE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4,t.beginPath(),t.arc(S,C,B,0,Math.PI*2),V!==i&&(t.fillStyle=V,i=V),t.fill(),O>0&&(x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O),t.stroke());break}case vt.TRIANGLE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=r.getFloat32(s,!0);s+=4;let O=r.getFloat32(s,!0);s+=4;let Y=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4,t.beginPath(),t.moveTo(S,C),t.lineTo(B,V),t.lineTo(x,O),t.closePath(),Y!==i&&(t.fillStyle=Y,i=Y),t.fill();break}case vt.SAVE:{t.save();break}case vt.RESTORE:{t.restore(),i="",u="",f=-1,m="";break}case vt.CLIP_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=Ee(S,C,B,V,A);t.beginPath(),t.rect(x.x,x.y,x.w,x.h),t.clip();break}case vt.ROTATED_TEXT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=r.getFloat32(s,!0);s+=4;let O=r.getUint16(s,!0);s+=2;let Y=Zr.decode(a.subarray(s,s+O));s+=O;let G=`${V}px sans-serif`;G!==m&&(t.font=G,m=G),B!==i&&(t.fillStyle=B,i=B),t.textAlign="center",t.textBaseline="alphabetic";let st=Ur(t,G);t.save(),t.translate(S,C),t.rotate(x),t.fillText(Y,0,st),t.restore();break}case vt.BUBBLE_3D:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=a[s],x=a[s+1],O=a[s+2],Y=a[s+3];s+=4;let G=a[s],st=a[s+1],Q=a[s+2],dt=a[s+3];s+=4;let _t=a[s],mt=a[s+1],X=a[s+2],Z=a[s+3];s+=4;let J=r.getFloat32(s,!0);s+=4;let D=B;if(D<10){let ot=`rgba(${V},${x},${O},${(Y/255).toFixed(3)})`;t.beginPath(),t.arc(S,C,D,0,Math.PI*2),t.fillStyle=ot,t.fill(),i=""}else if(D<18){let ot=S-D*.25,ct=C-D*.25,gt=t.createRadialGradient(ot,ct,D*.08,S,C,D);gt.addColorStop(0,`rgba(${G},${st},${Q},${(dt/255).toFixed(3)})`),gt.addColorStop(1,`rgba(${V},${x},${O},${(Y/255).toFixed(3)})`),t.beginPath(),t.arc(S,C,D,0,Math.PI*2),t.fillStyle=gt,t.fill(),i=""}else{let ot=S-D*.25,ct=C-D*.25,gt=t.createRadialGradient(S,C,D*.85,S,C,D*1.2);gt.addColorStop(0,`rgba(${_t},${mt},${X},${(Z/255*.5).toFixed(3)})`),gt.addColorStop(1,`rgba(${_t},${mt},${X},0)`),t.beginPath(),t.arc(S,C,D*1.2,0,Math.PI*2),t.fillStyle=gt,t.fill();let Mt=t.createRadialGradient(ot,ct,D*.08,S,C,D);Mt.addColorStop(0,`rgba(${G},${st},${Q},${(dt/255).toFixed(3)})`),Mt.addColorStop(1,`rgba(${V},${x},${O},${(Y/255).toFixed(3)})`),t.beginPath(),t.arc(S,C,D,0,Math.PI*2),t.fillStyle=Mt,t.fill();let Ct=D*.2,ft=t.createRadialGradient(ot,ct,0,ot,ct,Ct);ft.addColorStop(0,"rgba(255,255,255,0.22)"),ft.addColorStop(1,"rgba(255,255,255,0)"),t.beginPath(),t.arc(ot,ct,Ct,0,Math.PI*2),t.fillStyle=ft,t.fill(),i=""}break}case vt.FILL_POLYGON:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);if(s+=4,S>2){t.beginPath();let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4,t.moveTo(B,V);for(let x=1;x<S;x++)t.lineTo(r.getFloat32(s,!0),r.getFloat32(s+4,!0)),s+=8;t.closePath(),C!==i&&(t.fillStyle=C,i=C),t.fill()}else s+=S*8;break}case vt.FILL_SMOOTH_BAND:{let S=r.getUint16(s,!0);s+=2;let C=r.getUint16(s,!0);s+=2;let B=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let V=new Float32Array(S*2);for(let O=0;O<S;O++)V[O*2]=r.getFloat32(s,!0),s+=4,V[O*2+1]=r.getFloat32(s,!0),s+=4;let x=new Float32Array(C*2);for(let O=0;O<C;O++)x[O*2]=r.getFloat32(s,!0),s+=4,x[O*2+1]=r.getFloat32(s,!0),s+=4;S>=2&&C>=2&&(t.beginPath(),B!==i&&(t.fillStyle=B,i=B),S===2?(t.moveTo(V[0],V[1]),t.lineTo(V[2],V[3])):(kr(V,S),t.moveTo(V[0],V[1]),Kn(t,V,S)),t.lineTo(x[(C-1)*2],x[(C-1)*2+1]),C===2?t.lineTo(x[0],x[1]):(kr(x,C),Ws(t,x,C)),t.closePath(),t.fill());break}case vt.DASHED_POLYLINE:{let S=r.getUint16(s,!0);s+=2;let C=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=r.getFloat32(s,!0);if(s+=4,S>1){t.beginPath(),C!==u&&(t.strokeStyle=C,u=C),B!==f&&(t.lineWidth=B,f=B),t.setLineDash([V,x]),t.lineJoin="round";let O=r.getFloat32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4,t.moveTo(O,Y);for(let G=1;G<S;G++)t.lineTo(r.getFloat32(s,!0),r.getFloat32(s+4,!0)),s+=8;t.stroke(),t.setLineDash([])}else s+=S*8;break}case vt.GRADIENT_RECT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let Y=Ee(S,C,B,V,A),G=t.createLinearGradient(Y.x,Y.y,Y.x,Y.y+Y.h);G.addColorStop(0,x),G.addColorStop(1,O),t.fillStyle=G,i="",t.fillRect(Y.x,Y.y,Y.w,Y.h);break}case vt.GRADIENT_RECT_H:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let Y=Ee(S,C,B,V,A),G=t.createLinearGradient(Y.x,Y.y,Y.x+Y.w,Y.y);G.addColorStop(0,x),G.addColorStop(1,O),t.fillStyle=G,i="",t.fillRect(Y.x,Y.y,Y.w,Y.h);break}case vt.GRADIENT_RECT_H_MULTI:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=a[s];s+=1;let O=Ee(S,C,B,V,A),Y=t.createLinearGradient(O.x,O.y,O.x+O.w,O.y);for(let G=0;G<x;G++){let st=r.getFloat32(s,!0);s+=4;let Q=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4,Y.addColorStop(st<0?0:st>1?1:st,Q)}t.fillStyle=Y,i="",t.fillRect(O.x,O.y,O.w,O.h);break}case vt.BEGIN_HEATMAP_LAYER:{let S=s-1,C=r.getUint32(s,!0);s+=4;let B=r.getUint32(s,!0);s+=4;let V=r.getUint32(s,!0);if(s+=4,!h||V===0)break;let x=T.canvas.width,O=T.canvas.height,Y=`${C}|${B}|${x}|${O}|${A}`;if(h.getKey()===Y&&h.getCanvas()){let G=x/A,st=O/A;T.drawImage(h.getCanvas(),0,0,G,st),s=S+V}else{let G=h.ensureSize(x,O,A);if(!G)break;G.save(),G.setTransform(1,0,0,1,0,0),G.clearRect(0,0,x,O),G.restore(),t=G,i="",u="",f=-1,m="",_=!0,I=Y}break}case vt.END_HEATMAP_LAYER:{if(!_)break;let S=T.canvas.width/A,C=T.canvas.height/A;T.drawImage(h.getCanvas(),0,0,S,C),h.setKey(I),t=T,i="",u="",f=-1,m="",_=!1,I="";break}case vt.HEATMAP_BITMAP:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getUint32(s,!0);s+=4;let V=r.getUint32(s,!0);s+=4;let x=B*V*4;if(s+x>a.byteLength){s=a.byteLength;break}let O=new Uint8ClampedArray(a.buffer,a.byteOffset+s,x);s+=x;let Y=new ImageData(O,B,V),G=Hs(B,V);if(!G)break;G.putImageData(Y,0,0),t.drawImage(Ce,S,C,B,V);break}case vt.HEATMAP_WORLD:{let S=r.getUint32(s,!0);s+=4;let C=r.getUint32(s,!0);s+=4;let B=r.getUint32(s,!0);s+=4;let V=r.getUint32(s,!0);s+=4;let x=r.getUint32(s,!0);s+=4;let O=r.getUint32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4;let G=r.getFloat32(s,!0);s+=4;let st=r.getFloat32(s,!0);s+=4;let Q=r.getFloat32(s,!0);s+=4;let dt=r.getFloat32(s,!0);s+=4;let _t=r.getFloat32(s,!0);s+=4;let mt=r.getFloat32(s,!0);s+=4;let X=r.getFloat32(s,!0);s+=4;let Z=a[s];s+=1;let J=(Z&1)!==0,D=x*O*4;if(s+D>a.byteLength){s=a.byteLength;break}if(!c||S===0||C===0){s+=D;break}let ot=c.ensureSize(S,C);if(!ot){s+=D;break}if(J&&ot.clearRect(0,0,S,C),D>0){let ct=new Uint8ClampedArray(a.buffer,a.byteOffset+s,D),gt=new ImageData(ct,x,O);ot.putImageData(gt,B,V)}if(s+=D,st>0&&Q>0&&mt>0&&X>0){let ct=Ee(dt,_t,mt,X,A);if(ct.w>0&&ct.h>0){let gt=t.imageSmoothingEnabled;t.imageSmoothingEnabled=!1,t.drawImage(c.getCanvas(),Y,G,st,Q,ct.x,ct.y,ct.w,ct.h),t.imageSmoothingEnabled=gt}}break}case vt.LINE_WITH_EXTEND:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4;let G=r.getFloat32(s,!0);s+=4;let st=a[s];s+=1,x!==u&&(t.strokeStyle=x,u=x),O!==f&&(t.lineWidth=O,f=O),t.setLineDash(Y>0?[Y,G]:[]);let Q=1e5,dt=S,_t=C,mt=B,X=V,Z=B-S,J=V-C,D=Math.hypot(Z,J);if(D>0&&st!==0){let ot=Z/D,ct=J/D;st&1&&(dt=S-ot*Q,_t=C-ct*Q),st&2&&(mt=B+ot*Q,X=V+ct*Q),st&4&&ct<0&&(dt=S-ot*Q,_t=C-ct*Q),st&8&&ct>0&&(mt=B+ot*Q,X=V+ct*Q)}t.beginPath(),t.moveTo(zt(dt,O,A),zt(_t,O,A)),t.lineTo(zt(mt,O,A),zt(X,O,A)),t.stroke(),Y>0&&t.setLineDash([]);break}case vt.LABEL_CALLOUT:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let V=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let x=St(a[s],a[s+1],a[s+2],a[s+3]);s+=4;let O=r.getFloat32(s,!0);s+=4;let Y=r.getFloat32(s,!0);s+=4;let G=a[s];s+=1;let st=a[s];s+=1;let Q=r.getUint16(s,!0);s+=2;let dt=Zr.decode(a.subarray(s,s+Q));s+=Q;let _t=`${Math.round(O)}px "IBM Plex Mono",monospace`;_t!==m&&(t.font=_t,m=_t);let mt=4,X=6,Z=t.measureText(dt).width,J=Math.round(O)+mt*2,D=Math.ceil(Z)+mt*2,ot,ct;switch(st){case 1:ct=C-X-J,ot=S-D/2;break;case 2:ct=C+X,ot=S-D/2;break;case 3:ct=C-J/2,ot=S+X;break;case 4:ct=C-J/2,ot=S-X-D;break;default:ct=C-J/2,G===1?ot=S-D/2:G===2?ot=S-D:ot=S;break}let gt=Ee(ot,ct,D,J,A);if(B!==i&&(t.fillStyle=B,i=B),t.fillRect(gt.x,gt.y,gt.w,gt.h),Y>0){V!==u&&(t.strokeStyle=V,u=V),Y!==f&&(t.lineWidth=Y,f=Y),t.setLineDash([]);let Ct=zt(ot,Y,A),ft=zt(ct,Y,A),Ot=Math.round(D*A)/A,Zt=Math.round(J*A)/A;t.strokeRect(Ct,ft,Ot,Zt)}if(st>=1&&st<=4){switch(B!==i&&(t.fillStyle=B,i=B),t.beginPath(),st){case 1:t.moveTo(S-X/2,ct+J),t.lineTo(S+X/2,ct+J),t.lineTo(S,C);break;case 2:t.moveTo(S-X/2,ct),t.lineTo(S+X/2,ct),t.lineTo(S,C);break;case 3:t.moveTo(ot,C-X/2),t.lineTo(ot,C+X/2),t.lineTo(S,C);break;case 4:t.moveTo(ot+D,C-X/2),t.lineTo(ot+D,C+X/2),t.lineTo(S,C);break}t.closePath(),t.fill()}x!==i&&(t.fillStyle=x,i=x),t.textAlign="left",t.textBaseline="alphabetic";let Mt=Ur(t,_t);t.fillText(dt,mr(ot+mt,A),mr(ct+J/2+Mt,A));break}case vt.DRAW_IMAGE:{let S=r.getFloat32(s,!0);s+=4;let C=r.getFloat32(s,!0);s+=4;let B=r.getFloat32(s,!0);s+=4;let V=r.getFloat32(s,!0);s+=4;let x=r.getUint32(s,!0);if(s+=4,!d||x===0||B<=0||V<=0)break;let O=d.get(x);if(!O)break;try{t.drawImage(O,S,C,B,V)}catch(Y){d.delete(x),console.warn("[canvasRenderer] drawImage failed for id="+x,Y?.message||Y)}break}default:return}}if(_&&h){let P=T.canvas.width/A,S=T.canvas.height/A;T.drawImage(h.getCanvas(),0,0,P,S),h.invalidate()}}var Qt={trendline:{type:"2point",previewKind:0,addFn:"add_trendline"},arrow:{type:"2point",previewKind:4,addFn:"add_arrow"},arrowmarker:{type:"2point",previewKind:14,addFn:"add_arrow_marker"},measure:{type:"2point",previewKind:2,addFn:"add_price_range"},pricerange:{type:"2point",previewKind:23,addFn:"add_price_range_measure"},dayrange:{type:"2point",previewKind:24,addFn:"add_day_range_measure"},fib:{type:"2point",previewKind:3,addFn:"add_fib_retracement"},long:{type:"2point",previewKind:5,addFn:"add_long_position"},short:{type:"2point",previewKind:5,addFn:"add_short_position"},hline:{type:"1point_xp",previewKind:1,addFn:"add_horizontal_line"},verticalline:{type:"1point_x",previewKind:15,addFn:"add_vertical_line"},vwap:{type:"1point_x",previewKind:6,addFn:"add_anchored_vwap"},pricelabel:{type:"1point_xy",previewKind:7,addFn:"add_price_label"},circle:{type:"2point",previewKind:8,addFn:"add_circle"},arrowup:{type:"1point_xy",previewKind:9,addFn:"add_arrow_marker_up"},arrowdown:{type:"1point_xy",previewKind:10,addFn:"add_arrow_marker_down"},textnote:{type:"1point_xy",previewKind:11,addFn:"add_text_note"},channel:{type:"3point",previewKind:0,addFn:"add_parallel_channel"},fibext:{type:"3point",previewKind:0,addFn:"add_fib_extension",previewFn:"fib_ext"},brush:{type:"freehand"},path:{type:"npoint"},elliott:{type:"elliott_manual"},elliottauto:{type:"1point_xy",previewKind:12,addFn:"add_elliott_impulse",previewFn:"elliott"},elliottautorange:{type:"drag2point",previewKind:2,addFn:"add_elliott_auto_range"},elliottzigzag:{type:"1point_xy",previewKind:13,addFn:"add_elliott_zigzag",previewFn:"zigzag"},elliottzigzagrange:{type:"drag2point",previewKind:2,addFn:"add_elliott_zigzag_range"}};function or(t){return Qt[t]?.type==="2point"}function sr(t){return Qt[t]?.type==="3point"}function Ze(t){let e=Qt[t]?.type;return e==="1point"||e==="1point_x"||e==="1point_xy"||e==="1point_xp"}function gr(t){return Qt[t]?.type==="freehand"}function he(t){return Qt[t]?.type==="npoint"}function pe(t){return Qt[t]?.type==="elliott_manual"}function ir(t){return Qt[t]?.type==="drag2point"}var Jn={r:.04,g:.49,b:1,lineWidth:2,dashed:!1,fontSize:12};function ae(t,e,n,o,h,c){c=c||Jn;let d=Qt[e];if(!d)return 0;let g=0;if(d.type==="3point"?g=t[d.addFn](n.x1,n.y1,n.x2,n.y2,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="2point"||d.type==="drag2point"?g=t[d.addFn](n.x1,n.y1,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_x"?g=t[d.addFn](o,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_xp"?g=t[d.addFn](o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane):d.type==="1point_xy"?g=t[d.addFn](o,h,c.r,c.g,c.b,c.fontSize||12,n.pane):g=t[d.addFn](h,c.r,c.g,c.b,c.lineWidth,c.dashed,n.pane),g&&c.fontSize&&typeof t.set_drawing_font_size=="function"&&(d.type==="2point"||d.type==="3point"||d.type==="drag2point"))try{t.set_drawing_font_size(g,c.fontSize)}catch{}if(g&&c.hideLabel===!0&&typeof t.set_drawing_hide_label=="function")try{t.set_drawing_hide_label(g,!0)}catch{}return g||0}function te(t,e,n,o,h,c,d){c=c||Jn;let g=Qt[e];if(g){if(g.previewFn==="elliott"){t.set_elliott_preview(o,h,c.r,c.g,c.b,c.lineWidth,d);return}if(g.previewFn==="zigzag"){t.set_elliott_zigzag_preview(o,h,c.r,c.g,c.b,c.lineWidth,d);return}g.type==="3point"?n.step===1?t.set_drawing_preview(g.previewKind,n.x1,n.y1,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,d):n.step===2&&(g.previewFn==="fib_ext"?t.set_fib_ext_preview(n.x1,n.y1,n.x2,n.y2,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,d):t.set_channel_preview(n.x1,n.y1,n.x2,n.y2,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,d)):g.type==="2point"||g.type==="drag2point"?t.set_drawing_preview(g.previewKind,n.x1,n.y1,o,h,c.r,c.g,c.b,c.lineWidth,c.dashed,d):g.type==="1point_x"?t.set_drawing_preview(g.previewKind,o,0,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d):g.type==="1point_xp"||g.type==="1point_xy"?t.set_drawing_preview(g.previewKind,o,h,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d):t.set_drawing_preview(g.previewKind,0,h,0,0,c.r,c.g,c.b,c.lineWidth,c.dashed,d)}}function wr(t,e,n,o,h,c){if(o!=null&&h!=null){let a=e-o,s=n-h,i=Math.sqrt(a*a+s*s);if(i>1.5*1.2){let u=Math.min(128,Math.ceil(i/1.5));for(let f=1;f<u;f++){let m=f/u,A=o+a*m,T=h+s*m,{wx:_,wy:I}=Tt(t,A,T,c);t.add_brush_point(_,I)}}}let{wx:g,wy:r}=Tt(t,e,n,c);t.add_brush_point(g,r)}function Tt(t,e,n,o){let h=t.screen_to_world_x(e),c;switch(o){case 1:c=t.screen_to_rsi_y(n);break;case 2:c=t.screen_to_oi_y(n);break;case 3:c=t.screen_to_fr_y(n);break;case 4:c=t.screen_to_cvd_y(n);break;case 5:c=t.screen_to_vpin_y(n);break;case 6:c=t.screen_to_ob_flow_y(n);break;case 7:c=t.screen_to_agg_liq_y(n);break;case 8:c=t.screen_to_custom_pane_y(n);break;default:c=t.screen_to_world_y(n);break}return{wx:h,wy:c}}function ee(t){return t===4?1:t===6?2:t===8?3:t===10?4:t===12?5:t===19?6:t===22?7:t===25?8:0}function Oe(t){return t===4||t===6||t===8||t===10||t===12||t===19||t===22||t===25}function qt(t){return t===14||t===15||t===16||t===17||t===18||t===21||t===24||t===27}function se(t){return t===4||t===14?1:t===6||t===15?2:t===8||t===16?3:t===10||t===17?4:t===12||t===18?5:t===19||t===21?6:t===22||t===24?7:0}function be(t,e,n,o){Oe(e)?(t.pan(n,0),Math.abs(o)>.01&&e!==4&&t.pan_indicator_y(se(e),o)):t.pan(n,o)}function Ut(t){return t===0||t===4||t===6||t===8||t===10||t===12||t===22||t===25}function ao(t,e,n,o){t.addEventListener("wheel",i=>{if(o.disposed)return;i.preventDefault(),o.cancelMomentum();let u=i.deltaY>0?1.1:.9,f=e.hit_zone(i.offsetX,i.offsetY);f!==255&&(qt(f)?f!==14&&e.zoom_indicator_y(se(f),i.offsetY,u):Oe(f)?f===4?e.zoom_x(i.offsetX,u):i.ctrlKey?e.zoom_indicator_y(se(f),i.offsetY,u):e.zoom_x(i.offsetX,u):i.ctrlKey?e.zoom_y(i.offsetY,u):i.shiftKey||f===2?e.zoom_x(i.offsetX,u):f===3?e.zoom_y(i.offsetY,u):e.zoom(i.offsetX,i.offsetY,u),n.onDirty())},{passive:!1}),t.addEventListener("mousedown",i=>{if(o.disposed||i.button!==0)return;o.cancelMomentum(),c();let u=performance.now();if(u-o.lastClickTime<300){o.lastClickTime=u;return}if(o.lastClickTime=u,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(i.offsetX,i.offsetY)){o.watermarkPending=!0;return}if(o.watermarkPending=!1,typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(i.offsetX,i.offsetY)){o.qtbPending=!0;try{o.qtbWorldY=e.crosshair_world_y()}catch{o.qtbWorldY=0}return}let f=o.drawingMode;if(f){let A=e.hit_zone(i.offsetX,i.offsetY);if(!Ut(A))return;let T=ee(A),{wx:_,wy:I}=Tt(e,i.offsetX,i.offsetY,T),P=f.style,S=f.tool;if(f.undoSnapshotTaken||(n.onDrawingMutationBegin?.(),f.undoSnapshotTaken=!0),pe(S)){if(!f.pathStarted)f.pane=T,e.start_elliott_manual(P.r,P.g,P.b,P.lineWidth,T),e.add_elliott_manual_point(_,I),f.pathStarted=!0,f.step=1;else if(e.add_elliott_manual_point(_,I)){o.finishDrawing(),n.onDirty();return}}else if(he(S))f.pathStarted?e.add_path_point(_,I):(f.pane=T,e.start_path(P.r,P.g,P.b,P.lineWidth,P.dashed,T),e.add_path_point(_,I),f.pathStarted=!0,f.step=1);else if(gr(S))f.pane=T,e.start_brush(P.r,P.g,P.b,P.lineWidth,T),e.add_brush_point(_,I),o.isBrushing=!0,o.brushLastSx=i.offsetX,o.brushLastSy=i.offsetY;else if(sr(S))if(f.step===0)f.x1=_,f.y1=I,f.pane=T,f.step=1;else if(f.step===1)f.x2=_,f.y2=I,f.step=2,e.clear_drawing_preview();else{let C=Qt[S];C&&C.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ae(e,S,f,_,I,P),o.finishDrawing()}else if(or(S))f.step===0?(f.x1=_,f.y1=I,f.pane=T,f.step=1):(ae(e,S,f,_,I,P),o.finishDrawing());else if(ir(S))f.x1=_,f.y1=I,f.pane=T,f.step=1,f.dragStartSx=i.offsetX,f.dragStartSy=i.offsetY,o.isDrawingDragRange=!0;else{f.pane=T;let C=ae(e,S,f,_,I,P);o.finishDrawing(),S==="textnote"&&C>0&&(e.select_drawing(C),n.onDrawingSelected?.(C),n.onDrawingDblClick?.(C,i.offsetX,i.offsetY,i.clientX,i.clientY))}n.onDirty();return}let m=e.hit_zone(i.offsetX,i.offsetY);if(m!==255){if(m===5){o.isResizingRsi=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_rsi_ratio(),t.style.cursor="ns-resize";return}if(m===7){o.isResizingOi=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_oi_ratio(),t.style.cursor="ns-resize";return}if(m===9){o.isResizingFr=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_fr_ratio(),t.style.cursor="ns-resize";return}if(m===11){o.isResizingCvd=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_cvd_ratio(),t.style.cursor="ns-resize";return}if(m===13){o.isResizingVpin=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_vpin_ratio(),t.style.cursor="ns-resize";return}if(m===20){o.isResizingObFlow=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_obf_ratio(),t.style.cursor="ns-resize";return}if(m===23){o.isResizingAggLiq=!0,o.resizeStartY=i.offsetY,o.resizeStartRatio=e.get_agg_liq_ratio(),t.style.cursor="ns-resize";return}if(Ut(m)){let A=e.get_selected_drawing();if(A>0){let S=e.hit_test_drawing_anchor(i.offsetX,i.offsetY);if(S>=0){n.onDrawingMutationBegin?.(),o.isDraggingAnchor=!0,o.dragAnchorIdx=S,o.dragAnchorPane=ee(m),t.style.cursor="grabbing";return}if(e.hit_test_drawing(i.offsetX,i.offsetY)===A){n.onDrawingMutationBegin?.(),o.isDraggingDrawing=!0,o.dragDrawingPane=ee(m);let{wx:B,wy:V}=Tt(e,i.offsetX,i.offsetY,o.dragDrawingPane);o.dragDrawingLastWx=B,o.dragDrawingLastWy=V,t.style.cursor="move";return}}let T=e.hit_test_drawing(i.offsetX,i.offsetY);if(T>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(T),n.onDrawingSelected?.(T),n.onDirty();return}let _=e.hit_test_marker(i.offsetX,i.offsetY);if(_>0){e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(_),n.onMarkerSelected?.(_),n.onDirty();return}let I=e.get_selected_drawing(),P=e.get_selected_marker();I>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),P>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty())}Ut(m)&&(o.liqPinSx=i.offsetX,o.liqPinSy=i.offsetY,o.liqPinTimer&&clearTimeout(o.liqPinTimer),o.liqPinTimer=setTimeout(()=>{o.liqPinTimer=null,n.onLiqAnnotationPin?.(o.liqPinSx,o.liqPinSy)},700)),o.isDragging=!0,o.dragZone=m,o.lastX=i.offsetX,o.lastY=i.offsetY,m===2?t.style.cursor="ew-resize":m===3||qt(m)?t.style.cursor="ns-resize":t.style.cursor="grabbing"}});let h=null;function c(){h&&(cancelAnimationFrame(h),h=null)}function d(){if(h=null,o.disposed)return;let i=o._pendingHoverX,u=o._pendingHoverY;if(i==null||u==null)return;let f=e.hit_zone(i,u);f===2||f===3||qt(f)||f===255?e.hide_crosshair():e.set_crosshair(i,u),n.onDirty(),n.onCrosshairMove?.(i,u,f),n.onVrvpHover?.(i,u),g(i,u)}function g(i,u){if(typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(i,u)){t.style.cursor="pointer";return}if(typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(i,u)){t.style.cursor="pointer";return}let f=e.hover_hit_test(i,u),m=f[0],A=f[1],T=f[2],_=f[3],I=f[4],P=o.drawingMode;if(m===255)t.style.cursor="default";else if(m===2)t.style.cursor="ew-resize";else if(m===3||qt(m))t.style.cursor="ns-resize";else if(m===5||m===7||m===9||m===11||m===13||m===20||m===23)t.style.cursor="ns-resize";else if(!P&&Ut(m)&&A>0&&T>=0){let S="grab";try{e.get_drawing_kind_id?.(A)===18&&(T===0||T===1?S="nwse-resize":T===2||T===3?S="nesw-resize":T===4||T===6?S="ns-resize":(T===5||T===7)&&(S="ew-resize"))}catch{}t.style.cursor=S}else!P&&Ut(m)&&A>0&&_===A?t.style.cursor="move":!P&&Ut(m)&&(_>0||I>0)||!P&&r(i,u)?t.style.cursor="pointer":t.style.cursor="crosshair"}function r(i,u){if(typeof e.indicator_at_point=="function")try{let f=e.indicator_at_point(i,u)||"";if(f)return f}catch{}if(n&&typeof n.customIndicatorAtPoint=="function")try{return n.customIndicatorAtPoint(i,u)||""}catch{return""}return""}function a(i,u){o._pendingHoverX=i,o._pendingHoverY=u,h||(h=requestAnimationFrame(d))}t.addEventListener("mousemove",i=>{if(o.disposed)return;if(o.liqPinTimer){let f=Math.abs(i.offsetX-o.liqPinSx),m=Math.abs(i.offsetY-o.liqPinSy);(f>6||m>6)&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null)}if(o.isResizingRsi){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_rsi_ratio(_),n.onDirty();return}if(o.isResizingOi){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_oi_ratio(_),n.onDirty();return}if(o.isResizingFr){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_fr_ratio(_),n.onDirty();return}if(o.isResizingCvd){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_cvd_ratio(_),n.onDirty();return}if(o.isResizingVpin){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_vpin_ratio(_),n.onDirty();return}if(o.isResizingObFlow){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_obf_ratio(_),n.onDirty();return}if(o.isResizingAggLiq){let m=t.getBoundingClientRect().height-28,T=(o.resizeStartY-i.offsetY)/m,_=Math.max(.05,Math.min(.5,o.resizeStartRatio+T));e.set_agg_liq_ratio(_),n.onDirty();return}if(o.isDraggingAnchor){let{wx:f,wy:m}=Tt(e,i.offsetX,i.offsetY,o.dragAnchorPane);e.update_drawing_anchor(o.dragAnchorIdx,f,m),e.set_crosshair(i.offsetX,i.offsetY),n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,e.hit_zone(i.offsetX,i.offsetY));return}if(o.isDraggingDrawing){let{wx:f,wy:m}=Tt(e,i.offsetX,i.offsetY,o.dragDrawingPane),A=f-o.dragDrawingLastWx,T=m-o.dragDrawingLastWy;e.move_drawing(A,T),o.dragDrawingLastWx=f,o.dragDrawingLastWy=m,e.set_crosshair(i.offsetX,i.offsetY),n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,e.hit_zone(i.offsetX,i.offsetY));return}let u=o.drawingMode;if(o.isBrushing&&u){let f=u.pane||0;wr(e,i.offsetX,i.offsetY,o.brushLastSx,o.brushLastSy,f),o.brushLastSx=i.offsetX,o.brushLastSy=i.offsetY,e.set_crosshair(i.offsetX,i.offsetY),n.onDirty();return}if(u&&pe(u.tool)&&u.pathStarted){let f=u.pane||0,{wx:m,wy:A}=Tt(e,i.offsetX,i.offsetY,f);e.set_elliott_manual_cursor(m,A),e.set_crosshair(i.offsetX,i.offsetY);let T=e.hit_zone(i.offsetX,i.offsetY);n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,T);return}if(u&&he(u.tool)&&u.pathStarted){let f=u.pane||0,{wx:m,wy:A}=Tt(e,i.offsetX,i.offsetY,f);e.set_path_cursor(m,A),e.set_crosshair(i.offsetX,i.offsetY);let T=e.hit_zone(i.offsetX,i.offsetY);n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,T);return}if(u&&u.step>0){let f=u.pane||0,{wx:m,wy:A}=Tt(e,i.offsetX,i.offsetY,f);te(e,u.tool,u,m,A,u.style,f),e.set_crosshair(i.offsetX,i.offsetY);let T=e.hit_zone(i.offsetX,i.offsetY);n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,T);return}if(u&&Ze(u.tool)){let f=e.hit_zone(i.offsetX,i.offsetY),m=ee(f),{wx:A,wy:T}=Tt(e,i.offsetX,i.offsetY,m);te(e,u.tool,u,A,T,u.style,m),e.set_crosshair(i.offsetX,i.offsetY),n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,f);return}if(o.isDragging){let f=i.offsetX-o.lastX,m=i.offsetY-o.lastY;o.lastX=i.offsetX,o.lastY=i.offsetY,(f!==0||m!==0)&&(o.isPanning=!0),o.dragZone===2?e.pan_x(f):o.dragZone===3?e.pan_y(m):o.dragZone===14||(qt(o.dragZone)?e.pan_indicator_y(se(o.dragZone),m):be(e,o.dragZone,f,m)),e.set_crosshair(i.offsetX,i.offsetY),n.onDirty(),n.onCrosshairMove?.(i.offsetX,i.offsetY,o.dragZone),n.onVrvpHover?.(i.offsetX,i.offsetY);return}a(i.offsetX,i.offsetY)}),t.addEventListener("mouseup",i=>{if(!o.disposed){if(o.watermarkPending){if(o.watermarkPending=!1,i&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(i.offsetX,i.offsetY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(o.qtbPending){if(o.qtbPending=!1,i&&typeof e.is_in_quick_trade_btn=="function"&&e.is_in_quick_trade_btn(i.offsetX,i.offsetY)){let f=Number(o.qtbWorldY)||0;f>0&&n.onQuickTradeBtnClick?.(f,i.offsetX,i.offsetY)}o.qtbWorldY=0;return}if(o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isBrushing&&(o.isBrushing=!1,o.brushLastSx=null,o.brushLastSy=null,e.finish_brush(),o.finishDrawing(),n.onDirty()),o.isDrawingDragRange){o.isDrawingDragRange=!1;let u=o.drawingMode;if(u&&u.step===1){let f=i.offsetX-(u.dragStartSx||0),m=i.offsetY-(u.dragStartSy||0);if(f*f+m*m>=16){let T=e.hit_zone(i.offsetX,i.offsetY),_=Ut(T)?ee(T):u.pane||0,{wx:I,wy:P}=Tt(e,i.offsetX,i.offsetY,_);ae(e,u.tool,u,I,P,u.style),o.finishDrawing(),n.onDirty()}else e.clear_drawing_preview(),u.step=0,n.onDirty()}}o.isDragging=!1,o.isPanning=!1,o.isResizingRsi=!1,o.isResizingOi=!1,o.isResizingFr=!1,o.isResizingCvd=!1,o.isResizingVpin=!1,o.isResizingObFlow=!1,o.isResizingAggLiq=!1,o.isDraggingAnchor=!1,o.isDraggingDrawing=!1,o.dragAnchorIdx=-1,t.style.cursor="crosshair"}});function s(){if(!o.disposed&&!o._leaveHandled){if(o._leaveHandled=!0,requestAnimationFrame(()=>{o._leaveHandled=!1}),c(),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isBrushing&&(o.isBrushing=!1,o.brushLastSx=null,o.brushLastSy=null,e.finish_brush(),o.finishDrawing()),o.isDrawingDragRange){o.isDrawingDragRange=!1;let i=o.drawingMode;i&&i.step===1&&(e.clear_drawing_preview(),i.step=0)}o.isDragging=!1,o.isPanning=!1,o.isResizingRsi=!1,o.isResizingOi=!1,o.isResizingFr=!1,o.isResizingCvd=!1,o.isResizingVpin=!1,o.isResizingObFlow=!1,o.isResizingAggLiq=!1,o.isDraggingAnchor=!1,o.isDraggingDrawing=!1,o.dragAnchorIdx=-1,o.qtbPending=!1,o.qtbWorldY=0,c(),o._pendingHoverX=null,o._pendingHoverY=null,e.hide_crosshair(),t.style.cursor="crosshair",n.onDirty(),n.onCrosshairHide?.(),n.onVrvpHover?.(null,null)}}t.addEventListener("pointerleave",s),t.addEventListener("mouseleave",s),t.addEventListener("dblclick",i=>{if(o.disposed)return;i.preventDefault(),i.stopPropagation();let u=o.drawingMode;if(u&&pe(u.tool)&&u.pathStarted){e.finish_elliott_manual(),o.finishDrawing(),n.onDirty();return}if(u&&he(u.tool)&&u.pathStarted){e.finish_path(),o.finishDrawing(),n.onDirty();return}if(u)return;let f=e.hit_zone(i.offsetX,i.offsetY),m=e.hit_test_drawing(i.offsetX,i.offsetY);if(m>0){e.select_drawing(m),n.onDirty(),n.onDrawingDblClick?.(m,i.offsetX,i.offsetY,i.clientX,i.clientY);return}if(qt(f)){e.reset_indicator_y_auto(se(f)),n.onDirty();return}let A=r(i.offsetX,i.offsetY);if(A){n.onIndicatorDblClick?.(A,i.offsetX,i.offsetY,i.clientX,i.clientY);return}if(Oe(f)){e.reset_indicator_y_auto(se(f)),n.onDirty();return}(f===0||f===1)&&n.onChartDblClick?.(i.offsetX,i.offsetY,i.clientX,i.clientY)}),t.addEventListener("contextmenu",i=>{if(o.disposed)return;let u=o.drawingMode;if(u&&pe(u.tool)&&u.pathStarted){i.preventDefault(),i.stopPropagation(),e.finish_elliott_manual(),o.finishDrawing(),n.onDirty();return}if(u&&he(u.tool)&&u.pathStarted){i.preventDefault(),i.stopPropagation(),e.finish_path(),o.finishDrawing(),n.onDirty();return}})}var vr=25;function lo(t,e,n,o){let h=null,c=()=>h||(h=t.getBoundingClientRect()),d=()=>{h=null};window.addEventListener("resize",d,{passive:!0}),typeof window.visualViewport<"u"&&window.visualViewport&&window.visualViewport.addEventListener("resize",d,{passive:!0}),t.addEventListener("touchstart",g=>{if(!o.disposed){if(g.preventDefault(),o.cancelMomentum(),d(),g.touches.length===2){clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isCrosshairMode=!1,o.pinchActive=!0,o.lastTapTime=0;let r=c(),a=g.touches[1].clientX-g.touches[0].clientX,s=g.touches[1].clientY-g.touches[0].clientY;if(o.lastTouchDist=Math.sqrt(a*a+s*s),o.lastX=(g.touches[0].clientX+g.touches[1].clientX)/2-r.left,o.lastY=(g.touches[0].clientY+g.touches[1].clientY)/2-r.top,o.dragZone=e.hit_zone(o.lastX,o.lastY),o.pinchAnchorY=o.lastY,o.dragZone===255){o.pinchActive=!1,o.lastTouchDist=0;return}}else if(g.touches.length===1){let r=c(),a=g.touches[0].clientX-r.left,s=g.touches[0].clientY-r.top;if(o.touchStartX=a,o.touchStartY=s,o.touchMoved=!1,typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(a,s)){o.watermarkTapPending=!0,o.watermarkTapX=a,o.watermarkTapY=s;return}o.watermarkTapPending=!1;let i=o.drawingMode;if(i){let T=e.hit_zone(a,s);if(Ut(T)){let _=ee(T),{wx:I,wy:P}=Tt(e,a,s,_),S=i.tool;if(pe(S)){if(!i.pathStarted)i.pane=_,e.start_elliott_manual(i.style.r,i.style.g,i.style.b,i.style.lineWidth,_),e.add_elliott_manual_point(I,P),i.pathStarted=!0,i.step=1;else if(e.add_elliott_manual_point(I,P)){o.finishDrawing(),n.onDirty();return}}else he(S)?i.pathStarted?e.add_path_point(I,P):(i.pane=_,e.start_path(i.style.r,i.style.g,i.style.b,i.style.lineWidth,i.style.dashed,_),e.add_path_point(I,P),i.pathStarted=!0,i.step=1):gr(S)?(i.pane=_,e.start_brush(i.style.r,i.style.g,i.style.b,i.style.lineWidth,_),e.add_brush_point(I,P),o.isBrushing=!0,o.brushLastSx=a,o.brushLastSy=s):sr(S)?i.step===0?(i.x1=I,i.y1=P,i.pane=_,i.step=1,i._stepAtTouchStart=0,te(e,S,i,I,P,i.style,_)):i.step===1?(i._stepAtTouchStart=1,te(e,S,i,I,P,i.style,i.pane)):(i._stepAtTouchStart=2,te(e,S,i,I,P,i.style,i.pane)):or(S)||ir(S)?i.step===0?(i.x1=I,i.y1=P,i.pane=_,i.step=1,i._stepAtTouchStart=0,te(e,S,i,I,P,i.style,_)):(i._stepAtTouchStart=1,te(e,S,i,I,P,i.style,i.pane)):Ze(S)?(i.pane=_,te(e,S,i,I,P,i.style,_)):(i.pane=_,ae(e,S,i,I,P,i.style),o.finishDrawing());e.set_crosshair(a,s),n.onDirty(),n.onCrosshairMove?.(a,s,T)}return}let u=e.hover_hit_test(a,s),f=u[0],m=u[1],A=u[2];if(f===255)return;if(Ut(f)&&!o.drawingMode&&m>0){if(A>=0){o.isDraggingAnchor=!0,o.dragAnchorIdx=A,o.dragAnchorPane=ee(f);return}if(u[3]===m){o.isDraggingDrawing=!0,o.dragDrawingPane=ee(f);let{wx:_,wy:I}=Tt(e,a,s,o.dragDrawingPane);o.dragDrawingLastWx=_,o.dragDrawingLastWy=I;return}}o.isDragging=!0,o.isCrosshairMode=!1,o.lastX=a,o.lastY=s,o.dragZone=f,clearTimeout(o.longPressTimer),o.longPressTimer=setTimeout(()=>{o.isDragging&&!o.touchMoved&&(o.isCrosshairMode=!0,e.set_crosshair(a,s),n.onDirty(),n.onCrosshairMove?.(a,s,o.dragZone),n.onVrvpHover?.(a,s))},300),Ut(o.dragZone)&&(o.liqPinSx=a,o.liqPinSy=s,o.liqPinTimer&&clearTimeout(o.liqPinTimer),o.liqPinTimer=setTimeout(()=>{o.liqPinTimer=null,o.touchMoved||n.onLiqAnnotationPin?.(o.liqPinSx,o.liqPinSy)},700))}}},{passive:!1}),t.addEventListener("touchmove",g=>{if(o.disposed)return;g.preventDefault();let r=c();if(o.isDraggingAnchor&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,{wx:u,wy:f}=Tt(e,s,i,o.dragAnchorPane);e.update_drawing_anchor(o.dragAnchorIdx,u,f),e.set_crosshair(s,i),n.onDirty();return}if(o.isDraggingDrawing&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top;o.touchMoved=!0;let{wx:u,wy:f}=Tt(e,s,i,o.dragDrawingPane),m=u-o.dragDrawingLastWx,A=f-o.dragDrawingLastWy;e.move_drawing(m,A),o.dragDrawingLastWx=u,o.dragDrawingLastWy=f,e.set_crosshair(s,i),n.onDirty();return}let a=o.drawingMode;if(o.isBrushing&&a&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=a.pane||0;wr(e,s,i,o.brushLastSx,o.brushLastSy,u),o.brushLastSx=s,o.brushLastSy=i,e.set_crosshair(s,i),n.onDirty(),o.touchMoved=!0;return}if(a&&pe(a.tool)&&a.pathStarted&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=a.pane||0,{wx:f,wy:m}=Tt(e,s,i,u);e.set_elliott_manual_cursor(f,m),e.set_crosshair(s,i),n.onDirty(),o.touchMoved=!0;return}if(a&&he(a.tool)&&a.pathStarted&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=a.pane||0,{wx:f,wy:m}=Tt(e,s,i,u);e.set_path_cursor(f,m),e.set_crosshair(s,i),n.onDirty(),o.touchMoved=!0;return}if(a&&a.step>0&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top;!o.touchMoved&&(Math.abs(s-o.touchStartX)>vr||Math.abs(i-o.touchStartY)>vr)&&(o.touchMoved=!0);let u=a.pane||0,{wx:f,wy:m}=Tt(e,s,i,u);te(e,a.tool,a,f,m,a.style,u),e.set_crosshair(s,i);let A=e.hit_zone(s,i);n.onDirty(),n.onCrosshairMove?.(s,i,A);return}if(a&&Ze(a.tool)&&g.touches.length===1){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=e.hit_zone(s,i),f=ee(u),{wx:m,wy:A}=Tt(e,s,i,f);te(e,a.tool,a,m,A,a.style,f),e.set_crosshair(s,i),n.onDirty(),n.onCrosshairMove?.(s,i,u);return}if(g.touches.length===2){if(o.dragZone===255)return;o.velSamples=[],o.pinchActive=!0;let s=g.touches[1].clientX-g.touches[0].clientX,i=g.touches[1].clientY-g.touches[0].clientY,u=Math.sqrt(s*s+i*i),f=o.lastTouchDist/u,m=(g.touches[0].clientX+g.touches[1].clientX)/2-r.left,A=(g.touches[0].clientY+g.touches[1].clientY)/2-r.top,T=o.pinchAnchorY??A;o.dragZone===3?e.zoom_y(T,f):qt(o.dragZone)&&o.dragZone!==14?e.zoom_indicator_y(se(o.dragZone),T,f):o.dragZone===14?(e.zoom_x(m,f),be(e,4,m-o.lastX,A-o.lastY)):o.dragZone===2?e.zoom_x(m,f):Oe(o.dragZone)?(e.zoom_x(m,f),be(e,o.dragZone,m-o.lastX,A-o.lastY)):(e.zoom_x(m,f),be(e,o.dragZone,m-o.lastX,A-o.lastY)),o.lastTouchDist=u,o.lastX=m,o.lastY=A,n.onDirty()}else if(g.touches.length===1&&o.isDragging){let s=g.touches[0].clientX-r.left,i=g.touches[0].clientY-r.top,u=s-o.lastX,f=i-o.lastY;if(!o.touchMoved&&(Math.abs(s-o.touchStartX)>vr||Math.abs(i-o.touchStartY)>vr)&&(o.touchMoved=!0,o.isCrosshairMode||clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null)),o.isCrosshairMode)e.set_crosshair(s,i),n.onDirty(),n.onCrosshairMove?.(s,i,o.dragZone),n.onVrvpHover?.(s,i);else if(o.touchMoved){if(o.isPanning=!0,o.lastX=s,o.lastY=i,o.dragZone===3||qt(o.dragZone)||o.recordVelocity(u,f),o.dragZone===2)e.pan_x(u);else if(o.dragZone===3){let A=Math.pow(1.005,f);e.zoom_y(o.touchStartY,A)}else if(o.dragZone!==14)if(qt(o.dragZone)){let A=Math.pow(1.005,f);e.zoom_indicator_y(se(o.dragZone),o.touchStartY,A)}else be(e,o.dragZone,u,f);n.onDirty()}else o.lastX=s,o.lastY=i}},{passive:!1}),t.addEventListener("touchend",g=>{if(o.disposed)return;if(clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.watermarkTapPending&&g.touches.length===0){if(o.watermarkTapPending=!1,!o.touchMoved&&!o.pinchActive&&typeof e.is_in_watermark_btn=="function"&&e.is_in_watermark_btn(o.watermarkTapX,o.watermarkTapY))try{window.open("https://app.mrd-indicators.com/charting-library/pricing","_blank","noopener,noreferrer")}catch{}return}if(o.isDraggingAnchor){o.isDraggingAnchor=!1,o.dragAnchorIdx=-1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.();return}if(o.isDraggingDrawing){if(o.isDraggingDrawing=!1,e.hide_crosshair(),n.onDirty(),n.onCrosshairHide?.(),!o.touchMoved){let i=e.get_selected_drawing();if(i>0){let u=t.getBoundingClientRect();n.onDrawingDblClick?.(i,o.touchStartX,o.touchStartY,o.touchStartX+u.left,o.touchStartY+u.top)}}return}if(o.isBrushing){o.isBrushing=!1,o.brushLastSx=null,o.brushLastSy=null,e.finish_brush(),o.finishDrawing(),n.onDirty(),n.onCrosshairHide?.();return}let r=o.drawingMode;if(r&&pe(r.tool)&&r.pathStarted){let i=Date.now(),u=o.touchStartX-(o._pathLastTapX||0),f=o.touchStartY-(o._pathLastTapY||0),m=Math.sqrt(u*u+f*f);i-(o._pathLastTapTime||0)<350&&m<30?(e.finish_elliott_manual(),o.finishDrawing(),o._pathLastTapTime=0):(o._pathLastTapTime=i,o._pathLastTapX=o.touchStartX,o._pathLastTapY=o.touchStartY),o.isDragging=!1,o.lastTouchDist=0,n.onDirty();return}if(r&&he(r.tool)&&r.pathStarted){let i=Date.now(),u=o.touchStartX-(o._pathLastTapX||0),f=o.touchStartY-(o._pathLastTapY||0),m=Math.sqrt(u*u+f*f);i-(o._pathLastTapTime||0)<350&&m<30?(e.finish_path(),o.finishDrawing(),o._pathLastTapTime=0):(o._pathLastTapTime=i,o._pathLastTapX=o.touchStartX,o._pathLastTapY=o.touchStartY),o.isDragging=!1,o.lastTouchDist=0,n.onDirty();return}if(r&&sr(r.tool)){let i=r._stepAtTouchStart;if(r.step===1&&(i===1||o.touchMoved)){let u=t.getBoundingClientRect(),f=g.changedTouches?.[0];if(f){let m=f.clientX-u.left,A=f.clientY-u.top,T=r.pane||0,{wx:_,wy:I}=Tt(e,m,A,T);r.x2=_,r.y2=I,r.step=2,e.clear_drawing_preview()}}else if(r.step===2&&(i===2||o.touchMoved)){let u=t.getBoundingClientRect(),f=g.changedTouches?.[0];if(f){let m=f.clientX-u.left,A=f.clientY-u.top,T=r.pane||0,{wx:_,wy:I}=Tt(e,m,A,T),P=Qt[r.tool];P&&P.previewFn==="fib_ext"?e.clear_fib_ext_preview():e.clear_channel_preview(),ae(e,r.tool,r,_,I,r.style),o.finishDrawing()}}o.isDragging=!1,o.lastTouchDist=0,o.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&r.step===1&&(or(r.tool)||ir(r.tool))){if(r._stepAtTouchStart===1||o.touchMoved){let u=t.getBoundingClientRect(),f=g.changedTouches?.[0];if(f){let m=f.clientX-u.left,A=f.clientY-u.top,T=r.pane||0,{wx:_,wy:I}=Tt(e,m,A,T);ae(e,r.tool,r,_,I,r.style),o.finishDrawing()}}o.isDragging=!1,o.lastTouchDist=0,o.drawingMode||(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty();return}if(r&&Ze(r.tool)){let i=t.getBoundingClientRect(),u=g.changedTouches?.[0];if(u){let f=u.clientX-i.left,m=u.clientY-i.top,A=e.hit_zone(f,m),T=Ut(A)?ee(A):r.pane||0,{wx:_,wy:I}=Tt(e,f,m,T),P=r.tool;e.clear_drawing_preview();let S=ae(e,P,r,_,I,r.style);o.finishDrawing(),P==="textnote"&&S>0&&(e.select_drawing(S),n.onDrawingSelected?.(S),n.onDrawingDblClick?.(S,f,m,f+i.left,m+i.top))}o.isDragging=!1,o.lastTouchDist=0,e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty();return}let a=g.touches.length===0;if(a&&!o.pinchActive&&!o.touchMoved&&!o.drawingMode){let i=Date.now(),u=o.touchStartX,f=o.touchStartY,m=u-o.lastTapX,A=f-o.lastTapY,T=Math.sqrt(m*m+A*A),_=i-o.lastTapTime<350&&T<30,I=e.hit_zone(u,f),P=_?e.hit_test_drawing(u,f):0;if(_&&(Oe(I)||qt(I))&&P<=0)e.reset_indicator_y_auto(se(I)),n.onDirty();else if(Ut(I)){let S=e.get_selected_drawing(),C=P>0?P:e.hit_test_drawing(u,f),B=0;if(C<=0&&(B=e.hit_test_marker(u,f)),C>0){e.deselect_marker(),n.onMarkerSelected?.(0),e.select_drawing(C);let V=t.getBoundingClientRect(),x=u+V.left,O=f+V.top;n.onDrawingSelected?.(C,x,O),(S<=0||S===C)&&n.onDrawingDblClick?.(C,u,f,x,O),n.onDirty()}else if(B>0)e.deselect_drawing(),n.onDrawingSelected?.(0),e.select_marker(B),n.onMarkerSelected?.(B),n.onDirty();else if(S>0&&(e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty()),e.get_selected_marker()>0&&(e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty()),_&&I===0){let x=t.getBoundingClientRect();n.onChartDblClick?.(u,f,u+x.left,f+x.top)}}o.lastTapTime=i,o.lastTapX=u,o.lastTapY=f}a&&!o.pinchActive&&o.touchMoved&&!o.isCrosshairMode&&!o.drawingMode&&o.dragZone!==3&&!qt(o.dragZone)&&o.startMomentum(o.dragZone),o.isDragging=!1,o.isPanning=!1,o.isCrosshairMode=!1,o.lastTouchDist=0,a&&(o.pinchActive=!1),(!o.drawingMode||o.drawingMode.step===0)&&(e.hide_crosshair(),n.onCrosshairHide?.()),n.onDirty(),n.onVrvpHover?.(null,null)}),t.addEventListener("touchcancel",()=>{clearTimeout(o.longPressTimer),o.liqPinTimer&&(clearTimeout(o.liqPinTimer),o.liqPinTimer=null),o.isDragging=!1,o.isPanning=!1,o.isDraggingAnchor=!1,o.isDraggingDrawing=!1,o.isBrushing=!1,o.brushLastSx=null,o.brushLastSy=null,o.isCrosshairMode=!1,o.lastTouchDist=0,o.pinchActive=!1,o.cancelMomentum(),e.hide_crosshair(),n.onCrosshairHide?.(),n.onDirty()})}function Qr(t,e,n){let o={disposed:!1,isDragging:!1,dragZone:0,lastX:0,lastY:0,lastTouchDist:0,isResizingRsi:!1,isResizingOi:!1,isResizingFr:!1,isResizingCvd:!1,resizeStartY:0,resizeStartRatio:0,lastClickTime:0,isDraggingAnchor:!1,dragAnchorIdx:-1,dragAnchorPane:0,isBrushing:!1,isDraggingDrawing:!1,dragDrawingPane:0,dragDrawingLastWx:0,dragDrawingLastWy:0,touchStartX:0,touchStartY:0,touchMoved:!1,pinchActive:!1,longPressTimer:null,isCrosshairMode:!1,liqPinTimer:null,liqPinSx:0,liqPinSy:0,velSamples:[],momentumRaf:null,momentumVx:0,momentumVy:0,momentumZone:0,lastTapTime:0,lastTapX:0,lastTapY:0,drawingMode:null,watermarkPending:!1,watermarkTapPending:!1,watermarkTapX:0,watermarkTapY:0,qtbPending:!1,qtbWorldY:0},h=!1;Object.defineProperty(o,"isPanning",{get(){return h},set(f){let m=!!f;m!==h&&(h=m,m?n.onPanStart?.():n.onPanEnd?.())}});let c=.86,d=.5,g=80;o.recordVelocity=function(f,m){let A=performance.now();for(o.velSamples.push({dx:f,dy:m,t:A});o.velSamples.length>0&&A-o.velSamples[0].t>g;)o.velSamples.shift()};function r(){if(o.velSamples.length<2)return{vx:0,vy:0};let f=o.velSamples[0],A=o.velSamples[o.velSamples.length-1].t-f.t;if(A<5)return{vx:0,vy:0};let T=0,_=0;for(let P of o.velSamples)T+=P.dx,_+=P.dy;let I=16.67;return{vx:T/A*I,vy:_/A*I}}o.cancelMomentum=function(){o.momentumRaf&&(cancelAnimationFrame(o.momentumRaf),o.momentumRaf=null),o.velSamples=[]},o.startMomentum=function(f){let{vx:m}=r();if(o.velSamples=[],Math.abs(m)<d)return;o.momentumVx=m,o.momentumVy=0,o.momentumZone=f;function A(){if(o.momentumVx*=c,Math.abs(o.momentumVx)<d){o.momentumRaf=null;return}if(o.momentumZone===2)e.pan_x(o.momentumVx);else if(o.momentumZone===3){o.momentumRaf=null;return}else if(o.momentumZone===14){o.momentumRaf=null;return}else if(qt(o.momentumZone)){o.momentumRaf=null;return}else be(e,o.momentumZone,o.momentumVx,0);n.onDirty(),o.momentumRaf=requestAnimationFrame(A)}o.momentumRaf=requestAnimationFrame(A)};let a={setMode(f,m){f?(o.drawingMode={tool:f,style:m,step:0,x1:0,y1:0},t.style.cursor="crosshair"):(o.drawingMode?.pathStarted&&e.finish_path(),o.drawingMode=null,e.clear_drawing_preview(),t.style.cursor="crosshair"),n.onDirty()},getMode(){return o.drawingMode}};n.drawingApi?.(a),o.finishDrawing=function(){e.clear_drawing_preview(),n.onDrawingComplete?.(),o.drawingMode=null,t.style.cursor="crosshair"},ao(t,e,n,o),lo(t,e,n,o);let s=null,i=f=>{let m=document.activeElement?.tagName,A=m==="INPUT"||m==="TEXTAREA"||document.activeElement?.isContentEditable;if((f.key==="Delete"||f.key==="Backspace")&&!o.drawingMode&&!A){let _=e.get_selected_drawing();if(_>0){n.onDrawingMutationBegin?.(),e.remove_drawing(_),n.onDrawingSelected?.(0),n.onDirty();return}let I=e.get_selected_marker();if(I>0){n.onDrawingMutationBegin?.(),e.remove_marker(I),n.onMarkerSelected?.(0),n.onDirty();return}}if(f.key==="z"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!A&&!o.drawingMode&&(window.getSelection?.()?.toString()||"").length===0&&n.onUndoRequest?.()){n.onDrawingSelected?.(0),n.onMarkerSelected?.(0),n.onDirty(),f.preventDefault();return}if((f.key==="z"&&(f.ctrlKey||f.metaKey)&&f.shiftKey&&!f.altKey&&!A&&!o.drawingMode||f.key==="y"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!A&&!o.drawingMode)&&(window.getSelection?.()?.toString()||"").length===0&&n.onRedoRequest?.()){n.onDrawingSelected?.(0),n.onMarkerSelected?.(0),n.onDirty(),f.preventDefault();return}if(f.key==="c"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!A&&!o.drawingMode){let _=e.get_selected_drawing();if(_>0&&(window.getSelection?.()?.toString()||"").length===0){let P=e.export_drawing_by_id(_);if(P&&P.length>0){s=P,f.preventDefault();return}}}if(f.key==="v"&&(f.ctrlKey||f.metaKey)&&!f.shiftKey&&!f.altKey&&!A&&!o.drawingMode&&s){n.onDrawingMutationBegin?.();let _=e.paste_drawing_json(s,30,30);if(_>0){n.onDrawingSelected?.(_),n.onDirty(),f.preventDefault();return}}if(f.key==="Escape"&&!o.drawingMode){if(e.get_selected_drawing()>0){e.deselect_drawing(),n.onDrawingSelected?.(0),n.onDirty();return}if(e.get_selected_marker()>0){e.deselect_marker(),n.onMarkerSelected?.(0),n.onDirty();return}}if(f.key==="Escape"&&o.drawingMode){if(o.drawingMode.pathStarted){o.drawingMode.tool==="elliott"?e.finish_elliott_manual():e.finish_path(),o.finishDrawing(),n.onDirty();return}e.clear_drawing_preview(),o.drawingMode=null,t.style.cursor="crosshair",n.onDrawingCancel?.(),n.onDirty();return}if(A)return;let T=20;switch(f.key){case"+":case"=":e.zoom(t.width/2,t.height/2,.9);break;case"-":e.zoom(t.width/2,t.height/2,1.1);break;case"ArrowLeft":e.pan_x(T);break;case"ArrowRight":e.pan_x(-T);break;case"ArrowUp":e.pan_y(-T);break;case"ArrowDown":e.pan_y(T);break;case"r":case"R":e.set_y_auto_scale(!0);for(let _=1;_<=5;_++)e.reset_indicator_y_auto(_);break;default:return}n.onDirty()};window.addEventListener("keydown",i);let u=f=>{if(o.disposed||o.drawingMode)return;let m=typeof n.onImagePasted=="function",A=typeof n.onTextPasted=="function";if(!m&&!A)return;let T=document.activeElement?.tagName;if(T==="INPUT"||T==="TEXTAREA"||document.activeElement?.isContentEditable)return;let I=f.clipboardData?.items;if(I){if(m)for(let P=0;P<I.length;P++){let S=I[P];if(!S.type||!S.type.startsWith("image/")||S.type==="image/svg+xml")continue;let C=S.getAsFile();if(C){try{f.preventDefault()}catch{}try{n.onImagePasted(C)}catch(B){console.warn("[eventHandler] onImagePasted callback threw",B?.message||B)}return}}if(A){let P="";try{P=f.clipboardData?.getData?.("text/plain")||""}catch{}if(P&&P.trim().length>0){try{f.preventDefault()}catch{}try{n.onTextPasted(P)}catch(S){console.warn("[eventHandler] onTextPasted callback threw",S?.message||S)}}}}};return window.addEventListener("paste",u),()=>{o.disposed=!0,o.cancelMomentum(),window.removeEventListener("keydown",i),window.removeEventListener("paste",u)}}var me=t=>t instanceof Float64Array?t:new Float64Array(t),co=(t,e=0)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"bull":return 0;case"bear":return 1;case"neutral":return 2;case"all":return 255;default:return e}},Ks=(t,e=255)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"offside_buy":return 0;case"offside_sell":return 1;case"distribution":return 2;case"accumulation":return 3;case"absorption":return 4;default:return e}},$s=(t,e=0)=>{if(t==null||t==="")return e;if(typeof t=="number")return(t|0)&255;switch(String(t).toLowerCase()){case"wick":return 0;case"close":return 1;case"all":return 255;default:return e}};function _o(t,e,n,o){let h=r=>o()(r),c=null,d=null,g=null;return{enableRsi(){t.enable_rsi(),e()},disableRsi(){t.disable_rsi(),e()},setRsiPeriod(r){t.set_rsi_period(r),e()},isRsiEnabled(){return t.is_rsi_enabled()},setRsiShowEma(r){t.set_rsi_show_ema(r),e()},setRsiShowWma(r){t.set_rsi_show_wma(r),e()},setRsiShowSignals(r){t.set_rsi_show_signals(r),e()},setRsiShowDivergence(r){t.set_rsi_show_divergence(r),e()},setRsiShowTraps(r){t.set_rsi_show_traps(r),e()},setRsiShowLevels(r){t.set_rsi_show_levels(r),e()},setRsiShowChannels(r){t.set_rsi_show_channels(r),e()},setRsiShowTargets(r){t.set_rsi_show_targets(r),e()},setRsiMtfSeries(r){try{t.set_rsi_mtf_series(r||"[]")}catch{}e()},setRsiShowOnChart(r){t.set_rsi_show_on_chart(r),e()},setRsiSmoothing(r){t.set_rsi_smoothing(r),e()},setRsiRatio(r){t.set_rsi_ratio(r),e()},getRsiRatio(){return t.get_rsi_ratio()},getRsiWinrate(r=0){try{let a=t.get_rsi_winrate(r>>>0),s=JSON.parse(a);return Array.isArray(s)?s:[]}catch{return[]}},rsiSignalHitTest(r,a){if(n())return"";try{return t.rsi_signal_hit_test(r,a)}catch{return""}},setRsiTooltip(r){if(n())return!1;if(r===g)return!0;try{let a=t.set_rsi_tooltip(r);return g=r,e(),!!a}catch{return!1}},clearRsiTooltip(){if(!n()&&g!==null)try{t.clear_rsi_tooltip(),g=null,e()}catch{}},setLiqProfileTooltip(r){if(n())return!1;if(r===c)return!0;try{let a=t.set_liq_profile_tooltip(r);return c=r,e(),!!a}catch{return!1}},clearLiqProfileTooltip(){if(!n()&&c!==null)try{t.clear_liq_profile_tooltip(),c=null,e()}catch{}},setLiqZoneTooltip(r){if(n())return!1;if(r===d)return!0;try{let a=t.set_liq_zone_tooltip(r);return d=r,e(),!!a}catch{return!1}},clearLiqZoneTooltip(){if(!n()&&d!==null)try{t.clear_liq_zone_tooltip(),d=null,e()}catch{}},enableForexSignals(){h("forexSignals")&&(t.enable_forex_signals(),e())},disableForexSignals(){t.disable_forex_signals(),e()},isForexSignalsEnabled(){return t.is_forex_signals_enabled()},setForexSignalsSetup(r){t.set_forex_signals_setup(r),e()},setForexSignalsMode(r){t.set_forex_signals_mode(r),e()},setForexSignalsShowStats(r){t.set_forex_signals_show_stats(r),e()},getForexSignalsCount(){return t.get_forex_signals_count()},enableOi(){n()||h("oi")&&(t.enable_oi(),e())},disableOi(){n()||(t.disable_oi(),e())},isOiEnabled(){if(n())return!1;try{return t.is_oi_enabled()}catch{return!1}},setOiData(r){n()||(t.set_oi_data(r),e())},setOiDataTs(r,a){n()||(t.set_oi_data_ts(r,a),e())},setOiShowOnChart(r){n()||(t.set_oi_show_on_chart(r),e())},setOiShowSpike(r){n()||(t.set_oi_show_spike(r),e())},setOiSpikeTextSize(r){if(n())return;let a=Number(r);Number.isFinite(a)&&(t.set_oi_spike_text_size(a),e())},setOiDisplayMode(r){n()||(t.set_oi_display_mode(r),e())},setOiRatio(r){n()||(t.set_oi_ratio(r),e())},getOiRatio(){if(n())return .2;try{return t.get_oi_ratio()}catch{return .2}},enableFundingRate(){n()||h("fundingRate")&&(t.enable_funding_rate(),e())},disableFundingRate(){n()||(t.disable_funding_rate(),e())},isFundingRateEnabled(){if(n())return!1;try{return t.is_funding_rate_enabled()}catch{return!1}},setFrBinanceData(r,a){n()||(t.set_fr_binance_data(r,a),e())},setFrAggData(r,a){n()||(t.set_fr_agg_data(r,a),e())},setFrShowAgg(r){n()||(t.set_fr_show_agg(r),e())},setFrShowSma(r){n()||(t.set_fr_show_sma(r),e())},setFrDisplayStyle(r){if(n())return;let a=Number(r),s=Number.isFinite(a)?Math.max(0,Math.min(3,Math.trunc(a))):0;t.set_fr_display_style(s),e()},getFrDisplayStyle(){if(n())return 0;try{return t.get_fr_display_style()}catch{return 0}},clearFrData(){n()||(t.clear_fr_data(),e())},enableCvd(){n()||h("cvd")&&(t.enable_cvd(),e())},disableCvd(){n()||(t.disable_cvd(),e())},isCvdEnabled(){if(n())return!1;try{return t.is_cvd_enabled()}catch{return!1}},setCvdData(r,a){n()||(t.set_cvd_data(r,a),e())},setCvdSpotData(r,a){n()||(t.set_cvd_spot_data(r,a),e())},setCvdSource(r){n()||(t.set_cvd_source(r),e())},getCvdSource(){if(n())return 0;try{return t.get_cvd_source()}catch{return 0}},setCvdMode(r){n()||(t.set_cvd_mode(r),e())},getCvdMode(){if(n())return 0;try{return t.get_cvd_mode()}catch{return 0}},setCvdShowDelta(r){n()||(t.set_cvd_show_delta(r),e())},getCvdShowDelta(){if(n())return!0;try{return t.get_cvd_show_delta()}catch{return!0}},setCvdShowSignals(r){n()||(t.set_cvd_show_signals(r),e())},getCvdShowSignals(){if(n())return!0;try{return t.get_cvd_show_signals()}catch{return!0}},setCvdShowDivergence(r){n()||(t.set_cvd_show_divergence(r),e())},getCvdShowDivergence(){if(n())return!1;try{return t.get_cvd_show_divergence()}catch{return!1}},enableLargeTrades(){n()||h("largeTrades")&&(t.enable_large_trades(),e())},disableLargeTrades(){n()||(t.disable_large_trades(),e())},isLargeTradesEnabled(){if(n())return!1;try{return t.is_large_trades_enabled()}catch{return!1}},setLargeTradesData(r){n()||(t.set_large_trades_data(r),e())},pushLargeTrade(r,a,s,i){n()||(t.push_large_trade(r,a,s,i),e())},clearLargeTrades(){n()||(t.clear_large_trades(),e())},setLtVolumeFilter(r,a){n()||(t.set_lt_volume_filter(r,a),e())},setLtBubbleScale(r){n()||(t.set_lt_bubble_scale(r),e())},setLtBubbleStyle(r){if(n())return;let s=Number(r)===1?1:0;t.set_lt_bubble_style(s),e()},getLtDataMinVol(){return n()?0:t.get_lt_data_min_vol()},getLtDataMaxVol(){return n()?0:t.get_lt_data_max_vol()},ltHitTest(r,a){if(n())return"";try{return t.lt_hit_test(r,a)}catch{return""}},enableVrvp(){n()||h("vrvp")&&(t.enable_vrvp(),e())},disableVrvp(){n()||(t.disable_vrvp(),e())},isVrvpEnabled(){if(n())return!1;try{return t.is_vrvp_enabled()}catch{return!1}},setVrvpPocLine(r){n()||(t.set_vrvp_poc_line(r),e())},setVrvpData(r,a){n()||(t.set_vrvp_data(r,a),e())},vrvpHitTest(r,a){if(n())return"";try{return t.vrvp_hit_test(r,a)}catch{return""}},setVrvpSignalsEnabled(r){n()||(t.set_vrvp_signals_enabled(!!r),e())},isVrvpSignalsEnabled(){if(n())return!1;try{return t.is_vrvp_signals_enabled()}catch{return!1}},setVrvpSignalKinds(r){if(n())return;let a=(Number(r)|0)&255;t.set_vrvp_signal_kinds(a>>>0),e()},setVrvpSignalThresholds(r){if(n()||!r)return;let a=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u:i};t.set_vrvp_signal_thresholds(a(r.vaPct,70),a(r.hvnThreshold,.55),a(r.hvnMinSpacing,6)>>>0,a(r.pocDistancePct,.6),a(r.vaBreakoutVolMult,1.5),a(r.hvnImbalancePct,65),a(r.cooldownBars,5)>>>0),e()},setVrvpSignalTpSl(r){if(n()||!r)return;let a=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u:i};t.set_vrvp_signal_tpsl((Number(r.mode)|0)&1,a(r.atrPeriod,14)>>>0,a(r.atrSlMult,1.5),a(r.atrTpMult,3)),e()},setVrvpSignalShowLabels(r){n()||(t.set_vrvp_signal_show_labels(!!r),e())},getVrvpEvents(){if(n())return[];try{let r=t.get_vrvp_events_json();return r?JSON.parse(r):[]}catch{return[]}},vrvpSignalHitTest(r,a){if(n())return"";try{return t.vrvp_signal_hit_test(r,a)}catch{return""}},enableGaussianVwapCloud(){n()||h("gaussianVwapCloud")&&(t.enable_gaussian_vwap_cloud(),e())},disableGaussianVwapCloud(){n()||(t.disable_gaussian_vwap_cloud(),e())},isGaussianVwapCloudEnabled(){if(n())return!1;try{return t.is_gaussian_vwap_cloud_enabled()}catch{return!1}},setGvwcAnchorMode(r){if(n())return;let a=(Number(r)|0)&255;t.set_gvwc_anchor_mode(a>5?0:a),e()},setGvwcWindowBars(r){if(n())return;let a=Math.max(10,Math.min(1e3,Number(r)|0));t.set_gvwc_window_bars(a>>>0),e()},setGvwcAppearance(r){if(n()||!r)return;let a=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u:i};t.set_gvwc_appearance(a(r.bins,60)>>>0,a(r.sigmaClip,2.5),a(r.gamma,.7),a(r.lineWidth,1.5),!!r.showBands),e()},setGvwcShowBand3(r){n()||(t.set_gvwc_show_band3(!!r),e())},setGvwcSignalsEnabled(r){n()||(t.set_gvwc_signals_enabled(!!r),e())},setGvwcSignalKinds(r){if(n())return;let a=(Number(r)|0)&255;t.set_gvwc_signal_kinds(a),e()},setGvwcSignalThresholds(r){if(n()||!r)return;let a=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u:i};t.set_gvwc_signal_thresholds(a(r.minZscore,2),Math.max(1,Math.min(50,a(r.cooldownBars,10)|0))>>>0),e()},setGvwcSignalHighlightLeg(r){n()||(t.set_gvwc_signal_highlight_leg(!!r),e())},setGvwcUseBodyWeight(r){n()||(t.set_gvwc_use_body_weight(!!r),e())},setGvwcCloud(r){if(n()||!r)return;let a=(i,u)=>typeof i=="boolean"?i:u,s=(i,u)=>{let f=Number(i);return Number.isFinite(f)?f:u};t.set_gvwc_cloud(a(r.enabled,!0),a(r.cloud3d,!0),s(r.depthLayers,1)|0,s(r.opacity,.7),a(r.volumeWeighted,!0),a(r.volumeClassify,!0),a(r.sessionVolume,!1)),e()},gvwcHitTest(r,a){if(n())return"";try{return t.gvwc_hit_test(r,a)}catch{return""}},enableCvdProfile(){n()||h("cvdProfile")&&(t.enable_cvd_profile(),e())},disableCvdProfile(){n()||(t.disable_cvd_profile(),e())},isCvdProfileEnabled(){if(n())return!1;try{return t.is_cvd_profile_enabled()}catch{return!1}},setCvdProfileSessions(r){n()||(t.set_cvd_profile_sessions(me(r)),e())},applyCvdProfileUpdate(r,a,s,i){n()||(t.apply_cvd_profile_update(r,a,s,me(i)),e())},replaceCvdProfileSession(r,a,s,i,u){n()||(t.replace_cvd_profile_session(r,a,!!s,i,me(u)),e())},openCvdProfileSession(r,a,s){n()||(t.open_cvd_profile_session(r,a,s),e())},clearCvdProfile(){n()||(t.clear_cvd_profile(),e())},setCvdProfileViewMode(r){n()||(t.set_cvd_profile_view_mode(r|0),e())},getCvdProfileViewMode(){if(n())return 2;try{return t.get_cvd_profile_view_mode()}catch{return 2}},setCvdProfileShowAnchors(r){n()||(t.set_cvd_profile_show_anchors(!!r),e())},setCvdProfileShowPoc(r){n()||(t.set_cvd_profile_show_poc(!!r),e())},setCvdProfileShowSessionPocLine(r){n()||(t.set_cvd_profile_show_session_poc_line(!!r),e())},setCvdProfileShowDeltaPoc(r){n()||(t.set_cvd_profile_show_delta_poc(!!r),e())},setCvdProfileTooltipEnabled(r){n()||(t.set_cvd_profile_tooltip_enabled(!!r),e())},setCvdProfileMaxBarRatio(r){n()||(t.set_cvd_profile_max_bar_ratio(Number(r)||.85),e())},setCvdProfileLabelSizeScale(r){if(n())return;let a=Number(r);t.set_cvd_profile_label_size_scale(Number.isFinite(a)?a:1),e()},setCvdProfileBarHeightPx(r){n()||(t.set_cvd_profile_bar_height_px(Number(r)||0),e())},setCvdProfileBarMaxWidthPx(r){n()||(t.set_cvd_profile_bar_max_width_px(Number(r)||0),e())},setCvdProfileThemeMode(r){if(n())return;let a=Number(r),s=a===1||a===2?a:0;t.set_cvd_profile_theme_mode(s),e()},setCvdProfileValueInQuote(r){n()||(t.set_cvd_profile_value_in_quote(!!r),e())},cvdProfileHitTest(r,a){if(n())return"";try{return t.cvd_profile_hit_test(r,a)}catch{return""}},enableCvdOrderBlock(){n()||h("cvdProfile")&&(t.enable_cvd_orderblock(),e())},disableCvdOrderBlock(){n()||(t.disable_cvd_orderblock(),e())},isCvdOrderBlockEnabled(){if(n())return!1;try{return t.is_cvd_orderblock_enabled()}catch{return!1}},clearCvdOrderBlockObs(){n()||(t.clear_cvd_orderblock_obs(),e())},clearCvdOrderBlockAll(){n()||(t.clear_cvd_orderblock_all(),e())},upsertCvdOrderBlockOb(r,a,s,i,u,f,m,A,T,_,I,P,S,C,B,V,x,O,Y,G,st,Q,dt,_t,mt,X,Z,J,D,ot,ct,gt,Mt,Ct,ft){n()||(t.upsert_cvd_orderblock_ob(String(r||""),co(a),Ks(s),(i|0)>>>0,Number(u)||0,Number(f)||0,Number(m)||0,Number(A)||0,Number(T)||0,Number(_)||0,Number(I)||0,Number(P)||0,Number(S)||0,Number(C)||0,Number(B)||0,Number(V)||0,Number(x)||0,Number(O)||0,Number(Y)||0,Number(G)||0,Number(st)||0,Number(Q)||0,Number(dt)||0,(_t|0)>>>0,Number(mt)||0,(X|0)>>>0,!!Z,Number(J)||0,D===void 0?!0:!!D,!!ot,!!ct,Number(gt)||0,Number(Mt)||0,Number(Ct)||0,Number(ft)||0),e())},removeCvdOrderBlockOb(r){if(n())return!1;try{let a=t.remove_cvd_orderblock_ob(String(r||""));return a&&e(),a}catch{return!1}},setCvdOrderBlockDirectionFilter(r){n()||(t.set_cvd_orderblock_direction_filter(co(r,255)),e())},setCvdOrderBlockMitigationFilter(r){n()||(t.set_cvd_orderblock_mitigation_filter($s(r,255)),e())},setCvdOrderBlockMinScore(r){n()||(t.set_cvd_orderblock_min_score(Number(r)||0),e())},setCvdOrderBlockShowMitigated(r){n()||(t.set_cvd_orderblock_show_mitigated(!!r),e())},setCvdOrderBlockBreakerStyle(r){if(n())return;let a=Number(r),s=Number.isFinite(a)?Math.max(0,Math.min(2,Math.trunc(a))):0;t.set_cvd_orderblock_breaker_style(s),e()},setCvdOrderBlockShowObs(r){n()||(t.set_cvd_orderblock_show_obs(!!r),e())},setCvdOrderBlockShowGaps(r){n()||(t.set_cvd_orderblock_show_gaps(!!r),e())},setCvdOrderBlockShowFilledGaps(r){n()||(t.set_cvd_orderblock_show_filled_gaps(!!r),e())},setCvdOrderBlockShowLabels(r){n()||(t.set_cvd_orderblock_show_labels(!!r),e())},setCvdOrderBlockLabelSizeScale(r){if(n())return;let a=Number(r);t.set_cvd_orderblock_label_size_scale(Number.isFinite(a)?a:1),e()},setCvdOrderBlockRenderMode(r){if(n())return;let a=Number(r),s=a===0||a===1||a===2?a:1;t.set_cvd_orderblock_render_mode(s),e()},cvdOrderBlockObCount(){if(n())return 0;try{return t.cvd_orderblock_ob_count()}catch{return 0}},cvdOrderBlockGapCount(){if(n())return 0;try{return t.cvd_orderblock_gap_count()}catch{return 0}},cvdOrderBlockHitTest(r,a){if(n())return"";try{return t.cvd_orderblock_hit_test(r,a)}catch{return""}},enableCvdTradeSignals(){n()||h("cvdProfile")&&(t.enable_cvd_trade_signals(),e())},disableCvdTradeSignals(){n()||(t.disable_cvd_trade_signals(),e())},isCvdTradeSignalsEnabled(){if(n())return!1;try{return t.is_cvd_trade_signals_enabled()}catch{return!1}},clearCvdTradeSignals(){n()||(t.clear_cvd_trade_signals(),e())},upsertCvdTradeSignal(r,a,s,i,u,f,m,A,T,_,I,P,S,C,B,V,x,O,Y,G,st){if(n())return;let Q=0;(a==="short"||a===1)&&(Q=1);let dt=0;s==="breakout"||s===1?dt=1:s==="delta_trap"||s===2?dt=2:s==="absorption_resolution"||s===3?dt=3:(s==="divergence"||s===4)&&(dt=4);let _t=0;C==="bull"||C===1?_t=1:(C==="bear"||C===2)&&(_t=2),t.upsert_cvd_trade_signal(String(r||""),Q,dt,Number(i)||0,Number(u)||0,Number(f)||0,Number(m)||0,Number(A)||0,Number(T)||0,Number(_)||0,Number(I)||0,Number(P)||0,Number(S)||0,_t,(B|0)>>>0,Number(V)||0,Number(x)||0,Number(O)||0,Number(Y)||0,(G|0)>>>0,String(st||"")),e()},removeCvdTradeSignal(r){if(n())return!1;try{let a=t.remove_cvd_trade_signal(String(r||""));return a&&e(),a}catch{return!1}},setCvdTradeSignalsShowLong(r){n()||(t.set_cvd_trade_signals_show_long(!!r),e())},setCvdTradeSignalsShowShort(r){n()||(t.set_cvd_trade_signals_show_short(!!r),e())},setCvdTradeSignalsShowRejection(r){n()||(t.set_cvd_trade_signals_show_rejection(!!r),e())},setCvdTradeSignalsShowBreakout(r){n()||(t.set_cvd_trade_signals_show_breakout(!!r),e())},setCvdTradeSignalsShowDeltaTrap(r){n()||(t.set_cvd_trade_signals_show_delta_trap(!!r),e())},setCvdTradeSignalsShowAbsorptionResolution(r){n()||(t.set_cvd_trade_signals_show_absorption_resolution(!!r),e())},setCvdTradeSignalsShowDivergence(r){n()||(t.set_cvd_trade_signals_show_divergence(!!r),e())},setCvdTradeSignalsShowLabels(r){n()||(t.set_cvd_trade_signals_show_labels(!!r),e())},setCvdTradeSignalsShowLevels(r){n()||(t.set_cvd_trade_signals_show_levels(!!r),e())},setCvdTradeSignalsMinConfidence(r){n()||(t.set_cvd_trade_signals_min_confidence(Number(r)||0),e())},cvdTradeSignalCount(){if(n())return 0;try{return t.cvd_trade_signal_count()}catch{return 0}},cvdTradeSignalsHitTest(r,a){if(n())return"";try{return t.cvd_trade_signals_hit_test(r,a)}catch{return""}},enableCvdDivergence(){n()||h("cvdProfile")&&(t.enable_cvd_divergence(),e())},disableCvdDivergence(){n()||(t.disable_cvd_divergence(),e())},isCvdDivergenceEnabled(){if(n())return!1;try{return t.is_cvd_divergence_enabled()}catch{return!1}},clearCvdDivergence(){n()||(t.clear_cvd_divergence(),e())},upsertCvdDivergence(r,a,s,i,u,f,m,A,T,_,I){if(n())return;let P=0;(a==="hidden"||a===1)&&(P=1);let S=0;(s==="short"||s===1)&&(S=1),t.upsert_cvd_divergence(String(r||""),P,S,Number(i)||0,Number(u)||0,Number(f)||0,Number(m)||0,Number(A)||0,Number(T)||0,Number(_)||0,Number(I)||0),e()},removeCvdDivergence(r){if(n())return!1;try{let a=t.remove_cvd_divergence(String(r||""));return a&&e(),a}catch{return!1}},setCvdDivergenceShowRegular(r){n()||(t.set_cvd_divergence_show_regular(!!r),e())},setCvdDivergenceShowHidden(r){n()||(t.set_cvd_divergence_show_hidden(!!r),e())},setCvdDivergenceShowLong(r){n()||(t.set_cvd_divergence_show_long(!!r),e())},setCvdDivergenceShowShort(r){n()||(t.set_cvd_divergence_show_short(!!r),e())},setCvdDivergenceShowLabels(r){n()||(t.set_cvd_divergence_show_labels(!!r),e())},setCvdDivergenceShowBand(r){n()||(t.set_cvd_divergence_show_band(!!r),e())},setCvdDivergenceMinStrength(r){n()||(t.set_cvd_divergence_min_strength(Number(r)||0),e())},cvdDivergenceCount(){if(n())return 0;try{return t.cvd_divergence_count()}catch{return 0}},cvdDivergenceHitTest(r,a){if(n())return"";try{return t.cvd_divergence_hit_test(r,a)}catch{return""}},enableCvdRegime(){n()||h("cvdProfile")&&(t.enable_cvd_regime(),e())},disableCvdRegime(){n()||(t.disable_cvd_regime(),e())},isCvdRegimeEnabled(){if(n())return!1;try{return t.is_cvd_regime_enabled()}catch{return!1}},clearCvdRegime(){n()||(t.clear_cvd_regime(),e())},upsertCvdRegimeFlip(r,a,s,i,u,f,m,A){if(n())return;let T=_=>_==="bull"||_===1?1:_==="bear"||_===2?2:0;t.upsert_cvd_regime_flip(String(r||""),Number(a)||0,Number(s)||0,T(i),T(u),Number(f)||0,(m|0)>>>0,Number(A)||0),e()},removeCvdRegimeFlip(r){if(n())return!1;try{let a=t.remove_cvd_regime_flip(String(r||""));return a&&e(),a}catch{return!1}},setCvdRegimeShowRibbon(r){n()||(t.set_cvd_regime_show_ribbon(!!r),e())},setCvdRegimeShowWash(r){n()||(t.set_cvd_regime_show_wash(!!r),e())},setCvdRegimeShowFlipLines(r){n()||(t.set_cvd_regime_show_flip_lines(!!r),e())},cvdRegimeFlipCount(){if(n())return 0;try{return t.cvd_regime_flip_count()}catch{return 0}},cvdRegimeHitTest(r,a){if(n())return"";try{return t.cvd_regime_hit_test(r,a)}catch{return""}},enableTpo(){n()||h("tpo")&&(t.enable_tpo(),e())},disableTpo(){n()||(t.disable_tpo(),e())},isTpoEnabled(){if(n())return!1;try{return t.is_tpo_enabled()}catch{return!1}},setTpoPocLine(r){n()||(t.set_tpo_poc_line(r),e())},setTpoVaLines(r){n()||(t.set_tpo_va_lines(r),e())},setTpoIb(r){n()||(t.set_tpo_ib(r),e())},setTpoSinglePrints(r){n()||(t.set_tpo_single_prints(r),e())},setTpoPeriod(r){n()||(t.set_tpo_period(r),e())},getTpoPeriod(){if(n())return 1440;try{return t.get_tpo_period()}catch{return 1440}},setTpoPeriodKind(r){if(n()||typeof t.set_tpo_period_kind!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>255||(t.set_tpo_period_kind(a|0),e())},getTpoPeriodKind(){if(n())return 1;try{return typeof t.get_tpo_period_kind!="function"?1:t.get_tpo_period_kind()}catch{return 1}},setTpoVpPosition(r){if(n()||typeof t.set_tpo_vp_position!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>255||(t.set_tpo_vp_position(a|0),e())},getTpoVpPosition(){if(n())return 0;try{return typeof t.get_tpo_vp_position!="function"?0:t.get_tpo_vp_position()}catch{return 0}},setTpoVpWidth(r){if(n()||typeof t.set_tpo_vp_width!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>100||(t.set_tpo_vp_width(a|0),e())},getTpoVpWidth(){if(n())return 50;try{return typeof t.get_tpo_vp_width!="function"?50:t.get_tpo_vp_width()}catch{return 50}},setTpoVpColorGrade(r){n()||typeof t.set_tpo_vp_color_grade=="function"&&(t.set_tpo_vp_color_grade(!!r),e())},getTpoVpColorGrade(){if(n())return!1;try{return typeof t.get_tpo_vp_color_grade!="function"?!1:!!t.get_tpo_vp_color_grade()}catch{return!1}},setTpoVaPct(r){if(n()||typeof t.set_tpo_va_pct!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>100||(t.set_tpo_va_pct(a|0),e())},getTpoVaPct(){if(n())return 70;try{return typeof t.get_tpo_va_pct!="function"?70:t.get_tpo_va_pct()}catch{return 70}},setTpoCellStyle(r){if(n()||typeof t.set_tpo_cell_style!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>1||(t.set_tpo_cell_style(a|0),e())},getTpoCellStyle(){if(n())return 0;try{return typeof t.get_tpo_cell_style!="function"?0:t.get_tpo_cell_style()}catch{return 0}},setTpoNakedPoc(r){n()||(t.set_tpo_naked_poc(r),e())},setTpoProfileShape(r){n()||(t.set_tpo_profile_shape(r),e())},setTpoIbMinutes(r){n()||(t.set_tpo_ib_minutes(r),e())},setTpoLetterMinutes(r){n()||(t.set_tpo_letter_minutes(r),e())},setTpoSignals(r){n()||(t.set_tpo_signals(r),e())},isTpoSignals(){if(n())return!1;try{return t.is_tpo_signals()}catch{return!1}},setTpoMode(r){if(n())return;let a=Number(r);!Number.isFinite(a)||a<0||a>2||(t.set_tpo_mode(a),e())},getTpoMode(){if(n())return 0;try{return t.get_tpo_mode()}catch{return 0}},setTpoVolUnit(r){if(n()||typeof t.set_tpo_vol_unit!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>1||(t.set_tpo_vol_unit(a|0),e())},getTpoVolUnit(){if(n())return 0;try{return t.get_tpo_vol_unit()}catch{return 0}},setTpoProfileTextSize(r){if(n()||typeof t.set_tpo_profile_text_size!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>4||(t.set_tpo_profile_text_size(a|0),e())},getTpoProfileTextSize(){if(n())return 2;try{return t.get_tpo_profile_text_size()}catch{return 2}},setTpoProfileBrightness(r){if(n()||typeof t.set_tpo_profile_brightness!="function")return;let a=Number(r);if(!Number.isFinite(a))return;let s=Math.max(20,Math.min(200,Math.round(a)));t.set_tpo_profile_brightness(s|0),e()},getTpoProfileBrightness(){if(n())return 100;try{return t.get_tpo_profile_brightness()}catch{return 100}},setTpoVpType(r){if(n()||typeof t.set_tpo_vp_type!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>3||(t.set_tpo_vp_type(a|0),e())},getTpoVpType(){if(n())return 0;try{return t.get_tpo_vp_type()}catch{return 0}},setTpoShowValues(r){n()||(t.set_tpo_show_values(r),e())},isTpoShowValues(){if(n())return!1;try{return t.is_tpo_show_values()}catch{return!0}},setTpoShowStats(r){n()||typeof t.set_tpo_show_stats=="function"&&(t.set_tpo_show_stats(r),e())},isTpoShowStats(){if(n())return!0;try{return t.is_tpo_show_stats()}catch{return!0}},setTpoShowLevels(r){n()||typeof t.set_tpo_show_levels=="function"&&(t.set_tpo_show_levels(r),e())},isTpoShowLevels(){if(n())return!0;try{return t.is_tpo_show_levels()}catch{return!0}},setTpoTextSize(r){if(n()||typeof t.set_tpo_text_size!="function")return;let a=Number(r);!Number.isFinite(a)||a<0||a>3||(t.set_tpo_text_size(a|0),e())},getTpoTextSize(){if(n())return 1;try{return t.get_tpo_text_size()}catch{return 1}},enableLiqHeatmap(){n()||h("liqHeatmap")&&(t.enable_liq_heatmap(),e())},disableLiqHeatmap(){n()||(t.disable_liq_heatmap(),e())},isLiqHeatmapEnabled(){if(n())return!1;try{return t.is_liq_heatmap_enabled()}catch{return!1}},setLiqHeatmapRange(r,a){n()||(t.set_liq_heatmap_range(r,a),e())},getLiqHeatmapMin(){if(n())return 0;try{return t.get_liq_heatmap_min()}catch{return 0}},getLiqHeatmapMax(){if(n())return 1;try{return t.get_liq_heatmap_max()}catch{return 1}},getLiqHeatmapSegMax(){if(n())return 0;try{return t.get_liq_heatmap_seg_max()}catch{return 0}},setLiqHeatmapProfile(r){n()||(t.set_liq_heatmap_profile(r),e())},isLiqHeatmapProfile(){if(n())return!0;try{return t.is_liq_heatmap_profile()}catch{return!0}},setLiqHeatmapCellHeight(r){n()||(t.set_liq_heatmap_cell_height(r),e())},getLiqHeatmapCellHeight(){if(n())return 1;try{return t.get_liq_heatmap_cell_height()}catch{return 1}},setLiqHeatmapBarWidth(r){n()||(t.set_liq_heatmap_bar_width(r),e())},getLiqHeatmapBarWidth(){if(n())return 1;try{return t.get_liq_heatmap_bar_width()}catch{return 1}},setLiqHeatmapPalette(r){n()||(t.set_liq_heatmap_palette(r|0),e())},getLiqHeatmapPalette(){if(n())return 0;try{return t.get_liq_heatmap_palette()}catch{return 0}},setLiqHeatmapIntensity(r){n()||(t.set_liq_heatmap_intensity(r),e())},getLiqHeatmapIntensity(){if(n())return 1;try{return t.get_liq_heatmap_intensity()}catch{return 1}},setLiqHeatmapLookbackBars(r){n()||(t.set_liq_heatmap_lookback_bars(r|0),e())},getLiqHeatmapLookbackBars(){if(n())return 500;try{return t.get_liq_heatmap_lookback_bars()}catch{return 500}},setLiqHeatmapProfileFontMult(r){n()||(t.set_liq_heatmap_profile_font_mult(Number(r)||1),e())},getLiqHeatmapProfileFontMult(){if(n())return 1;try{return t.get_liq_heatmap_profile_font_mult()}catch{return 1}},setLiqHeatmapCumSplit(r){n()||(t.set_liq_heatmap_cum_split(!!r),e())},getLiqHeatmapCumSplit(){if(n())return!1;try{return t.is_liq_heatmap_cum_split()}catch{return!1}},setLiqHeatmapPredictions(r){n()||(t.set_liq_heatmap_predictions(r),e())},setLiqHeatmapFilledPct(r){n()||(t.set_liq_heatmap_filled_pct(r),e())},getLiqHeatmapFilledPct(){if(n())return .85;try{return t.get_liq_heatmap_filled_pct()}catch{return .85}},liqHeatmapHitTest(r,a){if(n())return"";try{return t.liq_heatmap_hit_test(r,a)}catch{return""}},liqZoneHitTest(r,a){if(n())return"";try{return t.liq_zone_hit_test(r,a)}catch{return""}},enableSmartRanges(){n()||h("smartRanges")&&(t.enable_smart_ranges(),e())},disableSmartRanges(){n()||(t.disable_smart_ranges(),e())},isSmartRangesEnabled(){if(n())return!1;try{return t.is_smart_ranges_enabled()}catch{return!1}},setSrTextSize(r){n()||(t.set_sr_text_size(r),e())},setSrShowOb(r){n()||(t.set_sr_show_ob(r),e())},setSrObLast(r){n()||(t.set_sr_ob_last(r),e())},setSrShowObActivity(r){n()||(t.set_sr_show_ob_activity(r),e())},setSrShowBreakers(r){n()||(t.set_sr_show_breakers(r),e())},setSrMitigation(r){n()||(t.set_sr_mitigation(r),e())},setSrShowMetrics(r){n()||(t.set_sr_show_metrics(r),e())},setSrShowHtfOb(r){n()||(t.set_sr_show_htf_ob(r),e())},setSrHtfMinutes(r){n()||(t.set_sr_htf_minutes(r),e())},setSrShowFvg(r){n()||(t.set_sr_show_fvg(r),e())},setSrFvgTheme(r){n()||(t.set_sr_fvg_theme(r),e())},setSrFvgMitigation(r){n()||(t.set_sr_fvg_mitigation(r),e())},setSrFvgHtf(r){n()||(t.set_sr_fvg_htf(r),e())},setSrFvgExtend(r){n()||(t.set_sr_fvg_extend(r),e())},setSrShowObSignals(r){n()||(t.set_sr_show_ob_signals(r),e())},setSrShowPredict(r){n()||(t.set_sr_show_predict(r),e())},setSrShowFvgSignals(r){n()||(t.set_sr_show_fvg_signals(r),e())},setSrShowSmartRev(r){n()||(t.set_sr_show_smart_rev(r),e())},setSrSmartRevHtf(r){n()||(t.set_sr_smart_rev_htf(r),e())},setSrStatsType(r){n()||(t.set_sr_stats_type(r),e())},setSrStatsPosition(r){n()||(t.set_sr_stats_position(r),e())},getSrSignalsCount(){if(n())return 0;try{return t.get_sr_signals_count()}catch{return 0}},enableEmaStructure(){n()||h("emaStructure")&&(t.enable_ema_structure(),e())},disableEmaStructure(){n()||(t.disable_ema_structure(),e())},isEmaStructureEnabled(){if(n())return!1;try{return t.is_ema_structure_enabled()}catch{return!1}},setEsEma1Len(r){n()||(t.set_es_ema1_len(r),e())},setEsEma2Len(r){n()||(t.set_es_ema2_len(r),e())},setEsWmaLen(r){n()||(t.set_es_wma_len(r),e())},setEsShowEma1(r){n()||(t.set_es_show_ema1(r),e())},setEsShowEma2(r){n()||(t.set_es_show_ema2(r),e())},setEsShowWma(r){n()||(t.set_es_show_wma(r),e())},setEsSwingLen(r){n()||(t.set_es_swing_len(r),e())},setEsShowBos(r){n()||(t.set_es_show_bos(r),e())},enableLiveSignals(){n()||(t.enable_live_signals(),e())},disableLiveSignals(){n()||(t.disable_live_signals(),e())},isLiveSignalsEnabled(){if(n())return!1;try{return t.is_live_signals_enabled()}catch{return!1}},setLiveSignalsData(r){n()||(t.set_live_signals_data(new Float64Array(r)),e())},clearLiveSignals(){n()||(t.clear_live_signals(),e())},setLiveSignalsLeverage(r){n()||(t.set_live_signals_leverage(r),e())},getLiveSignalsLeverage(){if(n())return 10;try{return t.get_live_signals_leverage()}catch{return 10}},setLiveSignalsTrial(r){n()||(t.set_live_signals_trial(r),e())},setLiveSignalsShowEntry(r){n()||(t.set_live_signals_show_entry(r),e())},setLiveSignalsShowTpSl(r){n()||(t.set_live_signals_show_tp_sl(r),e())},setLiveSignalsShowMaxProfit(r){n()||(t.set_live_signals_show_max_profit(r),e())},setLiveSignalsShowLabels(r){n()||(t.set_live_signals_show_labels(r),e())},setLiveSignalsShowZones(r){n()||(t.set_live_signals_show_zones(r),e())},setLiveSignalsTextSize(r){n()||(t.set_live_signals_text_size(r),e())},setLiveSignalsPipValue(r){n()||(t.set_live_signals_pip_value(r),e())},setLiveSignalsLoading(r){n()||(t.set_live_signals_loading(r),e())},getLiveSignalsCount(){if(n())return 0;try{return t.get_live_signals_count()}catch{return 0}},enableVpin(){n()||h("vpin")&&(t.enable_vpin(),e())},disableVpin(){n()||(t.disable_vpin(),e())},isVpinEnabled(){if(n())return!1;try{return t.is_vpin_enabled()}catch{return!1}},setVpinData(r,a){n()||(t.set_vpin_data(r,a),e())},setVpinBucketSize(r){n()||(t.set_vpin_bucket_size(r),e())},getVpinBucketSize(){if(n())return 50;try{return t.get_vpin_bucket_size()}catch{return 50}},setVpinNumBuckets(r){n()||(t.set_vpin_num_buckets(r),e())},getVpinNumBuckets(){if(n())return 50;try{return t.get_vpin_num_buckets()}catch{return 50}},setVpinThreshold(r){n()||(t.set_vpin_threshold(r),e())},getVpinThreshold(){if(n())return .7;try{return t.get_vpin_threshold()}catch{return .7}},setVpinShowSma(r){n()||(t.set_vpin_show_sma(r),e())},setVpinShowZones(r){n()||(t.set_vpin_show_zones(r),e())},enableStopIceberg(){n()||h("stopIceberg")&&(t.enable_stop_iceberg(),e())},disableStopIceberg(){n()||(t.disable_stop_iceberg(),e())},isStopIcebergEnabled(){if(n())return!1;try{return t.is_stop_iceberg_enabled()}catch{return!1}},setSiShowStops(r){n()||(t.set_si_show_stops(r),e())},setSiShowIcebergs(r){n()||(t.set_si_show_icebergs(r),e())},setSiShowZones(r){n()||(t.set_si_show_zones(r),e())},setIcebergEvents(r,a,s,i,u,f){n()||(t.set_iceberg_events(r,a,s,i,u,f),e())},getStopRunCount(){if(n())return 0;try{return t.get_stop_run_count()}catch{return 0}},getIcebergCount(){if(n())return 0;try{return t.get_iceberg_count()}catch{return 0}},enableVolume(){t.enable_volume(),e()},disableVolume(){t.disable_volume(),e()},isVolumeEnabled(){return t.is_volume_enabled()},setVolumeMaPeriod(r){t.set_volume_ma_period(r),e()},setVolumeShowMa(r){t.set_volume_show_ma(r),e()},setVolumeShowSignals(r){t.set_volume_show_signals(r),e()},setVolumeColorMode(r){t.set_volume_color_mode(r),e()},getVolumeMaPeriod(){return t.get_volume_ma_period()},getVolumeShowMa(){return t.get_volume_show_ma()},getVolumeShowSignals(){return t.get_volume_show_signals()},getVolumeColorMode(){return t.get_volume_color_mode()},enableObSignals(){t.enable_ob_signals(),e()},disableObSignals(){t.disable_ob_signals(),e()},isObSignalsEnabled(){return t.is_ob_signals_enabled()},setObsShowWalls(r){t.set_obs_show_walls(r),e()},setObsShowGaps(r){t.set_obs_show_gaps(r),e()},setObsShowAlerts(r){t.set_obs_show_alerts(r),e()},setObsShowCom(r){t.set_obs_show_com(r),e()},setObsWalls(r,a){t.set_obs_walls(new Float64Array(r),new Float64Array(a)),e()},setObsGaps(r,a){t.set_obs_gaps(new Float64Array(r),new Float64Array(a)),e()},pushObsAlert(r,a,s,i,u){t.push_obs_alert(r,a,s,i,u),e()},setObsCom(r){t.set_obs_com(r),e()},clearObSignals(){t.clear_ob_signals(),e()},enableObFlow(){t.enable_ob_flow(),e()},disableObFlow(){t.disable_ob_flow(),e()},isObFlowEnabled(){return t.is_ob_flow_enabled()},setObfShowObi(r){t.set_obf_show_obi(r),e()},setObfShowNetFlow(r){t.set_obf_show_net_flow(r),e()},setObfShowCumDelta(r){t.set_obf_show_cum_delta(r),e()},pushObfSample(r,a,s,i){t.push_obf_sample(r,a,s,i),e()},setObfData(r){t.set_obf_data(new Float64Array(r)),e()},clearObFlow(){t.clear_ob_flow(),e()},setObfRatio(r){t.set_obf_ratio(r),e()},getObfRatio(){return t.get_obf_ratio()},enableObMicro(){t.enable_ob_micro(),e()},disableObMicro(){t.disable_ob_micro(),e()},isObMicroEnabled(){return t.is_ob_micro_enabled()},setObmData(r,a,s,i,u,f,m,A,T,_,I,P,S){t.set_obm_data(r,a,s,i,u,f,m,A,T,_,I,P,S),e()},setObmAnchorTopRight(r){t.set_obm_anchor_top_right(r),e()},clearObMicro(){t.clear_ob_micro(),e()},enableAggLiq(){h("aggLiquidations")&&(t.enable_agg_liq(),e())},disableAggLiq(){t.disable_agg_liq(),e()},isAggLiqEnabled(){return t.is_agg_liq_enabled()},setAggLiqData(r){let a;if(r&&r.length>0&&typeof r[0]=="object"&&!Array.isArray(r[0])){a=new Float64Array(r.length*6);for(let s=0;s<r.length;s++){let i=r[s];a[s*6+0]=Number(i.time)||0,a[s*6+1]=Number(i.longUsd)||0,a[s*6+2]=Number(i.shortUsd)||0,a[s*6+3]=Number(i.longQty)||0,a[s*6+4]=Number(i.shortQty)||0,a[s*6+5]=Number(i.count)||0}}else a=new Float64Array(r||[]);t.set_agg_liq_data(a),e()},pushAggLiqBar(r,a,s,i,u,f){t.push_agg_liq_bar(r,a,s,i,u,f>>>0),e()},clearAggLiq(){t.clear_agg_liq(),e()},setAggLiqMode(r){t.set_agg_liq_mode(r),e()},getAggLiqMode(){return t.get_agg_liq_mode()},setAggLiqShowLong(r){t.set_agg_liq_show_long(r),e()},setAggLiqShowShort(r){t.set_agg_liq_show_short(r),e()},setAggLiqHover(r){t.set_agg_liq_hover(r|0),e()},aggLiqBarJson(r){let a=t.agg_liq_bar_json(r|0);if(!a)return null;try{return JSON.parse(a)}catch{return null}},setAggLiqRatio(r){t.set_agg_liq_ratio(r),e()},getAggLiqRatio(){return t.get_agg_liq_ratio()},screenToAggLiqY(r){return t.screen_to_agg_liq_y(r)},aggLiqToScreenY(r){return t.agg_liq_to_screen_y(r)},setAggLiqSignals(r){let a;if(r&&r.length>0&&typeof r[0]=="object"&&!Array.isArray(r[0])){a=new Float64Array(r.length*6);for(let s=0;s<r.length;s++){let i=r[s];a[s*6+0]=Number(i.time)/1e3,a[s*6+1]=fo[i.type]??-1,a[s*6+2]=uo[i.side]??0,a[s*6+3]=Number(i.volumeUsd)||0,a[s*6+4]=Number(i.ratio)||0,a[s*6+5]=Math.max(0,Math.min(1,Number(i.confidence)||0))}}else a=new Float64Array(r||[]);t.set_agg_liq_signals(a),e()},pushAggLiqSignal(r){if(!r||r.time==null||r.type==null)return;let a=fo[r.type];a!=null&&(t.push_agg_liq_signal(Number(r.time)/1e3,a,uo[r.side]??0,Number(r.volumeUsd)||0,Number(r.ratio)||0,Math.max(0,Math.min(1,Number(r.confidence)||0))),e())},clearAggLiqSignals(){t.clear_agg_liq_signals(),e()},setAggLiqShowSignals(r){t.set_agg_liq_show_signals(!!r),e()},isAggLiqShowSignals(){return t.is_agg_liq_show_signals()},setAggLiqSignalsOnChart(r){t.set_agg_liq_signals_on_chart(!!r),e()},isAggLiqSignalsOnChart(){return t.is_agg_liq_signals_on_chart()},enableMrdPullback(){n()||h("mrdPullback")&&(t.enable_mrd_pullback(),e())},disableMrdPullback(){n()||(t.disable_mrd_pullback(),e())},isMrdPullbackEnabled(){if(n())return!1;try{return t.is_mrd_pullback_enabled()}catch{return!1}},setMrdPullbackEntryMode(r){n()||(t.set_mrd_pullback_entry_mode(r),e())},setMrdPullbackTrendMode(r){n()||(t.set_mrd_pullback_trend_mode(r),e())},setMrdPullbackShowBand(r){n()||(t.set_mrd_pullback_show_band(r),e())},setMrdPullbackShowHiddenDiv(r){n()||(t.set_mrd_pullback_show_hidden_div(r),e())},setMrdPullbackSrMode(r){n()||(t.set_mrd_pullback_sr_mode(r),e())},setMrdPullbackTextSize(r){n()||(t.set_mrd_pullback_text_size(r),e())},setMrdPullbackTfMode(r){n()||(t.set_mrd_pullback_tf_mode(r),e())},setMrdPullbackHtfKlines(r,a,s,i,u,f){n()||(t.set_mrd_pullback_htf_klines(me(r),me(a),me(s),me(i),me(u),me(f)),e())},updateMrdPullbackLastHtfKline(r,a,s,i,u,f){n()||(t.update_mrd_pullback_last_htf_kline(r,a,s,i,u,f),e())},clearMrdPullbackHtfKlines(){n()||(t.clear_mrd_pullback_htf_klines(),e())},enableOiCvdPattern(){n()||(t.enable_oi_cvd_pattern(),e())},disableOiCvdPattern(){n()||(t.disable_oi_cvd_pattern(),e())},isOiCvdPatternEnabled(){if(n())return!1;try{return t.is_oi_cvd_pattern_enabled()}catch{return!1}},setOiCvdPatternKinds(r){if(n())return;let a=(Number(r)|0)&15;t.set_oi_cvd_pattern_kinds(a>>>0),e()},setOiCvdPatternThresholds(r){if(n()||!r)return;let a=(s,i)=>{let u=Number(s);return Number.isFinite(u)?u:i};t.set_oi_cvd_pattern_thresholds(a(r.lookback,20)>>>0,a(r.oiThresholdPct,3),a(r.priceCompressPct,1),a(r.cvdQuietFactor,.2),a(r.trapLookback,5)>>>0,a(r.trapOiPct,.2),a(r.cooldownBars,10)>>>0),e()},setOiCvdPatternShowLabels(r){n()||(t.set_oi_cvd_pattern_show_labels(!!r),e())},setOiCvdPatternTextSize(r){if(n())return;let a=Number(r);Number.isFinite(a)&&(t.set_oi_cvd_pattern_text_size(a),e())}}}var fo=Object.freeze({spike:0,capitulation:1,cascade_start:2,cascade_exhaustion:3,imbalance:4,silent_zone:5}),uo=Object.freeze({neutral:0,long:1,short:2}),Ta=Object.freeze({POC_REVERT_LONG:{code:1,bit:0,side:"long",label:"POC\u2191"},POC_REVERT_SHORT:{code:2,bit:1,side:"short",label:"POC\u2193"},VAL_BOUNCE:{code:3,bit:2,side:"long",label:"VAL\u2192"},VAH_REJECT:{code:4,bit:3,side:"short",label:"VAH\u2192"},VAH_BREAK:{code:5,bit:4,side:"long",label:"\u25B6VAH"},VAL_BREAK:{code:6,bit:5,side:"short",label:"\u25C0VAL"},HVN_BUY_IMBAL:{code:7,bit:6,side:"long",label:"+HVN"},HVN_SELL_IMBAL:{code:8,bit:7,side:"short",label:"-HVN"}}),Ea=Object.freeze({ROLLING:0,SESSION_DAY:1,AUTO:2,SESSION_3D:3,SESSION_WEEK:4,SESSION_MONTH:5}),Ca=Object.freeze({EXHAUSTION:1,ABSORPTION:2,DELTA_DIV:4,STRICT_CVD:8,ALL:15});function ho(t,e,n,o,h){let c=r=>o()(r),d=()=>{try{h?.()}catch{}},g=(r,a,s)=>r<=1&&a<=1&&s<=1&&(r>0||a>0||s>0)?[Math.round(r*255),Math.round(a*255),Math.round(s*255)]:[r&255,a&255,s&255];return{addMarker(r,a,s){d(),t.add_marker(r,a,s),e()},clearMarkers(){d(),t.clear_markers(),e()},hitTestMarker(r,a){return t.hit_test_marker(r,a)},selectMarker(r){t.select_marker(r),e()},deselectMarker(){t.deselect_marker(),e()},getSelectedMarker(){return t.get_selected_marker()},removeMarker(r){d(),t.remove_marker(r),e()},deleteSelectedMarker(){let r=t.get_selected_marker();return r>0&&(d(),t.remove_marker(r),e()),r},addTrendline(r,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_trendline(r,a,s,i,I,P,S,A,T,_);return e(),C},addImage(r,a,s,i,u,f,m,A,T=0){d();let[_,I,P]=g(f,m,A),S=t.add_image(r>>>0,a,s,i,u,_,I,P,T);return e(),S},getDrawingImageId(r){try{return t.get_drawing_image_id(r>>>0)}catch{return 0}},listImageDrawingIds(){try{let r=t.list_image_ids();return Array.from(r||[])}catch{return[]}},addHorizontalLine(r,a,s,i,u,f,m,A=0){d();let[T,_,I]=g(s,i,u),P=t.add_horizontal_line(r,a,T,_,I,f,m,A);return e(),P},addVerticalLine(r,a,s,i,u,f,m=0){d();let[A,T,_]=g(a,s,i),I=t.add_vertical_line(r,A,T,_,u,f,m);return e(),I},addArrow(r,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_arrow(r,a,s,i,I,P,S,A,T,_);return e(),C},addArrowMarker(r,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_arrow_marker(r,a,s,i,I,P,S,A,T,_);return e(),C},addPriceRangeMeasure(r,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_price_range_measure(r,a,s,i,I,P,S,A,T,_);return e(),C},addDayRangeMeasure(r,a,s,i,u,f,m,A,T,_=0){d();let[I,P,S]=g(u,f,m),C=t.add_day_range_measure(r,a,s,i,I,P,S,A,T,_);return e(),C},addFibRetracement(r,a,s,i,u,f,m,A,T,_=0){if(!c("drawingFull"))return 0;d();let[I,P,S]=g(u,f,m),C=t.add_fib_retracement(r,a,s,i,I,P,S,A,T,_);return e(),C},addFibExtension(r,a,s,i,u,f,m,A,T,_,I,P=0){if(!c("drawingFull"))return 0;d();let[S,C,B]=g(m,A,T),V=t.add_fib_extension(r,a,s,i,u,f,S,C,B,_,I,P);return e(),V},addLongPosition(r,a,s,i,u,f,m,A,T,_=0){if(!c("drawingFull"))return 0;d();let[I,P,S]=g(u,f,m),C=t.add_long_position(r,a,s,i,I,P,S,A,T,_);return e(),C},addShortPosition(r,a,s,i,u,f,m,A,T,_=0){if(!c("drawingFull"))return 0;d();let[I,P,S]=g(u,f,m),C=t.add_short_position(r,a,s,i,I,P,S,A,T,_);return e(),C},addAnchoredVwap(r,a,s,i,u,f,m=0){if(!c("drawingFull"))return 0;d();let[A,T,_]=g(a,s,i),I=t.add_anchored_vwap(r,A,T,_,u,f,m);return e(),I},setVwapRenderConfig(r){if(!(n()||!r))try{t.set_vwap_render_config(JSON.stringify(r)),e()}catch(a){console.warn("[bridge] setVwapRenderConfig failed",a)}},setFibRenderConfig(r){if(!(n()||!r))try{t.set_fib_render_config(JSON.stringify(r)),e()}catch(a){console.warn("[bridge] setFibRenderConfig failed",a)}},setFibExtRenderConfig(r){if(!(n()||!r))try{t.set_fib_ext_render_config(JSON.stringify(r)),e()}catch(a){console.warn("[bridge] setFibExtRenderConfig failed",a)}},addPriceLabel(r,a,s,i,u,f,m=0){d();let[A,T,_]=g(s,i,u),I=t.add_price_label(r,a,A,T,_,f,m);return e(),I},addTextNote(r,a,s,i,u,f,m=0){d();let[A,T,_]=g(s,i,u),I=t.add_text_note(r,a,A,T,_,f,m);return e(),I},addElliottImpulse(r,a,s,i,u,f,m=0){if(!c("drawingFull"))return 0;d();let[A,T,_]=g(s,i,u),I=t.add_elliott_impulse(r,a,A,T,_,f,m);return e(),I},addElliottAutoRange(r,a,s,i,u,f,m,A,T,_=0){if(!c("drawingFull"))return 0;d();let[I,P,S]=g(u,f,m),C=t.add_elliott_auto_range(r,a,s,i,I,P,S,A,T,_);return e(),C},setElliottAutoConfig(r,a,s){try{t.set_elliott_auto_config(!!r,(a|0)>>>0,Number.isFinite(s)?s:1),e()}catch(i){console.warn("[bridge] setElliottAutoConfig failed",i)}},refreshElliottAuto(){try{t.refresh_elliott_auto_drawings(),e()}catch{}},setDrawingFontSize(r,a){d(),t.set_drawing_font_size(r,a),e()},getDrawingFontSize(r){return t.get_drawing_font_size(r)},setDrawingText(r,a){d(),t.set_drawing_text(r,a),e()},getDrawingText(r){return t.get_drawing_text(r)},setDrawingStyle(r,a,s,i,u){d();let[f,m,A]=g(a,s,i);t.set_drawing_style(r,f,m,A,u),e()},getDrawingColor(r){let a=t.get_drawing_color(r);return a?{r:a>>>24&255,g:a>>>16&255,b:a>>>8&255,lineWidth:(a&255)/10}:null},getDrawingDashed(r){try{return t.get_drawing_dashed(r)}catch{return!1}},setDrawingDashed(r,a){d(),t.set_drawing_dashed(r,a),e()},getDrawingHideLabel(r){try{return t.get_drawing_hide_label(r)}catch{return!1}},setDrawingHideLabel(r,a){d(),t.set_drawing_hide_label(r,a),e()},getDrawingBgColor(r){try{let a=t.get_drawing_bg_color(r)>>>0;return a===0?null:{r:a>>16&255,g:a>>8&255,b:a&255}}catch{return null}},setDrawingBgColor(r,a,s,i){d();let[u,f,m]=g(a,s,i);t.set_drawing_bg_color(r,u,f,m),e()},clearDrawingBgColor(r){d(),t.clear_drawing_bg_color(r),e()},getDrawingFlipLeft(r){try{return t.get_drawing_flip_left(r)}catch{return!1}},setDrawingFlipLeft(r,a){d();try{t.set_drawing_flip_left(r,a),e()}catch{}},getDrawingTextWrap(r){try{return t.get_drawing_text_wrap(r)}catch{return!1}},setDrawingTextWrap(r,a){d();try{t.set_drawing_text_wrap(r,a),e()}catch{}},getDrawingKindId(r){try{return t.get_drawing_kind_id(r)}catch{return 255}},removeDrawing(r){d(),t.remove_drawing(r),e()},clearDrawings(){d(),t.clear_drawings(),e()},drawingCount(){return t.drawing_count()},setDrawingPreview(r,a,s,i,u,f,m,A,T,_,I=0){let[P,S,C]=g(f,m,A);t.set_drawing_preview(r,a,s,i,u,P,S,C,T,_,I),e()},clearDrawingPreview(){t.clear_drawing_preview(),e()},cancelBrush(){t.cancel_brush(),e()},selectDrawing(r){t.select_drawing(r),e()},deselectDrawing(){t.deselect_drawing(),e()},getSelectedDrawing(){return t.get_selected_drawing()},deleteSelectedDrawing(){let r=t.get_selected_drawing();return r>0&&(d(),t.remove_drawing(r),e()),r},exportDrawingsJson(){try{return t.export_drawings_json()}catch{return"[]"}},importDrawingsJson(r){try{t.import_drawings_json(r),e()}catch(a){console.warn("[bridge] importDrawingsJson failed",a)}},exportDrawingById(r){try{return t.export_drawing_by_id(r)}catch{return""}},pasteDrawingJson(r,a=30,s=30){if(typeof r!="string"||r.length===0)return 0;try{d();let i=t.paste_drawing_json(r,a,s);return i>0&&e(),i>>>0}catch(i){return console.warn("[bridge] pasteDrawingJson failed",i),0}},screenToWorld(r,a){return{x:t.screen_to_world_x(r),y:t.screen_to_world_y(a)}},worldToScreen(r,a){try{return{x:t.world_to_screen_x(r),y:t.world_to_screen_y(a)}}catch{return null}}}}var At=t=>t instanceof Float64Array?t:new Float64Array(t);function po(t,e,n,o){let h=c=>o()(c);return{setKlines(c,d,g,r,a,s){n()||(t.set_klines(At(c),At(d),At(g),At(r),At(a),At(s)),e())},setKlinesPreserveViewport(c,d,g,r,a,s){n()||(t.set_klines_preserve_viewport(At(c),At(d),At(g),At(r),At(a),At(s)),e())},setRealTimestamps(c){n()||(t.set_real_timestamps(At(c)),e())},appendRealTimestamp(c){n()||t.append_real_timestamp(c)},prependKlines(c,d,g,r,a,s){n()||(t.prepend_klines(At(c),At(d),At(g),At(r),At(a),At(s)),e())},appendKline(c,d,g,r,a,s){n()||(t.append_kline(c,d,g,r,a,s),e())},updateLastKline(c,d,g,r,a,s){n()||(t.update_last_kline(c,d,g,r,a,s),e())},updateKlineAt(c,d,g,r,a,s,i){if(!n()){try{t.update_kline_at(c,d,g,r,a,s,i)}catch{}e()}},popLastKline(){if(n())return!1;let c=t.pop_last_kline();return c&&e(),!!c},getLastClose(){try{return t.get_last_close()}catch{return 0}},getKlineCount(){if(n())return 0;try{return t.kline_count()}catch{return 0}},getKlineTimestamps(){if(n())return null;try{return t.kline_timestamps()}catch{return null}},getKlineOpens(){if(n())return null;try{return t.kline_opens()}catch{return null}},getKlineHighs(){if(n())return null;try{return t.kline_highs()}catch{return null}},getKlineLows(){if(n())return null;try{return t.kline_lows()}catch{return null}},getKlineCloses(){if(n())return null;try{return t.kline_closes()}catch{return null}},getKlineVolumes(){if(n())return null;try{return t.kline_volumes()}catch{return null}},setHeatmap(c,d,g,r,a,s,i){n()||h("heatmap")&&(t.set_heatmap(At(c),d,g,r,a,s,i),e())},appendHeatmapColumn(c,d,g,r){n()||h("heatmap")&&(t.append_heatmap_column(At(c),d,g,r),e())},updateLastHeatmapColumn(c,d,g){n()||(t.update_last_heatmap_column(At(c),d,g),e())},getHeatmapLastTimestamp(){if(n())return 0;try{return t.get_heatmap_last_timestamp()??0}catch{return 0}},getHeatmapXStep(){if(n())return 0;try{return t.get_heatmap_x_step()??0}catch{return 0}},updateHeatmapColumnAt(c,d,g,r){n()||(t.update_heatmap_column_at(At(c),d,g,r),e())},setHeatmapRange(c,d){n()||(t.set_heatmap_range(c,d),e())},getHeatmapDataRange(){try{return{min:t.get_heatmap_data_min(),max:t.get_heatmap_data_max()}}catch{return{min:0,max:0}}},setHeatmapPrefetchRange(c){try{t.set_heatmap_prefetch_range(c)}catch{}},clearHeatmapPrefetchRange(){try{t.clear_heatmap_prefetch_range()}catch{}},getHeatmapPrefetchMax(){try{return t.get_heatmap_prefetch_max()}catch{return 0}},setHeatmapColorScheme(c){try{t.set_heatmap_color_scheme(c),e()}catch{}},setHeatmapShowProfile(c){try{t.set_heatmap_show_profile(c),e()}catch{}},isHeatmapShowProfile(){try{return t.is_heatmap_show_profile()}catch{return!1}},setHeatmapProfileBrightness(c){try{t.set_heatmap_profile_brightness(Number(c)||1),e()}catch{}},getHeatmapProfileBrightness(){try{return t.get_heatmap_profile_brightness()}catch{return 1}},setHeatmapProfileBarLength(c){try{t.set_heatmap_profile_bar_length(Number(c)||1),e()}catch{}},getHeatmapProfileBarLength(){try{return t.get_heatmap_profile_bar_length()}catch{return 1}},setHeatmapWalls(c){try{t.set_heatmap_walls(new Float64Array(c)),e()}catch{}},clearHeatmapWalls(){try{t.clear_heatmap_walls(),e()}catch{}},getHeatmapWallCount(){try{return t.get_heatmap_wall_count()}catch{return 0}},setChartType(c){n()||c===2&&!h("footprint")||(t.set_chart_type(c),e())},getChartType(){if(n())return 0;try{return t.get_chart_type()}catch{return 0}},setFootprintTickSize(c){n()||h("footprint")&&(t.set_footprint_tick_size(c),e())},footprintSetFontScale(c){if(n()||!h("footprint"))return;let d=Number.isFinite(+c)?+c:1;try{t.footprint_set_font_scale(d)}catch{}e()},footprintEnsureLen(c){n()||t.footprint_ensure_len(c)},footprintAddTrade(c,d,g,r){n()||t.footprint_add_trade(c,d,g,r)},footprintAddTradeBatch(c){n()||!c||c.length===0||t.footprint_add_trade_batch(At(c))},footprintSetBar(c,d,g,r,a){n()||(t.footprint_set_bar(c,d,g,r,a),e())},footprintClear(){n()||(t.footprint_clear(),e())},footprintClearBar(c){n()||t.footprint_clear_bar(c)},footprintPrependEmpty(c){n()||t.footprint_prepend_empty(c)},footprintSetSignalKindsMask(c){if(!n()&&h("footprint")){try{t.footprint_set_signal_kinds_mask((c|0)&255)}catch{}e()}},footprintSetPocMarkerStyle(c){if(n()||!h("footprint"))return;let d=Math.max(0,Math.min(3,c|0));try{t.footprint_set_poc_marker_style(d)}catch{}e()},footprintSetNakedPocEnabled(c){if(!n()&&h("footprint")){try{t.footprint_set_naked_poc_enabled(!!c)}catch{}e()}},footprintSetMinCellVolumePct(c){if(n()||!h("footprint"))return;let d=Number.isFinite(+c)?Math.max(0,Math.min(100,+c)):0;try{t.footprint_set_min_cell_volume_pct(d)}catch{}e()},footprintSetShowSignals(c){n()||(t.footprint_set_show_signals(c),e())},footprintGetShowSignals(){if(n())return!0;try{return t.footprint_get_show_signals()}catch{return!0}},footprintSignalCount(){if(n())return 0;try{return t.footprint_signal_count()}catch{return 0}},footprintSetShowProfile(c){n()||(t.footprint_set_show_profile(c),e())},footprintGetShowProfile(){if(n())return!1;try{return t.footprint_get_show_profile()}catch{return!1}},footprintSetProfileScope(c){if(!n()){try{t.footprint_set_profile_scope((c|0)&255)}catch{}e()}},footprintGetProfileScope(){if(n())return 1;try{return t.footprint_get_profile_scope()}catch{return 1}},footprintSetProfileLookbackBars(c){if(n())return;let d=Math.max(5,Math.min(5e3,c|0));try{t.footprint_set_profile_lookback_bars(d)}catch{}e()},footprintSetVolumeUnitIsUsd(c){if(!n()){try{t.footprint_set_volume_unit_is_usd?.(!!c)}catch{}e()}},footprintGetVolumeUnitIsUsd(){if(n())return!1;try{return!!t.footprint_get_volume_unit_is_usd?.()}catch{return!1}},footprintGetProfileLookbackBars(){if(n())return 100;try{return t.footprint_get_profile_lookback_bars()}catch{return 100}},footprintProfileHitTest(c,d){if(n())return"";try{return t.footprint_profile_hit_test(c,d)}catch{return""}},footprintSetDisplayMode(c){n()||(t.footprint_set_display_mode(c),e())},footprintGetDisplayMode(){if(n())return 0;try{return t.footprint_get_display_mode()}catch{return 0}},footprintSetCellShape(c){if(!n()){try{t.footprint_set_cell_shape((c|0)===1?1:0)}catch{}e()}},footprintGetCellShape(){if(n())return 0;try{return t.footprint_get_cell_shape()}catch{return 0}},footprintSetBidColor(c){if(!n()){if(c==null)try{t.footprint_clear_bid_color()}catch{}else{let d=Math.max(0,Math.min(255,c.r|0)),g=Math.max(0,Math.min(255,c.g|0)),r=Math.max(0,Math.min(255,c.b|0));try{t.footprint_set_bid_color(d,g,r)}catch{}}e()}},footprintSetAskColor(c){if(!n()){if(c==null)try{t.footprint_clear_ask_color()}catch{}else{let d=Math.max(0,Math.min(255,c.r|0)),g=Math.max(0,Math.min(255,c.g|0)),r=Math.max(0,Math.min(255,c.b|0));try{t.footprint_set_ask_color(d,g,r)}catch{}}e()}},footprintSetColorIntensity(c){if(n())return;let d=Number.isFinite(+c)?+c:1;try{t.footprint_set_color_intensity(d)}catch{}e()},footprintGetColorIntensity(){if(n())return 1;try{return t.footprint_get_color_intensity()}catch{return 1}},footprintGetTooltipRect(){if(n())return null;try{let c=t.footprint_tooltip_rect();if(!c||c.length!==4)return null;let d=+c[2],g=+c[3];return!Number.isFinite(d)||!Number.isFinite(g)||d<=0||g<=0?null:{x:+c[0],y:+c[1],w:d,h:g}}catch{return null}},footprintGetProfileTooltipRect(){if(n())return null;try{let c=t.footprint_profile_tooltip_rect();if(!c||c.length!==4)return null;let d=+c[2],g=+c[3];return!Number.isFinite(d)||!Number.isFinite(g)||d<=0||g<=0?null:{x:+c[0],y:+c[1],w:d,h:g}}catch{return null}},footprintSetTooltipEnabled(c){if(!n())try{t.set_footprint_tooltip_enabled(!!c)}catch(d){console.error("[bridgeData] footprintSetTooltipEnabled failed:",d)}},footprintSetProfileTooltipEnabled(c){if(!n())try{t.set_footprint_profile_tooltip_enabled(!!c)}catch(d){console.error("[bridgeData] footprintSetProfileTooltipEnabled failed:",d)}},footprintSetStackedImbalanceEnabled(c){n()||(t.footprint_set_stacked_imbalance_enabled(!!c),e())},footprintGetStackedImbalanceEnabled(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_enabled()}catch{return!1}},footprintSetStackedImbalanceMode(c){n()||(t.footprint_set_stacked_imbalance_mode(c|0),e())},footprintSetStackedImbalanceRatio(c){n()||(t.footprint_set_stacked_imbalance_ratio(Number(c)||2.3),e())},footprintSetStackedImbalanceMinStack(c){n()||(t.footprint_set_stacked_imbalance_min_stack(Math.max(2,c|0)),e())},footprintSetStackedImbalanceShowFilled(c){n()||(t.footprint_set_stacked_imbalance_show_filled(!!c),e())},footprintSetStackedImbalanceShowBox(c){n()||(t.footprint_set_stacked_imbalance_show_box(!!c),e())},footprintSetStackedImbalanceMaxAge(c){n()||(t.footprint_set_stacked_imbalance_max_age(Math.max(0,c|0)),e())},footprintSetStackedImbalanceHighlightCells(c){if(!n()){try{t.footprint_set_stacked_imbalance_highlight_cells(!!c)}catch{}e()}},footprintGetStackedImbalanceHighlightCells(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_highlight_cells()}catch{return!1}},footprintSetStackedImbalanceShowBracket(c){if(!n()){try{t.footprint_set_stacked_imbalance_show_bracket(!!c)}catch{}e()}},footprintGetStackedImbalanceShowBracket(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_show_bracket()}catch{return!1}},footprintSetStackedImbalanceShowRay(c){if(!n()){try{t.footprint_set_stacked_imbalance_show_ray(!!c)}catch{}e()}},footprintGetStackedImbalanceShowRay(){if(n())return!1;try{return t.footprint_get_stacked_imbalance_show_ray()}catch{return!1}},footprintStackedZoneCount(){if(n())return 0;try{return t.footprint_stacked_zone_count()}catch{return 0}},footprintRecomputeStackedImbalances(){if(!n()){try{t.footprint_recompute_stacked_imbalances()}catch{}e()}},enableDeltaHistogram(){n()||t.enable_delta_histogram()},disableDeltaHistogram(){n()||t.disable_delta_histogram()},deltaHistogramEnabled(){if(n())return!1;try{return t.delta_histogram_enabled()}catch{return!1}}}}var js=1,yr=new Map,Qs=4096,Jr=Object.freeze({r:255,g:255,b:255,a:153});function Js(t){if(typeof t!="string")return Jr;if(t.charCodeAt(0)===35){let n=t.slice(1);return n.length===8?Object.freeze({r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16),a:parseInt(n.slice(6,8),16)}):Object.freeze({r:parseInt(n.slice(0,2),16),g:parseInt(n.slice(2,4),16),b:parseInt(n.slice(4,6),16),a:255})}let e=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\)/);return e?Object.freeze({r:+e[1],g:+e[2],b:+e[3],a:e[4]!==void 0?Math.round(+e[4]*255):255}):Jr}function $(t){if(typeof t!="string")return Jr;let e=yr.get(t);if(e!==void 0)return e;yr.size>=Qs&&yr.clear();let n=Js(t);return yr.set(t,n),n}var ar=null,Sr=new Map,Ds=512;function ti(t,e){if(t==null)return 0;let n=String(t),o=`${e}|${n}`,h=Sr.get(o);if(h!==void 0)return h;if(ar===null){if(typeof document>"u")return 0;let d=document.createElement("canvas");if(d.width=d.height=8,ar=d.getContext("2d"),!ar)return 0}ar.font=`${Math.round(e)}px "IBM Plex Mono",monospace`;let c=ar.measureText(n).width;return Sr.size>=Ds&&Sr.clear(),Sr.set(o,c),c}function ei(){}function Dr(t,e,n,o){let h=typeof o=="function"?o:ei,c=new Map,d=null,g=0,r=NaN,a=NaN,s=0,i=0,u=0,f=null,m={tbv:!1,oi:!1,fr:!1};function A(){let l=!1,w=!1,p=!1;for(let y of c.values())if(y.enabled&&(y._needsTakerBuy&&(l=!0),y._needsOpenInterest&&(w=!0),y._needsFundingRate&&(p=!0),l&&w&&p))break;return{tbv:l,oi:w,fr:p}}function T(){let l=A(),w=!m.tbv&&l.tbv||!m.oi&&l.oi||!m.fr&&l.fr;if(m=l,w&&typeof f=="function")try{f({...l})}catch(p){console.warn("[CustomIndicator] dsl-deriv-needed callback failed:",p)}}let _=300,I=16,P=500,S=500,C=100,B=100,V=500,x=100,O=100,Y=500;function G(){let l;try{l=t.kline_count()}catch{return d}if(l===0)return null;i!==u&&(u=i,d=null,g=-1,r=NaN,a=NaN);let w=t.kline_closes(),p=w?.[l-1]??NaN,y=l!==g,b=d==null,E=NaN,L=(()=>{if(y||b)return!1;if(p!==r)return!0;try{E=t.kline_highs()?.[l-1]??NaN}catch{}return E!==a})();if(!y&&!b&&!L)return d;if(L){let N=!1;for(let H of c.values())if(H.calcOnEveryTick&&!H._heavyCompute&&H.enabled){N=!0;break}if(!N||performance.now()-s<_)return r=p,isNaN(E)||(a=E),d}try{let N=t.kline_timestamps(),R=t.kline_opens(),H=t.kline_highs(),U=t.kline_lows(),it=t.kline_volumes();if(!N||!w)return d;let M=(ut,Yt)=>{if(!ut||ut.length===0)return[];if(ut.length===Yt)return Array.from(ut);let ye=new Array(Yt),Pt=Math.min(ut.length,Yt);for(let jt=0;jt<Pt;jt++)ye[jt]=ut[jt];for(let jt=Pt;jt<Yt;jt++)ye[jt]=NaN;return ye},W=M(t.kline_taker_buy_volume?.()??[],l),j=M(t.kline_oi_aligned?.()??[],l),rt=M(t.kline_fr_aligned?.()??[],l);d={timestamps:Array.from(N),open:Array.from(R),high:Array.from(H),low:Array.from(U),close:Array.from(w),volume:Array.from(it),taker_buy_volume:W,open_interest:j,funding_rate:rt,length:l},g=l,r=p,a=isNaN(E)?H?.[l-1]??NaN:E,s=performance.now();let ht=L&&!y&&!b;for(let ut of c.values())ut.enabled&&(ht?ut.calcOnEveryTick&&!ut._heavyCompute&&(ut._needsCompute=!0):ut._needsCompute=!0)}catch{}return d}let st=new WeakMap;function Q(l){if(l instanceof Float64Array)return l;if(!Array.isArray(l))return new Float64Array(0);let w=st.get(l);if(w&&w.length===l.length)return w;w=new Float64Array(l.length);for(let p=0;p<l.length;p++)w[p]=l[p];return st.set(l,w),w}function dt(l){return l instanceof Uint32Array?l:new Uint32Array(l||[])}function _t(l){if(typeof l=="number")return(l|0)&15;switch(l){case"left":return 1;case"right":return 2;case"both":return 3;case"up":return 4;case"down":return 8;default:return 0}}function mt(l){switch(l){case"below":return 1;case"above":return 2;case"left":return 3;case"right":return 4;default:return 0}}function X(l){switch(l){case"triangleUp":return 1;case"triangleDown":return 2;case"square":return 3;case"diamond":return 4;case"cross":return 5;case"xcross":return 6;case"arrowUp":return 7;case"arrowDown":return 8;default:return 0}}let Z=0,J=null,D=new Map,ot=null,ct=new Map,gt={slotLabel:C,slotBox:S,slotLine:P,slotPolyline:B,slotTrendline:Y,slotHline:V,slotFibRet:x,slotChannel:O};function Mt(l){if(!Array.isArray(l)||l.length===0)return;let w=Object.create(null),p=new Uint8Array(l.length),y=!1;for(let E=l.length-1;E>=0;E--){let L=l[E],N=gt[L?.kind];if(!N)continue;let R=w[L.kind]||0;R>=N?(p[E]=1,y=!0):w[L.kind]=R+1}if(!y)return;let b=0;for(let E=0;E<l.length;E++)p[E]||(l[b++]=l[E]);l.length=b}function Ct(l,w,p,y){if(p<=0)return;let b=0,E=null;for(let[L,N]of l)N.kind===w&&(b++,E===null&&(E=L));if(!(b<p))for(;b>=p&&E!==null;){let L=l.get(E);if(L){try{y(L.id)}catch{}l.delete(E)}b--,E=null;for(let[N,R]of l)if(R.kind===w){E=N;break}}}let ft=l=>t.script_object_delete(l),Ot=l=>t.script_drawing_delete(l);function Zt(){return{seriesLine(l,w="#ffffff99",p=1.5){let y=$(w);t.custom_series_line(Q(l),y.r,y.g,y.b,y.a,p)},seriesDashedLine(l,w="#ffffff66",p=1,y=4,b=4){let E=$(w);t.custom_series_dashed_line(Q(l),E.r,E.g,E.b,E.a,p,y,b)},band(l,w,p="rgba(100,149,237,0.08)"){let y=$(p);t.custom_band(Q(l),Q(w),y.r,y.g,y.b,y.a)},seriesCandles(l,w,p,y,b="#089981",E="#F23645",L,N){let R=$(b),H=$(E),U=L!=null?$(L):{r:0,g:0,b:0,a:0},it=Number.isFinite(N)&&N>0?N:0;t.custom_candles(Q(l),Q(w),Q(p),Q(y),R.r,R.g,R.b,R.a,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it)},hline(l,w="#ffffff66",p=1){let y=$(w);t.custom_hline(l,y.r,y.g,y.b,y.a,p)},dashedHline(l,w="#ffffff66",p=1,y=6,b=4){let E=$(w);t.custom_dashed_hline(l,E.r,E.g,E.b,E.a,p,y,b)},marker(l,w,p="#e8a04a",y=3){let b=$(p);t.custom_marker(l,w,b.r,b.g,b.b,b.a,y)},markerUp(l,w,p="#26a69a",y=5){let b=$(p);t.custom_marker_up(l,w,b.r,b.g,b.b,b.a,y)},markerDown(l,w,p="#ef5350",y=5){let b=$(p);t.custom_marker_down(l,w,b.r,b.g,b.b,b.a,y)},text(l,w,p,y="#ffffffaa",b=10,E="center"){let L=$(y),N=E==="center"?1:E==="right"?2:0;t.custom_text(l,w,p,L.r,L.g,L.b,L.a,b,N)},priceLabel(l,w,p="#ffffffaa",y=10){let b=$(p);t.custom_price_label(l,w,b.r,b.g,b.b,b.a,y)},linePx(l,w,p,y,b,E=1){let L=$(b);t.custom_line_px(l,w,p,y,L.r,L.g,L.b,L.a,E)},fillRectPx(l,w,p,y,b){let E=$(b);t.custom_fill_rect_px(l,w,p,y,E.r,E.g,E.b,E.a)},fillRoundRectPx(l,w,p,y,b,E){let L=$(E);t.custom_fill_round_rect_px(l,w,p,y,b,L.r,L.g,L.b,L.a)},strokeRectPx(l,w,p,y,b,E=1){let L=$(b);t.custom_stroke_rect_px(l,w,p,y,L.r,L.g,L.b,L.a,E)},textPx(l,w,p,y,b=10,E="left"){let L=$(y),N=E==="center"?1:E==="right"?2:0;t.custom_text_px(l,w,p,L.r,L.g,L.b,L.a,b,N)},measureTextPx(l,w=10){return ti(l,w)},worldToScreenX:l=>t.world_to_screen_x(l),worldToScreenY:l=>t.world_to_screen_y(l),screenToWorldX:l=>t.screen_to_world_x(l),screenToWorldY:l=>t.screen_to_world_y(l),chartArea:()=>({x:t.chart_area_x(),y:t.chart_area_y(),w:t.chart_area_w(),h:t.chart_area_h()}),paneSeriesLine(l,w="#e8a04a",p=1.5){let y=$(w);t.custom_pane_series_line(Q(l),y.r,y.g,y.b,y.a,p)},paneSeriesDashedLine(l,w="#e8a04a99",p=1,y=4,b=4){let E=$(w);t.custom_pane_series_dashed_line(Q(l),E.r,E.g,E.b,E.a,p,y,b)},paneBand(l,w,p="rgba(232, 160, 74, 0.10)"){let y=$(p);t.custom_pane_band(Q(l),Q(w),y.r,y.g,y.b,y.a)},paneSeriesCandles(l,w,p,y,b="#089981",E="#F23645",L,N){let R=$(b),H=$(E),U=L!=null?$(L):{r:0,g:0,b:0,a:0},it=Number.isFinite(N)&&N>0?N:0;t.custom_pane_candles(Q(l),Q(w),Q(p),Q(y),R.r,R.g,R.b,R.a,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it)},paneHline(l,w="#ffffff44",p=1){let y=$(w);t.custom_pane_hline(l,y.r,y.g,y.b,y.a,p)},paneDashedHline(l,w="#ffffff44",p=1,y=4,b=4){let E=$(w);t.custom_pane_dashed_hline(l,E.r,E.g,E.b,E.a,p,y,b)},paneLabel(l,w,p="#ffffffaa",y=10,b="left"){let E=$(p),L=b==="center"?1:b==="right"?2:0;t.custom_pane_label(l,String(w),E.r,E.g,E.b,E.a,y,L)},line(l,w,p,y,b="#ffffff66",E=1,L=0,N=0,R=0){let H=$(b),U=_t(R);t.custom_line(l,w,p,y,H.r,H.g,H.b,H.a,E,L,N,U)},vline(l,w="#ffffff66",p=1,y=0,b=0){let E=$(w);t.custom_vline(l,E.r,E.g,E.b,E.a,p,y,b)},box(l,w,p,y,b={}){let E=$(b.bg??b.bgColor??"rgba(232,160,74,0.08)"),L=$(b.border??b.borderColor??"#ffffff44"),N=Number.isFinite(b.lineWidth)?b.lineWidth:1,R=!!b.dashed;t.custom_box(l,w,p,y,E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N,R)},label(l,w,p,y={}){let b=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),E=$(y.border??y.borderColor??"#ffffff44"),L=$(y.color??y.textColor??"#ffffffe0"),N=Number.isFinite(y.fontSize)?y.fontSize:11,R=Number.isFinite(y.lineWidth)?y.lineWidth:1,H=y.align==="center"?1:y.align==="right"?2:0,U=mt(y.anchor);t.custom_label(l,w,String(p),b.r,b.g,b.b,b.a,E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N,R,H,U)},polylineWorld(l,w,p="#e8a04a",y=1.5,b={}){let E=$(p),L=!!b.dashed,N=Number.isFinite(b.dash)?b.dash:4,R=Number.isFinite(b.gap)?b.gap:4;t.custom_polyline_world(Q(l),Q(w),E.r,E.g,E.b,E.a,y,L,N,R)},polygonWorld(l,w,p={}){let y=$(p.fill??p.bg??"rgba(232,160,74,0.18)"),b=$(p.border??"#e8a04a"),E=Number.isFinite(p.lineWidth)?p.lineWidth:1;t.custom_polygon_world(Q(l),Q(w),y.r,y.g,y.b,y.a,b.r,b.g,b.b,b.a,E)},arrow(l,w,p,y,b="#e8a04a",E=1.5,L=8){let N=$(b);t.custom_arrow(l,w,p,y,N.r,N.g,N.b,N.a,E,L)},shape(l,w,p={}){let y=X(p.shape),b=$(p.color??"#e8a04a"),E=Number.isFinite(p.size)?p.size:4;t.custom_shape_batch(dt(l),Q(w),y,b.r,b.g,b.b,b.a,E)},bgColor(l,w,p="rgba(232,160,74,0.05)"){let y=$(p),b=Array.isArray(l)?l:[l],E=Array.isArray(w)?w:[w];t.custom_bg_color_batch(dt(b),dt(E),y.r,y.g,y.b,y.a)},plotchar(l,w,p="\xB7",y="#e8a04a",b=10){let E=$(y);t.custom_plotchar_batch(dt(l),Q(w),String(p),E.r,E.g,E.b,E.a,b)},markersBatch(l,w,p=0,y="#e8a04a",b=5){let E=$(y);t.custom_markers_batch(dt(l),Q(w),p,E.r,E.g,E.b,E.a,b)},textsBatch(l,w,p,y="#ffffffaa",b=10,E="center"){let L=$(y),N=E==="center"?1:E==="right"?2:0;t.custom_texts_batch(dt(l),Q(w),String(p),L.r,L.g,L.b,L.a,b,N)},paneLine(l,w,p,y,b="#ffffff66",E=1,L=0,N=0,R=0){let H=$(b),U=_t(R);t.custom_pane_line(l,w,p,y,H.r,H.g,H.b,H.a,E,L,N,U)},paneVline(l,w="#ffffff66",p=1,y=0,b=0){let E=$(w);t.custom_pane_vline(l,E.r,E.g,E.b,E.a,p,y,b)},paneBox(l,w,p,y,b={}){let E=$(b.bg??b.bgColor??"rgba(232,160,74,0.08)"),L=$(b.border??b.borderColor??"#ffffff44"),N=Number.isFinite(b.lineWidth)?b.lineWidth:1,R=!!b.dashed;t.custom_pane_box(l,w,p,y,E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N,R)},paneLabelXY(l,w,p,y={}){let b=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),E=$(y.border??y.borderColor??"#ffffff44"),L=$(y.color??y.textColor??"#ffffffe0"),N=Number.isFinite(y.fontSize)?y.fontSize:11,R=Number.isFinite(y.lineWidth)?y.lineWidth:1,H=y.align==="center"?1:y.align==="right"?2:0,U=mt(y.anchor);t.custom_pane_label_xy(l,w,String(p),b.r,b.g,b.b,b.a,E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N,R,H,U)},setPaneYRange(l,w){!Number.isFinite(l)||!Number.isFinite(w)||t.set_custom_pane_y_range(l,w)},setPaneRatio(l){if(!(!Number.isFinite(l)||l<=0))try{t.set_custom_pane_ratio(l)}catch{}},paneArea:()=>({x:t.custom_pane_x(),y:t.custom_pane_y(),w:t.custom_pane_w(),h:t.custom_pane_h()}),paneYAxisArea:()=>({x:t.custom_pane_yaxis_x(),y:t.custom_pane_y(),w:t.custom_pane_yaxis_w(),h:t.custom_pane_h()}),paneYRange:()=>({min:t.custom_pane_y_min(),max:t.custom_pane_y_max()}),paneToScreenY:l=>t.custom_pane_to_screen_y(l),screenToPaneY:l=>t.screen_to_custom_pane_y(l),auxPaneSeriesLine(l,w,p="#e8a04a",y=1.5){let b=$(p);t.aux_pane_series_line(l,Q(w),b.r,b.g,b.b,b.a,y)},auxPaneBand(l,w,p,y="rgba(232,160,74,0.10)"){let b=$(y);t.aux_pane_band(l,Q(w),Q(p),b.r,b.g,b.b,b.a)},auxPaneHline(l,w,p="#ffffff44",y=1){let b=$(p);t.aux_pane_hline(l,w,b.r,b.g,b.b,b.a,y)},auxPaneLabel(l,w,p,y="#ffffffaa",b=10,E="right"){let L=$(y),N=E==="center"?1:E==="left"?0:2;t.aux_pane_label(l,w,String(p),L.r,L.g,L.b,L.a,b,N)},auxPaneLine(l,w,p,y,b,E="#ffffff66",L=1,N=0,R=0,H=0){let U=$(E),it=_t(H);t.aux_pane_line(l,w,p,y,b,U.r,U.g,U.b,U.a,L,N,R,it)},auxPaneBox(l,w,p,y,b,E={}){let L=$(E.bg??E.bgColor??"rgba(232,160,74,0.08)"),N=$(E.border??E.borderColor??"#ffffff44"),R=Number.isFinite(E.lineWidth)?E.lineWidth:1,H=!!E.dashed;t.aux_pane_box(l,w,p,y,b,L.r,L.g,L.b,L.a,N.r,N.g,N.b,N.a,R,H)},auxPaneLabelXY(l,w,p,y,b={}){let E=$(b.bg??b.bgColor??"rgba(13,15,19,0.92)"),L=$(b.border??b.borderColor??"#ffffff44"),N=$(b.color??b.textColor??"#ffffffe0"),R=Number.isFinite(b.fontSize)?b.fontSize:11,H=Number.isFinite(b.lineWidth)?b.lineWidth:1,U=b.align==="center"?1:b.align==="right"?2:0,it=mt(b.anchor);t.aux_pane_label_xy(l,w,p,String(y),E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N.r,N.g,N.b,N.a,R,H,U,it)},setAuxPaneYRange(l,w,p){!Number.isFinite(w)||!Number.isFinite(p)||t.set_aux_pane_y_range(l,w,p)},setAuxPaneRatio(l,w){if(!(!Number.isFinite(w)||w<=0))try{t.set_aux_pane_ratio(l,w)}catch{}},auxPaneArea:l=>({x:t.aux_pane_x(l),y:t.aux_pane_y(l),w:t.aux_pane_w(l),h:t.aux_pane_h(l)}),auxPaneYAxisArea:l=>({x:t.aux_pane_yaxis_x(l),y:t.aux_pane_y(l),w:t.aux_pane_yaxis_w(l),h:t.aux_pane_h(l)}),auxPaneYRange:l=>({min:t.aux_pane_y_min_get(l),max:t.aux_pane_y_max_get(l)}),auxPaneToScreenY:(l,w)=>t.aux_pane_to_screen_y(l,w),screenToAuxPaneY:(l,w)=>t.screen_to_aux_pane_y(l,w),scriptLabelNew(l,w,p,y={}){let b=Z;if(!b)return 0;let E=$(y.bg??y.bgColor??"rgba(13,15,19,0.92)"),L=$(y.border??y.borderColor??"#ffffff44"),N=$(y.color??y.textColor??"#ffffffe0"),R=Number.isFinite(y.fontSize)?y.fontSize:11,H=Number.isFinite(y.lineWidth)?y.lineWidth:1,U=y.align==="center"?1:y.align==="right"?2:0,it=mt(y.anchor),M=String(y.pane??"overlay");return t.script_label_new(b,M,l,w,String(p),E.r,E.g,E.b,E.a,L.r,L.g,L.b,L.a,N.r,N.g,N.b,N.a,R,H,U,it)},scriptLabelSetXY(l,w,p){l&&t.script_label_set_xy(l,w,p)},scriptLabelSetText(l,w){l&&t.script_label_set_text(l,String(w))},scriptLabelSetColor(l,w){if(!l)return;let p=$(w);t.script_label_set_color(l,p.r,p.g,p.b,p.a)},scriptLabelSetBg(l,w){if(!l)return;let p=$(w);t.script_label_set_bg(l,p.r,p.g,p.b,p.a)},scriptLabelSetVisible(l,w){l&&t.script_label_set_visible(l,!!w)},scriptBoxNew(l,w,p,y,b={}){let E=Z;if(!E)return 0;let L=$(b.bg??b.bgColor??"rgba(232,160,74,0.10)"),N=$(b.border??b.borderColor??"#ffffff44"),R=Number.isFinite(b.lineWidth)?b.lineWidth:1,H=!!b.dashed,U=_t(b.extend??0),it=String(b.pane??"overlay");return t.script_box_new(E,it,l,w,p,y,L.r,L.g,L.b,L.a,N.r,N.g,N.b,N.a,R,H,U)},scriptBoxSetCorners(l,w,p,y,b){l&&t.script_box_set_corners(l,w,p,y,b)},scriptBoxSetTop(l,w){l&&t.script_box_set_top(l,w)},scriptBoxSetBottom(l,w){l&&t.script_box_set_bottom(l,w)},scriptBoxSetRight(l,w){l&&t.script_box_set_right(l,w)},scriptBoxSetBg(l,w){if(!l)return;let p=$(w);t.script_box_set_bg(l,p.r,p.g,p.b,p.a)},scriptBoxSetBorder(l,w){if(!l)return;let p=$(w);t.script_box_set_border(l,p.r,p.g,p.b,p.a)},scriptBoxSetVisible(l,w){l&&t.script_box_set_visible(l,!!w)},scriptLineNew(l,w,p,y,b={}){let E=Z;if(!E)return 0;let L=$(b.color??"#F0B90B"),N=Number.isFinite(b.lineWidth)?b.lineWidth:1.5,R=Number.isFinite(b.dash)?b.dash:0,H=Number.isFinite(b.gap)?b.gap:0,U=_t(b.extend??0),it=String(b.pane??"overlay");return t.script_line_new(E,it,l,w,p,y,L.r,L.g,L.b,L.a,N,R,H,U)},scriptLineSetAnchors(l,w,p,y,b){l&&t.script_line_set_anchors(l,w,p,y,b)},scriptLineSetColor(l,w){if(!l)return;let p=$(w);t.script_line_set_color(l,p.r,p.g,p.b,p.a)},scriptLineSetExtend(l,w){l&&t.script_line_set_extend(l,_t(w))},scriptLineSetVisible(l,w){l&&t.script_line_set_visible(l,!!w)},scriptPolylineNew(l,w,p={}){let y=Z;if(!y)return 0;let b=$(p.color??"#F0B90B"),E=Number.isFinite(p.lineWidth)?p.lineWidth:1.5,L=!!p.dashed,N=Number.isFinite(p.dash)?p.dash:4,R=Number.isFinite(p.gap)?p.gap:4,H=$(p.fill??"rgba(0,0,0,0)"),U=!!p.closed,it=String(p.pane??"overlay");return t.script_polyline_new(y,it,Q(l),Q(w),b.r,b.g,b.b,b.a,E,L,N,R,H.r,H.g,H.b,H.a,U)},scriptPolylineSetVisible(l,w){l&&t.script_polyline_set_visible(l,!!w)},scriptTableNew(l,w,p,y,b={}){let E=Z;if(!E)return 0;let L=Number.isFinite(b.cellW)?b.cellW:80,N=Number.isFinite(b.cellH)?b.cellH:22,R=$(b.bg??"rgba(13,15,19,0.92)"),H=$(b.border??"#ffffff22"),U=$(b.color??"#ffffffe0"),it=Number.isFinite(b.fontSize)?b.fontSize:11;return t.script_table_new(E,+l,+w,+L,+N,+p,+y,R.r,R.g,R.b,R.a,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it)},scriptTableSetCell(l,w,p,y){l&&t.script_table_set_cell(l,+w,+p,String(y))},scriptTableSetVisible(l,w){l&&t.script_table_set_visible(l,!!w)},scriptObjectDelete(l){l&&t.script_object_delete(l)},slotLabel(l,w,p,y,b={}){let E=J;if(!E)return 0;let L=String(l),N=E.get(L);if(N&&N.kind!=="label"){try{t.script_object_delete(N.id)}catch{}N=null}let R=$(b.bg??b.bgColor??"rgba(13,15,19,0.92)"),H=$(b.border??b.borderColor??"#ffffff44"),U=$(b.color??b.textColor??"#ffffffe0"),it=Number.isFinite(b.fontSize)?b.fontSize:11,M=Number.isFinite(b.lineWidth)?b.lineWidth:1,W=b.align==="center"?1:b.align==="right"?2:0,j=mt(b.anchor),rt=String(b.pane??"overlay");if(!N){Ct(E,"label",C,ft);let ht=t.script_label_new(Z,rt,w,p,String(y),R.r,R.g,R.b,R.a,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it,M,W,j);return ht?(N={id:ht,kind:"label",touched:!0},E.set(L,N),ht):0}return t.script_label_set_xy(N.id,w,p),t.script_label_set_text(N.id,String(y)),t.script_label_set_color(N.id,U.r,U.g,U.b,U.a),t.script_label_set_bg(N.id,R.r,R.g,R.b,R.a),N.touched=!0,N.id},slotBox(l,w,p,y,b,E={}){let L=J;if(!L)return 0;let N=String(l),R=L.get(N);if(R&&R.kind!=="box"){try{t.script_object_delete(R.id)}catch{}R=null}let H=$(E.bg??E.bgColor??"rgba(232,160,74,0.10)"),U=$(E.border??E.borderColor??"#ffffff44"),it=Number.isFinite(E.lineWidth)?E.lineWidth:1,M=!!E.dashed,W=_t(E.extend??0),j=String(E.pane??"overlay");if(!R){Ct(L,"box",S,ft);let rt=t.script_box_new(Z,j,w,p,y,b,H.r,H.g,H.b,H.a,U.r,U.g,U.b,U.a,it,M,W);return rt?(R={id:rt,kind:"box",touched:!0},L.set(N,R),rt):0}return t.script_box_set_corners(R.id,w,p,y,b),t.script_box_set_bg(R.id,H.r,H.g,H.b,H.a),t.script_box_set_border(R.id,U.r,U.g,U.b,U.a),R.touched=!0,R.id},slotLine(l,w,p,y,b,E={}){let L=J;if(!L)return 0;let N=String(l),R=L.get(N);if(R&&R.kind!=="line"){try{t.script_object_delete(R.id)}catch{}R=null}let H=$(E.color??"#F0B90B"),U=Number.isFinite(E.lineWidth)?E.lineWidth:1.5,it=Number.isFinite(E.dash)?E.dash:0,M=Number.isFinite(E.gap)?E.gap:0,W=_t(E.extend??0),j=String(E.pane??"overlay");if(!R){Ct(L,"line",P,ft);let rt=t.script_line_new(Z,j,w,p,y,b,H.r,H.g,H.b,H.a,U,it,M,W);return rt?(R={id:rt,kind:"line",touched:!0},L.set(N,R),rt):0}return t.script_line_set_anchors(R.id,w,p,y,b),t.script_line_set_color(R.id,H.r,H.g,H.b,H.a),t.script_line_set_extend(R.id,W),R.touched=!0,R.id},slotPolyline(l,w,p,y={}){let b=J;if(!b)return 0;let E=String(l),L=b.get(E);if(L)try{t.script_object_delete(L.id)}catch{}else Ct(b,"polyline",B,ft);let N=$(y.color??"#F0B90B"),R=Number.isFinite(y.lineWidth)?y.lineWidth:1.5,H=!!y.dashed,U=Number.isFinite(y.dash)?y.dash:4,it=Number.isFinite(y.gap)?y.gap:4,M=$(y.fill??"rgba(0,0,0,0)"),W=!!y.closed,j=String(y.pane??"overlay"),rt=t.script_polyline_new(Z,j,Q(w),Q(p),N.r,N.g,N.b,N.a,R,H,U,it,M.r,M.g,M.b,M.a,W);return rt?(b.set(E,{id:rt,kind:"polyline",touched:!0}),rt):(b.delete(E),0)},slotTable(l,w,p,y,b,E={}){let L=J;if(!L)return 0;let N=String(l),R=L.get(N),H=Number.isFinite(E.cellW)?E.cellW:80,U=Number.isFinite(E.cellH)?E.cellH:22,it=$(E.bg??"rgba(13,15,19,0.92)"),M=$(E.border??"#ffffff22"),W=$(E.color??"#ffffffe0"),j=Number.isFinite(E.fontSize)?E.fontSize:11;if(R&&(R.kind!=="table"||R.cols!==y||R.rows!==b)){try{t.script_object_delete(R.id)}catch{}R=null}if(!R){let rt=t.script_table_new(Z,+w,+p,+H,+U,+y,+b,it.r,it.g,it.b,it.a,M.r,M.g,M.b,M.a,W.r,W.g,W.b,W.a,j);return rt?(R={id:rt,kind:"table",touched:!0,cols:+y,rows:+b},L.set(N,R),rt):0}return R.touched=!0,R.id},slotTableSet(l,w,p,y){l&&t.script_table_set_cell(l,+w,+p,String(y))},slotTrendline(l,w,p,y,b,E={}){let L=ot;if(!L||!Z)return 0;let N=String(l),R=L.get(N);if(R&&R.kind!=="trendline"){try{t.script_drawing_delete(R.id)}catch{}R=null}let H=$(E.color??"#F0B90B"),U=Number.isFinite(E.lineWidth)?E.lineWidth:1.5,it=!!E.dashed,M=String(E.pane??"overlay");if(!R){Ct(L,"trendline",Y,Ot);let W=t.script_drawing_trendline_new(Z,M,w,p,y,b,H.r,H.g,H.b,H.a,U,it);return W?(R={id:W,kind:"trendline",touched:!0},L.set(N,R),W):0}return t.script_drawing_set_anchors(R.id,Q([w,p,y,b])),t.script_drawing_set_color(R.id,H.r,H.g,H.b,H.a),R.touched=!0,R.id},slotHline(l,w,p={}){let y=ot;if(!y||!Z)return 0;let b=String(l),E=y.get(b);if(E&&E.kind!=="hline"){try{t.script_drawing_delete(E.id)}catch{}E=null}let L=Number.isFinite(p.anchorX)?p.anchorX:0,N=$(p.color??"#F0B90B"),R=Number.isFinite(p.lineWidth)?p.lineWidth:1,H=!!p.dashed,U=String(p.pane??"overlay");if(!E){Ct(y,"hline",V,Ot);let it=t.script_drawing_hline_new(Z,U,w,L,N.r,N.g,N.b,N.a,R,H);return it?(E={id:it,kind:"hline",touched:!0},y.set(b,E),it):0}return t.script_drawing_set_anchors(E.id,Q([L,w])),t.script_drawing_set_color(E.id,N.r,N.g,N.b,N.a),E.touched=!0,E.id},slotFibRet(l,w,p,y,b,E={}){let L=ot;if(!L||!Z)return 0;let N=String(l),R=L.get(N);if(R&&R.kind!=="fib_ret"){try{t.script_drawing_delete(R.id)}catch{}R=null}let H=$(E.color??"#F0B90B"),U=Number.isFinite(E.lineWidth)?E.lineWidth:1,it=!!E.dashed,M=String(E.pane??"overlay");if(!R){Ct(L,"fib_ret",x,Ot);let W=t.script_drawing_fib_ret_new(Z,M,w,p,y,b,H.r,H.g,H.b,H.a,U,it);return W?(R={id:W,kind:"fib_ret",touched:!0},L.set(N,R),W):0}return t.script_drawing_set_anchors(R.id,Q([w,p,y,b])),t.script_drawing_set_color(R.id,H.r,H.g,H.b,H.a),R.touched=!0,R.id},slotChannel(l,w,p,y,b,E,L,N={}){let R=ot;if(!R||!Z)return 0;let H=String(l),U=R.get(H);if(U&&U.kind!=="channel"){try{t.script_drawing_delete(U.id)}catch{}U=null}let it=$(N.color??"#F0B90B"),M=Number.isFinite(N.lineWidth)?N.lineWidth:1,W=!!N.dashed,j=String(N.pane??"overlay");if(!U){Ct(R,"channel",O,Ot);let rt=t.script_drawing_channel_new(Z,j,w,p,y,b,E,L,it.r,it.g,it.b,it.a,M,W);return rt?(U={id:rt,kind:"channel",touched:!0},R.set(H,U),rt):0}return t.script_drawing_set_anchors(U.id,Q([w,p,y,b,E,L])),t.script_drawing_set_color(U.id,it.r,it.g,it.b,it.a),U.touched=!0,U.id}}}let tt=new Map;function Lt(l="below"){let w=tt.get(l)||0;if(tt.set(l,w+1),w===0)try{l==="below"?t.enable_custom_pane():t.enable_aux_pane(l,.22)}catch(p){console.warn(`[CustomIndicator] enable pane "${l}" failed:`,p)}}function Bt(l="below"){let w=tt.get(l)||0;if(!(w<=0))if(w===1){tt.delete(l);try{l==="below"?t.disable_custom_pane():t.disable_aux_pane(l)}catch(p){console.warn(`[CustomIndicator] disable pane "${l}" failed:`,p)}}else tt.set(l,w-1)}function Jt(l){if(!l.compute&&!l.evaluateInWorker)return;let w=G();if(!w)return;let p=[];try{let E=t.drawing_count?.()??0;for(let L=0;L<E;L++){let N=t.drawing_descriptor?.(L);if(N)try{let R=JSON.parse(N);if(R.owner!=="user")continue;let H=new Set(["trendline","arrow","range","fib_ret","circle","channel","fib_ext","brush","path","elliott"]),U=Array.isArray(R.anchors)?R.anchors:[],it=[];if(H.has(R.kind))for(let j=0;j+1<U.length;j+=2)it.push({t:U[j],p:U[j+1]});else R.kind==="hline"?U.length>=2&&it.push({t:U[0],p:U[1]}):R.kind==="arrow_marker_up"||R.kind==="arrow_marker_down"||R.kind==="text_note"?U.length>=2&&it.push({t:U[0],p:U[1]}):R.kind==="price_label"&&U.length>=2&&it.push({t:U[0],p:U[1]});let M=Array.isArray(R.color)?R.color:null,W=M?`#${[M[0]|0,M[1]|0,M[2]|0].map(j=>j.toString(16).padStart(2,"0")).join("")}`:void 0;p.push({id:`u_${R.id}`,owner:"user",scriptId:null,kind:R.kind,pane:R.pane,anchors:it,anchorsRaw:U,style:{color:W,lineWidth:R.line_width,dashed:!!R.dashed,text:R.text||""}})}catch{}}}catch{}if(Object.freeze(p),globalThis.__mrdScriptUserDrawings=p,typeof l.evaluateInWorker=="function"){if(l._workerInFlight){l._workerPending={ohlcv:w,params:l.params,userDrawings:p};return}l._perf||(l._perf={compute:0,render:0,primitives:0,frames:0}),l._workerInFlight=!0;let E=performance.now();l.evaluateInWorker(w,l.params,p).then(L=>{let N=performance.now();l._computed=L?.computed||{},l._perf.compute=N-E,!l._heavyCompute&&l._perf.compute>I&&(l._heavyCompute=!0,console.warn(`[CustomIndicator "${l.name}"] worker compute=${l._perf.compute.toFixed(1)}ms > ${I}ms \u2014 auto-throttled to bar-close-only (set calcOnEveryTick=false explicitly to silence this).`)),Mt(l._computed?.__draws),l._fa=Wt(l._computed,l._fa),l._workerInFlight=!1,h(),l._workerPending&&(l._workerPending=null,Jt(l))}).catch(L=>{console.warn(`[CustomIndicator "${l.name}"] worker eval error:`,L?.message||L),l._workerInFlight=!1});return}let y=performance.now();try{l._computed=l.compute(w,l.params)||{}}catch(E){console.warn(`[CustomIndicator "${l.name}"] compute error:`,E),l._computed={}}let b=performance.now();l._perf||(l._perf={compute:0,render:0,primitives:0,frames:0}),l._perf.compute=b-y,!l._heavyCompute&&l._perf.compute>I&&(l._heavyCompute=!0,console.warn(`[CustomIndicator "${l.name}"] compute=${l._perf.compute.toFixed(1)}ms > ${I}ms budget \u2014 auto-throttled to bar-close-only (set calcOnEveryTick=false explicitly to silence this).`)),Mt(l._computed?.__draws),l._fa=Wt(l._computed,l._fa)}function Wt(l,w){if(!l||typeof l!="object")return null;let p={};for(let y in l){if(!Object.prototype.hasOwnProperty.call(l,y))continue;let b=l[y];if(Array.isArray(b)&&(typeof b[0]=="number"||b.length===0)){let E=w&&w[y]&&w[y].length===b.length?w[y]:new Float64Array(b.length);for(let L=0;L<b.length;L++)E[L]=b[L];p[y]=E}else b instanceof Float64Array?p[y]=b:b&&typeof b=="object"&&!Array.isArray(b)&&(p[y]=Wt(b,w?.[y]))}return p}let Kt=Object.freeze({length:0,timestamps:[],open:[],high:[],low:[],close:[],volume:[]});function $t(l){if(c.size===0)return;let w=G(),p=!1;for(let N of c.values())if(N.enabled&&!(N.compute&&!w)){p=!0;break}if(!p)return;t.custom_begin();let y=Zt(),b=w||Kt,E=t.custom_command_count();for(let N of c.values()){if(!N.enabled||N.compute&&!w)continue;if(N._needsCompute&&(Jt(N),N._needsCompute=!1),N._computed?.__draws?.length&&w){let rt=w.length;try{let ht=t.kline_closes();if(ht&&ht.length===rt){let ut=t.kline_opens(),Yt=t.kline_highs(),ye=t.kline_lows(),Pt=rt-1;for(let jt of N._computed.__draws){if(jt.kind!=="seriesCandles")continue;let[Se,tr,v,F]=jt.args;if(!Array.isArray(Se)||Se.length!==rt||isNaN(Se[Pt]))continue;let q=st.get(Se);q&&(q[Pt]=ut[Pt]);let nt=st.get(tr);nt&&(nt[Pt]=Yt[Pt]);let bt=st.get(v);bt&&(bt[Pt]=ye[Pt]);let yt=st.get(F);yt&&(yt[Pt]=ht[Pt]),Se[Pt]=ut[Pt],tr[Pt]=Yt[Pt],v[Pt]=ye[Pt],F[Pt]=ht[Pt]}}}catch{}}let R=performance.now();Z=N.id;let H=D.get(N.id);H||(H=new Map,D.set(N.id,H));for(let rt of H.values())rt.touched=!1;J=H;let U=ct.get(N.id);U||(U=new Map,ct.set(N.id,U));for(let rt of U.values())rt.touched=!1;ot=U;try{N.render.call(N,y,N._computed||{},b)}catch(rt){console.warn(`[CustomIndicator "${N.name}"] render error:`,rt)}finally{for(let[rt,ht]of H)if(!ht.touched){try{t.script_object_delete(ht.id)}catch{}H.delete(rt)}for(let[rt,ht]of U)if(!ht.touched){try{t.script_drawing_delete(ht.id)}catch{}U.delete(rt)}Z=0,J=null,ot=null}let it=performance.now();N._perf||(N._perf={compute:0,render:0,primitives:0,frames:0});let M=.2,W=it-R;N._perf.render=N._perf.render===0?W:N._perf.render*(1-M)+W*M;let j=t.custom_command_count();N._perf.primitives=j-E,N._perf.frames++,E=j}if(t.custom_end(),t.custom_command_count()>0){let N=t.get_custom_buffer_ptr(),R=t.get_custom_buffer_len();n(l,e,N,R)}}function Dt(){d=null,g=0,r=NaN,a=NaN;for(let l of c.values())l._needsCompute=!0}function z(l,w,p){return l&&Number.isFinite(l.x)&&w>=l.x&&w<=l.x+l.w&&p>=l.y&&p<=l.y+l.h}function k(l,w){let p=[...c.values()];for(let y=p.length-1;y>=0;y--){let b=p[y];if(b.enabled&&b.pane!=="overlay"){if(z(b._paneSeparatorRect,l,w))return{ind:b,role:"separator"};if(z(b._paneYAxisRect,l,w))return{ind:b,role:"yaxis"};if(z(b._paneRect,l,w))return{ind:b,role:"body"}}}return null}function et(l,w){let p=k(l,w);return p?p.ind:null}function pt(l,w){let p=l._paneRect,y=l._paneDomain;if(!p||!y)return;let b=y.ymax-y.ymin;if(b<=0||p.h<=0)return;let E=w/p.h*b,L=l._paneViewport||y;l._paneViewport={ymin:L.ymin+E,ymax:L.ymax+E,heightRatio:L.heightRatio}}function wt(l,w,p){let y=l._paneRect,b=l._paneDomain;if(!y||!b||!Number.isFinite(b.ymin)||!Number.isFinite(b.ymax))return;let E=b.ymax-b.ymin;if(E<=0)return;let L=Math.max(0,Math.min(1,(w-y.y)/Math.max(1,y.h))),N=b.ymax-L*E,R=E*p,H=l._paneViewportDefault?l._paneViewportDefault.ymax-l._paneViewportDefault.ymin:E;if(H>0&&(R/H>50||R/H<.005))return;let U=N+L*R,it=U-R;l._paneViewport={ymin:it,ymax:U,heightRatio:l._paneViewport?.heightRatio??b.heightRatio}}function at(l){l._paneViewportDefault?l._paneViewport={...l._paneViewportDefault}:l._paneViewport=null}function Ht(l,w={}){if(!l||typeof l.addEventListener!="function")return{destroy(){}};let p=typeof w.markDirty=="function"?w.markDirty:()=>{},y=typeof w.getDrawingMode=="function"?w.getDrawingMode:null,b=M=>{let W=et(M.offsetX,M.offsetY);if(!W)return;let j=M.deltaY>0?1.1:.9;if(M.ctrlKey||M.metaKey)wt(W,M.offsetY,j);else try{t.zoom_x(M.offsetX,j)}catch{}M.preventDefault(),M.stopPropagation(),p()},E=M=>{if(y&&y())return;let W=et(M.offsetX,M.offsetY);W&&(at(W),M.preventDefault(),M.stopPropagation(),p())},L=null;function N(){L=null,window.removeEventListener("mousemove",R,!0),window.removeEventListener("mouseup",H,!0);try{l.style.cursor=""}catch{}}function R(M){if(!L)return;let W=L;if(W.type==="separator"){let j=W.startSy-M.offsetY,rt=Math.max(.05,Math.min(.5,W.startRatio+j/W.totalH));try{t.set_custom_pane_ratio(rt)}catch{}W.ind._paneViewport={ymin:W.ind._paneViewport?.ymin??W.ind._paneDomain?.ymin,ymax:W.ind._paneViewport?.ymax??W.ind._paneDomain?.ymax,heightRatio:rt},p()}else if(W.type==="yaxis"){let j=M.offsetY-W.lastSy;W.lastSy=M.offsetY,pt(W.ind,j),p()}else if(W.type==="body"){let j=M.offsetX-W.lastSx,rt=M.offsetY-W.lastSy;if(W.lastSx=M.offsetX,W.lastSy=M.offsetY,j!==0)try{t.pan(j,0)}catch{}rt!==0&&pt(W.ind,rt),p()}M.preventDefault(),M.stopPropagation()}function H(M){L&&(N(),M.preventDefault(),M.stopPropagation())}function U(M){if(M.button!==0)return;let W=k(M.offsetX,M.offsetY);if(!W)return;let{ind:j,role:rt}=W;if(rt==="body"){if(y&&y())return;try{if(t.hit_test_drawing&&t.hit_test_drawing(M.offsetX,M.offsetY)>0||t.hit_test_marker&&t.hit_test_marker(M.offsetX,M.offsetY)>0)return}catch{}}if(rt==="separator"){let ht=l.getBoundingClientRect(),ut=Math.max(1,ht.height-28),Yt=j._paneViewport?.heightRatio??j._paneDomain?.heightRatio??(()=>{try{return t.get_custom_pane_ratio?.()??.25}catch{return .25}})();L={type:"separator",ind:j,startSy:M.offsetY,startRatio:Yt,totalH:ut},l.style.cursor="ns-resize"}else rt==="yaxis"?(L={type:"yaxis",ind:j,lastSy:M.offsetY},l.style.cursor="ns-resize"):rt==="body"&&(L={type:"body",ind:j,lastSx:M.offsetX,lastSy:M.offsetY},l.style.cursor="grabbing");window.addEventListener("mousemove",R,!0),window.addEventListener("mouseup",H,!0),M.preventDefault(),M.stopPropagation()}function it(M){if(L)return;let W=k(M.offsetX,M.offsetY);if(!W)return;let rt=y&&y()?"crosshair":W.role==="separator"||W.role==="yaxis"?"ns-resize":"crosshair";requestAnimationFrame(()=>{if(!L)try{l.style.cursor=rt}catch{}})}return l.addEventListener("wheel",b,{passive:!1,capture:!0}),l.addEventListener("dblclick",E,{capture:!0}),l.addEventListener("mousedown",U,{capture:!0}),l.addEventListener("mousemove",it,{capture:!1}),{destroy(){l.removeEventListener("wheel",b,{capture:!0}),l.removeEventListener("dblclick",E,{capture:!0}),l.removeEventListener("mousedown",U,{capture:!0}),l.removeEventListener("mousemove",it,{capture:!1}),L&&N()}}}return{notifyKlinesChanged(){i++},notifyDerivativesChanged(){i++},releaseAllPersistentState(){for(let l of c.values()){let w=l.id;try{t.script_release(w)}catch(p){console.warn(`[CustomIndicator] script_release(${w}) on symbol change failed:`,p)}try{t.script_release_drawings(w)}catch(p){console.warn(`[CustomIndicator] script_release_drawings(${w}) on symbol change failed:`,p)}D.delete(w),ct.delete(w),l._needsCompute=!0,l._computed={}}i++},add(l){let w=js++,p=typeof l?.pane=="string"?l.pane.trim():"",y=!p||p==="overlay",b=y?null:p,E={id:w,name:l.name||`Custom ${w}`,params:{...l.params},compute:l.compute||null,render:l.render,enabled:!0,pane:y?"overlay":b,paneId:b,calcOnEveryTick:l.calcOnEveryTick!==!1,_heavyCompute:!1,_computed:{},_needsCompute:!0,_workerInFlight:!1,_workerPending:null,_paneRect:null,_paneDomain:null,_paneViewport:null,_paneViewportDefault:null,_needsTakerBuy:!!l.__needsTakerBuy,_needsOpenInterest:!!l.__needsOpenInterest,_needsFundingRate:!!l.__needsFundingRate};return c.set(w,E),b&&Lt(b),T(),w},remove(l){let w=c.get(l);if(!w)return;let p=w.paneId,y=!!w._hiddenForFocus;try{t.script_release(l)}catch(b){console.warn(`[CustomIndicator] script_release(${l}) failed:`,b)}try{t.script_release_drawings(l)}catch(b){console.warn(`[CustomIndicator] script_release_drawings(${l}) failed:`,b)}D.delete(l),ct.delete(l),c.delete(l),p&&!y&&Bt(p),T()},updateParams(l,w){let p=c.get(l);p&&(Object.assign(p.params,w),p._needsCompute=!0,p._paneViewport=null,p._paneViewportDefault=null)},setEnabled(l,w){let p=c.get(l);if(!p)return;let y=!!w;if(p.enabled!==y){if(p.enabled=y,!y&&!p._hiddenForFocus){try{t.script_release(l)}catch(b){console.warn(`[CustomIndicator] script_release(${l}) on hide failed:`,b)}try{t.script_release_drawings(l)}catch(b){console.warn(`[CustomIndicator] script_release_drawings(${l}) on hide failed:`,b)}D.delete(l),ct.delete(l),p._needsCompute=!0,p._computed={}}T(),!(!p.paneId||p._hiddenForFocus)&&(y?Lt(p.paneId):Bt(p.paneId))}},indicatorAtPoint(l,w){let p=[...c.values()];for(let y=p.length-1;y>=0;y--){let b=p[y];if(!(!b.enabled||!b.paneId)&&b.pane!=="overlay"&&(z(b._paneSeparatorRect,l,w)||z(b._paneYAxisRect,l,w)||z(b._paneRect,l,w)))return b.id}return""},hidePanesForFocus(){let l=[];for(let w of c.values())!w.enabled||!w.paneId||w._hiddenForFocus||(w._hiddenForFocus=!0,w.enabled=!1,l.push(w.id),Bt(w.paneId));return l},restorePanesFromFocus(l){if(!(!Array.isArray(l)||l.length===0))for(let w of l){let p=c.get(w);!p||!p._hiddenForFocus||(p._hiddenForFocus=!1,p.enabled=!0,p.paneId&&Lt(p.paneId))}},setCalcOnEveryTick(l,w){let p=c.get(l);p&&(p.calcOnEveryTick=!!w,p._heavyCompute=!1)},list(){return[...c.values()].map(l=>({id:l.id,name:l.name,params:{...l.params},enabled:l.enabled,calcOnEveryTick:!!l.calcOnEveryTick,heavyCompute:!!l._heavyCompute,compute:l._perf?.compute??0}))},perfStats(l){if(l!=null){let p=c.get(l);return!p||!p._perf?null:{...p._perf}}let w={};for(let p of c.values())p._perf&&(w[p.id]={...p._perf,name:p.name});return w},listDrawings(){let l=[],w=0;try{w=t.drawing_count()}catch{return l}for(let p=0;p<w;p++){let y="";try{y=t.drawing_descriptor(p)}catch{continue}if(y)try{l.push(JSON.parse(y))}catch(b){console.warn(`[CustomIndicator] failed to parse drawing[${p}]:`,b,y)}}return l},scriptObjectStats(l){try{let w=t.script_object_counts_for(l)||[],[p=0,y=0,b=0,E=0,L=0]=w;return{labels:p,boxes:y,lines:b,polylines:E,tables:L,total:p+y+b+E+L}}catch{return{labels:0,boxes:0,lines:0,polylines:0,tables:0,total:0}}},invalidateCompute:Dt,renderAll:$t,setupPaneInteraction:Ht,isDslNeedsTakerBuy(){return A().tbv},isDslNeedsOpenInterest(){return A().oi},isDslNeedsFundingRate(){return A().fr},setDslDerivativesNeededCallback(l){f=typeof l=="function"?l:null,f&&(m={tbv:!1,oi:!1,fr:!1},T())}}}var bo={trial:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0,depthProfile:!0,domLadder:!0,tickHeatmap:!0},standard:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!1,heatmap:!1,footprint:!1,liqHeatmap:!1,oi:!1,fundingRate:!1,cvd:!1,largeTrades:!1,vrvp:!1,tpo:!1,cvdProfile:!1,smartRanges:!1,emaStructure:!0,customIndicators:!1,vpin:!1,stopIceberg:!1,aggLiquidations:!1,mrdPullback:!0,gaussianVwapCloud:!0,depthProfile:!1,domLadder:!1,tickHeatmap:!1},professional:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!1,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0,depthProfile:!1,domLadder:!1,tickHeatmap:!1},enterprise:{candlestick:!0,volume:!0,rsi:!0,drawingBasic:!0,drawingFull:!0,heatmap:!0,footprint:!0,liqHeatmap:!0,oi:!0,fundingRate:!0,cvd:!0,largeTrades:!0,vrvp:!0,tpo:!0,cvdProfile:!0,smartRanges:!0,emaStructure:!0,customIndicators:!0,forexSignals:!0,vpin:!0,stopIceberg:!0,aggLiquidations:!0,mrdPullback:!0,gaussianVwapCloud:!0,depthProfile:!0,domLadder:!0,tickHeatmap:!0}},ri={rsi:"RSI",drawingBasic:"Basic Drawing Tools",heatmap:"Orderbook Heatmap",footprint:"Footprint Chart",liqHeatmap:"Liquidation Heatmap",oi:"Open Interest",fundingRate:"Funding Rate",cvd:"CVD",largeTrades:"Large Trades",vrvp:"VRVP",tpo:"TPO / Market Profile",cvdProfile:"CVD Profile",smartRanges:"Smart Ranges",emaStructure:"EMA Structure",drawingFull:"All Drawing Tools",customIndicators:"Custom Indicators",forexSignals:"Forex Signals",vpin:"VPIN",stopIceberg:"Stops & Icebergs",aggLiquidations:"Aggregated Liquidations",mrdPullback:"mrD-Pullback Signals",gaussianVwapCloud:"Gaussian VWAP Cloud",depthProfile:"Orderbook Depth Panel",domLadder:"DOM Ladder",tickHeatmap:"Tick Heatmap"},ni={rsi:"Standard",drawingBasic:"Standard",mrdPullback:"Standard",emaStructure:"Standard",gaussianVwapCloud:"Standard",drawingFull:"Professional",vrvp:"Professional",tpo:"Professional",smartRanges:"Professional",heatmap:"Professional",footprint:"Professional",liqHeatmap:"Professional",oi:"Professional",fundingRate:"Professional",cvd:"Professional",cvdProfile:"Professional",largeTrades:"Professional",vpin:"Professional",stopIceberg:"Professional",aggLiquidations:"Professional",customIndicators:"Enterprise",forexSignals:"Enterprise",depthProfile:"Enterprise",domLadder:"Enterprise",tickHeatmap:"Enterprise"};function Me(t){return bo[t]||bo.trial}function mo(t,e){return Me(t)[e]===!0}function tn(t){let e=Me(t),n=new Set;return function(h){if(e[h])return!0;if(!n.has(h)){n.add(h);let c=ri[h]||h,d=ni[h]||"a higher";console.warn(`[MRD Chart Engine] "${c}" requires ${d} plan. Current plan: ${t}. Upgrade at https://app.mrd-indicators.com/charting-library/pricing`)}return!1}}var En="jx9hUoH64b12M9nidvauYGZa3KQRjU1UcuQtI2l-0uI",ss=30,is="trial",Yr="free";var as="https://app.mrd-indicators.com/charting-library/pricing",Pn=[95,95,109,114].map(t=>String.fromCharCode(t)).join(""),Bi=1297237059;function Cn(t){t=t.replace(/-/g,"+").replace(/_/g,"/");let e=t.length%4;if(e===2)t+="==";else if(e===3)t+="=";else if(e!==0)throw new Error("bad b64url");return atob(t)}function An(t){let e=Cn(t),n=new Uint8Array(e.length);for(let o=0;o<e.length;o++)n[o]=e.charCodeAt(o);return n}function Hi(t){return new TextEncoder().encode(t)}var Ke=null,$e=null;async function Yi(){if(Ke)return Ke;let t=globalThis.crypto?.subtle;if(!t)throw new Error("WebCrypto not available");let e=An(En);if(e.length!==32)throw new Error("Public key must be 32 bytes (Ed25519 raw)");return Ke=(async()=>{let n={kty:"OKP",crv:"Ed25519",x:En,ext:!0};try{return await t.importKey("jwk",n,{name:"Ed25519"},!1,["verify"])}catch{return await t.importKey("raw",e,{name:"Ed25519"},!1,["verify"])}})(),Ke.catch(()=>{Ke=null}),Ke}async function zi(){return $e||($e=(async()=>{let t=await Promise.resolve().then(()=>(Wo(),Vo)),{sha512:e}=await Promise.resolve().then(()=>(os(),ns));return t.hashes.sha512=e,t.verify})(),$e.catch(()=>{$e=null}),$e)}async function Xi(t){let e=t.split(".");if(e.length!==3)return null;let n,o;try{n=JSON.parse(Cn(e[0])),o=JSON.parse(Cn(e[1]))}catch{return null}if(n.alg!=="EdDSA"||n.typ!=="MRD-LIC")return null;let h=An(e[2]),c=Hi(e[0]+"."+e[1]);try{let d=await Yi();return await globalThis.crypto.subtle.verify("Ed25519",d,h,c)?o:null}catch(d){try{let g=await zi(),r=An(En);return g(h,c,r)?o:null}catch{throw d}}}function Vi(t,e){if(t==="*"||t===e)return!0;if(t.startsWith("*.")){let n=t.slice(1);return e.endsWith(n)||e===t.slice(2)}return!1}var cs=Pn+"e7x",fs=Pn+"p3q",us="mrd_engine_session_id",_s="mrd_ce_db",je="meta",ds="trial_ts",hs=Pn+"ck";function ps(t){let e=`${t}:${Bi}:${(t^2043453)>>>0}`,n=2166136261;for(let o=0;o<e.length;o++)n^=e.charCodeAt(o),n=Math.imul(n,16777619);return(n>>>0).toString(36)}function ur(t){return`${t}.${ps(t)}`}function _r(t){if(!t||typeof t!="string")return null;let e=t.lastIndexOf(".");if(e<1)return null;let n=parseInt(t.slice(0,e),10);return!n||n<1e9||n>2e9||t.slice(e+1)!==ps(n)?null:n}function Mn(){try{return _r(localStorage.getItem(cs))}catch{return null}}function Ln(t){try{localStorage.setItem(cs,ur(t))}catch{}}function xn(){try{return _r(localStorage.getItem(fs))}catch{return null}}function Fn(t){try{localStorage.setItem(fs,ur(t))}catch{}}function Nn(){try{return _r(sessionStorage.getItem(us))}catch{return null}}function Rn(t){try{sessionStorage.setItem(us,ur(t))}catch{}}function In(){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${hs}=([^;]+)`));return t?_r(decodeURIComponent(t[1])):null}catch{return null}}function On(t){try{let e=encodeURIComponent(ur(t));document.cookie=`${hs}=${e};path=/;max-age=${86400*400};SameSite=Lax`}catch{}}var Qe=null,ls=!1;function Wi(){if(!(ls||typeof indexedDB>"u")){ls=!0;try{let t=indexedDB.open(_s,1);t.onupgradeneeded=()=>{let e=t.result;e.objectStoreNames.contains(je)||e.createObjectStore(je)},t.onsuccess=()=>{let o=t.result.transaction(je,"readonly").objectStore(je).get(ds);o.onsuccess=()=>{let h=_r(o.result);h&&(!Qe||h<Qe)&&(Qe=h,qi(h))}}}catch{}}}function bs(t){Qe=t;try{let e=indexedDB.open(_s,1);e.onsuccess=()=>{e.result.transaction(je,"readwrite").objectStore(je).put(ur(t),ds)}}catch{}}function ms(t,e){let n=null;for(let o of t)o&&(o>e+60||o<17e8||(!n||o<n)&&(n=o));return n}function qi(t){let e=Math.floor(Date.now()/1e3),n=ms([Mn(),xn(),Nn(),In(),t],e);n&&n!==t||n&&(Ln(n),Fn(n),Rn(n),On(n))}function ki(){let t=Math.floor(Date.now()/1e3);return ms([Mn(),xn(),Nn(),In(),Qe],t)}function Zi(t){Ln(t),Fn(t),Rn(t),On(t),bs(t)}function Ui(t){Mn()||Ln(t),xn()||Fn(t),Nn()||Rn(t),In()||On(t),Qe||bs(t)}Wi();function Gi(){let t=ki();t?Ui(t):(t=Math.floor(Date.now()/1e3),Zi(t));let e=t+ss*86400,n=Date.now()/1e3,o=Math.max(0,Math.ceil((e-n)/86400));return n>e?{valid:!1,expired:!0,plan:Yr,watermark:!0,trialExpired:!0,daysLeft:0,pricingUrl:as,error:`Trial expired (${ss} days). Purchase a license: ${as}`,features:Me(Yr)}:{valid:!0,plan:is,watermark:!1,daysLeft:o,trialEnd:e,features:Me(is)}}async function dr(t){if(!t||t==="trial")return Gi();let e;try{e=await Xi(t)}catch(a){return{valid:!1,error:`License verification error: ${a.message}`}}if(!e)return{valid:!1,error:"Invalid license signature"};let{p:n,d:o,e:h,pl:c,a:d}=e;if(!n)return{valid:!1,error:"Invalid license payload (missing plan)"};let g=Math.floor(Date.now()/1e3);if(h>0&&g>h)return{valid:!0,plan:Yr,watermark:!0,trialExpired:!0,originalPlan:n,error:`License expired on ${new Date(h*1e3).toLocaleDateString()}`,features:Me(Yr)};let r=c||"web";if((r==="web"||r==="any")&&o&&o!=="*"&&typeof window<"u"){let a=window.location.hostname;if(a&&a!=="localhost"&&a!=="127.0.0.1"&&a!=="0.0.0.0"&&a!==""&&!String(o).split(",").map(u=>u.trim()).some(u=>Vi(u,a)))return{valid:!1,error:`License not valid for domain: ${a}`}}if(r==="mobile"&&d&&typeof window<"u"){let a=window.__mrd_app_id;if(a&&a!==d)return{valid:!1,error:`License not valid for app: ${a}`}}return{valid:!0,plan:n,domain:o,platform:r,appId:d||null,expiry:h,issuedAt:e.iat,subject:e.sub,watermark:!1,features:e.f?{...Me(n),custom:e.f}:Me(n)}}async function Je(t,e){try{let n=await dr(t||null),o=n&&n.valid?n.plan:null;return!(o&&o!=="free"&&mo(o,e))}catch{return!0}}var Bn=null,Hn=null,De=null;async function Re(){return Bn?{module:Bn,memory:Hn}:De||(De=(async()=>{let t=await import("./chart_engine.js");try{await t.default()}catch(e){console.warn("[mrd-chart] WebAssembly streaming init failed, retrying with arrayBuffer fallback:",e);let n=new URL("../wasm/chart_engine_bg.wasm",import.meta.url),o=await fetch(n);if(!o.ok)throw new Error(`WASM fetch failed (${o.status} ${o.statusText}) at ${n}`);let h=await o.arrayBuffer();await t.default(h)}return Hn=t.wasm_memory(),Bn=t,{module:t,memory:Hn}})(),De.catch(()=>{De=null}),De)}function Gt(t){let e=t.replace("#","");return[parseInt(e.substring(0,2),16)||0,parseInt(e.substring(2,4),16)||0,parseInt(e.substring(4,6),16)||0]}var zr=null,Xr=null;async function gs(){if(zr)return zr;let{module:t,memory:e}=await Re();return zr=t,Xr=e,t}function Ki(){zr||gs().catch(()=>{})}async function $i(t,e={}){e.appId&&typeof window<"u"&&(window.__mrd_app_id=e.appId);let n=e.licenseKey||e.key||null,o=await dr(n);if(!o.valid)throw new Error(`[MRD Chart Engine] ${o.error}`);o.plan==="trial"&&console.info(`[MRD Chart Engine] Trial mode \u2014 ${o.daysLeft} days remaining. Purchase: https://app.mrd-indicators.com/charting-library/pricing`);let h=await gs(),c=window.devicePixelRatio||1,d=c,g=c,r=t.getBoundingClientRect();(r.width<1||r.height<1)&&(await new Promise(v=>{let F=new ResizeObserver(q=>{for(let nt of q)if(nt.contentRect.width>0&&nt.contentRect.height>0){F.disconnect(),v();return}});F.observe(t.parentElement||t),setTimeout(()=>{F.disconnect(),v()},2e3)}),r=t.getBoundingClientRect());let a=Math.max(r.width,100),s=Math.max(r.height,100);t.width=Math.max(1,Math.round(a*c)),t.height=Math.max(1,Math.round(s*c));let i=t.getContext("2d");d=t.width/a,g=t.height/s,i.setTransform(d,0,0,g,0,0);let u=new h.ChartEngine(a,s),f=!1,m={dead:!1,destroyed:!1,cleanupEvents:null};function A(v){if(!m.dead){m.dead=!0,f=!0;try{let F=v?.message?String(v.message):String(v||"unknown");console.error("[MRD Chart Engine] fatal WASM error \u2014 engine disabled:",F)}catch{}try{m.cleanupEvents?.()}catch{}}}function T(v){if(!v)return!1;if(typeof WebAssembly<"u"&&v instanceof WebAssembly.RuntimeError)return!0;let F=v.message?String(v.message):"";return F.includes("memory access out of bounds")||F.includes("recursive use of an object")||F.includes("null pointer passed to rust")||F.includes("unreachable")}let _=new Proxy(u,{get(v,F){let q=Reflect.get(v,F);return typeof q!="function"?q:function(...bt){if(!m.dead)try{return q.apply(v,bt)}catch(yt){if(T(yt)){A(yt);return}throw yt}}}});if("ontouchstart"in window||navigator.maxTouchPoints>0)try{_.set_touch_mode(!0)}catch{}try{let v=typeof n=="string"?n:"",F=Date.now(),q=typeof window<"u"&&window.location?.hostname||"";_.set_license_token(v,F,q)}catch(v){console.warn("[MRD] set_license_token failed:",v.message)}let P=!0,S=null,C=!1,B=!1,V=!1,x=null,O=null,Y=0,G=!1,st=jn(),Q=Qn(),dt=new Map,_t=1,mt=50,X=[],Z=[],J=!1;function D(){if(!J)try{let v=_.export_drawings_json?.();if(typeof v!="string")return;X.push(v),X.length>mt&&X.shift(),Z.length>0&&(Z.length=0)}catch(v){console.warn("[bridge] pushUndoSnapshot failed",v?.message||v)}}function ot(){if(X.length===0)return!1;try{let v=X.pop(),F=_.export_drawings_json?.();if(typeof F=="string"&&(Z.push(F),Z.length>mt&&Z.shift()),J=!0,_.clear_drawings?.(),v)try{_.import_drawings_json?.(v)}catch(q){console.warn("[bridge] undo import failed",q?.message||q)}return tt(),!0}catch(v){return console.warn("[bridge] undo failed",v?.message||v),!1}finally{J=!1}}function ct(){if(Z.length===0)return!1;try{let v=Z.pop(),F=_.export_drawings_json?.();if(typeof F=="string"&&(X.push(F),X.length>mt&&X.shift()),J=!0,_.clear_drawings?.(),v)try{_.import_drawings_json?.(v)}catch(q){console.warn("[bridge] redo import failed",q?.message||q)}return tt(),!0}catch(v){return console.warn("[bridge] redo failed",v?.message||v),!1}finally{J=!1}}async function gt(v){if(!v)return null;try{let F=URL.createObjectURL(v),q=new Image;await new Promise((bt,yt)=>{q.onload=()=>bt(),q.onerror=xt=>yt(xt),q.src=F});let nt=_t++;return dt.set(nt,q),tt(),{imageId:nt,width:q.naturalWidth||q.width||1,height:q.naturalHeight||q.height||1}}catch(F){return console.warn("[bridge] addImageBlob decode failed",F?.message||F),null}}async function Mt(v){let F=await gt(v);if(!F)return null;let{imageId:q,width:nt,height:bt}=F;D();let yt=Math.max(1,r.width),xt=Math.max(1,r.height),ne=yt*.5,Te=xt*.5,hr=(nt||1)/Math.max(1,bt||1),ke=ne,Ie=ke/Math.max(.01,hr);Ie>Te&&(Ie=Te,ke=Ie*hr),ke=Math.max(40,ke),Ie=Math.max(40,Ie);let qn=yt*.5,kn=xt*.5,Ls=qn-ke/2,xs=kn-Ie/2,Fs=qn+ke/2,Ns=kn+Ie/2,Vr;try{let pr=_.screen_to_world_x(Ls),Rs=_.screen_to_world_x(Fs),Is=_.screen_to_world_y(xs),Os=_.screen_to_world_y(Ns);Vr=_.add_image(q,pr,Is,Rs,Os,212,166,10,0),_.select_drawing(Vr)}catch(pr){return console.warn("[bridge] pasteImageFromClipboard add_image failed",pr?.message||pr),null}return tt(),{drawingId:Vr,imageId:q,blob:v,width:nt,height:bt}}function Ct(v){if(typeof v!="string")return null;let F=v.replace(/\s+$/g,"");if(F.length===0)return null;D();let q=Math.max(1,r.width),nt=Math.max(1,r.height),bt=q*.5,yt=nt*.5,xt;try{let ne=_.screen_to_world_x(bt),Te=_.screen_to_world_y(yt);if(xt=_.add_text_note(ne,Te,212,166,10,14,0),_.set_drawing_text(xt,F),/\n/.test(F))try{_.set_drawing_text_wrap?.(xt,!0)}catch{}_.select_drawing(xt)}catch(ne){return console.warn("[bridge] pasteTextFromClipboard add_text_note failed",ne?.message||ne),null}return tt(),{drawingId:xt,text:F}}let Ot=("ontouchstart"in window||navigator.maxTouchPoints>0)&&window.innerWidth<=1399?33:8;function Zt(){if(!(!C||B||S)){if(Ot>0){let v=performance.now()-Y;if(v<Ot){O||(O=setTimeout(()=>{O=null,Zt()},Ot-v));return}}S=requestAnimationFrame(M)}}let tt=()=>{P=!0,Zt()},Lt=()=>V||m.dead,Bt=null,Jt=null,Wt=null,Kt=null,$t=null,Dt=null,z=null,k=null,et=null,pt=null,wt=null,at=null,Ht=null,l=0,w=null,p=null,y=0,b=0,E=-1,L=!1,N=!1,R=!1,H=null,U=Qr(t,_,{onDirty:tt,onCrosshairMove:(v,F,q)=>{if(y=v,b=F,E=q,L=!0,N=!0,H)try{H({visible:!0,worldX:_.crosshair_world_x()})}catch{}},onCrosshairHide:()=>{if(N&&(N=!1,L=!0,E=-1),H)try{H({visible:!1,worldX:0})}catch{}},drawingApi:v=>{Bt=v},onDrawingMutationBegin:()=>{D()},onUndoRequest:()=>ot(),onRedoRequest:()=>ct(),onDrawingComplete:()=>{Jt?.()},onDrawingCancel:()=>{Wt?.()},onDrawingSelected:(v,F,q)=>{Kt?.(v,F,q)},onMarkerSelected:v=>{$t?.(v)},onImagePasted:async v=>{try{let F=await Mt(v);F?.drawingId>0&&(Kt?.(F.drawingId),Dt?.(F.imageId,F.blob,F.drawingId))}catch(F){console.warn("[bridge] onImagePasted handler failed",F?.message||F)}},onTextPasted:v=>{try{let F=Ct(v);F?.drawingId>0&&(Kt?.(F.drawingId),z?.(F.drawingId,F.text))}catch(F){console.warn("[bridge] onTextPasted handler failed",F?.message||F)}},onDrawingDblClick:(v,F,q,nt,bt)=>{k?.(v,F,q,nt,bt)},onChartDblClick:(v,F,q,nt)=>{et?.(v,F,q,nt)},onIndicatorDblClick:(v,F,q,nt,bt)=>{pt?.(v,F,q,nt,bt)},customIndicatorAtPoint:(v,F)=>ut.indicatorAtPoint(v,F),onVrvpHover:(v,F)=>{R||wt?.(v,F)},onLiqAnnotationPin:(v,F)=>{p?.(v,F)},onQuickTradeBtnClick:(v,F,q)=>{at?.(v,F,q)},onPanStart:()=>{R=!0;try{x?.(null,0,0)}catch{}try{Ht?.("")}catch{}try{wt?.(null,null)}catch{}},onPanEnd:()=>{R=!1}});m.cleanupEvents=U;function it(){if(!(!L||f)){if(L=!1,!N||R){x&&x(null,0,0),Ht&&Ht("");return}if(x)if(E===0||E===1)try{let v=_.get_tooltip_data();x(v,y,b)}catch{}else x(null,0,0);if(Ht){let v=performance.now();if(E===0||E===1){if(v-l>=80){l=v;try{Ht(_.lt_hit_test(y,b))}catch{}}}else Ht("")}}}function M(){if(S=null,!(!C||B||f)){G=!0;try{let v=!1;try{v=P||_.is_dirty()}catch{f=!0;return}if(v){P=!1,Y=performance.now();let F=!1;try{if(_.render()>0){let nt=_.get_command_buffer_ptr(),bt=_.get_command_buffer_len();i.save(),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,t.width,t.height),i.restore(),oe(i,Xr,nt,bt,st,Q,dt),F=!0}Pt()}catch(q){if(F||(P=!0),q instanceof WebAssembly.RuntimeError){f=!0,console.error("[MRD] Engine crashed:",q.message);return}}it();try{w?.()}catch{}try{(P||_.is_dirty())&&Zt()}catch{}}}finally{G=!1}}}let W=tn(o.plan),j=_o(_,tt,Lt,()=>W),rt=ho(_,tt,Lt,()=>W,D),ht=po(_,tt,Lt,()=>W),ut=Dr(_,Xr,oe,tt);{let v=ht.setKlines,F=ht.setKlinesPreserveViewport;typeof v=="function"&&(ht.setKlines=function(...q){return ut.notifyKlinesChanged(),v.apply(ht,q)}),typeof F=="function"&&(ht.setKlinesPreserveViewport=function(...q){return ut.notifyKlinesChanged(),F.apply(ht,q)})}{let v=F=>{let q=j[F];typeof q=="function"&&(j[F]=function(...nt){return ut.notifyDerivativesChanged(),q.apply(j,nt)})};v("setOiData"),v("setOiDataTs"),v("setFrBinanceData"),v("setFrAggData"),v("setCvdData"),v("setCvdSpotData")}let Yt=null,ye=3e4;{let v=j.setOiDataTs;typeof v=="function"&&(j.setOiDataTs=function(bt,yt){let xt=0;try{xt=Number(_.kline_count?.()||0)}catch{}if(xt===0){Yt={timestamps:bt,values:yt,stashedAt:Date.now()};return}return v.call(j,bt,yt)});let F=ht.setKlines,q=ht.setKlinesPreserveViewport,nt=()=>{if(!Yt)return;let{timestamps:bt,values:yt,stashedAt:xt}=Yt;if(Yt=null,!(Date.now()-xt>ye))try{j.setOiDataTs?.(bt,yt)}catch(ne){console.warn("[bridge] deferred OI flush failed:",ne?.message??ne)}};typeof F=="function"&&(ht.setKlines=function(...bt){let yt=F.apply(ht,bt);return nt(),yt}),typeof q=="function"&&(ht.setKlinesPreserveViewport=function(...bt){let yt=q.apply(ht,bt);return nt(),yt})}function Pt(){let v=0,F=0,q=0,nt=0;try{v=_.chart_area_x(),F=_.chart_area_y(),q=_.chart_area_w(),nt=_.pane_stack_bottom_y()-F}catch{return}if(!(!(q>0)||!(nt>0))){i.save();try{i.beginPath(),i.rect(v,F,q,nt),i.clip(),ut.renderAll(i)}catch{}finally{i.restore()}}}let jt=ut.setupPaneInteraction(t,{markDirty:tt,getDrawingMode:()=>Bt?.getMode()}),Se=["__trade_overlay","__position_overlay"],tr=!0;return{engine:_,start(){C=!0,B=!1,P=!0,Zt()},stop(){C=!1,S&&(cancelAnimationFrame(S),S=null),O&&(clearTimeout(O),O=null)},resize(v){if(f||G)return;if(r=t.getBoundingClientRect(),r.width<1||r.height<1){(v||0)<8&&setTimeout(()=>this.resize((v||0)+1),250);return}c=window.devicePixelRatio||1;let F=Math.max(1,Math.round(r.width*c)),q=Math.max(1,Math.round(r.height*c));t.width=F,t.height=q,d=t.width/r.width,g=t.height/r.height,i.setTransform(1,0,0,1,0,0),i.setTransform(d,0,0,g,0,0);try{st.invalidate()}catch{}try{_.resize(r.width,r.height)}catch(nt){if(nt instanceof WebAssembly.RuntimeError){f=!0;return}throw nt}B||this.renderSync(),tt()},renderSync(){if(f)return 0;try{let v=_.render();if(v>0){let F=_.get_command_buffer_ptr(),q=_.get_command_buffer_len();i.save(),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,t.width,t.height),i.restore(),oe(i,Xr,F,q,st,Q,dt)}return Pt(),v}catch(v){return v instanceof WebAssembly.RuntimeError&&(f=!0),0}},renderFrameNow(){!C||B||f||(S&&(cancelAnimationFrame(S),S=null),O&&(clearTimeout(O),O=null),P=!0,M())},setCrosshairExternal(v,F,q){if(f)return!1;try{return _.set_crosshair(v,F),y=v,b=F,E=typeof q=="number"?q:0,L=!0,N=!0,!0}catch{return!1}},getCrosshairWorldX(){if(f)return 0;try{return _.crosshair_world_x()}catch{return 0}},isCrosshairSyncVisible(){if(f)return!1;try{return _.crosshair_visible()}catch{return!1}},setCrosshairAtWorldX(v){if(f)return!1;try{let F=_.set_crosshair_at_world_x(v);return F&&(N=!0,L=!0,E=-1),F}catch{return!1}},setCrosshairSyncHandler(v){H=typeof v=="function"?v:null},hideCrosshairExternal(){if(!f)try{_.hide_crosshair(),N&&(N=!1,L=!0,E=-1)}catch{}},setHoverPrice(v){Lt()||(_.set_hover_price(v),tt())},clearHoverPrice(){Lt()||(_.clear_hover_price(),tt())},hitZone(v,F){if(Lt())return-1;let q=_.hit_zone(v,F);return q===void 0?-1:q},startDrawing(v,F){Bt?.setMode(v,F)},cancelDrawing(){Bt?.setMode(null)},onDrawingComplete(v){Jt=v},onDrawingCancel(v){Wt=v},onDrawingSelected(v){Kt=v},onMarkerSelected(v){$t=v},onImagePasted(v){Dt=v},onTextPasted(v){z=v},onDrawingDblClick(v){k=v},onChartDblClick(v){et=v},onIndicatorDblClick(v){pt=v},setReplayState(v,F,q){Lt()||(_.set_replay_state(v,F,q),tt())},setReplayHovered(v){Lt()||_.set_replay_hovered(v)},setReplayPreview(v){Lt()||(_.set_replay_preview(v),tt())},setPrecision(v){_.set_price_precision(v),tt()},setYAutoScale(v){typeof _.set_y_auto_scale=="function"&&(_.set_y_auto_scale(!!v),tt())},getYAutoScale(){return typeof _.y_auto_scale=="function"?!!_.y_auto_scale():!0},setCandleInterval(v){_.set_candle_interval(v)},setTzOffsetSeconds(v){if(Lt())return;let F=Number.isFinite(v)?Math.trunc(v):0;if(typeof _.set_tz_offset_seconds=="function"){try{_.set_tz_offset_seconds(F)}catch{}tt()}},setTheme(v){let F=v==="light"?1:0;typeof _.set_theme=="function"?(_.set_theme(F),tt()):console.warn("[ChartEngine] set_theme not available \u2014 reload page to load updated WASM")},getTheme(){return _.get_theme()===1?"light":"dark"},setCandleBullColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bull_color=="function"&&(_.set_candle_bull_color(F,q,nt),tt())},setCandleBearColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bear_color=="function"&&(_.set_candle_bear_color(F,q,nt),tt())},setBackgroundColor(v){let[F,q,nt]=Gt(v);typeof _.set_background_color=="function"&&(_.set_background_color(F,q,nt),tt())},setGridColor(v,F=255){let[q,nt,bt]=Gt(v);typeof _.set_grid_color=="function"&&(_.set_grid_color(q,nt,bt,F),tt())},setCrosshairColor(v,F=160){let[q,nt,bt]=Gt(v);typeof _.set_crosshair_color=="function"&&(_.set_crosshair_color(q,nt,bt,F),tt())},setCrosshairStyle(v){typeof _.set_crosshair_style=="function"&&(_.set_crosshair_style(v),tt())},setCrosshairWidth(v){typeof _.set_crosshair_width=="function"&&(_.set_crosshair_width(v),tt())},setAxisLabelColor(v,F=255){let[q,nt,bt]=Gt(v);typeof _.set_axis_label_color=="function"&&(_.set_axis_label_color(q,nt,bt,F),tt())},setAxisLabelHiColor(v,F=255){let[q,nt,bt]=Gt(v);typeof _.set_axis_label_hi_color=="function"&&(_.set_axis_label_hi_color(q,nt,bt,F),tt())},setPriceTagTextColor(v,F=255){let[q,nt,bt]=Gt(v);typeof _.set_price_tag_text_color=="function"&&(_.set_price_tag_text_color(q,nt,bt,F),tt())},setCrosshairLabelTextColor(v,F=230){let[q,nt,bt]=Gt(v);typeof _.set_crosshair_label_text_color=="function"&&(_.set_crosshair_label_text_color(q,nt,bt,F),tt())},setCrosshairMagnet(v){if(typeof _.set_crosshair_magnet!="function")return;let F=0;if(typeof v=="number")F=v===1||v===2?v:0;else if(typeof v=="string"){let q=v.toLowerCase();q==="weak"?F=1:q==="strong"?F=2:F=0}_.set_crosshair_magnet(F),tt()},setFontSize(v){typeof _.set_font_size=="function"&&(_.set_font_size(v),tt())},getFontSize(){return typeof _.get_font_size=="function"?_.get_font_size():11},setGridHVisible(v){typeof _.set_grid_h_visible=="function"&&(_.set_grid_h_visible(!!v),tt())},setGridVVisible(v){typeof _.set_grid_v_visible=="function"&&(_.set_grid_v_visible(!!v),tt())},setSessionLevels(v){typeof _.set_session_levels_enabled=="function"&&(_.set_session_levels_enabled(!!v),tt())},setLastPriceLine(v){if(!(!v||typeof v!="object")){if(typeof v.enabled=="boolean"&&typeof _.set_last_price_line_enabled=="function"&&_.set_last_price_line_enabled(v.enabled),typeof _.set_last_price_line_style=="function"){let F=Number.isFinite(v.width)?v.width:1,q=Number.isFinite(v.dashLen)?v.dashLen:4,nt=Number.isFinite(v.gapLen)?v.gapLen:3;_.set_last_price_line_style(F,q,nt)}tt()}},setBarCloseCountdown(v){!v||typeof v!="object"||(typeof v.enabled=="boolean"&&typeof _.set_bar_close_countdown_enabled=="function"&&_.set_bar_close_countdown_enabled(v.enabled),typeof v.text=="string"&&typeof _.set_bar_close_countdown_text=="function"&&_.set_bar_close_countdown_text(v.text),tt())},setDrawingsVisible(v){typeof _.set_drawings_visible=="function"&&(_.set_drawings_visible(!!v),tt())},setIndicatorsVisible(v){typeof _.set_indicators_visible=="function"&&(_.set_indicators_visible(!!v),tt())},setKlineVisible(v){typeof _.set_kline_visible=="function"&&(_.set_kline_visible(!!v),tt())},getKlineVisible(){return typeof _.get_kline_visible=="function"?!!_.get_kline_visible():!0},setPositionMarkersVisible(v){let F=!!v;tr=F;for(let q of ut.list())Se.includes(q.name)&&ut.setEnabled(q.id,F);tt()},setBgGradient(v,F){if(typeof _.set_bg_gradient=="function"){let[q,nt,bt]=Gt(F||"#000000");_.set_bg_gradient(!!v,q,nt,bt),tt()}},setCandleBullWickColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bull_wick_color=="function"&&(_.set_candle_bull_wick_color(F,q,nt),tt())},setCandleBullBorderColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bull_border_color=="function"&&(_.set_candle_bull_border_color(F,q,nt),tt())},setCandleBearWickColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bear_wick_color=="function"&&(_.set_candle_bear_wick_color(F,q,nt),tt())},setCandleBearBorderColor(v){let[F,q,nt]=Gt(v);typeof _.set_candle_bear_border_color=="function"&&(_.set_candle_bear_border_color(F,q,nt),tt())},onTooltip(v){x=v},onVrvpHover(v){wt=v},onLtHover(v){Ht=v},onPostRender(v){w=v},onLiqAnnotationPin(v){p=v},onQuickTradeBtnClick(v){at=v},setQuickTradeBtnEnabled(v){typeof _.set_quick_trade_btn_enabled=="function"&&(_.set_quick_trade_btn_enabled(!!v),tt())},hitQuickTradeBtn(v,F){return typeof _.is_in_quick_trade_btn!="function"?!1:!!_.is_in_quick_trade_btn(v,F)},crosshairWorldY(){return typeof _.crosshair_world_y!="function"?0:_.crosshair_world_y()},pause(){B||(B=!0,S&&(cancelAnimationFrame(S),S=null),O&&(clearTimeout(O),O=null))},resume(){B&&(B=!1,C&&(P=!0,Zt()))},get isPaused(){return B},addImageBlob(v){return gt(v)},async registerImage(v,F){if(!v||v<=0||!F)return!1;try{let q=F;if(F instanceof Blob){let nt=URL.createObjectURL(F);q=new Image,await new Promise((bt,yt)=>{q.onload=()=>bt(),q.onerror=xt=>yt(xt),q.src=nt})}return dt.set(v>>>0,q),v>=_t&&(_t=(v>>>0)+1),tt(),!0}catch(q){return console.warn("[bridge] registerImage failed id="+v,q?.message||q),!1}},unregisterImage(v){let F=dt.delete(v>>>0);return F&&tt(),F},hasImage(v){return dt.has(v>>>0)},listImageIds(){return Array.from(dt.keys())},nextImageId(){return _t++},pushUndoSnapshot(){D()},undo(){return ot()},redo(){return ct()},canUndo(){return X.length>0},canRedo(){return Z.length>0},getUndoSnapshots(){return[...X,...Z]},clearUndoStack(){X.length=0,Z.length=0},pasteImageFromClipboard(v){return Mt(v)},pasteTextFromClipboard(v){return Ct(v)},destroy(){V=!0,m.destroyed=!0,C=!1,B=!1,S&&(cancelAnimationFrame(S),S=null),O&&(clearTimeout(O),O=null),U();try{jt?.destroy?.()}catch{}try{st.invalidate()}catch{}try{Q.invalidate()}catch{}try{dt.clear()}catch{}if(!m.dead)try{u.free()}catch{}m.dead=!0},addIndicator(v){if(!W("customIndicators"))return null;let F=ut.add(v);return!tr&&v&&Se.includes(v.name)&&ut.setEnabled(F,!1),tt(),F},removeIndicator(v){ut.remove(v),tt()},updateIndicatorParams(v,F){ut.updateParams(v,F),tt()},setIndicatorEnabled(v,F){ut.setEnabled(v,F),tt()},isDslNeedsCvd(){return ut.isDslNeedsTakerBuy()},isDslNeedsOi(){return ut.isDslNeedsOpenInterest()},isDslNeedsFr(){return ut.isDslNeedsFundingRate()},setDslDerivativesNeededCallback(v){ut.setDslDerivativesNeededCallback(v)},customIndicatorAtPoint(v,F){return ut.indicatorAtPoint(v,F)},listIndicators(){return ut.list()},setIndicatorCalcOnEveryTick(v,F){ut.setCalcOnEveryTick(v,F),tt()},invalidateCustomIndicators(){ut.invalidateCompute(),tt()},releaseAllCustomIndicatorState(){ut.releaseAllPersistentState(),tt()},hideCustomPanesForFocus(){let v=ut.hidePanesForFocus();return v.length>0&&tt(),v},restoreCustomPanesFromFocus(v){!Array.isArray(v)||v.length===0||(ut.restorePanesFromFocus(v),tt())},resetPriceScale(){if(!f){try{_.set_y_auto_scale(!0)}catch{}for(let v=1;v<=5;v++)try{_.reset_indicator_y_auto(v)}catch{}tt()}},resetView({isMobile:v=!1}={}){if(!f){try{typeof _.show_default_view=="function"?_.show_default_view():_.show_latest(v?115:450)}catch{}try{_.set_y_auto_scale(!0)}catch{}for(let F=1;F<=5;F++)try{_.reset_indicator_y_auto(F)}catch{}tt()}},fitFootprintView({isMobile:v}={}){if(!f){try{let F=(()=>{try{return Math.max(0,_.chart_area_w())}catch{return 0}})(),q=typeof v=="boolean"?v:F>0&&F<992,nt=q?28:50,bt=q?12:24,yt=q?60:120,xt=q?30:50,ne=F>1?Math.floor(F/nt):xt,Te=0;try{Te=Number(_.kline_count?.()||0)}catch{}let hr=Math.max(2,Math.min(Math.max(bt,Math.min(yt,ne)),Te>0?Te:yt));_.show_latest(hr)}catch{}try{_.set_y_auto_scale(!0)}catch{}for(let F=1;F<=5;F++)try{_.reset_indicator_y_auto(F)}catch{}tt()}},get license(){return{plan:o.plan,valid:o.valid,expired:!!o.expired,watermark:!!o.watermark,daysLeft:o.daysLeft,features:o.features||{}}},async setLicenseKey(v){o=await dr(v),!o.valid&&!o.expired&&console.error(`[MRD Chart Engine] ${o.error}`),W=tn(o.plan);try{let F=typeof v=="string"?v:"",q=Date.now(),nt=typeof window<"u"&&window.location?.hostname||"";_.set_license_token(F,q,nt)}catch{}return tt(),o.valid},...ht,...j,...rt}}function ji(t,e){let{t:n,o,h,l:c,c:d,v:g}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let a=[],s=[],i=[],u=[],f=[],m=[],A=Math.round(d[0]/e)*e,T=0;for(let _=0;_<r;_++){T+=g[_];let P=d[_]-A;for(;P>=e;){let S=A,C=A+e;a.push(n[_]),s.push(S),i.push(C),u.push(S),f.push(C),m.push(T),T=0,A=C}for(;-P>=e;){let S=A,C=A-e;a.push(n[_]),s.push(S),i.push(S),u.push(C),f.push(C),m.push(T),T=0,A=C}}return{t:a,o:s,h:i,l:u,c:f,v:m}}function Qi(t,e){let{t:n,o,h,l:c,c:d,v:g}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let a=[],s=[],i=[],u=[],f=[],m=[],A=o[0],T=h[0],_=c[0],I=0,P=n[0];for(let S=0;S<r;S++)for(T=Math.max(T,h[S]),_=Math.min(_,c[S]),I+=g[S];T-_>=e;){let C=d[S]>=A,B=C?_+e:T-e;if(a.push(P),s.push(A),i.push(T),u.push(_),f.push(B),m.push(I),A=B,T=C?Math.max(h[S],B):B,_=C?B:Math.min(c[S],B),I=0,P=n[S],T-_<e)break}return(I>0||a.length===0)&&(a.push(P),s.push(A),i.push(T),u.push(_),f.push(d[r-1]),m.push(I)),{t:a,o:s,h:i,l:u,c:f,v:m}}function Ji(t,e){let{t:n,o,h,l:c,c:d,v:g}=t,r=d.length;if(r===0||e<=0)return{t:[],o:[],h:[],l:[],c:[],v:[]};let a=[],s=[],i=[],u=[],f=[],m=[],A=Math.max(1,Math.round(e));for(let T=0;T<r;T+=A){let _=Math.min(T+A,r),I=-1/0,P=1/0,S=0;for(let C=T;C<_;C++)h[C]>I&&(I=h[C]),c[C]<P&&(P=c[C]),S+=g[C];a.push(n[T]),s.push(o[T]),i.push(I),u.push(P),f.push(d[_-1]),m.push(S)}return{t:a,o:s,h:i,l:u,c:f,v:m}}function Di(t,e){let n=t>1e4?50:t>1e3?10:t>100?1:t>1?.1:.001,o=n*2,h=e<=60?10:e<=300?5:3;return{brickSize:n,rangeSize:o,tickCount:h}}var ta={minRefills:3,hiddenRatio:2,refillWindowMs:1e4,maxTrackedLevels:200,maxEvents:500,decayMs:3e5};function ea(t={}){let e={...ta,...t},n=new Map,o=new Map,h=[],c=0;function d(u){return Math.round(u*1e8)/1e8}function g(u,f,m,A){for(let[T,_]of u){let I=d(T),P=f.get(I);if(!P){f.set(I,{lastVol:_,refills:0,totalConsumed:0,lastRefillTs:A,peakVisible:_});continue}if(_<P.lastVol*.3&&P.lastVol>0){let S=P.lastVol-_;P.totalConsumed+=S,P.lastVol=_;continue}if(_>P.lastVol*1.5&&P.totalConsumed>0)if(A-P.lastRefillTs<e.refillWindowMs){if(P.refills++,P.lastRefillTs=A,P.peakVisible=Math.max(P.peakVisible,_),P.refills>=e.minRefills){let C=P.totalConsumed,B=P.peakVisible;C>=B*e.hiddenRatio&&(h.push({timestamp:A,price:T,visibleSize:B,hiddenSize:C,isBid:m,refillCount:P.refills}),h.length>e.maxEvents&&h.shift(),P.refills=0,P.totalConsumed=0)}}else P.refills=1,P.totalConsumed=0,P.lastRefillTs=A;P.lastVol=_}if(f.size>e.maxTrackedLevels){let T=[...f.entries()];T.sort((I,P)=>I[1].lastRefillTs-P[1].lastRefillTs);let _=T.length-e.maxTrackedLevels;for(let I=0;I<_;I++)f.delete(T[I][0])}}function r(u,f,m){let A=m||Date.now();c=A;let T=u instanceof Map?u:new Map(u.map(([P,S])=>[P,S])),_=f instanceof Map?f:new Map(f.map(([P,S])=>[P,S]));g(T,n,!0,A),g(_,o,!1,A);let I=A-e.decayMs;for(;h.length>0&&h[0].timestamp<I;)h.shift()}function a(){return h}function s(u){if(!u||h.length===0)return;let f=h.length,m=new Float64Array(f),A=new Float64Array(f),T=new Float64Array(f),_=new Float64Array(f),I=new Uint8Array(f),P=new Uint32Array(f);for(let S=0;S<f;S++){let C=h[S];m[S]=C.timestamp,A[S]=C.price,T[S]=C.visibleSize,_[S]=C.hiddenSize,I[S]=C.isBid?1:0,P[S]=C.refillCount}u.setIcebergEvents(m,A,T,_,I,P)}function i(){n.clear(),o.clear(),h.length=0}return{onOrderbookUpdate:r,getEvents:a,pushToEngine:s,reset:i}}var Yn=null,ys=null;async function ra(){if(Yn)return Yn;let{module:t,memory:e}=await Re();return Yn=t,ys=e,t}var ws=Promise.resolve();async function na(t,e={}){let n=await ra(),o=await Je(e.licenseKey||e.key||null,"depthProfile");return await(ws=ws.then(()=>vs(n,t,e,o),()=>vs(n,t,e,o)))}function vs(t,e,n,o=!1){let h=window.devicePixelRatio||1,d=(e.parentElement||e).getBoundingClientRect(),g=Math.max(d.width,60),r=Math.max(d.height,60),a={width:g,height:r};e.width=Math.round(g*h),e.height=Math.round(r*h);let s=e.getContext("2d");s.setTransform(h,0,0,h,0,0);let i=new t.OrderbookEngine(g,r);n.symbol&&i.set_symbol(n.symbol),n.tickSize&&i.set_tick_size(n.tickSize),n.visibleTicks&&i.set_visible_ticks(n.visibleTicks),n.exchangeCount&&i.set_exchange_count(n.exchangeCount),n.pricePrecision!=null&&i.set_price_precision(n.pricePrecision),n.theme==="light"&&i.set_theme(1),n.heatmapCols&&i.set_heatmap_cols(n.heatmapCols),(n.ringCols||n.ringRows)&&i.set_ring_capacity(n.ringCols||300,n.ringRows||400),n.heatmapAlphaMul!=null&&i.set_heatmap_alpha_mul(Number(n.heatmapAlphaMul)),n.showCumulative!=null&&i.set_show_cumulative(!!n.showCumulative),n.showSignalOverlays!=null&&i.set_show_signal_overlays(!!n.showSignalOverlays);let u=!0,f=null,m=!1,A=!1,T=!1,_=!!o,I=null,P=null;function S(){_||!m||T||f||(f=requestAnimationFrame(x))}let C=()=>{u=!0,S()};function B(){try{s.save(),s.setTransform(1,0,0,1,0,0),s.clearRect(0,0,e.width,e.height),s.fillStyle="#787b86",s.font=`600 ${Math.round(12*h)}px ui-monospace, 'SF Mono', Menlo, Consolas, monospace`,s.textAlign="center",s.textBaseline="middle",s.fillText("Enterprise license required",e.width/2,e.height/2),s.restore()}catch{}}function V(){if(T)return!1;if(_)return B(),!0;try{if(i.render()>0){let k=i.get_command_buffer_ptr(),et=i.get_command_buffer_len();s.save(),s.setTransform(1,0,0,1,0,0),s.clearRect(0,0,e.width,e.height),s.restore(),oe(s,ys,k,et)}return!0}catch(z){return z instanceof WebAssembly.RuntimeError&&(T=!0,console.error("[OrderbookEngine] crashed:",z.message)),!1}}function x(){if(f=null,_||!m||T)return;let z=!1;try{z=u||i.is_dirty()}catch{T=!0;return}z&&(V()?u=!1:u=!0)}_&&(console.warn('[MRD Chart Engine] "Orderbook Depth Panel" requires Enterprise plan. Upgrade at https://app.mrd-indicators.com/charting-library/pricing'),B()),e.style.touchAction="none";let O=!1,Y=0,G=new Map,st=0,Q=0,dt=0,_t=0,mt=!1,X=!1,Z=0,J=null,D=280,ot=5,ct=null,gt=!1,Mt=0,Ct=0;function ft(){ct!=null&&(clearTimeout(ct),ct=null)}function Ot(){if(gt){gt=!1;try{i.clear_range()}catch{}if(J)try{J(null)}catch{}C()}}function Zt(z){if(!T){gt=!0,O=!1;try{i.set_range_from_mid(z)}catch{}try{i.clear_hover()}catch{}try{navigator.vibrate&&navigator.vibrate(8)}catch{}if(C(),J)try{let k=i.get_range_low_price(),et=i.get_range_high_price();et>k&&J({low:k,high:et,delta:et-k,deltaPct:k>0?(et-k)/k*100:0,bidQty:i.get_range_bid_qty(),askQty:i.get_range_ask_qty(),ticks:i.get_range_tick_count(),mode:"hover"})}catch{}}}function tt(z){if(T)return;z.preventDefault();let k=z.deltaY>0?1.08:.93;i.zoom_y(k,z.offsetY),C()}function Lt(z){if(!T){if(G.set(z.pointerId,{y:z.offsetY}),e.setPointerCapture(z.pointerId),G.size===1)if(z.shiftKey){X=!0,Z=z.offsetY,O=!1;try{i.set_range(Z,z.offsetY)}catch{}try{i.clear_hover()}catch{}C()}else{try{i.clear_range()}catch{}if(J)try{J(null)}catch{}O=!0,Y=z.offsetY,_t=z.offsetX,dt=z.offsetY,mt=!1,z.pointerType==="touch"&&(Mt=z.offsetX,Ct=z.offsetY,ft(),ct=setTimeout(()=>{ct=null,!(G.size!==1||!O||mt)&&Zt(Ct)},D))}else if(G.size===2){if(ft(),gt&&Ot(),X){X=!1;try{i.clear_range()}catch{}}O=!1;let k=[...G.values()];st=Math.abs(k[0].y-k[1].y),Q=(k[0].y+k[1].y)/2}}}function Bt(z){if(!T)if(G.set(z.pointerId,{y:z.offsetY}),G.size>=2){let k=[...G.values()],et=Math.abs(k[0].y-k[1].y),pt=(k[0].y+k[1].y)/2;if(st>0){let at=st/Math.max(et,1);i.zoom_y(at,pt)}let wt=pt-Q;Math.abs(wt)>.5&&i.pan_y(wt),st=et,Q=pt,C()}else if(X){try{i.set_range(Z,z.offsetY)}catch{}if(C(),J)try{let k=i.get_range_low_price(),et=i.get_range_high_price();et>k&&J({low:k,high:et,delta:et-k,deltaPct:k>0?(et-k)/k*100:0,bidQty:i.get_range_bid_qty(),askQty:i.get_range_ask_qty(),ticks:i.get_range_tick_count(),mode:"measure"})}catch{}}else if(gt){try{i.set_range_from_mid(z.offsetY)}catch{}if(C(),J)try{let k=i.get_range_low_price(),et=i.get_range_high_price();et>k?J({low:k,high:et,delta:et-k,deltaPct:k>0?(et-k)/k*100:0,bidQty:i.get_range_bid_qty(),askQty:i.get_range_ask_qty(),ticks:i.get_range_tick_count(),mode:"hover"}):J(null)}catch{}}else if(O){let k=z.offsetY-Y;Y=z.offsetY,(Math.abs(z.offsetX-_t)>4||Math.abs(z.offsetY-dt)>4)&&(mt=!0),ct!=null&&(Math.abs(z.offsetX-Mt)>ot||Math.abs(z.offsetY-Ct)>ot)&&ft(),i.pan_y(k),C()}else{i.set_hover(z.offsetX,z.offsetY);try{i.set_range_from_mid(z.offsetY)}catch{}if(C(),I)try{let k=i.get_hover_price();if(k>0){let et=i.get_hover_qty(),pt=i.get_hover_side();I({price:k,qty:et,side:pt===2?"ask":"bid"})}else I(null)}catch{}if(J)try{let k=i.get_range_low_price(),et=i.get_range_high_price();et>k?J({low:k,high:et,delta:et-k,deltaPct:k>0?(et-k)/k*100:0,bidQty:i.get_range_bid_qty(),askQty:i.get_range_ask_qty(),ticks:i.get_range_tick_count(),mode:"hover"}):J(null)}catch{}}}function Jt(){if(!T){if(I&&I(null),i.clear_hover(),!X){try{i.clear_range()}catch{}if(J)try{J(null)}catch{}}C()}}function Wt(z){let k=O&&!mt&&G.size===1&&!gt,et=X,pt=gt;G.delete(z.pointerId);try{e.releasePointerCapture(z.pointerId)}catch{}if(ft(),G.size===0){if(et&&!T){try{i.clear_range()}catch{}if(J)try{J(null)}catch{}X=!1,C()}if(pt&&Ot(),k&&P&&!T)try{i.set_hover(z.offsetX,z.offsetY);let wt=i.get_hover_price();if(wt>0){let at=i.get_hover_qty(),Ht=i.get_hover_side();P({price:wt,qty:at,side:Ht===2?"ask":"bid"})}}catch{}O=!1,st=0}else G.size===1&&(O=!0,Y=[...G.values()][0].y,st=0)}function Kt(z){if(!(z.key!=="Escape"||T)&&X){X=!1;try{i.clear_range()}catch{}if(J)try{J(null)}catch{}C()}}function $t(){T||(i.center_on_mid(),C())}e.addEventListener("wheel",tt,{passive:!1}),e.addEventListener("pointerdown",Lt),e.addEventListener("pointermove",Bt),e.addEventListener("pointerup",Wt),e.addEventListener("pointercancel",Wt),e.addEventListener("pointerleave",Jt),e.addEventListener("dblclick",$t),window.addEventListener("keydown",Kt);function Dt(){e.removeEventListener("wheel",tt),e.removeEventListener("pointerdown",Lt),e.removeEventListener("pointermove",Bt),e.removeEventListener("pointerup",Wt),e.removeEventListener("pointercancel",Wt),e.removeEventListener("pointerleave",Jt),e.removeEventListener("dblclick",$t),window.removeEventListener("keydown",Kt)}return{engine:i,start(){m=!0,u=!0,S()},stop(){m=!1,f&&(cancelAnimationFrame(f),f=null)},resize(){if(A||T)return;let k=(e.parentElement||e).getBoundingClientRect(),et=Math.max(k.width,1),pt=Math.max(k.height,1);if(et<1||pt<1)return;h=window.devicePixelRatio||1;let wt=Math.round(et*h),at=Math.round(pt*h),Ht=e.width!==wt||e.height!==at;e.width!==wt&&(e.width=wt),e.height!==at&&(e.height=at),s.setTransform(h,0,0,h,0,0),a={width:et,height:pt};try{i.resize(et,pt),Ht&&V()}catch(l){if(l instanceof WebAssembly.RuntimeError){T=!0;return}throw l}C()},pushSnapshot(z,k,et){if(T)return;let pt=new Float64Array(z.length*2);for(let at=0;at<z.length;at++)pt[at*2]=z[at][0],pt[at*2+1]=z[at][1];let wt=new Float64Array(k.length*2);for(let at=0;at<k.length;at++)wt[at*2]=k[at][0],wt[at*2+1]=k[at][1];try{i.push_snapshot(pt,wt,et)}catch(at){if(at instanceof WebAssembly.RuntimeError){T=!0;return}throw at}C()},pushSnapshotFlat(z,k,et){if(!T){try{i.push_snapshot(z,k,et)}catch(pt){if(pt instanceof WebAssembly.RuntimeError){T=!0;return}throw pt}C()}},setDepthBook(z,k,et){if(T)return;let pt=new Float64Array(z.length*2);for(let at=0;at<z.length;at++)pt[at*2]=z[at][0],pt[at*2+1]=z[at][1];let wt=new Float64Array(k.length*2);for(let at=0;at<k.length;at++)wt[at*2]=k[at][0],wt[at*2+1]=k[at][1];try{i.set_depth_book(pt,wt,et)}catch(at){if(at instanceof WebAssembly.RuntimeError){T=!0;return}throw at}C()},setDepthBookFlat(z,k,et){if(!T){try{i.set_depth_book(z,k,et)}catch(pt){if(pt instanceof WebAssembly.RuntimeError){T=!0;return}throw pt}C()}},pushHeatmapCol(z,k,et){if(T)return;let pt=new Float64Array(z.length*2);for(let at=0;at<z.length;at++)pt[at*2]=z[at][0],pt[at*2+1]=z[at][1];let wt=new Float64Array(k.length*2);for(let at=0;at<k.length;at++)wt[at*2]=k[at][0],wt[at*2+1]=k[at][1];try{i.push_heatmap_col(pt,wt,et)}catch(at){if(at instanceof WebAssembly.RuntimeError){T=!0;return}throw at}C()},pushHeatmapColFlat(z,k,et){if(!T){try{i.push_heatmap_col(z,k,et)}catch(pt){if(pt instanceof WebAssembly.RuntimeError){T=!0;return}throw pt}C()}},resetRing(){if(!T){try{i.reset_ring()}catch(z){if(z instanceof WebAssembly.RuntimeError){T=!0;return}throw z}C()}},setExchangeLabels(z){if(T)return;let k=Array.isArray(z)?z.join(","):String(z);try{i.set_exchange_labels(k)}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()},setSignalObi(z,k,et){if(!T){try{i.set_signal_obi(z,k,et)}catch(pt){if(pt instanceof WebAssembly.RuntimeError){T=!0;return}throw pt}C()}},setSignalSpoof(z){if(!T){try{i.set_signal_spoof(z)}catch(k){if(k instanceof WebAssembly.RuntimeError){T=!0;return}throw k}C()}},setSignalAbsorption(z,k){if(!T){try{i.set_signal_absorption(z,k)}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()}},setSignalFlow(z,k){if(!T){try{i.set_signal_flow(z,k)}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()}},setSignalWalls(z,k){if(!T){try{i.set_signal_walls(new Float64Array(z),new Float64Array(k))}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()}},setSignalGaps(z,k){if(!T){try{i.set_signal_gaps(new Float64Array(z),new Float64Array(k))}catch(et){if(et instanceof WebAssembly.RuntimeError){T=!0;return}throw et}C()}},setSymbol(z){T||(i.set_symbol(z),C())},setTickSize(z){T||(i.set_tick_size(z),C())},setVisibleTicks(z){T||(i.set_visible_ticks(z),C())},setExchangeCount(z){T||(i.set_exchange_count(z),C())},setPrecision(z){T||(i.set_price_precision(z),C())},setAutoCenter(z){T||i.set_auto_center(z)},centerOnMid(){T||(i.center_on_mid(),C())},setHeatmapCols(z){T||(i.set_heatmap_cols(z),C())},setHeatmapAlphaMul(z){if(!T){try{i.set_heatmap_alpha_mul(Number(z))}catch(k){if(k instanceof WebAssembly.RuntimeError){T=!0;return}throw k}C()}},setShowCumulative(z){if(!T){try{i.set_show_cumulative(!!z)}catch(k){if(k instanceof WebAssembly.RuntimeError){T=!0;return}throw k}C()}},setShowSignalOverlays(z){if(!T){try{i.set_show_signal_overlays(!!z)}catch(k){if(k instanceof WebAssembly.RuntimeError){T=!0;return}throw k}C()}},getHoverPrice(){return T?0:i.get_hover_price()},getHoverQty(){return T?0:i.get_hover_qty()},getHoverSide(){return T?0:i.get_hover_side()},onHoverPrice(z){I=z},onClickPrice(z){P=z},onRangeUpdate(z){J=z},clearRange(){if(!T){if(X&&(X=!1,J))try{J(null)}catch{}try{i.clear_range()}catch{}C()}},setTheme(z){T||(i.set_theme(z==="light"?1:0),C())},setThemePalette(z){if(!(T||!z)&&typeof i.set_trade_palette=="function"){try{i.set_trade_palette(zn(z.bg),zn(z.bull),zn(z.bear),z.themed?1:0)}catch{}C()}},clear(){T||(i.clear(),C())},get isDead(){return T},destroy(){A=!0,m=!1,f&&(cancelAnimationFrame(f),f=null),ft(),Dt();try{i.free()}catch{}}}}function zn(t){if(typeof t!="string")return 0;let e=t.trim().replace(/^#/,"");if(e.length<6)return 0;let n=parseInt(e.slice(0,6),16);return Number.isFinite(n)?n>>>0:0}var Xn=null,Cs=null;async function oa(){if(Xn)return Xn;let{module:t,memory:e}=await Re();return Xn=t,Cs=e,t}var Ss=Promise.resolve();async function sa(t,e={}){let n=await oa(),o=await Je(e.licenseKey||e.key||null,"domLadder");return Ss=Ss.then(()=>Ts(n,t,e,o),()=>Ts(n,t,e,o))}function Ts(t,e,n,o=!1){let h=window.devicePixelRatio||1,c=()=>{let X=e.parentElement,Z=X?X.getBoundingClientRect():e.getBoundingClientRect();return{w:Math.max(60,Math.floor(Z.width||60)),h:Math.max(120,Math.floor(Z.height||120))}},{w:d,h:g}=c();e.width=Math.round(d*h),e.height=Math.round(g*h);let r=e.getContext("2d");r.setTransform(h,0,0,h,0,0);let a=new t.DomLadderEngine(d,g);n.tickSize&&a.set_tick_size(n.tickSize),n.pricePrecision!=null&&a.set_price_precision(n.pricePrecision),n.visibleRows&&a.set_visible_rows(n.visibleRows),n.theme==="light"&&a.set_theme(1),Number.isFinite(n.textScale)&&a.set_text_scale(n.textScale),Number.isFinite(n.fillIntensity)&&a.set_fill_intensity(n.fillIntensity),n.qtyDisplayUsd===!0&&a.set_qty_display_usd(1);let s=!0,i=null,u=!1,f=!1,m=!1,A=!!o,T=null,_=null;function I(){A||!u||m||i||(i=requestAnimationFrame(B))}let P=()=>{s=!0,I()};function S(){try{r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.fillStyle="#787b86",r.font=`600 ${Math.round(12*h)}px ui-monospace, 'SF Mono', Menlo, Consolas, monospace`,r.textAlign="center",r.textBaseline="middle",r.fillText("Enterprise license required",e.width/2,e.height/2),r.restore()}catch{}}function C(){if(m)return!1;if(A)return S(),!0;try{if(a.render()>0){let Z=a.get_command_buffer_ptr(),J=a.get_command_buffer_len();r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.restore(),oe(r,Cs,Z,J)}return!0}catch(X){return X instanceof WebAssembly.RuntimeError&&(m=!0,console.error("[DomLadderEngine] crashed:",X.message)),!1}}function B(){if(i=null,A||!u||m)return;let X=!1;try{a.set_now_ms(Date.now()),X=s||a.is_dirty()}catch{m=!0;return}X&&(C()?s=!1:s=!0),u&&!m&&(i=requestAnimationFrame(B))}A&&(console.warn('[MRD Chart Engine] "DOM Ladder" requires Enterprise plan. Upgrade at https://app.mrd-indicators.com/charting-library/pricing'),S()),e.style.touchAction="none";let V=0,x=0,O=!1;function Y(X){m||(V=X.offsetX,x=X.offsetY,O=!1)}function G(X){if(!m&&((Math.abs(X.offsetX-V)>4||Math.abs(X.offsetY-x)>4)&&(O=!0),a.set_hover(X.offsetX,X.offsetY),P(),T))try{let Z=a.get_hover_price();if(Z>0){let J=a.get_hover_side();T({price:Z,side:J===1?"ask":"bid"},X)}else T(null,X)}catch{}}function st(){m||(T&&T(null),a.clear_hover(),P())}function Q(X){if(!m&&!O&&_)try{a.set_hover(X.offsetX,X.offsetY);let Z=a.get_hover_price();if(Z>0){let J=a.get_hover_side();_({price:Z,side:J===1?"ask":"bid"})}}catch{}}function dt(){m||(a.center_on_mid(),P())}function _t(X){if(m)return;X.preventDefault();let Z=X.deltaY;if(X.deltaMode===1?Z*=16:X.deltaMode===2&&(Z*=e.clientHeight||400),!(Math.abs(Z)<.5)){try{a.scroll_by(Z)}catch(J){if(J instanceof WebAssembly.RuntimeError){m=!0;return}return}P()}}e.addEventListener("pointerdown",Y),e.addEventListener("pointermove",G),e.addEventListener("pointerup",Q),e.addEventListener("pointerleave",st),e.addEventListener("dblclick",dt),e.addEventListener("wheel",_t,{passive:!1});function mt(){e.removeEventListener("pointerdown",Y),e.removeEventListener("pointermove",G),e.removeEventListener("pointerup",Q),e.removeEventListener("pointerleave",st),e.removeEventListener("dblclick",dt),e.removeEventListener("wheel",_t)}return{engine:a,start(){u=!0,s=!0,I()},stop(){u=!1,i&&(cancelAnimationFrame(i),i=null)},resize(){if(f||m)return;let{w:X,h:Z}=c();if(X<1||Z<1)return;h=window.devicePixelRatio||1;let J=Math.round(X*h),D=Math.round(Z*h),ot=e.width!==J||e.height!==D;e.width!==J&&(e.width=J),e.height!==D&&(e.height=D),r.setTransform(h,0,0,h,0,0);try{if(a.resize(X,Z),ot){try{a.set_now_ms(Date.now())}catch{}C()}}catch(ct){if(ct instanceof WebAssembly.RuntimeError){m=!0;return}throw ct}P()},pushBook(X,Z,J){if(m)return;let D=X instanceof Float64Array?X:Es(X),ot=Z instanceof Float64Array?Z:Es(Z);try{a.push_book(D,ot,J)}catch(ct){if(ct instanceof WebAssembly.RuntimeError){m=!0;return}throw ct}P()},appendTrade(X,Z,J,D){if(!m){try{a.append_trade(X,Z,!!J,D||Date.now())}catch(ot){if(ot instanceof WebAssembly.RuntimeError){m=!0;return}throw ot}P()}},pushDomVol(X){if(!(m||!Array.isArray(X)||X.length===0)){try{for(let Z of X){if(!Z)continue;let J=Number(Z.p??Z.price),D=Number(Z.b??Z.buy??0),ot=Number(Z.s??Z.sell??0);J>0&&a.push_dom_vol(J,D,ot)}}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},clearDomVol(){if(!m){try{a.clear_dom_vol()}catch(X){if(X instanceof WebAssembly.RuntimeError){m=!0;return}throw X}P()}},setWalls(X,Z){if(m)return;let J=X instanceof Float64Array?X:new Float64Array(X||[]),D=Z instanceof Float64Array?Z:new Float64Array(Z||[]);try{a.set_walls(J,D)}catch(ot){if(ot instanceof WebAssembly.RuntimeError){m=!0;return}throw ot}P()},setTickSize(X){if(!m){try{a.set_tick_size(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setPricePrecision(X){if(!m){try{a.set_price_precision(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setVisibleRows(X){m||(a.set_visible_rows(X),P())},setTextScale(X){if(!(m||!Number.isFinite(X))){try{a.set_text_scale(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setFillIntensity(X){if(!(m||!Number.isFinite(X))){try{a.set_fill_intensity(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setQtyDisplayUsd(X){if(!m){try{a.set_qty_display_usd(X?1:0)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},setTheme(X){m||(a.set_theme(X==="light"?1:0),P())},setThemePalette(X){if(!(m||!X)&&typeof a.set_trade_palette=="function"){try{a.set_trade_palette(Vn(X.bg),Vn(X.bull),Vn(X.bear),X.themed?1:0)}catch{}P()}},resetSymbol(){m||(a.reset_symbol(),P())},centerOnMid(){m||(a.center_on_mid(),P())},scrollBy(X){if(!(m||!Number.isFinite(X))){try{a.scroll_by(X)}catch(Z){if(Z instanceof WebAssembly.RuntimeError){m=!0;return}throw Z}P()}},isViewLocked(){if(m)return!1;try{return a.is_view_locked()}catch{return!1}},getMomentum(){if(m)return{m1:0,buy1m:0,sell1m:0};try{return{m1:a.momentum_1m(),buy1m:a.buy_volume_1m(),sell1m:a.sell_volume_1m()}}catch{return{m1:0,buy1m:0,sell1m:0}}},onHover(X){T=X},onClick(X){_=X},destroy(){f=!0,u=!1,i&&cancelAnimationFrame(i),i=null,mt();try{a.free&&a.free()}catch{}}}}function Vn(t){if(typeof t!="string")return 0;let e=t.trim().replace(/^#/,"");if(e.length<6)return 0;let n=parseInt(e.slice(0,6),16);return Number.isFinite(n)?n>>>0:0}function Es(t){let e=new Float64Array(t.length*2);for(let n=0;n<t.length;n++)e[n*2]=t[n][0],e[n*2+1]=t[n][1];return e}var Wn=null,Ms=null;async function ia(){if(Wn)return Wn;let{module:t,memory:e}=await Re();return Wn=t,Ms=e,t}function aa(){if(typeof navigator>"u")return!1;let t=navigator.userAgent||"",e=typeof matchMedia=="function"&&matchMedia("(pointer: coarse)").matches,n=typeof window<"u"&&Math.min(window.innerWidth,window.innerHeight)<820;return/iphone|ipad|ipod|android|mobile/i.test(t)||e&&n}var As=Promise.resolve();async function la(t,e={}){let n=await ia(),o=await Je(e.licenseKey||e.key||null,"tickHeatmap");return As=As.then(()=>Ps(n,t,e,o),()=>Ps(n,t,e,o))}function Ps(t,e,n,o=!1){let h=window.devicePixelRatio||1,c=e.getBoundingClientRect(),d=Math.max(c.width,60),g=Math.max(c.height,60);e.width=d*h,e.height=g*h;let r=e.getContext("2d");r.setTransform(1,0,0,1,0,0),r.scale(h,h);let a=e.width,s=e.height,i=new t.TickEngine(d,g);n.tickSize&&i.set_tick_size(n.tickSize),n.pricePrecision!=null&&i.set_price_precision(n.pricePrecision),n.theme==="light"&&i.set_theme(1);let u=n.lookbackMs||5*60*1e3,f=n.cellMs||1e3;(n.lookbackMs||n.cellMs)&&i.set_lookback(u,f),n.showTradeTape!=null&&i.set_show_trade_tape(!!n.showTradeTape),n.showBookHeatmap!=null&&i.set_show_book_heatmap(!!n.showBookHeatmap),n.showVwap!=null&&i.set_show_vwap(!!n.showVwap),n.showGrid!=null&&i.set_show_grid(!!n.showGrid);let m=n.isMobile!=null?!!n.isMobile:aa(),A=!!n.lowPower,T=m||A?33:8,_=66,I=3e4,P=!0,S=null,C=!1,B=!1,V=!1,x=!1,O=!!o,Y=0,G=performance.now(),st=performance.now(),Q=0,dt=Math.max(4,T-1),_t=0,mt=0,X=0,Z=null,J=null,D=0,ot=[];function ct(){if(B||!C||typeof document<"u"&&document.hidden)return Number.POSITIVE_INFINITY;let M=performance.now();return(M-G>I&&M-st>I?_:T)+mt}function gt(){O||!C||B||x||S||(S=requestAnimationFrame(Mt))}function Mt(M){if(S=null,O||!C||B||x)return;let W=ct();if(!Number.isFinite(W))return;if(M-Y<W){S=requestAnimationFrame(Mt);return}Y=M,Ct();let j=P;if(!j)try{j=i.is_dirty()}catch{x=!0;return}if(j){P=!1;let rt=performance.now();if(!Zt()){if(x)return;P=!0}let ut=performance.now()-rt;Q=Q*.85+ut*.15,ut>dt?(_t+=1,_t>=8&&(mt=Math.min(100,mt+16),_t=0,console.debug(`[TickEngine] adaptive throttle \u2192 ${T+mt}ms (EMA ${Q.toFixed(1)}ms, last ${ut.toFixed(1)}ms)`))):(_t=0,mt>0&&Q<dt*.5&&(mt=Math.max(0,mt-8)))}S=requestAnimationFrame(Mt)}function Ct(){if(Z&&D>0){try{i.push_book(X,Z,J,D)}catch(M){if(M instanceof WebAssembly.RuntimeError){x=!0;return}}Z=null,J=null,D=0}if(ot.length){let M=new Float64Array(ot);ot.length=0;try{i.push_trades_batch(M)}catch(W){if(W instanceof WebAssembly.RuntimeError){x=!0;return}}}}let ft=()=>{P=!0,gt()};function Ot(){try{r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.fillStyle="#787b86",r.font=`600 ${Math.round(12*h)}px ui-monospace, 'SF Mono', Menlo, Consolas, monospace`,r.textAlign="center",r.textBaseline="middle",r.fillText("Enterprise license required",e.width/2,e.height/2),r.restore()}catch{}}O&&(console.warn('[MRD Chart Engine] "Tick Heatmap" requires Enterprise plan. Upgrade at https://app.mrd-indicators.com/charting-library/pricing'),Ot());function Zt(){if(x)return!1;if(O)return Ot(),!0;try{if(i.render()>0){let W=i.get_command_buffer_ptr(),j=i.get_command_buffer_len();r.save(),r.setTransform(1,0,0,1,0,0),r.clearRect(0,0,e.width,e.height),r.restore(),oe(r,Ms,W,j)}return!0}catch(M){return M instanceof WebAssembly.RuntimeError&&(x=!0,console.error("[TickEngine] crashed:",M.message)),!1}}function tt(){typeof document>"u"||(document.hidden?S&&(cancelAnimationFrame(S),S=null):(ot.length=0,Z=null,J=null,D=0,Y=0,ft()))}typeof document<"u"&&document.addEventListener("visibilitychange",tt);function Lt(){if(V||x||(c=e.getBoundingClientRect(),c.width<1||c.height<1))return;h=window.devicePixelRatio||1;let M=Math.round(c.width*h),W=Math.round(c.height*h);try{i.resize(c.width,c.height)}catch(j){if(j instanceof WebAssembly.RuntimeError){x=!0;return}throw j}if(B){ft();return}(M!==a||W!==s)&&(a=M,s=W,e.width=M,e.height=W,r.setTransform(1,0,0,1,0,0),r.scale(h,h)),Zt(),ft()}let Bt=0,Jt=2,Wt=3,Kt=Bt,$t=!1,Dt=0,z=0,k=new Map,et=0,pt=0;function wt(M,W){if(x)return Bt;try{let j=i.hit_zone?.(M,W);return Number.isFinite(j)?j:Bt}catch{return Bt}}function at(){}e.style.touchAction="none";function Ht(M){if(x||B)return;M.stopImmediatePropagation(),M.preventDefault(),G=performance.now();let W=M.deltaY,j=M.deltaX,rt=Math.abs(W)>=Math.abs(j)?W:j;if(rt===0)return;let ht=rt>0?1.1:.9,ut=wt(M.offsetX,M.offsetY);try{M.ctrlKey?i.zoom_y(M.offsetY,ht):M.shiftKey||ut===Jt?i.zoom_x(M.offsetX,ht):ut===Wt?i.zoom_y(M.offsetY,ht):i.zoom(M.offsetX,M.offsetY,ht)}catch{}ft()}function l(M){if(!(x||B)){if(M.stopImmediatePropagation(),G=performance.now(),k.set(M.pointerId,{x:M.offsetX,y:M.offsetY}),e.setPointerCapture(M.pointerId),k.size===1)$t=!0,Dt=M.offsetX,z=M.offsetY,Kt=wt(M.offsetX,M.offsetY);else if(k.size===2){$t=!1;let W=[...k.values()];et=Math.abs(W[0].y-W[1].y),pt=(W[0].y+W[1].y)/2}}}function w(M){if(x||B)return;let W=k.has(M.pointerId);if(W&&M.stopImmediatePropagation(),G=performance.now(),W&&k.set(M.pointerId,{x:M.offsetX,y:M.offsetY}),W&&k.size>=2){let j=[...k.values()],rt=Math.abs(j[0].y-j[1].y),ht=(j[0].y+j[1].y)/2;if(et>0){let Yt=et/Math.max(rt,1);try{i.zoom_y(ht,Yt)}catch{}}let ut=ht-pt;if(Math.abs(ut)>.5)try{i.pan_y(ut)}catch{}et=rt,pt=ht,ft()}else if(W&&$t){let j=M.offsetX-Dt,rt=M.offsetY-z;Dt=M.offsetX,z=M.offsetY;try{if(Kt===Jt){if(Math.abs(j)>.5){let ht=Math.exp(j*.004);i.zoom_x(Dt,ht)}}else if(Kt===Wt){if(Math.abs(rt)>.5){let ht=Math.exp(rt*.004);i.zoom_y(z,ht)}}else Math.abs(j)>.5&&i.pan_x(j),Math.abs(rt)>.5&&i.pan_y(rt)}catch{}ft()}else{try{i.set_hover(M.offsetX,M.offsetY)}catch{}ft()}}function p(M){if(x)return;let W=k.has(M.pointerId);!B&&W&&M.stopImmediatePropagation(),k.delete(M.pointerId);try{e.releasePointerCapture(M.pointerId)}catch{}if(k.size===0)$t=!1,et=0;else if(k.size===1){$t=!0;let j=[...k.values()][0];Dt=j.x,z=j.y,et=0}}function y(M){if(x)return;let W=k.has(M.pointerId);!B&&W&&M.stopImmediatePropagation();try{i.clear_hover()}catch{}ft()}function b(M){if(x||B)return;M.stopImmediatePropagation();let W=wt(M.offsetX,M.offsetY);try{W===Wt?i.reset_y_auto?.():W===Jt?i.set_follow_live?.(!0):i.reset_view?.()}catch{}ft()}function E(M){x||B||M.stopImmediatePropagation()}function L(M){x||B||k.size>0&&M.stopImmediatePropagation()}function N(M){x||B||k.size>0&&M.stopImmediatePropagation()}function R(M){x||B||(M.stopImmediatePropagation(),M.preventDefault())}let H={capture:!0},U={capture:!0,passive:!1};e.addEventListener("wheel",Ht,U),e.addEventListener("pointerdown",l,H),e.addEventListener("pointermove",w,H),e.addEventListener("pointerup",p,H),e.addEventListener("pointercancel",p,H),e.addEventListener("pointerleave",y,H),e.addEventListener("dblclick",b,H),e.addEventListener("mousedown",E,H),e.addEventListener("mousemove",L,H),e.addEventListener("mouseup",N,H),e.addEventListener("contextmenu",R,H);function it(){e.removeEventListener("wheel",Ht,U),e.removeEventListener("pointerdown",l,H),e.removeEventListener("pointermove",w,H),e.removeEventListener("pointerup",p,H),e.removeEventListener("pointercancel",p,H),e.removeEventListener("pointerleave",y,H),e.removeEventListener("dblclick",b,H),e.removeEventListener("mousedown",E,H),e.removeEventListener("mousemove",L,H),e.removeEventListener("mouseup",N,H),e.removeEventListener("contextmenu",R,H),typeof document<"u"&&document.removeEventListener("visibilitychange",tt)}return{engine:i,isMobile:m,start(){C=!0,B=!1,P=!0,Y=0,G=performance.now(),st=performance.now(),gt()},pause(){B=!0,S&&(cancelAnimationFrame(S),S=null)},resume(){V||x||(B=!1,C=!0,P=!0,Y=0,gt())},stop(){C=!1,S&&(cancelAnimationFrame(S),S=null)},resize:Lt,pushBook(M,W,j,rt){x||B||(st=performance.now(),X=M,Z=W,J=j,D=rt,gt())},pushTrade(M,W,j,rt){x||B||(st=performance.now(),ot.push(M,W,j,rt),gt())},pushTradesFlat(M){if(!(x||B)){st=performance.now();for(let W=0;W<M.length;W++)ot.push(M[W]);gt()}},setTheme(M){if(!x){try{i.set_theme(M==="light"||M===1?1:0)}catch{}ft()}},setTickSize(M){if(!x){try{i.set_tick_size(M)}catch{}ft()}},setPricePrecision(M){if(!x){try{i.set_price_precision(M)}catch{}ft()}},setTzOffsetSeconds(M){if(x)return;let W=Number.isFinite(M)?Math.trunc(M):0;if(typeof i.set_tz_offset_seconds=="function"){try{i.set_tz_offset_seconds(W)}catch{}ft()}},setLookback(M,W){if(x)return;let j=Math.max(20,W|0),rt=Math.max(j,M|0);if(!(j===f&&rt===u)){f=j,u=rt;try{i.set_lookback(rt,j)}catch{}ft()}},setShowTradeTape(M){x||(i.set_show_trade_tape(!!M),ft())},setShowBookHeatmap(M){x||(i.set_show_book_heatmap(!!M),ft())},setShowVwap(M){x||(i.set_show_vwap(!!M),ft())},setShowGrid(M){x||(i.set_show_grid(!!M),ft())},setHeatmapPalette(M){if(x)return;let W=Math.max(0,Math.min(4,M|0));try{i.set_heatmap_palette?.(W)}catch{}ft()},setHeatmapStyle(M){if(x)return;let W=Math.max(0,Math.min(1,M|0));try{i.set_heatmap_style?.(W)}catch{}ft()},setLargeTrade3d(M){if(!x){try{i.set_large_trade_3d?.(!!M)}catch{}ft()}},setLargeTradeScale(M){if(x)return;let W=Number.isFinite(M)?+M:1;try{i.set_large_trade_scale?.(W)}catch{}ft()},setShowVolume(M){if(!x){try{i.set_show_volume?.(!!M)}catch{}ft()}},setShowPriceLine(M){if(!x){try{i.set_show_price_line?.(!!M)}catch{}ft()}},setShowDepthLens(M){if(!x){try{i.set_show_depth_lens?.(!!M)}catch{}ft()}},setShowCvd(M){if(!x){try{i.set_show_cvd?.(!!M)}catch{}ft()}},setHeatmapIntensity(M,W){if(x)return;let j=Number.isFinite(M)?Math.max(0,Math.min(.99,+M)):0,rt=Number.isFinite(W)?Math.max(j+.01,Math.min(1,+W)):1;try{i.set_heatmap_intensity?.(j,rt)}catch{}ft()},setShowLatestProfile(M){if(!x){try{i.set_show_latest_profile?.(!!M)}catch{}ft()}},setFollowLive(M){x||(i.set_follow_live(!!M),ft())},setAutoScaleY(M){x||(i.set_auto_scale_y(!!M),ft())},resetView(){x||(i.reset_view(),ft())},getLastMid(){if(x)return 0;try{return i.get_last_mid()}catch{return 0}},clearData(){if(!x){try{i.clear()}catch{}ot.length=0,Z=null,J=null,D=0,ft()}},destroy(){if(!V){V=!0,C=!1,B=!0,S&&(cancelAnimationFrame(S),S=null),it();try{i.free?.()}catch{}}}}}export{Qi as buildRange,ji as buildRenko,Ji as buildTick,$i as createChartBridge,Dr as createCustomIndicatorManager,sa as createDomLadderBridge,ea as createIcebergDetector,na as createOrderbookBridge,la as createTickBridge,oe as dispatchCommands,Ki as prefetchEngine,Ki as prefetchWasm,Qr as setupEvents,Di as suggestDefaults,dr as validateLicense};