@midscene/web 0.1.1 → 0.1.2
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.
- package/dist/es/playwright-report.js +3 -22
- package/dist/lib/playwright-report.js +3 -22
- package/dist/visualizer-report/index.html +1 -0
- package/dist/visualizer-report/modern.config.json +196 -0
- package/dist/visualizer-report/route.json +36 -0
- package/dist/visualizer-report/static/css/index.c7751597.css +1 -0
- package/dist/visualizer-report/static/css/index.c7751597.css.map +1 -0
- package/dist/visualizer-report/static/js/915.d3f73af1.js +6 -0
- package/dist/visualizer-report/static/js/915.d3f73af1.js.LICENSE.txt +105 -0
- package/dist/visualizer-report/static/js/915.d3f73af1.js.map +1 -0
- package/dist/visualizer-report/static/js/async/16.8b96d0ce.js +151 -0
- package/dist/visualizer-report/static/js/async/16.8b96d0ce.js.map +1 -0
- package/dist/visualizer-report/static/js/async/212.b25a2c30.js +157 -0
- package/dist/visualizer-report/static/js/async/212.b25a2c30.js.map +1 -0
- package/dist/visualizer-report/static/js/async/353.78fcb703.js +147 -0
- package/dist/visualizer-report/static/js/async/353.78fcb703.js.map +1 -0
- package/dist/visualizer-report/static/js/async/399.84fa60a7.js +248 -0
- package/dist/visualizer-report/static/js/async/399.84fa60a7.js.map +1 -0
- package/dist/visualizer-report/static/js/async/453.782b249a.js +41 -0
- package/dist/visualizer-report/static/js/async/453.782b249a.js.map +1 -0
- package/dist/visualizer-report/static/js/async/544.ee973964.js +1 -0
- package/dist/visualizer-report/static/js/async/544.ee973964.js.map +1 -0
- package/dist/visualizer-report/static/js/async/983.ef821e39.js +1 -0
- package/dist/visualizer-report/static/js/index.ae9a86c5.js +1 -0
- package/dist/visualizer-report/static/js/index.ae9a86c5.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-antd.55d65804.js +189 -0
- package/dist/visualizer-report/static/js/lib-antd.55d65804.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-polyfill.3da3e38e.js +1 -0
- package/dist/visualizer-report/static/js/lib-polyfill.3da3e38e.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-react.c011fc71.js +2 -0
- package/dist/visualizer-report/static/js/lib-react.c011fc71.js.LICENSE.txt +39 -0
- package/dist/visualizer-report/static/js/lib-react.c011fc71.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-router.226970ff.js +2 -0
- package/dist/visualizer-report/static/js/lib-router.226970ff.js.LICENSE.txt +32 -0
- package/dist/visualizer-report/static/js/lib-router.226970ff.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_midscene_visualizer_report=self.webpackChunk_midscene_visualizer_report||[]).push([["399"],{43200:function(e,t,r){r.d(t,{o:()=>$,d:()=>M});let i=r("95098"),n=r("45025"),o=r("92245");function s(e,t,r){if(e)for(let i in e){let n=t[i.toLocaleLowerCase()];if(n){let t=e[i];"header"===i&&(t=t.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),r&&n.push(`//----${r}----//`),n.push(t)}else(0,o.Z)(`${i} placement hook does not exist in shader`)}}let u=/\{\{(.*?)\}\}/g;function a(e){let t={};return(e.match(u)?.map(e=>e.replace(/[{()}]/g,""))??[]).forEach(e=>{t[e]=[]}),t}function l(e,t){let r;let i=/@in\s+([^;]+);/g;for(;null!==(r=i.exec(e));)t.push(r[1])}function d(e,t,r=!1){let i=[];l(t,i),e.forEach(e=>{e.header&&l(e.header,i)});r&&i.sort();let n=i.map((e,t)=>` @location(${t}) ${e},`).join("\n"),o=t.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
|
|
2
|
+
${n}
|
|
3
|
+
`)}function c(e,t){let r;let i=/@out\s+([^;]+);/g;for(;null!==(r=i.exec(e));)t.push(r[1])}function f(e,t){let r=e;for(let e in t){let i=t[e];r=i.join("\n").length?r.replace(`{{${e}}}`,`//-----${e} START-----//
|
|
4
|
+
${i.join("\n")}
|
|
5
|
+
//----${e} FINISH----//`):r.replace(`{{${e}}}`,"")}return r}let m=Object.create(null),h=new Map,p=0;function g(e,t){return t.map(e=>(!h.has(e)&&h.set(e,p++),h.get(e))).sort((e,t)=>e-t).join("-")+e.vertex+e.fragment}function x(e,t,r){let i=a(e),n=a(t);return r.forEach(e=>{s(e.vertex,i,e.name),s(e.fragment,n,e.name)}),{vertex:f(e,i),fragment:f(t,n)}}let v=`
|
|
6
|
+
@in aPosition: vec2<f32>;
|
|
7
|
+
@in aUV: vec2<f32>;
|
|
8
|
+
|
|
9
|
+
@out @builtin(position) vPosition: vec4<f32>;
|
|
10
|
+
@out vUV : vec2<f32>;
|
|
11
|
+
@out vColor : vec4<f32>;
|
|
12
|
+
|
|
13
|
+
{{header}}
|
|
14
|
+
|
|
15
|
+
struct VSOutput {
|
|
16
|
+
{{struct}}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
@vertex
|
|
20
|
+
fn main( {{in}} ) -> VSOutput {
|
|
21
|
+
|
|
22
|
+
var worldTransformMatrix = globalUniforms.uWorldTransformMatrix;
|
|
23
|
+
var modelMatrix = mat3x3<f32>(
|
|
24
|
+
1.0, 0.0, 0.0,
|
|
25
|
+
0.0, 1.0, 0.0,
|
|
26
|
+
0.0, 0.0, 1.0
|
|
27
|
+
);
|
|
28
|
+
var position = aPosition;
|
|
29
|
+
var uv = aUV;
|
|
30
|
+
|
|
31
|
+
{{start}}
|
|
32
|
+
|
|
33
|
+
vColor = vec4<f32>(1., 1., 1., 1.);
|
|
34
|
+
|
|
35
|
+
{{main}}
|
|
36
|
+
|
|
37
|
+
vUV = uv;
|
|
38
|
+
|
|
39
|
+
var modelViewProjectionMatrix = globalUniforms.uProjectionMatrix * worldTransformMatrix * modelMatrix;
|
|
40
|
+
|
|
41
|
+
vPosition = vec4<f32>((modelViewProjectionMatrix * vec3<f32>(position, 1.0)).xy, 0.0, 1.0);
|
|
42
|
+
|
|
43
|
+
vColor *= globalUniforms.uWorldColorAlpha;
|
|
44
|
+
|
|
45
|
+
{{end}}
|
|
46
|
+
|
|
47
|
+
{{return}}
|
|
48
|
+
};
|
|
49
|
+
`,b=`
|
|
50
|
+
@in vUV : vec2<f32>;
|
|
51
|
+
@in vColor : vec4<f32>;
|
|
52
|
+
|
|
53
|
+
{{header}}
|
|
54
|
+
|
|
55
|
+
@fragment
|
|
56
|
+
fn main(
|
|
57
|
+
{{in}}
|
|
58
|
+
) -> @location(0) vec4<f32> {
|
|
59
|
+
|
|
60
|
+
{{start}}
|
|
61
|
+
|
|
62
|
+
var outColor:vec4<f32>;
|
|
63
|
+
|
|
64
|
+
{{main}}
|
|
65
|
+
|
|
66
|
+
return outColor * vColor;
|
|
67
|
+
};
|
|
68
|
+
`,y=`
|
|
69
|
+
in vec2 aPosition;
|
|
70
|
+
in vec2 aUV;
|
|
71
|
+
|
|
72
|
+
out vec4 vColor;
|
|
73
|
+
out vec2 vUV;
|
|
74
|
+
|
|
75
|
+
{{header}}
|
|
76
|
+
|
|
77
|
+
void main(void){
|
|
78
|
+
|
|
79
|
+
mat3 worldTransformMatrix = uWorldTransformMatrix;
|
|
80
|
+
mat3 modelMatrix = mat3(
|
|
81
|
+
1.0, 0.0, 0.0,
|
|
82
|
+
0.0, 1.0, 0.0,
|
|
83
|
+
0.0, 0.0, 1.0
|
|
84
|
+
);
|
|
85
|
+
vec2 position = aPosition;
|
|
86
|
+
vec2 uv = aUV;
|
|
87
|
+
|
|
88
|
+
{{start}}
|
|
89
|
+
|
|
90
|
+
vColor = vec4(1.);
|
|
91
|
+
|
|
92
|
+
{{main}}
|
|
93
|
+
|
|
94
|
+
vUV = uv;
|
|
95
|
+
|
|
96
|
+
mat3 modelViewProjectionMatrix = uProjectionMatrix * worldTransformMatrix * modelMatrix;
|
|
97
|
+
|
|
98
|
+
gl_Position = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);
|
|
99
|
+
|
|
100
|
+
vColor *= uWorldColorAlpha;
|
|
101
|
+
|
|
102
|
+
{{end}}
|
|
103
|
+
}
|
|
104
|
+
`,P=`
|
|
105
|
+
|
|
106
|
+
in vec4 vColor;
|
|
107
|
+
in vec2 vUV;
|
|
108
|
+
|
|
109
|
+
out vec4 finalColor;
|
|
110
|
+
|
|
111
|
+
{{header}}
|
|
112
|
+
|
|
113
|
+
void main(void) {
|
|
114
|
+
|
|
115
|
+
{{start}}
|
|
116
|
+
|
|
117
|
+
vec4 outColor;
|
|
118
|
+
|
|
119
|
+
{{main}}
|
|
120
|
+
|
|
121
|
+
finalColor = outColor * vColor;
|
|
122
|
+
}
|
|
123
|
+
`,_={name:"global-uniforms-bit",vertex:{header:`
|
|
124
|
+
struct GlobalUniforms {
|
|
125
|
+
uProjectionMatrix:mat3x3<f32>,
|
|
126
|
+
uWorldTransformMatrix:mat3x3<f32>,
|
|
127
|
+
uWorldColorAlpha: vec4<f32>,
|
|
128
|
+
uResolution: vec2<f32>,
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;
|
|
132
|
+
`}},w={name:"global-uniforms-bit",vertex:{header:`
|
|
133
|
+
uniform mat3 uProjectionMatrix;
|
|
134
|
+
uniform mat3 uWorldTransformMatrix;
|
|
135
|
+
uniform vec4 uWorldColorAlpha;
|
|
136
|
+
uniform vec2 uResolution;
|
|
137
|
+
`}};function M({bits:e,name:t}){let r=function({template:e,bits:t}){let r=g(e,t);if(m[r])return m[r];let{vertex:i,fragment:n}=function(e,t){let r=t.map(e=>e.vertex).filter(e=>!!e),i=t.map(e=>e.fragment).filter(e=>!!e),n=d(r,e.vertex,!0);return n=function(e,t){let r=[];c(t,r),e.forEach(e=>{e.header&&c(e.header,r)});let i=0,n=r.sort().map(e=>e.indexOf("builtin")>-1?e:`@location(${i++}) ${e}`).join(",\n"),o=r.sort().map(e=>` var ${e.replace(/@.*?\s+/g,"")};`).join("\n"),s=`return VSOutput(
|
|
138
|
+
${r.sort().map(e=>` ${function(e){let t=/\b(\w+)\s*:/g.exec(e);return t?t[1]:""}(e)}`).join(",\n")});`,u=t.replace(/@out\s+[^;]+;\s*/g,"");return u=(u=(u=u.replace("{{struct}}",`
|
|
139
|
+
${n}
|
|
140
|
+
`)).replace("{{start}}",`
|
|
141
|
+
${o}
|
|
142
|
+
`)).replace("{{return}}",`
|
|
143
|
+
${s}
|
|
144
|
+
`)}(r,n),{vertex:n,fragment:d(i,e.fragment,!0)}}(e,t);return m[r]=x(i,n,t),m[r]}({template:{fragment:b,vertex:v},bits:[_,...e]});return n.O.from({name:t,vertex:{source:r.vertex,entryPoint:"main"},fragment:{source:r.fragment,entryPoint:"main"}})}function $({bits:e,name:t}){return new i.J({name:t,...function({template:e,bits:t}){let r=g(e,t);return m[r]?m[r]:(m[r]=x(e.vertex,e.fragment,t),m[r])}({template:{vertex:y,fragment:P},bits:[w,...e]})})}},23149:function(e,t,r){r.d(t,{M:function(){return i},T:function(){return n}});let i={name:"color-bit",vertex:{header:`
|
|
145
|
+
@in aColor: vec4<f32>;
|
|
146
|
+
`,main:`
|
|
147
|
+
vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
|
|
148
|
+
`}},n={name:"color-bit",vertex:{header:`
|
|
149
|
+
in vec4 aColor;
|
|
150
|
+
`,main:`
|
|
151
|
+
vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
|
|
152
|
+
`}}},39193:function(e,t,r){r.d(t,{h:function(){return s},m:function(){return n}});let i={};function n(e){return!i[e]&&(i[e]={name:"texture-batch-bit",vertex:{header:`
|
|
153
|
+
@in aTextureIdAndRound: vec2<u32>;
|
|
154
|
+
@out @interpolate(flat) vTextureId : u32;
|
|
155
|
+
`,main:`
|
|
156
|
+
vTextureId = aTextureIdAndRound.y;
|
|
157
|
+
`,end:`
|
|
158
|
+
if(aTextureIdAndRound.x == 1)
|
|
159
|
+
{
|
|
160
|
+
vPosition = vec4<f32>(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
161
|
+
}
|
|
162
|
+
`},fragment:{header:`
|
|
163
|
+
@in @interpolate(flat) vTextureId: u32;
|
|
164
|
+
|
|
165
|
+
${function(e){let t=[];!1;{let r=0;for(let i=0;i<e;i++)t.push(`@group(1) @binding(${r++}) var textureSource${i+1}: texture_2d<f32>;`),t.push(`@group(1) @binding(${r++}) var textureSampler${i+1}: sampler;`)}return t.join("\n")}(16)}
|
|
166
|
+
`,main:`
|
|
167
|
+
var uvDx = dpdx(vUV);
|
|
168
|
+
var uvDy = dpdy(vUV);
|
|
169
|
+
|
|
170
|
+
${function(e){let t=[];!1;t.push("switch vTextureId {");for(let r=0;r<e;r++)r===e-1?t.push(" default:{"):t.push(` case ${r}:{`),t.push(` outColor = textureSampleGrad(textureSource${r+1}, textureSampler${r+1}, vUV, uvDx, uvDy);`),t.push(" break;}");t.push("}");return t.join("\n")}(16)}
|
|
171
|
+
`}}),i[e]}let o={};function s(e){return!o[e]&&(o[e]={name:"texture-batch-bit",vertex:{header:`
|
|
172
|
+
in vec2 aTextureIdAndRound;
|
|
173
|
+
out float vTextureId;
|
|
174
|
+
|
|
175
|
+
`,main:`
|
|
176
|
+
vTextureId = aTextureIdAndRound.y;
|
|
177
|
+
`,end:`
|
|
178
|
+
if(aTextureIdAndRound.x == 1.)
|
|
179
|
+
{
|
|
180
|
+
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
181
|
+
}
|
|
182
|
+
`},fragment:{header:`
|
|
183
|
+
in float vTextureId;
|
|
184
|
+
|
|
185
|
+
uniform sampler2D uTextures[${e}];
|
|
186
|
+
|
|
187
|
+
`,main:`
|
|
188
|
+
|
|
189
|
+
${function(e){let t=[];for(let r=0;r<16;r++)r>0&&t.push("else"),r<e-1&&t.push(`if(vTextureId < ${r}.5)`),t.push("{"),t.push(` outColor = texture(uTextures[${r}], vUV);`),t.push("}");return t.join("\n")}(16)}
|
|
190
|
+
`}}),o[e]}},78300:function(e,t,r){r.d(t,{$g:function(){return o},Kt:function(){return n},XH:function(){return i}});let i={name:"local-uniform-bit",vertex:{header:`
|
|
191
|
+
|
|
192
|
+
struct LocalUniforms {
|
|
193
|
+
uTransformMatrix:mat3x3<f32>,
|
|
194
|
+
uColor:vec4<f32>,
|
|
195
|
+
uRound:f32,
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
@group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;
|
|
199
|
+
`,main:`
|
|
200
|
+
vColor *= localUniforms.uColor;
|
|
201
|
+
modelMatrix *= localUniforms.uTransformMatrix;
|
|
202
|
+
`,end:`
|
|
203
|
+
if(localUniforms.uRound == 1)
|
|
204
|
+
{
|
|
205
|
+
vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
206
|
+
}
|
|
207
|
+
`}},n={...i,vertex:{...i.vertex,header:i.vertex.header.replace("group(1)","group(2)")}},o={name:"local-uniform-bit",vertex:{header:`
|
|
208
|
+
|
|
209
|
+
uniform mat3 uTransformMatrix;
|
|
210
|
+
uniform vec4 uColor;
|
|
211
|
+
uniform float uRound;
|
|
212
|
+
`,main:`
|
|
213
|
+
vColor *= uColor;
|
|
214
|
+
modelMatrix = uTransformMatrix;
|
|
215
|
+
`,end:`
|
|
216
|
+
if(uRound == 1.)
|
|
217
|
+
{
|
|
218
|
+
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
219
|
+
}
|
|
220
|
+
`}}},71067:function(e,t,r){r.d(t,{X:function(){return n},j:function(){return i}});let i={name:"round-pixels-bit",vertex:{header:`
|
|
221
|
+
fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
|
|
222
|
+
{
|
|
223
|
+
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
224
|
+
}
|
|
225
|
+
`}},n={name:"round-pixels-bit",vertex:{header:`
|
|
226
|
+
vec2 roundPixels(vec2 position, vec2 targetSize)
|
|
227
|
+
{
|
|
228
|
+
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
229
|
+
}
|
|
230
|
+
`}}},95098:function(e,t,r){let i,n;r.d(t,{J:()=>f});let o=r("12568"),s=r("767"),u={},a={},l={stripVersion:function(e,t){return t?e.replace("#version 300 es",""):e},ensurePrecision:function(e,t,r){let i=r?t.maxSupportedFragmentPrecision:t.maxSupportedVertexPrecision;if("precision"!==e.substring(0,9)){let n=r?t.requestedFragmentPrecision:t.requestedVertexPrecision;return"highp"===n&&"highp"!==i&&(n="mediump"),`precision ${n} float;
|
|
231
|
+
${e}`}return"highp"!==i&&"precision highp"===e.substring(0,15)?e.replace("precision highp","precision mediump"):e},addProgramDefines:function(e,t,r){return t?e:r?(e=e.replace("out vec4 finalColor;",""),`
|
|
232
|
+
|
|
233
|
+
#ifdef GL_ES // This checks if it is WebGL1
|
|
234
|
+
#define in varying
|
|
235
|
+
#define finalColor gl_FragColor
|
|
236
|
+
#define texture texture2D
|
|
237
|
+
#endif
|
|
238
|
+
${e}
|
|
239
|
+
`):`
|
|
240
|
+
|
|
241
|
+
#ifdef GL_ES // This checks if it is WebGL1
|
|
242
|
+
#define in attribute
|
|
243
|
+
#define out varying
|
|
244
|
+
#endif
|
|
245
|
+
${e}
|
|
246
|
+
`},setProgramName:function(e,{name:t="pixi-program"},r=!0){t=t.replace(/\s+/g,"-")+(r?"-fragment":"-vertex");let i=r?u:a;if(i[t]?(i[t]++,t+=`-${i[t]}`):i[t]=1,-1!==e.indexOf("#define SHADER_NAME"))return e;let n=`#define SHADER_NAME ${t}`;return`${n}
|
|
247
|
+
${e}`},insertVersion:function(e,t){return t?`#version 300 es
|
|
248
|
+
${e}`:e}},d=Object.create(null),c=class e{constructor(t){let r=-1!==(t={...e.defaultOptions,...t}).fragment.indexOf("#version 300 es"),u={stripVersion:r,ensurePrecision:{requestedFragmentPrecision:t.preferredFragmentPrecision,requestedVertexPrecision:t.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:function(){if(!n){n="mediump";let e=((!i||i?.isContextLost())&&(i=s.z.get().createCanvas().getContext("webgl",{})),i);e&&e.getShaderPrecisionFormat&&(n=e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision?"highp":"mediump")}return n}()},setProgramName:{name:t.name},addProgramDefines:r,insertVersion:r},a=t.fragment,d=t.vertex;Object.keys(l).forEach(e=>{let t=u[e];a=l[e](a,t,!0),d=l[e](d,t,!1)}),this.fragment=a,this.vertex=d,this._key=(0,o.Z)(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null}static from(t){let r=`${t.vertex}:${t.fragment}`;return!d[r]&&(d[r]=new e(t)),d[r]}};c.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};let f=c},45025:function(e,t,r){r.d(t,{O:()=>d});let i=r("12568"),n=r("12713"),o={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"};function s(e){let t=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,i=/var(<[^>]+>)? (\w+)/,n=/:\s*(\w+)/,o=/(\w+)\s*:\s*([\w\<\>]+)/g,s=/struct\s+(\w+)/,u=e.match(/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g)?.map(e=>({group:parseInt(e.match(t)[1],10),binding:parseInt(e.match(r)[1],10),name:e.match(i)[2],isUniform:"<uniform>"===e.match(i)[1],type:e.match(n)[1]}));if(!u)return{groups:[],structs:[]};let a=e.match(/struct\s+(\w+)\s*{([^}]+)}/g)?.map(e=>{let t=e.match(s)[1],r=e.match(o).reduce((e,t)=>{let[r,i]=t.split(":");return e[r.trim()]=i.trim(),e},{});return r?{name:t,members:r}:null}).filter(({name:e})=>u.some(t=>t.type===e))??[];return{groups:u,structs:a}}var u,a=((u=a||{})[u.VERTEX=1]="VERTEX",u[u.FRAGMENT=2]="FRAGMENT",u[u.COMPUTE=4]="COMPUTE",u);let l=Object.create(null);class d{constructor(e){this._layoutKey=0;let{fragment:t,vertex:r,layout:i,gpuLayout:n,name:o}=e;if(this.name=o,this.fragment=t,this.vertex=r,t.source===r.source){let e=s(t.source);this.structsAndGroups=e}else{let e=s(r.source),i=s(t.source);this.structsAndGroups=function(e,t){let r=new Set,i=new Set,n=[...e.structs,...t.structs].filter(e=>!r.has(e.name)&&(r.add(e.name),!0));return{structs:n,groups:[...e.groups,...t.groups].filter(e=>{let t=`${e.name}-${e.binding}`;return!i.has(t)&&(i.add(t),!0)})}}(e,i)}this.layout=i??function({groups:e}){let t=[];for(let r=0;r<e.length;r++){let i=e[r];!t[i.group]&&(t[i.group]={}),t[i.group][i.name]=i.binding}return t}(this.structsAndGroups),this.gpuLayout=n??function({groups:e}){let t=[];for(let r=0;r<e.length;r++){let i=e[r];!t[i.group]&&(t[i.group]=[]),i.isUniform?t[i.group].push({binding:i.binding,visibility:a.VERTEX|a.FRAGMENT,buffer:{type:"uniform"}}):"sampler"===i.type?t[i.group].push({binding:i.binding,visibility:a.FRAGMENT,sampler:{type:"filtering"}}):"texture_2d"===i.type&&t[i.group].push({binding:i.binding,visibility:a.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}})}return t}(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:e,fragment:t}=this,r=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=(0,i.Z)(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=function({source:e,entryPoint:t}){let r={},i=e.indexOf(`fn ${t}`);if(-1!==i){let t=e.indexOf("->",i);if(-1!==t){let s;let u=e.substring(i,t),a=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|$)/g;for(;null!==(s=a.exec(u));){let e=o[s[3]]??"float32";r[s[2]]={location:parseInt(s[1],10),format:e,stride:(0,n.v)(e).stride,offset:0,instance:!1,start:0}}}}return r}(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null}static from(e){let t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return!l[t]&&(l[t]=new d(e)),l[t]}}},12713:function(e,t,r){r.d(t,{v:function(){return n}});let i={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}};function n(e){return i[e]??i.float32}},8482:function(e,t,r){r.d(t,{e:function(){return l}});var i=r(72193),n=r(95098),o=r(49458),s=r(45025),u=r(71423),a=r(73109);class l extends i.Z{constructor(e){super(),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:r,groups:i,resources:n,compatibleRenderers:s,groupMap:l}=e;this.gpuProgram=t,this.glProgram=r,void 0===s&&(s=0,t&&(s|=u.g.WEBGPU),r&&(s|=u.g.WEBGL)),this.compatibleRenderers=s;let d={};if(!n&&!i&&(n={}),n&&i)throw Error("[Shader] Cannot have both resources and groups");if(t||!i||l){if(!t&&i&&l)for(let e in l)for(let t in l[e]){let r=l[e][t];d[r]={group:e,binding:t,name:r}}else if(t&&i&&!l){let e=t.structsAndGroups.groups;l={},e.forEach(e=>{l[e.group]=l[e.group]||{},l[e.group][e.binding]=e.name,d[e.name]=e})}else if(n){if(t){let e=t.structsAndGroups.groups;l={},e.forEach(e=>{l[e.group]=l[e.group]||{},l[e.group][e.binding]=e.name,d[e.name]=e})}else{l={},i={99:new o.v},this._ownedBindGroups.push(i[99]);let e=0;for(let t in n)d[t]={group:99,binding:e,name:t},l[99]=l[99]||{},l[99][e]=t,e++}for(let e in i={},n){let t=n[e];!t.source&&!t._resourceType&&(t=new a.o(t));let r=d[e];r&&(!i[r.group]&&(i[r.group]=new o.v,this._ownedBindGroups.push(i[r.group])),i[r.group].setResource(t,r.binding))}}}else throw Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");this.groups=i,this._uniformBindMap=l,this.resources=this._buildResourceAccessor(i,d)}addResource(e,t,r){var i,n;(i=this._uniformBindMap)[t]||(i[t]={}),(n=this._uniformBindMap[t])[r]||(n[r]=e),!this.groups[t]&&(this.groups[t]=new o.v,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let r={};for(let i in t){let n=t[i];Object.defineProperty(r,n.name,{get:()=>e[n.group].getResource(n.binding),set(t){e[n.group].setResource(t,n.binding)}})}return r}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(e=>{e.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){let t,r;let{gpu:i,gl:o,...u}=e;return i&&(t=s.O.from(i)),o&&(r=n.J.from(o)),new l({gpuProgram:t,glProgram:r,...u})}}},73109:function(e,t,r){r.d(t,{o:()=>s});let i=r("45649"),n=r("12568"),o=class e{constructor(t,r){this._touched=0,this.uid=(0,i.h)("uniform"),this._resourceType="uniformGroup",this._resourceId=(0,i.h)("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,r={...e.defaultOptions,...r},this.uniformStructures=t;let o={};for(let e in t){let r=t[e];r.name=e,r.size=r.size??1,r.value??(r.value=function(e,t){switch(e){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*t);case"vec3<f32>":return new Float32Array(3*t);case"vec4<f32>":return new Float32Array(4*t);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}(r.type,r.size)),o[e]=r.value}this.uniforms=o,this._dirtyId=1,this.ubo=r.ubo,this.isStatic=r.isStatic,this._signature=(0,n.Z)(Object.keys(o).map(e=>`${e}-${t[e].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};o.defaultOptions={ubo:!1,isStatic:!1};let s=o},29492:function(e,t,r){r.d(t,{Z:function(){return o}});let i={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8},n=class e{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(1&this.data)}set blend(e){!!(1&this.data)!==e&&(this.data^=1)}get offsets(){return!!(2&this.data)}set offsets(e){!!(2&this.data)!==e&&(this.data^=2)}set cullMode(e){if("none"===e){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace="front"===e}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(4&this.data)}set culling(e){!!(4&this.data)!==e&&(this.data^=4)}get depthTest(){return!!(8&this.data)}set depthTest(e){!!(8&this.data)!==e&&(this.data^=8)}get depthMask(){return!!(32&this.data)}set depthMask(e){!!(32&this.data)!==e&&(this.data^=32)}get clockwiseFrontFace(){return!!(16&this.data)}set clockwiseFrontFace(e){!!(16&this.data)!==e&&(this.data^=16)}get blendMode(){return this._blendMode}set blendMode(e){this.blend="none"!==e,this._blendMode=e,this._blendModeId=i[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let t=new e;return t.depthTest=!1,t.blend=!0,t}};n.default2d=n.for2d();let o=n},50900:function(e,t,r){r.d(t,{z:function(){return u}});var i=r(45854),n=r(32970),o=r(41277);let s=0,u=new class e{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1}createTexture(e,t,r){let i=new n.p({...this.textureOptions,width:e,height:t,resolution:1,antialias:r,autoGarbageCollect:!0});return new o.x({source:i,label:`texturePool_${s++}`})}getOptimalTexture(e,t,r=1,n){let o=Math.ceil(e*r-1e-6),s=Math.ceil(t*r-1e-6);o=(0,i.a9)(o);let u=(o<<17)+((s=(0,i.a9)(s))<<1)+(n?1:0);!this._texturePool[u]&&(this._texturePool[u]=[]);let a=this._texturePool[u].pop();return!a&&(a=this.createTexture(o,s,n)),a.source._resolution=r,a.source.width=o/r,a.source.height=s/r,a.source.pixelWidth=o,a.source.pixelHeight=s,a.frame.x=0,a.frame.y=0,a.frame.width=e,a.frame.height=t,a.updateUvs(),this._poolKeyHash[a.uid]=u,a}getSameSizeTexture(e,t=!1){let r=e.source;return this.getOptimalTexture(e.width,e.height,r._resolution,t)}returnTexture(e){let t=this._poolKeyHash[e.uid];this._texturePool[t].push(e)}clear(e){if(e=!1!==e)for(let e in this._texturePool){let t=this._texturePool[e];if(t)for(let e=0;e<t.length;e++)t[e].destroy(!0)}this._texturePool={}}}},12568:function(e,t,r){r.d(t,{Z:function(){return o}});let i=Object.create(null),n=Object.create(null);function o(e,t){let r=n[e];return void 0===r&&(void 0===i[t]&&(i[t]=1),n[e]=r=i[t]++),r}},71423:function(e,t,r){r.d(t,{g:function(){return n}});var i,n=((i=n||{})[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.BOTH=3]="BOTH",i)},23947:function(e,t,r){r.d(t,{V:function(){return i}});function i(e,t,r){let i=(e>>24&255)/255;t[r++]=(255&e)/255*i,t[r++]=(e>>8&255)/255*i,t[r++]=(e>>16&255)/255*i,t[r++]=i}},88556:function(e,t,r){r.d(t,{c:function(){return i}});class i{constructor(){this.vertexSize=4,this.indexSize=6,this.location=0,this.batcher=null,this.batch=null,this.roundPixels=0}get blendMode(){return this.renderable.groupBlendMode}packAttributes(e,t,r,i){let n=this.renderable,o=this.texture,s=n.groupTransform,u=s.a,a=s.b,l=s.c,d=s.d,c=s.tx,f=s.ty,m=this.bounds,h=m.maxX,p=m.minX,g=m.maxY,x=m.minY,v=o.uvs,b=n.groupColorAlpha,y=i<<16|65535&this.roundPixels;e[r+0]=u*p+l*x+c,e[r+1]=d*x+a*p+f,e[r+2]=v.x0,e[r+3]=v.y0,t[r+4]=b,t[r+5]=y,e[r+6]=u*h+l*x+c,e[r+7]=d*x+a*h+f,e[r+8]=v.x1,e[r+9]=v.y1,t[r+10]=b,t[r+11]=y,e[r+12]=u*h+l*g+c,e[r+13]=d*g+a*h+f,e[r+14]=v.x2,e[r+15]=v.y2,t[r+16]=b,t[r+17]=y,e[r+18]=u*p+l*g+c,e[r+19]=d*g+a*p+f,e[r+20]=v.x3,e[r+21]=v.y3,t[r+22]=b,t[r+23]=y}packIndex(e,t,r){e[t]=r+0,e[t+1]=r+1,e[t+2]=r+2,e[t+3]=r+0,e[t+4]=r+2,e[t+5]=r+3}reset(){this.renderable=null,this.texture=null,this.batcher=null,this.batch=null,this.bounds=null}}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/js/async/399.84fa60a7.js","sources":["webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/addBits.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileHooks.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileInputs.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/compileOutputs.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/utils/injectBits.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compiler/compileHighShader.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/defaultProgramTemplate.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/globalUniformsBit.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/compileHighShaderToProgram.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/colorBit.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/generateTextureBatchBit.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/localUniformBit.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/high-shader/shader-bits/roundPixelsBit.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/getTestContext.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/getMaxFragmentPrecision.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/setProgramName.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GlProgram.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/stripVersion.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/ensurePrecision.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/addProgramDefines.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/preprocessors/insertVersion.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/extractAttributesFromGpuProgram.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/extractStructAndGroups.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/shared/shader/const.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/GpuProgram.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/removeStructAndGroupDuplicates.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/generateLayoutHash.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gpu/shader/utils/generateGpuLayoutGroups.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/shared/geometry/utils/getAttributeInfoFromFormat.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/shared/shader/Shader.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/shared/shader/UniformGroup.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/shared/shader/utils/getDefaultUniformValue.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/shared/state/State.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/shared/texture/TexturePool.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/shared/utils/createIdFromString.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/types.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/graphics/gpu/colorToUniform.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/sprite/BatchableSprite.mjs"],"sourcesContent":["import { warn } from '../../../../utils/logging/warn.mjs';\n\n\"use strict\";\nfunction addBits(srcParts, parts, name) {\n if (srcParts) {\n for (const i in srcParts) {\n const id = i.toLocaleLowerCase();\n const part = parts[id];\n if (part) {\n let sanitisedPart = srcParts[i];\n if (i === \"header\") {\n sanitisedPart = sanitisedPart.replace(/@in\\s+[^;]+;\\s*/g, \"\").replace(/@out\\s+[^;]+;\\s*/g, \"\");\n }\n if (name) {\n part.push(`//----${name}----//`);\n }\n part.push(sanitisedPart);\n } else {\n warn(`${i} placement hook does not exist in shader`);\n }\n }\n }\n}\n\nexport { addBits };\n//# sourceMappingURL=addBits.mjs.map\n","\"use strict\";\nconst findHooksRx = /\\{\\{(.*?)\\}\\}/g;\nfunction compileHooks(programSrc) {\n const parts = {};\n const partMatches = programSrc.match(findHooksRx)?.map((hook) => hook.replace(/[{()}]/g, \"\")) ?? [];\n partMatches.forEach((hook) => {\n parts[hook] = [];\n });\n return parts;\n}\n\nexport { compileHooks, findHooksRx };\n//# sourceMappingURL=compileHooks.mjs.map\n","\"use strict\";\nfunction extractInputs(fragmentSource, out) {\n let match;\n const regex = /@in\\s+([^;]+);/g;\n while ((match = regex.exec(fragmentSource)) !== null) {\n out.push(match[1]);\n }\n}\nfunction compileInputs(fragments, template, sort = false) {\n const results = [];\n extractInputs(template, results);\n fragments.forEach((fragment) => {\n if (fragment.header) {\n extractInputs(fragment.header, results);\n }\n });\n const mainInput = results;\n if (sort) {\n mainInput.sort();\n }\n const finalString = mainInput.map((inValue, i) => ` @location(${i}) ${inValue},`).join(\"\\n\");\n let cleanedString = template.replace(/@in\\s+[^;]+;\\s*/g, \"\");\n cleanedString = cleanedString.replace(\"{{in}}\", `\n${finalString}\n`);\n return cleanedString;\n}\n\nexport { compileInputs };\n//# sourceMappingURL=compileInputs.mjs.map\n","\"use strict\";\nfunction extractOutputs(fragmentSource, out) {\n let match;\n const regex = /@out\\s+([^;]+);/g;\n while ((match = regex.exec(fragmentSource)) !== null) {\n out.push(match[1]);\n }\n}\nfunction extractVariableName(value) {\n const regex = /\\b(\\w+)\\s*:/g;\n const match = regex.exec(value);\n return match ? match[1] : \"\";\n}\nfunction stripVariable(value) {\n const regex = /@.*?\\s+/g;\n return value.replace(regex, \"\");\n}\nfunction compileOutputs(fragments, template) {\n const results = [];\n extractOutputs(template, results);\n fragments.forEach((fragment) => {\n if (fragment.header) {\n extractOutputs(fragment.header, results);\n }\n });\n let index = 0;\n const mainStruct = results.sort().map((inValue) => {\n if (inValue.indexOf(\"builtin\") > -1) {\n return inValue;\n }\n return `@location(${index++}) ${inValue}`;\n }).join(\",\\n\");\n const mainStart = results.sort().map((inValue) => ` var ${stripVariable(inValue)};`).join(\"\\n\");\n const mainEnd = `return VSOutput(\n ${results.sort().map((inValue) => ` ${extractVariableName(inValue)}`).join(\",\\n\")});`;\n let compiledCode = template.replace(/@out\\s+[^;]+;\\s*/g, \"\");\n compiledCode = compiledCode.replace(\"{{struct}}\", `\n${mainStruct}\n`);\n compiledCode = compiledCode.replace(\"{{start}}\", `\n${mainStart}\n`);\n compiledCode = compiledCode.replace(\"{{return}}\", `\n${mainEnd}\n`);\n return compiledCode;\n}\n\nexport { compileOutputs };\n//# sourceMappingURL=compileOutputs.mjs.map\n","\"use strict\";\nfunction injectBits(templateSrc, fragmentParts) {\n let out = templateSrc;\n for (const i in fragmentParts) {\n const parts = fragmentParts[i];\n const toInject = parts.join(\"\\n\");\n if (toInject.length) {\n out = out.replace(`{{${i}}}`, `//-----${i} START-----//\n${parts.join(\"\\n\")}\n//----${i} FINISH----//`);\n } else {\n out = out.replace(`{{${i}}}`, \"\");\n }\n }\n return out;\n}\n\nexport { injectBits };\n//# sourceMappingURL=injectBits.mjs.map\n","import { addBits } from './utils/addBits.mjs';\nimport { compileHooks } from './utils/compileHooks.mjs';\nimport { compileInputs } from './utils/compileInputs.mjs';\nimport { compileOutputs } from './utils/compileOutputs.mjs';\nimport { injectBits } from './utils/injectBits.mjs';\n\n\"use strict\";\nconst cacheMap = /* @__PURE__ */ Object.create(null);\nconst bitCacheMap = /* @__PURE__ */ new Map();\nlet CACHE_UID = 0;\nfunction compileHighShader({\n template,\n bits\n}) {\n const cacheId = generateCacheId(template, bits);\n if (cacheMap[cacheId])\n return cacheMap[cacheId];\n const { vertex, fragment } = compileInputsAndOutputs(template, bits);\n cacheMap[cacheId] = compileBits(vertex, fragment, bits);\n return cacheMap[cacheId];\n}\nfunction compileHighShaderGl({\n template,\n bits\n}) {\n const cacheId = generateCacheId(template, bits);\n if (cacheMap[cacheId])\n return cacheMap[cacheId];\n cacheMap[cacheId] = compileBits(template.vertex, template.fragment, bits);\n return cacheMap[cacheId];\n}\nfunction compileInputsAndOutputs(template, bits) {\n const vertexFragments = bits.map((shaderBit) => shaderBit.vertex).filter((v) => !!v);\n const fragmentFragments = bits.map((shaderBit) => shaderBit.fragment).filter((v) => !!v);\n let compiledVertex = compileInputs(vertexFragments, template.vertex, true);\n compiledVertex = compileOutputs(vertexFragments, compiledVertex);\n const compiledFragment = compileInputs(fragmentFragments, template.fragment, true);\n return {\n vertex: compiledVertex,\n fragment: compiledFragment\n };\n}\nfunction generateCacheId(template, bits) {\n return bits.map((highFragment) => {\n if (!bitCacheMap.has(highFragment)) {\n bitCacheMap.set(highFragment, CACHE_UID++);\n }\n return bitCacheMap.get(highFragment);\n }).sort((a, b) => a - b).join(\"-\") + template.vertex + template.fragment;\n}\nfunction compileBits(vertex, fragment, bits) {\n const vertexParts = compileHooks(vertex);\n const fragmentParts = compileHooks(fragment);\n bits.forEach((shaderBit) => {\n addBits(shaderBit.vertex, vertexParts, shaderBit.name);\n addBits(shaderBit.fragment, fragmentParts, shaderBit.name);\n });\n return {\n vertex: injectBits(vertex, vertexParts),\n fragment: injectBits(fragment, fragmentParts)\n };\n}\n\nexport { compileHighShader, compileHighShaderGl };\n//# sourceMappingURL=compileHighShader.mjs.map\n","\"use strict\";\nconst vertexGPUTemplate = (\n /* wgsl */\n `\n @in aPosition: vec2<f32>;\n @in aUV: vec2<f32>;\n\n @out @builtin(position) vPosition: vec4<f32>;\n @out vUV : vec2<f32>;\n @out vColor : vec4<f32>;\n\n {{header}}\n\n struct VSOutput {\n {{struct}}\n };\n\n @vertex\n fn main( {{in}} ) -> VSOutput {\n\n var worldTransformMatrix = globalUniforms.uWorldTransformMatrix;\n var modelMatrix = mat3x3<f32>(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n var position = aPosition;\n var uv = aUV;\n\n {{start}}\n \n vColor = vec4<f32>(1., 1., 1., 1.);\n\n {{main}}\n\n vUV = uv;\n\n var modelViewProjectionMatrix = globalUniforms.uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n vPosition = vec4<f32>((modelViewProjectionMatrix * vec3<f32>(position, 1.0)).xy, 0.0, 1.0);\n \n vColor *= globalUniforms.uWorldColorAlpha;\n\n {{end}}\n\n {{return}}\n };\n`\n);\nconst fragmentGPUTemplate = (\n /* wgsl */\n `\n @in vUV : vec2<f32>;\n @in vColor : vec4<f32>;\n \n {{header}}\n\n @fragment\n fn main(\n {{in}}\n ) -> @location(0) vec4<f32> {\n \n {{start}}\n\n var outColor:vec4<f32>;\n \n {{main}}\n \n return outColor * vColor;\n };\n`\n);\nconst vertexGlTemplate = (\n /* glsl */\n `\n in vec2 aPosition;\n in vec2 aUV;\n\n out vec4 vColor;\n out vec2 vUV;\n\n {{header}}\n\n void main(void){\n\n mat3 worldTransformMatrix = uWorldTransformMatrix;\n mat3 modelMatrix = mat3(\n 1.0, 0.0, 0.0,\n 0.0, 1.0, 0.0,\n 0.0, 0.0, 1.0\n );\n vec2 position = aPosition;\n vec2 uv = aUV;\n \n {{start}}\n \n vColor = vec4(1.);\n \n {{main}}\n \n vUV = uv;\n \n mat3 modelViewProjectionMatrix = uProjectionMatrix * worldTransformMatrix * modelMatrix;\n\n gl_Position = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n\n vColor *= uWorldColorAlpha;\n\n {{end}}\n }\n`\n);\nconst fragmentGlTemplate = (\n /* glsl */\n `\n \n in vec4 vColor;\n in vec2 vUV;\n\n out vec4 finalColor;\n\n {{header}}\n\n void main(void) {\n \n {{start}}\n\n vec4 outColor;\n \n {{main}}\n \n finalColor = outColor * vColor;\n }\n`\n);\n\nexport { fragmentGPUTemplate, fragmentGlTemplate, vertexGPUTemplate, vertexGlTemplate };\n//# sourceMappingURL=defaultProgramTemplate.mjs.map\n","\"use strict\";\nconst globalUniformsBit = {\n name: \"global-uniforms-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n struct GlobalUniforms {\n uProjectionMatrix:mat3x3<f32>,\n uWorldTransformMatrix:mat3x3<f32>,\n uWorldColorAlpha: vec4<f32>,\n uResolution: vec2<f32>,\n }\n\n @group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;\n `\n )\n }\n};\nconst globalUniformsUBOBitGl = {\n name: \"global-uniforms-ubo-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n uniform globalUniforms {\n mat3 uProjectionMatrix;\n mat3 uWorldTransformMatrix;\n vec4 uWorldColorAlpha;\n vec2 uResolution;\n };\n `\n )\n }\n};\nconst globalUniformsBitGl = {\n name: \"global-uniforms-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n uniform mat3 uProjectionMatrix;\n uniform mat3 uWorldTransformMatrix;\n uniform vec4 uWorldColorAlpha;\n uniform vec2 uResolution;\n `\n )\n }\n};\n\nexport { globalUniformsBit, globalUniformsBitGl, globalUniformsUBOBitGl };\n//# sourceMappingURL=globalUniformsBit.mjs.map\n","import { GlProgram } from '../renderers/gl/shader/GlProgram.mjs';\nimport { GpuProgram } from '../renderers/gpu/shader/GpuProgram.mjs';\nimport { compileHighShader, compileHighShaderGl } from './compiler/compileHighShader.mjs';\nimport { fragmentGPUTemplate, vertexGPUTemplate, vertexGlTemplate, fragmentGlTemplate } from './defaultProgramTemplate.mjs';\nimport { globalUniformsBit, globalUniformsBitGl } from './shader-bits/globalUniformsBit.mjs';\n\n\"use strict\";\nfunction compileHighShaderGpuProgram({ bits, name }) {\n const source = compileHighShader({\n template: {\n fragment: fragmentGPUTemplate,\n vertex: vertexGPUTemplate\n },\n bits: [\n globalUniformsBit,\n ...bits\n ]\n });\n return GpuProgram.from({\n name,\n vertex: {\n source: source.vertex,\n entryPoint: \"main\"\n },\n fragment: {\n source: source.fragment,\n entryPoint: \"main\"\n }\n });\n}\nfunction compileHighShaderGlProgram({ bits, name }) {\n return new GlProgram({\n name,\n ...compileHighShaderGl({\n template: {\n vertex: vertexGlTemplate,\n fragment: fragmentGlTemplate\n },\n bits: [\n globalUniformsBitGl,\n ...bits\n ]\n })\n });\n}\n\nexport { compileHighShaderGlProgram, compileHighShaderGpuProgram };\n//# sourceMappingURL=compileHighShaderToProgram.mjs.map\n","\"use strict\";\nconst colorBit = {\n name: \"color-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n @in aColor: vec4<f32>;\n `\n ),\n main: (\n /* wgsl */\n `\n vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);\n `\n )\n }\n};\nconst colorBitGl = {\n name: \"color-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n in vec4 aColor;\n `\n ),\n main: (\n /* glsl */\n `\n vColor *= vec4(aColor.rgb * aColor.a, aColor.a);\n `\n )\n }\n};\n\nexport { colorBit, colorBitGl };\n//# sourceMappingURL=colorBit.mjs.map\n","\"use strict\";\nconst textureBatchBitGpuCache = {};\nfunction generateBindingSrc(maxTextures) {\n const src = [];\n if (maxTextures === 1) {\n src.push(\"@group(1) @binding(0) var textureSource1: texture_2d<f32>;\");\n src.push(\"@group(1) @binding(1) var textureSampler1: sampler;\");\n } else {\n let bindingIndex = 0;\n for (let i = 0; i < maxTextures; i++) {\n src.push(`@group(1) @binding(${bindingIndex++}) var textureSource${i + 1}: texture_2d<f32>;`);\n src.push(`@group(1) @binding(${bindingIndex++}) var textureSampler${i + 1}: sampler;`);\n }\n }\n return src.join(\"\\n\");\n}\nfunction generateSampleSrc(maxTextures) {\n const src = [];\n if (maxTextures === 1) {\n src.push(\"outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);\");\n } else {\n src.push(\"switch vTextureId {\");\n for (let i = 0; i < maxTextures; i++) {\n if (i === maxTextures - 1) {\n src.push(` default:{`);\n } else {\n src.push(` case ${i}:{`);\n }\n src.push(` outColor = textureSampleGrad(textureSource${i + 1}, textureSampler${i + 1}, vUV, uvDx, uvDy);`);\n src.push(` break;}`);\n }\n src.push(`}`);\n }\n return src.join(\"\\n\");\n}\nfunction generateTextureBatchBit(maxTextures) {\n if (!textureBatchBitGpuCache[maxTextures]) {\n textureBatchBitGpuCache[maxTextures] = {\n name: \"texture-batch-bit\",\n vertex: {\n header: `\n @in aTextureIdAndRound: vec2<u32>;\n @out @interpolate(flat) vTextureId : u32;\n `,\n main: `\n vTextureId = aTextureIdAndRound.y;\n `,\n end: `\n if(aTextureIdAndRound.x == 1)\n {\n vPosition = vec4<f32>(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n `\n },\n fragment: {\n header: `\n @in @interpolate(flat) vTextureId: u32;\n \n ${generateBindingSrc(16)}\n `,\n main: `\n var uvDx = dpdx(vUV);\n var uvDy = dpdy(vUV);\n \n ${generateSampleSrc(16)}\n `\n }\n };\n }\n return textureBatchBitGpuCache[maxTextures];\n}\nconst textureBatchBitGlCache = {};\nfunction generateSampleGlSrc(maxTextures) {\n const src = [];\n for (let i = 0; i < maxTextures; i++) {\n if (i > 0) {\n src.push(\"else\");\n }\n if (i < maxTextures - 1) {\n src.push(`if(vTextureId < ${i}.5)`);\n }\n src.push(\"{\");\n src.push(`\toutColor = texture(uTextures[${i}], vUV);`);\n src.push(\"}\");\n }\n return src.join(\"\\n\");\n}\nfunction generateTextureBatchBitGl(maxTextures) {\n if (!textureBatchBitGlCache[maxTextures]) {\n textureBatchBitGlCache[maxTextures] = {\n name: \"texture-batch-bit\",\n vertex: {\n header: `\n in vec2 aTextureIdAndRound;\n out float vTextureId;\n \n `,\n main: `\n vTextureId = aTextureIdAndRound.y;\n `,\n end: `\n if(aTextureIdAndRound.x == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n `\n },\n fragment: {\n header: `\n in float vTextureId;\n \n uniform sampler2D uTextures[${maxTextures}];\n \n `,\n main: `\n \n ${generateSampleGlSrc(16)}\n `\n }\n };\n }\n return textureBatchBitGlCache[maxTextures];\n}\n\nexport { generateTextureBatchBit, generateTextureBatchBitGl };\n//# sourceMappingURL=generateTextureBatchBit.mjs.map\n","\"use strict\";\nconst localUniformBit = {\n name: \"local-uniform-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n\n struct LocalUniforms {\n uTransformMatrix:mat3x3<f32>,\n uColor:vec4<f32>,\n uRound:f32,\n }\n\n @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;\n `\n ),\n main: (\n /* wgsl */\n `\n vColor *= localUniforms.uColor;\n modelMatrix *= localUniforms.uTransformMatrix;\n `\n ),\n end: (\n /* wgsl */\n `\n if(localUniforms.uRound == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n `\n )\n }\n};\nconst localUniformBitGroup2 = {\n ...localUniformBit,\n vertex: {\n ...localUniformBit.vertex,\n // replace the group!\n header: localUniformBit.vertex.header.replace(\"group(1)\", \"group(2)\")\n }\n};\nconst localUniformBitGl = {\n name: \"local-uniform-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n\n uniform mat3 uTransformMatrix;\n uniform vec4 uColor;\n uniform float uRound;\n `\n ),\n main: (\n /* glsl */\n `\n vColor *= uColor;\n modelMatrix = uTransformMatrix;\n `\n ),\n end: (\n /* glsl */\n `\n if(uRound == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n `\n )\n }\n};\n\nexport { localUniformBit, localUniformBitGl, localUniformBitGroup2 };\n//# sourceMappingURL=localUniformBit.mjs.map\n","\"use strict\";\nconst roundPixelsBit = {\n name: \"round-pixels-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32> \n {\n return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n }\n `\n )\n }\n};\nconst roundPixelsBitGl = {\n name: \"round-pixels-bit\",\n vertex: {\n header: (\n /* glsl */\n ` \n vec2 roundPixels(vec2 position, vec2 targetSize)\n { \n return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n }\n `\n )\n }\n};\n\nexport { roundPixelsBit, roundPixelsBitGl };\n//# sourceMappingURL=roundPixelsBit.mjs.map\n","import { DOMAdapter } from '../../../../../environment/adapter.mjs';\n\n\"use strict\";\nlet context;\nfunction getTestContext() {\n if (!context || context?.isContextLost()) {\n const canvas = DOMAdapter.get().createCanvas();\n context = canvas.getContext(\"webgl\", {});\n }\n return context;\n}\n\nexport { getTestContext };\n//# sourceMappingURL=getTestContext.mjs.map\n","import { getTestContext } from './getTestContext.mjs';\n\n\"use strict\";\nlet maxFragmentPrecision;\nfunction getMaxFragmentPrecision() {\n if (!maxFragmentPrecision) {\n maxFragmentPrecision = \"mediump\";\n const gl = getTestContext();\n if (gl) {\n if (gl.getShaderPrecisionFormat) {\n const shaderFragment = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT);\n maxFragmentPrecision = shaderFragment.precision ? \"highp\" : \"mediump\";\n }\n }\n }\n return maxFragmentPrecision;\n}\n\nexport { getMaxFragmentPrecision };\n//# sourceMappingURL=getMaxFragmentPrecision.mjs.map\n","\"use strict\";\nconst fragmentNameCache = {};\nconst VertexNameCache = {};\nfunction setProgramName(src, { name = `pixi-program` }, isFragment = true) {\n name = name.replace(/\\s+/g, \"-\");\n name += isFragment ? \"-fragment\" : \"-vertex\";\n const nameCache = isFragment ? fragmentNameCache : VertexNameCache;\n if (nameCache[name]) {\n nameCache[name]++;\n name += `-${nameCache[name]}`;\n } else {\n nameCache[name] = 1;\n }\n if (src.indexOf(\"#define SHADER_NAME\") !== -1)\n return src;\n const shaderName = `#define SHADER_NAME ${name}`;\n return `${shaderName}\n${src}`;\n}\n\nexport { setProgramName };\n//# sourceMappingURL=setProgramName.mjs.map\n","import { createIdFromString } from '../../shared/utils/createIdFromString.mjs';\nimport { getMaxFragmentPrecision } from './program/getMaxFragmentPrecision.mjs';\nimport { addProgramDefines } from './program/preprocessors/addProgramDefines.mjs';\nimport { ensurePrecision } from './program/preprocessors/ensurePrecision.mjs';\nimport { insertVersion } from './program/preprocessors/insertVersion.mjs';\nimport { setProgramName } from './program/preprocessors/setProgramName.mjs';\nimport { stripVersion } from './program/preprocessors/stripVersion.mjs';\n\n\"use strict\";\nconst processes = {\n // strips any version headers..\n stripVersion,\n // adds precision string if not already present\n ensurePrecision,\n // add some defines if WebGL1 to make it more compatible with WebGL2 shaders\n addProgramDefines,\n // add the program name to the shader\n setProgramName,\n // add the version string to the shader header\n insertVersion\n};\nconst programCache = /* @__PURE__ */ Object.create(null);\nconst _GlProgram = class _GlProgram {\n /**\n * Creates a shiny new GlProgram. Used by WebGL renderer.\n * @param options - The options for the program.\n */\n constructor(options) {\n options = { ..._GlProgram.defaultOptions, ...options };\n const isES300 = options.fragment.indexOf(\"#version 300 es\") !== -1;\n const preprocessorOptions = {\n stripVersion: isES300,\n ensurePrecision: {\n requestedFragmentPrecision: options.preferredFragmentPrecision,\n requestedVertexPrecision: options.preferredVertexPrecision,\n maxSupportedVertexPrecision: \"highp\",\n maxSupportedFragmentPrecision: getMaxFragmentPrecision()\n },\n setProgramName: {\n name: options.name\n },\n addProgramDefines: isES300,\n insertVersion: isES300\n };\n let fragment = options.fragment;\n let vertex = options.vertex;\n Object.keys(processes).forEach((processKey) => {\n const processOptions = preprocessorOptions[processKey];\n fragment = processes[processKey](fragment, processOptions, true);\n vertex = processes[processKey](vertex, processOptions, false);\n });\n this.fragment = fragment;\n this.vertex = vertex;\n this._key = createIdFromString(`${this.vertex}:${this.fragment}`, \"gl-program\");\n }\n /** destroys the program */\n destroy() {\n this.fragment = null;\n this.vertex = null;\n this._attributeData = null;\n this._uniformData = null;\n this._uniformBlockData = null;\n this.transformFeedbackVaryings = null;\n }\n /**\n * Helper function that creates a program for a given source.\n * It will check the program cache if the program has already been created.\n * If it has that one will be returned, if not a new one will be created and cached.\n * @param options - The options for the program.\n * @returns A program using the same source\n */\n static from(options) {\n const key = `${options.vertex}:${options.fragment}`;\n if (!programCache[key]) {\n programCache[key] = new _GlProgram(options);\n }\n return programCache[key];\n }\n};\n/** The default options used by the program. */\n_GlProgram.defaultOptions = {\n preferredVertexPrecision: \"highp\",\n preferredFragmentPrecision: \"mediump\"\n};\nlet GlProgram = _GlProgram;\n\nexport { GlProgram };\n//# sourceMappingURL=GlProgram.mjs.map\n","\"use strict\";\nfunction stripVersion(src, isES300) {\n if (!isES300)\n return src;\n return src.replace(\"#version 300 es\", \"\");\n}\n\nexport { stripVersion };\n//# sourceMappingURL=stripVersion.mjs.map\n","\"use strict\";\nfunction ensurePrecision(src, options, isFragment) {\n const maxSupportedPrecision = isFragment ? options.maxSupportedFragmentPrecision : options.maxSupportedVertexPrecision;\n if (src.substring(0, 9) !== \"precision\") {\n let precision = isFragment ? options.requestedFragmentPrecision : options.requestedVertexPrecision;\n if (precision === \"highp\" && maxSupportedPrecision !== \"highp\") {\n precision = \"mediump\";\n }\n return `precision ${precision} float;\n${src}`;\n } else if (maxSupportedPrecision !== \"highp\" && src.substring(0, 15) === \"precision highp\") {\n return src.replace(\"precision highp\", \"precision mediump\");\n }\n return src;\n}\n\nexport { ensurePrecision };\n//# sourceMappingURL=ensurePrecision.mjs.map\n","\"use strict\";\nfunction addProgramDefines(src, isES300, isFragment) {\n if (isES300)\n return src;\n if (isFragment) {\n src = src.replace(\"out vec4 finalColor;\", \"\");\n return `\n \n #ifdef GL_ES // This checks if it is WebGL1\n #define in varying\n #define finalColor gl_FragColor\n #define texture texture2D\n #endif\n ${src}\n `;\n }\n return `\n \n #ifdef GL_ES // This checks if it is WebGL1\n #define in attribute\n #define out varying\n #endif\n ${src}\n `;\n}\n\nexport { addProgramDefines };\n//# sourceMappingURL=addProgramDefines.mjs.map\n","\"use strict\";\nfunction insertVersion(src, isES300) {\n if (!isES300)\n return src;\n return `#version 300 es\n${src}`;\n}\n\nexport { insertVersion };\n//# sourceMappingURL=insertVersion.mjs.map\n","import { getAttributeInfoFromFormat } from '../../../shared/geometry/utils/getAttributeInfoFromFormat.mjs';\n\n\"use strict\";\nconst WGSL_TO_VERTEX_TYPES = {\n f32: \"float32\",\n \"vec2<f32>\": \"float32x2\",\n \"vec3<f32>\": \"float32x3\",\n \"vec4<f32>\": \"float32x4\",\n vec2f: \"float32x2\",\n vec3f: \"float32x3\",\n vec4f: \"float32x4\",\n i32: \"sint32\",\n \"vec2<i32>\": \"sint32x2\",\n \"vec3<i32>\": \"sint32x3\",\n \"vec4<i32>\": \"sint32x4\",\n u32: \"uint32\",\n \"vec2<u32>\": \"uint32x2\",\n \"vec3<u32>\": \"uint32x3\",\n \"vec4<u32>\": \"uint32x4\",\n bool: \"uint32\",\n \"vec2<bool>\": \"uint32x2\",\n \"vec3<bool>\": \"uint32x3\",\n \"vec4<bool>\": \"uint32x4\"\n};\nfunction extractAttributesFromGpuProgram({ source, entryPoint }) {\n const results = {};\n const mainVertStart = source.indexOf(`fn ${entryPoint}`);\n if (mainVertStart !== -1) {\n const arrowFunctionStart = source.indexOf(\"->\", mainVertStart);\n if (arrowFunctionStart !== -1) {\n const functionArgsSubstring = source.substring(mainVertStart, arrowFunctionStart);\n const inputsRegex = /@location\\((\\d+)\\)\\s+([a-zA-Z0-9_]+)\\s*:\\s*([a-zA-Z0-9_<>]+)(?:,|\\s|$)/g;\n let match;\n while ((match = inputsRegex.exec(functionArgsSubstring)) !== null) {\n const format = WGSL_TO_VERTEX_TYPES[match[3]] ?? \"float32\";\n results[match[2]] = {\n location: parseInt(match[1], 10),\n format,\n stride: getAttributeInfoFromFormat(format).stride,\n offset: 0,\n instance: false,\n start: 0\n };\n }\n }\n }\n return results;\n}\n\nexport { extractAttributesFromGpuProgram };\n//# sourceMappingURL=extractAttributesFromGpuProgram.mjs.map\n","\"use strict\";\nfunction extractStructAndGroups(wgsl) {\n const linePattern = /(^|[^/])@(group|binding)\\(\\d+\\)[^;]+;/g;\n const groupPattern = /@group\\((\\d+)\\)/;\n const bindingPattern = /@binding\\((\\d+)\\)/;\n const namePattern = /var(<[^>]+>)? (\\w+)/;\n const typePattern = /:\\s*(\\w+)/;\n const structPattern = /struct\\s+(\\w+)\\s*{([^}]+)}/g;\n const structMemberPattern = /(\\w+)\\s*:\\s*([\\w\\<\\>]+)/g;\n const structName = /struct\\s+(\\w+)/;\n const groups = wgsl.match(linePattern)?.map((item) => ({\n group: parseInt(item.match(groupPattern)[1], 10),\n binding: parseInt(item.match(bindingPattern)[1], 10),\n name: item.match(namePattern)[2],\n isUniform: item.match(namePattern)[1] === \"<uniform>\",\n type: item.match(typePattern)[1]\n }));\n if (!groups) {\n return {\n groups: [],\n structs: []\n };\n }\n const structs = wgsl.match(structPattern)?.map((struct) => {\n const name = struct.match(structName)[1];\n const members = struct.match(structMemberPattern).reduce((acc, member) => {\n const [name2, type] = member.split(\":\");\n acc[name2.trim()] = type.trim();\n return acc;\n }, {});\n if (!members) {\n return null;\n }\n return { name, members };\n }).filter(({ name }) => groups.some((group) => group.type === name)) ?? [];\n return {\n groups,\n structs\n };\n}\n\nexport { extractStructAndGroups };\n//# sourceMappingURL=extractStructAndGroups.mjs.map\n","\"use strict\";\nvar ShaderStage = /* @__PURE__ */ ((ShaderStage2) => {\n ShaderStage2[ShaderStage2[\"VERTEX\"] = 1] = \"VERTEX\";\n ShaderStage2[ShaderStage2[\"FRAGMENT\"] = 2] = \"FRAGMENT\";\n ShaderStage2[ShaderStage2[\"COMPUTE\"] = 4] = \"COMPUTE\";\n return ShaderStage2;\n})(ShaderStage || {});\n\nexport { ShaderStage };\n//# sourceMappingURL=const.mjs.map\n","import { createIdFromString } from '../../shared/utils/createIdFromString.mjs';\nimport { extractAttributesFromGpuProgram } from './utils/extractAttributesFromGpuProgram.mjs';\nimport { extractStructAndGroups } from './utils/extractStructAndGroups.mjs';\nimport { generateGpuLayoutGroups } from './utils/generateGpuLayoutGroups.mjs';\nimport { generateLayoutHash } from './utils/generateLayoutHash.mjs';\nimport { removeStructAndGroupDuplicates } from './utils/removeStructAndGroupDuplicates.mjs';\n\n\"use strict\";\nconst programCache = /* @__PURE__ */ Object.create(null);\nclass GpuProgram {\n /**\n * Create a new GpuProgram\n * @param options - The options for the gpu program\n */\n constructor(options) {\n /**\n * @internal\n * @ignore\n */\n this._layoutKey = 0;\n const { fragment, vertex, layout, gpuLayout, name } = options;\n this.name = name;\n this.fragment = fragment;\n this.vertex = vertex;\n if (fragment.source === vertex.source) {\n const structsAndGroups = extractStructAndGroups(fragment.source);\n this.structsAndGroups = structsAndGroups;\n } else {\n const vertexStructsAndGroups = extractStructAndGroups(vertex.source);\n const fragmentStructsAndGroups = extractStructAndGroups(fragment.source);\n this.structsAndGroups = removeStructAndGroupDuplicates(vertexStructsAndGroups, fragmentStructsAndGroups);\n }\n this.layout = layout ?? generateLayoutHash(this.structsAndGroups);\n this.gpuLayout = gpuLayout ?? generateGpuLayoutGroups(this.structsAndGroups);\n this.autoAssignGlobalUniforms = !!(this.layout[0]?.globalUniforms !== void 0);\n this.autoAssignLocalUniforms = !!(this.layout[1]?.localUniforms !== void 0);\n this._generateProgramKey();\n }\n // TODO maker this pure\n _generateProgramKey() {\n const { vertex, fragment } = this;\n const bigKey = vertex.source + fragment.source + vertex.entryPoint + fragment.entryPoint;\n this._layoutKey = createIdFromString(bigKey, \"program\");\n }\n get attributeData() {\n this._attributeData ?? (this._attributeData = extractAttributesFromGpuProgram(this.vertex));\n return this._attributeData;\n }\n /** destroys the program */\n destroy() {\n this.gpuLayout = null;\n this.layout = null;\n this.structsAndGroups = null;\n this.fragment = null;\n this.vertex = null;\n }\n /**\n * Helper function that creates a program for a given source.\n * It will check the program cache if the program has already been created.\n * If it has that one will be returned, if not a new one will be created and cached.\n * @param options - The options for the program.\n * @returns A program using the same source\n */\n static from(options) {\n const key = `${options.vertex.source}:${options.fragment.source}:${options.fragment.entryPoint}:${options.vertex.entryPoint}`;\n if (!programCache[key]) {\n programCache[key] = new GpuProgram(options);\n }\n return programCache[key];\n }\n}\n\nexport { GpuProgram };\n//# sourceMappingURL=GpuProgram.mjs.map\n","\"use strict\";\nfunction removeStructAndGroupDuplicates(vertexStructsAndGroups, fragmentStructsAndGroups) {\n const structNameSet = /* @__PURE__ */ new Set();\n const dupeGroupKeySet = /* @__PURE__ */ new Set();\n const structs = [...vertexStructsAndGroups.structs, ...fragmentStructsAndGroups.structs].filter((struct) => {\n if (structNameSet.has(struct.name)) {\n return false;\n }\n structNameSet.add(struct.name);\n return true;\n });\n const groups = [...vertexStructsAndGroups.groups, ...fragmentStructsAndGroups.groups].filter((group) => {\n const key = `${group.name}-${group.binding}`;\n if (dupeGroupKeySet.has(key)) {\n return false;\n }\n dupeGroupKeySet.add(key);\n return true;\n });\n return { structs, groups };\n}\n\nexport { removeStructAndGroupDuplicates };\n//# sourceMappingURL=removeStructAndGroupDuplicates.mjs.map\n","\"use strict\";\nfunction generateLayoutHash({ groups }) {\n const layout = [];\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i];\n if (!layout[group.group]) {\n layout[group.group] = {};\n }\n layout[group.group][group.name] = group.binding;\n }\n return layout;\n}\n\nexport { generateLayoutHash };\n//# sourceMappingURL=generateLayoutHash.mjs.map\n","import { ShaderStage } from '../../../shared/shader/const.mjs';\n\n\"use strict\";\nfunction generateGpuLayoutGroups({ groups }) {\n const layout = [];\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i];\n if (!layout[group.group]) {\n layout[group.group] = [];\n }\n if (group.isUniform) {\n layout[group.group].push({\n binding: group.binding,\n visibility: ShaderStage.VERTEX | ShaderStage.FRAGMENT,\n buffer: {\n type: \"uniform\"\n }\n });\n } else if (group.type === \"sampler\") {\n layout[group.group].push({\n binding: group.binding,\n visibility: ShaderStage.FRAGMENT,\n sampler: {\n type: \"filtering\"\n }\n });\n } else if (group.type === \"texture_2d\") {\n layout[group.group].push({\n binding: group.binding,\n visibility: ShaderStage.FRAGMENT,\n texture: {\n sampleType: \"float\",\n viewDimension: \"2d\",\n multisampled: false\n }\n });\n }\n }\n return layout;\n}\n\nexport { generateGpuLayoutGroups };\n//# sourceMappingURL=generateGpuLayoutGroups.mjs.map\n","\"use strict\";\nconst attributeFormatData = {\n uint8x2: { size: 2, stride: 2, normalised: false },\n uint8x4: { size: 4, stride: 4, normalised: false },\n sint8x2: { size: 2, stride: 2, normalised: false },\n sint8x4: { size: 4, stride: 4, normalised: false },\n unorm8x2: { size: 2, stride: 2, normalised: true },\n unorm8x4: { size: 4, stride: 4, normalised: true },\n snorm8x2: { size: 2, stride: 2, normalised: true },\n snorm8x4: { size: 4, stride: 4, normalised: true },\n uint16x2: { size: 2, stride: 4, normalised: false },\n uint16x4: { size: 4, stride: 8, normalised: false },\n sint16x2: { size: 2, stride: 4, normalised: false },\n sint16x4: { size: 4, stride: 8, normalised: false },\n unorm16x2: { size: 2, stride: 4, normalised: true },\n unorm16x4: { size: 4, stride: 8, normalised: true },\n snorm16x2: { size: 2, stride: 4, normalised: true },\n snorm16x4: { size: 4, stride: 8, normalised: true },\n float16x2: { size: 2, stride: 4, normalised: false },\n float16x4: { size: 4, stride: 8, normalised: false },\n float32: { size: 1, stride: 4, normalised: false },\n float32x2: { size: 2, stride: 8, normalised: false },\n float32x3: { size: 3, stride: 12, normalised: false },\n float32x4: { size: 4, stride: 16, normalised: false },\n uint32: { size: 1, stride: 4, normalised: false },\n uint32x2: { size: 2, stride: 8, normalised: false },\n uint32x3: { size: 3, stride: 12, normalised: false },\n uint32x4: { size: 4, stride: 16, normalised: false },\n sint32: { size: 1, stride: 4, normalised: false },\n sint32x2: { size: 2, stride: 8, normalised: false },\n sint32x3: { size: 3, stride: 12, normalised: false },\n sint32x4: { size: 4, stride: 16, normalised: false }\n};\nfunction getAttributeInfoFromFormat(format) {\n return attributeFormatData[format] ?? attributeFormatData.float32;\n}\n\nexport { getAttributeInfoFromFormat };\n//# sourceMappingURL=getAttributeInfoFromFormat.mjs.map\n","import EventEmitter from 'eventemitter3';\nimport { GlProgram } from '../../gl/shader/GlProgram.mjs';\nimport { BindGroup } from '../../gpu/shader/BindGroup.mjs';\nimport { GpuProgram } from '../../gpu/shader/GpuProgram.mjs';\nimport { RendererType } from '../../types.mjs';\nimport { UniformGroup } from './UniformGroup.mjs';\n\n\"use strict\";\nclass Shader extends EventEmitter {\n constructor(options) {\n super();\n /**\n * A record of the uniform groups and resources used by the shader.\n * This is used by WebGL renderer to sync uniform data.\n * @internal\n * @ignore\n */\n this._uniformBindMap = /* @__PURE__ */ Object.create(null);\n this._ownedBindGroups = [];\n let {\n gpuProgram,\n glProgram,\n groups,\n resources,\n compatibleRenderers,\n groupMap\n } = options;\n this.gpuProgram = gpuProgram;\n this.glProgram = glProgram;\n if (compatibleRenderers === void 0) {\n compatibleRenderers = 0;\n if (gpuProgram)\n compatibleRenderers |= RendererType.WEBGPU;\n if (glProgram)\n compatibleRenderers |= RendererType.WEBGL;\n }\n this.compatibleRenderers = compatibleRenderers;\n const nameHash = {};\n if (!resources && !groups) {\n resources = {};\n }\n if (resources && groups) {\n throw new Error(\"[Shader] Cannot have both resources and groups\");\n } else if (!gpuProgram && groups && !groupMap) {\n throw new Error(\"[Shader] No group map or WebGPU shader provided - consider using resources instead.\");\n } else if (!gpuProgram && groups && groupMap) {\n for (const i in groupMap) {\n for (const j in groupMap[i]) {\n const uniformName = groupMap[i][j];\n nameHash[uniformName] = {\n group: i,\n binding: j,\n name: uniformName\n };\n }\n }\n } else if (gpuProgram && groups && !groupMap) {\n const groupData = gpuProgram.structsAndGroups.groups;\n groupMap = {};\n groupData.forEach((data) => {\n groupMap[data.group] = groupMap[data.group] || {};\n groupMap[data.group][data.binding] = data.name;\n nameHash[data.name] = data;\n });\n } else if (resources) {\n if (!gpuProgram) {\n groupMap = {};\n groups = {\n 99: new BindGroup()\n };\n this._ownedBindGroups.push(groups[99]);\n let bindTick = 0;\n for (const i in resources) {\n nameHash[i] = { group: 99, binding: bindTick, name: i };\n groupMap[99] = groupMap[99] || {};\n groupMap[99][bindTick] = i;\n bindTick++;\n }\n } else {\n const groupData = gpuProgram.structsAndGroups.groups;\n groupMap = {};\n groupData.forEach((data) => {\n groupMap[data.group] = groupMap[data.group] || {};\n groupMap[data.group][data.binding] = data.name;\n nameHash[data.name] = data;\n });\n }\n groups = {};\n for (const i in resources) {\n const name = i;\n let value = resources[i];\n if (!value.source && !value._resourceType) {\n value = new UniformGroup(value);\n }\n const data = nameHash[name];\n if (data) {\n if (!groups[data.group]) {\n groups[data.group] = new BindGroup();\n this._ownedBindGroups.push(groups[data.group]);\n }\n groups[data.group].setResource(value, data.binding);\n }\n }\n }\n this.groups = groups;\n this._uniformBindMap = groupMap;\n this.resources = this._buildResourceAccessor(groups, nameHash);\n }\n /**\n * Sometimes a resource group will be provided later (for example global uniforms)\n * In such cases, this method can be used to let the shader know about the group.\n * @param name - the name of the resource group\n * @param groupIndex - the index of the group (should match the webGPU shader group location)\n * @param bindIndex - the index of the bind point (should match the webGPU shader bind point)\n */\n addResource(name, groupIndex, bindIndex) {\n var _a, _b;\n (_a = this._uniformBindMap)[groupIndex] || (_a[groupIndex] = {});\n (_b = this._uniformBindMap[groupIndex])[bindIndex] || (_b[bindIndex] = name);\n if (!this.groups[groupIndex]) {\n this.groups[groupIndex] = new BindGroup();\n this._ownedBindGroups.push(this.groups[groupIndex]);\n }\n }\n _buildResourceAccessor(groups, nameHash) {\n const uniformsOut = {};\n for (const i in nameHash) {\n const data = nameHash[i];\n Object.defineProperty(uniformsOut, data.name, {\n get() {\n return groups[data.group].getResource(data.binding);\n },\n set(value) {\n groups[data.group].setResource(value, data.binding);\n }\n });\n }\n return uniformsOut;\n }\n /**\n * Use to destroy the shader when its not longer needed.\n * It will destroy the resources and remove listeners.\n * @param destroyPrograms - if the programs should be destroyed as well.\n * Make sure its not being used by other shaders!\n */\n destroy(destroyPrograms = false) {\n this.emit(\"destroy\", this);\n if (destroyPrograms) {\n this.gpuProgram?.destroy();\n this.glProgram?.destroy();\n }\n this.gpuProgram = null;\n this.glProgram = null;\n this.removeAllListeners();\n this._uniformBindMap = null;\n this._ownedBindGroups.forEach((bindGroup) => {\n bindGroup.destroy();\n });\n this._ownedBindGroups = null;\n this.resources = null;\n this.groups = null;\n }\n static from(options) {\n const { gpu, gl, ...rest } = options;\n let gpuProgram;\n let glProgram;\n if (gpu) {\n gpuProgram = GpuProgram.from(gpu);\n }\n if (gl) {\n glProgram = GlProgram.from(gl);\n }\n return new Shader({\n gpuProgram,\n glProgram,\n ...rest\n });\n }\n}\n\nexport { Shader };\n//# sourceMappingURL=Shader.mjs.map\n","import { uid } from '../../../../utils/data/uid.mjs';\nimport { createIdFromString } from '../utils/createIdFromString.mjs';\nimport { getDefaultUniformValue } from './utils/getDefaultUniformValue.mjs';\n\n\"use strict\";\nconst _UniformGroup = class _UniformGroup {\n /**\n * Create a new Uniform group\n * @param uniformStructures - The structures of the uniform group\n * @param options - The optional parameters of this uniform group\n */\n constructor(uniformStructures, options) {\n /** used internally to know if a uniform group was used in the last render pass */\n this._touched = 0;\n /** a unique id for this uniform group used through the renderer */\n this.uid = uid(\"uniform\");\n /** a resource type, used to identify how to handle it when its in a bind group / shader resource */\n this._resourceType = \"uniformGroup\";\n /** the resource id used internally by the renderer to build bind group keys */\n this._resourceId = uid(\"resource\");\n /** used ito identify if this is a uniform group */\n this.isUniformGroup = true;\n /**\n * used to flag if this Uniform groups data is different from what it has stored in its buffer / on the GPU\n * @internal\n * @ignore\n */\n this._dirtyId = 0;\n // implementing the interface - UniformGroup are not destroyed\n this.destroyed = false;\n options = { ..._UniformGroup.defaultOptions, ...options };\n this.uniformStructures = uniformStructures;\n const uniforms = {};\n for (const i in uniformStructures) {\n const uniformData = uniformStructures[i];\n uniformData.name = i;\n uniformData.size = uniformData.size ?? 1;\n uniformData.value ?? (uniformData.value = getDefaultUniformValue(uniformData.type, uniformData.size));\n uniforms[i] = uniformData.value;\n }\n this.uniforms = uniforms;\n this._dirtyId = 1;\n this.ubo = options.ubo;\n this.isStatic = options.isStatic;\n this._signature = createIdFromString(Object.keys(uniforms).map(\n (i) => `${i}-${uniformStructures[i].type}`\n ).join(\"-\"), \"uniform-group\");\n }\n /** Call this if you want the uniform groups data to be uploaded to the GPU only useful if `isStatic` is true. */\n update() {\n this._dirtyId++;\n }\n};\n/** The default options used by the uniform group. */\n_UniformGroup.defaultOptions = {\n /** if true the UniformGroup is handled as an Uniform buffer object. */\n ubo: false,\n /** if true, then you are responsible for when the data is uploaded to the GPU by calling `update()` */\n isStatic: false\n};\nlet UniformGroup = _UniformGroup;\n\nexport { UniformGroup };\n//# sourceMappingURL=UniformGroup.mjs.map\n","\"use strict\";\nfunction getDefaultUniformValue(type, size) {\n switch (type) {\n case \"f32\":\n return 0;\n case \"vec2<f32>\":\n return new Float32Array(2 * size);\n case \"vec3<f32>\":\n return new Float32Array(3 * size);\n case \"vec4<f32>\":\n return new Float32Array(4 * size);\n case \"mat2x2<f32>\":\n return new Float32Array([\n 1,\n 0,\n 0,\n 1\n ]);\n case \"mat3x3<f32>\":\n return new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1\n ]);\n case \"mat4x4<f32>\":\n return new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n return null;\n}\n\nexport { getDefaultUniformValue };\n//# sourceMappingURL=getDefaultUniformValue.mjs.map\n","\"use strict\";\nconst blendModeIds = {\n normal: 0,\n add: 1,\n multiply: 2,\n screen: 3,\n overlay: 4,\n erase: 5,\n \"normal-npm\": 6,\n \"add-npm\": 7,\n \"screen-npm\": 8\n};\nconst BLEND = 0;\nconst OFFSET = 1;\nconst CULLING = 2;\nconst DEPTH_TEST = 3;\nconst WINDING = 4;\nconst DEPTH_MASK = 5;\nconst _State = class _State {\n constructor() {\n this.data = 0;\n this.blendMode = \"normal\";\n this.polygonOffset = 0;\n this.blend = true;\n this.depthMask = true;\n }\n /**\n * Activates blending of the computed fragment color values.\n * @default true\n */\n get blend() {\n return !!(this.data & 1 << BLEND);\n }\n set blend(value) {\n if (!!(this.data & 1 << BLEND) !== value) {\n this.data ^= 1 << BLEND;\n }\n }\n /**\n * Activates adding an offset to depth values of polygon's fragments\n * @default false\n */\n get offsets() {\n return !!(this.data & 1 << OFFSET);\n }\n set offsets(value) {\n if (!!(this.data & 1 << OFFSET) !== value) {\n this.data ^= 1 << OFFSET;\n }\n }\n /** The culling settings for this state none - No culling back - Back face culling front - Front face culling */\n set cullMode(value) {\n if (value === \"none\") {\n this.culling = false;\n return;\n }\n this.culling = true;\n this.clockwiseFrontFace = value === \"front\";\n }\n get cullMode() {\n if (!this.culling) {\n return \"none\";\n }\n return this.clockwiseFrontFace ? \"front\" : \"back\";\n }\n /**\n * Activates culling of polygons.\n * @default false\n */\n get culling() {\n return !!(this.data & 1 << CULLING);\n }\n set culling(value) {\n if (!!(this.data & 1 << CULLING) !== value) {\n this.data ^= 1 << CULLING;\n }\n }\n /**\n * Activates depth comparisons and updates to the depth buffer.\n * @default false\n */\n get depthTest() {\n return !!(this.data & 1 << DEPTH_TEST);\n }\n set depthTest(value) {\n if (!!(this.data & 1 << DEPTH_TEST) !== value) {\n this.data ^= 1 << DEPTH_TEST;\n }\n }\n /**\n * Enables or disables writing to the depth buffer.\n * @default true\n */\n get depthMask() {\n return !!(this.data & 1 << DEPTH_MASK);\n }\n set depthMask(value) {\n if (!!(this.data & 1 << DEPTH_MASK) !== value) {\n this.data ^= 1 << DEPTH_MASK;\n }\n }\n /**\n * Specifies whether or not front or back-facing polygons can be culled.\n * @default false\n */\n get clockwiseFrontFace() {\n return !!(this.data & 1 << WINDING);\n }\n set clockwiseFrontFace(value) {\n if (!!(this.data & 1 << WINDING) !== value) {\n this.data ^= 1 << WINDING;\n }\n }\n /**\n * The blend mode to be applied when this state is set. Apply a value of `normal` to reset the blend mode.\n * Setting this mode to anything other than NO_BLEND will automatically switch blending on.\n * @default 'normal'\n */\n get blendMode() {\n return this._blendMode;\n }\n set blendMode(value) {\n this.blend = value !== \"none\";\n this._blendMode = value;\n this._blendModeId = blendModeIds[value] || 0;\n }\n /**\n * The polygon offset. Setting this property to anything other than 0 will automatically enable polygon offset fill.\n * @default 0\n */\n get polygonOffset() {\n return this._polygonOffset;\n }\n set polygonOffset(value) {\n this.offsets = !!value;\n this._polygonOffset = value;\n }\n toString() {\n return `[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`;\n }\n /**\n * A quickly getting an instance of a State that is configured for 2d rendering.\n * @returns a new State with values set for 2d rendering\n */\n static for2d() {\n const state = new _State();\n state.depthTest = false;\n state.blend = true;\n return state;\n }\n};\n_State.default2d = _State.for2d();\nlet State = _State;\n\nexport { State };\n//# sourceMappingURL=State.mjs.map\n","import { nextPow2 } from '../../../../maths/misc/pow2.mjs';\nimport { TextureSource } from './sources/TextureSource.mjs';\nimport { Texture } from './Texture.mjs';\n\n\"use strict\";\nlet count = 0;\nclass TexturePoolClass {\n /**\n * @param textureOptions - options that will be passed to BaseRenderTexture constructor\n * @param {SCALE_MODE} [textureOptions.scaleMode] - See {@link SCALE_MODE} for possible values.\n */\n constructor(textureOptions) {\n this._poolKeyHash = /* @__PURE__ */ Object.create(null);\n this._texturePool = {};\n this.textureOptions = textureOptions || {};\n this.enableFullScreen = false;\n }\n /**\n * Creates texture with params that were specified in pool constructor.\n * @param pixelWidth - Width of texture in pixels.\n * @param pixelHeight - Height of texture in pixels.\n * @param antialias\n */\n createTexture(pixelWidth, pixelHeight, antialias) {\n const textureSource = new TextureSource({\n ...this.textureOptions,\n width: pixelWidth,\n height: pixelHeight,\n resolution: 1,\n antialias,\n autoGarbageCollect: true\n });\n return new Texture({\n source: textureSource,\n label: `texturePool_${count++}`\n });\n }\n /**\n * Gets a Power-of-Two render texture or fullScreen texture\n * @param frameWidth - The minimum width of the render texture.\n * @param frameHeight - The minimum height of the render texture.\n * @param resolution - The resolution of the render texture.\n * @param antialias\n * @returns The new render texture.\n */\n getOptimalTexture(frameWidth, frameHeight, resolution = 1, antialias) {\n let po2Width = Math.ceil(frameWidth * resolution - 1e-6);\n let po2Height = Math.ceil(frameHeight * resolution - 1e-6);\n po2Width = nextPow2(po2Width);\n po2Height = nextPow2(po2Height);\n const key = (po2Width << 17) + (po2Height << 1) + (antialias ? 1 : 0);\n if (!this._texturePool[key]) {\n this._texturePool[key] = [];\n }\n let texture = this._texturePool[key].pop();\n if (!texture) {\n texture = this.createTexture(po2Width, po2Height, antialias);\n }\n texture.source._resolution = resolution;\n texture.source.width = po2Width / resolution;\n texture.source.height = po2Height / resolution;\n texture.source.pixelWidth = po2Width;\n texture.source.pixelHeight = po2Height;\n texture.frame.x = 0;\n texture.frame.y = 0;\n texture.frame.width = frameWidth;\n texture.frame.height = frameHeight;\n texture.updateUvs();\n this._poolKeyHash[texture.uid] = key;\n return texture;\n }\n /**\n * Gets extra texture of the same size as input renderTexture\n * @param texture - The texture to check what size it is.\n * @param antialias - Whether to use antialias.\n * @returns A texture that is a power of two\n */\n getSameSizeTexture(texture, antialias = false) {\n const source = texture.source;\n return this.getOptimalTexture(texture.width, texture.height, source._resolution, antialias);\n }\n /**\n * Place a render texture back into the pool.\n * @param renderTexture - The renderTexture to free\n */\n returnTexture(renderTexture) {\n const key = this._poolKeyHash[renderTexture.uid];\n this._texturePool[key].push(renderTexture);\n }\n /**\n * Clears the pool.\n * @param destroyTextures - Destroy all stored textures.\n */\n clear(destroyTextures) {\n destroyTextures = destroyTextures !== false;\n if (destroyTextures) {\n for (const i in this._texturePool) {\n const textures = this._texturePool[i];\n if (textures) {\n for (let j = 0; j < textures.length; j++) {\n textures[j].destroy(true);\n }\n }\n }\n }\n this._texturePool = {};\n }\n}\nconst TexturePool = new TexturePoolClass();\n\nexport { TexturePool, TexturePoolClass };\n//# sourceMappingURL=TexturePool.mjs.map\n","\"use strict\";\nconst idCounts = /* @__PURE__ */ Object.create(null);\nconst idHash = /* @__PURE__ */ Object.create(null);\nfunction createIdFromString(value, groupId) {\n let id = idHash[value];\n if (id === void 0) {\n if (idCounts[groupId] === void 0) {\n idCounts[groupId] = 1;\n }\n idHash[value] = id = idCounts[groupId]++;\n }\n return id;\n}\n\nexport { createIdFromString };\n//# sourceMappingURL=createIdFromString.mjs.map\n","\"use strict\";\nvar RendererType = /* @__PURE__ */ ((RendererType2) => {\n RendererType2[RendererType2[\"WEBGL\"] = 1] = \"WEBGL\";\n RendererType2[RendererType2[\"WEBGPU\"] = 2] = \"WEBGPU\";\n RendererType2[RendererType2[\"BOTH\"] = 3] = \"BOTH\";\n return RendererType2;\n})(RendererType || {});\n\nexport { RendererType };\n//# sourceMappingURL=types.mjs.map\n","\"use strict\";\nfunction colorToUniform(rgb, alpha, out, offset) {\n out[offset++] = (rgb >> 16 & 255) / 255;\n out[offset++] = (rgb >> 8 & 255) / 255;\n out[offset++] = (rgb & 255) / 255;\n out[offset++] = alpha;\n}\nfunction color32BitToUniform(abgr, out, offset) {\n const alpha = (abgr >> 24 & 255) / 255;\n out[offset++] = (abgr & 255) / 255 * alpha;\n out[offset++] = (abgr >> 8 & 255) / 255 * alpha;\n out[offset++] = (abgr >> 16 & 255) / 255 * alpha;\n out[offset++] = alpha;\n}\n\nexport { color32BitToUniform, colorToUniform };\n//# sourceMappingURL=colorToUniform.mjs.map\n","\"use strict\";\nclass BatchableSprite {\n constructor() {\n // batch specific..\n this.vertexSize = 4;\n this.indexSize = 6;\n this.location = 0;\n // location in the buffer\n this.batcher = null;\n this.batch = null;\n this.roundPixels = 0;\n }\n get blendMode() {\n return this.renderable.groupBlendMode;\n }\n packAttributes(float32View, uint32View, index, textureId) {\n const sprite = this.renderable;\n const texture = this.texture;\n const wt = sprite.groupTransform;\n const a = wt.a;\n const b = wt.b;\n const c = wt.c;\n const d = wt.d;\n const tx = wt.tx;\n const ty = wt.ty;\n const bounds = this.bounds;\n const w0 = bounds.maxX;\n const w1 = bounds.minX;\n const h0 = bounds.maxY;\n const h1 = bounds.minY;\n const uvs = texture.uvs;\n const argb = sprite.groupColorAlpha;\n const textureIdAndRound = textureId << 16 | this.roundPixels & 65535;\n float32View[index + 0] = a * w1 + c * h1 + tx;\n float32View[index + 1] = d * h1 + b * w1 + ty;\n float32View[index + 2] = uvs.x0;\n float32View[index + 3] = uvs.y0;\n uint32View[index + 4] = argb;\n uint32View[index + 5] = textureIdAndRound;\n float32View[index + 6] = a * w0 + c * h1 + tx;\n float32View[index + 7] = d * h1 + b * w0 + ty;\n float32View[index + 8] = uvs.x1;\n float32View[index + 9] = uvs.y1;\n uint32View[index + 10] = argb;\n uint32View[index + 11] = textureIdAndRound;\n float32View[index + 12] = a * w0 + c * h0 + tx;\n float32View[index + 13] = d * h0 + b * w0 + ty;\n float32View[index + 14] = uvs.x2;\n float32View[index + 15] = uvs.y2;\n uint32View[index + 16] = argb;\n uint32View[index + 17] = textureIdAndRound;\n float32View[index + 18] = a * w1 + c * h0 + tx;\n float32View[index + 19] = d * h0 + b * w1 + ty;\n float32View[index + 20] = uvs.x3;\n float32View[index + 21] = uvs.y3;\n uint32View[index + 22] = argb;\n uint32View[index + 23] = textureIdAndRound;\n }\n packIndex(indexBuffer, index, indicesOffset) {\n indexBuffer[index] = indicesOffset + 0;\n indexBuffer[index + 1] = indicesOffset + 1;\n indexBuffer[index + 2] = indicesOffset + 2;\n indexBuffer[index + 3] = indicesOffset + 0;\n indexBuffer[index + 4] = indicesOffset + 2;\n indexBuffer[index + 5] = indicesOffset + 3;\n }\n reset() {\n this.renderable = null;\n this.texture = null;\n this.batcher = null;\n this.batch = null;\n this.bounds = null;\n }\n}\n\nexport { BatchableSprite };\n//# sourceMappingURL=BatchableSprite.mjs.map\n"],"names":["addBits","srcParts","parts","name","i","part","toLocaleLowerCase","sanitisedPart","replace","push","findHooksRx","compileHooks","programSrc","partMatches","match","map","hook","forEach","extractInputs","fragmentSource","out","regex","exec","compileInputs","fragments","template","sort","results","fragment","header","mainInput","finalString","inValue","join","cleanedString","extractOutputs","injectBits","templateSrc","fragmentParts","toInject","length","cacheMap","Object","create","bitCacheMap","Map","CACHE_UID","generateCacheId","bits","highFragment","has","set","get","a","b","vertex","compileBits","vertexParts","shaderBit","vertexGPUTemplate","fragmentGPUTemplate","vertexGlTemplate","fragmentGlTemplate","globalUniformsBit","globalUniformsBitGl","compileHighShaderGpuProgram","source","compileHighShader","cacheId","compileInputsAndOutputs","vertexFragments","filter","v","fragmentFragments","compiledVertex","compileOutputs","index","mainStruct","indexOf","mainStart","value","mainEnd","extractVariableName","compiledCode","entryPoint","compileHighShaderGlProgram","compileHighShaderGl","colorBit","main","colorBitGl","textureBatchBitGpuCache","generateTextureBatchBit","maxTextures","end","generateBindingSrc","src","bindingIndex","generateSampleSrc","textureBatchBitGlCache","generateTextureBatchBitGl","generateSampleGlSrc","localUniformBit","localUniformBitGroup2","localUniformBitGl","roundPixelsBit","roundPixelsBitGl","context","maxFragmentPrecision","fragmentNameCache","VertexNameCache","processes","stripVersion","isES300","ensurePrecision","options","isFragment","maxSupportedPrecision","maxSupportedFragmentPrecision","maxSupportedVertexPrecision","substring","precision","requestedFragmentPrecision","requestedVertexPrecision","addProgramDefines","setProgramName","nameCache","shaderName","insertVersion","programCache","_GlProgram","constructor","defaultOptions","preprocessorOptions","preferredFragmentPrecision","preferredVertexPrecision","getMaxFragmentPrecision","gl","isContextLost","canvas","createCanvas","getContext","getShaderPrecisionFormat","shaderFragment","FRAGMENT_SHADER","HIGH_FLOAT","keys","processKey","processOptions","_key","destroy","_attributeData","_uniformData","_uniformBlockData","transformFeedbackVaryings","from","key","GlProgram","WGSL_TO_VERTEX_TYPES","f32","vec2f","vec3f","vec4f","i32","u32","bool","extractStructAndGroups","wgsl","groupPattern","bindingPattern","namePattern","typePattern","structMemberPattern","structName","groups","item","group","parseInt","binding","isUniform","type","structs","struct","members","reduce","acc","member","name2","split","trim","some","ShaderStage2","ShaderStage","GpuProgram","_layoutKey","layout","gpuLayout","structsAndGroups","vertexStructsAndGroups","fragmentStructsAndGroups","removeStructAndGroupDuplicates","structNameSet","Set","dupeGroupKeySet","add","generateLayoutHash","generateGpuLayoutGroups","visibility","VERTEX","FRAGMENT","buffer","sampler","texture","sampleType","viewDimension","multisampled","autoAssignGlobalUniforms","globalUniforms","autoAssignLocalUniforms","localUniforms","_generateProgramKey","bigKey","attributeData","extractAttributesFromGpuProgram","mainVertStart","arrowFunctionStart","functionArgsSubstring","inputsRegex","format","location","stride","offset","instance","start","attributeFormatData","uint8x2","size","normalised","uint8x4","sint8x2","sint8x4","unorm8x2","unorm8x4","snorm8x2","snorm8x4","uint16x2","uint16x4","sint16x2","sint16x4","unorm16x2","unorm16x4","snorm16x2","snorm16x4","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","getAttributeInfoFromFormat","Shader","_uniformBindMap","_ownedBindGroups","gpuProgram","glProgram","resources","compatibleRenderers","groupMap","nameHash","Error","j","uniformName","groupData","data","bindTick","_resourceType","setResource","_buildResourceAccessor","addResource","groupIndex","bindIndex","_a","_b","uniformsOut","defineProperty","getResource","destroyPrograms","emit","removeAllListeners","bindGroup","gpu","rest","_UniformGroup","uniformStructures","_touched","uid","_resourceId","isUniformGroup","_dirtyId","destroyed","uniforms","uniformData","getDefaultUniformValue","Float32Array","ubo","isStatic","_signature","update","UniformGroup","blendModeIds","normal","multiply","screen","overlay","erase","_State","blendMode","polygonOffset","blend","depthMask","offsets","cullMode","culling","clockwiseFrontFace","depthTest","_blendMode","_blendModeId","_polygonOffset","toString","for2d","state","default2d","State","count","TexturePool","TexturePoolClass","textureOptions","_poolKeyHash","_texturePool","enableFullScreen","createTexture","pixelWidth","pixelHeight","antialias","textureSource","width","height","resolution","autoGarbageCollect","label","getOptimalTexture","frameWidth","frameHeight","po2Width","Math","ceil","po2Height","pop","_resolution","frame","x","y","updateUvs","getSameSizeTexture","returnTexture","renderTexture","clear","destroyTextures","textures","idCounts","idHash","createIdFromString","groupId","id","RendererType2","RendererType","color32BitToUniform","abgr","alpha","BatchableSprite","vertexSize","indexSize","batcher","batch","roundPixels","renderable","groupBlendMode","packAttributes","float32View","uint32View","textureId","sprite","wt","groupTransform","c","d","tx","ty","bounds","w0","maxX","w1","minX","h0","maxY","h1","minY","uvs","argb","groupColorAlpha","textureIdAndRound","x0","y0","x1","y1","x2","y2","x3","y3","packIndex","indexBuffer","indicesOffset","reset"],"mappings":"sNAGA,SAASA,EAAQC,CAAQ,CAAEC,CAAK,CAAEC,CAAI,EACpC,GAAIF,EACF,IAAK,IAAMG,KAAKH,EAAU,CAExB,IAAMI,EAAOH,CAAK,CADPE,EAAEE,iBAAiB,GACR,CACtB,GAAID,EAAM,CACR,IAAIE,EAAgBN,CAAQ,CAACG,EAAE,AACrB,YAANA,GACFG,CAAAA,EAAgBA,EAAcC,OAAO,CAAC,mBAAoB,IAAIA,OAAO,CAAC,oBAAqB,GAAE,EAE3FL,GACFE,EAAKI,IAAI,CAAC,CAAC,MAAM,EAAEN,EAAK,MAAM,CAAC,EAEjCE,EAAKI,IAAI,CAACF,EACZ,KACE,QAAK,CAAC,EAAEH,EAAE,wCAAwC,CAAC,CAEvD,CAEJ,CCrBA,IAAMM,EAAc,iBACpB,SAASC,EAAaC,CAAU,EAC9B,IAAMV,EAAQ,CAAC,EAKf,MAHAW,AADoBD,CAAAA,EAAWE,KAAK,CAACJ,IAAcK,IAAI,AAACC,GAASA,EAAKR,OAAO,CAAC,UAAW,MAAQ,EAAE,AAAD,EACtFS,OAAO,CAAC,AAACD,IACnBd,CAAK,CAACc,EAAK,CAAG,EAAE,AAClB,GACOd,CACT,CCRA,SAASgB,EAAcC,CAAc,CAAEC,CAAG,MACpCN,EACJ,IAAMO,EAAQ,kBACd,KAAO,AAAyC,OAAxCP,CAAAA,EAAQO,EAAMC,IAAI,CAACH,EAAc,GACvCC,EAAIX,IAAI,CAACK,CAAK,CAAC,EAAE,CAErB,CACA,SAASS,EAAcC,CAAS,CAAEC,CAAQ,CAAEC,EAAO,EAAK,EACtD,IAAMC,EAAU,EAAE,CAClBT,EAAcO,EAAUE,GACxBH,EAAUP,OAAO,CAAC,AAACW,IACbA,EAASC,MAAM,EACjBX,EAAcU,EAASC,MAAM,CAAEF,EAEnC,GAEID,GACFI,AAFgBH,EAEND,IAAI,GAEhB,IAAMK,EAAcD,AAJFH,EAIYZ,GAAG,CAAC,CAACiB,EAAS5B,IAAM,CAAC,iBAAiB,EAAEA,EAAE,EAAE,EAAE4B,EAAQ,CAAC,CAAC,EAAEC,IAAI,CAAC,MACzFC,EAAgBT,EAASjB,OAAO,CAAC,mBAAoB,IAIzD,OAHA0B,EAAgBA,EAAc1B,OAAO,CAAC,SAAU,CAAC;AACnD,EAAEuB,EAAY;AACd,CAAC,CAED,CCzBA,SAASI,EAAehB,CAAc,CAAEC,CAAG,MACrCN,EACJ,IAAMO,EAAQ,mBACd,KAAO,AAAyC,OAAxCP,CAAAA,EAAQO,EAAMC,IAAI,CAACH,EAAc,GACvCC,EAAIX,IAAI,CAACK,CAAK,CAAC,EAAE,CAErB,CCNA,SAASsB,EAAWC,CAAW,CAAEC,CAAa,EAC5C,IAAIlB,EAAMiB,EACV,IAAK,IAAMjC,KAAKkC,EAAe,CAC7B,IAAMpC,EAAQoC,CAAa,CAAClC,EAAE,CAG5BgB,EADEmB,AADarC,EAAM+B,IAAI,CAAC,MACfO,MAAM,CACXpB,EAAIZ,OAAO,CAAC,CAAC,EAAE,EAAEJ,EAAE,EAAE,CAAC,CAAE,CAAC,OAAO,EAAEA,EAAE;AAChD,EAAEF,EAAM+B,IAAI,CAAC,MAAM;MACb,EAAE7B,EAAE,aAAa,CAAC,EAEZgB,EAAIZ,OAAO,CAAC,CAAC,EAAE,EAAEJ,EAAE,EAAE,CAAC,CAAE,GAElC,CACA,OAAOgB,CACT,CCRA,IAAMqB,EAA2BC,OAAOC,MAAM,CAAC,MACzCC,EAA8B,IAAIC,IACpCC,EAAY,EAiChB,SAASC,EAAgBtB,CAAQ,CAAEuB,CAAI,EACrC,OAAOA,EAAKjC,GAAG,CAAC,AAACkC,IACX,CAACL,EAAYM,GAAG,CAACD,IACnBL,EAAYO,GAAG,CAACF,EAAcH,KAEzBF,EAAYQ,GAAG,CAACH,KACtBvB,IAAI,CAAC,CAAC2B,EAAGC,IAAMD,EAAIC,GAAGrB,IAAI,CAAC,KAAOR,EAAS8B,MAAM,CAAG9B,EAASG,QAAQ,AAC1E,CACA,SAAS4B,EAAYD,CAAM,CAAE3B,CAAQ,CAAEoB,CAAI,EACzC,IAAMS,EAAc9C,EAAa4C,GAC3BjB,EAAgB3B,EAAaiB,GAKnC,OAJAoB,EAAK/B,OAAO,CAAC,AAACyC,IACZ1D,EAAQ0D,EAAUH,MAAM,CAAEE,EAAaC,EAAUvD,IAAI,EACrDH,EAAQ0D,EAAU9B,QAAQ,CAAEU,EAAeoB,EAAUvD,IAAI,CAC3D,GACO,CACLoD,OAAQnB,EAAWmB,EAAQE,GAC3B7B,SAAUQ,EAAWR,EAAUU,EACjC,CACF,CC5DA,IAAMqB,EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CH,CAAC,CAEKC,EAEJ,CAAC;;;;;;;;;;;;;;;;;;;AAmBH,CAAC,CAEKC,EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCH,CAAC,CAEKC,EAEJ,CAAC;;;;;;;;;;;;;;;;;;;AAmBH,CAAC,CCpIKC,EAAoB,CACxB5D,KAAM,sBACNoD,OAAQ,CACN1B,OAEE,CAAC;;;;;;;;;QASC,CAAC,AAEP,CACF,EAiBMmC,EAAsB,CAC1B7D,KAAM,sBACNoD,OAAQ,CACN1B,OAEE,CAAC;;;;;QAKC,CAAC,AAEP,CACF,ECzCA,SAASoC,EAA4B,CAAEjB,KAAAA,CAAI,CAAE7C,KAAAA,CAAI,CAAE,EACjD,IAAM+D,EAASC,AHEjB,SAA2B,CACzB1C,SAAAA,CAAQ,CACRuB,KAAAA,CAAI,CACL,EACC,IAAMoB,EAAUrB,EAAgBtB,EAAUuB,GAC1C,GAAIP,CAAQ,CAAC2B,EAAQ,CACnB,OAAO3B,CAAQ,CAAC2B,EAAQ,CAC1B,GAAM,CAAEb,OAAAA,CAAM,CAAE3B,SAAAA,CAAQ,CAAE,CAAGyC,AAc/B,SAAiC5C,CAAQ,CAAEuB,CAAI,EAC7C,IAAMsB,EAAkBtB,EAAKjC,GAAG,CAAC,AAAC2C,GAAcA,EAAUH,MAAM,EAAEgB,MAAM,CAAC,AAACC,GAAM,CAAC,CAACA,GAC5EC,EAAoBzB,EAAKjC,GAAG,CAAC,AAAC2C,GAAcA,EAAU9B,QAAQ,EAAE2C,MAAM,CAAC,AAACC,GAAM,CAAC,CAACA,GAClFE,EAAiBnD,EAAc+C,EAAiB7C,EAAS8B,MAAM,CAAE,IAGrE,OAFAmB,EAAiBC,AFlBnB,SAAwBnD,CAAS,CAAEC,CAAQ,EACzC,IAAME,EAAU,EAAE,CAClBQ,EAAeV,EAAUE,GACzBH,EAAUP,OAAO,CAAC,AAACW,IACbA,EAASC,MAAM,EACjBM,EAAeP,EAASC,MAAM,CAAEF,EAEpC,GACA,IAAIiD,EAAQ,EACNC,EAAalD,EAAQD,IAAI,GAAGX,GAAG,CAAC,AAACiB,GACrC,AAAIA,EAAQ8C,OAAO,CAAC,WAAa,GACxB9C,EAEF,CAAC,UAAU,EAAE4C,IAAQ,EAAE,EAAE5C,EAAQ,CAAC,EACxCC,IAAI,CAAC,OACF8C,EAAYpD,EAAQD,IAAI,GAAGX,GAAG,CAAC,AAACiB,GAAY,CAAC,WAAW,EAjBvDgD,AAiBuEhD,EAjBjExB,OAAO,CADN,WACc,IAiB2D,CAAC,CAAC,EAAEyB,IAAI,CAAC,MAC1FgD,EAAU,CAAC;gBACH,EAAEtD,EAAQD,IAAI,GAAGX,GAAG,CAAC,AAACiB,GAAY,CAAC,CAAC,EAAEkD,AA1BtD,SAA6BF,CAAK,EAEhC,IAAMlE,EAAQO,AADA,eACMC,IAAI,CAAC0D,GACzB,OAAOlE,EAAQA,CAAK,CAAC,EAAE,CAAG,EAC5B,EAsB0EkB,GAAS,CAAC,EAAEC,IAAI,CAAC,OAAO,EAAE,CAAC,CAC/FkD,EAAe1D,EAASjB,OAAO,CAAC,oBAAqB,IAUzD,OAHA2E,EAAeA,AAHfA,CAAAA,EAAeA,AAHfA,CAAAA,EAAeA,EAAa3E,OAAO,CAAC,aAAc,CAAC;AACrD,EAAEqE,EAAW;AACb,CAAC,GAC6BrE,OAAO,CAAC,YAAa,CAAC;AACpD,EAAEuE,EAAU;AACZ,CAAC,GAC6BvE,OAAO,CAAC,aAAc,CAAC;AACrD,EAAEyE,EAAQ;AACV,CAAC,CAED,EEXkCX,EAAiBI,GAE1C,CACLnB,OAAQmB,EACR9C,SAHuBL,EAAckD,EAAmBhD,EAASG,QAAQ,CAAE,GAI7E,CACF,EAxBuDH,EAAUuB,GAE/D,OADAP,CAAQ,CAAC2B,EAAQ,CAAGZ,EAAYD,EAAQ3B,EAAUoB,GAC3CP,CAAQ,CAAC2B,EAAQ,AAC1B,EGZmC,CAC/B3C,SAAU,CACRG,SAAUgC,EACVL,OAAQI,CACV,EACAX,KAAM,CACJe,KACGf,EACJ,AACH,GACA,OAAO,QAAe,CAAC,CACrB7C,KAAAA,EACAoD,OAAQ,CACNW,OAAQA,EAAOX,MAAM,CACrB6B,WAAY,MACd,EACAxD,SAAU,CACRsC,OAAQA,EAAOtC,QAAQ,CACvBwD,WAAY,MACd,CACF,EACF,CACA,SAASC,EAA2B,CAAErC,KAAAA,CAAI,CAAE7C,KAAAA,CAAI,CAAE,EAChD,OAAO,IAAI,GAAS,CAAC,CACnBA,KAAAA,EACA,GAAGmF,AHZP,SAA6B,CAC3B7D,SAAAA,CAAQ,CACRuB,KAAAA,CAAI,CACL,EACC,IAAMoB,EAAUrB,EAAgBtB,EAAUuB,UAC1C,AAAIP,CAAQ,CAAC2B,EAAQ,CACZ3B,CAAQ,CAAC2B,EAAQ,EAC1B3B,CAAQ,CAAC2B,EAAQ,CAAGZ,EAAY/B,EAAS8B,MAAM,CAAE9B,EAASG,QAAQ,CAAEoB,GAC7DP,CAAQ,CAAC2B,EAAQ,CAC1B,EGG2B,CACrB3C,SAAU,CACR8B,OAAQM,EACRjC,SAAUkC,CACZ,EACAd,KAAM,CACJgB,KACGhB,EACJ,AACH,EAAE,AACJ,EACF,C,+EC3CA,IAAMuC,EAAW,CACfpF,KAAM,YACNoD,OAAQ,CACN1B,OAEE,CAAC;;QAEC,CAAC,CAEL2D,KAEE,CAAC;;QAEC,CAAC,AAEP,CACF,EACMC,EAAa,CACjBtF,KAAM,YACNoD,OAAQ,CACN1B,OAEE,CAAC;;QAEC,CAAC,CAEL2D,KAEE,CAAC;;QAEC,CAAC,AAEP,CACF,C,+ECjCA,IAAME,EAA0B,CAAC,EAkCjC,SAASC,EAAwBC,CAAW,EAkC1C,MAjCI,CAACF,CAAuB,CAACE,EAAY,EACvCF,CAAAA,CAAuB,CAACE,EAAY,CAAG,CACrCzF,KAAM,oBACNoD,OAAQ,CACN1B,OAAQ,CAAC;;;YAGL,CAAC,CACL2D,KAAM,CAAC;;YAEH,CAAC,CACLK,IAAK,CAAC;;;;;YAKF,CAAC,AACP,EACAjE,SAAU,CACRC,OAAQ,CAAC;;;gBAGD,EAAEiE,AAxDlB,SAA4BF,CAAW,EACrC,IAAMG,EAAM,EAAE,AACVH,GAGG,EACL,IAAII,EAAe,EACnB,IAAK,IAAI5F,EAAI,EAAGA,EAAIwF,EAAaxF,IAC/B2F,EAAItF,IAAI,CAAC,CAAC,mBAAmB,EAAEuF,IAAe,mBAAmB,EAAE5F,EAAI,EAAE,kBAAkB,CAAC,EAC5F2F,EAAItF,IAAI,CAAC,CAAC,mBAAmB,EAAEuF,IAAe,oBAAoB,EAAE5F,EAAI,EAAE,UAAU,CAAC,CAEzF,CACA,OAAO2F,EAAI9D,IAAI,CAAC,KAClB,EA2CqC,IAAI;YAC7B,CAAC,CACLuD,KAAM,CAAC;;;;gBAIC,EAAES,AAhDlB,SAA2BL,CAAW,EACpC,IAAMG,EAAM,EAAE,AACVH,IAGFG,EAAItF,IAAI,CAAC,uBACT,IAAK,IAAIL,EAAI,EAAGA,EAAIwF,EAAaxF,IAC3BA,IAAMwF,EAAc,EACtBG,EAAItF,IAAI,CAAC,eAETsF,EAAItF,IAAI,CAAC,CAAC,OAAO,EAAEL,EAAE,EAAE,CAAC,EAE1B2F,EAAItF,IAAI,CAAC,CAAC,gDAAgD,EAAEL,EAAI,EAAE,gBAAgB,EAAEA,EAAI,EAAE,mBAAmB,CAAC,EAC9G2F,EAAItF,IAAI,CAAC,iBAEXsF,EAAItF,IAAI,CAAC,KAEX,OAAOsF,EAAI9D,IAAI,CAAC,KAClB,EA8BoC,IAAI;YAC5B,CAAC,AACP,CACF,GAEKyD,CAAuB,CAACE,EAAY,AAC7C,CACA,IAAMM,EAAyB,CAAC,EAgBhC,SAASC,EAA0BP,CAAW,EAkC5C,MAjCI,CAACM,CAAsB,CAACN,EAAY,EACtCM,CAAAA,CAAsB,CAACN,EAAY,CAAG,CACpCzF,KAAM,oBACNoD,OAAQ,CACN1B,OAAQ,CAAC;;;;YAIL,CAAC,CACL2D,KAAM,CAAC;;YAEH,CAAC,CACLK,IAAK,CAAC;;;;;YAKF,CAAC,AACP,EACAjE,SAAU,CACRC,OAAQ,CAAC;;;4CAG2B,EAAE+D,EAAY;;YAE9C,CAAC,CACLJ,KAAM,CAAC;;gBAEC,EAAEY,AA5ClB,SAA6BR,CAAW,EACtC,IAAMG,EAAM,EAAE,CACd,IAAK,IAAI3F,EAAI,EAAGA,EA0CoB,GA1CHA,IAC3BA,EAAI,GACN2F,EAAItF,IAAI,CAAC,QAEPL,EAAIwF,EAAc,GACpBG,EAAItF,IAAI,CAAC,CAAC,gBAAgB,EAAEL,EAAE,GAAG,CAAC,EAEpC2F,EAAItF,IAAI,CAAC,KACTsF,EAAItF,IAAI,CAAC,CAAC,8BAA8B,EAAEL,EAAE,QAAQ,CAAC,EACrD2F,EAAItF,IAAI,CAAC,KAEX,OAAOsF,EAAI9D,IAAI,CAAC,KAClB,EA8BsC,IAAI;YAC9B,CAAC,AACP,CACF,GAEKiE,CAAsB,CAACN,EAAY,AAC5C,C,yGCzHA,IAAMS,EAAkB,CACtBlG,KAAM,oBACNoD,OAAQ,CACN1B,OAEE,CAAC;;;;;;;;;QASC,CAAC,CAEL2D,KAEE,CAAC;;;QAGC,CAAC,CAELK,IAEE,CAAC;;;;;QAKC,CAAC,AAEP,CACF,EACMS,EAAwB,CAC5B,GAAGD,CAAe,CAClB9C,OAAQ,CACN,GAAG8C,EAAgB9C,MAAM,CAEzB1B,OAAQwE,EAAgB9C,MAAM,CAAC1B,MAAM,CAACrB,OAAO,CAAC,WAAY,WAC5D,CACF,EACM+F,EAAoB,CACxBpG,KAAM,oBACNoD,OAAQ,CACN1B,OAEE,CAAC;;;;;QAKC,CAAC,CAEL2D,KAEE,CAAC;;;QAGC,CAAC,CAELK,IAEE,CAAC;;;;;QAKC,CAAC,AAEP,CACF,C,+ECvEA,IAAMW,EAAiB,CACrBrG,KAAM,mBACNoD,OAAQ,CACN1B,OAEE,CAAC;;;;;QAKC,CAAC,AAEP,CACF,EACM4E,EAAmB,CACvBtG,KAAM,mBACNoD,OAAQ,CACN1B,OAEE,CAAC;;;;;QAKC,CAAC,AAEP,CACF,C,4BCzBI6E,ECAAC,E,6CCFEC,EAAoB,CAAC,EACrBC,EAAkB,CAAC,ECOnBC,EAAY,CAEhBC,aCVF,SAAsBhB,CAAG,CAAEiB,CAAO,SAChC,AAAKA,EAEEjB,EAAIvF,OAAO,CAAC,kBAAmB,IAD7BuF,CAEX,EDQEkB,gBEZF,SAAyBlB,CAAG,CAAEmB,CAAO,CAAEC,CAAU,EAC/C,IAAMC,EAAwBD,EAAaD,EAAQG,6BAA6B,CAAGH,EAAQI,2BAA2B,CACtH,GAAIvB,AAAwB,cAAxBA,EAAIwB,SAAS,CAAC,EAAG,GAAoB,CACvC,IAAIC,EAAYL,EAAaD,EAAQO,0BAA0B,CAAGP,EAAQQ,wBAAwB,CAIlG,MAHkB,UAAdF,GAAyBJ,AAA0B,UAA1BA,GAC3BI,CAAAA,EAAY,SAAQ,EAEf,CAAC,UAAU,EAAEA,EAAU;AAClC,EAAEzB,EAAI,CAAC,AACL,OAAO,AAAIqB,AAA0B,UAA1BA,GAAqCrB,AAAyB,oBAAzBA,EAAIwB,SAAS,CAAC,EAAG,IACxDxB,EAAIvF,OAAO,CAAC,kBAAmB,qBAEjCuF,CACT,EFCE4B,kBGdF,SAA2B5B,CAAG,CAAEiB,CAAO,CAAEG,CAAU,SACjD,AAAIH,EACKjB,EACLoB,GACFpB,EAAMA,EAAIvF,OAAO,CAAC,uBAAwB,IACnC,CAAC;;;;;;;QAOJ,EAAEuF,EAAI;QACN,CAAC,EAEA,CAAC;;;;;;QAMF,EAAEA,EAAI;QACN,CAAC,AACT,EHPE6B,eDdF,SAAwB7B,CAAG,CAAE,CAAE5F,KAAAA,EAAO,cAAc,CAAE,CAAEgH,EAAa,EAAI,EAEvEhH,EADOA,EAAKK,OAAO,CAAC,OAAQ,KACpB2G,CAAAA,EAAa,YAAc,SAAQ,EAC3C,IAAMU,EAAYV,EAAaP,EAAoBC,EAOnD,GANIgB,CAAS,CAAC1H,EAAK,EACjB0H,CAAS,CAAC1H,EAAK,GACfA,GAAQ,CAAC,CAAC,EAAE0H,CAAS,CAAC1H,EAAK,CAAC,CAAC,EAE7B0H,CAAS,CAAC1H,EAAK,CAAG,EAEhB4F,AAAuC,KAAvCA,EAAIjB,OAAO,CAAC,uBACd,OAAOiB,EACT,IAAM+B,EAAa,CAAC,oBAAoB,EAAE3H,EAAK,CAAC,CAChD,MAAO,CAAC,EAAE2H,EAAW;AACvB,EAAE/B,EAAI,CAAC,AACP,ECCEgC,cIlBF,SAAuBhC,CAAG,CAAEiB,CAAO,SACjC,AAAKA,EAEE,CAAC;AACV,EAAEjB,EAAI,CAAC,CAFIA,CAGX,CJcA,EACMiC,EAA+BtF,OAAOC,MAAM,CAAC,MAC7C,EAAa,MAAMsF,EAKvBC,YAAYhB,CAAO,CAAE,CAEnB,IAAMF,EAAUE,AAAgD,KAAhDA,AADhBA,CAAAA,EAAU,CAAE,GAAGe,EAAWE,cAAc,CAAE,GAAGjB,CAAO,AAAC,GAC7BtF,QAAQ,CAACkD,OAAO,CAAC,mBACnCsD,EAAsB,CAC1BrB,aAAcC,EACdC,gBAAiB,CACfQ,2BAA4BP,EAAQmB,0BAA0B,CAC9DX,yBAA0BR,EAAQoB,wBAAwB,CAC1DhB,4BAA6B,QAC7BD,8BAA+BkB,AFhCvC,WACE,GAAI,CAAC5B,EAAsB,CACzBA,EAAuB,UACvB,IAAM6B,GDFJ,EAAC9B,GAAWA,GAAS+B,eAAc,GAErC/B,CAAAA,EAAUgC,AADK,OAAc,GAAGC,YAAY,GAC3BC,UAAU,CAAC,QAAS,CAAC,EAAC,EAElClC,GCDD8B,GACEA,EAAGK,wBAAwB,EAE7BlC,CAAAA,EAAuBmC,AADAN,EAAGK,wBAAwB,CAACL,EAAGO,eAAe,CAAEP,EAAGQ,UAAU,EAC9CxB,SAAS,CAAG,QAAU,SAAQ,CAG1E,CACA,OAAOb,CACT,GEqBM,EACAiB,eAAgB,CACdzH,KAAM+G,EAAQ/G,IAAI,AACpB,EACAwH,kBAAmBX,EACnBe,cAAef,CACjB,EACIpF,EAAWsF,EAAQtF,QAAQ,CAC3B2B,EAAS2D,EAAQ3D,MAAM,CAC3Bb,OAAOuG,IAAI,CAACnC,GAAW7F,OAAO,CAAC,AAACiI,IAC9B,IAAMC,EAAiBf,CAAmB,CAACc,EAAW,CACtDtH,EAAWkF,CAAS,CAACoC,EAAW,CAACtH,EAAUuH,EAAgB,IAC3D5F,EAASuD,CAAS,CAACoC,EAAW,CAAC3F,EAAQ4F,EAAgB,GACzD,GACA,IAAI,CAACvH,QAAQ,CAAGA,EAChB,IAAI,CAAC2B,MAAM,CAAGA,EACd,IAAI,CAAC6F,IAAI,CAAG,QAAmB,CAAC,EAAE,IAAI,CAAC7F,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC3B,QAAQ,CAAC,CAAC,CAAE,aACpE,CAEAyH,SAAU,CACR,IAAI,CAACzH,QAAQ,CAAG,KAChB,IAAI,CAAC2B,MAAM,CAAG,KACd,IAAI,CAAC+F,cAAc,CAAG,KACtB,IAAI,CAACC,YAAY,CAAG,KACpB,IAAI,CAACC,iBAAiB,CAAG,KACzB,IAAI,CAACC,yBAAyB,CAAG,IACnC,CAQA,OAAOC,KAAKxC,CAAO,CAAE,CACnB,IAAMyC,EAAM,CAAC,EAAEzC,EAAQ3D,MAAM,CAAC,CAAC,EAAE2D,EAAQtF,QAAQ,CAAC,CAAC,CAInD,MAHI,CAACoG,CAAY,CAAC2B,EAAI,EACpB3B,CAAAA,CAAY,CAAC2B,EAAI,CAAG,IAAI1B,EAAWf,EAAO,EAErCc,CAAY,CAAC2B,EAAI,AAC1B,CACF,CAEA,GAAWxB,cAAc,CAAG,CAC1BG,yBAA0B,QAC1BD,2BAA4B,SAC9B,EACA,IAAIuB,EAAY,C,uEKjFVC,EAAuB,CAC3BC,IAAK,UACL,YAAa,YACb,YAAa,YACb,YAAa,YACbC,MAAO,YACPC,MAAO,YACPC,MAAO,YACPC,IAAK,SACL,YAAa,WACb,YAAa,WACb,YAAa,WACbC,IAAK,SACL,YAAa,WACb,YAAa,WACb,YAAa,WACbC,KAAM,SACN,aAAc,WACd,aAAc,WACd,aAAc,UAChB,ECtBA,SAASC,EAAuBC,CAAI,EAElC,IAAMC,EAAe,kBACfC,EAAiB,oBACjBC,EAAc,sBACdC,EAAc,YAEdC,EAAsB,2BACtBC,EAAa,iBACbC,EAASP,EAAKxJ,KAAK,CARL,2CAQoBC,IAAI,AAAC+J,GAAU,EACrDC,MAAOC,SAASF,EAAKhK,KAAK,CAACyJ,EAAa,CAAC,EAAE,CAAE,IAC7CU,QAASD,SAASF,EAAKhK,KAAK,CAAC0J,EAAe,CAAC,EAAE,CAAE,IACjDrK,KAAM2K,EAAKhK,KAAK,CAAC2J,EAAY,CAAC,EAAE,CAChCS,UAAWJ,AAA+B,cAA/BA,EAAKhK,KAAK,CAAC2J,EAAY,CAAC,EAAE,CACrCU,KAAML,EAAKhK,KAAK,CAAC4J,EAAY,CAAC,EAAE,AAClC,IACA,GAAI,CAACG,EACH,MAAO,CACLA,OAAQ,EAAE,CACVO,QAAS,EAAE,AACb,EAEF,IAAMA,EAAUd,EAAKxJ,KAAK,CAhBJ,gCAgBqBC,IAAI,AAACsK,IAC9C,IAAMlL,EAAOkL,EAAOvK,KAAK,CAAC8J,EAAW,CAAC,EAAE,CAClCU,EAAUD,EAAOvK,KAAK,CAAC6J,GAAqBY,MAAM,CAAC,CAACC,EAAKC,KAC7D,GAAM,CAACC,EAAOP,EAAK,CAAGM,EAAOE,KAAK,CAAC,KAEnC,OADAH,CAAG,CAACE,EAAME,IAAI,GAAG,CAAGT,EAAKS,IAAI,GACtBJ,CACT,EAAG,CAAC,UACJ,AAAKF,EAGE,CAAEnL,KAAAA,EAAMmL,QAAAA,CAAQ,EAFd,IAGX,GAAG/G,OAAO,CAAC,CAAEpE,KAAAA,CAAI,CAAE,GAAK0K,EAAOgB,IAAI,CAAC,AAACd,GAAUA,EAAMI,IAAI,GAAKhL,KAAU,EAAE,CAC1E,MAAO,CACL0K,OAAAA,EACAO,QAAAA,CACF,CACF,CCtCA,IAAoCU,EAAhCC,GACFD,CADkCA,EAKjCC,GAAe,CAAC,EAJL,CAACD,EAAa,MAAS,CAAG,EAAE,CAAG,SAC3CA,CAAY,CAACA,EAAa,QAAW,CAAG,EAAE,CAAG,WAC7CA,CAAY,CAACA,EAAa,OAAU,CAAG,EAAE,CAAG,UACrCA,GCGT,IAAM9D,EAA+BtF,OAAOC,MAAM,CAAC,KACnD,OAAMqJ,EAKJ9D,YAAYhB,CAAO,CAAE,CAKnB,IAAI,CAAC+E,UAAU,CAAG,EAClB,GAAM,CAAErK,SAAAA,CAAQ,CAAE2B,OAAAA,CAAM,CAAE2I,OAAAA,CAAM,CAAEC,UAAAA,CAAS,CAAEhM,KAAAA,CAAI,CAAE,CAAG+G,EAItD,GAHA,IAAI,CAAC/G,IAAI,CAAGA,EACZ,IAAI,CAACyB,QAAQ,CAAGA,EAChB,IAAI,CAAC2B,MAAM,CAAGA,EACV3B,EAASsC,MAAM,GAAKX,EAAOW,MAAM,CAAE,CACrC,IAAMkI,EAAmB/B,EAAuBzI,EAASsC,MAAM,CAC/D,KAAI,CAACkI,gBAAgB,CAAGA,CAC1B,KAAO,CACL,IAAMC,EAAyBhC,EAAuB9G,EAAOW,MAAM,EAC7DoI,EAA2BjC,EAAuBzI,EAASsC,MAAM,CACvE,KAAI,CAACkI,gBAAgB,CAAGG,AC7B9B,SAAwCF,CAAsB,CAAEC,CAAwB,EACtF,IAAME,EAAgC,IAAIC,IACpCC,EAAkC,IAAID,IACtCrB,EAAU,IAAIiB,EAAuBjB,OAAO,IAAKkB,EAAyBlB,OAAO,CAAC,CAAC7G,MAAM,CAAC,AAAC8G,GAC/F,CAAImB,EAActJ,GAAG,CAACmI,EAAOlL,IAAI,IAGjCqM,EAAcG,GAAG,CAACtB,EAAOlL,IAAI,EACtB,KAUT,MAAO,CAAEiL,QAAAA,EAASP,OARH,IAAIwB,EAAuBxB,MAAM,IAAKyB,EAAyBzB,MAAM,CAAC,CAACtG,MAAM,CAAC,AAACwG,IAC5F,IAAMpB,EAAM,CAAC,EAAEoB,EAAM5K,IAAI,CAAC,CAAC,EAAE4K,EAAME,OAAO,CAAC,CAAC,OAC5C,CAAIyB,EAAgBxJ,GAAG,CAACyG,KAGxB+C,EAAgBC,GAAG,CAAChD,GACb,GACT,EACyB,CAC3B,EDU6D0C,EAAwBC,EACjF,CACA,IAAI,CAACJ,MAAM,CAAGA,GAAUU,AE/B5B,SAA4B,CAAE/B,OAAAA,CAAM,CAAE,EACpC,IAAMqB,EAAS,EAAE,CACjB,IAAK,IAAI9L,EAAI,EAAGA,EAAIyK,EAAOrI,MAAM,CAAEpC,IAAK,CACtC,IAAM2K,EAAQF,CAAM,CAACzK,EAAE,AACnB,EAAC8L,CAAM,CAACnB,EAAMA,KAAK,CAAC,EACtBmB,CAAAA,CAAM,CAACnB,EAAMA,KAAK,CAAC,CAAG,CAAC,GAEzBmB,CAAM,CAACnB,EAAMA,KAAK,CAAC,CAACA,EAAM5K,IAAI,CAAC,CAAG4K,EAAME,OAAO,AACjD,CACA,OAAOiB,CACT,EFqB+C,IAAI,CAACE,gBAAgB,EAChE,IAAI,CAACD,SAAS,CAAGA,GAAaU,AG9BlC,SAAiC,CAAEhC,OAAAA,CAAM,CAAE,EACzC,IAAMqB,EAAS,EAAE,CACjB,IAAK,IAAI9L,EAAI,EAAGA,EAAIyK,EAAOrI,MAAM,CAAEpC,IAAK,CACtC,IAAM2K,EAAQF,CAAM,CAACzK,EAAE,AACnB,EAAC8L,CAAM,CAACnB,EAAMA,KAAK,CAAC,EACtBmB,CAAAA,CAAM,CAACnB,EAAMA,KAAK,CAAC,CAAG,EAAE,AAAD,EAErBA,EAAMG,SAAS,CACjBgB,CAAM,CAACnB,EAAMA,KAAK,CAAC,CAACtK,IAAI,CAAC,CACvBwK,QAASF,EAAME,OAAO,CACtB6B,WAAYf,EAAYgB,MAAM,CAAGhB,EAAYiB,QAAQ,CACrDC,OAAQ,CACN9B,KAAM,SACR,CACF,GACSJ,AAAe,YAAfA,EAAMI,IAAI,CACnBe,CAAM,CAACnB,EAAMA,KAAK,CAAC,CAACtK,IAAI,CAAC,CACvBwK,QAASF,EAAME,OAAO,CACtB6B,WAAYf,EAAYiB,QAAQ,CAChCE,QAAS,CACP/B,KAAM,WACR,CACF,GACwB,eAAfJ,EAAMI,IAAI,EACnBe,CAAM,CAACnB,EAAMA,KAAK,CAAC,CAACtK,IAAI,CAAC,CACvBwK,QAASF,EAAME,OAAO,CACtB6B,WAAYf,EAAYiB,QAAQ,CAChCG,QAAS,CACPC,WAAY,QACZC,cAAe,KACfC,aAAc,EAChB,CACF,EAEJ,CACA,OAAOpB,CACT,EHN0D,IAAI,CAACE,gBAAgB,EAC3E,IAAI,CAACmB,wBAAwB,CAAM,IAAI,CAACrB,MAAM,CAAC,EAAE,EAAEsB,iBAAmB,KAAK,EAC3E,IAAI,CAACC,uBAAuB,CAAM,IAAI,CAACvB,MAAM,CAAC,EAAE,EAAEwB,gBAAkB,KAAK,EACzE,IAAI,CAACC,mBAAmB,EAC1B,CAEAA,qBAAsB,CACpB,GAAM,CAAEpK,OAAAA,CAAM,CAAE3B,SAAAA,CAAQ,CAAE,CAAG,IAAI,CAC3BgM,EAASrK,EAAOW,MAAM,CAAGtC,EAASsC,MAAM,CAAGX,EAAO6B,UAAU,CAAGxD,EAASwD,UAAU,AACxF,KAAI,CAAC6G,UAAU,CAAG,QAAmB2B,EAAQ,UAC/C,CACA,IAAIC,eAAgB,CAElB,OADA,IAAI,CAACvE,cAAc,EAAK,KAAI,CAACA,cAAc,CAAGwE,AHrBlD,SAAyC,CAAE5J,OAAAA,CAAM,CAAEkB,WAAAA,CAAU,CAAE,EAC7D,IAAMzD,EAAU,CAAC,EACXoM,EAAgB7J,EAAOY,OAAO,CAAC,CAAC,GAAG,EAAEM,EAAW,CAAC,EACvD,GAAI2I,AAAkB,KAAlBA,EAAsB,CACxB,IAAMC,EAAqB9J,EAAOY,OAAO,CAAC,KAAMiJ,GAChD,GAAIC,AAAuB,KAAvBA,EAA2B,KAGzBlN,EAFJ,IAAMmN,EAAwB/J,EAAOqD,SAAS,CAACwG,EAAeC,GACxDE,EAAc,0EAEpB,KAAO,AAAsD,OAArDpN,CAAAA,EAAQoN,EAAY5M,IAAI,CAAC2M,EAAqB,GAAa,CACjE,IAAME,EAAStE,CAAoB,CAAC/I,CAAK,CAAC,EAAE,CAAC,EAAI,SACjDa,CAAAA,CAAO,CAACb,CAAK,CAAC,EAAE,CAAC,CAAG,CAClBsN,SAAUpD,SAASlK,CAAK,CAAC,EAAE,CAAE,IAC7BqN,OAAAA,EACAE,OAAQ,QAA2BF,GAAQE,MAAM,CACjDC,OAAQ,EACRC,SAAU,GACVC,MAAO,CACT,CACF,CACF,CACF,CACA,OAAO7M,CACT,EGFkF,IAAI,CAAC4B,MAAM,GAClF,IAAI,CAAC+F,cAAc,AAC5B,CAEAD,SAAU,CACR,IAAI,CAAC8C,SAAS,CAAG,KACjB,IAAI,CAACD,MAAM,CAAG,KACd,IAAI,CAACE,gBAAgB,CAAG,KACxB,IAAI,CAACxK,QAAQ,CAAG,KAChB,IAAI,CAAC2B,MAAM,CAAG,IAChB,CAQA,OAAOmG,KAAKxC,CAAO,CAAE,CACnB,IAAMyC,EAAM,CAAC,EAAEzC,EAAQ3D,MAAM,CAACW,MAAM,CAAC,CAAC,EAAEgD,EAAQtF,QAAQ,CAACsC,MAAM,CAAC,CAAC,EAAEgD,EAAQtF,QAAQ,CAACwD,UAAU,CAAC,CAAC,EAAE8B,EAAQ3D,MAAM,CAAC6B,UAAU,CAAC,CAAC,CAI7H,MAHI,CAAC4C,CAAY,CAAC2B,EAAI,EACpB3B,CAAAA,CAAY,CAAC2B,EAAI,CAAG,IAAIqC,EAAW9E,EAAO,EAErCc,CAAY,CAAC2B,EAAI,AAC1B,CACF,C,wDIrEA,IAAM8E,EAAsB,CAC1BC,QAAS,CAAEC,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EACjDC,QAAS,CAAEF,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EACjDE,QAAS,CAAEH,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EACjDG,QAAS,CAAEJ,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EACjDI,SAAU,CAAEL,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAK,EACjDK,SAAU,CAAEN,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAK,EACjDM,SAAU,CAAEP,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAK,EACjDO,SAAU,CAAER,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAK,EACjDQ,SAAU,CAAET,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EAClDS,SAAU,CAAEV,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EAClDU,SAAU,CAAEX,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EAClDW,SAAU,CAAEZ,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EAClDY,UAAW,CAAEb,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAK,EAClDa,UAAW,CAAEd,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAK,EAClDc,UAAW,CAAEf,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAK,EAClDe,UAAW,CAAEhB,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAK,EAClDgB,UAAW,CAAEjB,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EACnDiB,UAAW,CAAElB,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EACnDkB,QAAS,CAAEnB,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EACjDmB,UAAW,CAAEpB,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EACnDoB,UAAW,CAAErB,KAAM,EAAGN,OAAQ,GAAIO,WAAY,EAAM,EACpDqB,UAAW,CAAEtB,KAAM,EAAGN,OAAQ,GAAIO,WAAY,EAAM,EACpDsB,OAAQ,CAAEvB,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EAChDuB,SAAU,CAAExB,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EAClDwB,SAAU,CAAEzB,KAAM,EAAGN,OAAQ,GAAIO,WAAY,EAAM,EACnDyB,SAAU,CAAE1B,KAAM,EAAGN,OAAQ,GAAIO,WAAY,EAAM,EACnD0B,OAAQ,CAAE3B,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EAChD2B,SAAU,CAAE5B,KAAM,EAAGN,OAAQ,EAAGO,WAAY,EAAM,EAClD4B,SAAU,CAAE7B,KAAM,EAAGN,OAAQ,GAAIO,WAAY,EAAM,EACnD6B,SAAU,CAAE9B,KAAM,EAAGN,OAAQ,GAAIO,WAAY,EAAM,CACrD,EACA,SAAS8B,EAA2BvC,CAAM,EACxC,OAAOM,CAAmB,CAACN,EAAO,EAAIM,EAAoBqB,OAAO,AACnE,C,4HC3BA,OAAMa,UAAe,GAAY,CAC/BzI,YAAYhB,CAAO,CAAE,CACnB,KAAK,GAOL,IAAI,CAAC0J,eAAe,CAAmBlO,OAAOC,MAAM,CAAC,MACrD,IAAI,CAACkO,gBAAgB,CAAG,EAAE,CAC1B,GAAI,CACFC,WAAAA,CAAU,CACVC,UAAAA,CAAS,CACTlG,OAAAA,CAAM,CACNmG,UAAAA,CAAS,CACTC,oBAAAA,CAAmB,CACnBC,SAAAA,CAAQ,CACT,CAAGhK,CACJ,KAAI,CAAC4J,UAAU,CAAGA,EAClB,IAAI,CAACC,SAAS,CAAGA,EACW,KAAK,IAA7BE,IACFA,EAAsB,EAClBH,GACFG,CAAAA,GAAuB,UAAmB,AAAnB,EACrBF,GACFE,CAAAA,GAAuB,SAAkB,AAAlB,GAE3B,IAAI,CAACA,mBAAmB,CAAGA,EAC3B,IAAME,EAAW,CAAC,EAIlB,GAHI,CAACH,GAAa,CAACnG,GACjBmG,CAAAA,EAAY,CAAC,GAEXA,GAAanG,EACf,MAAM,AAAIuG,MAAM,kDACX,GAAI,AAACN,IAAcjG,GAAWqG,GAE9B,GAAI,CAACJ,GAAcjG,GAAUqG,EAClC,IAAK,IAAM9Q,KAAK8Q,EACd,IAAK,IAAMG,KAAKH,CAAQ,CAAC9Q,EAAE,CAAE,CAC3B,IAAMkR,EAAcJ,CAAQ,CAAC9Q,EAAE,CAACiR,EAAE,AAClCF,CAAAA,CAAQ,CAACG,EAAY,CAAG,CACtBvG,MAAO3K,EACP6K,QAASoG,EACTlR,KAAMmR,CACR,CACF,MAEG,GAAIR,GAAcjG,GAAU,CAACqG,EAAU,CAC5C,IAAMK,EAAYT,EAAW1E,gBAAgB,CAACvB,MAAM,CACpDqG,EAAW,CAAC,EACZK,EAAUtQ,OAAO,CAAC,AAACuQ,IACjBN,CAAQ,CAACM,EAAKzG,KAAK,CAAC,CAAGmG,CAAQ,CAACM,EAAKzG,KAAK,CAAC,EAAI,CAAC,EAChDmG,CAAQ,CAACM,EAAKzG,KAAK,CAAC,CAACyG,EAAKvG,OAAO,CAAC,CAAGuG,EAAKrR,IAAI,CAC9CgR,CAAQ,CAACK,EAAKrR,IAAI,CAAC,CAAGqR,CACxB,EACF,MAAO,GAAIR,EAAW,CACpB,GAAKF,EAaE,CACL,IAAMS,EAAYT,EAAW1E,gBAAgB,CAACvB,MAAM,CACpDqG,EAAW,CAAC,EACZK,EAAUtQ,OAAO,CAAC,AAACuQ,IACjBN,CAAQ,CAACM,EAAKzG,KAAK,CAAC,CAAGmG,CAAQ,CAACM,EAAKzG,KAAK,CAAC,EAAI,CAAC,EAChDmG,CAAQ,CAACM,EAAKzG,KAAK,CAAC,CAACyG,EAAKvG,OAAO,CAAC,CAAGuG,EAAKrR,IAAI,CAC9CgR,CAAQ,CAACK,EAAKrR,IAAI,CAAC,CAAGqR,CACxB,EACF,KArBiB,CACfN,EAAW,CAAC,EACZrG,EAAS,CACP,GAAI,IAAI,GAAS,AACnB,EACA,IAAI,CAACgG,gBAAgB,CAACpQ,IAAI,CAACoK,CAAM,CAAC,GAAG,EACrC,IAAI4G,EAAW,EACf,IAAK,IAAMrR,KAAK4Q,EACdG,CAAQ,CAAC/Q,EAAE,CAAG,CAAE2K,MAAO,GAAIE,QAASwG,EAAUtR,KAAMC,CAAE,EACtD8Q,CAAQ,CAAC,GAAG,CAAGA,CAAQ,CAAC,GAAG,EAAI,CAAC,EAChCA,CAAQ,CAAC,GAAG,CAACO,EAAS,CAAGrR,EACzBqR,GAEJ,CAUA,IAAK,IAAMrR,KADXyK,EAAS,CAAC,EACMmG,EAAW,CAEzB,IAAIhM,EAAQgM,CAAS,CAAC5Q,EAAE,AACpB,EAAC4E,EAAMd,MAAM,EAAI,CAACc,EAAM0M,aAAa,EACvC1M,CAAAA,EAAQ,IAAI,GAAY,CAACA,EAAK,EAEhC,IAAMwM,EAAOL,CAAQ,CALR/Q,EAKc,CACvBoR,IACE,CAAC3G,CAAM,CAAC2G,EAAKzG,KAAK,CAAC,GACrBF,CAAM,CAAC2G,EAAKzG,KAAK,CAAC,CAAG,IAAI,GAAS,CAClC,IAAI,CAAC8F,gBAAgB,CAACpQ,IAAI,CAACoK,CAAM,CAAC2G,EAAKzG,KAAK,CAAC,GAE/CF,CAAM,CAAC2G,EAAKzG,KAAK,CAAC,CAAC4G,WAAW,CAAC3M,EAAOwM,EAAKvG,OAAO,EAEtD,CACF,OA3DE,MAAM,AAAImG,MAAM,sFA4DlB,KAAI,CAACvG,MAAM,CAAGA,EACd,IAAI,CAAC+F,eAAe,CAAGM,EACvB,IAAI,CAACF,SAAS,CAAG,IAAI,CAACY,sBAAsB,CAAC/G,EAAQsG,EACvD,CAQAU,YAAY1R,CAAI,CAAE2R,CAAU,CAAEC,CAAS,CAAE,CACvC,IAAIC,EAAIC,CACR,CAACD,CAAAA,EAAK,IAAI,CAACpB,eAAe,AAAD,CAAE,CAACkB,EAAW,EAAKE,CAAAA,CAAE,CAACF,EAAW,CAAG,CAAC,GAC9D,AAACG,CAAAA,EAAK,IAAI,CAACrB,eAAe,CAACkB,EAAW,AAAD,CAAE,CAACC,EAAU,EAAKE,CAAAA,CAAE,CAACF,EAAU,CAAG5R,CAAG,EACtE,CAAC,IAAI,CAAC0K,MAAM,CAACiH,EAAW,GAC1B,IAAI,CAACjH,MAAM,CAACiH,EAAW,CAAG,IAAI,GAAS,CACvC,IAAI,CAACjB,gBAAgB,CAACpQ,IAAI,CAAC,IAAI,CAACoK,MAAM,CAACiH,EAAW,EAEtD,CACAF,uBAAuB/G,CAAM,CAAEsG,CAAQ,CAAE,CACvC,IAAMe,EAAc,CAAC,EACrB,IAAK,IAAM9R,KAAK+Q,EAAU,CACxB,IAAMK,EAAOL,CAAQ,CAAC/Q,EAAE,CACxBsC,OAAOyP,cAAc,CAACD,EAAaV,EAAKrR,IAAI,CAAE,CAC5CiD,IAAAA,IACSyH,CAAM,CAAC2G,EAAKzG,KAAK,CAAC,CAACqH,WAAW,CAACZ,EAAKvG,OAAO,EAEpD9H,IAAI6B,CAAK,EACP6F,CAAM,CAAC2G,EAAKzG,KAAK,CAAC,CAAC4G,WAAW,CAAC3M,EAAOwM,EAAKvG,OAAO,CACpD,CACF,EACF,CACA,OAAOiH,CACT,CAOA7I,QAAQgJ,EAAkB,EAAK,CAAE,CAC/B,IAAI,CAACC,IAAI,CAAC,UAAW,IAAI,EACrBD,IACF,IAAI,CAACvB,UAAU,EAAEzH,UACjB,IAAI,CAAC0H,SAAS,EAAE1H,WAElB,IAAI,CAACyH,UAAU,CAAG,KAClB,IAAI,CAACC,SAAS,CAAG,KACjB,IAAI,CAACwB,kBAAkB,GACvB,IAAI,CAAC3B,eAAe,CAAG,KACvB,IAAI,CAACC,gBAAgB,CAAC5P,OAAO,CAAC,AAACuR,IAC7BA,EAAUnJ,OAAO,EACnB,GACA,IAAI,CAACwH,gBAAgB,CAAG,KACxB,IAAI,CAACG,SAAS,CAAG,KACjB,IAAI,CAACnG,MAAM,CAAG,IAChB,CACA,OAAOnB,KAAKxC,CAAO,CAAE,KAEf4J,EACAC,EAFJ,GAAM,CAAE0B,IAAAA,CAAG,CAAEjK,GAAAA,CAAE,CAAE,GAAGkK,EAAM,CAAGxL,EAS7B,OANIuL,GACF3B,CAAAA,EAAa,QAAe,CAAC2B,EAAG,EAE9BjK,GACFuI,CAAAA,EAAY,QAAc,CAACvI,EAAE,EAExB,IAAImI,EAAO,CAChBG,WAAAA,EACAC,UAAAA,EACA,GAAG2B,CAAI,AACT,EACF,CACF,C,uEC7KM,EAAgB,MAAMC,EAM1BzK,YAAY0K,CAAiB,CAAE1L,CAAO,CAAE,CAEtC,IAAI,CAAC2L,QAAQ,CAAG,EAEhB,IAAI,CAACC,GAAG,CAAG,QAAI,WAEf,IAAI,CAACpB,aAAa,CAAG,eAErB,IAAI,CAACqB,WAAW,CAAG,QAAI,YAEvB,IAAI,CAACC,cAAc,CAAG,GAMtB,IAAI,CAACC,QAAQ,CAAG,EAEhB,IAAI,CAACC,SAAS,CAAG,GACjBhM,EAAU,CAAE,GAAGyL,EAAcxK,cAAc,CAAE,GAAGjB,CAAO,AAAC,EACxD,IAAI,CAAC0L,iBAAiB,CAAGA,EACzB,IAAMO,EAAW,CAAC,EAClB,IAAK,IAAM/S,KAAKwS,EAAmB,CACjC,IAAMQ,EAAcR,CAAiB,CAACxS,EAAE,AACxCgT,CAAAA,EAAYjT,IAAI,CAAGC,EACnBgT,EAAYzE,IAAI,CAAGyE,EAAYzE,IAAI,EAAI,EACvCyE,EAAYpO,KAAK,EAAKoO,CAAAA,EAAYpO,KAAK,CAAGqO,ACpChD,SAAgClI,CAAI,CAAEwD,CAAI,EACxC,OAAQxD,GACN,IAAK,MACH,OAAO,CACT,KAAK,YACH,OAAO,IAAImI,aAAa,EAAI3E,EAC9B,KAAK,YACH,OAAO,IAAI2E,aAAa,EAAI3E,EAC9B,KAAK,YACH,OAAO,IAAI2E,aAAa,EAAI3E,EAC9B,KAAK,cACH,OAAO,IAAI2E,aAAa,CACtB,EACA,EACA,EACA,EACD,CACH,KAAK,cACH,OAAO,IAAIA,aAAa,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,CACH,KAAK,cACH,OAAO,IAAIA,aAAa,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,CACL,CACA,OAAO,IACT,EDduEF,EAAYjI,IAAI,CAAEiI,EAAYzE,IAAI,GACnGwE,CAAQ,CAAC/S,EAAE,CAAGgT,EAAYpO,KAAK,AACjC,CACA,IAAI,CAACmO,QAAQ,CAAGA,EAChB,IAAI,CAACF,QAAQ,CAAG,EAChB,IAAI,CAACM,GAAG,CAAGrM,EAAQqM,GAAG,CACtB,IAAI,CAACC,QAAQ,CAAGtM,EAAQsM,QAAQ,CAChC,IAAI,CAACC,UAAU,CAAG,QAAmB/Q,OAAOuG,IAAI,CAACkK,GAAUpS,GAAG,CAC5D,AAACX,GAAM,CAAC,EAAEA,EAAE,CAAC,EAAEwS,CAAiB,CAACxS,EAAE,CAAC+K,IAAI,CAAC,CAAC,EAC1ClJ,IAAI,CAAC,KAAM,gBACf,CAEAyR,QAAS,CACP,IAAI,CAACT,QAAQ,EACf,CACF,CAEA,GAAc9K,cAAc,CAAG,CAE7BoL,IAAK,GAELC,SAAU,EACZ,EACA,IAAIG,EAAe,C,wDE3DnB,IAAMC,EAAe,CACnBC,OAAQ,EACRlH,IAAK,EACLmH,SAAU,EACVC,OAAQ,EACRC,QAAS,EACTC,MAAO,EACP,aAAc,EACd,UAAW,EACX,aAAc,CAChB,EAOMC,EAAS,MAAMA,EACnBhM,aAAc,CACZ,IAAI,CAACsJ,IAAI,CAAG,EACZ,IAAI,CAAC2C,SAAS,CAAG,SACjB,IAAI,CAACC,aAAa,CAAG,EACrB,IAAI,CAACC,KAAK,CAAG,GACb,IAAI,CAACC,SAAS,CAAG,EACnB,CAKA,IAAID,OAAQ,CACV,MAAO,CAAC,CAAE,CAAY,EAAZ,IAAI,CAAC7C,IAAI,AAAY,CACjC,CACA,IAAI6C,MAAMrP,CAAK,CAAE,CACX,CAAC,CAAE,CAAY,EAAZ,IAAI,CAACwM,IAAI,AAAY,IAAOxM,GACjC,KAAI,CAACwM,IAAI,EAAI,CAAS,CAE1B,CAKA,IAAI+C,SAAU,CACZ,MAAO,CAAC,CAAE,CAAY,EAAZ,IAAI,CAAC/C,IAAI,AAAa,CAClC,CACA,IAAI+C,QAAQvP,CAAK,CAAE,CACb,CAAC,CAAE,CAAY,EAAZ,IAAI,CAACwM,IAAI,AAAa,IAAOxM,GAClC,KAAI,CAACwM,IAAI,EAAI,CAAU,CAE3B,CAEA,IAAIgD,SAASxP,CAAK,CAAE,CAClB,GAAIA,AAAU,SAAVA,EAAkB,CACpB,IAAI,CAACyP,OAAO,CAAG,GACf,MACF,CACA,IAAI,CAACA,OAAO,CAAG,GACf,IAAI,CAACC,kBAAkB,CAAG1P,AAAU,UAAVA,CAC5B,CACA,IAAIwP,UAAW,QACb,AAAK,IAAI,CAACC,OAAO,CAGV,IAAI,CAACC,kBAAkB,CAAG,QAAU,OAFlC,MAGX,CAKA,IAAID,SAAU,CACZ,MAAO,CAAC,CAAE,CAAY,EAAZ,IAAI,CAACjD,IAAI,AAAc,CACnC,CACA,IAAIiD,QAAQzP,CAAK,CAAE,CACb,CAAC,CAAE,CAAY,EAAZ,IAAI,CAACwM,IAAI,AAAc,IAAOxM,GACnC,KAAI,CAACwM,IAAI,EAAI,CAAW,CAE5B,CAKA,IAAImD,WAAY,CACd,MAAO,CAAC,CAAE,CAAY,EAAZ,IAAI,CAACnD,IAAI,AAAiB,CACtC,CACA,IAAImD,UAAU3P,CAAK,CAAE,CACf,CAAC,CAAE,CAAY,EAAZ,IAAI,CAACwM,IAAI,AAAiB,IAAOxM,GACtC,KAAI,CAACwM,IAAI,EAAI,CAAc,CAE/B,CAKA,IAAI8C,WAAY,CACd,MAAO,CAAC,CAAE,CAAY,GAAZ,IAAI,CAAC9C,IAAI,AAAiB,CACtC,CACA,IAAI8C,UAAUtP,CAAK,CAAE,CACf,CAAC,CAAE,CAAY,GAAZ,IAAI,CAACwM,IAAI,AAAiB,IAAOxM,GACtC,KAAI,CAACwM,IAAI,EAAI,EAAc,CAE/B,CAKA,IAAIkD,oBAAqB,CACvB,MAAO,CAAC,CAAE,CAAY,GAAZ,IAAI,CAAClD,IAAI,AAAc,CACnC,CACA,IAAIkD,mBAAmB1P,CAAK,CAAE,CACxB,CAAC,CAAE,CAAY,GAAZ,IAAI,CAACwM,IAAI,AAAc,IAAOxM,GACnC,KAAI,CAACwM,IAAI,EAAI,EAAW,CAE5B,CAMA,IAAI2C,WAAY,CACd,OAAO,IAAI,CAACS,UAAU,AACxB,CACA,IAAIT,UAAUnP,CAAK,CAAE,CACnB,IAAI,CAACqP,KAAK,CAAGrP,AAAU,SAAVA,EACb,IAAI,CAAC4P,UAAU,CAAG5P,EAClB,IAAI,CAAC6P,YAAY,CAAGjB,CAAY,CAAC5O,EAAM,EAAI,CAC7C,CAKA,IAAIoP,eAAgB,CAClB,OAAO,IAAI,CAACU,cAAc,AAC5B,CACA,IAAIV,cAAcpP,CAAK,CAAE,CACvB,IAAI,CAACuP,OAAO,CAAG,CAAC,CAACvP,EACjB,IAAI,CAAC8P,cAAc,CAAG9P,CACxB,CACA+P,UAAW,CACT,MAAO,CAAC,8BAA8B,EAAE,IAAI,CAACZ,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAACO,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAACD,OAAO,CAAC,WAAW,EAAE,IAAI,CAACH,SAAS,CAAC,eAAe,EAAE,IAAI,CAACF,aAAa,CAAC,CAAC,CAAC,AACjM,CAKA,OAAOY,OAAQ,CACb,IAAMC,EAAQ,IAAIf,EAGlB,OAFAe,EAAMN,SAAS,CAAG,GAClBM,EAAMZ,KAAK,CAAG,GACPY,CACT,CACF,CACAf,CAAAA,EAAOgB,SAAS,CAAGhB,EAAOc,KAAK,GAC/B,IAAIG,EAAQjB,C,6FCnJZ,IAAIkB,EAAQ,EAuGNC,EAAc,IAtGpB,MAAMC,EAKJpN,YAAYqN,CAAc,CAAE,CAC1B,IAAI,CAACC,YAAY,CAAmB9S,OAAOC,MAAM,CAAC,MAClD,IAAI,CAAC8S,YAAY,CAAG,CAAC,EACrB,IAAI,CAACF,cAAc,CAAGA,GAAkB,CAAC,EACzC,IAAI,CAACG,gBAAgB,CAAG,EAC1B,CAOAC,cAAcC,CAAU,CAAEC,CAAW,CAAEC,CAAS,CAAE,CAChD,IAAMC,EAAgB,IAAI,GAAa,CAAC,CACtC,GAAG,IAAI,CAACR,cAAc,CACtBS,MAAOJ,EACPK,OAAQJ,EACRK,WAAY,EACZJ,UAAAA,EACAK,mBAAoB,EACtB,GACA,OAAO,IAAI,GAAO,CAAC,CACjBjS,OAAQ6R,EACRK,MAAO,CAAC,YAAY,EAAEhB,IAAQ,CAAC,AACjC,EACF,CASAiB,kBAAkBC,CAAU,CAAEC,CAAW,CAAEL,EAAa,CAAC,CAAEJ,CAAS,CAAE,CACpE,IAAIU,EAAWC,KAAKC,IAAI,CAACJ,EAAaJ,EAAa,MAC/CS,EAAYF,KAAKC,IAAI,CAACH,EAAcL,EAAa,MACrDM,EAAW,SAASA,GAEpB,IAAM7M,EAAM,AAAC6M,CAAAA,GAAY,EAAC,EAAMG,CAAAA,AADhCA,CAAAA,EAAY,SAASA,EAAS,GACe,GAAMb,CAAAA,EAAY,EAAI,EAC/D,EAAC,IAAI,CAACL,YAAY,CAAC9L,EAAI,EACzB,KAAI,CAAC8L,YAAY,CAAC9L,EAAI,CAAG,EAAE,AAAD,EAE5B,IAAIwD,EAAU,IAAI,CAACsI,YAAY,CAAC9L,EAAI,CAACiN,GAAG,GAexC,MAdI,CAACzJ,GACHA,CAAAA,EAAU,IAAI,CAACwI,aAAa,CAACa,EAAUG,EAAWb,EAAS,EAE7D3I,EAAQjJ,MAAM,CAAC2S,WAAW,CAAGX,EAC7B/I,EAAQjJ,MAAM,CAAC8R,KAAK,CAAGQ,EAAWN,EAClC/I,EAAQjJ,MAAM,CAAC+R,MAAM,CAAGU,EAAYT,EACpC/I,EAAQjJ,MAAM,CAAC0R,UAAU,CAAGY,EAC5BrJ,EAAQjJ,MAAM,CAAC2R,WAAW,CAAGc,EAC7BxJ,EAAQ2J,KAAK,CAACC,CAAC,CAAG,EAClB5J,EAAQ2J,KAAK,CAACE,CAAC,CAAG,EAClB7J,EAAQ2J,KAAK,CAACd,KAAK,CAAGM,EACtBnJ,EAAQ2J,KAAK,CAACb,MAAM,CAAGM,EACvBpJ,EAAQ8J,SAAS,GACjB,IAAI,CAACzB,YAAY,CAACrI,EAAQ2F,GAAG,CAAC,CAAGnJ,EAC1BwD,CACT,CAOA+J,mBAAmB/J,CAAO,CAAE2I,EAAY,EAAK,CAAE,CAC7C,IAAM5R,EAASiJ,EAAQjJ,MAAM,CAC7B,OAAO,IAAI,CAACmS,iBAAiB,CAAClJ,EAAQ6I,KAAK,CAAE7I,EAAQ8I,MAAM,CAAE/R,EAAO2S,WAAW,CAAEf,EACnF,CAKAqB,cAAcC,CAAa,CAAE,CAC3B,IAAMzN,EAAM,IAAI,CAAC6L,YAAY,CAAC4B,EAActE,GAAG,CAAC,CAChD,IAAI,CAAC2C,YAAY,CAAC9L,EAAI,CAAClJ,IAAI,CAAC2W,EAC9B,CAKAC,MAAMC,CAAe,CAAE,CAErB,GADAA,EAAkBA,AAAoB,KAApBA,EAEhB,IAAK,IAAMlX,KAAK,IAAI,CAACqV,YAAY,CAAE,CACjC,IAAM8B,EAAW,IAAI,CAAC9B,YAAY,CAACrV,EAAE,CACrC,GAAImX,EACF,IAAK,IAAIlG,EAAI,EAAGA,EAAIkG,EAAS/U,MAAM,CAAE6O,IACnCkG,CAAQ,CAAClG,EAAE,CAAChI,OAAO,CAAC,GAG1B,CAEF,IAAI,CAACoM,YAAY,CAAG,CAAC,CACvB,CACF,C,wDC1GA,IAAM+B,EAA2B9U,OAAOC,MAAM,CAAC,MACzC8U,EAAyB/U,OAAOC,MAAM,CAAC,MAC7C,SAAS+U,EAAmB1S,CAAK,CAAE2S,CAAO,EACxC,IAAIC,EAAKH,CAAM,CAACzS,EAAM,CAOtB,OANW,KAAK,IAAZ4S,IACwB,KAAK,IAA3BJ,CAAQ,CAACG,EAAQ,EACnBH,CAAAA,CAAQ,CAACG,EAAQ,CAAG,GAEtBF,CAAM,CAACzS,EAAM,CAAG4S,EAAKJ,CAAQ,CAACG,EAAQ,IAEjCC,CACT,C,wDCXA,IAAqCC,EAAjCC,GACFD,CADmCA,EAKlCC,GAAgB,CAAC,EAJL,CAACD,EAAc,KAAQ,CAAG,EAAE,CAAG,QAC5CA,CAAa,CAACA,EAAc,MAAS,CAAG,EAAE,CAAG,SAC7CA,CAAa,CAACA,EAAc,IAAO,CAAG,EAAE,CAAG,OACpCA,E,wDCET,SAASE,EAAoBC,CAAI,CAAE5W,CAAG,CAAEkN,CAAM,EAC5C,IAAM2J,EAAQ,AAACD,CAAAA,GAAQ,GAAK,GAAE,EAAK,GACnC5W,CAAAA,CAAG,CAACkN,IAAS,CAAG,AAAC0J,CAAAA,AAAO,IAAPA,CAAS,EAAK,IAAMC,EACrC7W,CAAG,CAACkN,IAAS,CAAG,AAAC0J,CAAAA,GAAQ,EAAI,GAAE,EAAK,IAAMC,EAC1C7W,CAAG,CAACkN,IAAS,CAAG,AAAC0J,CAAAA,GAAQ,GAAK,GAAE,EAAK,IAAMC,EAC3C7W,CAAG,CAACkN,IAAS,CAAG2J,CAClB,C,uDCZA,OAAMC,EACJhQ,aAAc,CAEZ,IAAI,CAACiQ,UAAU,CAAG,EAClB,IAAI,CAACC,SAAS,CAAG,EACjB,IAAI,CAAChK,QAAQ,CAAG,EAEhB,IAAI,CAACiK,OAAO,CAAG,KACf,IAAI,CAACC,KAAK,CAAG,KACb,IAAI,CAACC,WAAW,CAAG,CACrB,CACA,IAAIpE,WAAY,CACd,OAAO,IAAI,CAACqE,UAAU,CAACC,cAAc,AACvC,CACAC,eAAeC,CAAW,CAAEC,CAAU,CAAEhU,CAAK,CAAEiU,CAAS,CAAE,CACxD,IAAMC,EAAS,IAAI,CAACN,UAAU,CACxBrL,EAAU,IAAI,CAACA,OAAO,CACtB4L,EAAKD,EAAOE,cAAc,CAC1B3V,EAAI0V,EAAG1V,CAAC,CACRC,EAAIyV,EAAGzV,CAAC,CACR2V,EAAIF,EAAGE,CAAC,CACRC,EAAIH,EAAGG,CAAC,CACRC,EAAKJ,EAAGI,EAAE,CACVC,EAAKL,EAAGK,EAAE,CACVC,EAAS,IAAI,CAACA,MAAM,CACpBC,EAAKD,EAAOE,IAAI,CAChBC,EAAKH,EAAOI,IAAI,CAChBC,EAAKL,EAAOM,IAAI,CAChBC,EAAKP,EAAOQ,IAAI,CAChBC,EAAM3M,EAAQ2M,GAAG,CACjBC,EAAOjB,EAAOkB,eAAe,CAC7BC,EAAoBpB,GAAa,GAAK,AAAmB,MAAnB,IAAI,CAACN,WAAW,AAC5DI,CAAAA,CAAW,CAAC/T,EAAQ,EAAE,CAAGvB,EAAImW,EAAKP,EAAIW,EAAKT,EAC3CR,CAAW,CAAC/T,EAAQ,EAAE,CAAGsU,EAAIU,EAAKtW,EAAIkW,EAAKJ,EAC3CT,CAAW,CAAC/T,EAAQ,EAAE,CAAGkV,EAAII,EAAE,CAC/BvB,CAAW,CAAC/T,EAAQ,EAAE,CAAGkV,EAAIK,EAAE,CAC/BvB,CAAU,CAAChU,EAAQ,EAAE,CAAGmV,EACxBnB,CAAU,CAAChU,EAAQ,EAAE,CAAGqV,EACxBtB,CAAW,CAAC/T,EAAQ,EAAE,CAAGvB,EAAIiW,EAAKL,EAAIW,EAAKT,EAC3CR,CAAW,CAAC/T,EAAQ,EAAE,CAAGsU,EAAIU,EAAKtW,EAAIgW,EAAKF,EAC3CT,CAAW,CAAC/T,EAAQ,EAAE,CAAGkV,EAAIM,EAAE,CAC/BzB,CAAW,CAAC/T,EAAQ,EAAE,CAAGkV,EAAIO,EAAE,CAC/BzB,CAAU,CAAChU,EAAQ,GAAG,CAAGmV,EACzBnB,CAAU,CAAChU,EAAQ,GAAG,CAAGqV,EACzBtB,CAAW,CAAC/T,EAAQ,GAAG,CAAGvB,EAAIiW,EAAKL,EAAIS,EAAKP,EAC5CR,CAAW,CAAC/T,EAAQ,GAAG,CAAGsU,EAAIQ,EAAKpW,EAAIgW,EAAKF,EAC5CT,CAAW,CAAC/T,EAAQ,GAAG,CAAGkV,EAAIQ,EAAE,CAChC3B,CAAW,CAAC/T,EAAQ,GAAG,CAAGkV,EAAIS,EAAE,CAChC3B,CAAU,CAAChU,EAAQ,GAAG,CAAGmV,EACzBnB,CAAU,CAAChU,EAAQ,GAAG,CAAGqV,EACzBtB,CAAW,CAAC/T,EAAQ,GAAG,CAAGvB,EAAImW,EAAKP,EAAIS,EAAKP,EAC5CR,CAAW,CAAC/T,EAAQ,GAAG,CAAGsU,EAAIQ,EAAKpW,EAAIkW,EAAKJ,EAC5CT,CAAW,CAAC/T,EAAQ,GAAG,CAAGkV,EAAIU,EAAE,CAChC7B,CAAW,CAAC/T,EAAQ,GAAG,CAAGkV,EAAIW,EAAE,CAChC7B,CAAU,CAAChU,EAAQ,GAAG,CAAGmV,EACzBnB,CAAU,CAAChU,EAAQ,GAAG,CAAGqV,CAC3B,CACAS,UAAUC,CAAW,CAAE/V,CAAK,CAAEgW,CAAa,CAAE,CAC3CD,CAAW,CAAC/V,EAAM,CAAGgW,EAAgB,EACrCD,CAAW,CAAC/V,EAAQ,EAAE,CAAGgW,EAAgB,EACzCD,CAAW,CAAC/V,EAAQ,EAAE,CAAGgW,EAAgB,EACzCD,CAAW,CAAC/V,EAAQ,EAAE,CAAGgW,EAAgB,EACzCD,CAAW,CAAC/V,EAAQ,EAAE,CAAGgW,EAAgB,EACzCD,CAAW,CAAC/V,EAAQ,EAAE,CAAGgW,EAAgB,CAC3C,CACAC,OAAQ,CACN,IAAI,CAACrC,UAAU,CAAG,KAClB,IAAI,CAACrL,OAAO,CAAG,KACf,IAAI,CAACkL,OAAO,CAAG,KACf,IAAI,CAACC,KAAK,CAAG,KACb,IAAI,CAACe,MAAM,CAAG,IAChB,CACF,C"}
|