openalgo-charts 2.3.2 → 2.4.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.
@@ -1,2 +1,2 @@
1
- import{registeredChartTypes as e,getChartType as t,registerRenderBackend as o}from"./openalgo-charts.mjs";const r={upColor:"#26a69a",downColor:"#ef5350",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickUpColor:"#26a69a",wickDownColor:"#ef5350",borderVisible:!0,wickVisible:!0};function i(e,t){const o=Math.floor(e*t*.8);let r=Math.max(1,o);if(r>=2){r%2!=Math.max(1,Math.floor(t))%2&&(r-=1)}return Math.max(1,r)}function n(e,t,o){return o.wickVisible?!0===o.hollow||!1===o.bodyVisible||e>t||o.borderVisible&&e>=3||o.upColor!==o.wickUpColor||o.downColor!==o.wickDownColor?"full":"wick":"full"}function l(e,t,o,r=1){const n=i(t,o),l=Math.max(1,Math.floor(o)),a=Math.round(e*o),s=Math.max(.05,Math.min(1,r)),c=1===s?n:Math.max(1,Math.round(n*s));return{cx:a,bodyX:a-Math.floor(c/2),bodyW:c,wickX:a-Math.floor(l/2),wickW:l}}function a(e,t,o){const r=e.bar;return{cx:Math.round(e.x*o),yOpen:Math.round(t(r.open)*o),yClose:Math.round(t(r.close)*o),yHigh:Math.round(t(r.high)*o),yLow:Math.round(t(r.low)*o),up:r.close>=r.open}}function s(e,t,o=e=>e.close){return e.map(e=>({x:e.x,y:t(o(e.bar))}))}const c=11,u=1e6,h=e=>e===Math.round(e);class b{constructor(e=256){Object.defineProperty(this,"vertices",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"indices",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"quadCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_capacity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._capacity=Math.max(1,e),this.vertices=new Float32Array(4*this._capacity*c),this.indices=new Uint32Array(6*this._capacity),this._fillIndices(0)}get capacity(){return this._capacity}get vertexCount(){return 4*this.quadCount}get indexCount(){return 6*this.quadCount}get floatCount(){return this.vertexCount*c}reset(){this.quadCount=0}rect(e,t,o,r,i){if(!(o>0&&r>0))return;const n=o/2,l=r/2,a=e+n,s=t+l,u=h(e)&&h(t)&&h(e+o)&&h(t+r)?0:1,b=n+u,f=l+u,d=this._claim(),_=this.vertices;this._vertex(_,d,a-b,s-f,i,-b,-f,n,l,0),this._vertex(_,d+c,a+b,s-f,i,b,-f,n,l,0),this._vertex(_,d+22,a-b,s+f,i,-b,f,n,l,0),this._vertex(_,d+33,a+b,s+f,i,b,f,n,l,0)}segment(e,t,o,r,i,n,l){if(!(i>0))return;const a=o-e,s=r-t,u=Math.hypot(a,s);if(!Number.isFinite(u))return;if(0===u&&!l)return;const h=0===u?1:a/u,b=0===u?0:s/u,f=(e+o)/2,d=(t+r)/2,_=u/2,m=_,p=l?0:i,g=l?i:0,v=_+i+1,w=i+1,x=this._claim(),y=this.vertices;this._vertex(y,x,f-h*v+b*w,d-b*v-h*w,n,-v,-w,m,p,g),this._vertex(y,x+c,f+h*v+b*w,d+b*v-h*w,n,v,-w,m,p,g),this._vertex(y,x+22,f-h*v-b*w,d-b*v+h*w,n,-v,w,m,p,g),this._vertex(y,x+33,f+h*v-b*w,d+b*v+h*w,n,v,w,m,p,g)}quad(e,t,o,r,i,n,l,a,s,h,b,f){const d=this._claim(),_=this.vertices;this._vertex(_,d,e,t,o,0,0,u,u,0),this._vertex(_,d+c,r,i,n,0,0,u,u,0),this._vertex(_,d+22,l,a,s,0,0,u,u,0),this._vertex(_,d+33,h,b,f,0,0,u,u,0)}triangle(e,t,o,r,i,n,l,a,s){this.quad(e,t,o,r,i,n,l,a,s,l,a,s)}_claim(){this.quadCount===this._capacity&&this._grow();const e=4*this.quadCount*c;return this.quadCount++,e}_vertex(e,t,o,r,i,n,l,a,s,c){e[t]=o,e[t+1]=r,e[t+2]=i[0],e[t+3]=i[1],e[t+4]=i[2],e[t+5]=i[3],e[t+6]=n,e[t+7]=l,e[t+8]=a,e[t+9]=s,e[t+10]=c}_grow(){const e=this._capacity;this._capacity*=2;const t=new Float32Array(4*this._capacity*c);t.set(this.vertices),this.vertices=t;const o=new Uint32Array(6*this._capacity);o.set(this.indices),this.indices=o,this._fillIndices(e)}_fillIndices(e){const t=this.indices;for(let o=e;o<this._capacity;o++){const e=4*o,r=6*o;t[r]=e,t[r+1]=e+1,t[r+2]=e+2,t[r+3]=e+2,t[r+4]=e+1,t[r+5]=e+3}}}const f=[0,0,0,0];function d(e){return e>0?e<1?e:1:0}function _(e){const t=function(e){const t=e.trim();if(t.startsWith("#")){const e=t.slice(1);if(3===e.length||4===e.length){const[t,o,r,i]=[...e].map(e=>parseInt(e+e,16));return[t,o,r].some(Number.isNaN)?null:{r:t,g:o,b:r,a:4===e.length?i/255:1}}if(6===e.length||8===e.length){const t=parseInt(e.slice(0,6),16);if(Number.isNaN(t))return null;const o=8===e.length?parseInt(e.slice(6,8),16)/255:1;return{r:t>>16&255,g:t>>8&255,b:255&t,a:Number.isNaN(o)?1:o}}return null}const o=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(t);return null===o?null:{r:Number(o[1]),g:Number(o[2]),b:Number(o[3]),a:void 0===o[4]?1:Number(o[4])}}(e);if(null===t)return null;const o=d(t.a);return[d(t.r/255)*o,d(t.g/255)*o,d(t.b/255)*o,o]}function m(e,t,o){return[e[0]+(t[0]-e[0])*o,e[1]+(t[1]-e[1])*o,e[2]+(t[2]-e[2])*o,e[3]+(t[3]-e[3])*o]}class p{constructor(){Object.defineProperty(this,"_map",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}get(e,t){let o=this._map.get(e);if(void 0!==o)return o;if(o=_(e)??void 0,void 0===o&&void 0!==t){const r=t(e);null!==r&&(o=_(r)??void 0)}return void 0===o&&(o=f),this._map.size>=4096&&this._map.clear(),this._map.set(e,o),o}get size(){return this._map.size}clear(){this._map.clear()}}function g(e,t,o){const r=e.createShader(t);if(null===r)throw new Error("openalgo-charts: could not create a WebGL shader");if(e.shaderSource(r,o),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)&&!e.isContextLost()){const t=e.getShaderInfoLog(r)??"";throw e.deleteShader(r),new Error(`openalgo-charts: WebGL shader failed to compile: ${t}`)}return r}const v={alpha:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,depth:!1,stencil:!1};function w(){const e=globalThis.document;if(void 0!==e&&"function"==typeof e.createElement)return e.createElement("canvas");const t=globalThis.OffscreenCanvas;return void 0!==t?new t(1,1):null}class x{constructor(e=w){Object.defineProperty(this,"colors",{enumerable:!0,configurable:!0,writable:!0,value:new p}),Object.defineProperty(this,"_createSurface",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_surface",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_gl",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_program",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_vao",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_vbo",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_ibo",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_indexCapacity",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_refs",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_lost",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_probed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_onLost",{enumerable:!0,configurable:!0,writable:!0,value:e=>{e.preventDefault(),this._lost=!0,this._program=null,this._vao=null,this._vbo=null,this._ibo=null,this._indexCapacity=0}}),Object.defineProperty(this,"_onRestored",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this._lost=!1}}),this._createSurface=e}get available(){if(!this._probed){this._probed=!0,this._surface=this._createSurface();const e=this._surface?.getContext("webgl2",v)??null;null!==e&&(this._gl=e,this._surface?.addEventListener?.("webglcontextlost",this._onLost),this._surface?.addEventListener?.("webglcontextrestored",this._onRestored))}return null!==this._gl}get lost(){return this._lost||null!==this._gl&&this._gl.isContextLost()}get surface(){return this._surface}get refs(){return this._refs}get gl(){return this._gl}acquire(){return!!this.available&&(this._refs++,!0)}release(){0!==this._refs&&(this._refs--,0===this._refs&&null!==this._surface&&(this._surface.width=1,this._surface.height=1))}ensureSize(e,t){const o=this._surface;null!==o&&(o.width<e&&(o.width=e),o.height<t&&(o.height=t))}render(e,t,o){if(null===this._gl||null===this._surface||this.lost)return!1;const r=this._gl;if(null===this._program&&!this._setup(r))return!1;const i=this._program;this.ensureSize(t,o);const n=this._surface.height-o;return r.viewport(0,n,t,o),r.enable(r.SCISSOR_TEST),r.scissor(0,n,t,o),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),0===e.quadCount||(r.useProgram(i.program),r.uniform2f(i.uResolution,t,o),r.bindVertexArray(this._vao),r.bindBuffer(r.ARRAY_BUFFER,this._vbo),r.bufferData(r.ARRAY_BUFFER,e.vertices,r.STREAM_DRAW,0,e.floatCount),e.indices.length>this._indexCapacity&&(r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,this._ibo),r.bufferData(r.ELEMENT_ARRAY_BUFFER,e.indices,r.STATIC_DRAW),this._indexCapacity=e.indices.length),r.drawElements(r.TRIANGLES,e.indexCount,r.UNSIGNED_INT,0),r.bindVertexArray(null)),!0}_setup(e){let t;try{t=function(e){const t=g(e,e.VERTEX_SHADER,"#version 300 es\nprecision highp float;\nuniform vec2 u_resolution;\nin vec2 a_pos;\nin vec4 a_color;\nin vec2 a_local;\nin vec3 a_shape;\nout vec4 v_color;\nout vec2 v_local;\nflat out vec3 v_shape;\nvoid main() {\n vec2 clip = vec2(a_pos.x / u_resolution.x * 2.0 - 1.0, 1.0 - a_pos.y / u_resolution.y * 2.0);\n gl_Position = vec4(clip, 0.0, 1.0);\n v_color = a_color;\n v_local = a_local;\n v_shape = a_shape;\n}\n"),o=g(e,e.FRAGMENT_SHADER,"#version 300 es\nprecision highp float;\nin vec4 v_color;\nin vec2 v_local;\nflat in vec3 v_shape;\nout vec4 fragColor;\nvoid main() {\n vec2 q = abs(v_local) - v_shape.xy;\n float d = length(max(q, 0.0)) + min(max(q.x, q.y), 0.0) - v_shape.z;\n float cov = clamp(0.5 - d, 0.0, 1.0);\n fragColor = clamp(v_color, 0.0, 1.0) * cov;\n}\n"),r=e.createProgram();if(null===r)throw new Error("openalgo-charts: could not create a WebGL program");if(e.attachShader(r,t),e.attachShader(r,o),e.linkProgram(r),e.deleteShader(t),e.deleteShader(o),!e.getProgramParameter(r,e.LINK_STATUS)&&!e.isContextLost()){const t=e.getProgramInfoLog(r)??"";throw e.deleteProgram(r),new Error(`openalgo-charts: WebGL program failed to link: ${t}`)}return{program:r,aPos:e.getAttribLocation(r,"a_pos"),aColor:e.getAttribLocation(r,"a_color"),aLocal:e.getAttribLocation(r,"a_local"),aShape:e.getAttribLocation(r,"a_shape"),uResolution:e.getUniformLocation(r,"u_resolution")}}(e)}catch{return this._gl=null,!1}return this._program=t,this._vao=e.createVertexArray(),this._vbo=e.createBuffer(),this._ibo=e.createBuffer(),this._indexCapacity=0,e.bindVertexArray(this._vao),e.bindBuffer(e.ARRAY_BUFFER,this._vbo),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this._ibo),function(e,t){e.enableVertexAttribArray(t.aPos),e.vertexAttribPointer(t.aPos,2,e.FLOAT,!1,44,0),e.enableVertexAttribArray(t.aColor),e.vertexAttribPointer(t.aColor,4,e.FLOAT,!1,44,8),e.enableVertexAttribArray(t.aLocal),e.vertexAttribPointer(t.aLocal,2,e.FLOAT,!1,44,24),e.enableVertexAttribArray(t.aShape),e.vertexAttribPointer(t.aShape,3,e.FLOAT,!1,44,32)}(e,t),e.bindVertexArray(null),e.disable(e.DEPTH_TEST),e.disable(e.CULL_FACE),e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),!0}}let y=null;function C(){return null===y&&(y=new x),y}function M(){return void 0!==globalThis.WebGL2RenderingContext&&C().available}function P(e,t,o={}){return{...r,upColor:e.upColor??t.upColor,downColor:e.downColor??t.downColor,borderUpColor:e.borderUpColor??t.upColor,borderDownColor:e.borderDownColor??t.downColor,wickUpColor:e.wickUpColor??t.wickUpColor,wickDownColor:e.wickDownColor??t.wickDownColor,borderVisible:e.borderVisible??r.borderVisible,bodyVisible:e.bodyVisible??!0,wickVisible:e.wickVisible??r.wickVisible,colorByPreviousClose:e.colorByPreviousClose,...o}}function A(e,t,o,r,i,n,l){const a=t-n/2,s=o-n/2,c=r+n,u=i+n;r-n<=0||i-n<=0?e.rect(a,s,c,u,l):(e.rect(a,s,c,n,l),e.rect(a,s+u-n,c,n,l),e.rect(a,s+n,n,u-2*n,l),e.rect(a+c-n,s+n,n,u-2*n,l))}function S(e,t,o,r,a,s,c){const u=i(r,a),h=Math.max(1,Math.floor(a)),b=s.widthScale?null:n(u,h,s);for(let i=0;i<t.length;i++){const{x:u,bar:f}=t[i],d=i>0?t[i-1].bar.close:t[i].prevClose,_=!0===s.colorByPreviousClose&&void 0!==d&&Number.isFinite(d)?f.close>=d:f.close>=f.open,m=Math.round(o(f.open)*a),p=Math.round(o(f.close)*a),g=Math.round(o(f.high)*a),v=Math.round(o(f.low)*a),w=l(u,r,a,s.widthScale?s.widthScale(f):1),x=w.cx,y=w.bodyW,C=x-w.bodyX,M=f.color;if(s.wickVisible&&e.rect(w.wickX,g,w.wickW,Math.max(1,v-g),c(M??(_?s.wickUpColor:s.wickDownColor))),"wick"===(b??n(y,h,s)))continue;const P=Math.min(m,p),S=Math.max(1,Math.abs(p-m)),k=M??(_?s.upColor:s.downColor),N=M??(_?s.borderUpColor:s.borderDownColor);if(s.hollow&&_)A(e,x-C+.5,P+.5,y-1,S-1,Math.max(1,h),c(s.borderVisible?N:k));else{const t=!1!==s.bodyVisible;t&&e.rect(x-C,P,y,S,c(k)),s.borderVisible&&(!t||y>=3)&&A(e,x-C+.5,P+.5,y-1,S-1,1,c(N))}}}function k(e,t,o,r,i,n,l,a,s){const c=Math.hypot(r-t,i-o);if(0===c)return;const u=(r-t)/c,h=(i-o)/c;let b=0;for(;b<c;){const r=Math.min(s.rem,c-b);s.idx%2==0&&r>0&&e.segment(t+u*b,o+h*b,t+u*(b+r),o+h*(b+r),n,l,!0),b+=r,s.rem-=r,s.rem<=1e-9&&(s.idx=(s.idx+1)%a.length,s.rem=a[s.idx])}}function N(e,t,o,r,i,n,l,a){let s=l;s.length%2==1&&(s=s.concat(s));let c=0;for(const e of s)c+=e;const u=s.length>0&&c>0,h={idx:0,rem:u?s[0]:0};let b,f,d=a(i);for(let l=0;l<t.length;l++){const c=t[l];if(!Number.isFinite(c.x)||!Number.isFinite(c.y)){b=void 0;continue}if(void 0===b){b=c,h.idx=0,h.rem=u?s[0]:0;continue}const _=void 0===n?f:n[l];_!==f&&(f=_,d=a(_??i),h.idx=0,h.rem=u?s[0]:0),u?k(e,b.x*o,b.y*o,c.x*o,c.y*o,r,d,s,h):e.segment(b.x*o,b.y*o,c.x*o,c.y*o,r,d,!0),b=c}}function F(e,t,o,r,i,n){const l=s(t,o),a=i.step?function(e){if(0===e.length)return[];const t=[{...e[0]}];for(let o=1;o<e.length;o++)t.push({x:e[o].x,y:e[o-1].y}),t.push({x:e[o].x,y:e[o].y});return t}(l):l,c=function(e,t){let o=!1;for(const t of e)if(void 0!==t.bar.color){o=!0;break}if(!o)return;const r=[];for(const o of e)t&&r.length>0&&r.push(o.bar.color),r.push(o.bar.color);return r}(t,!0===i.step),u=i.color??"#4f8cff",h=Math.max(1,(i.lineWidth??1.5)*r)/2;if(i.markersOnly||N(e,a,r,h,u,c,function(e,t){return"dashed"===e.lineStyle?[6*t,4*t]:"dotted"===e.lineStyle?[1*t,3*t]:[]}(i,r),n),i.markers||i.markersOnly){const o=(i.markerRadius??2)*r;for(let i=0;i<l.length;i++){const a=l[i];if(!Number.isFinite(a.x)||!Number.isFinite(a.y))continue;const s=n(void 0!==c?t[i].bar.color??u:u);e.segment(a.x*r,a.y*r,a.x*r,a.y*r,o,s,!0)}}}function O(e,t,o,r,i,n){const l=i(r);let a=NaN,s=NaN;for(const c of t){const t=c.x*o,u=c.y*o;if(Number.isFinite(t)&&Number.isFinite(u)){if(Number.isFinite(a)){const o=s<=r,c=u<=r;if(o===c)"both"!==n&&"above"===n!==o||e.quad(a,s,i(s),t,u,i(u),a,r,l,t,r,l);else{const h=a+(t-a)*(r-s)/(u-s);"both"!==n&&"above"===n!==o||e.triangle(a,s,i(s),h,r,l,a,r,l),"both"!==n&&"above"===n!==c||e.triangle(t,u,i(u),h,r,l,t,r,l)}}a=t,s=u}}}const E=["candlestick","hollow-candle","volume-candle","bar","high-low","line","line-markers","step","area","hlc-area","baseline","column","histogram"],L=new WeakMap;class T{constructor(e=C()){Object.defineProperty(this,"kind",{enumerable:!0,configurable:!0,writable:!0,value:"webgl2"}),Object.defineProperty(this,"device",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_batch",{enumerable:!0,configurable:!0,writable:!0,value:new b}),Object.defineProperty(this,"_canvas",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_ctx",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_widthPx",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_heightPx",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_acquired",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_frame2d",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_color",{enumerable:!0,configurable:!0,writable:!0,value:e=>this.device.colors.get(e,this._normalise)}),Object.defineProperty(this,"_normalise",{enumerable:!0,configurable:!0,writable:!0,value:e=>null===this._ctx?null:function(e,t){const o=e.fillStyle;e.fillStyle="#000000",e.fillStyle=t;const r=e.fillStyle;e.fillStyle="#ffffff",e.fillStyle=t;const i=e.fillStyle;return e.fillStyle=o,"string"==typeof r&&r===i?r:null}(this._ctx,e)}),this.device=e}get batch(){return this._batch}mount(e,t){if(this._canvas=e,this._ctx=t??e.getContext("2d"),null===this._ctx)throw new Error("openalgo-charts: 2D canvas context is not available");this._widthPx=e.width,this._heightPx=e.height,this._acquired=this.device.acquire(),this.device.ensureSize(this._widthPx,this._heightPx)}resize(e,t,o){this._widthPx=Math.round(e*o),this._heightPx=Math.round(t*o),this.device.ensureSize(this._widthPx,this._heightPx)}beginFrame(e){this._batch.reset(),this._frame2d=this.device.lost||null===this.device.gl,e&&null!==this._ctx&&null!==this._canvas&&(this._ctx.setTransform(1,0,0,1,0,0),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height))}drawSeries(o,r,n,l,c,u,h){if(null===this._ctx)return;!this._frame2d&&this.device.lost&&(this._frame2d=!0,this._batch.reset());const b=this._frame2d?null:function(o){let r=L.get(o);if(void 0===r){r=null;const i=new Set(e());for(const e of E)if(i.has(e)&&t(e)===o){r=e;break}L.set(o,r)}return r}(o);if(null===b)return this._flush(),void o.draw(this._ctx,r,n,l,c,u,h);const d=this._batch,_=this._color,p=h.theme;switch(b){case"candlestick":S(d,r,n,l,c,P(u,p),_);break;case"hollow-candle":S(d,r,n,l,c,P(u,p,{hollow:!0}),_);break;case"volume-candle":{const e=h.maxVolume;S(d,r,n,l,c,P(u,p,{widthScale:t=>e>0?(t.volume??0)/e:1}),_);break}case"bar":case"high-low":!function(e,t,o,r,n,l,s,c){const u=Math.max(1,Math.floor(i(r,n)/2)),h=Math.max(1,Math.floor(n));for(let r=0;r<t.length;r++){const i=t[r],b=a(i,o,n),f=r>0?t[r-1].bar.close:i.prevClose,d=!0===l.colorByPreviousClose&&void 0!==f&&Number.isFinite(f)?i.bar.close>=f:b.up,_=c(i.bar.color??(d?l.upColor??"#26a69a":l.downColor??"#ef5350"));e.rect(b.cx-Math.floor(h/2),b.yHigh,h,Math.max(1,b.yLow-b.yHigh),_),s||(e.rect(b.cx-u,b.yOpen,u,h,_),e.rect(b.cx,b.yClose,u,h,_))}}(d,r,n,l,c,{...u,upColor:u.upColor??p.upColor,downColor:u.downColor??p.downColor},"high-low"===b,_);break;case"line":F(d,r,n,c,{...u,color:u.color??p.lineColor},_);break;case"line-markers":F(d,r,n,c,{...u,color:u.color??p.lineColor,markers:!0},_);break;case"step":F(d,r,n,c,{...u,color:u.color??p.lineColor,step:!0},_);break;case"area":!function(e,t,o,r,i,n,l){const a=s(t,o);if(0===a.length)return;const c=i*r;if(c>0){const t=l(n.areaTopColor??"rgba(79,140,255,0.40)"),o=l(n.areaBottomColor??"rgba(79,140,255,0.00)");O(e,a,r,c,e=>m(t,o,e/c),"both")}F(e,t,o,r,{color:n.color??"#4f8cff",lineWidth:n.lineWidth??1.5,lineStyle:n.lineStyle},l)}(d,r,n,c,h.plotHeight,{...u,color:u.color??p.lineColor,areaTopColor:u.areaTopColor??p.areaTopColor,areaBottomColor:u.areaBottomColor??p.areaBottomColor},_);break;case"hlc-area":!function(e,t,o,r,i,n){if(0===t.length)return;const l=s(t,o,e=>e.high),a=s(t,o,e=>e.low),c=n(i.areaTopColor??"rgba(79,140,255,0.15)");let u=-1;for(let o=0;o<t.length;o++){const t=l[o],i=a[o];if(Number.isFinite(t.x)&&Number.isFinite(t.y)&&Number.isFinite(i.y)){if(u>=0){const o=l[u],n=a[u];e.quad(o.x*r,o.y*r,c,t.x*r,t.y*r,c,n.x*r,n.y*r,c,i.x*r,i.y*r,c)}u=o}}const h=Math.max(1,Math.round((i.lineWidth??1.5)*r))/2;for(const[t,o]of[[i.highColor,l],[i.lowColor,a]])void 0!==t&&N(e,o,r,h,t,void 0,[],n);F(e,t,o,r,{color:i.closeColor??"#4f8cff",lineWidth:i.lineWidth??1.5},n)}(d,r,n,c,{...u,closeColor:u.closeColor??p.lineColor},_);break;case"baseline":!function(e,t,o,r,i,n){const l=o(i.baseValue??0)*r,a=s(t,o);if(0===a.length||!Number.isFinite(l))return;if(l>0){const t=n(i.areaTopColor??"rgba(38,166,154,0.20)");O(e,a,r,l,e=>m(t,f,e/l),"above")}const c=n(i.areaBottomColor??"rgba(239,83,80,0.20)");O(e,a,r,l,()=>c,"below");const u=Math.max(1,Math.round((i.lineWidth??1.5)*r))/2,h=n(i.topColor??"#26a69a"),b=n(i.bottomColor??"#ef5350");for(let t=1;t<a.length;t++){const o=a[t-1],i=a[t];if(!(Number.isFinite(o.x)&&Number.isFinite(o.y)&&Number.isFinite(i.x)&&Number.isFinite(i.y)))continue;const n=(o.y+i.y)/2<=l/r;e.segment(o.x*r,o.y*r,i.x*r,i.y*r,u,n?h:b,!1)}}(d,r,n,c,{...u,topColor:u.topColor??p.baselineTopLine,bottomColor:u.bottomColor??p.baselineBottomLine,areaTopColor:u.areaTopColor??p.baselineTopFill,areaBottomColor:u.areaBottomColor??p.baselineBottomFill},_);break;case"column":!function(e,t,o,r,n,l,s){const c=i(r,n),u=Math.floor(c/2),h=Math.round(o(l.base??0)*n);for(const r of t){const t=a(r,o,n),i=r.bar.color??l.color??(t.up?l.upColor??"#26a69a":l.downColor??"#ef5350"),b=Math.min(h,t.yClose);e.rect(t.cx-u,b,c,Math.max(1,Math.abs(h-t.yClose)),s(i))}}(d,r,n,l,c,{...u,upColor:u.upColor??p.upColor,downColor:u.downColor??p.downColor},_);break;case"histogram":!function(e,t,o,r,n,l,a,s){const c=i(r,n),u=Math.floor(c/2),h=Math.round(o(a)*n);for(const{x:r,bar:i}of t){const t=Math.round(r*n),a=Math.round(o(i.close)*n),b=Math.min(h,a);e.rect(t-u,b,c,Math.max(1,Math.abs(h-a)),s(i.color??l))}}(d,r,n,l,c,u.color??"#3a4666",u.base??0,_)}}endFrame(){this._flush()}overlay2d(){return this._ctx}destroy(){this._acquired&&this.device.release(),this._acquired=!1,this._batch.reset(),this._ctx=null,this._canvas=null}_flush(){const e=this._batch;if(0===e.quadCount||null===this._ctx)return;const t=this._widthPx,o=this._heightPx,r=this.device.surface;t>0&&o>0&&null!==r&&this.device.render(e,t,o)&&this._ctx.drawImage(r,0,0,t,o,0,0,t,o),e.reset()}}function R(e){return void 0===e?M()?new T(C()):null:e.available?new T(e):null}const j="webgl";let B=!1;function V(){B||(B=!0,o("webgl2",()=>R()))}V();export{x as GlDevice,j as WEBGL_TIER,T as WebGL2Backend,R as createWebGL2Backend,M as isWebGL2Supported,V as registerWebGL2Renderer,C as sharedGlDevice};
1
+ import{registeredChartTypes as e,getChartType as t,registerRenderBackend as o}from"./openalgo-charts.mjs";const r={upColor:"#26a69a",downColor:"#ef5350",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickUpColor:"#26a69a",wickDownColor:"#ef5350",borderVisible:!0,wickVisible:!0};function i(e,t){const o=Math.floor(e*t*.8);let r=Math.max(1,o);if(r>=2){r%2!=Math.max(1,Math.floor(t))%2&&(r-=1)}return Math.max(1,r)}function n(e,t,o){return o.wickVisible?!0===o.hollow||!1===o.bodyVisible||e>t||o.borderVisible&&e>=3||o.upColor!==o.wickUpColor||o.downColor!==o.wickDownColor?"full":"wick":"full"}function l(e,t,o,r=1){const n=i(t,o),l=Math.max(1,Math.floor(o)),a=Math.round(e*o),s=Math.max(.05,Math.min(1,r)),c=1===s?n:Math.max(1,Math.round(n*s));return{cx:a,bodyX:a-Math.floor(c/2),bodyW:c,wickX:a-Math.floor(l/2),wickW:l}}function a(e,t,o){const r=e.bar;return{cx:Math.round(e.x*o),yOpen:Math.round(t(r.open)*o),yClose:Math.round(t(r.close)*o),yHigh:Math.round(t(r.high)*o),yLow:Math.round(t(r.low)*o),up:r.close>=r.open}}function s(e,t,o=e=>e.close){return e.map(e=>({x:e.x,y:t(o(e.bar))}))}const c=11,u=1e6,h=e=>e===Math.round(e);class b{constructor(e=256){Object.defineProperty(this,"vertices",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"indices",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"quadCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_capacity",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._capacity=Math.max(1,e),this.vertices=new Float32Array(4*this._capacity*c),this.indices=new Uint32Array(6*this._capacity),this._fillIndices(0)}get capacity(){return this._capacity}get vertexCount(){return 4*this.quadCount}get indexCount(){return 6*this.quadCount}get floatCount(){return this.vertexCount*c}reset(){this.quadCount=0}rect(e,t,o,r,i){if(!(o>0&&r>0))return;const n=o/2,l=r/2,a=e+n,s=t+l,u=h(e)&&h(t)&&h(e+o)&&h(t+r)?0:1,b=n+u,f=l+u,d=this._claim(),_=this.vertices;this._vertex(_,d,a-b,s-f,i,-b,-f,n,l,0),this._vertex(_,d+c,a+b,s-f,i,b,-f,n,l,0),this._vertex(_,d+22,a-b,s+f,i,-b,f,n,l,0),this._vertex(_,d+33,a+b,s+f,i,b,f,n,l,0)}segment(e,t,o,r,i,n,l){if(!(i>0))return;const a=o-e,s=r-t,u=Math.hypot(a,s);if(!Number.isFinite(u))return;if(0===u&&!l)return;const h=0===u?1:a/u,b=0===u?0:s/u,f=(e+o)/2,d=(t+r)/2,_=u/2,m=_,p=l?0:i,g=l?i:0,v=_+i+1,w=i+1,x=this._claim(),y=this.vertices;this._vertex(y,x,f-h*v+b*w,d-b*v-h*w,n,-v,-w,m,p,g),this._vertex(y,x+c,f+h*v+b*w,d+b*v-h*w,n,v,-w,m,p,g),this._vertex(y,x+22,f-h*v-b*w,d-b*v+h*w,n,-v,w,m,p,g),this._vertex(y,x+33,f+h*v-b*w,d+b*v+h*w,n,v,w,m,p,g)}quad(e,t,o,r,i,n,l,a,s,h,b,f){const d=this._claim(),_=this.vertices;this._vertex(_,d,e,t,o,0,0,u,u,0),this._vertex(_,d+c,r,i,n,0,0,u,u,0),this._vertex(_,d+22,l,a,s,0,0,u,u,0),this._vertex(_,d+33,h,b,f,0,0,u,u,0)}triangle(e,t,o,r,i,n,l,a,s){this.quad(e,t,o,r,i,n,l,a,s,l,a,s)}_claim(){this.quadCount===this._capacity&&this._grow();const e=4*this.quadCount*c;return this.quadCount++,e}_vertex(e,t,o,r,i,n,l,a,s,c){e[t]=o,e[t+1]=r,e[t+2]=i[0],e[t+3]=i[1],e[t+4]=i[2],e[t+5]=i[3],e[t+6]=n,e[t+7]=l,e[t+8]=a,e[t+9]=s,e[t+10]=c}_grow(){const e=this._capacity;this._capacity*=2;const t=new Float32Array(4*this._capacity*c);t.set(this.vertices),this.vertices=t;const o=new Uint32Array(6*this._capacity);o.set(this.indices),this.indices=o,this._fillIndices(e)}_fillIndices(e){const t=this.indices;for(let o=e;o<this._capacity;o++){const e=4*o,r=6*o;t[r]=e,t[r+1]=e+1,t[r+2]=e+2,t[r+3]=e+2,t[r+4]=e+1,t[r+5]=e+3}}}const f=[0,0,0,0];function d(e){return e>0?e<1?e:1:0}function _(e){const t=function(e){const t=e.trim();if(t.startsWith("#")){const e=t.slice(1);if(3===e.length||4===e.length){const[t,o,r,i]=[...e].map(e=>parseInt(e+e,16));return[t,o,r].some(Number.isNaN)?null:{r:t,g:o,b:r,a:4===e.length?i/255:1}}if(6===e.length||8===e.length){const t=parseInt(e.slice(0,6),16);if(Number.isNaN(t))return null;const o=8===e.length?parseInt(e.slice(6,8),16)/255:1;return{r:t>>16&255,g:t>>8&255,b:255&t,a:Number.isNaN(o)?1:o}}return null}const o=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(t);return null===o?null:{r:Number(o[1]),g:Number(o[2]),b:Number(o[3]),a:void 0===o[4]?1:Number(o[4])}}(e);if(null===t)return null;const o=d(t.a);return[d(t.r/255)*o,d(t.g/255)*o,d(t.b/255)*o,o]}function m(e,t,o){return[e[0]+(t[0]-e[0])*o,e[1]+(t[1]-e[1])*o,e[2]+(t[2]-e[2])*o,e[3]+(t[3]-e[3])*o]}class p{constructor(){Object.defineProperty(this,"_map",{enumerable:!0,configurable:!0,writable:!0,value:new Map})}get(e,t){let o=this._map.get(e);if(void 0!==o)return o;if(o=_(e)??void 0,void 0===o&&void 0!==t){const r=t(e);null!==r&&(o=_(r)??void 0)}return void 0===o&&(o=f),this._map.size>=4096&&this._map.clear(),this._map.set(e,o),o}get size(){return this._map.size}clear(){this._map.clear()}}function g(e,t,o){const r=e.createShader(t);if(null===r)throw new Error("openalgo-charts: could not create a WebGL shader");if(e.shaderSource(r,o),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)&&!e.isContextLost()){const t=e.getShaderInfoLog(r)??"";throw e.deleteShader(r),new Error(`openalgo-charts: WebGL shader failed to compile: ${t}`)}return r}const v={alpha:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,depth:!1,stencil:!1};function w(){const e=globalThis.document;if(void 0!==e&&"function"==typeof e.createElement)return e.createElement("canvas");const t=globalThis.OffscreenCanvas;return void 0!==t?new t(1,1):null}class x{constructor(e=w){Object.defineProperty(this,"colors",{enumerable:!0,configurable:!0,writable:!0,value:new p}),Object.defineProperty(this,"_createSurface",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_surface",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_gl",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_program",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_vao",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_vbo",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_ibo",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_indexCapacity",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_refs",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_lost",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_probed",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_onLost",{enumerable:!0,configurable:!0,writable:!0,value:e=>{e.preventDefault(),this._lost=!0,this._program=null,this._vao=null,this._vbo=null,this._ibo=null,this._indexCapacity=0}}),Object.defineProperty(this,"_onRestored",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this._lost=!1}}),this._createSurface=e}get available(){if(!this._probed){this._probed=!0,this._surface=this._createSurface();const e=this._surface?.getContext("webgl2",v)??null;null!==e&&(this._gl=e,this._surface?.addEventListener?.("webglcontextlost",this._onLost),this._surface?.addEventListener?.("webglcontextrestored",this._onRestored))}return null!==this._gl}get lost(){return this._lost||null!==this._gl&&this._gl.isContextLost()}get surface(){return this._surface}get refs(){return this._refs}get gl(){return this._gl}acquire(){return!!this.available&&(this._refs++,!0)}release(){0!==this._refs&&(this._refs--,0===this._refs&&null!==this._surface&&(this._surface.width=1,this._surface.height=1))}ensureSize(e,t){const o=this._surface;null!==o&&(o.width<e&&(o.width=e),o.height<t&&(o.height=t))}render(e,t,o){if(null===this._gl||null===this._surface||this.lost)return!1;const r=this._gl;if(null===this._program&&!this._setup(r))return!1;const i=this._program;this.ensureSize(t,o);const n=this._surface.height-o;return r.viewport(0,n,t,o),r.enable(r.SCISSOR_TEST),r.scissor(0,n,t,o),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),0===e.quadCount||(r.useProgram(i.program),r.uniform2f(i.uResolution,t,o),r.bindVertexArray(this._vao),r.bindBuffer(r.ARRAY_BUFFER,this._vbo),r.bufferData(r.ARRAY_BUFFER,e.vertices,r.STREAM_DRAW,0,e.floatCount),e.indices.length>this._indexCapacity&&(r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,this._ibo),r.bufferData(r.ELEMENT_ARRAY_BUFFER,e.indices,r.STATIC_DRAW),this._indexCapacity=e.indices.length),r.drawElements(r.TRIANGLES,e.indexCount,r.UNSIGNED_INT,0),r.bindVertexArray(null)),!0}_setup(e){let t;try{t=function(e){const t=g(e,e.VERTEX_SHADER,"#version 300 es\nprecision highp float;\nuniform vec2 u_resolution;\nin vec2 a_pos;\nin vec4 a_color;\nin vec2 a_local;\nin vec3 a_shape;\nout vec4 v_color;\nout vec2 v_local;\nflat out vec3 v_shape;\nvoid main() {\n vec2 clip = vec2(a_pos.x / u_resolution.x * 2.0 - 1.0, 1.0 - a_pos.y / u_resolution.y * 2.0);\n gl_Position = vec4(clip, 0.0, 1.0);\n v_color = a_color;\n v_local = a_local;\n v_shape = a_shape;\n}\n"),o=g(e,e.FRAGMENT_SHADER,"#version 300 es\nprecision highp float;\nin vec4 v_color;\nin vec2 v_local;\nflat in vec3 v_shape;\nout vec4 fragColor;\nvoid main() {\n vec2 q = abs(v_local) - v_shape.xy;\n float d = length(max(q, 0.0)) + min(max(q.x, q.y), 0.0) - v_shape.z;\n float cov = clamp(0.5 - d, 0.0, 1.0);\n fragColor = clamp(v_color, 0.0, 1.0) * cov;\n}\n"),r=e.createProgram();if(null===r)throw new Error("openalgo-charts: could not create a WebGL program");if(e.attachShader(r,t),e.attachShader(r,o),e.linkProgram(r),e.deleteShader(t),e.deleteShader(o),!e.getProgramParameter(r,e.LINK_STATUS)&&!e.isContextLost()){const t=e.getProgramInfoLog(r)??"";throw e.deleteProgram(r),new Error(`openalgo-charts: WebGL program failed to link: ${t}`)}return{program:r,aPos:e.getAttribLocation(r,"a_pos"),aColor:e.getAttribLocation(r,"a_color"),aLocal:e.getAttribLocation(r,"a_local"),aShape:e.getAttribLocation(r,"a_shape"),uResolution:e.getUniformLocation(r,"u_resolution")}}(e)}catch{return this._gl=null,!1}return this._program=t,this._vao=e.createVertexArray(),this._vbo=e.createBuffer(),this._ibo=e.createBuffer(),this._indexCapacity=0,e.bindVertexArray(this._vao),e.bindBuffer(e.ARRAY_BUFFER,this._vbo),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this._ibo),function(e,t){e.enableVertexAttribArray(t.aPos),e.vertexAttribPointer(t.aPos,2,e.FLOAT,!1,44,0),e.enableVertexAttribArray(t.aColor),e.vertexAttribPointer(t.aColor,4,e.FLOAT,!1,44,8),e.enableVertexAttribArray(t.aLocal),e.vertexAttribPointer(t.aLocal,2,e.FLOAT,!1,44,24),e.enableVertexAttribArray(t.aShape),e.vertexAttribPointer(t.aShape,3,e.FLOAT,!1,44,32)}(e,t),e.bindVertexArray(null),e.disable(e.DEPTH_TEST),e.disable(e.CULL_FACE),e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),!0}}let y=null;function C(){return null===y&&(y=new x),y}function M(){return void 0!==globalThis.WebGL2RenderingContext&&C().available}function P(e,t,o={}){return{...r,upColor:e.upColor??t.upColor,downColor:e.downColor??t.downColor,borderUpColor:e.borderUpColor??t.upColor,borderDownColor:e.borderDownColor??t.downColor,wickUpColor:e.wickUpColor??t.wickUpColor,wickDownColor:e.wickDownColor??t.wickDownColor,borderVisible:e.borderVisible??r.borderVisible,bodyVisible:e.bodyVisible??!0,wickVisible:e.wickVisible??r.wickVisible,colorByPreviousClose:e.colorByPreviousClose,...o}}function A(e,t,o,r,i,n,l){const a=t-n/2,s=o-n/2,c=r+n,u=i+n;r-n<=0||i-n<=0?e.rect(a,s,c,u,l):(e.rect(a,s,c,n,l),e.rect(a,s+u-n,c,n,l),e.rect(a,s+n,n,u-2*n,l),e.rect(a+c-n,s+n,n,u-2*n,l))}function S(e,t,o,r,a,s,c){const u=i(r,a),h=Math.max(1,Math.floor(a)),b=s.widthScale?null:n(u,h,s);for(let i=0;i<t.length;i++){const{x:u,bar:f}=t[i],d=i>0?t[i-1].bar.close:t[i].prevClose,_=!0===s.colorByPreviousClose&&void 0!==d&&Number.isFinite(d)?f.close>=d:f.close>=f.open,m=Math.round(o(f.open)*a),p=Math.round(o(f.close)*a),g=Math.round(o(f.high)*a),v=Math.round(o(f.low)*a),w=l(u,r,a,s.widthScale?s.widthScale(f):1),x=w.cx,y=w.bodyW,C=x-w.bodyX,M=f.color,P=M??(_?s.upColor:s.downColor),S=f.wickColor??M??(_?s.wickUpColor:s.wickDownColor),k=f.borderColor??M??(_?s.borderUpColor:s.borderDownColor);if(s.wickVisible&&e.rect(w.wickX,g,w.wickW,Math.max(1,v-g),c(S)),"wick"===(b??n(y,h,s))&&S===P)continue;const N=Math.min(m,p),F=Math.max(1,Math.abs(p-m));if(s.hollow&&_)A(e,x-C+.5,N+.5,y-1,F-1,Math.max(1,h),c(s.borderVisible?k:P));else{const t=!1!==s.bodyVisible;t&&e.rect(x-C,N,y,F,c(P)),s.borderVisible&&(!t||y>=3)&&A(e,x-C+.5,N+.5,y-1,F-1,1,c(k))}}}function k(e,t,o,r,i,n,l,a,s){const c=Math.hypot(r-t,i-o);if(0===c)return;const u=(r-t)/c,h=(i-o)/c;let b=0;for(;b<c;){const r=Math.min(s.rem,c-b);s.idx%2==0&&r>0&&e.segment(t+u*b,o+h*b,t+u*(b+r),o+h*(b+r),n,l,!0),b+=r,s.rem-=r,s.rem<=1e-9&&(s.idx=(s.idx+1)%a.length,s.rem=a[s.idx])}}function N(e,t,o,r,i,n,l,a){let s=l;s.length%2==1&&(s=s.concat(s));let c=0;for(const e of s)c+=e;const u=s.length>0&&c>0,h={idx:0,rem:u?s[0]:0};let b,f,d=a(i);for(let l=0;l<t.length;l++){const c=t[l];if(!Number.isFinite(c.x)||!Number.isFinite(c.y)){b=void 0;continue}if(void 0===b){b=c,h.idx=0,h.rem=u?s[0]:0;continue}const _=void 0===n?f:n[l];_!==f&&(f=_,d=a(_??i),h.idx=0,h.rem=u?s[0]:0),u?k(e,b.x*o,b.y*o,c.x*o,c.y*o,r,d,s,h):e.segment(b.x*o,b.y*o,c.x*o,c.y*o,r,d,!0),b=c}}function F(e,t,o,r,i,n){const l=s(t,o),a=i.step?function(e){if(0===e.length)return[];const t=[{...e[0]}];for(let o=1;o<e.length;o++)t.push({x:e[o].x,y:e[o-1].y}),t.push({x:e[o].x,y:e[o].y});return t}(l):l,c=function(e,t){let o=!1;for(const t of e)if(void 0!==t.bar.color){o=!0;break}if(!o)return;const r=[];for(const o of e)t&&r.length>0&&r.push(o.bar.color),r.push(o.bar.color);return r}(t,!0===i.step),u=i.color??"#4f8cff",h=Math.max(1,(i.lineWidth??1.5)*r)/2;if(i.markersOnly||N(e,a,r,h,u,c,function(e,t){return"dashed"===e.lineStyle?[6*t,4*t]:"dotted"===e.lineStyle?[1*t,3*t]:[]}(i,r),n),i.markers||i.markersOnly){const o=(i.markerRadius??2)*r;for(let i=0;i<l.length;i++){const a=l[i];if(!Number.isFinite(a.x)||!Number.isFinite(a.y))continue;const s=n(void 0!==c?t[i].bar.color??u:u);e.segment(a.x*r,a.y*r,a.x*r,a.y*r,o,s,!0)}}}function O(e,t,o,r,i,n){const l=i(r);let a=NaN,s=NaN;for(const c of t){const t=c.x*o,u=c.y*o;if(Number.isFinite(t)&&Number.isFinite(u)){if(Number.isFinite(a)){const o=s<=r,c=u<=r;if(o===c)"both"!==n&&"above"===n!==o||e.quad(a,s,i(s),t,u,i(u),a,r,l,t,r,l);else{const h=a+(t-a)*(r-s)/(u-s);"both"!==n&&"above"===n!==o||e.triangle(a,s,i(s),h,r,l,a,r,l),"both"!==n&&"above"===n!==c||e.triangle(t,u,i(u),h,r,l,t,r,l)}}a=t,s=u}}}const E=["candlestick","hollow-candle","volume-candle","bar","high-low","line","line-markers","step","area","hlc-area","baseline","column","histogram"],L=new WeakMap;class T{constructor(e=C()){Object.defineProperty(this,"kind",{enumerable:!0,configurable:!0,writable:!0,value:"webgl2"}),Object.defineProperty(this,"device",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_batch",{enumerable:!0,configurable:!0,writable:!0,value:new b}),Object.defineProperty(this,"_canvas",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_ctx",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_widthPx",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_heightPx",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_acquired",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_frame2d",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_color",{enumerable:!0,configurable:!0,writable:!0,value:e=>this.device.colors.get(e,this._normalise)}),Object.defineProperty(this,"_normalise",{enumerable:!0,configurable:!0,writable:!0,value:e=>null===this._ctx?null:function(e,t){const o=e.fillStyle;e.fillStyle="#000000",e.fillStyle=t;const r=e.fillStyle;e.fillStyle="#ffffff",e.fillStyle=t;const i=e.fillStyle;return e.fillStyle=o,"string"==typeof r&&r===i?r:null}(this._ctx,e)}),this.device=e}get batch(){return this._batch}mount(e,t){if(this._canvas=e,this._ctx=t??e.getContext("2d"),null===this._ctx)throw new Error("openalgo-charts: 2D canvas context is not available");this._widthPx=e.width,this._heightPx=e.height,this._acquired=this.device.acquire(),this.device.ensureSize(this._widthPx,this._heightPx)}resize(e,t,o){this._widthPx=Math.round(e*o),this._heightPx=Math.round(t*o),this.device.ensureSize(this._widthPx,this._heightPx)}beginFrame(e){this._batch.reset(),this._frame2d=this.device.lost||null===this.device.gl,e&&null!==this._ctx&&null!==this._canvas&&(this._ctx.setTransform(1,0,0,1,0,0),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height))}drawSeries(o,r,n,l,c,u,h){if(null===this._ctx)return;!this._frame2d&&this.device.lost&&(this._frame2d=!0,this._batch.reset());const b=this._frame2d?null:function(o){let r=L.get(o);if(void 0===r){r=null;const i=new Set(e());for(const e of E)if(i.has(e)&&t(e)===o){r=e;break}L.set(o,r)}return r}(o);if(null===b)return this._flush(),void o.draw(this._ctx,r,n,l,c,u,h);const d=this._batch,_=this._color,p=h.theme;switch(b){case"candlestick":S(d,r,n,l,c,P(u,p),_);break;case"hollow-candle":S(d,r,n,l,c,P(u,p,{hollow:!0}),_);break;case"volume-candle":{const e=h.maxVolume;S(d,r,n,l,c,P(u,p,{widthScale:t=>e>0?(t.volume??0)/e:1}),_);break}case"bar":case"high-low":!function(e,t,o,r,n,l,s,c){const u=Math.max(1,Math.floor(i(r,n)/2)),h=Math.max(1,Math.floor(n));for(let r=0;r<t.length;r++){const i=t[r],b=a(i,o,n),f=r>0?t[r-1].bar.close:i.prevClose,d=!0===l.colorByPreviousClose&&void 0!==f&&Number.isFinite(f)?i.bar.close>=f:b.up,_=c(i.bar.color??(d?l.upColor??"#26a69a":l.downColor??"#ef5350"));e.rect(b.cx-Math.floor(h/2),b.yHigh,h,Math.max(1,b.yLow-b.yHigh),_),s||(e.rect(b.cx-u,b.yOpen,u,h,_),e.rect(b.cx,b.yClose,u,h,_))}}(d,r,n,l,c,{...u,upColor:u.upColor??p.upColor,downColor:u.downColor??p.downColor},"high-low"===b,_);break;case"line":F(d,r,n,c,{...u,color:u.color??p.lineColor},_);break;case"line-markers":F(d,r,n,c,{...u,color:u.color??p.lineColor,markers:!0},_);break;case"step":F(d,r,n,c,{...u,color:u.color??p.lineColor,step:!0},_);break;case"area":!function(e,t,o,r,i,n,l){const a=s(t,o);if(0===a.length)return;const c=i*r;if(c>0){const t=l(n.areaTopColor??"rgba(79,140,255,0.40)"),o=l(n.areaBottomColor??"rgba(79,140,255,0.00)");O(e,a,r,c,e=>m(t,o,e/c),"both")}F(e,t,o,r,{color:n.color??"#4f8cff",lineWidth:n.lineWidth??1.5,lineStyle:n.lineStyle},l)}(d,r,n,c,h.plotHeight,{...u,color:u.color??p.lineColor,areaTopColor:u.areaTopColor??p.areaTopColor,areaBottomColor:u.areaBottomColor??p.areaBottomColor},_);break;case"hlc-area":!function(e,t,o,r,i,n){if(0===t.length)return;const l=s(t,o,e=>e.high),a=s(t,o,e=>e.low),c=n(i.areaTopColor??"rgba(79,140,255,0.15)");let u=-1;for(let o=0;o<t.length;o++){const t=l[o],i=a[o];if(Number.isFinite(t.x)&&Number.isFinite(t.y)&&Number.isFinite(i.y)){if(u>=0){const o=l[u],n=a[u];e.quad(o.x*r,o.y*r,c,t.x*r,t.y*r,c,n.x*r,n.y*r,c,i.x*r,i.y*r,c)}u=o}}const h=Math.max(1,Math.round((i.lineWidth??1.5)*r))/2;for(const[t,o]of[[i.highColor,l],[i.lowColor,a]])void 0!==t&&N(e,o,r,h,t,void 0,[],n);F(e,t,o,r,{color:i.closeColor??"#4f8cff",lineWidth:i.lineWidth??1.5},n)}(d,r,n,c,{...u,closeColor:u.closeColor??p.lineColor},_);break;case"baseline":!function(e,t,o,r,i,n){const l=o(i.baseValue??0)*r,a=s(t,o);if(0===a.length||!Number.isFinite(l))return;if(l>0){const t=n(i.areaTopColor??"rgba(38,166,154,0.20)");O(e,a,r,l,e=>m(t,f,e/l),"above")}const c=n(i.areaBottomColor??"rgba(239,83,80,0.20)");O(e,a,r,l,()=>c,"below");const u=Math.max(1,Math.round((i.lineWidth??1.5)*r))/2,h=n(i.topColor??"#26a69a"),b=n(i.bottomColor??"#ef5350");for(let t=1;t<a.length;t++){const o=a[t-1],i=a[t];if(!(Number.isFinite(o.x)&&Number.isFinite(o.y)&&Number.isFinite(i.x)&&Number.isFinite(i.y)))continue;const n=(o.y+i.y)/2<=l/r;e.segment(o.x*r,o.y*r,i.x*r,i.y*r,u,n?h:b,!1)}}(d,r,n,c,{...u,topColor:u.topColor??p.baselineTopLine,bottomColor:u.bottomColor??p.baselineBottomLine,areaTopColor:u.areaTopColor??p.baselineTopFill,areaBottomColor:u.areaBottomColor??p.baselineBottomFill},_);break;case"column":!function(e,t,o,r,n,l,s){const c=i(r,n),u=Math.floor(c/2),h=Math.round(o(l.base??0)*n);for(const r of t){const t=a(r,o,n),i=r.bar.color??l.color??(t.up?l.upColor??"#26a69a":l.downColor??"#ef5350"),b=Math.min(h,t.yClose);e.rect(t.cx-u,b,c,Math.max(1,Math.abs(h-t.yClose)),s(i))}}(d,r,n,l,c,{...u,upColor:u.upColor??p.upColor,downColor:u.downColor??p.downColor},_);break;case"histogram":!function(e,t,o,r,n,l,a,s){const c=i(r,n),u=Math.floor(c/2),h=Math.round(o(a)*n);for(const{x:r,bar:i}of t){const t=Math.round(r*n),a=Math.round(o(i.close)*n),b=Math.min(h,a);e.rect(t-u,b,c,Math.max(1,Math.abs(h-a)),s(i.color??l))}}(d,r,n,l,c,u.color??"#3a4666",u.base??0,_)}}endFrame(){this._flush()}overlay2d(){return this._ctx}destroy(){this._acquired&&this.device.release(),this._acquired=!1,this._batch.reset(),this._ctx=null,this._canvas=null}_flush(){const e=this._batch;if(0===e.quadCount||null===this._ctx)return;const t=this._widthPx,o=this._heightPx,r=this.device.surface;t>0&&o>0&&null!==r&&this.device.render(e,t,o)&&this._ctx.drawImage(r,0,0,t,o,0,0,t,o),e.reset()}}function R(e){return void 0===e?M()?new T(C()):null:e.available?new T(e):null}const j="webgl";let B=!1;function V(){B||(B=!0,o("webgl2",()=>R()))}V();export{x as GlDevice,j as WEBGL_TIER,T as WebGL2Backend,R as createWebGL2Backend,M as isWebGL2Supported,V as registerWebGL2Renderer,C as sharedGlDevice};
2
2
  //# sourceMappingURL=openalgo-charts.webgl.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"openalgo-charts.webgl.mjs","sources":["../src/render/candles.ts","../src/render/bars.ts","../src/render/line.ts","../src/render/webgl/batch.ts","../src/render/webgl/color.ts","../src/render/pill.ts","../src/render/webgl/shaders.ts","../src/render/webgl/backend.ts","../src/webgl/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["DEFAULT_CANDLE_STYLE","upColor","downColor","borderUpColor","borderDownColor","wickUpColor","wickDownColor","borderVisible","wickVisible","optimalBarWidth","barSpacing","dpr","raw","Math","floor","w","max","candleTier","bodyW","wickW","style","hollow","bodyVisible","candleGeometry","x","widthScale","fullW","cx","round","scale","min","bodyX","wickX","barGeometry","item","toY","b","bar","yOpen","open","yClose","close","yHigh","high","yLow","low","up","valuePoints","items","value","map","it","y","FLOATS_PER_VERTEX","SOLID","whole","v","VertexBatch","constructor","capacity","Object","defineProperty","this","_capacity","vertices","Float32Array","indices","Uint32Array","_fillIndices","vertexCount","quadCount","indexCount","floatCount","reset","rect","h","color","hx","hy","cy","skirt","ex","ey","o","_claim","_vertex","segment","x0","y0","x1","y1","hw","dx","dy","len","hypot","Number","isFinite","ux","uy","half","rad","quad","c0","c1","x2","y2","c2","x3","y3","c3","triangle","_grow","c","u","from","set","ix","q","TRANSPARENT","unit","parsePremultiplied","css","trim","startsWith","hex","slice","length","r","g","a","parseInt","some","isNaN","n","m","exec","undefined","parseColor","lerpPremultiplied","t","ColorCache","Map","get","normalise","out","_map","plain","size","clear","compile","gl","type","source","shader","createShader","Error","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","isContextLost","log","getShaderInfoLog","deleteShader","CONTEXT_ATTRIBUTES","alpha","antialias","premultipliedAlpha","preserveDrawingBuffer","depth","stencil","defaultSurface","doc","globalThis","document","createElement","Offscreen","OffscreenCanvas","GlDevice","createSurface","e","preventDefault","_lost","_program","_vao","_vbo","_ibo","_indexCapacity","_createSurface","available","_probed","_surface","getContext","_gl","addEventListener","_onLost","_onRestored","lost","surface","refs","_refs","acquire","release","width","height","ensureSize","widthPx","heightPx","s","render","batch","_setup","p","viewport","enable","SCISSOR_TEST","scissor","clearColor","COLOR_BUFFER_BIT","useProgram","program","uniform2f","uResolution","bindVertexArray","bindBuffer","ARRAY_BUFFER","bufferData","STREAM_DRAW","ELEMENT_ARRAY_BUFFER","STATIC_DRAW","drawElements","TRIANGLES","UNSIGNED_INT","vs","VERTEX_SHADER","fs","FRAGMENT_SHADER","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteProgram","aPos","getAttribLocation","aColor","aLocal","aShape","getUniformLocation","compileShapeProgram","createVertexArray","createBuffer","enableVertexAttribArray","vertexAttribPointer","FLOAT","bindShapeAttributes","disable","DEPTH_TEST","CULL_FACE","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","shared","sharedGlDevice","isWebGL2Supported","WebGL2RenderingContext","resolveCandleStyle","theme","extra","colorByPreviousClose","strokeRing","L","ox","oy","ow","oh","emitCandles","priceToY","uniformTier","i","ref","prevClose","geo","halfW","over","top","bodyH","abs","body","border","filled","emitDashedSegment","ax","ay","bx","by","dash","state","step","rem","idx","emitPolyline","pts","fallback","colors","pattern","concat","total","d","dashed","prev","run","own","emitLine","base","push","stepPoints","cols","any","pointColors","fill","lineWidth","markersOnly","lineStyle","lineDash","markers","markerRadius","emitFillToBase","baseY","colorAt","side","cBase","px","NaN","py","aAbove","bAbove","xc","NATIVE_TYPES","nativeKinds","WeakMap","WebGL2Backend","device","_normalise","_ctx","ctx","keep","fillStyle","first","second","normaliseWith2d","_batch","mount","canvas","ctx2d","_canvas","_widthPx","_heightPx","_acquired","resize","beginFrame","_frame2d","setTransform","clearRect","drawSeries","entry","rc","kind","registered","Set","registeredChartTypes","name","has","getChartType","nativeKind","_flush","draw","_color","maxVolume","volume","highLowOnly","tick","lw","emitBars","lineColor","plotHeight","areaTopColor","bottom","areaBottomColor","emitArea","highs","lows","band","l","ph","pl","edgeHw","highColor","lowColor","closeColor","emitHlcArea","baseValue","topFill","botFill","topLine","topColor","bottomLine","bottomColor","above","emitBaseline","baselineTopLine","baselineBottomLine","baselineTopFill","baselineBottomFill","emitColumns","valueToY","emitHistogram","endFrame","overlay2d","destroy","drawImage","createWebGL2Backend","WEBGL_TIER","_registered","registerWebGL2Renderer","registerRenderBackend"],"mappings":"0GAsCO,MAAMA,EAAoC,CAC/CC,QAAS,UACTC,UAAW,UACXC,cAAe,UACfC,gBAAiB,UACjBC,YAAa,UACbC,cAAe,UACfC,eAAe,EACfC,aAAa,GAQT,SAAUC,EAAgBC,EAAoBC,GAClD,MAAMC,EAAMC,KAAKC,MAAMJ,EAAaC,EAAM,IAC1C,IAAII,EAAIF,KAAKG,IAAI,EAAGJ,GACpB,GAAIG,GAAK,EAAG,CAENA,EAAI,GADKF,KAAKG,IAAI,EAAGH,KAAKC,MAAMH,IACf,IAAGI,GAAK,EAC/B,CACA,OAAOF,KAAKG,IAAI,EAAGD,EACrB,UA4BgBE,EAAWC,EAAeC,EAAeC,GACvD,OAAKA,EAAMZ,aACU,IAAjBY,EAAMC,SACgB,IAAtBD,EAAME,aACNJ,EAAQC,GAGRC,EAAMb,eAAiBW,GAAS,GAIhCE,EAAMnB,UAAYmB,EAAMf,aACxBe,EAAMlB,YAAckB,EAAMd,cAVI,OAW3B,OAZwB,MAajC,CAyBM,SAAUiB,EAAeC,EAAWd,EAAoBC,EAAac,EAAa,GACtF,MAAMC,EAAQjB,EAAgBC,EAAYC,GACpCQ,EAAQN,KAAKG,IAAI,EAAGH,KAAKC,MAAMH,IAC/BgB,EAAKd,KAAKe,MAAMJ,EAAIb,GACpBkB,EAAQhB,KAAKG,IAAI,IAAMH,KAAKiB,IAAI,EAAGL,IACnCP,EAAkB,IAAVW,EAAcH,EAAQb,KAAKG,IAAI,EAAGH,KAAKe,MAAMF,EAAQG,IACnE,MAAO,CACLF,KACAI,MAAOJ,EAAKd,KAAKC,MAAMI,EAAQ,GAC/BA,QACAc,MAAOL,EAAKd,KAAKC,MAAMK,EAAQ,GAC/BA,QAEJ,UCjHgBc,EAAYC,EAAmBC,EAA4BxB,GACzE,MAAMyB,EAAIF,EAAKG,IACf,MAAO,CACLV,GAAId,KAAKe,MAAMM,EAAKV,EAAIb,GACxB2B,MAAOzB,KAAKe,MAAMO,EAAIC,EAAEG,MAAQ5B,GAChC6B,OAAQ3B,KAAKe,MAAMO,EAAIC,EAAEK,OAAS9B,GAClC+B,MAAO7B,KAAKe,MAAMO,EAAIC,EAAEO,MAAQhC,GAChCiC,KAAM/B,KAAKe,MAAMO,EAAIC,EAAES,KAAOlC,GAC9BmC,GAAIV,EAAEK,OAASL,EAAEG,KAErB,CCpBM,SAAUQ,EACdC,EACAb,EACAc,EAA6Bb,GAAMA,EAAEK,OAErC,OAAOO,EAAME,IAAKC,IAAE,CAAQ3B,EAAG2B,EAAG3B,EAAG4B,EAAGjB,EAAIc,EAAME,EAAGd,QACvD,CCAO,MAAMgB,EAAoB,GAgBpBC,EAAQ,IAGfC,EAASC,GAAuBA,IAAM3C,KAAKe,MAAM4B,SAE1CC,EAMX,WAAAC,CAAmBC,EAAW,KALvBC,OAAAC,eAAAC,KAAA,WAAA,0DACAF,OAAAC,eAAAC,KAAA,UAAA,0DACAF,OAAAC,eAAAC,KAAA,YAAA,iDAAY,IACXF,OAAAC,eAAAC,KAAA,YAAA,0DAGNA,KAAKC,UAAYlD,KAAKG,IAAI,EAAG2C,GAC7BG,KAAKE,SAAW,IAAIC,aA5BS,EA4BIH,KAAKC,UAAgCV,GACtES,KAAKI,QAAU,IAAIC,YA5BS,EA4BGL,KAAKC,WACpCD,KAAKM,aAAa,EACpB,CAEA,YAAWT,GACT,OAAOG,KAAKC,SACd,CAEA,eAAWM,GACT,OAtC6B,EAsCtBP,KAAKQ,SACd,CAEA,cAAWC,GACT,OAzC4B,EAyCrBT,KAAKQ,SACd,CAEA,cAAWE,GACT,OAAOV,KAAKO,YAAchB,CAC5B,CAGO,KAAAoB,GACLX,KAAKQ,UAAY,CACnB,CASO,IAAAI,CAAKlD,EAAW4B,EAAWrC,EAAW4D,EAAWC,GACtD,KAAM7D,EAAI,GAAQ4D,EAAI,GAAI,OAC1B,MAAME,EAAK9D,EAAI,EACT+D,EAAKH,EAAI,EACThD,EAAKH,EAAIqD,EACTE,EAAK3B,EAAI0B,EACTE,EAAQzB,EAAM/B,IAAM+B,EAAMH,IAAMG,EAAM/B,EAAIT,IAAMwC,EAAMH,EAAIuB,GAAK,EAAI,EACnEM,EAAKJ,EAAKG,EACVE,EAAKJ,EAAKE,EACVG,EAAIrB,KAAKsB,SACT5B,EAAIM,KAAKE,SACfF,KAAKuB,QAAQ7B,EAAG2B,EAAGxD,EAAKsD,EAAIF,EAAKG,EAAIN,GAAQK,GAAKC,EAAIL,EAAIC,EAAI,GAC9DhB,KAAKuB,QAAQ7B,EAAG2B,EAAI9B,EAAmB1B,EAAKsD,EAAIF,EAAKG,EAAIN,EAAOK,GAAKC,EAAIL,EAAIC,EAAI,GACjFhB,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBxD,EAAKsD,EAAIF,EAAKG,EAAIN,GAAQK,EAAIC,EAAIL,EAAIC,EAAI,GACrFhB,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBxD,EAAKsD,EAAIF,EAAKG,EAAIN,EAAOK,EAAIC,EAAIL,EAAIC,EAAI,EACtF,CASO,OAAAQ,CAAQC,EAAYC,EAAYC,EAAYC,EAAYC,EAAYf,EAA0BhD,GACnG,KAAM+D,EAAK,GAAI,OACf,MAAMC,EAAKH,EAAKF,EACVM,EAAKH,EAAKF,EACVM,EAAMjF,KAAKkF,MAAMH,EAAIC,GAC3B,IAAKG,OAAOC,SAASH,GAAM,OAC3B,GAAY,IAARA,IAAclE,EAAO,OAEzB,MAAMsE,EAAa,IAARJ,EAAY,EAAIF,EAAKE,EAC1BK,EAAa,IAARL,EAAY,EAAID,EAAKC,EAC1BnE,GAAM4D,EAAKE,GAAM,EACjBV,GAAMS,EAAKE,GAAM,EACjBU,EAAON,EAAM,EAGbjB,EAAKuB,EACLtB,EAAKlD,EAAQ,EAAI+D,EACjBU,EAAMzE,EAAQ+D,EAAK,EAEnBV,EAAKmB,EAAOT,EAAK,EACjBT,EAAKS,EAAK,EACVR,EAAIrB,KAAKsB,SACT5B,EAAIM,KAAKE,SACfF,KAAKuB,QAAQ7B,EAAG2B,EAAGxD,EAAKuE,EAAKjB,EAAKkB,EAAKjB,EAAIH,EAAKoB,EAAKlB,EAAKiB,EAAKhB,EAAIN,GAAQK,GAAKC,EAAIL,EAAIC,EAAIuB,GAC5FvC,KAAKuB,QAAQ7B,EAAG2B,EAAI9B,EAAmB1B,EAAKuE,EAAKjB,EAAKkB,EAAKjB,EAAIH,EAAKoB,EAAKlB,EAAKiB,EAAKhB,EAAIN,EAAOK,GAAKC,EAAIL,EAAIC,EAAIuB,GAC/GvC,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBxD,EAAKuE,EAAKjB,EAAKkB,EAAKjB,EAAIH,EAAKoB,EAAKlB,EAAKiB,EAAKhB,EAAIN,GAAQK,EAAIC,EAAIL,EAAIC,EAAIuB,GACnHvC,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBxD,EAAKuE,EAAKjB,EAAKkB,EAAKjB,EAAIH,EAAKoB,EAAKlB,EAAKiB,EAAKhB,EAAIN,EAAOK,EAAIC,EAAIL,EAAIC,EAAIuB,EACpH,CAOO,IAAAC,CACLf,EAAYC,EAAYe,EACxBd,EAAYC,EAAYc,EACxBC,EAAYC,EAAYC,EACxBC,EAAYC,EAAYC,GAExB,MAAM3B,EAAIrB,KAAKsB,SACT5B,EAAIM,KAAKE,SACfF,KAAKuB,QAAQ7B,EAAG2B,EAAGI,EAAIC,EAAIe,EAAI,EAAG,EAAGjD,EAAOA,EAAO,GACnDQ,KAAKuB,QAAQ7B,EAAG2B,EAAI9B,EAAmBoC,EAAIC,EAAIc,EAAI,EAAG,EAAGlD,EAAOA,EAAO,GACvEQ,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBsB,EAAIC,EAAIC,EAAI,EAAG,EAAGrD,EAAOA,EAAO,GAC3EQ,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuByB,EAAIC,EAAIC,EAAI,EAAG,EAAGxD,EAAOA,EAAO,EAC7E,CAGO,QAAAyD,CACLxB,EAAYC,EAAYe,EACxBd,EAAYC,EAAYc,EACxBC,EAAYC,EAAYC,GAExB7C,KAAKwC,KAAKf,EAAIC,EAAIe,EAAId,EAAIC,EAAIc,EAAIC,EAAIC,EAAIC,EAAIF,EAAIC,EAAIC,EACxD,CAGQ,MAAAvB,GACFtB,KAAKQ,YAAcR,KAAKC,WAAWD,KAAKkD,QAC5C,MAAM7B,EAjJuB,EAiJnBrB,KAAKQ,UAAgCjB,EAE/C,OADAS,KAAKQ,YACEa,CACT,CAEQ,OAAAE,CACN7B,EAAiB2B,EAAW3D,EAAW4B,EAAW6D,EAClDC,EAAWnG,EAAW8D,EAAYC,EAAYuB,GAE9C7C,EAAE2B,GAAK3D,EACPgC,EAAE2B,EAAI,GAAK/B,EACXI,EAAE2B,EAAI,GAAK8B,EAAE,GACbzD,EAAE2B,EAAI,GAAK8B,EAAE,GACbzD,EAAE2B,EAAI,GAAK8B,EAAE,GACbzD,EAAE2B,EAAI,GAAK8B,EAAE,GACbzD,EAAE2B,EAAI,GAAK+B,EACX1D,EAAE2B,EAAI,GAAKpE,EACXyC,EAAE2B,EAAI,GAAKN,EACXrB,EAAE2B,EAAI,GAAKL,EACXtB,EAAE2B,EAAI,IAAMkB,CACd,CAEQ,KAAAW,GACN,MAAMG,EAAOrD,KAAKC,UAClBD,KAAKC,WAAa,EAClB,MAAMC,EAAW,IAAIC,aA1KQ,EA0KKH,KAAKC,UAAgCV,GACvEW,EAASoD,IAAItD,KAAKE,UAClBF,KAAKE,SAAWA,EAChB,MAAME,EAAU,IAAIC,YA5KQ,EA4KIL,KAAKC,WACrCG,EAAQkD,IAAItD,KAAKI,SACjBJ,KAAKI,QAAUA,EACfJ,KAAKM,aAAa+C,EACpB,CAGQ,YAAA/C,CAAa+C,GACnB,MAAME,EAAKvD,KAAKI,QAChB,IAAK,IAAIoD,EAAIH,EAAMG,EAAIxD,KAAKC,UAAWuD,IAAK,CAC1C,MAAMlF,EAvLqB,EAuLjBkF,EACJnC,EAvLoB,EAuLhBmC,EACVD,EAAGlC,GAAK/C,EACRiF,EAAGlC,EAAI,GAAK/C,EAAI,EAChBiF,EAAGlC,EAAI,GAAK/C,EAAI,EAChBiF,EAAGlC,EAAI,GAAK/C,EAAI,EAChBiF,EAAGlC,EAAI,GAAK/C,EAAI,EAChBiF,EAAGlC,EAAI,GAAK/C,EAAI,CAClB,CACF,ECrMK,MAAMmF,EAAiC,CAAC,EAAG,EAAG,EAAG,GAExD,SAASC,EAAKhE,GACZ,OAAOA,EAAI,EAAKA,EAAI,EAAIA,EAAI,EAAK,CACnC,CAGM,SAAUiE,EAAmBC,GACjC,MAAMT,ECnBF,SAAqBrC,GACzB,MAAMqC,EAAIrC,EAAM+C,OAChB,GAAIV,EAAEW,WAAW,KAAM,CACrB,MAAMC,EAAMZ,EAAEa,MAAM,GACpB,GAAmB,IAAfD,EAAIE,QAA+B,IAAfF,EAAIE,OAAc,CACxC,MAAOC,EAAGC,EAAG7F,EAAG8F,GAAK,IAAIL,GAAK3E,IAAKyB,GAAMwD,SAASxD,EAAIA,EAAG,KACzD,MAAI,CAACqD,EAAGC,EAAG7F,GAAGgG,KAAKpC,OAAOqC,OAAe,KAClC,CAAEL,IAAGC,IAAG7F,IAAG8F,EAAkB,IAAfL,EAAIE,OAAeG,EAAI,IAAM,EACpD,CACA,GAAmB,IAAfL,EAAIE,QAA+B,IAAfF,EAAIE,OAAc,CACxC,MAAMO,EAAIH,SAASN,EAAIC,MAAM,EAAG,GAAI,IACpC,GAAI9B,OAAOqC,MAAMC,GAAI,OAAO,KAC5B,MAAMJ,EAAmB,IAAfL,EAAIE,OAAeI,SAASN,EAAIC,MAAM,EAAG,GAAI,IAAM,IAAM,EACnE,MAAO,CAAEE,EAAIM,GAAK,GAAM,IAAKL,EAAIK,GAAK,EAAK,IAAKlG,EAAO,IAAJkG,EAASJ,EAAGlC,OAAOqC,MAAMH,GAAK,EAAIA,EACvF,CACA,OAAO,IACT,CACA,MAAMK,EAAI,+EAA+EC,KAAKvB,GAC9F,OAAU,OAANsB,EAAmB,KAChB,CAAEP,EAAGhC,OAAOuC,EAAE,IAAKN,EAAGjC,OAAOuC,EAAE,IAAKnG,EAAG4D,OAAOuC,EAAE,IAAKL,OAAYO,IAATF,EAAE,GAAmB,EAAIvC,OAAOuC,EAAE,IACnG,CDDYG,CAAWhB,GACrB,GAAU,OAANT,EAAY,OAAO,KACvB,MAAMiB,EAAIV,EAAKP,EAAEiB,GACjB,MAAO,CAACV,EAAKP,EAAEe,EAAI,KAAOE,EAAGV,EAAKP,EAAEgB,EAAI,KAAOC,EAAGV,EAAKP,EAAE7E,EAAI,KAAO8F,EAAGA,EACzE,UAUgBS,EAAkBT,EAAsB9F,EAAsBwG,GAC5E,MAAO,CACLV,EAAE,IAAM9F,EAAE,GAAK8F,EAAE,IAAMU,EACvBV,EAAE,IAAM9F,EAAE,GAAK8F,EAAE,IAAMU,EACvBV,EAAE,IAAM9F,EAAE,GAAK8F,EAAE,IAAMU,EACvBV,EAAE,IAAM9F,EAAE,GAAK8F,EAAE,IAAMU,EAE3B,OA8BaC,EAAb,WAAAnF,GACmBE,OAAAC,eAAAC,KAAA,OAAA,2CAAOb,MAAA,IAAI6F,KA8B9B,CArBS,GAAAC,CAAIrB,EAAasB,GACtB,IAAIC,EAAMnF,KAAKoF,KAAKH,IAAIrB,GACxB,QAAYe,IAARQ,EAAmB,OAAOA,EAE9B,GADAA,EAAMxB,EAAmBC,SAAQe,OACrBA,IAARQ,QAAmCR,IAAdO,EAAyB,CAChD,MAAMG,EAAQH,EAAUtB,GACV,OAAVyB,IAAgBF,EAAMxB,EAAmB0B,SAAUV,EACzD,CAIA,YAHYA,IAARQ,IAAmBA,EAAM1B,GACzBzD,KAAKoF,KAAKE,MA3BE,MA2BmBtF,KAAKoF,KAAKG,QAC7CvF,KAAKoF,KAAK9B,IAAIM,EAAKuB,GACZA,CACT,CAEA,QAAWG,GACT,OAAOtF,KAAKoF,KAAKE,IACnB,CAEO,KAAAC,GACLvF,KAAKoF,KAAKG,OACZ,EEnDF,SAASC,EAAQC,EAA4BC,EAAcC,GACzD,MAAMC,EAASH,EAAGI,aAAaH,GAC/B,GAAe,OAAXE,EAAiB,MAAM,IAAIE,MAAM,oDAGrC,GAFAL,EAAGM,aAAaH,EAAQD,GACxBF,EAAGO,cAAcJ,IACZH,EAAGQ,mBAAmBL,EAAQH,EAAGS,kBAAoBT,EAAGU,gBAAiB,CAC5E,MAAMC,EAAMX,EAAGY,iBAAiBT,IAAW,GAE3C,MADAH,EAAGa,aAAaV,GACV,IAAIE,MAAM,oDAAoDM,IACtE,CACA,OAAOR,CACT,CCKA,MAAMW,EAA6C,CACjDC,OAAO,EACPC,WAAW,EACXC,oBAAoB,EACpBC,uBAAuB,EACvBC,OAAO,EACPC,SAAS,GAIX,SAASC,IACP,MAAMC,EAAOC,WAAuCC,SACpD,QAAYtC,IAARoC,GAAkD,mBAAtBA,EAAIG,cAClC,OAAOH,EAAIG,cAAc,UAE3B,MAAMC,EAAaH,WAA2EI,gBAC9F,YAAkBzC,IAAdwC,EAAgC,IAAIA,EAAU,EAAG,GAC9C,IACT,OASaE,EA2BX,WAAAzH,CAAmB0H,EAAwCR,GA1B3ChH,OAAAC,eAAAC,KAAA,SAAA,2CAASb,MAAA,IAAI4F,IACZjF,OAAAC,eAAAC,KAAA,iBAAA,0DACTF,OAAAC,eAAAC,KAAA,WAAA,iDAA6B,OAC7BF,OAAAC,eAAAC,KAAA,MAAA,iDAAqC,OACrCF,OAAAC,eAAAC,KAAA,WAAA,iDAAgC,OAChCF,OAAAC,eAAAC,KAAA,OAAA,iDAAsC,OACtCF,OAAAC,eAAAC,KAAA,OAAA,iDAA2B,OAC3BF,OAAAC,eAAAC,KAAA,OAAA,iDAA2B,OAC3BF,OAAAC,eAAAC,KAAA,iBAAA,iDAAiB,IACjBF,OAAAC,eAAAC,KAAA,QAAA,iDAAQ,IACRF,OAAAC,eAAAC,KAAA,QAAA,kDAAQ,IACRF,OAAAC,eAAAC,KAAA,UAAA,kDAAU,IACVF,OAAAC,eAAAC,KAAA,UAAA,iDAAWuH,IAEjBA,EAAEC,iBACFxH,KAAKyH,OAAQ,EACbzH,KAAK0H,SAAW,KAChB1H,KAAK2H,KAAO,KACZ3H,KAAK4H,KAAO,KACZ5H,KAAK6H,KAAO,KACZ7H,KAAK8H,eAAiB,KAEhBhI,OAAAC,eAAAC,KAAA,cAAA,2CAAcb,MAAA,KACpBa,KAAKyH,OAAQ,KAIbzH,KAAK+H,eAAiBT,CACxB,CAGA,aAAWU,GACT,IAAKhI,KAAKiI,QAAS,CACjBjI,KAAKiI,SAAU,EACfjI,KAAKkI,SAAWlI,KAAK+H,iBACrB,MAAMtC,EAAKzF,KAAKkI,UAAUC,WAAW,SAAU5B,IAAuB,KAC3D,OAAPd,IACFzF,KAAKoI,IAAM3C,EACXzF,KAAKkI,UAAUG,mBAAmB,mBAAoBrI,KAAKsI,SAC3DtI,KAAKkI,UAAUG,mBAAmB,uBAAwBrI,KAAKuI,aAEnE,CACA,OAAoB,OAAbvI,KAAKoI,GACd,CAGA,QAAWI,GACT,OAAOxI,KAAKyH,OAAuB,OAAbzH,KAAKoI,KAAgBpI,KAAKoI,IAAIjC,eACtD,CAEA,WAAWsC,GACT,OAAOzI,KAAKkI,QACd,CAEA,QAAWQ,GACT,OAAO1I,KAAK2I,KACd,CAEA,MAAWlD,GACT,OAAOzF,KAAKoI,GACd,CAEO,OAAAQ,GACL,QAAK5I,KAAKgI,YACVhI,KAAK2I,SACE,EACT,CAEO,OAAAE,GACc,IAAf7I,KAAK2I,QACT3I,KAAK2I,QAEc,IAAf3I,KAAK2I,OAAiC,OAAlB3I,KAAKkI,WAC3BlI,KAAKkI,SAASY,MAAQ,EACtB9I,KAAKkI,SAASa,OAAS,GAE3B,CAGO,UAAAC,CAAWC,EAAiBC,GACjC,MAAMC,EAAInJ,KAAKkI,SACL,OAANiB,IACAA,EAAEL,MAAQG,IAASE,EAAEL,MAAQG,GAC7BE,EAAEJ,OAASG,IAAUC,EAAEJ,OAASG,GACtC,CAOO,MAAAE,CAAOC,EAAoBJ,EAAiBC,GACjD,GAAiB,OAAblJ,KAAKoI,KAAkC,OAAlBpI,KAAKkI,UAAqBlI,KAAKwI,KAAM,OAAO,EACrE,MAAM/C,EAAKzF,KAAKoI,IAChB,GAAsB,OAAlBpI,KAAK0H,WAAsB1H,KAAKsJ,OAAO7D,GAAK,OAAO,EACvD,MAAM8D,EAAIvJ,KAAK0H,SACf1H,KAAKgJ,WAAWC,EAASC,GAIzB,MAAMxH,EAAK1B,KAAKkI,SAASa,OAASG,EAMlC,OALAzD,EAAG+D,SAAS,EAAG9H,EAAIuH,EAASC,GAC5BzD,EAAGgE,OAAOhE,EAAGiE,cACbjE,EAAGkE,QAAQ,EAAGjI,EAAIuH,EAASC,GAC3BzD,EAAGmE,WAAW,EAAG,EAAG,EAAG,GACvBnE,EAAGF,MAAME,EAAGoE,kBACY,IAApBR,EAAM7I,YACViF,EAAGqE,WAAWP,EAAEQ,SAChBtE,EAAGuE,UAAUT,EAAEU,YAAahB,EAASC,GACrCzD,EAAGyE,gBAAgBlK,KAAK2H,MACxBlC,EAAG0E,WAAW1E,EAAG2E,aAAcpK,KAAK4H,MACpCnC,EAAG4E,WAAW5E,EAAG2E,aAAcf,EAAMnJ,SAAUuF,EAAG6E,YAAa,EAAGjB,EAAM3I,YAGpE2I,EAAMjJ,QAAQ6D,OAASjE,KAAK8H,iBAC9BrC,EAAG0E,WAAW1E,EAAG8E,qBAAsBvK,KAAK6H,MAC5CpC,EAAG4E,WAAW5E,EAAG8E,qBAAsBlB,EAAMjJ,QAASqF,EAAG+E,aACzDxK,KAAK8H,eAAiBuB,EAAMjJ,QAAQ6D,QAEtCwB,EAAGgF,aAAahF,EAAGiF,UAAWrB,EAAM5I,WAAYgF,EAAGkF,aAAc,GACjElF,EAAGyE,gBAAgB,QAde,CAgBpC,CAGQ,MAAAZ,CAAO7D,GACb,IAAIsE,EACJ,IACEA,ED9JA,SAA8BtE,GAClC,MAAMmF,EAAKpF,EAAQC,EAAIA,EAAGoF,cAzDC,yaA0DrBC,EAAKtF,EAAQC,EAAIA,EAAGsF,gBAvCG,sVAwCvBhB,EAAUtE,EAAGuF,gBACnB,GAAgB,OAAZjB,EAAkB,MAAM,IAAIjE,MAAM,qDAQtC,GAPAL,EAAGwF,aAAalB,EAASa,GACzBnF,EAAGwF,aAAalB,EAASe,GACzBrF,EAAGyF,YAAYnB,GAGftE,EAAGa,aAAasE,GAChBnF,EAAGa,aAAawE,IACXrF,EAAG0F,oBAAoBpB,EAAStE,EAAG2F,eAAiB3F,EAAGU,gBAAiB,CAC3E,MAAMC,EAAMX,EAAG4F,kBAAkBtB,IAAY,GAE7C,MADAtE,EAAG6F,cAAcvB,GACX,IAAIjE,MAAM,kDAAkDM,IACpE,CACA,MAAO,CACL2D,UACAwB,KAAM9F,EAAG+F,kBAAkBzB,EAAS,SACpC0B,OAAQhG,EAAG+F,kBAAkBzB,EAAS,WACtC2B,OAAQjG,EAAG+F,kBAAkBzB,EAAS,WACtC4B,OAAQlG,EAAG+F,kBAAkBzB,EAAS,WACtCE,YAAaxE,EAAGmG,mBAAmB7B,EAAS,gBAEhD,CCqIgB8B,CAAoBpG,EAChC,CAAE,MAIA,OADAzF,KAAKoI,IAAM,MACJ,CACT,CAeA,OAdApI,KAAK0H,SAAWqC,EAChB/J,KAAK2H,KAAOlC,EAAGqG,oBACf9L,KAAK4H,KAAOnC,EAAGsG,eACf/L,KAAK6H,KAAOpC,EAAGsG,eACf/L,KAAK8H,eAAiB,EACtBrC,EAAGyE,gBAAgBlK,KAAK2H,MACxBlC,EAAG0E,WAAW1E,EAAG2E,aAAcpK,KAAK4H,MACpCnC,EAAG0E,WAAW1E,EAAG8E,qBAAsBvK,KAAK6H,MD5I1C,SAA8BpC,EAA4B8D,GAC9D9D,EAAGuG,wBAAwBzC,EAAEgC,MAC7B9F,EAAGwG,oBAAoB1C,EAAEgC,KAAM,EAAG9F,EAAGyG,OAAO,EH1ElB3M,GAJF,GG+ExBkG,EAAGuG,wBAAwBzC,EAAEkC,QAC7BhG,EAAGwG,oBAAoB1C,EAAEkC,OAAQ,EAAGhG,EAAGyG,OAAO,EH5EpB3M,GAHA,GGgF1BkG,EAAGuG,wBAAwBzC,EAAEmC,QAC7BjG,EAAGwG,oBAAoB1C,EAAEmC,OAAQ,EAAGjG,EAAGyG,OAAO,EH9EpB3M,GAFA,IGiF1BkG,EAAGuG,wBAAwBzC,EAAEoC,QAC7BlG,EAAGwG,oBAAoB1C,EAAEoC,OAAQ,EAAGlG,EAAGyG,OAAO,EHhFpB3M,GADA,GGkF5B,CCoII4M,CAAoB1G,EAAIsE,GACxBtE,EAAGyE,gBAAgB,MACnBzE,EAAG2G,QAAQ3G,EAAG4G,YACd5G,EAAG2G,QAAQ3G,EAAG6G,WACd7G,EAAGgE,OAAOhE,EAAG8G,OACb9G,EAAG+G,UAAU/G,EAAGgH,IAAKhH,EAAGiH,sBACjB,CACT,EAGF,IAAIC,EAA0B,cAGdC,IAEd,OADe,OAAXD,IAAiBA,EAAS,IAAItF,GAC3BsF,CACT,UAGgBE,IACd,YAA2F,IAA/E7F,WAAoD8F,wBACzDF,IAAiB5E,SAC1B,CAKA,SAAS+E,EAAmB5D,EAAgB6D,EAAmBC,EAA8B,CAAA,GAC3F,MAAO,IACF/Q,EACHC,QAASgN,EAAEhN,SAAW6Q,EAAM7Q,QAC5BC,UAAW+M,EAAE/M,WAAa4Q,EAAM5Q,UAChCC,cAAe8M,EAAE9M,eAAiB2Q,EAAM7Q,QACxCG,gBAAiB6M,EAAE7M,iBAAmB0Q,EAAM5Q,UAC5CG,YAAa4M,EAAE5M,aAAeyQ,EAAMzQ,YACpCC,cAAe2M,EAAE3M,eAAiBwQ,EAAMxQ,cACxCC,cAAe0M,EAAE1M,eAAiBP,EAAqBO,cACvDe,YAAa2L,EAAE3L,cAAe,EAC9Bd,YAAayM,EAAEzM,aAAeR,EAAqBQ,YACnDwQ,qBAAsB/D,EAAE+D,wBACrBD,EAEP,CAYA,SAASE,EAAW9D,EAAoB3L,EAAW4B,EAAWrC,EAAW4D,EAAWuM,EAAWjK,GAC7F,MAAMkK,EAAK3P,EAAI0P,EAAI,EACbE,EAAKhO,EAAI8N,EAAI,EACbG,EAAKtQ,EAAImQ,EACTI,EAAK3M,EAAIuM,EACXnQ,EAAImQ,GAAK,GAAKvM,EAAIuM,GAAK,EACzB/D,EAAMzI,KAAKyM,EAAIC,EAAIC,EAAIC,EAAIrK,IAG7BkG,EAAMzI,KAAKyM,EAAIC,EAAIC,EAAIH,EAAGjK,GAC1BkG,EAAMzI,KAAKyM,EAAIC,EAAKE,EAAKJ,EAAGG,EAAIH,EAAGjK,GACnCkG,EAAMzI,KAAKyM,EAAIC,EAAKF,EAAGA,EAAGI,EAAK,EAAIJ,EAAGjK,GACtCkG,EAAMzI,KAAKyM,EAAKE,EAAKH,EAAGE,EAAKF,EAAGA,EAAGI,EAAK,EAAIJ,EAAGjK,GACjD,CAGA,SAASsK,EACPpE,EAAoBnK,EAA4BwO,EAChD9Q,EAAoBC,EAAaS,EAAoBwD,GAErD,MAAM1D,EAAQT,EAAgBC,EAAYC,GACpCQ,EAAQN,KAAKG,IAAI,EAAGH,KAAKC,MAAMH,IAC/B8Q,EAAcrQ,EAAMK,WAAa,KAAOR,EAAWC,EAAOC,EAAOC,GACvE,IAAK,IAAIsQ,EAAI,EAAGA,EAAI1O,EAAM+E,OAAQ2J,IAAK,CACrC,MAAMlQ,EAAEA,EAACa,IAAEA,GAAQW,EAAM0O,GACnBC,EAAMD,EAAI,EAAI1O,EAAM0O,EAAI,GAAGrP,IAAII,MAAQO,EAAM0O,GAAGE,UAChD9O,GAAoC,IAA/B1B,EAAM4P,2BAAyCvI,IAARkJ,GAAqB3L,OAAOC,SAAS0L,GACnFtP,EAAII,OAASkP,EACbtP,EAAII,OAASJ,EAAIE,KACfD,EAAQzB,KAAKe,MAAM4P,EAASnP,EAAIE,MAAQ5B,GACxC6B,EAAS3B,KAAKe,MAAM4P,EAASnP,EAAII,OAAS9B,GAC1C+B,EAAQ7B,KAAKe,MAAM4P,EAASnP,EAAIM,MAAQhC,GACxCiC,EAAO/B,KAAKe,MAAM4P,EAASnP,EAAIQ,KAAOlC,GACtCkR,EAAMtQ,EAAeC,EAAGd,EAAYC,EAAKS,EAAMK,WAAaL,EAAMK,WAAWY,GAAO,GACpFV,EAAKkQ,EAAIlQ,GACTZ,EAAI8Q,EAAI3Q,MACR4Q,EAAQnQ,EAAKkQ,EAAI9P,MACjBgQ,EAAO1P,EAAIuC,MAKjB,GAHIxD,EAAMZ,aACR2M,EAAMzI,KAAKmN,EAAI7P,MAAOU,EAAOmP,EAAI1Q,MAAON,KAAKG,IAAI,EAAG4B,EAAOF,GAAQkC,EAAMmN,IAASjP,EAAK1B,EAAMf,YAAce,EAAMd,iBAE9D,UAAhDmR,GAAexQ,EAAWF,EAAGI,EAAOC,IAAoB,SAE7D,MAAM4Q,EAAMnR,KAAKiB,IAAIQ,EAAOE,GACtByP,EAAQpR,KAAKG,IAAI,EAAGH,KAAKqR,IAAI1P,EAASF,IACtC6P,EAAOJ,IAASjP,EAAK1B,EAAMnB,QAAUmB,EAAMlB,WAC3CkS,EAASL,IAASjP,EAAK1B,EAAMjB,cAAgBiB,EAAMhB,iBAEzD,GAAIgB,EAAMC,QAAUyB,EAClBmO,EAAW9D,EAAOxL,EAAKmQ,EAAQ,GAAKE,EAAM,GAAKjR,EAAI,EAAGkR,EAAQ,EAAGpR,KAAKG,IAAI,EAAGG,GAAQyD,EAAMxD,EAAMb,cAAgB6R,EAASD,QACrH,CACL,MAAME,GAA+B,IAAtBjR,EAAME,YACjB+Q,GAAQlF,EAAMzI,KAAK/C,EAAKmQ,EAAOE,EAAKjR,EAAGkR,EAAOrN,EAAMuN,IACpD/Q,EAAMb,iBAAmB8R,GAAUtR,GAAK,IAC1CkQ,EAAW9D,EAAOxL,EAAKmQ,EAAQ,GAAKE,EAAM,GAAKjR,EAAI,EAAGkR,EAAQ,EAAG,EAAGrN,EAAMwN,GAE9E,CACF,CACF,CAwFA,SAASE,EACPnF,EAAoBoF,EAAYC,EAAYC,EAAYC,EACxD/M,EAAYsB,EAAsB0L,EAAyBC,GAE3D,MAAM9M,EAAMjF,KAAKkF,MAAM0M,EAAKF,EAAIG,EAAKF,GACrC,GAAY,IAAR1M,EAAW,OACf,MAAMI,GAAMuM,EAAKF,GAAMzM,EACjBK,GAAMuM,EAAKF,GAAM1M,EACvB,IAAI8C,EAAI,EACR,KAAOA,EAAI9C,GAAK,CACd,MAAM+M,EAAOhS,KAAKiB,IAAI8Q,EAAME,IAAKhN,EAAM8C,GACnCgK,EAAMG,IAAM,GAAM,GAAKF,EAAO,GAChC1F,EAAM7H,QAAQiN,EAAKrM,EAAK0C,EAAG4J,EAAKrM,EAAKyC,EAAG2J,EAAKrM,GAAM0C,EAAIiK,GAAOL,EAAKrM,GAAMyC,EAAIiK,GAAOlN,EAAIsB,GAAG,GAE7F2B,GAAKiK,EACLD,EAAME,KAAOD,EACTD,EAAME,KAAO,OACfF,EAAMG,KAAOH,EAAMG,IAAM,GAAKJ,EAAK5K,OACnC6K,EAAME,IAAMH,EAAKC,EAAMG,KAE3B,CACF,CASA,SAASC,EACP7F,EAAoB8F,EAAoBtS,EAAagF,EAAYuN,EACjEC,EAAqDR,EAAyB/N,GAI9E,IAAIwO,EAAUT,EACVS,EAAQrL,OAAS,GAAM,IAAGqL,EAAUA,EAAQC,OAAOD,IACvD,IAAIE,EAAQ,EACZ,IAAK,MAAMC,KAAKH,EAASE,GAASC,EAClC,MAAMC,EAASJ,EAAQrL,OAAS,GAAKuL,EAAQ,EACvCV,EAAmB,CAAEG,IAAK,EAAGD,IAAKU,EAASJ,EAAQ,GAAK,GAC9D,IAAIK,EACAC,EACAzM,EAAIrC,EAAMsO,GACd,IAAK,IAAIxB,EAAI,EAAGA,EAAIuB,EAAIlL,OAAQ2J,IAAK,CACnC,MAAMrE,EAAI4F,EAAIvB,GACd,IAAK1L,OAAOC,SAASoH,EAAE7L,KAAOwE,OAAOC,SAASoH,EAAEjK,GAAI,CAAEqQ,OAAOhL,EAAW,QAAU,CAClF,QAAaA,IAATgL,EAAoB,CACtBA,EAAOpG,EACPuF,EAAMG,IAAM,EACZH,EAAME,IAAMU,EAASJ,EAAQ,GAAK,EAClC,QACF,CACA,MAAMO,OAAiBlL,IAAX0K,EAAuBO,EAAMP,EAAOzB,GAC5CiC,IAAQD,IACVA,EAAMC,EACN1M,EAAIrC,EAAM+O,GAAOT,GACjBN,EAAMG,IAAM,EACZH,EAAME,IAAMU,EAASJ,EAAQ,GAAK,GAEhCI,EAAQlB,EAAkBnF,EAAOsG,EAAKjS,EAAIb,EAAK8S,EAAKrQ,EAAIzC,EAAK0M,EAAE7L,EAAIb,EAAK0M,EAAEjK,EAAIzC,EAAKgF,EAAIsB,EAAGmM,EAASR,GAClGzF,EAAM7H,QAAQmO,EAAKjS,EAAIb,EAAK8S,EAAKrQ,EAAIzC,EAAK0M,EAAE7L,EAAIb,EAAK0M,EAAEjK,EAAIzC,EAAKgF,EAAIsB,GAAG,GAC5EwM,EAAOpG,CACT,CACF,CAGA,SAASuG,EACPzG,EAAoBnK,EAA4Bb,EAChDxB,EAAaS,EAAoBwD,GAEjC,MAAMiP,EAAO9Q,EAAYC,EAAOb,GAC1B8Q,EAAM7R,EAAMyR,KL5ed,SAAqBI,GACzB,GAAmB,IAAfA,EAAIlL,OAAc,MAAO,GAC7B,MAAMkB,EAAY,CAAC,IAAKgK,EAAI,KAC5B,IAAK,IAAIvB,EAAI,EAAGA,EAAIuB,EAAIlL,OAAQ2J,IAC9BzI,EAAI6K,KAAK,CAAEtS,EAAGyR,EAAIvB,GAAGlQ,EAAG4B,EAAG6P,EAAIvB,EAAI,GAAGtO,IACtC6F,EAAI6K,KAAK,CAAEtS,EAAGyR,EAAIvB,GAAGlQ,EAAG4B,EAAG6P,EAAIvB,GAAGtO,IAEpC,OAAO6F,CACT,CKoe2B8K,CAAWF,GAAQA,EACtCG,EAjGR,SAAqBhR,EAA4B6P,GAC/C,IAAIoB,GAAM,EACV,IAAK,MAAM9Q,KAAMH,EAAO,QAAqByF,IAAjBtF,EAAGd,IAAIuC,MAAqB,CAAEqP,GAAM,EAAM,KAAO,CAC7E,IAAKA,EAAK,OACV,MAAMhL,EAA8B,GACpC,IAAK,MAAM9F,KAAMH,EACX6P,GAAQ5J,EAAIlB,OAAS,GAAGkB,EAAI6K,KAAK3Q,EAAGd,IAAIuC,OAC5CqE,EAAI6K,KAAK3Q,EAAGd,IAAIuC,OAElB,OAAOqE,CACT,CAuFeiL,CAAYlR,GAAsB,IAAf5B,EAAMyR,MAChCsB,EAAO/S,EAAMwD,OAAS,UACtBe,EAAK9E,KAAKG,IAAI,GAAII,EAAMgT,WAAa,KAAOzT,GAAO,EAEzD,GADKS,EAAMiT,aAAarB,EAAa7F,EAAO8F,EAAKtS,EAAKgF,EAAIwO,EAAMH,EA3GlE,SAAkB5S,EAAoBT,GACpC,MAAwB,WAApBS,EAAMkT,UAA+B,CAAC,EAAI3T,EAAK,EAAIA,GAC/B,WAApBS,EAAMkT,UAA+B,CAAC,EAAI3T,EAAK,EAAIA,GAChD,EACT,CAuGwE4T,CAASnT,EAAOT,GAAMiE,GACxFxD,EAAMoT,SAAWpT,EAAMiT,YAAa,CACtC,MAAMrM,GAAK5G,EAAMqT,cAAgB,GAAK9T,EACtC,IAAK,IAAI+Q,EAAI,EAAGA,EAAImC,EAAK9L,OAAQ2J,IAAK,CACpC,MAAMrE,EAAIwG,EAAKnC,GACf,IAAK1L,OAAOC,SAASoH,EAAE7L,KAAOwE,OAAOC,SAASoH,EAAEjK,GAAI,SACpD,MAAM6D,EAAIrC,OAAe6D,IAATuL,EAAsBhR,EAAM0O,GAAGrP,IAAIuC,OAASuP,EAAQA,GACpEhH,EAAM7H,QAAQ+H,EAAE7L,EAAIb,EAAK0M,EAAEjK,EAAIzC,EAAK0M,EAAE7L,EAAIb,EAAK0M,EAAEjK,EAAIzC,EAAKqH,EAAGf,GAAG,EAClE,CACF,CACF,CAYA,SAASyN,EACPvH,EAAoB8F,EAAoBtS,EAAagU,EACrDC,EAA2CC,GAE3C,MAAMC,EAAQF,EAAQD,GACtB,IAAII,EAAKC,IACLC,EAAKD,IACT,IAAK,MAAM3H,KAAK4F,EAAK,CACnB,MAAMzR,EAAI6L,EAAE7L,EAAIb,EACVyC,EAAIiK,EAAEjK,EAAIzC,EAChB,GAAKqF,OAAOC,SAASzE,IAAOwE,OAAOC,SAAS7C,GAA5C,CACA,GAAI4C,OAAOC,SAAS8O,GAAK,CACvB,MAAMG,EAASD,GAAMN,EACfQ,EAAS/R,GAAKuR,EACpB,GAAIO,IAAWC,EACA,SAATN,GAA6B,UAATA,IAAsBK,GAC5C/H,EAAM7G,KAAKyO,EAAIE,EAAIL,EAAQK,GAAKzT,EAAG4B,EAAGwR,EAAQxR,GAAI2R,EAAIJ,EAAOG,EAAOtT,EAAGmT,EAAOG,OAE3E,CACL,MAAMM,EAAKL,GAAMvT,EAAIuT,IAAOJ,EAAQM,IAAO7R,EAAI6R,GAClC,SAATJ,GAA6B,UAATA,IAAsBK,GAC5C/H,EAAMpG,SAASgO,EAAIE,EAAIL,EAAQK,GAAKG,EAAIT,EAAOG,EAAOC,EAAIJ,EAAOG,GAEtD,SAATD,GAA6B,UAATA,IAAsBM,GAC5ChI,EAAMpG,SAASvF,EAAG4B,EAAGwR,EAAQxR,GAAIgS,EAAIT,EAAOG,EAAOtT,EAAGmT,EAAOG,EAEjE,CACF,CACAC,EAAKvT,EACLyT,EAAK7R,CAnB2C,CAoBlD,CACF,CAgFA,MAAMiS,EAAsC,CAC1C,cAAe,gBAAiB,gBAAiB,MAAO,WACxD,OAAQ,eAAgB,OAAQ,OAAQ,WAAY,WAAY,SAAU,aAUtEC,EAAc,IAAIC,cAiBXC,EAgBX,WAAA9R,CAAmB+R,EAAmB/E,KAftB9M,OAAAC,eAAAC,KAAA,OAAA,iDAAO,WACPF,OAAAC,eAAAC,KAAA,SAAA,0DACCF,OAAAC,eAAAC,KAAA,SAAA,2CAASb,MAAA,IAAIQ,IACtBG,OAAAC,eAAAC,KAAA,UAAA,iDAAoC,OACpCF,OAAAC,eAAAC,KAAA,OAAA,iDAAwC,OACxCF,OAAAC,eAAAC,KAAA,WAAA,iDAAW,IACXF,OAAAC,eAAAC,KAAA,YAAA,iDAAY,IAEZF,OAAAC,eAAAC,KAAA,YAAA,kDAAY,IAEZF,OAAAC,eAAAC,KAAA,WAAA,kDAAW,IAEFF,OAAAC,eAAAC,KAAA,SAAA,2CAAkBb,MAACyE,GAAQ5D,KAAK2R,OAAOtC,OAAOpK,IAAIrB,EAAK5D,KAAK4R,cAC5D9R,OAAAC,eAAAC,KAAA,aAAA,iDAAc4D,GAA8C,OAAd5D,KAAK6R,KAAgB,KHjoBhF,SAA0BC,EAA+BlO,GAC7D,MAAMmO,EAAOD,EAAIE,UACjBF,EAAIE,UAAY,UAChBF,EAAIE,UAAYpO,EAChB,MAAMqO,EAAQH,EAAIE,UAClBF,EAAIE,UAAY,UAChBF,EAAIE,UAAYpO,EAChB,MAAMsO,EAASJ,EAAIE,UAEnB,OADAF,EAAIE,UAAYD,EACQ,iBAAVE,GAAsBA,IAAUC,EAASD,EAAQ,IACjE,CGunB6FE,CAAgBnS,KAAK6R,KAAMjO,KAGpH5D,KAAK2R,OAASA,CAChB,CAGA,SAAWtI,GACT,OAAOrJ,KAAKoS,MACd,CAEO,KAAAC,CAAMC,EAA2BC,GAGtC,GAFAvS,KAAKwS,QAAUF,EACftS,KAAK6R,KAAOU,GAASD,EAAOnK,WAAW,MACrB,OAAdnI,KAAK6R,KAAe,MAAM,IAAI/L,MAAM,uDACxC9F,KAAKyS,SAAWH,EAAOxJ,MACvB9I,KAAK0S,UAAYJ,EAAOvJ,OACxB/I,KAAK2S,UAAY3S,KAAK2R,OAAO/I,UAC7B5I,KAAK2R,OAAO3I,WAAWhJ,KAAKyS,SAAUzS,KAAK0S,UAC7C,CAGO,MAAAE,CAAO3J,EAAiBC,EAAkBrM,GAC/CmD,KAAKyS,SAAW1V,KAAKe,MAAMmL,EAAUpM,GACrCmD,KAAK0S,UAAY3V,KAAKe,MAAMoL,EAAWrM,GACvCmD,KAAK2R,OAAO3I,WAAWhJ,KAAKyS,SAAUzS,KAAK0S,UAC7C,CAGO,UAAAG,CAAWtN,GAChBvF,KAAKoS,OAAOzR,QACZX,KAAK8S,SAAW9S,KAAK2R,OAAOnJ,MAA2B,OAAnBxI,KAAK2R,OAAOlM,GAC3CF,GAAuB,OAAdvF,KAAK6R,MAAkC,OAAjB7R,KAAKwS,UACzCxS,KAAK6R,KAAKkB,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACtC/S,KAAK6R,KAAKmB,UAAU,EAAG,EAAGhT,KAAKwS,QAAQ1J,MAAO9I,KAAKwS,QAAQzJ,QAC7D,CAEO,UAAAkK,CACLC,EACAhU,EACAwO,EACA9Q,EACAC,EACAS,EACA6V,GAEA,GAAkB,OAAdnT,KAAK6R,KAAe,QAInB7R,KAAK8S,UAAY9S,KAAK2R,OAAOnJ,OAChCxI,KAAK8S,UAAW,EAChB9S,KAAKoS,OAAOzR,SAEd,MAAMyS,EAAOpT,KAAK8S,SAAW,KAnFjC,SAAoBI,GAClB,IAAIE,EAAO5B,EAAYvM,IAAIiO,GAC3B,QAAavO,IAATyO,EAAoB,CACtBA,EAAO,KACP,MAAMC,EAAa,IAAIC,IAAIC,KAC3B,IAAK,MAAMC,KAAQjC,EACjB,GAAI8B,EAAWI,IAAID,IAASE,EAAaF,KAAUN,EAAO,CAAEE,EAAOI,EAAM,KAAO,CAElFhC,EAAYlO,IAAI4P,EAAOE,EACzB,CACA,OAAOA,CACT,CAwEwCO,CAAWT,GAC/C,GAAa,OAATE,EAIF,OAFApT,KAAK4T,cACLV,EAAMW,KAAK7T,KAAK6R,KAAM3S,EAAOwO,EAAU9Q,EAAYC,EAAKS,EAAO6V,GAGjE,MAAM7U,EAAI0B,KAAKoS,OACTjP,EAAInD,KAAK8T,OACT9G,EAAQmG,EAAGnG,MACjB,OAAQoG,GACN,IAAK,cACH3F,EAAYnP,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAKkQ,EAAmBzP,EAAO0P,GAAQ7J,GACnF,MACF,IAAK,gBACHsK,EAAYnP,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAKkQ,EAAmBzP,EAAO0P,EAAO,CAAEzP,QAAQ,IAAS4F,GACrG,MACF,IAAK,gBAAiB,CACpB,MAAMjG,EAAMiW,EAAGY,UAEftG,EAAYnP,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAKkQ,EAAmBzP,EAAO0P,EAAO,CAAErP,WADhEY,GAAsBrB,EAAM,GAAKqB,EAAIyV,QAAU,GAAK9W,EAAM,IACqBiG,GACnG,KACF,CACA,IAAK,MACL,IAAK,YAhaX,SACEkG,EAAoBnK,EAA4Bb,EAChDzB,EAAoBC,EAAaS,EAAoB2W,EAAsBnT,GAE3E,MAAMoT,EAAOnX,KAAKG,IAAI,EAAGH,KAAKC,MAAML,EAAgBC,EAAYC,GAAO,IACjEsX,EAAKpX,KAAKG,IAAI,EAAGH,KAAKC,MAAMH,IAClC,IAAK,IAAI+Q,EAAI,EAAGA,EAAI1O,EAAM+E,OAAQ2J,IAAK,CACrC,MAAMxP,EAAOc,EAAM0O,GACbzJ,EAAIhG,EAAYC,EAAMC,EAAKxB,GAC3BgR,EAAMD,EAAI,EAAI1O,EAAM0O,EAAI,GAAGrP,IAAII,MAAQP,EAAK0P,UAC5C9O,GAAoC,IAA/B1B,EAAM4P,2BAAyCvI,IAARkJ,GAAqB3L,OAAOC,SAAS0L,GACnFzP,EAAKG,IAAII,OAASkP,EAClB1J,EAAEnF,GACAmE,EAAIrC,EAAM1C,EAAKG,IAAIuC,QAAU9B,EAAM1B,EAAMnB,SAAW,UAAcmB,EAAMlB,WAAa,YAC3FiN,EAAMzI,KAAKuD,EAAEtG,GAAKd,KAAKC,MAAMmX,EAAK,GAAIhQ,EAAEvF,MAAOuV,EAAIpX,KAAKG,IAAI,EAAGiH,EAAErF,KAAOqF,EAAEvF,OAAQuE,GAC7E8Q,IACH5K,EAAMzI,KAAKuD,EAAEtG,GAAKqW,EAAM/P,EAAE3F,MAAO0V,EAAMC,EAAIhR,GAC3CkG,EAAMzI,KAAKuD,EAAEtG,GAAIsG,EAAEzF,OAAQwV,EAAMC,EAAIhR,GAEzC,CACF,CA6YQiR,CAAS9V,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAK,IACzCS,EAAOnB,QAASmB,EAAMnB,SAAW6Q,EAAM7Q,QAASC,UAAWkB,EAAMlB,WAAa4Q,EAAM5Q,WAC7E,aAATgX,EAAqBjQ,GACxB,MACF,IAAK,OACH2M,EAASxR,EAAGY,EAAOwO,EAAU7Q,EAAK,IAAKS,EAAOwD,MAAOxD,EAAMwD,OAASkM,EAAMqH,WAAalR,GACvF,MACF,IAAK,eACH2M,EAASxR,EAAGY,EAAOwO,EAAU7Q,EAAK,IAAKS,EAAOwD,MAAOxD,EAAMwD,OAASkM,EAAMqH,UAAW3D,SAAS,GAAQvN,GACtG,MACF,IAAK,OACH2M,EAASxR,EAAGY,EAAOwO,EAAU7Q,EAAK,IAAKS,EAAOwD,MAAOxD,EAAMwD,OAASkM,EAAMqH,UAAWtF,MAAM,GAAQ5L,GACnG,MACF,IAAK,QApNX,SACEkG,EAAoBnK,EAA4Bb,EAChDxB,EAAayX,EAAoBhX,EAAoBwD,GAErD,MAAMqO,EAAMlQ,EAAYC,EAAOb,GAC/B,GAAmB,IAAf8Q,EAAIlL,OAAc,OACtB,MAAM4M,EAAQyD,EAAazX,EAC3B,GAAIgU,EAAQ,EAAG,CACb,MAAM3C,EAAMpN,EAAMxD,EAAMiX,cAAgB,yBAClCC,EAAS1T,EAAMxD,EAAMmX,iBAAmB,yBAC9C7D,EAAevH,EAAO8F,EAAKtS,EAAKgU,EAAQvR,GAAMuF,EAAkBqJ,EAAKsG,EAAQlV,EAAIuR,GAAQ,OAC3F,CACAf,EAASzG,EAAOnK,EAAOb,EAAKxB,EAAK,CAC/BiE,MAAOxD,EAAMwD,OAAS,UACtBwP,UAAWhT,EAAMgT,WAAa,IAC9BE,UAAWlT,EAAMkT,WAChB1P,EACL,CAoMQ4T,CAASpW,EAAGY,EAAOwO,EAAU7Q,EAAKsW,EAAGmB,WAAY,IAC5ChX,EACHwD,MAAOxD,EAAMwD,OAASkM,EAAMqH,UAC5BE,aAAcjX,EAAMiX,cAAgBvH,EAAMuH,aAC1CE,gBAAiBnX,EAAMmX,iBAAmBzH,EAAMyH,iBAC/CtR,GACH,MACF,IAAK,YA7KX,SACEkG,EAAoBnK,EAA4Bb,EAChDxB,EAAaS,EAAoBwD,GAEjC,GAAqB,IAAjB5B,EAAM+E,OAAc,OACxB,MAAM0Q,EAAQ1V,EAAYC,EAAOb,EAAMC,GAAMA,EAAEO,MACzC+V,EAAO3V,EAAYC,EAAOb,EAAMC,GAAMA,EAAES,KACxC8V,EAAO/T,EAAMxD,EAAMiX,cAAgB,yBACzC,IAAI5E,GAAO,EACX,IAAK,IAAI/B,EAAI,EAAGA,EAAI1O,EAAM+E,OAAQ2J,IAAK,CACrC,MAAM/M,EAAI8T,EAAM/G,GACVkH,EAAIF,EAAKhH,GACf,GAAK1L,OAAOC,SAAStB,EAAEnD,IAAOwE,OAAOC,SAAStB,EAAEvB,IAAO4C,OAAOC,SAAS2S,EAAExV,GAAzE,CACA,GAAIqQ,GAAQ,EAAG,CACb,MAAMoF,EAAKJ,EAAMhF,GACXqF,EAAKJ,EAAKjF,GAChBtG,EAAM7G,KAAKuS,EAAGrX,EAAIb,EAAKkY,EAAGzV,EAAIzC,EAAKgY,EAAMhU,EAAEnD,EAAIb,EAAKgE,EAAEvB,EAAIzC,EAAKgY,EAAMG,EAAGtX,EAAIb,EAAKmY,EAAG1V,EAAIzC,EAAKgY,EAAMC,EAAEpX,EAAIb,EAAKiY,EAAExV,EAAIzC,EAAKgY,EAC3H,CACAlF,EAAO/B,CANsE,CAO/E,CACA,MAAMqH,EAASlY,KAAKG,IAAI,EAAGH,KAAKe,OAAOR,EAAMgT,WAAa,KAAOzT,IAAQ,EACzE,IAAK,MAAO+G,EAAKuL,IAAQ,CAAC,CAAC7R,EAAM4X,UAAWP,GAAQ,CAACrX,EAAM6X,SAAUP,SACvDjQ,IAARf,GACJsL,EAAa7F,EAAO8F,EAAKtS,EAAKoY,EAAQrR,OAAKe,EAAW,GAAI7D,GAE5DgP,EAASzG,EAAOnK,EAAOb,EAAKxB,EAAK,CAAEiE,MAAOxD,EAAM8X,YAAc,UAAW9E,UAAWhT,EAAMgT,WAAa,KAAOxP,EAChH,CAoJQuU,CAAY/W,EAAGY,EAAOwO,EAAU7Q,EAAK,IAAKS,EAAO8X,WAAY9X,EAAM8X,YAAcpI,EAAMqH,WAAalR,GACpG,MACF,IAAK,YA3MX,SACEkG,EAAoBnK,EAA4Bb,EAChDxB,EAAaS,EAAoBwD,GAEjC,MAAM+P,EAAQxS,EAAIf,EAAMgY,WAAa,GAAKzY,EACpCsS,EAAMlQ,EAAYC,EAAOb,GAC/B,GAAmB,IAAf8Q,EAAIlL,SAAiB/B,OAAOC,SAAS0O,GAAQ,OACjD,GAAIA,EAAQ,EAAG,CACb,MAAM0E,EAAUzU,EAAMxD,EAAMiX,cAAgB,yBAC5C3D,EAAevH,EAAO8F,EAAKtS,EAAKgU,EAAQvR,GAAMuF,EAAkB0Q,EAAS9R,EAAanE,EAAIuR,GAAQ,QACpG,CACA,MAAM2E,EAAU1U,EAAMxD,EAAMmX,iBAAmB,wBAC/C7D,EAAevH,EAAO8F,EAAKtS,EAAKgU,EAAO,IAAM2E,EAAS,SAEtD,MAAM3T,EAAK9E,KAAKG,IAAI,EAAGH,KAAKe,OAAOR,EAAMgT,WAAa,KAAOzT,IAAQ,EAC/D4Y,EAAU3U,EAAMxD,EAAMoY,UAAY,WAClCC,EAAa7U,EAAMxD,EAAMsY,aAAe,WAC9C,IAAK,IAAIhI,EAAI,EAAGA,EAAIuB,EAAIlL,OAAQ2J,IAAK,CACnC,MAAMxJ,EAAI+K,EAAIvB,EAAI,GACZtP,EAAI6Q,EAAIvB,GACd,KAAK1L,OAAOC,SAASiC,EAAE1G,IAAOwE,OAAOC,SAASiC,EAAE9E,IAAO4C,OAAOC,SAAS7D,EAAEZ,IAAOwE,OAAOC,SAAS7D,EAAEgB,IAAI,SACtG,MAAMuW,GAASzR,EAAE9E,EAAIhB,EAAEgB,GAAK,GAAKuR,EAAQhU,EACzCwM,EAAM7H,QAAQ4C,EAAE1G,EAAIb,EAAKuH,EAAE9E,EAAIzC,EAAKyB,EAAEZ,EAAIb,EAAKyB,EAAEgB,EAAIzC,EAAKgF,EAAIgU,EAAQJ,EAAUE,GAAY,EAC9F,CACF,CAoLQG,CAAaxX,EAAGY,EAAOwO,EAAU7Q,EAAK,IACjCS,EACHoY,SAAUpY,EAAMoY,UAAY1I,EAAM+I,gBAClCH,YAAatY,EAAMsY,aAAe5I,EAAMgJ,mBACxCzB,aAAcjX,EAAMiX,cAAgBvH,EAAMiJ,gBAC1CxB,gBAAiBnX,EAAMmX,iBAAmBzH,EAAMkJ,oBAC/C/S,GACH,MACF,IAAK,UA3aX,SACEkG,EAAoBnK,EAA4Bb,EAChDzB,EAAoBC,EAAaS,EAAoBwD,GAErD,MAAM7D,EAAIN,EAAgBC,EAAYC,GAChCyF,EAAOvF,KAAKC,MAAMC,EAAI,GACtB4T,EAAQ9T,KAAKe,MAAMO,EAAIf,EAAMyS,MAAQ,GAAKlT,GAChD,IAAK,MAAMuB,KAAQc,EAAO,CACxB,MAAMiF,EAAIhG,EAAYC,EAAMC,EAAKxB,GAC3B+G,EAAMxF,EAAKG,IAAIuC,OAASxD,EAAMwD,QAAUqD,EAAEnF,GAAM1B,EAAMnB,SAAW,UAAcmB,EAAMlB,WAAa,WAClG8R,EAAMnR,KAAKiB,IAAI6S,EAAO1M,EAAEzF,QAC9B2K,EAAMzI,KAAKuD,EAAEtG,GAAKyE,EAAM4L,EAAKjR,EAAGF,KAAKG,IAAI,EAAGH,KAAKqR,IAAIyC,EAAQ1M,EAAEzF,SAAUoC,EAAM8C,GACjF,CACF,CA+ZQuS,CAAY7X,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAK,IAC5CS,EAAOnB,QAASmB,EAAMnB,SAAW6Q,EAAM7Q,QAASC,UAAWkB,EAAMlB,WAAa4Q,EAAM5Q,WACtF+G,GACH,MACF,IAAK,aAhaX,SACEkG,EAAoBnK,EAA4BkX,EAChDxZ,EAAoBC,EAAawT,EAAcN,EAAcjP,GAE7D,MAAM7D,EAAIN,EAAgBC,EAAYC,GAChCyF,EAAOvF,KAAKC,MAAMC,EAAI,GACtB4T,EAAQ9T,KAAKe,MAAMsY,EAASrG,GAAQlT,GAC1C,IAAK,MAAMa,EAAEA,EAACa,IAAEA,KAASW,EAAO,CAC9B,MAAMrB,EAAKd,KAAKe,MAAMJ,EAAIb,GACpByC,EAAIvC,KAAKe,MAAMsY,EAAS7X,EAAII,OAAS9B,GACrCqR,EAAMnR,KAAKiB,IAAI6S,EAAOvR,GAC5B+J,EAAMzI,KAAK/C,EAAKyE,EAAM4L,EAAKjR,EAAGF,KAAKG,IAAI,EAAGH,KAAKqR,IAAIyC,EAAQvR,IAAKwB,EAAMvC,EAAIuC,OAASuP,GACrF,CACF,CAoZQgG,CAAc/X,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAKS,EAAMwD,OAAS,UAAWxD,EAAMyS,MAAQ,EAAG5M,GAGpG,CAEO,QAAAmT,GACLtW,KAAK4T,QACP,CAEO,SAAA2C,GACL,OAAOvW,KAAK6R,IACd,CAEO,OAAA2E,GACDxW,KAAK2S,WAAW3S,KAAK2R,OAAO9I,UAChC7I,KAAK2S,WAAY,EACjB3S,KAAKoS,OAAOzR,QACZX,KAAK6R,KAAO,KACZ7R,KAAKwS,QAAU,IACjB,CAQQ,MAAAoB,GACN,MAAMtV,EAAI0B,KAAKoS,OACf,GAAoB,IAAhB9T,EAAEkC,WAAiC,OAAdR,KAAK6R,KAAe,OAC7C,MAAM5U,EAAI+C,KAAKyS,SACT5R,EAAIb,KAAK0S,UACTjK,EAAUzI,KAAK2R,OAAOlJ,QACxBxL,EAAI,GAAK4D,EAAI,GAAiB,OAAZ4H,GAAoBzI,KAAK2R,OAAOvI,OAAO9K,EAAGrB,EAAG4D,IACjEb,KAAK6R,KAAK4E,UAAUhO,EAAyC,EAAG,EAAGxL,EAAG4D,EAAG,EAAG,EAAG5D,EAAG4D,GAEpFvC,EAAEqC,OACJ,EAOI,SAAU+V,EAAoB/E,GAClC,YAAehN,IAAXgN,EACG9E,IACE,IAAI6E,EAAc9E,KADQ,KAG5B+E,EAAO3J,UAAY,IAAI0J,EAAcC,GAAU,IACxD,CCn1BO,MAAMgF,EAAa,QAE1B,IAAIC,GAAc,WAOFC,IACVD,IACJA,GAAc,EACdE,EAAsB,SAAU,IAAMJ,KACxC,CAEAG"}
1
+ {"version":3,"file":"openalgo-charts.webgl.mjs","sources":["../src/render/candles.ts","../src/render/bars.ts","../src/render/line.ts","../src/render/webgl/batch.ts","../src/render/webgl/color.ts","../src/render/pill.ts","../src/render/webgl/shaders.ts","../src/render/webgl/backend.ts","../src/webgl/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["DEFAULT_CANDLE_STYLE","upColor","downColor","borderUpColor","borderDownColor","wickUpColor","wickDownColor","borderVisible","wickVisible","optimalBarWidth","barSpacing","dpr","raw","Math","floor","w","max","candleTier","bodyW","wickW","style","hollow","bodyVisible","candleGeometry","x","widthScale","fullW","cx","round","scale","min","bodyX","wickX","barGeometry","item","toY","b","bar","yOpen","open","yClose","close","yHigh","high","yLow","low","up","valuePoints","items","value","map","it","y","FLOATS_PER_VERTEX","SOLID","whole","v","VertexBatch","constructor","capacity","Object","defineProperty","this","_capacity","vertices","Float32Array","indices","Uint32Array","_fillIndices","vertexCount","quadCount","indexCount","floatCount","reset","rect","h","color","hx","hy","cy","skirt","ex","ey","o","_claim","_vertex","segment","x0","y0","x1","y1","hw","dx","dy","len","hypot","Number","isFinite","ux","uy","half","rad","quad","c0","c1","x2","y2","c2","x3","y3","c3","triangle","_grow","c","u","from","set","ix","q","TRANSPARENT","unit","parsePremultiplied","css","trim","startsWith","hex","slice","length","r","g","a","parseInt","some","isNaN","n","m","exec","undefined","parseColor","lerpPremultiplied","t","ColorCache","Map","get","normalise","out","_map","plain","size","clear","compile","gl","type","source","shader","createShader","Error","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","isContextLost","log","getShaderInfoLog","deleteShader","CONTEXT_ATTRIBUTES","alpha","antialias","premultipliedAlpha","preserveDrawingBuffer","depth","stencil","defaultSurface","doc","globalThis","document","createElement","Offscreen","OffscreenCanvas","GlDevice","createSurface","e","preventDefault","_lost","_program","_vao","_vbo","_ibo","_indexCapacity","_createSurface","available","_probed","_surface","getContext","_gl","addEventListener","_onLost","_onRestored","lost","surface","refs","_refs","acquire","release","width","height","ensureSize","widthPx","heightPx","s","render","batch","_setup","p","viewport","enable","SCISSOR_TEST","scissor","clearColor","COLOR_BUFFER_BIT","useProgram","program","uniform2f","uResolution","bindVertexArray","bindBuffer","ARRAY_BUFFER","bufferData","STREAM_DRAW","ELEMENT_ARRAY_BUFFER","STATIC_DRAW","drawElements","TRIANGLES","UNSIGNED_INT","vs","VERTEX_SHADER","fs","FRAGMENT_SHADER","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteProgram","aPos","getAttribLocation","aColor","aLocal","aShape","getUniformLocation","compileShapeProgram","createVertexArray","createBuffer","enableVertexAttribArray","vertexAttribPointer","FLOAT","bindShapeAttributes","disable","DEPTH_TEST","CULL_FACE","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","shared","sharedGlDevice","isWebGL2Supported","WebGL2RenderingContext","resolveCandleStyle","theme","extra","colorByPreviousClose","strokeRing","L","ox","oy","ow","oh","emitCandles","priceToY","uniformTier","i","ref","prevClose","geo","halfW","over","body","wick","wickColor","border","borderColor","top","bodyH","abs","filled","emitDashedSegment","ax","ay","bx","by","dash","state","step","rem","idx","emitPolyline","pts","fallback","colors","pattern","concat","total","d","dashed","prev","run","own","emitLine","base","push","stepPoints","cols","any","pointColors","fill","lineWidth","markersOnly","lineStyle","lineDash","markers","markerRadius","emitFillToBase","baseY","colorAt","side","cBase","px","NaN","py","aAbove","bAbove","xc","NATIVE_TYPES","nativeKinds","WeakMap","WebGL2Backend","device","_normalise","_ctx","ctx","keep","fillStyle","first","second","normaliseWith2d","_batch","mount","canvas","ctx2d","_canvas","_widthPx","_heightPx","_acquired","resize","beginFrame","_frame2d","setTransform","clearRect","drawSeries","entry","rc","kind","registered","Set","registeredChartTypes","name","has","getChartType","nativeKind","_flush","draw","_color","maxVolume","volume","highLowOnly","tick","lw","emitBars","lineColor","plotHeight","areaTopColor","bottom","areaBottomColor","emitArea","highs","lows","band","l","ph","pl","edgeHw","highColor","lowColor","closeColor","emitHlcArea","baseValue","topFill","botFill","topLine","topColor","bottomLine","bottomColor","above","emitBaseline","baselineTopLine","baselineBottomLine","baselineTopFill","baselineBottomFill","emitColumns","valueToY","emitHistogram","endFrame","overlay2d","destroy","drawImage","createWebGL2Backend","WEBGL_TIER","_registered","registerWebGL2Renderer","registerRenderBackend"],"mappings":"0GAsCO,MAAMA,EAAoC,CAC/CC,QAAS,UACTC,UAAW,UACXC,cAAe,UACfC,gBAAiB,UACjBC,YAAa,UACbC,cAAe,UACfC,eAAe,EACfC,aAAa,GAQT,SAAUC,EAAgBC,EAAoBC,GAClD,MAAMC,EAAMC,KAAKC,MAAMJ,EAAaC,EAAM,IAC1C,IAAII,EAAIF,KAAKG,IAAI,EAAGJ,GACpB,GAAIG,GAAK,EAAG,CAENA,EAAI,GADKF,KAAKG,IAAI,EAAGH,KAAKC,MAAMH,IACf,IAAGI,GAAK,EAC/B,CACA,OAAOF,KAAKG,IAAI,EAAGD,EACrB,UA4BgBE,EAAWC,EAAeC,EAAeC,GACvD,OAAKA,EAAMZ,aACU,IAAjBY,EAAMC,SACgB,IAAtBD,EAAME,aACNJ,EAAQC,GAGRC,EAAMb,eAAiBW,GAAS,GAIhCE,EAAMnB,UAAYmB,EAAMf,aACxBe,EAAMlB,YAAckB,EAAMd,cAVI,OAW3B,OAZwB,MAajC,CAyBM,SAAUiB,EAAeC,EAAWd,EAAoBC,EAAac,EAAa,GACtF,MAAMC,EAAQjB,EAAgBC,EAAYC,GACpCQ,EAAQN,KAAKG,IAAI,EAAGH,KAAKC,MAAMH,IAC/BgB,EAAKd,KAAKe,MAAMJ,EAAIb,GACpBkB,EAAQhB,KAAKG,IAAI,IAAMH,KAAKiB,IAAI,EAAGL,IACnCP,EAAkB,IAAVW,EAAcH,EAAQb,KAAKG,IAAI,EAAGH,KAAKe,MAAMF,EAAQG,IACnE,MAAO,CACLF,KACAI,MAAOJ,EAAKd,KAAKC,MAAMI,EAAQ,GAC/BA,QACAc,MAAOL,EAAKd,KAAKC,MAAMK,EAAQ,GAC/BA,QAEJ,UCjHgBc,EAAYC,EAAmBC,EAA4BxB,GACzE,MAAMyB,EAAIF,EAAKG,IACf,MAAO,CACLV,GAAId,KAAKe,MAAMM,EAAKV,EAAIb,GACxB2B,MAAOzB,KAAKe,MAAMO,EAAIC,EAAEG,MAAQ5B,GAChC6B,OAAQ3B,KAAKe,MAAMO,EAAIC,EAAEK,OAAS9B,GAClC+B,MAAO7B,KAAKe,MAAMO,EAAIC,EAAEO,MAAQhC,GAChCiC,KAAM/B,KAAKe,MAAMO,EAAIC,EAAES,KAAOlC,GAC9BmC,GAAIV,EAAEK,OAASL,EAAEG,KAErB,CCpBM,SAAUQ,EACdC,EACAb,EACAc,EAA6Bb,GAAMA,EAAEK,OAErC,OAAOO,EAAME,IAAKC,IAAE,CAAQ3B,EAAG2B,EAAG3B,EAAG4B,EAAGjB,EAAIc,EAAME,EAAGd,QACvD,CCAO,MAAMgB,EAAoB,GAgBpBC,EAAQ,IAGfC,EAASC,GAAuBA,IAAM3C,KAAKe,MAAM4B,SAE1CC,EAMX,WAAAC,CAAmBC,EAAW,KALvBC,OAAAC,eAAAC,KAAA,WAAA,0DACAF,OAAAC,eAAAC,KAAA,UAAA,0DACAF,OAAAC,eAAAC,KAAA,YAAA,iDAAY,IACXF,OAAAC,eAAAC,KAAA,YAAA,0DAGNA,KAAKC,UAAYlD,KAAKG,IAAI,EAAG2C,GAC7BG,KAAKE,SAAW,IAAIC,aA5BS,EA4BIH,KAAKC,UAAgCV,GACtES,KAAKI,QAAU,IAAIC,YA5BS,EA4BGL,KAAKC,WACpCD,KAAKM,aAAa,EACpB,CAEA,YAAWT,GACT,OAAOG,KAAKC,SACd,CAEA,eAAWM,GACT,OAtC6B,EAsCtBP,KAAKQ,SACd,CAEA,cAAWC,GACT,OAzC4B,EAyCrBT,KAAKQ,SACd,CAEA,cAAWE,GACT,OAAOV,KAAKO,YAAchB,CAC5B,CAGO,KAAAoB,GACLX,KAAKQ,UAAY,CACnB,CASO,IAAAI,CAAKlD,EAAW4B,EAAWrC,EAAW4D,EAAWC,GACtD,KAAM7D,EAAI,GAAQ4D,EAAI,GAAI,OAC1B,MAAME,EAAK9D,EAAI,EACT+D,EAAKH,EAAI,EACThD,EAAKH,EAAIqD,EACTE,EAAK3B,EAAI0B,EACTE,EAAQzB,EAAM/B,IAAM+B,EAAMH,IAAMG,EAAM/B,EAAIT,IAAMwC,EAAMH,EAAIuB,GAAK,EAAI,EACnEM,EAAKJ,EAAKG,EACVE,EAAKJ,EAAKE,EACVG,EAAIrB,KAAKsB,SACT5B,EAAIM,KAAKE,SACfF,KAAKuB,QAAQ7B,EAAG2B,EAAGxD,EAAKsD,EAAIF,EAAKG,EAAIN,GAAQK,GAAKC,EAAIL,EAAIC,EAAI,GAC9DhB,KAAKuB,QAAQ7B,EAAG2B,EAAI9B,EAAmB1B,EAAKsD,EAAIF,EAAKG,EAAIN,EAAOK,GAAKC,EAAIL,EAAIC,EAAI,GACjFhB,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBxD,EAAKsD,EAAIF,EAAKG,EAAIN,GAAQK,EAAIC,EAAIL,EAAIC,EAAI,GACrFhB,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBxD,EAAKsD,EAAIF,EAAKG,EAAIN,EAAOK,EAAIC,EAAIL,EAAIC,EAAI,EACtF,CASO,OAAAQ,CAAQC,EAAYC,EAAYC,EAAYC,EAAYC,EAAYf,EAA0BhD,GACnG,KAAM+D,EAAK,GAAI,OACf,MAAMC,EAAKH,EAAKF,EACVM,EAAKH,EAAKF,EACVM,EAAMjF,KAAKkF,MAAMH,EAAIC,GAC3B,IAAKG,OAAOC,SAASH,GAAM,OAC3B,GAAY,IAARA,IAAclE,EAAO,OAEzB,MAAMsE,EAAa,IAARJ,EAAY,EAAIF,EAAKE,EAC1BK,EAAa,IAARL,EAAY,EAAID,EAAKC,EAC1BnE,GAAM4D,EAAKE,GAAM,EACjBV,GAAMS,EAAKE,GAAM,EACjBU,EAAON,EAAM,EAGbjB,EAAKuB,EACLtB,EAAKlD,EAAQ,EAAI+D,EACjBU,EAAMzE,EAAQ+D,EAAK,EAEnBV,EAAKmB,EAAOT,EAAK,EACjBT,EAAKS,EAAK,EACVR,EAAIrB,KAAKsB,SACT5B,EAAIM,KAAKE,SACfF,KAAKuB,QAAQ7B,EAAG2B,EAAGxD,EAAKuE,EAAKjB,EAAKkB,EAAKjB,EAAIH,EAAKoB,EAAKlB,EAAKiB,EAAKhB,EAAIN,GAAQK,GAAKC,EAAIL,EAAIC,EAAIuB,GAC5FvC,KAAKuB,QAAQ7B,EAAG2B,EAAI9B,EAAmB1B,EAAKuE,EAAKjB,EAAKkB,EAAKjB,EAAIH,EAAKoB,EAAKlB,EAAKiB,EAAKhB,EAAIN,EAAOK,GAAKC,EAAIL,EAAIC,EAAIuB,GAC/GvC,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBxD,EAAKuE,EAAKjB,EAAKkB,EAAKjB,EAAIH,EAAKoB,EAAKlB,EAAKiB,EAAKhB,EAAIN,GAAQK,EAAIC,EAAIL,EAAIC,EAAIuB,GACnHvC,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBxD,EAAKuE,EAAKjB,EAAKkB,EAAKjB,EAAIH,EAAKoB,EAAKlB,EAAKiB,EAAKhB,EAAIN,EAAOK,EAAIC,EAAIL,EAAIC,EAAIuB,EACpH,CAOO,IAAAC,CACLf,EAAYC,EAAYe,EACxBd,EAAYC,EAAYc,EACxBC,EAAYC,EAAYC,EACxBC,EAAYC,EAAYC,GAExB,MAAM3B,EAAIrB,KAAKsB,SACT5B,EAAIM,KAAKE,SACfF,KAAKuB,QAAQ7B,EAAG2B,EAAGI,EAAIC,EAAIe,EAAI,EAAG,EAAGjD,EAAOA,EAAO,GACnDQ,KAAKuB,QAAQ7B,EAAG2B,EAAI9B,EAAmBoC,EAAIC,EAAIc,EAAI,EAAG,EAAGlD,EAAOA,EAAO,GACvEQ,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuBsB,EAAIC,EAAIC,EAAI,EAAG,EAAGrD,EAAOA,EAAO,GAC3EQ,KAAKuB,QAAQ7B,EAAG2B,EAAI,GAAuByB,EAAIC,EAAIC,EAAI,EAAG,EAAGxD,EAAOA,EAAO,EAC7E,CAGO,QAAAyD,CACLxB,EAAYC,EAAYe,EACxBd,EAAYC,EAAYc,EACxBC,EAAYC,EAAYC,GAExB7C,KAAKwC,KAAKf,EAAIC,EAAIe,EAAId,EAAIC,EAAIc,EAAIC,EAAIC,EAAIC,EAAIF,EAAIC,EAAIC,EACxD,CAGQ,MAAAvB,GACFtB,KAAKQ,YAAcR,KAAKC,WAAWD,KAAKkD,QAC5C,MAAM7B,EAjJuB,EAiJnBrB,KAAKQ,UAAgCjB,EAE/C,OADAS,KAAKQ,YACEa,CACT,CAEQ,OAAAE,CACN7B,EAAiB2B,EAAW3D,EAAW4B,EAAW6D,EAClDC,EAAWnG,EAAW8D,EAAYC,EAAYuB,GAE9C7C,EAAE2B,GAAK3D,EACPgC,EAAE2B,EAAI,GAAK/B,EACXI,EAAE2B,EAAI,GAAK8B,EAAE,GACbzD,EAAE2B,EAAI,GAAK8B,EAAE,GACbzD,EAAE2B,EAAI,GAAK8B,EAAE,GACbzD,EAAE2B,EAAI,GAAK8B,EAAE,GACbzD,EAAE2B,EAAI,GAAK+B,EACX1D,EAAE2B,EAAI,GAAKpE,EACXyC,EAAE2B,EAAI,GAAKN,EACXrB,EAAE2B,EAAI,GAAKL,EACXtB,EAAE2B,EAAI,IAAMkB,CACd,CAEQ,KAAAW,GACN,MAAMG,EAAOrD,KAAKC,UAClBD,KAAKC,WAAa,EAClB,MAAMC,EAAW,IAAIC,aA1KQ,EA0KKH,KAAKC,UAAgCV,GACvEW,EAASoD,IAAItD,KAAKE,UAClBF,KAAKE,SAAWA,EAChB,MAAME,EAAU,IAAIC,YA5KQ,EA4KIL,KAAKC,WACrCG,EAAQkD,IAAItD,KAAKI,SACjBJ,KAAKI,QAAUA,EACfJ,KAAKM,aAAa+C,EACpB,CAGQ,YAAA/C,CAAa+C,GACnB,MAAME,EAAKvD,KAAKI,QAChB,IAAK,IAAIoD,EAAIH,EAAMG,EAAIxD,KAAKC,UAAWuD,IAAK,CAC1C,MAAMlF,EAvLqB,EAuLjBkF,EACJnC,EAvLoB,EAuLhBmC,EACVD,EAAGlC,GAAK/C,EACRiF,EAAGlC,EAAI,GAAK/C,EAAI,EAChBiF,EAAGlC,EAAI,GAAK/C,EAAI,EAChBiF,EAAGlC,EAAI,GAAK/C,EAAI,EAChBiF,EAAGlC,EAAI,GAAK/C,EAAI,EAChBiF,EAAGlC,EAAI,GAAK/C,EAAI,CAClB,CACF,ECrMK,MAAMmF,EAAiC,CAAC,EAAG,EAAG,EAAG,GAExD,SAASC,EAAKhE,GACZ,OAAOA,EAAI,EAAKA,EAAI,EAAIA,EAAI,EAAK,CACnC,CAGM,SAAUiE,EAAmBC,GACjC,MAAMT,ECnBF,SAAqBrC,GACzB,MAAMqC,EAAIrC,EAAM+C,OAChB,GAAIV,EAAEW,WAAW,KAAM,CACrB,MAAMC,EAAMZ,EAAEa,MAAM,GACpB,GAAmB,IAAfD,EAAIE,QAA+B,IAAfF,EAAIE,OAAc,CACxC,MAAOC,EAAGC,EAAG7F,EAAG8F,GAAK,IAAIL,GAAK3E,IAAKyB,GAAMwD,SAASxD,EAAIA,EAAG,KACzD,MAAI,CAACqD,EAAGC,EAAG7F,GAAGgG,KAAKpC,OAAOqC,OAAe,KAClC,CAAEL,IAAGC,IAAG7F,IAAG8F,EAAkB,IAAfL,EAAIE,OAAeG,EAAI,IAAM,EACpD,CACA,GAAmB,IAAfL,EAAIE,QAA+B,IAAfF,EAAIE,OAAc,CACxC,MAAMO,EAAIH,SAASN,EAAIC,MAAM,EAAG,GAAI,IACpC,GAAI9B,OAAOqC,MAAMC,GAAI,OAAO,KAC5B,MAAMJ,EAAmB,IAAfL,EAAIE,OAAeI,SAASN,EAAIC,MAAM,EAAG,GAAI,IAAM,IAAM,EACnE,MAAO,CAAEE,EAAIM,GAAK,GAAM,IAAKL,EAAIK,GAAK,EAAK,IAAKlG,EAAO,IAAJkG,EAASJ,EAAGlC,OAAOqC,MAAMH,GAAK,EAAIA,EACvF,CACA,OAAO,IACT,CACA,MAAMK,EAAI,+EAA+EC,KAAKvB,GAC9F,OAAU,OAANsB,EAAmB,KAChB,CAAEP,EAAGhC,OAAOuC,EAAE,IAAKN,EAAGjC,OAAOuC,EAAE,IAAKnG,EAAG4D,OAAOuC,EAAE,IAAKL,OAAYO,IAATF,EAAE,GAAmB,EAAIvC,OAAOuC,EAAE,IACnG,CDDYG,CAAWhB,GACrB,GAAU,OAANT,EAAY,OAAO,KACvB,MAAMiB,EAAIV,EAAKP,EAAEiB,GACjB,MAAO,CAACV,EAAKP,EAAEe,EAAI,KAAOE,EAAGV,EAAKP,EAAEgB,EAAI,KAAOC,EAAGV,EAAKP,EAAE7E,EAAI,KAAO8F,EAAGA,EACzE,UAUgBS,EAAkBT,EAAsB9F,EAAsBwG,GAC5E,MAAO,CACLV,EAAE,IAAM9F,EAAE,GAAK8F,EAAE,IAAMU,EACvBV,EAAE,IAAM9F,EAAE,GAAK8F,EAAE,IAAMU,EACvBV,EAAE,IAAM9F,EAAE,GAAK8F,EAAE,IAAMU,EACvBV,EAAE,IAAM9F,EAAE,GAAK8F,EAAE,IAAMU,EAE3B,OA8BaC,EAAb,WAAAnF,GACmBE,OAAAC,eAAAC,KAAA,OAAA,2CAAOb,MAAA,IAAI6F,KA8B9B,CArBS,GAAAC,CAAIrB,EAAasB,GACtB,IAAIC,EAAMnF,KAAKoF,KAAKH,IAAIrB,GACxB,QAAYe,IAARQ,EAAmB,OAAOA,EAE9B,GADAA,EAAMxB,EAAmBC,SAAQe,OACrBA,IAARQ,QAAmCR,IAAdO,EAAyB,CAChD,MAAMG,EAAQH,EAAUtB,GACV,OAAVyB,IAAgBF,EAAMxB,EAAmB0B,SAAUV,EACzD,CAIA,YAHYA,IAARQ,IAAmBA,EAAM1B,GACzBzD,KAAKoF,KAAKE,MA3BE,MA2BmBtF,KAAKoF,KAAKG,QAC7CvF,KAAKoF,KAAK9B,IAAIM,EAAKuB,GACZA,CACT,CAEA,QAAWG,GACT,OAAOtF,KAAKoF,KAAKE,IACnB,CAEO,KAAAC,GACLvF,KAAKoF,KAAKG,OACZ,EEnDF,SAASC,EAAQC,EAA4BC,EAAcC,GACzD,MAAMC,EAASH,EAAGI,aAAaH,GAC/B,GAAe,OAAXE,EAAiB,MAAM,IAAIE,MAAM,oDAGrC,GAFAL,EAAGM,aAAaH,EAAQD,GACxBF,EAAGO,cAAcJ,IACZH,EAAGQ,mBAAmBL,EAAQH,EAAGS,kBAAoBT,EAAGU,gBAAiB,CAC5E,MAAMC,EAAMX,EAAGY,iBAAiBT,IAAW,GAE3C,MADAH,EAAGa,aAAaV,GACV,IAAIE,MAAM,oDAAoDM,IACtE,CACA,OAAOR,CACT,CCKA,MAAMW,EAA6C,CACjDC,OAAO,EACPC,WAAW,EACXC,oBAAoB,EACpBC,uBAAuB,EACvBC,OAAO,EACPC,SAAS,GAIX,SAASC,IACP,MAAMC,EAAOC,WAAuCC,SACpD,QAAYtC,IAARoC,GAAkD,mBAAtBA,EAAIG,cAClC,OAAOH,EAAIG,cAAc,UAE3B,MAAMC,EAAaH,WAA2EI,gBAC9F,YAAkBzC,IAAdwC,EAAgC,IAAIA,EAAU,EAAG,GAC9C,IACT,OASaE,EA2BX,WAAAzH,CAAmB0H,EAAwCR,GA1B3ChH,OAAAC,eAAAC,KAAA,SAAA,2CAASb,MAAA,IAAI4F,IACZjF,OAAAC,eAAAC,KAAA,iBAAA,0DACTF,OAAAC,eAAAC,KAAA,WAAA,iDAA6B,OAC7BF,OAAAC,eAAAC,KAAA,MAAA,iDAAqC,OACrCF,OAAAC,eAAAC,KAAA,WAAA,iDAAgC,OAChCF,OAAAC,eAAAC,KAAA,OAAA,iDAAsC,OACtCF,OAAAC,eAAAC,KAAA,OAAA,iDAA2B,OAC3BF,OAAAC,eAAAC,KAAA,OAAA,iDAA2B,OAC3BF,OAAAC,eAAAC,KAAA,iBAAA,iDAAiB,IACjBF,OAAAC,eAAAC,KAAA,QAAA,iDAAQ,IACRF,OAAAC,eAAAC,KAAA,QAAA,kDAAQ,IACRF,OAAAC,eAAAC,KAAA,UAAA,kDAAU,IACVF,OAAAC,eAAAC,KAAA,UAAA,iDAAWuH,IAEjBA,EAAEC,iBACFxH,KAAKyH,OAAQ,EACbzH,KAAK0H,SAAW,KAChB1H,KAAK2H,KAAO,KACZ3H,KAAK4H,KAAO,KACZ5H,KAAK6H,KAAO,KACZ7H,KAAK8H,eAAiB,KAEhBhI,OAAAC,eAAAC,KAAA,cAAA,2CAAcb,MAAA,KACpBa,KAAKyH,OAAQ,KAIbzH,KAAK+H,eAAiBT,CACxB,CAGA,aAAWU,GACT,IAAKhI,KAAKiI,QAAS,CACjBjI,KAAKiI,SAAU,EACfjI,KAAKkI,SAAWlI,KAAK+H,iBACrB,MAAMtC,EAAKzF,KAAKkI,UAAUC,WAAW,SAAU5B,IAAuB,KAC3D,OAAPd,IACFzF,KAAKoI,IAAM3C,EACXzF,KAAKkI,UAAUG,mBAAmB,mBAAoBrI,KAAKsI,SAC3DtI,KAAKkI,UAAUG,mBAAmB,uBAAwBrI,KAAKuI,aAEnE,CACA,OAAoB,OAAbvI,KAAKoI,GACd,CAGA,QAAWI,GACT,OAAOxI,KAAKyH,OAAuB,OAAbzH,KAAKoI,KAAgBpI,KAAKoI,IAAIjC,eACtD,CAEA,WAAWsC,GACT,OAAOzI,KAAKkI,QACd,CAEA,QAAWQ,GACT,OAAO1I,KAAK2I,KACd,CAEA,MAAWlD,GACT,OAAOzF,KAAKoI,GACd,CAEO,OAAAQ,GACL,QAAK5I,KAAKgI,YACVhI,KAAK2I,SACE,EACT,CAEO,OAAAE,GACc,IAAf7I,KAAK2I,QACT3I,KAAK2I,QAEc,IAAf3I,KAAK2I,OAAiC,OAAlB3I,KAAKkI,WAC3BlI,KAAKkI,SAASY,MAAQ,EACtB9I,KAAKkI,SAASa,OAAS,GAE3B,CAGO,UAAAC,CAAWC,EAAiBC,GACjC,MAAMC,EAAInJ,KAAKkI,SACL,OAANiB,IACAA,EAAEL,MAAQG,IAASE,EAAEL,MAAQG,GAC7BE,EAAEJ,OAASG,IAAUC,EAAEJ,OAASG,GACtC,CAOO,MAAAE,CAAOC,EAAoBJ,EAAiBC,GACjD,GAAiB,OAAblJ,KAAKoI,KAAkC,OAAlBpI,KAAKkI,UAAqBlI,KAAKwI,KAAM,OAAO,EACrE,MAAM/C,EAAKzF,KAAKoI,IAChB,GAAsB,OAAlBpI,KAAK0H,WAAsB1H,KAAKsJ,OAAO7D,GAAK,OAAO,EACvD,MAAM8D,EAAIvJ,KAAK0H,SACf1H,KAAKgJ,WAAWC,EAASC,GAIzB,MAAMxH,EAAK1B,KAAKkI,SAASa,OAASG,EAMlC,OALAzD,EAAG+D,SAAS,EAAG9H,EAAIuH,EAASC,GAC5BzD,EAAGgE,OAAOhE,EAAGiE,cACbjE,EAAGkE,QAAQ,EAAGjI,EAAIuH,EAASC,GAC3BzD,EAAGmE,WAAW,EAAG,EAAG,EAAG,GACvBnE,EAAGF,MAAME,EAAGoE,kBACY,IAApBR,EAAM7I,YACViF,EAAGqE,WAAWP,EAAEQ,SAChBtE,EAAGuE,UAAUT,EAAEU,YAAahB,EAASC,GACrCzD,EAAGyE,gBAAgBlK,KAAK2H,MACxBlC,EAAG0E,WAAW1E,EAAG2E,aAAcpK,KAAK4H,MACpCnC,EAAG4E,WAAW5E,EAAG2E,aAAcf,EAAMnJ,SAAUuF,EAAG6E,YAAa,EAAGjB,EAAM3I,YAGpE2I,EAAMjJ,QAAQ6D,OAASjE,KAAK8H,iBAC9BrC,EAAG0E,WAAW1E,EAAG8E,qBAAsBvK,KAAK6H,MAC5CpC,EAAG4E,WAAW5E,EAAG8E,qBAAsBlB,EAAMjJ,QAASqF,EAAG+E,aACzDxK,KAAK8H,eAAiBuB,EAAMjJ,QAAQ6D,QAEtCwB,EAAGgF,aAAahF,EAAGiF,UAAWrB,EAAM5I,WAAYgF,EAAGkF,aAAc,GACjElF,EAAGyE,gBAAgB,QAde,CAgBpC,CAGQ,MAAAZ,CAAO7D,GACb,IAAIsE,EACJ,IACEA,ED9JA,SAA8BtE,GAClC,MAAMmF,EAAKpF,EAAQC,EAAIA,EAAGoF,cAzDC,yaA0DrBC,EAAKtF,EAAQC,EAAIA,EAAGsF,gBAvCG,sVAwCvBhB,EAAUtE,EAAGuF,gBACnB,GAAgB,OAAZjB,EAAkB,MAAM,IAAIjE,MAAM,qDAQtC,GAPAL,EAAGwF,aAAalB,EAASa,GACzBnF,EAAGwF,aAAalB,EAASe,GACzBrF,EAAGyF,YAAYnB,GAGftE,EAAGa,aAAasE,GAChBnF,EAAGa,aAAawE,IACXrF,EAAG0F,oBAAoBpB,EAAStE,EAAG2F,eAAiB3F,EAAGU,gBAAiB,CAC3E,MAAMC,EAAMX,EAAG4F,kBAAkBtB,IAAY,GAE7C,MADAtE,EAAG6F,cAAcvB,GACX,IAAIjE,MAAM,kDAAkDM,IACpE,CACA,MAAO,CACL2D,UACAwB,KAAM9F,EAAG+F,kBAAkBzB,EAAS,SACpC0B,OAAQhG,EAAG+F,kBAAkBzB,EAAS,WACtC2B,OAAQjG,EAAG+F,kBAAkBzB,EAAS,WACtC4B,OAAQlG,EAAG+F,kBAAkBzB,EAAS,WACtCE,YAAaxE,EAAGmG,mBAAmB7B,EAAS,gBAEhD,CCqIgB8B,CAAoBpG,EAChC,CAAE,MAIA,OADAzF,KAAKoI,IAAM,MACJ,CACT,CAeA,OAdApI,KAAK0H,SAAWqC,EAChB/J,KAAK2H,KAAOlC,EAAGqG,oBACf9L,KAAK4H,KAAOnC,EAAGsG,eACf/L,KAAK6H,KAAOpC,EAAGsG,eACf/L,KAAK8H,eAAiB,EACtBrC,EAAGyE,gBAAgBlK,KAAK2H,MACxBlC,EAAG0E,WAAW1E,EAAG2E,aAAcpK,KAAK4H,MACpCnC,EAAG0E,WAAW1E,EAAG8E,qBAAsBvK,KAAK6H,MD5I1C,SAA8BpC,EAA4B8D,GAC9D9D,EAAGuG,wBAAwBzC,EAAEgC,MAC7B9F,EAAGwG,oBAAoB1C,EAAEgC,KAAM,EAAG9F,EAAGyG,OAAO,EH1ElB3M,GAJF,GG+ExBkG,EAAGuG,wBAAwBzC,EAAEkC,QAC7BhG,EAAGwG,oBAAoB1C,EAAEkC,OAAQ,EAAGhG,EAAGyG,OAAO,EH5EpB3M,GAHA,GGgF1BkG,EAAGuG,wBAAwBzC,EAAEmC,QAC7BjG,EAAGwG,oBAAoB1C,EAAEmC,OAAQ,EAAGjG,EAAGyG,OAAO,EH9EpB3M,GAFA,IGiF1BkG,EAAGuG,wBAAwBzC,EAAEoC,QAC7BlG,EAAGwG,oBAAoB1C,EAAEoC,OAAQ,EAAGlG,EAAGyG,OAAO,EHhFpB3M,GADA,GGkF5B,CCoII4M,CAAoB1G,EAAIsE,GACxBtE,EAAGyE,gBAAgB,MACnBzE,EAAG2G,QAAQ3G,EAAG4G,YACd5G,EAAG2G,QAAQ3G,EAAG6G,WACd7G,EAAGgE,OAAOhE,EAAG8G,OACb9G,EAAG+G,UAAU/G,EAAGgH,IAAKhH,EAAGiH,sBACjB,CACT,EAGF,IAAIC,EAA0B,cAGdC,IAEd,OADe,OAAXD,IAAiBA,EAAS,IAAItF,GAC3BsF,CACT,UAGgBE,IACd,YAA2F,IAA/E7F,WAAoD8F,wBACzDF,IAAiB5E,SAC1B,CAKA,SAAS+E,EAAmB5D,EAAgB6D,EAAmBC,EAA8B,CAAA,GAC3F,MAAO,IACF/Q,EACHC,QAASgN,EAAEhN,SAAW6Q,EAAM7Q,QAC5BC,UAAW+M,EAAE/M,WAAa4Q,EAAM5Q,UAChCC,cAAe8M,EAAE9M,eAAiB2Q,EAAM7Q,QACxCG,gBAAiB6M,EAAE7M,iBAAmB0Q,EAAM5Q,UAC5CG,YAAa4M,EAAE5M,aAAeyQ,EAAMzQ,YACpCC,cAAe2M,EAAE3M,eAAiBwQ,EAAMxQ,cACxCC,cAAe0M,EAAE1M,eAAiBP,EAAqBO,cACvDe,YAAa2L,EAAE3L,cAAe,EAC9Bd,YAAayM,EAAEzM,aAAeR,EAAqBQ,YACnDwQ,qBAAsB/D,EAAE+D,wBACrBD,EAEP,CAYA,SAASE,EAAW9D,EAAoB3L,EAAW4B,EAAWrC,EAAW4D,EAAWuM,EAAWjK,GAC7F,MAAMkK,EAAK3P,EAAI0P,EAAI,EACbE,EAAKhO,EAAI8N,EAAI,EACbG,EAAKtQ,EAAImQ,EACTI,EAAK3M,EAAIuM,EACXnQ,EAAImQ,GAAK,GAAKvM,EAAIuM,GAAK,EACzB/D,EAAMzI,KAAKyM,EAAIC,EAAIC,EAAIC,EAAIrK,IAG7BkG,EAAMzI,KAAKyM,EAAIC,EAAIC,EAAIH,EAAGjK,GAC1BkG,EAAMzI,KAAKyM,EAAIC,EAAKE,EAAKJ,EAAGG,EAAIH,EAAGjK,GACnCkG,EAAMzI,KAAKyM,EAAIC,EAAKF,EAAGA,EAAGI,EAAK,EAAIJ,EAAGjK,GACtCkG,EAAMzI,KAAKyM,EAAKE,EAAKH,EAAGE,EAAKF,EAAGA,EAAGI,EAAK,EAAIJ,EAAGjK,GACjD,CAGA,SAASsK,EACPpE,EAAoBnK,EAA4BwO,EAChD9Q,EAAoBC,EAAaS,EAAoBwD,GAErD,MAAM1D,EAAQT,EAAgBC,EAAYC,GACpCQ,EAAQN,KAAKG,IAAI,EAAGH,KAAKC,MAAMH,IAC/B8Q,EAAcrQ,EAAMK,WAAa,KAAOR,EAAWC,EAAOC,EAAOC,GACvE,IAAK,IAAIsQ,EAAI,EAAGA,EAAI1O,EAAM+E,OAAQ2J,IAAK,CACrC,MAAMlQ,EAAEA,EAACa,IAAEA,GAAQW,EAAM0O,GACnBC,EAAMD,EAAI,EAAI1O,EAAM0O,EAAI,GAAGrP,IAAII,MAAQO,EAAM0O,GAAGE,UAChD9O,GAAoC,IAA/B1B,EAAM4P,2BAAyCvI,IAARkJ,GAAqB3L,OAAOC,SAAS0L,GACnFtP,EAAII,OAASkP,EACbtP,EAAII,OAASJ,EAAIE,KACfD,EAAQzB,KAAKe,MAAM4P,EAASnP,EAAIE,MAAQ5B,GACxC6B,EAAS3B,KAAKe,MAAM4P,EAASnP,EAAII,OAAS9B,GAC1C+B,EAAQ7B,KAAKe,MAAM4P,EAASnP,EAAIM,MAAQhC,GACxCiC,EAAO/B,KAAKe,MAAM4P,EAASnP,EAAIQ,KAAOlC,GACtCkR,EAAMtQ,EAAeC,EAAGd,EAAYC,EAAKS,EAAMK,WAAaL,EAAMK,WAAWY,GAAO,GACpFV,EAAKkQ,EAAIlQ,GACTZ,EAAI8Q,EAAI3Q,MACR4Q,EAAQnQ,EAAKkQ,EAAI9P,MACjBgQ,EAAO1P,EAAIuC,MACXoN,EAAOD,IAASjP,EAAK1B,EAAMnB,QAAUmB,EAAMlB,WAG3C+R,EAAO5P,EAAI6P,WAAaH,IAASjP,EAAK1B,EAAMf,YAAce,EAAMd,eAChE6R,EAAS9P,EAAI+P,aAAeL,IAASjP,EAAK1B,EAAMjB,cAAgBiB,EAAMhB,iBAK5E,GAHIgB,EAAMZ,aACR2M,EAAMzI,KAAKmN,EAAI7P,MAAOU,EAAOmP,EAAI1Q,MAAON,KAAKG,IAAI,EAAG4B,EAAOF,GAAQkC,EAAMqN,IAEtB,UAAhDR,GAAexQ,EAAWF,EAAGI,EAAOC,KAAsB6Q,IAASD,EAAM,SAE9E,MAAMK,EAAMxR,KAAKiB,IAAIQ,EAAOE,GACtB8P,EAAQzR,KAAKG,IAAI,EAAGH,KAAK0R,IAAI/P,EAASF,IAE5C,GAAIlB,EAAMC,QAAUyB,EAClBmO,EAAW9D,EAAOxL,EAAKmQ,EAAQ,GAAKO,EAAM,GAAKtR,EAAI,EAAGuR,EAAQ,EAAGzR,KAAKG,IAAI,EAAGG,GAAQyD,EAAMxD,EAAMb,cAAgB4R,EAASH,QACrH,CACL,MAAMQ,GAA+B,IAAtBpR,EAAME,YACjBkR,GAAQrF,EAAMzI,KAAK/C,EAAKmQ,EAAOO,EAAKtR,EAAGuR,EAAO1N,EAAMoN,IACpD5Q,EAAMb,iBAAmBiS,GAAUzR,GAAK,IAC1CkQ,EAAW9D,EAAOxL,EAAKmQ,EAAQ,GAAKO,EAAM,GAAKtR,EAAI,EAAGuR,EAAQ,EAAG,EAAG1N,EAAMuN,GAE9E,CACF,CACF,CAwFA,SAASM,EACPtF,EAAoBuF,EAAYC,EAAYC,EAAYC,EACxDlN,EAAYsB,EAAsB6L,EAAyBC,GAE3D,MAAMjN,EAAMjF,KAAKkF,MAAM6M,EAAKF,EAAIG,EAAKF,GACrC,GAAY,IAAR7M,EAAW,OACf,MAAMI,GAAM0M,EAAKF,GAAM5M,EACjBK,GAAM0M,EAAKF,GAAM7M,EACvB,IAAI8C,EAAI,EACR,KAAOA,EAAI9C,GAAK,CACd,MAAMkN,EAAOnS,KAAKiB,IAAIiR,EAAME,IAAKnN,EAAM8C,GACnCmK,EAAMG,IAAM,GAAM,GAAKF,EAAO,GAChC7F,EAAM7H,QAAQoN,EAAKxM,EAAK0C,EAAG+J,EAAKxM,EAAKyC,EAAG8J,EAAKxM,GAAM0C,EAAIoK,GAAOL,EAAKxM,GAAMyC,EAAIoK,GAAOrN,EAAIsB,GAAG,GAE7F2B,GAAKoK,EACLD,EAAME,KAAOD,EACTD,EAAME,KAAO,OACfF,EAAMG,KAAOH,EAAMG,IAAM,GAAKJ,EAAK/K,OACnCgL,EAAME,IAAMH,EAAKC,EAAMG,KAE3B,CACF,CASA,SAASC,EACPhG,EAAoBiG,EAAoBzS,EAAagF,EAAY0N,EACjEC,EAAqDR,EAAyBlO,GAI9E,IAAI2O,EAAUT,EACVS,EAAQxL,OAAS,GAAM,IAAGwL,EAAUA,EAAQC,OAAOD,IACvD,IAAIE,EAAQ,EACZ,IAAK,MAAMC,KAAKH,EAASE,GAASC,EAClC,MAAMC,EAASJ,EAAQxL,OAAS,GAAK0L,EAAQ,EACvCV,EAAmB,CAAEG,IAAK,EAAGD,IAAKU,EAASJ,EAAQ,GAAK,GAC9D,IAAIK,EACAC,EACA5M,EAAIrC,EAAMyO,GACd,IAAK,IAAI3B,EAAI,EAAGA,EAAI0B,EAAIrL,OAAQ2J,IAAK,CACnC,MAAMrE,EAAI+F,EAAI1B,GACd,IAAK1L,OAAOC,SAASoH,EAAE7L,KAAOwE,OAAOC,SAASoH,EAAEjK,GAAI,CAAEwQ,OAAOnL,EAAW,QAAU,CAClF,QAAaA,IAATmL,EAAoB,CACtBA,EAAOvG,EACP0F,EAAMG,IAAM,EACZH,EAAME,IAAMU,EAASJ,EAAQ,GAAK,EAClC,QACF,CACA,MAAMO,OAAiBrL,IAAX6K,EAAuBO,EAAMP,EAAO5B,GAC5CoC,IAAQD,IACVA,EAAMC,EACN7M,EAAIrC,EAAMkP,GAAOT,GACjBN,EAAMG,IAAM,EACZH,EAAME,IAAMU,EAASJ,EAAQ,GAAK,GAEhCI,EAAQlB,EAAkBtF,EAAOyG,EAAKpS,EAAIb,EAAKiT,EAAKxQ,EAAIzC,EAAK0M,EAAE7L,EAAIb,EAAK0M,EAAEjK,EAAIzC,EAAKgF,EAAIsB,EAAGsM,EAASR,GAClG5F,EAAM7H,QAAQsO,EAAKpS,EAAIb,EAAKiT,EAAKxQ,EAAIzC,EAAK0M,EAAE7L,EAAIb,EAAK0M,EAAEjK,EAAIzC,EAAKgF,EAAIsB,GAAG,GAC5E2M,EAAOvG,CACT,CACF,CAGA,SAAS0G,EACP5G,EAAoBnK,EAA4Bb,EAChDxB,EAAaS,EAAoBwD,GAEjC,MAAMoP,EAAOjR,EAAYC,EAAOb,GAC1BiR,EAAMhS,EAAM4R,KL/ed,SAAqBI,GACzB,GAAmB,IAAfA,EAAIrL,OAAc,MAAO,GAC7B,MAAMkB,EAAY,CAAC,IAAKmK,EAAI,KAC5B,IAAK,IAAI1B,EAAI,EAAGA,EAAI0B,EAAIrL,OAAQ2J,IAC9BzI,EAAIgL,KAAK,CAAEzS,EAAG4R,EAAI1B,GAAGlQ,EAAG4B,EAAGgQ,EAAI1B,EAAI,GAAGtO,IACtC6F,EAAIgL,KAAK,CAAEzS,EAAG4R,EAAI1B,GAAGlQ,EAAG4B,EAAGgQ,EAAI1B,GAAGtO,IAEpC,OAAO6F,CACT,CKue2BiL,CAAWF,GAAQA,EACtCG,EAjGR,SAAqBnR,EAA4BgQ,GAC/C,IAAIoB,GAAM,EACV,IAAK,MAAMjR,KAAMH,EAAO,QAAqByF,IAAjBtF,EAAGd,IAAIuC,MAAqB,CAAEwP,GAAM,EAAM,KAAO,CAC7E,IAAKA,EAAK,OACV,MAAMnL,EAA8B,GACpC,IAAK,MAAM9F,KAAMH,EACXgQ,GAAQ/J,EAAIlB,OAAS,GAAGkB,EAAIgL,KAAK9Q,EAAGd,IAAIuC,OAC5CqE,EAAIgL,KAAK9Q,EAAGd,IAAIuC,OAElB,OAAOqE,CACT,CAuFeoL,CAAYrR,GAAsB,IAAf5B,EAAM4R,MAChCsB,EAAOlT,EAAMwD,OAAS,UACtBe,EAAK9E,KAAKG,IAAI,GAAII,EAAMmT,WAAa,KAAO5T,GAAO,EAEzD,GADKS,EAAMoT,aAAarB,EAAahG,EAAOiG,EAAKzS,EAAKgF,EAAI2O,EAAMH,EA3GlE,SAAkB/S,EAAoBT,GACpC,MAAwB,WAApBS,EAAMqT,UAA+B,CAAC,EAAI9T,EAAK,EAAIA,GAC/B,WAApBS,EAAMqT,UAA+B,CAAC,EAAI9T,EAAK,EAAIA,GAChD,EACT,CAuGwE+T,CAAStT,EAAOT,GAAMiE,GACxFxD,EAAMuT,SAAWvT,EAAMoT,YAAa,CACtC,MAAMxM,GAAK5G,EAAMwT,cAAgB,GAAKjU,EACtC,IAAK,IAAI+Q,EAAI,EAAGA,EAAIsC,EAAKjM,OAAQ2J,IAAK,CACpC,MAAMrE,EAAI2G,EAAKtC,GACf,IAAK1L,OAAOC,SAASoH,EAAE7L,KAAOwE,OAAOC,SAASoH,EAAEjK,GAAI,SACpD,MAAM6D,EAAIrC,OAAe6D,IAAT0L,EAAsBnR,EAAM0O,GAAGrP,IAAIuC,OAAS0P,EAAQA,GACpEnH,EAAM7H,QAAQ+H,EAAE7L,EAAIb,EAAK0M,EAAEjK,EAAIzC,EAAK0M,EAAE7L,EAAIb,EAAK0M,EAAEjK,EAAIzC,EAAKqH,EAAGf,GAAG,EAClE,CACF,CACF,CAYA,SAAS4N,EACP1H,EAAoBiG,EAAoBzS,EAAamU,EACrDC,EAA2CC,GAE3C,MAAMC,EAAQF,EAAQD,GACtB,IAAII,EAAKC,IACLC,EAAKD,IACT,IAAK,MAAM9H,KAAK+F,EAAK,CACnB,MAAM5R,EAAI6L,EAAE7L,EAAIb,EACVyC,EAAIiK,EAAEjK,EAAIzC,EAChB,GAAKqF,OAAOC,SAASzE,IAAOwE,OAAOC,SAAS7C,GAA5C,CACA,GAAI4C,OAAOC,SAASiP,GAAK,CACvB,MAAMG,EAASD,GAAMN,EACfQ,EAASlS,GAAK0R,EACpB,GAAIO,IAAWC,EACA,SAATN,GAA6B,UAATA,IAAsBK,GAC5ClI,EAAM7G,KAAK4O,EAAIE,EAAIL,EAAQK,GAAK5T,EAAG4B,EAAG2R,EAAQ3R,GAAI8R,EAAIJ,EAAOG,EAAOzT,EAAGsT,EAAOG,OAE3E,CACL,MAAMM,EAAKL,GAAM1T,EAAI0T,IAAOJ,EAAQM,IAAOhS,EAAIgS,GAClC,SAATJ,GAA6B,UAATA,IAAsBK,GAC5ClI,EAAMpG,SAASmO,EAAIE,EAAIL,EAAQK,GAAKG,EAAIT,EAAOG,EAAOC,EAAIJ,EAAOG,GAEtD,SAATD,GAA6B,UAATA,IAAsBM,GAC5CnI,EAAMpG,SAASvF,EAAG4B,EAAG2R,EAAQ3R,GAAImS,EAAIT,EAAOG,EAAOzT,EAAGsT,EAAOG,EAEjE,CACF,CACAC,EAAK1T,EACL4T,EAAKhS,CAnB2C,CAoBlD,CACF,CAgFA,MAAMoS,EAAsC,CAC1C,cAAe,gBAAiB,gBAAiB,MAAO,WACxD,OAAQ,eAAgB,OAAQ,OAAQ,WAAY,WAAY,SAAU,aAUtEC,EAAc,IAAIC,cAiBXC,EAgBX,WAAAjS,CAAmBkS,EAAmBlF,KAftB9M,OAAAC,eAAAC,KAAA,OAAA,iDAAO,WACPF,OAAAC,eAAAC,KAAA,SAAA,0DACCF,OAAAC,eAAAC,KAAA,SAAA,2CAASb,MAAA,IAAIQ,IACtBG,OAAAC,eAAAC,KAAA,UAAA,iDAAoC,OACpCF,OAAAC,eAAAC,KAAA,OAAA,iDAAwC,OACxCF,OAAAC,eAAAC,KAAA,WAAA,iDAAW,IACXF,OAAAC,eAAAC,KAAA,YAAA,iDAAY,IAEZF,OAAAC,eAAAC,KAAA,YAAA,kDAAY,IAEZF,OAAAC,eAAAC,KAAA,WAAA,kDAAW,IAEFF,OAAAC,eAAAC,KAAA,SAAA,2CAAkBb,MAACyE,GAAQ5D,KAAK8R,OAAOtC,OAAOvK,IAAIrB,EAAK5D,KAAK+R,cAC5DjS,OAAAC,eAAAC,KAAA,aAAA,iDAAc4D,GAA8C,OAAd5D,KAAKgS,KAAgB,KHpoBhF,SAA0BC,EAA+BrO,GAC7D,MAAMsO,EAAOD,EAAIE,UACjBF,EAAIE,UAAY,UAChBF,EAAIE,UAAYvO,EAChB,MAAMwO,EAAQH,EAAIE,UAClBF,EAAIE,UAAY,UAChBF,EAAIE,UAAYvO,EAChB,MAAMyO,EAASJ,EAAIE,UAEnB,OADAF,EAAIE,UAAYD,EACQ,iBAAVE,GAAsBA,IAAUC,EAASD,EAAQ,IACjE,CG0nB6FE,CAAgBtS,KAAKgS,KAAMpO,KAGpH5D,KAAK8R,OAASA,CAChB,CAGA,SAAWzI,GACT,OAAOrJ,KAAKuS,MACd,CAEO,KAAAC,CAAMC,EAA2BC,GAGtC,GAFA1S,KAAK2S,QAAUF,EACfzS,KAAKgS,KAAOU,GAASD,EAAOtK,WAAW,MACrB,OAAdnI,KAAKgS,KAAe,MAAM,IAAIlM,MAAM,uDACxC9F,KAAK4S,SAAWH,EAAO3J,MACvB9I,KAAK6S,UAAYJ,EAAO1J,OACxB/I,KAAK8S,UAAY9S,KAAK8R,OAAOlJ,UAC7B5I,KAAK8R,OAAO9I,WAAWhJ,KAAK4S,SAAU5S,KAAK6S,UAC7C,CAGO,MAAAE,CAAO9J,EAAiBC,EAAkBrM,GAC/CmD,KAAK4S,SAAW7V,KAAKe,MAAMmL,EAAUpM,GACrCmD,KAAK6S,UAAY9V,KAAKe,MAAMoL,EAAWrM,GACvCmD,KAAK8R,OAAO9I,WAAWhJ,KAAK4S,SAAU5S,KAAK6S,UAC7C,CAGO,UAAAG,CAAWzN,GAChBvF,KAAKuS,OAAO5R,QACZX,KAAKiT,SAAWjT,KAAK8R,OAAOtJ,MAA2B,OAAnBxI,KAAK8R,OAAOrM,GAC3CF,GAAuB,OAAdvF,KAAKgS,MAAkC,OAAjBhS,KAAK2S,UACzC3S,KAAKgS,KAAKkB,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACtClT,KAAKgS,KAAKmB,UAAU,EAAG,EAAGnT,KAAK2S,QAAQ7J,MAAO9I,KAAK2S,QAAQ5J,QAC7D,CAEO,UAAAqK,CACLC,EACAnU,EACAwO,EACA9Q,EACAC,EACAS,EACAgW,GAEA,GAAkB,OAAdtT,KAAKgS,KAAe,QAInBhS,KAAKiT,UAAYjT,KAAK8R,OAAOtJ,OAChCxI,KAAKiT,UAAW,EAChBjT,KAAKuS,OAAO5R,SAEd,MAAM4S,EAAOvT,KAAKiT,SAAW,KAnFjC,SAAoBI,GAClB,IAAIE,EAAO5B,EAAY1M,IAAIoO,GAC3B,QAAa1O,IAAT4O,EAAoB,CACtBA,EAAO,KACP,MAAMC,EAAa,IAAIC,IAAIC,KAC3B,IAAK,MAAMC,KAAQjC,EACjB,GAAI8B,EAAWI,IAAID,IAASE,EAAaF,KAAUN,EAAO,CAAEE,EAAOI,EAAM,KAAO,CAElFhC,EAAYrO,IAAI+P,EAAOE,EACzB,CACA,OAAOA,CACT,CAwEwCO,CAAWT,GAC/C,GAAa,OAATE,EAIF,OAFAvT,KAAK+T,cACLV,EAAMW,KAAKhU,KAAKgS,KAAM9S,EAAOwO,EAAU9Q,EAAYC,EAAKS,EAAOgW,GAGjE,MAAMhV,EAAI0B,KAAKuS,OACTpP,EAAInD,KAAKiU,OACTjH,EAAQsG,EAAGtG,MACjB,OAAQuG,GACN,IAAK,cACH9F,EAAYnP,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAKkQ,EAAmBzP,EAAO0P,GAAQ7J,GACnF,MACF,IAAK,gBACHsK,EAAYnP,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAKkQ,EAAmBzP,EAAO0P,EAAO,CAAEzP,QAAQ,IAAS4F,GACrG,MACF,IAAK,gBAAiB,CACpB,MAAMjG,EAAMoW,EAAGY,UAEfzG,EAAYnP,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAKkQ,EAAmBzP,EAAO0P,EAAO,CAAErP,WADhEY,GAAsBrB,EAAM,GAAKqB,EAAI4V,QAAU,GAAKjX,EAAM,IACqBiG,GACnG,KACF,CACA,IAAK,MACL,IAAK,YAhaX,SACEkG,EAAoBnK,EAA4Bb,EAChDzB,EAAoBC,EAAaS,EAAoB8W,EAAsBtT,GAE3E,MAAMuT,EAAOtX,KAAKG,IAAI,EAAGH,KAAKC,MAAML,EAAgBC,EAAYC,GAAO,IACjEyX,EAAKvX,KAAKG,IAAI,EAAGH,KAAKC,MAAMH,IAClC,IAAK,IAAI+Q,EAAI,EAAGA,EAAI1O,EAAM+E,OAAQ2J,IAAK,CACrC,MAAMxP,EAAOc,EAAM0O,GACbzJ,EAAIhG,EAAYC,EAAMC,EAAKxB,GAC3BgR,EAAMD,EAAI,EAAI1O,EAAM0O,EAAI,GAAGrP,IAAII,MAAQP,EAAK0P,UAC5C9O,GAAoC,IAA/B1B,EAAM4P,2BAAyCvI,IAARkJ,GAAqB3L,OAAOC,SAAS0L,GACnFzP,EAAKG,IAAII,OAASkP,EAClB1J,EAAEnF,GACAmE,EAAIrC,EAAM1C,EAAKG,IAAIuC,QAAU9B,EAAM1B,EAAMnB,SAAW,UAAcmB,EAAMlB,WAAa,YAC3FiN,EAAMzI,KAAKuD,EAAEtG,GAAKd,KAAKC,MAAMsX,EAAK,GAAInQ,EAAEvF,MAAO0V,EAAIvX,KAAKG,IAAI,EAAGiH,EAAErF,KAAOqF,EAAEvF,OAAQuE,GAC7EiR,IACH/K,EAAMzI,KAAKuD,EAAEtG,GAAKwW,EAAMlQ,EAAE3F,MAAO6V,EAAMC,EAAInR,GAC3CkG,EAAMzI,KAAKuD,EAAEtG,GAAIsG,EAAEzF,OAAQ2V,EAAMC,EAAInR,GAEzC,CACF,CA6YQoR,CAASjW,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAK,IACzCS,EAAOnB,QAASmB,EAAMnB,SAAW6Q,EAAM7Q,QAASC,UAAWkB,EAAMlB,WAAa4Q,EAAM5Q,WAC7E,aAATmX,EAAqBpQ,GACxB,MACF,IAAK,OACH8M,EAAS3R,EAAGY,EAAOwO,EAAU7Q,EAAK,IAAKS,EAAOwD,MAAOxD,EAAMwD,OAASkM,EAAMwH,WAAarR,GACvF,MACF,IAAK,eACH8M,EAAS3R,EAAGY,EAAOwO,EAAU7Q,EAAK,IAAKS,EAAOwD,MAAOxD,EAAMwD,OAASkM,EAAMwH,UAAW3D,SAAS,GAAQ1N,GACtG,MACF,IAAK,OACH8M,EAAS3R,EAAGY,EAAOwO,EAAU7Q,EAAK,IAAKS,EAAOwD,MAAOxD,EAAMwD,OAASkM,EAAMwH,UAAWtF,MAAM,GAAQ/L,GACnG,MACF,IAAK,QApNX,SACEkG,EAAoBnK,EAA4Bb,EAChDxB,EAAa4X,EAAoBnX,EAAoBwD,GAErD,MAAMwO,EAAMrQ,EAAYC,EAAOb,GAC/B,GAAmB,IAAfiR,EAAIrL,OAAc,OACtB,MAAM+M,EAAQyD,EAAa5X,EAC3B,GAAImU,EAAQ,EAAG,CACb,MAAMzC,EAAMzN,EAAMxD,EAAMoX,cAAgB,yBAClCC,EAAS7T,EAAMxD,EAAMsX,iBAAmB,yBAC9C7D,EAAe1H,EAAOiG,EAAKzS,EAAKmU,EAAQ1R,GAAMuF,EAAkB0J,EAAKoG,EAAQrV,EAAI0R,GAAQ,OAC3F,CACAf,EAAS5G,EAAOnK,EAAOb,EAAKxB,EAAK,CAC/BiE,MAAOxD,EAAMwD,OAAS,UACtB2P,UAAWnT,EAAMmT,WAAa,IAC9BE,UAAWrT,EAAMqT,WAChB7P,EACL,CAoMQ+T,CAASvW,EAAGY,EAAOwO,EAAU7Q,EAAKyW,EAAGmB,WAAY,IAC5CnX,EACHwD,MAAOxD,EAAMwD,OAASkM,EAAMwH,UAC5BE,aAAcpX,EAAMoX,cAAgB1H,EAAM0H,aAC1CE,gBAAiBtX,EAAMsX,iBAAmB5H,EAAM4H,iBAC/CzR,GACH,MACF,IAAK,YA7KX,SACEkG,EAAoBnK,EAA4Bb,EAChDxB,EAAaS,EAAoBwD,GAEjC,GAAqB,IAAjB5B,EAAM+E,OAAc,OACxB,MAAM6Q,EAAQ7V,EAAYC,EAAOb,EAAMC,GAAMA,EAAEO,MACzCkW,EAAO9V,EAAYC,EAAOb,EAAMC,GAAMA,EAAES,KACxCiW,EAAOlU,EAAMxD,EAAMoX,cAAgB,yBACzC,IAAI5E,GAAO,EACX,IAAK,IAAIlC,EAAI,EAAGA,EAAI1O,EAAM+E,OAAQ2J,IAAK,CACrC,MAAM/M,EAAIiU,EAAMlH,GACVqH,EAAIF,EAAKnH,GACf,GAAK1L,OAAOC,SAAStB,EAAEnD,IAAOwE,OAAOC,SAAStB,EAAEvB,IAAO4C,OAAOC,SAAS8S,EAAE3V,GAAzE,CACA,GAAIwQ,GAAQ,EAAG,CACb,MAAMoF,EAAKJ,EAAMhF,GACXqF,EAAKJ,EAAKjF,GAChBzG,EAAM7G,KAAK0S,EAAGxX,EAAIb,EAAKqY,EAAG5V,EAAIzC,EAAKmY,EAAMnU,EAAEnD,EAAIb,EAAKgE,EAAEvB,EAAIzC,EAAKmY,EAAMG,EAAGzX,EAAIb,EAAKsY,EAAG7V,EAAIzC,EAAKmY,EAAMC,EAAEvX,EAAIb,EAAKoY,EAAE3V,EAAIzC,EAAKmY,EAC3H,CACAlF,EAAOlC,CANsE,CAO/E,CACA,MAAMwH,EAASrY,KAAKG,IAAI,EAAGH,KAAKe,OAAOR,EAAMmT,WAAa,KAAO5T,IAAQ,EACzE,IAAK,MAAO+G,EAAK0L,IAAQ,CAAC,CAAChS,EAAM+X,UAAWP,GAAQ,CAACxX,EAAMgY,SAAUP,SACvDpQ,IAARf,GACJyL,EAAahG,EAAOiG,EAAKzS,EAAKuY,EAAQxR,OAAKe,EAAW,GAAI7D,GAE5DmP,EAAS5G,EAAOnK,EAAOb,EAAKxB,EAAK,CAAEiE,MAAOxD,EAAMiY,YAAc,UAAW9E,UAAWnT,EAAMmT,WAAa,KAAO3P,EAChH,CAoJQ0U,CAAYlX,EAAGY,EAAOwO,EAAU7Q,EAAK,IAAKS,EAAOiY,WAAYjY,EAAMiY,YAAcvI,EAAMwH,WAAarR,GACpG,MACF,IAAK,YA3MX,SACEkG,EAAoBnK,EAA4Bb,EAChDxB,EAAaS,EAAoBwD,GAEjC,MAAMkQ,EAAQ3S,EAAIf,EAAMmY,WAAa,GAAK5Y,EACpCyS,EAAMrQ,EAAYC,EAAOb,GAC/B,GAAmB,IAAfiR,EAAIrL,SAAiB/B,OAAOC,SAAS6O,GAAQ,OACjD,GAAIA,EAAQ,EAAG,CACb,MAAM0E,EAAU5U,EAAMxD,EAAMoX,cAAgB,yBAC5C3D,EAAe1H,EAAOiG,EAAKzS,EAAKmU,EAAQ1R,GAAMuF,EAAkB6Q,EAASjS,EAAanE,EAAI0R,GAAQ,QACpG,CACA,MAAM2E,EAAU7U,EAAMxD,EAAMsX,iBAAmB,wBAC/C7D,EAAe1H,EAAOiG,EAAKzS,EAAKmU,EAAO,IAAM2E,EAAS,SAEtD,MAAM9T,EAAK9E,KAAKG,IAAI,EAAGH,KAAKe,OAAOR,EAAMmT,WAAa,KAAO5T,IAAQ,EAC/D+Y,EAAU9U,EAAMxD,EAAMuY,UAAY,WAClCC,EAAahV,EAAMxD,EAAMyY,aAAe,WAC9C,IAAK,IAAInI,EAAI,EAAGA,EAAI0B,EAAIrL,OAAQ2J,IAAK,CACnC,MAAMxJ,EAAIkL,EAAI1B,EAAI,GACZtP,EAAIgR,EAAI1B,GACd,KAAK1L,OAAOC,SAASiC,EAAE1G,IAAOwE,OAAOC,SAASiC,EAAE9E,IAAO4C,OAAOC,SAAS7D,EAAEZ,IAAOwE,OAAOC,SAAS7D,EAAEgB,IAAI,SACtG,MAAM0W,GAAS5R,EAAE9E,EAAIhB,EAAEgB,GAAK,GAAK0R,EAAQnU,EACzCwM,EAAM7H,QAAQ4C,EAAE1G,EAAIb,EAAKuH,EAAE9E,EAAIzC,EAAKyB,EAAEZ,EAAIb,EAAKyB,EAAEgB,EAAIzC,EAAKgF,EAAImU,EAAQJ,EAAUE,GAAY,EAC9F,CACF,CAoLQG,CAAa3X,EAAGY,EAAOwO,EAAU7Q,EAAK,IACjCS,EACHuY,SAAUvY,EAAMuY,UAAY7I,EAAMkJ,gBAClCH,YAAazY,EAAMyY,aAAe/I,EAAMmJ,mBACxCzB,aAAcpX,EAAMoX,cAAgB1H,EAAMoJ,gBAC1CxB,gBAAiBtX,EAAMsX,iBAAmB5H,EAAMqJ,oBAC/ClT,GACH,MACF,IAAK,UA3aX,SACEkG,EAAoBnK,EAA4Bb,EAChDzB,EAAoBC,EAAaS,EAAoBwD,GAErD,MAAM7D,EAAIN,EAAgBC,EAAYC,GAChCyF,EAAOvF,KAAKC,MAAMC,EAAI,GACtB+T,EAAQjU,KAAKe,MAAMO,EAAIf,EAAM4S,MAAQ,GAAKrT,GAChD,IAAK,MAAMuB,KAAQc,EAAO,CACxB,MAAMiF,EAAIhG,EAAYC,EAAMC,EAAKxB,GAC3B+G,EAAMxF,EAAKG,IAAIuC,OAASxD,EAAMwD,QAAUqD,EAAEnF,GAAM1B,EAAMnB,SAAW,UAAcmB,EAAMlB,WAAa,WAClGmS,EAAMxR,KAAKiB,IAAIgT,EAAO7M,EAAEzF,QAC9B2K,EAAMzI,KAAKuD,EAAEtG,GAAKyE,EAAMiM,EAAKtR,EAAGF,KAAKG,IAAI,EAAGH,KAAK0R,IAAIuC,EAAQ7M,EAAEzF,SAAUoC,EAAM8C,GACjF,CACF,CA+ZQ0S,CAAYhY,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAK,IAC5CS,EAAOnB,QAASmB,EAAMnB,SAAW6Q,EAAM7Q,QAASC,UAAWkB,EAAMlB,WAAa4Q,EAAM5Q,WACtF+G,GACH,MACF,IAAK,aAhaX,SACEkG,EAAoBnK,EAA4BqX,EAChD3Z,EAAoBC,EAAa2T,EAAcN,EAAcpP,GAE7D,MAAM7D,EAAIN,EAAgBC,EAAYC,GAChCyF,EAAOvF,KAAKC,MAAMC,EAAI,GACtB+T,EAAQjU,KAAKe,MAAMyY,EAASrG,GAAQrT,GAC1C,IAAK,MAAMa,EAAEA,EAACa,IAAEA,KAASW,EAAO,CAC9B,MAAMrB,EAAKd,KAAKe,MAAMJ,EAAIb,GACpByC,EAAIvC,KAAKe,MAAMyY,EAAShY,EAAII,OAAS9B,GACrC0R,EAAMxR,KAAKiB,IAAIgT,EAAO1R,GAC5B+J,EAAMzI,KAAK/C,EAAKyE,EAAMiM,EAAKtR,EAAGF,KAAKG,IAAI,EAAGH,KAAK0R,IAAIuC,EAAQ1R,IAAKwB,EAAMvC,EAAIuC,OAAS0P,GACrF,CACF,CAoZQgG,CAAclY,EAAGY,EAAOwO,EAAU9Q,EAAYC,EAAKS,EAAMwD,OAAS,UAAWxD,EAAM4S,MAAQ,EAAG/M,GAGpG,CAEO,QAAAsT,GACLzW,KAAK+T,QACP,CAEO,SAAA2C,GACL,OAAO1W,KAAKgS,IACd,CAEO,OAAA2E,GACD3W,KAAK8S,WAAW9S,KAAK8R,OAAOjJ,UAChC7I,KAAK8S,WAAY,EACjB9S,KAAKuS,OAAO5R,QACZX,KAAKgS,KAAO,KACZhS,KAAK2S,QAAU,IACjB,CAQQ,MAAAoB,GACN,MAAMzV,EAAI0B,KAAKuS,OACf,GAAoB,IAAhBjU,EAAEkC,WAAiC,OAAdR,KAAKgS,KAAe,OAC7C,MAAM/U,EAAI+C,KAAK4S,SACT/R,EAAIb,KAAK6S,UACTpK,EAAUzI,KAAK8R,OAAOrJ,QACxBxL,EAAI,GAAK4D,EAAI,GAAiB,OAAZ4H,GAAoBzI,KAAK8R,OAAO1I,OAAO9K,EAAGrB,EAAG4D,IACjEb,KAAKgS,KAAK4E,UAAUnO,EAAyC,EAAG,EAAGxL,EAAG4D,EAAG,EAAG,EAAG5D,EAAG4D,GAEpFvC,EAAEqC,OACJ,EAOI,SAAUkW,EAAoB/E,GAClC,YAAenN,IAAXmN,EACGjF,IACE,IAAIgF,EAAcjF,KADQ,KAG5BkF,EAAO9J,UAAY,IAAI6J,EAAcC,GAAU,IACxD,CCt1BO,MAAMgF,EAAa,QAE1B,IAAIC,GAAc,WAOFC,IACVD,IACJA,GAAc,EACdE,EAAsB,SAAU,IAAMJ,KACxC,CAEAG"}