@codexo/exojs 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/README.md +14 -14
  3. package/dist/esm/core/Application.d.ts +25 -6
  4. package/dist/esm/core/Application.js +42 -8
  5. package/dist/esm/core/Application.js.map +1 -1
  6. package/dist/esm/core/Perf.d.ts +23 -0
  7. package/dist/esm/core/Perf.js +49 -0
  8. package/dist/esm/core/Perf.js.map +1 -0
  9. package/dist/esm/core/Scene.d.ts +8 -8
  10. package/dist/esm/core/Scene.js +7 -7
  11. package/dist/esm/core/Scene.js.map +1 -1
  12. package/dist/esm/core/SceneManager.js +2 -2
  13. package/dist/esm/core/SceneManager.js.map +1 -1
  14. package/dist/esm/core/SceneNode.d.ts +0 -3
  15. package/dist/esm/core/SceneNode.js +0 -9
  16. package/dist/esm/core/SceneNode.js.map +1 -1
  17. package/dist/esm/core/capabilities.d.ts +2 -0
  18. package/dist/esm/core/capabilities.js +15 -0
  19. package/dist/esm/core/capabilities.js.map +1 -1
  20. package/dist/esm/core/dev.d.ts +21 -0
  21. package/dist/esm/core/dev.js +18 -0
  22. package/dist/esm/core/dev.js.map +1 -0
  23. package/dist/esm/core/index.d.ts +1 -0
  24. package/dist/esm/core/types.d.ts +1 -1
  25. package/dist/esm/core/utils.d.ts +12 -0
  26. package/dist/esm/core/utils.js +18 -1
  27. package/dist/esm/core/utils.js.map +1 -1
  28. package/dist/esm/index.js +14 -3
  29. package/dist/esm/index.js.map +1 -1
  30. package/dist/esm/particles/ParticleSystem.d.ts +8 -5
  31. package/dist/esm/particles/ParticleSystem.js +9 -5
  32. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  33. package/dist/esm/particles/distributions/{Gradient.d.ts → ColorGradient.d.ts} +5 -5
  34. package/dist/esm/particles/distributions/{Gradient.js → ColorGradient.js} +5 -5
  35. package/dist/esm/particles/distributions/ColorGradient.js.map +1 -0
  36. package/dist/esm/particles/distributions/Distribution.d.ts +2 -2
  37. package/dist/esm/particles/distributions/index.d.ts +2 -2
  38. package/dist/esm/particles/gpu/ParticleGpuState.js +1 -1
  39. package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +2 -2
  40. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +5 -1
  41. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -1
  42. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +3 -3
  43. package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
  44. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +3 -3
  45. package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
  46. package/dist/esm/particles/modules/UpdateModule.d.ts +2 -2
  47. package/dist/esm/particles/modules/UpdateModule.js +1 -1
  48. package/dist/esm/particles/modules/WgslContribution.d.ts +2 -2
  49. package/dist/esm/rendering/Camera.d.ts +33 -0
  50. package/dist/esm/rendering/Camera.js +38 -0
  51. package/dist/esm/rendering/Camera.js.map +1 -0
  52. package/dist/esm/rendering/Container.d.ts +5 -24
  53. package/dist/esm/rendering/Container.js +8 -71
  54. package/dist/esm/rendering/Container.js.map +1 -1
  55. package/dist/esm/rendering/Drawable.d.ts +8 -10
  56. package/dist/esm/rendering/Drawable.js +12 -20
  57. package/dist/esm/rendering/Drawable.js.map +1 -1
  58. package/dist/esm/rendering/RenderBackend.d.ts +18 -0
  59. package/dist/esm/rendering/RenderNode.d.ts +81 -8
  60. package/dist/esm/rendering/RenderNode.js +121 -144
  61. package/dist/esm/rendering/RenderNode.js.map +1 -1
  62. package/dist/esm/rendering/RenderTarget.d.ts +13 -0
  63. package/dist/esm/rendering/RenderTarget.js +13 -0
  64. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  65. package/dist/esm/rendering/RenderTargetPass.js +17 -0
  66. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  67. package/dist/esm/rendering/RenderingContext.d.ts +87 -0
  68. package/dist/esm/rendering/RenderingContext.js +157 -0
  69. package/dist/esm/rendering/RenderingContext.js.map +1 -0
  70. package/dist/esm/rendering/TransformBuffer.d.ts +82 -0
  71. package/dist/esm/rendering/TransformBuffer.js +180 -0
  72. package/dist/esm/rendering/TransformBuffer.js.map +1 -0
  73. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -12
  74. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  75. package/dist/esm/rendering/geometry/Geometry.d.ts +40 -0
  76. package/dist/esm/rendering/geometry/Geometry.js +228 -0
  77. package/dist/esm/rendering/geometry/Geometry.js.map +1 -0
  78. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +32 -0
  79. package/dist/esm/rendering/geometry/QuadGeometry.d.ts +5 -0
  80. package/dist/esm/rendering/gradient/Gradient.d.ts +67 -0
  81. package/dist/esm/rendering/gradient/Gradient.js +160 -0
  82. package/dist/esm/rendering/gradient/Gradient.js.map +1 -0
  83. package/dist/esm/rendering/gradient/LinearGradient.d.ts +18 -0
  84. package/dist/esm/rendering/gradient/LinearGradient.js +49 -0
  85. package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -0
  86. package/dist/esm/rendering/gradient/RadialGradient.d.ts +18 -0
  87. package/dist/esm/rendering/gradient/RadialGradient.js +44 -0
  88. package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -0
  89. package/dist/esm/rendering/index.d.ts +16 -2
  90. package/dist/esm/rendering/material/Material.d.ts +114 -0
  91. package/dist/esm/rendering/material/Material.js +111 -0
  92. package/dist/esm/rendering/material/Material.js.map +1 -0
  93. package/dist/esm/rendering/material/MaterialKey.d.ts +18 -0
  94. package/dist/esm/rendering/material/MaterialKey.js +82 -0
  95. package/dist/esm/rendering/material/MaterialKey.js.map +1 -0
  96. package/dist/esm/rendering/material/MeshMaterial.d.ts +16 -0
  97. package/dist/esm/rendering/material/MeshMaterial.js +21 -0
  98. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -0
  99. package/dist/esm/rendering/{mesh/MeshShader.d.ts → material/ShaderSource.d.ts} +29 -62
  100. package/dist/esm/rendering/{mesh/MeshShader.js → material/ShaderSource.js} +35 -62
  101. package/dist/esm/rendering/material/ShaderSource.js.map +1 -0
  102. package/dist/esm/rendering/material/SpriteMaterial.d.ts +15 -0
  103. package/dist/esm/rendering/material/SpriteMaterial.js +20 -0
  104. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -0
  105. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -12
  106. package/dist/esm/rendering/mesh/Mesh.js +122 -3
  107. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  108. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +63 -0
  109. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +48 -0
  110. package/dist/esm/rendering/pass/RenderPassDescriptor.js +16 -0
  111. package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -0
  112. package/dist/esm/rendering/plan/RenderCommand.d.ts +86 -0
  113. package/dist/esm/rendering/plan/RenderCommand.js +127 -0
  114. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -0
  115. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +10 -0
  116. package/dist/esm/rendering/plan/RenderEffectExecutor.js +159 -0
  117. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -0
  118. package/dist/esm/rendering/plan/RenderInstruction.d.ts +51 -0
  119. package/dist/esm/rendering/plan/RenderInstruction.js +45 -0
  120. package/dist/esm/rendering/plan/RenderInstruction.js.map +1 -0
  121. package/dist/esm/rendering/plan/RenderPlan.d.ts +23 -0
  122. package/dist/esm/rendering/plan/RenderPlan.js +12 -0
  123. package/dist/esm/rendering/plan/RenderPlan.js.map +1 -0
  124. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +31 -0
  125. package/dist/esm/rendering/plan/RenderPlanBuilder.js +242 -0
  126. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -0
  127. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +10 -0
  128. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +180 -0
  129. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -0
  130. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +13 -0
  131. package/dist/esm/rendering/plan/RenderPlanPlayer.js +107 -0
  132. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -0
  133. package/dist/esm/rendering/plan/RenderScope.d.ts +70 -0
  134. package/dist/esm/rendering/plan/RenderScope.js +16 -0
  135. package/dist/esm/rendering/plan/RenderScope.js.map +1 -0
  136. package/dist/esm/rendering/plan/playRenderTree.d.ts +4 -0
  137. package/dist/esm/rendering/plan/playRenderTree.js +19 -0
  138. package/dist/esm/rendering/plan/playRenderTree.js.map +1 -0
  139. package/dist/esm/rendering/primitives/Graphics.d.ts +70 -5
  140. package/dist/esm/rendering/primitives/Graphics.js +172 -14
  141. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  142. package/dist/esm/rendering/sprite/Sprite.d.ts +22 -1
  143. package/dist/esm/rendering/sprite/Sprite.js +33 -2
  144. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  145. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +41 -0
  146. package/dist/esm/rendering/sprite/spriteMaterialSources.js +149 -0
  147. package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -0
  148. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  149. package/dist/esm/rendering/text/BitmapText.js +8 -1
  150. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  151. package/dist/esm/rendering/text/BmFont.js +3 -0
  152. package/dist/esm/rendering/text/BmFont.js.map +1 -1
  153. package/dist/esm/rendering/text/GlyphSdf.d.ts +14 -0
  154. package/dist/esm/rendering/text/GlyphSdf.js +41 -11
  155. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  156. package/dist/esm/rendering/text/TextStyle.d.ts +6 -1
  157. package/dist/esm/rendering/text/TextStyle.js +1 -1
  158. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  159. package/dist/esm/rendering/texture/DataTexture.d.ts +5 -0
  160. package/dist/esm/rendering/texture/DataTexture.js +7 -0
  161. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  162. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  163. package/dist/esm/rendering/video/Video.d.ts +3 -7
  164. package/dist/esm/rendering/video/Video.js +3 -8
  165. package/dist/esm/rendering/video/Video.js.map +1 -1
  166. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +62 -0
  167. package/dist/esm/rendering/webgl2/WebGl2Backend.js +352 -21
  168. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  169. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +22 -2
  170. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +404 -112
  171. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  172. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +8 -0
  173. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +8 -0
  174. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
  175. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +57 -0
  176. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +79 -0
  177. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -0
  178. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +14 -0
  179. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +257 -78
  180. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  181. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +34 -0
  182. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +169 -0
  183. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -0
  184. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +7 -0
  185. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +11 -0
  186. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  187. package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +1 -1
  188. package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +1 -1
  189. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
  190. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js +4 -0
  191. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js.map +1 -0
  192. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js +4 -0
  193. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js.map +1 -0
  194. package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +1 -1
  195. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +63 -0
  196. package/dist/esm/rendering/webgpu/WebGpuBackend.js +180 -19
  197. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  198. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +22 -17
  199. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  200. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +24 -0
  201. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +524 -98
  202. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  203. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +7 -0
  204. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +24 -22
  205. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  206. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +141 -0
  207. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +270 -0
  208. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -0
  209. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +25 -1
  210. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +430 -76
  211. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  212. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +57 -0
  213. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +257 -0
  214. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -0
  215. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +14 -0
  216. package/dist/esm/rendering/webgpu/WebGpuStencilState.js +36 -0
  217. package/dist/esm/rendering/webgpu/WebGpuStencilState.js.map +1 -0
  218. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +7 -0
  219. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +30 -19
  220. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  221. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +48 -0
  222. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +103 -0
  223. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -0
  224. package/dist/esm/resources/JsonStore.d.ts +18 -0
  225. package/dist/esm/resources/JsonStore.js +62 -0
  226. package/dist/esm/resources/JsonStore.js.map +1 -0
  227. package/dist/esm/resources/Loader.js +1 -1
  228. package/dist/esm/resources/Loader.js.map +1 -1
  229. package/dist/esm/resources/factories/ImageFactory.d.ts +14 -8
  230. package/dist/esm/resources/factories/ImageFactory.js +13 -6
  231. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  232. package/dist/esm/resources/factories/TextureFactory.d.ts +4 -4
  233. package/dist/esm/resources/factories/TextureFactory.js +8 -4
  234. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  235. package/dist/esm/resources/index.d.ts +1 -0
  236. package/dist/exo.esm.js +6326 -2350
  237. package/dist/exo.esm.js.map +1 -1
  238. package/package.json +34 -24
  239. package/dist/esm/particles/distributions/Gradient.js.map +0 -1
  240. package/dist/esm/rendering/mesh/MeshShader.js.map +0 -1
  241. package/dist/esm/vendor/webgl-debug.js +0 -1160
  242. package/dist/esm/vendor/webgl-debug.js.map +0 -1
@@ -1,12 +1,13 @@
1
1
  import { Color } from '../../core/Color.js';
2
2
  import { Signal } from '../../core/Signal.js';
3
+ import { Matrix } from '../../math/Matrix.js';
3
4
  import { Vector } from '../../math/Vector.js';
4
5
  import { ParticleSystem } from '../../particles/ParticleSystem.js';
5
6
  import { BitmapText } from '../text/BitmapText.js';
6
7
  import { Text } from '../text/Text.js';
7
8
  import { BlendModes } from '../types.js';
8
- import WebGLDebugUtils from '../../vendor/webgl-debug.js';
9
9
  import { Mesh } from '../mesh/Mesh.js';
10
+ import { drawCommandUsesSharedTransform } from '../plan/RenderCommand.js';
10
11
  import { RenderBackendType } from '../RenderBackendType.js';
11
12
  import { RendererRegistry } from '../RendererRegistry.js';
12
13
  import { createRenderStats, resetRenderStats } from '../RenderStats.js';
@@ -14,29 +15,51 @@ import { RenderTarget } from '../RenderTarget.js';
14
15
  import { Sprite } from '../sprite/Sprite.js';
15
16
  import { DataTexture } from '../texture/DataTexture.js';
16
17
  import { RenderTexture } from '../texture/RenderTexture.js';
18
+ import { TransformBuffer } from '../TransformBuffer.js';
17
19
  import { WebGl2MaskCompositor } from './WebGl2MaskCompositor.js';
18
20
  import { WebGl2MeshRenderer } from './WebGl2MeshRenderer.js';
19
21
  import { WebGl2ParticleRenderer } from './WebGl2ParticleRenderer.js';
22
+ import { WebGl2PassCoordinator } from './WebGl2PassCoordinator.js';
20
23
  import { WebGl2SpriteRenderer } from './WebGl2SpriteRenderer.js';
24
+ import { WebGl2StencilClipper } from './WebGl2StencilClipper.js';
21
25
  import { WebGl2TextRenderer } from './WebGl2TextRenderer.js';
22
26
 
23
- const throwOnGlError = (err, funcName) => {
24
- throw `${WebGLDebugUtils.glEnumToString(err)} was caused by call to: ${funcName}`;
25
- };
26
- const logGlCall = (functionName, args) => {
27
- console.log(`gl.${functionName}(${WebGLDebugUtils.glFunctionArgsToString(functionName, args)})`);
28
- };
29
- const validateNoneOfTheArgsAreUndefined = (functionName, args) => {
30
- for (const argument of args) {
31
- if (argument === undefined) {
32
- console.error(`undefined passed to gl.${functionName}(${WebGLDebugUtils.glFunctionArgsToString(functionName, args)})`);
33
- }
27
+ // Inline GL debug helpers replaces the webgl-debug vendor lib.
28
+ // Used only when renderingOptions.debug = true.
29
+ const glEnumToString = (gl, value) => {
30
+ const ctor = gl.constructor;
31
+ for (const key of Object.getOwnPropertyNames(ctor)) {
32
+ if (ctor[key] === value)
33
+ return key;
34
34
  }
35
+ return `0x${value.toString(16).padStart(4, '0').toUpperCase()}`;
35
36
  };
36
- const logAndValidate = (functionName, args) => {
37
- logGlCall(functionName, args);
38
- validateNoneOfTheArgsAreUndefined(functionName, args);
39
- };
37
+ const glArgsToString = (gl, args) => args.map(a => (typeof a === 'number' ? glEnumToString(gl, a) : String(a))).join(', ');
38
+ const makeWebGl2DebugContext = (gl) => new Proxy(gl, {
39
+ get(target, prop, receiver) {
40
+ const value = Reflect.get(target, prop, receiver);
41
+ if (typeof value !== 'function')
42
+ return value;
43
+ const name = String(prop);
44
+ return (...args) => {
45
+ console.log(`gl.${name}(${glArgsToString(target, args)})`);
46
+ for (const arg of args) {
47
+ if (arg === undefined) {
48
+ console.error(`undefined passed to gl.${name}(${glArgsToString(target, args)})`);
49
+ }
50
+ }
51
+ const result = Reflect.apply(value, target, args);
52
+ if (name !== 'getError') {
53
+ const err = target.getError();
54
+ if (err !== target.NO_ERROR) {
55
+ throw new Error(`${glEnumToString(target, err)} was caused by call to: ${name}`);
56
+ }
57
+ }
58
+ return result;
59
+ };
60
+ },
61
+ });
62
+ const renderTargetTextureSyncUnit = 15;
40
63
  /**
41
64
  * WebGL 2.0 implementation of {@link RenderBackend}. Manages the GL
42
65
  * context, texture and framebuffer caches keyed by user-side
@@ -70,6 +93,10 @@ class WebGl2Backend {
70
93
  _clipPointB = new Vector();
71
94
  _maskCompositor = new WebGl2MaskCompositor();
72
95
  _maskCompositorConnected = false;
96
+ _stencilClipper = new WebGl2StencilClipper();
97
+ _stencilStates = new Map();
98
+ _stencilClipperConnected = false;
99
+ _passCoordinatorInstance = null;
73
100
  _canvas;
74
101
  _contextLost;
75
102
  _renderTarget;
@@ -82,6 +109,12 @@ class WebGl2Backend {
82
109
  _clearColor = new Color();
83
110
  _boundFramebuffer = null;
84
111
  _stats = createRenderStats();
112
+ _transformBuffer = new TransformBuffer();
113
+ _transformTexture = null;
114
+ _transformTextureHash = 0;
115
+ _transformTextureCount = -1;
116
+ _activeDrawCommand = null;
117
+ _drawPlanDepth = 0;
85
118
  constructor(app) {
86
119
  const canvasOptions = app.options.canvas ?? {};
87
120
  const renderingOptions = app.options.rendering ?? {};
@@ -97,7 +130,7 @@ class WebGl2Backend {
97
130
  if (!gl) {
98
131
  throw new Error('This browser or hardware does not support WebGL.');
99
132
  }
100
- this._context = debug ? WebGLDebugUtils.makeDebugContext(gl, throwOnGlError, logAndValidate, gl) : gl;
133
+ this._context = debug ? makeWebGl2DebugContext(gl) : gl;
101
134
  this._contextLost = this._context.isContextLost();
102
135
  if (this._contextLost) {
103
136
  this._restoreContext();
@@ -136,6 +169,19 @@ class WebGl2Backend {
136
169
  get stats() {
137
170
  return this._stats;
138
171
  }
172
+ /** @internal */
173
+ get activeDrawCommand() {
174
+ return this._activeDrawCommand;
175
+ }
176
+ /**
177
+ * Internal render-pass coordinator. Owns target / view / clear orchestration
178
+ * and the scissor / stencil-clip stacks for this backend; not part of the
179
+ * public {@link RenderBackend} surface.
180
+ * @internal
181
+ */
182
+ get _passCoordinator() {
183
+ return (this._passCoordinatorInstance ??= new WebGl2PassCoordinator(this));
184
+ }
139
185
  async initialize() {
140
186
  return this;
141
187
  }
@@ -143,10 +189,103 @@ class WebGl2Backend {
143
189
  resetRenderStats(this._stats);
144
190
  return this;
145
191
  }
192
+ /** @internal */
193
+ _beginDrawPlan(nodeCount) {
194
+ this._transformBuffer.begin(nodeCount);
195
+ this._activeDrawCommand = null;
196
+ this._drawPlanDepth++;
197
+ }
198
+ /** @internal */
199
+ _prepareRenderGroupUpload(group) {
200
+ // Pack the whole render group's world transforms (+ tint) into the shared
201
+ // transform buffer at the group's upload boundary, keyed by each draw
202
+ // command's stable nodeIndex. Every draw the player will submit for this
203
+ // group is covered here, before the group's first draw — so the per-draw
204
+ // write previously done in `_prepareDrawCommand` is no longer needed and
205
+ // the buffer is filled one contiguous group slice at a time.
206
+ //
207
+ // Renderers that pack their own per-node data (Text, Particle) never read
208
+ // the shared buffer, so their commands are skipped — no consuming draw ever
209
+ // references their slots (nodeIndex is unique per command).
210
+ const instructions = group.instructions;
211
+ for (let i = 0; i < instructions.length; i++) {
212
+ const command = instructions[i];
213
+ if (drawCommandUsesSharedTransform(command, this)) {
214
+ this._writeTransformCommand(command);
215
+ }
216
+ else {
217
+ this._transformBuffer.recordSkippedWrite();
218
+ }
219
+ }
220
+ }
221
+ /** @internal */
222
+ _prepareDrawCommand(command) {
223
+ // Transform packing now happens at the render-group upload boundary
224
+ // (`_prepareRenderGroupUpload`); this hook only tracks the active draw so
225
+ // the mesh renderer can read the current command's nodeIndex.
226
+ this._activeDrawCommand = command;
227
+ }
228
+ /**
229
+ * Write a single draw command's world transform (+ tint) into the shared
230
+ * transform buffer at its `nodeIndex` slot. Used for draws that do not arrive
231
+ * through a render-group upload boundary — currently the mesh renderer's
232
+ * synthetic, non-plan instanced path.
233
+ * @internal
234
+ */
235
+ _writeTransformCommand(command) {
236
+ const drawable = command.drawable;
237
+ this._transformBuffer.write(command.nodeIndex, drawable.getGlobalTransform(), drawable.tint);
238
+ }
239
+ /**
240
+ * Append a drawable's world transform (+ tint) to the shared transform buffer
241
+ * and return the slot it was written to. Used by instanced renderers for draws
242
+ * that arrive without a render-group upload boundary — i.e. a direct
243
+ * `backend.draw(drawable)` outside the plan player (`activeDrawCommand === null`),
244
+ * where no stable `nodeIndex` was assigned. Unlike {@link _writeTransformCommand}
245
+ * (fixed slot) this allocates a fresh slot, so a batch of synthetic draws does
246
+ * not collide on a single row.
247
+ * @internal
248
+ */
249
+ _pushTransform(drawable) {
250
+ return this._transformBuffer.push(drawable.getGlobalTransform(), drawable.tint);
251
+ }
252
+ /** @internal */
253
+ _endDrawPlan() {
254
+ this._activeDrawCommand = null;
255
+ if (this._drawPlanDepth > 0) {
256
+ this._drawPlanDepth--;
257
+ }
258
+ // Only assert balance at the outermost plan: cacheAsBitmap draws a cache
259
+ // sprite via a nested render(), whose inner _endDrawPlan sees the still-open
260
+ // outer clips — those are not leaks.
261
+ if (this._drawPlanDepth === 0) {
262
+ this._assertBalancedStencil();
263
+ }
264
+ }
265
+ _assertBalancedStencil() {
266
+ let unpopped = 0;
267
+ for (const state of this._stencilStates.values()) {
268
+ unpopped += state.stack.length;
269
+ }
270
+ if (unpopped === 0) {
271
+ return;
272
+ }
273
+ // Reset so a leaked clip cannot corrupt subsequent frames, then surface it.
274
+ for (const state of this._stencilStates.values()) {
275
+ state.depth = 0;
276
+ state.stack.length = 0;
277
+ }
278
+ const gl = this._context;
279
+ gl.stencilFunc(gl.ALWAYS, 0, 0xff);
280
+ gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);
281
+ gl.disable(gl.STENCIL_TEST);
282
+ throw new Error(`Unbalanced stencil clip stack at end of frame (${unpopped} unpopped clip(s)).`);
283
+ }
146
284
  draw(drawable) {
147
285
  const renderer = this.rendererRegistry.resolve(drawable);
148
286
  this._setActiveRenderer(renderer);
149
287
  renderer.render(drawable);
288
+ this._activeDrawCommand = null;
150
289
  this._stats.submittedNodes++;
151
290
  return this;
152
291
  }
@@ -158,11 +297,18 @@ class WebGl2Backend {
158
297
  }
159
298
  setRenderTarget(target) {
160
299
  const renderTarget = target || this._rootRenderTarget;
161
- if (this._renderTarget !== renderTarget) {
300
+ const changed = this._renderTarget !== renderTarget;
301
+ if (changed) {
302
+ this._flushActiveRenderer();
162
303
  this._renderTarget = renderTarget;
163
304
  this._stats.renderTargetChanges++;
164
305
  }
165
306
  this._bindRenderTarget(renderTarget);
307
+ if (changed) {
308
+ // Stencil state is per-target: restore the new target's clip depth so an
309
+ // outer clip on the previous target does not leak onto this one.
310
+ this._applyStencilState(renderTarget);
311
+ }
166
312
  return this;
167
313
  }
168
314
  pushScissorRect(bounds) {
@@ -188,6 +334,65 @@ class WebGl2Backend {
188
334
  this._applyClipState();
189
335
  return this;
190
336
  }
337
+ pushStencilClip(shape, transform) {
338
+ const target = this._renderTarget;
339
+ const state = this._getStencilState(target);
340
+ if (state.depth >= 255) {
341
+ throw new Error('Stencil clip nesting exceeds the 255-level limit.');
342
+ }
343
+ this._flushActiveRenderer();
344
+ this._setActiveRenderer(null);
345
+ if (!this._stencilClipperConnected) {
346
+ this._stencilClipper.connect(this);
347
+ this._stencilClipperConnected = true;
348
+ }
349
+ const gl = this._context;
350
+ const depth = state.depth;
351
+ if (depth === 0) {
352
+ this._ensureTargetStencil();
353
+ gl.enable(gl.STENCIL_TEST);
354
+ // Clear the whole stencil buffer to 0 regardless of any active scissor,
355
+ // then restore the scissor state for the shape/content draws.
356
+ gl.disable(gl.SCISSOR_TEST);
357
+ gl.clearStencil(0);
358
+ gl.clear(gl.STENCIL_BUFFER_BIT);
359
+ this._applyClipState();
360
+ }
361
+ // Increment the stencil where the shape covers the already-valid region
362
+ // (EQUAL depth). Color/depth writes off so only the stencil is touched.
363
+ gl.colorMask(false, false, false, false);
364
+ gl.stencilFunc(gl.EQUAL, depth, 0xff);
365
+ gl.stencilOp(gl.KEEP, gl.KEEP, gl.INCR);
366
+ this._stencilClipper.draw(this, shape, transform);
367
+ gl.colorMask(true, true, true, true);
368
+ state.depth = depth + 1;
369
+ state.stack.push({ shape, transform: new Matrix().copy(transform) });
370
+ // Content now passes only where the stencil equals the new depth.
371
+ gl.stencilFunc(gl.EQUAL, state.depth, 0xff);
372
+ gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);
373
+ return this;
374
+ }
375
+ popStencilClip() {
376
+ const target = this._renderTarget;
377
+ const state = this._getStencilState(target);
378
+ const entry = state.stack.pop();
379
+ if (entry === undefined) {
380
+ return this;
381
+ }
382
+ this._flushActiveRenderer();
383
+ this._setActiveRenderer(null);
384
+ const gl = this._context;
385
+ const depth = state.depth;
386
+ // Decrement the region this clip incremented, restoring the outer level.
387
+ gl.colorMask(false, false, false, false);
388
+ gl.stencilFunc(gl.EQUAL, depth, 0xff);
389
+ gl.stencilOp(gl.KEEP, gl.KEEP, gl.DECR);
390
+ this._stencilClipper.draw(this, entry.shape, entry.transform);
391
+ gl.colorMask(true, true, true, true);
392
+ state.depth = depth - 1;
393
+ this._applyStencilState(target);
394
+ return this;
395
+ }
191
396
  composeWithAlphaMask(content, mask, x, y, width, height, blendMode) {
192
397
  if (width <= 0 || height <= 0) {
193
398
  return this;
@@ -230,10 +435,14 @@ class WebGl2Backend {
230
435
  bindVertexArrayObject(vao) {
231
436
  if (this._vao !== vao) {
232
437
  if (vao) {
438
+ // Binding a VAO implicitly replaces the previous binding. Only when
439
+ // switching to "no VAO" do we explicitly unbind — unbinding the old VAO
440
+ // *after* binding the new one would leave the GL default (null) VAO
441
+ // bound and silently break the next draw (a renderer/clip VAO switch).
233
442
  vao.bind();
234
443
  }
235
- if (this._vao) {
236
- this._vao.unbind();
444
+ else {
445
+ this._vao?.unbind();
237
446
  }
238
447
  this._vao = vao;
239
448
  }
@@ -268,6 +477,34 @@ class WebGl2Backend {
268
477
  this._texture = texture;
269
478
  return this;
270
479
  }
480
+ /** @internal */
481
+ bindTransformBufferTexture(unit, minCount) {
482
+ const requiredCount = Math.max(1, minCount);
483
+ const transformTexture = this._transformTexture;
484
+ if (transformTexture?.height !== this._transformBuffer.capacity || transformTexture.buffer !== this._transformBuffer.data) {
485
+ transformTexture?.destroy();
486
+ this._transformTexture = new DataTexture({
487
+ width: 3,
488
+ height: this._transformBuffer.capacity,
489
+ format: 'rgba32f',
490
+ data: this._transformBuffer.data,
491
+ });
492
+ this._transformTextureHash = 0;
493
+ this._transformTextureCount = -1;
494
+ }
495
+ const snapshot = this._transformBuffer.commitSnapshot(requiredCount);
496
+ const nextTransformTexture = this._transformTexture;
497
+ if (nextTransformTexture === null) {
498
+ throw new Error('Transform texture must be initialized before binding.');
499
+ }
500
+ if (snapshot.changed || snapshot.count !== this._transformTextureCount || snapshot.hash !== this._transformTextureHash) {
501
+ nextTransformTexture.commitRect(0, 0, 3, snapshot.count);
502
+ this._transformBuffer.recordUpload(snapshot.count);
503
+ this._transformTextureHash = snapshot.hash;
504
+ this._transformTextureCount = snapshot.count;
505
+ }
506
+ return this.bindTexture(nextTransformTexture, unit);
507
+ }
271
508
  setBlendMode(blendMode) {
272
509
  if (blendMode !== this._blendMode) {
273
510
  const gl = this._context;
@@ -362,17 +599,33 @@ class WebGl2Backend {
362
599
  this._maskCompositor.disconnect();
363
600
  this._maskCompositorConnected = false;
364
601
  }
602
+ if (this._stencilClipperConnected) {
603
+ this._stencilClipper.disconnect();
604
+ this._stencilClipperConnected = false;
605
+ }
606
+ this._stencilStates.clear();
607
+ this._drawPlanDepth = 0;
365
608
  this._rootRenderTarget.destroy();
609
+ if (this._transformTexture !== null) {
610
+ this._transformTexture.destroy();
611
+ this._transformTexture = null;
612
+ }
366
613
  this._vao = null;
367
614
  this._renderer = null;
368
615
  this._shader = null;
369
616
  this._blendMode = null;
370
617
  this._texture = null;
371
618
  this._boundFramebuffer = null;
619
+ this._activeDrawCommand = null;
620
+ this._transformTextureCount = -1;
621
+ this._transformTextureHash = 0;
372
622
  }
373
623
  _createContext(options) {
374
624
  try {
375
- return this._canvas.getContext('webgl2', options);
625
+ // Force a stencil buffer on the default framebuffer so geometric stencil
626
+ // clipping (RenderNode.clip with a Geometry clipShape) works on the root
627
+ // target. Inert until a clip is pushed (STENCIL_TEST stays disabled).
628
+ return this._canvas.getContext('webgl2', { ...options, stencil: true });
376
629
  }
377
630
  catch (_e) {
378
631
  return null;
@@ -446,6 +699,9 @@ class WebGl2Backend {
446
699
  framebuffer: target.root ? null : this._createFramebuffer(),
447
700
  version: -1,
448
701
  attachedTexture: null,
702
+ stencilRenderbuffer: null,
703
+ stencilWidth: 0,
704
+ stencilHeight: 0,
449
705
  };
450
706
  this._renderTargetStates.set(target, state);
451
707
  }
@@ -494,8 +750,13 @@ class WebGl2Backend {
494
750
  if (state.framebuffer !== null) {
495
751
  this._context.deleteFramebuffer(state.framebuffer);
496
752
  }
753
+ if (state.stencilRenderbuffer !== null) {
754
+ this._context.deleteRenderbuffer(state.stencilRenderbuffer);
755
+ state.stencilRenderbuffer = null;
756
+ }
497
757
  this._renderTargetStates.delete(target);
498
758
  }
759
+ this._stencilStates.delete(target);
499
760
  if (this._renderTarget === target) {
500
761
  this._renderTarget = this._rootRenderTarget;
501
762
  if (rebind) {
@@ -557,7 +818,10 @@ class WebGl2Backend {
557
818
  const state = this._getRenderTargetState(target);
558
819
  if (target instanceof RenderTexture && state.framebuffer) {
559
820
  const previousFramebuffer = this._boundFramebuffer;
821
+ const previousUnit = this._textureUnit;
822
+ this._setTextureUnit(renderTargetTextureSyncUnit);
560
823
  const textureState = this._syncTexture(target);
824
+ this._setTextureUnit(previousUnit);
561
825
  if (state.attachedTexture !== textureState.handle) {
562
826
  const gl = this._context;
563
827
  gl.bindFramebuffer(gl.FRAMEBUFFER, state.framebuffer);
@@ -565,9 +829,76 @@ class WebGl2Backend {
565
829
  gl.bindFramebuffer(gl.FRAMEBUFFER, previousFramebuffer);
566
830
  state.attachedTexture = textureState.handle;
567
831
  }
832
+ // Reset the on-demand flag for pooled RenderTexture targets, so a
833
+ // stencil renderbuffer from a previous use does not permanently
834
+ // consume GPU memory when the target is re-purposed for non-clip
835
+ // rendering.
836
+ if (!this._stencilStates.has(target)) {
837
+ target.needsStencil = false;
838
+ }
839
+ // Keep an existing stencil attachment sized to the (possibly resized)
840
+ // texture so the framebuffer stays complete during non-clip rendering.
841
+ if (target.needsStencil || state.stencilRenderbuffer !== null) {
842
+ this._syncStencilAttachment(target, state);
843
+ }
844
+ }
845
+ return state;
846
+ }
847
+ /** Attach a depth/stencil renderbuffer to the active target if it lacks one. */
848
+ _ensureTargetStencil() {
849
+ const target = this._renderTarget;
850
+ if (target.root) {
851
+ // The default framebuffer's stencil comes from the context attributes.
852
+ return;
853
+ }
854
+ target.needsStencil = true;
855
+ this._syncStencilAttachment(target, this._getRenderTargetState(target));
856
+ }
857
+ _syncStencilAttachment(target, state) {
858
+ if (state.framebuffer === null) {
859
+ return;
860
+ }
861
+ const gl = this._context;
862
+ const width = Math.max(1, target.width);
863
+ const height = Math.max(1, target.height);
864
+ if (state.stencilRenderbuffer !== null && state.stencilWidth === width && state.stencilHeight === height) {
865
+ return;
866
+ }
867
+ if (state.stencilRenderbuffer === null) {
868
+ state.stencilRenderbuffer = gl.createRenderbuffer();
869
+ }
870
+ gl.bindRenderbuffer(gl.RENDERBUFFER, state.stencilRenderbuffer);
871
+ gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH24_STENCIL8, width, height);
872
+ gl.bindRenderbuffer(gl.RENDERBUFFER, null);
873
+ const previousFramebuffer = this._boundFramebuffer;
874
+ gl.bindFramebuffer(gl.FRAMEBUFFER, state.framebuffer);
875
+ gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, state.stencilRenderbuffer);
876
+ gl.bindFramebuffer(gl.FRAMEBUFFER, previousFramebuffer);
877
+ state.stencilWidth = width;
878
+ state.stencilHeight = height;
879
+ }
880
+ _getStencilState(target) {
881
+ let state = this._stencilStates.get(target);
882
+ if (state === undefined) {
883
+ state = { depth: 0, stack: [] };
884
+ this._stencilStates.set(target, state);
568
885
  }
569
886
  return state;
570
887
  }
888
+ /** Re-apply the GL stencil test to match `target`'s current clip depth. */
889
+ _applyStencilState(target) {
890
+ const gl = this._context;
891
+ const depth = this._getStencilState(target).depth;
892
+ if (depth === 0) {
893
+ gl.stencilFunc(gl.ALWAYS, 0, 0xff);
894
+ gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);
895
+ gl.disable(gl.STENCIL_TEST);
896
+ return;
897
+ }
898
+ gl.enable(gl.STENCIL_TEST);
899
+ gl.stencilFunc(gl.EQUAL, depth, 0xff);
900
+ gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);
901
+ }
571
902
  _syncTexture(texture) {
572
903
  const gl = this._context;
573
904
  const state = this._getTextureState(texture);
@@ -1 +1 @@
1
- {"version":3,"file":"WebGl2Backend.js","sources":["../../../../../src/rendering/webgl2/WebGl2Backend.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,QAAgB,KAAU;IAC7D,MAAM,CAAA,EAAG,eAAe,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA,wBAAA,EAA2B,QAAQ,CAAA,CAAE;AACnF,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,YAAoB,EAAE,IAAe,KAAU;AAChE,IAAA,OAAO,CAAC,GAAG,CAAC,CAAA,GAAA,EAAM,YAAY,IAAI,eAAe,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC;AAClG,CAAC;AAED,MAAM,iCAAiC,GAAG,CAAC,YAAoB,EAAE,IAAe,KAAU;AACxF,IAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE;AAC3B,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,OAAO,CAAC,KAAK,CAAC,CAAA,uBAAA,EAA0B,YAAY,IAAI,eAAe,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC;QACxH;IACF;AACF,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,YAAoB,EAAE,IAAe,KAAU;AACrE,IAAA,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC;AAC7B,IAAA,iCAAiC,CAAC,YAAY,EAAE,IAAI,CAAC;AACvD,CAAC;AA2BD;;;;;;;;;;;;AAYG;MACU,aAAa,CAAA;AACR,IAAA,WAAW,GAAG,iBAAiB,CAAC,MAAM;AACtC,IAAA,gBAAgB,GAAG,IAAI,gBAAgB,EAAiB;AACxD,IAAA,aAAa,GAAG,IAAI,MAAM,EAAE;AAC5B,IAAA,iBAAiB,GAAG,IAAI,MAAM,EAAE;AAE/B,IAAA,QAAQ;AACR,IAAA,iBAAiB;AACjB,IAAA,qBAAqB;AACrB,IAAA,yBAAyB;AACzB,IAAA,cAAc,GAAsD,IAAI,GAAG,EAAgD;AAC3H,IAAA,mBAAmB,GAAgD,IAAI,GAAG,EAA0C;AACpH,IAAA,uBAAuB,GAA6C,IAAI,GAAG,EAAuC;AAClH,IAAA,4BAA4B,GAAkC,IAAI,GAAG,EAA4B;IACjG,wBAAwB,GAAoB,EAAE;IAC9C,gBAAgB,GAAgB,EAAE;IAClC,eAAe,GAA2B,EAAE;AAC5C,IAAA,WAAW,GAAW,IAAI,MAAM,EAAE;AAClC,IAAA,WAAW,GAAW,IAAI,MAAM,EAAE;AAClC,IAAA,eAAe,GAAyB,IAAI,oBAAoB,EAAE;IAC3E,wBAAwB,GAAG,KAAK;AAEhC,IAAA,OAAO;AACP,IAAA,YAAY;AACZ,IAAA,aAAa;IACb,SAAS,GAAoB,IAAI;IACjC,OAAO,GAAkB,IAAI;IAC7B,UAAU,GAAsB,IAAI;IACpC,QAAQ,GAAmC,IAAI;IAC/C,YAAY,GAAG,CAAC;IAChB,IAAI,GAAmC,IAAI;AAC3C,IAAA,WAAW,GAAU,IAAI,KAAK,EAAE;IAChC,iBAAiB,GAA4B,IAAI;IACxC,MAAM,GAAgB,iBAAiB,EAAE;AAE1D,IAAA,WAAA,CAAmB,GAAgB,EAAA;QACjC,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE;QAC9C,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;AACpD,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,IAAI,GAAG;AACxC,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,IAAI,GAAG;AAC1C,QAAA,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU;AACzC,QAAA,MAAM,eAAe,GAAG,gBAAgB,CAAC,eAAe;AACxD,QAAA,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,IAAI,KAAK;AAC7C,QAAA,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,uBAAuB,IAAI,IAAI;AAChF,QAAA,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,yBAAyB,IAAI,IAAI;AAEpF,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM;QAEzB,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;QAE/C,IAAI,CAAC,EAAE,EAAE;AACP,YAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;QACrE;QAEA,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,eAAe,CAAC,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,CAAC,GAAG,EAAE;QACrG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAEjD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE;QACxB;QAEA,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QAClC;AAEA,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;QAE3C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAEnE,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,UAAU,EAAE;AAEjB,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;QACjG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,kBAAkB,EAAE,CAAC;AACtE,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,sBAAsB,CAAC,yBAAyB,CAAC,CAAC;QAC7G,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,kBAAkB,EAAE,CAAC;QACtE,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,kBAAkB,EAAE,CAAC;AAC5E,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;AAEnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;AAEpC,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IAC5B;AAEA,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI;IAChC;AAEA,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEO,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,OAAO,IAAI;IACb;IAEO,UAAU,GAAA;AACf,QAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;AAE7B,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,IAAI,CAAC,QAAkB,EAAA;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC;AAExD,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;AACjC,QAAA,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;AAE5B,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,OAAO,CAAC,IAAgB,EAAA;QAC7B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAElB,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,eAAe,CAAC,MAA2B,EAAA;AAChD,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,iBAAiB;AAErD,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,YAAY,EAAE;AACvC,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY;AACjC,YAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;QACnC;AAEA,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;AAEpC,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,eAAe,CAAC,MAAiB,EAAA;QACtC,IAAI,CAAC,oBAAoB,EAAE;QAE3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC3C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI;AACnH,QAAA,MAAM,YAAY,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,QAAQ;AAE3F,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;IAEO,cAAc,GAAA;QACnB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,oBAAoB,EAAE;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;QAE/C,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,OAAO,EAAE;QACvB;AAEA,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,oBAAoB,CACzB,OAAgC,EAChC,IAA6B,EAC7B,CAAS,EACT,CAAS,EACT,KAAa,EACb,MAAc,EACd,SAAqB,EAAA;QAErB,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AAC7B,YAAA,OAAO,IAAI;QACb;;;QAIA,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAE7B,QAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAClC,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC;AAClC,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;QACtC;QAEA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;AAEjF,QAAA,OAAO,IAAI;IACb;IAEO,oBAAoB,CAAC,KAAa,EAAE,MAAc,EAAA;AACvD,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACzE,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;AAEpD,YAAA,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;gBACxD,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAE9C,gBAAA,OAAO,OAAO;YAChB;QACF;AAEA,QAAA,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;IACzC;AAEO,IAAA,oBAAoB,CAAC,OAAsB,EAAA;QAChD,IAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACnD,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;AAE3C,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,OAAO,CAAC,IAAiB,EAAA;QAC9B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC;AAE1C,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,qBAAqB,CAAC,GAAmC,EAAA;AAC9D,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;YACrB,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,IAAI,EAAE;YACZ;AAEA,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpB;AAEA,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG;QACjB;AAEA,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,UAAU,CAAC,MAAqB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACrB,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACrB;YAEA,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,IAAI,EAAE;YACf;AAEA,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;QACvB;AAEA,QAAA,OAAO,IAAI;IACb;IAEO,WAAW,CAAC,OAAuC,EAAE,IAAa,EAAA;AACvE,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAC5B;AAEA,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC1B,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;AACzD,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACtB;AAEA,YAAA,OAAO,IAAI;QACb;QAEA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAE/C,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC;AACxE,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AAEvB,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,YAAY,CAAC,SAA4B,EAAA;AAC9C,QAAA,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;AACjC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;AAExB,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAE3B,QAAQ,SAAS;gBACf,KAAK,UAAU,CAAC,QAAQ;AACtB,oBAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC;oBAC7B,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;oBAC5B;gBACF,KAAK,UAAU,CAAC,QAAQ;AACtB,oBAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC;oBAC7B,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC;oBAC7C;gBACF,KAAK,UAAU,CAAC,QAAQ;AACtB,oBAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC;oBAC7B,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC;oBAClD;gBACF,KAAK,UAAU,CAAC,MAAM;AACpB,oBAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC;oBAC7B,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC;oBAC5C;gBACF,KAAK,UAAU,CAAC,MAAM;AACpB,oBAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC;oBACxB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;oBAC5B;gBACF,KAAK,UAAU,CAAC,OAAO;AACrB,oBAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC;oBACxB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;oBAC5B;AACF,gBAAA;AACE,oBAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC;oBAC7B,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC;oBAC5C;;QAEN;AAEA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,eAAe,CAAC,IAAY,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;AAC9B,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;AAExB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YAExB,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtC;IACF;AAEO,IAAA,aAAa,CAAC,KAAY,EAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACnC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;AAExB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAE5B,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrE;AAEA,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,KAAK,CAAC,KAAa,EAAA;AACxB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;QAExB,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAC3B;AAEA,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1C,QAAA,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC;AAE7B,QAAA,OAAO,IAAI;IACb;IAEO,MAAM,CAAC,KAAa,EAAE,MAAc,EAAA;QACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;AAC5C,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC;AAE1C,QAAA,OAAO,IAAI;IACb;IAEO,KAAK,GAAA;QACV,IAAI,CAAC,oBAAoB,EAAE;AAE3B,QAAA,OAAO,IAAI;IACb;IAEO,OAAO,GAAA;QACZ,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;AAEhC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAEtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;QAC1B,IAAI,CAAC,wBAAwB,EAAE;QAC/B,IAAI,CAAC,+BAA+B,EAAE;AAEtC,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC9C,UAAU,CAAC,OAAO,EAAE;QACtB;AAEA,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAE1B,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK;QACvC;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;AAEhC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;IAC/B;AAEQ,IAAA,cAAc,CAAC,OAAgC,EAAA;AACrD,QAAA,IAAI;YACF,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnD;QAAE,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,IAAI;QACb;IACF;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,EAAE,cAAc,EAAE;IACpE;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;AACxB,QAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW;AAEvC,QAAA,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC;AACzB,QAAA,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC;AAC3B,QAAA,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC;AAExB,QAAA,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AAEnB,QAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC7B,QAAA,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7C;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC;AACpF,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC;IAC9F;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC;AACvF,QAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC;IACjG;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;QAC7B,IAAI,CAAC,eAAe,EAAE;IACxB;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;IACnC;IAEQ,kBAAkB,GAAA;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;AAErD,QAAA,IAAI,WAAW,KAAK,IAAI,EAAE;AACxB,YAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;QAClD;AAEA,QAAA,OAAO,WAAW;IACpB;IAEQ,oBAAoB,GAAA;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAE7C,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;QAC9C;AAEA,QAAA,OAAO,OAAO;IAChB;IAEQ,wBAAwB,GAAA;AAC9B,QAAA,KAAK,MAAM,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE;AAC/D,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,CAAC;QAC9C;AAEA,QAAA,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;QACpC;IACF;IAEQ,+BAA+B,GAAA;AACrC,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACnD,OAAO,CAAC,OAAO,EAAE;QACnB;AAEA,QAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC;IAC1C;AAEQ,IAAA,qBAAqB,CAAC,MAAoB,EAAA;QAChD,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;QAEhD,IAAI,CAAC,KAAK,EAAE;YACV,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,4BAA4B,EAAE,MAAK;AACvE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;AACvC,YAAA,CAAC,CAAC;AAEF,YAAA,KAAK,GAAG;AACN,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE;gBAC3D,OAAO,EAAE,EAAE;AACX,gBAAA,eAAe,EAAE,IAAI;aACtB;YAED,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAC7C;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,gBAAgB,CAAC,OAAgC,EAAA;QACvD,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QAE5C,IAAI,CAAC,KAAK,EAAE;YACV,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAK;AACnE,gBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;AACnC,YAAA,CAAC,CAAC;AAEF,YAAA,KAAK,GAAG;AACN,gBAAA,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE;gBACnC,OAAO,EAAE,EAAE;AACX,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,MAAM,EAAE,CAAC;aACV;YAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;QACzC;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,mBAAmB,CAA8B,UAAa,EAAE,QAA4B,EAAE,OAAmB,EAAA;QACvH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC7B,YAAA,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACtC,YAAA,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC;QACnC;IACF;IAEQ,uBAAuB,CAA8B,UAAa,EAAE,QAA4B,EAAA;QACtG,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAExC,IAAI,OAAO,EAAE;AACX,YAAA,UAAU,CAAC,qBAAqB,CAAC,OAAO,CAAC;AACzC,YAAA,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;QAC7B;IACF;IAEQ,kBAAkB,CAAC,MAAoB,EAAE,MAAe,EAAA;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;QAElD,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,4BAA4B,CAAC;AAEvE,QAAA,IAAI,MAAM,YAAY,aAAa,EAAE;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC;QACnC;QAEA,IAAI,KAAK,EAAE;YACT,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,WAAW,EAAE;AAChD,gBAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;AAC9D,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;YAC/B;AAEA,YAAA,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE;gBAC9B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC;YACpD;AAEA,YAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB;YAE3C,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAChD;QACF;IACF;IAEQ,aAAa,CAAC,OAAgC,EAAE,MAAe,EAAA;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC;QAEnE,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;AACzD,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACtB;YAEA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;AACzC,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC;QACrC;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACtB;QAEA,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC;IACF;AAEQ,IAAA,iBAAiB,CAAC,MAAoB,EAAA;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;AAE/C,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE;AACpF,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;AACxB,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE;YACrC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC;YACtF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;AACzF,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;AACzC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;AACzC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;AAC9D,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAEhE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;YACrD,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;AAEhC,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,WAAW;AAC1C,YAAA,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;QAChC;QAEA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,IAAI,CAAC,eAAe,EAAE;QACxB;IACF;AAEQ,IAAA,kBAAkB,CAAC,QAAyB,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;YAC/B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QAC3B;IACF;IAEQ,oBAAoB,GAAA;QAC1B,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACxC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1C,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;QACxB;IACF;AAEQ,IAAA,oBAAoB,CAAC,MAAoB,EAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAEhD,IAAI,MAAM,YAAY,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE;AACxD,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB;YAClD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAE9C,IAAI,KAAK,CAAC,eAAe,KAAK,YAAY,CAAC,MAAM,EAAE;AACjD,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;gBAExB,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC;gBACrD,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpG,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC;AAEvD,gBAAA,KAAK,CAAC,eAAe,GAAG,YAAY,CAAC,MAAM;YAC7C;QACF;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,YAAY,CAAC,OAAgC,EAAA;AACnD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC5C,QAAA,MAAM,OAAO,GAAG,OAAO,YAAY,aAAa,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO;QAE3F,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;AAE3C,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE;AAC7B,YAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC;AACzE,YAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC;AACzE,YAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC;AACpE,YAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC;YACpE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,8BAA8B,EAAE,OAAO,CAAC,gBAAgB,CAAC;AAE3E,YAAA,IAAI,OAAO,YAAY,WAAW,EAAE;gBAClC,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC;AAC1D,gBAAA,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE;gBAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;gBAE3G,IAAI,UAAU,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;AAChD,oBAAA,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;gBAClJ;qBAAO;;;AAGL,oBAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ;AACpC,oBAAA,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,QAAQ;AAC1C,oBAAA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,QAAQ;AACzC,oBAAA,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,YAAY;AACxB,0BAAE,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,QAAQ;AAC1D,0BAAE,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;AAE7D,oBAAA,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;AAC5C,wBAAA,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,QAAQ;AACtE,wBAAA,MAAM,WAAW,GAAG,GAAG,GAAG,SAAS;AACnC,wBAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC,EAAE,WAAW,CAAC;oBACzF;AAEA,oBAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;gBAClI;YACF;AAAO,iBAAA,IAAI,OAAO,YAAY,aAAa,EAAE;AAC3C,gBAAA,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;AACvH,oBAAA,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;gBACvH;qBAAO;AACL,oBAAA,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;gBACpH;YACF;AAAO,iBAAA,IAAI,OAAO,CAAC,MAAM,EAAE;gBACzB,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE;oBAC5F,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;gBACrF;qBAAO;oBACL,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;gBACrF;YACF;AAEA,YAAA,IAAI,OAAO,CAAC,cAAc,KAAK,OAAO,YAAY,aAAa,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE;AAC3F,gBAAA,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC;YAClC;AAEA,YAAA,KAAK,CAAC,OAAO,GAAG,OAAO;AACvB,YAAA,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;AAC3B,YAAA,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;QAC/B;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,aAAa,CAAC,MAAiB,EAAA;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAClG,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1G,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;AAC5C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;QAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;AACzC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;QAE5C,OAAO;YACL,CAAC;YACD,CAAC;YACD,KAAK;YACL,MAAM;SACP;IACH;IAEQ,eAAe,CAAC,KAA2B,EAAE,MAA4B,EAAA;AAC/E,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACxC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAEtE,OAAO;AACL,YAAA,CAAC,EAAE,IAAI;AACP,YAAA,CAAC,EAAE,MAAM;YACT,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC;SAClC;IACH;IAEQ,eAAe,GAAA;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;QAExB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,YAAA,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC;YAE3B;QACF;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;AAClE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC;AAC1H,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;AAC7H,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AACrC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAE5D,QAAA,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;QAC1B,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;IACjC;AACD;AASD;AACA;AACA;AACA,SAAS,uBAAuB,CAAC,MAAyB,EAAA;IACxD,MAAM,EAAE,GAAG,sBAAsB;IACjC,QAAQ,MAAM;AACZ,QAAA,KAAK,IAAI;YACP,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE;AACvF,QAAA,KAAK,MAAM;YACT,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;AACjF,QAAA,KAAK,OAAO;YACV,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE;AAC3F,QAAA,KAAK,SAAS;YACZ,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE;;AAEzF;;;;"}
1
+ {"version":3,"file":"WebGl2Backend.js","sources":["../../../../../src/rendering/webgl2/WebGl2Backend.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}