@aura3d/rendering 4.3.7 → 4.6.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 (201) hide show
  1. package/dist/DepthPass.d.ts +7 -0
  2. package/dist/DepthPass.d.ts.map +1 -1
  3. package/dist/DepthPass.js +43 -6
  4. package/dist/DepthPass.js.map +1 -1
  5. package/dist/ForwardPass.d.ts +82 -5
  6. package/dist/ForwardPass.d.ts.map +1 -1
  7. package/dist/ForwardPass.js +180 -35
  8. package/dist/ForwardPass.js.map +1 -1
  9. package/dist/MaterialBinding.js +6 -2
  10. package/dist/MaterialBinding.js.map +1 -1
  11. package/dist/RenderDevice.d.ts +5 -0
  12. package/dist/RenderDevice.d.ts.map +1 -1
  13. package/dist/RenderDevice.js.map +1 -1
  14. package/dist/Renderer.d.ts +8 -0
  15. package/dist/Renderer.d.ts.map +1 -1
  16. package/dist/Renderer.js +37 -6
  17. package/dist/Renderer.js.map +1 -1
  18. package/dist/RendererPostprocessPlan.d.ts.map +1 -1
  19. package/dist/RendererPostprocessPlan.js +8 -1
  20. package/dist/RendererPostprocessPlan.js.map +1 -1
  21. package/dist/ShaderChunks.d.ts.map +1 -1
  22. package/dist/ShaderChunks.js +3 -1
  23. package/dist/ShaderChunks.js.map +1 -1
  24. package/dist/ShaderLibrary.d.ts.map +1 -1
  25. package/dist/ShaderLibrary.js +17 -5
  26. package/dist/ShaderLibrary.js.map +1 -1
  27. package/dist/ShaderLibraryCore.d.ts.map +1 -1
  28. package/dist/ShaderLibraryCore.js +2 -1
  29. package/dist/ShaderLibraryCore.js.map +1 -1
  30. package/dist/WebGL2Device.d.ts +19 -1
  31. package/dist/WebGL2Device.d.ts.map +1 -1
  32. package/dist/WebGL2Device.js +114 -37
  33. package/dist/WebGL2Device.js.map +1 -1
  34. package/dist/WebGL2StateCache.d.ts +22 -0
  35. package/dist/WebGL2StateCache.d.ts.map +1 -1
  36. package/dist/WebGL2StateCache.js +71 -42
  37. package/dist/WebGL2StateCache.js.map +1 -1
  38. package/dist/contracts/core.d.ts.map +1 -1
  39. package/dist/contracts/core.js +22 -2
  40. package/dist/contracts/core.js.map +1 -1
  41. package/dist/contracts/program.d.ts.map +1 -1
  42. package/dist/contracts/program.js +8 -1
  43. package/dist/contracts/program.js.map +1 -1
  44. package/dist/contracts/quality.d.ts +21 -0
  45. package/dist/contracts/quality.d.ts.map +1 -1
  46. package/dist/contracts/quality.js +5 -0
  47. package/dist/contracts/quality.js.map +1 -1
  48. package/dist/contracts/renderItem.d.ts +6 -0
  49. package/dist/contracts/renderItem.d.ts.map +1 -1
  50. package/dist/contracts/structuralMemo.d.ts +23 -0
  51. package/dist/contracts/structuralMemo.d.ts.map +1 -0
  52. package/dist/contracts/structuralMemo.js +81 -0
  53. package/dist/contracts/structuralMemo.js.map +1 -0
  54. package/dist/environment/EnvironmentCache.d.ts.map +1 -1
  55. package/dist/environment/EnvironmentCache.js +6 -1
  56. package/dist/environment/EnvironmentCache.js.map +1 -1
  57. package/dist/environment/FirstFrameGate.d.ts +23 -0
  58. package/dist/environment/FirstFrameGate.d.ts.map +1 -0
  59. package/dist/environment/FirstFrameGate.js +58 -0
  60. package/dist/environment/FirstFrameGate.js.map +1 -0
  61. package/dist/environment/Rgb9e5Cube.d.ts.map +1 -1
  62. package/dist/environment/Rgb9e5Cube.js +8 -4
  63. package/dist/environment/Rgb9e5Cube.js.map +1 -1
  64. package/dist/environment/probeBuild.d.ts +29 -0
  65. package/dist/environment/probeBuild.d.ts.map +1 -1
  66. package/dist/environment/probeBuild.js +124 -45
  67. package/dist/environment/probeBuild.js.map +1 -1
  68. package/dist/forward/Lighting.d.ts +43 -3
  69. package/dist/forward/Lighting.d.ts.map +1 -1
  70. package/dist/forward/Lighting.js +127 -17
  71. package/dist/forward/Lighting.js.map +1 -1
  72. package/dist/forward/contactShadowMaskStore.d.ts +41 -0
  73. package/dist/forward/contactShadowMaskStore.d.ts.map +1 -0
  74. package/dist/forward/contactShadowMaskStore.js +85 -0
  75. package/dist/forward/contactShadowMaskStore.js.map +1 -0
  76. package/dist/geometry/Shape.d.ts.map +1 -1
  77. package/dist/geometry/Shape.js +7 -2
  78. package/dist/geometry/Shape.js.map +1 -1
  79. package/dist/geometry/Support.d.ts +4 -0
  80. package/dist/geometry/Support.d.ts.map +1 -1
  81. package/dist/geometry/Support.js +3 -2
  82. package/dist/geometry/Support.js.map +1 -1
  83. package/dist/index.d.ts +6 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +5 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/passes/ContactShadowPass.d.ts +40 -3
  88. package/dist/passes/ContactShadowPass.d.ts.map +1 -1
  89. package/dist/passes/ContactShadowPass.js +73 -13
  90. package/dist/passes/ContactShadowPass.js.map +1 -1
  91. package/dist/passes/Prd02ContactShadowsContributor.d.ts +19 -0
  92. package/dist/passes/Prd02ContactShadowsContributor.d.ts.map +1 -1
  93. package/dist/passes/Prd02ContactShadowsContributor.js +179 -28
  94. package/dist/passes/Prd02ContactShadowsContributor.js.map +1 -1
  95. package/dist/post/v2Stages.d.ts.map +1 -1
  96. package/dist/post/v2Stages.js +2 -0
  97. package/dist/post/v2Stages.js.map +1 -1
  98. package/dist/program/ProgramFeatures.d.ts +6 -0
  99. package/dist/program/ProgramFeatures.d.ts.map +1 -1
  100. package/dist/program/ProgramFeatures.js +11 -5
  101. package/dist/program/ProgramFeatures.js.map +1 -1
  102. package/dist/program/ProgramGenerator.d.ts +6 -0
  103. package/dist/program/ProgramGenerator.d.ts.map +1 -1
  104. package/dist/program/ProgramGenerator.js +36 -1
  105. package/dist/program/ProgramGenerator.js.map +1 -1
  106. package/dist/program/ProgramKey.d.ts.map +1 -1
  107. package/dist/program/ProgramKey.js +4 -1
  108. package/dist/program/ProgramKey.js.map +1 -1
  109. package/dist/program/chunks/shadow_forward.glsl.d.ts +1 -1
  110. package/dist/program/chunks/shadow_forward.glsl.d.ts.map +1 -1
  111. package/dist/program/chunks/shadow_forward.glsl.js +4 -1
  112. package/dist/program/chunks/shadow_forward.glsl.js.map +1 -1
  113. package/dist/quality/DirectPath.d.ts +56 -0
  114. package/dist/quality/DirectPath.d.ts.map +1 -0
  115. package/dist/quality/DirectPath.js +74 -0
  116. package/dist/quality/DirectPath.js.map +1 -0
  117. package/dist/renderer/Background.d.ts +0 -5
  118. package/dist/renderer/Background.d.ts.map +1 -1
  119. package/dist/renderer/Background.js +56 -4
  120. package/dist/renderer/Background.js.map +1 -1
  121. package/dist/renderer/InstanceFrustumCull.d.ts +41 -0
  122. package/dist/renderer/InstanceFrustumCull.d.ts.map +1 -0
  123. package/dist/renderer/InstanceFrustumCull.js +138 -0
  124. package/dist/renderer/InstanceFrustumCull.js.map +1 -0
  125. package/dist/renderer/ShadowOrchestration.d.ts +2 -0
  126. package/dist/renderer/ShadowOrchestration.d.ts.map +1 -1
  127. package/dist/renderer/ShadowOrchestration.js +1 -0
  128. package/dist/renderer/ShadowOrchestration.js.map +1 -1
  129. package/dist/renderer/coreOutputPostRoute.d.ts +0 -5
  130. package/dist/renderer/coreOutputPostRoute.d.ts.map +1 -1
  131. package/dist/renderer/coreOutputPostRoute.js +12 -2
  132. package/dist/renderer/coreOutputPostRoute.js.map +1 -1
  133. package/dist/resources/InstanceBuffer.d.ts +2 -0
  134. package/dist/resources/InstanceBuffer.d.ts.map +1 -1
  135. package/dist/resources/InstanceBuffer.js +23 -0
  136. package/dist/resources/InstanceBuffer.js.map +1 -1
  137. package/dist/shaders/chunks/contact_shadow.glsl.d.ts +11 -6
  138. package/dist/shaders/chunks/contact_shadow.glsl.d.ts.map +1 -1
  139. package/dist/shaders/chunks/contact_shadow.glsl.js +41 -19
  140. package/dist/shaders/chunks/contact_shadow.glsl.js.map +1 -1
  141. package/dist/shaders/chunks/contact_shadow_mask.glsl.d.ts +12 -0
  142. package/dist/shaders/chunks/contact_shadow_mask.glsl.d.ts.map +1 -0
  143. package/dist/shaders/chunks/contact_shadow_mask.glsl.js +21 -0
  144. package/dist/shaders/chunks/contact_shadow_mask.glsl.js.map +1 -0
  145. package/dist/shaders/chunks/lighting_ibl.glsl.d.ts +6 -1
  146. package/dist/shaders/chunks/lighting_ibl.glsl.d.ts.map +1 -1
  147. package/dist/shaders/chunks/lighting_ibl.glsl.js +8 -2
  148. package/dist/shaders/chunks/lighting_ibl.glsl.js.map +1 -1
  149. package/dist/shadows/CascadeUse.d.ts +31 -0
  150. package/dist/shadows/CascadeUse.d.ts.map +1 -0
  151. package/dist/shadows/CascadeUse.js +60 -0
  152. package/dist/shadows/CascadeUse.js.map +1 -0
  153. package/dist/shadows/Prd02DepthShaderLibrary.d.ts +7 -1
  154. package/dist/shadows/Prd02DepthShaderLibrary.d.ts.map +1 -1
  155. package/dist/shadows/Prd02DepthShaderLibrary.js +12 -3
  156. package/dist/shadows/Prd02DepthShaderLibrary.js.map +1 -1
  157. package/dist/shadows/Prd02ShadowBridge.d.ts +12 -1
  158. package/dist/shadows/Prd02ShadowBridge.d.ts.map +1 -1
  159. package/dist/shadows/Prd02ShadowBridge.js +17 -5
  160. package/dist/shadows/Prd02ShadowBridge.js.map +1 -1
  161. package/dist/shadows/Prd02ShadowsContributor.d.ts +4 -0
  162. package/dist/shadows/Prd02ShadowsContributor.d.ts.map +1 -1
  163. package/dist/shadows/Prd02ShadowsContributor.js +3 -1
  164. package/dist/shadows/Prd02ShadowsContributor.js.map +1 -1
  165. package/dist/shadows/ShadowFilterTier.d.ts +51 -0
  166. package/dist/shadows/ShadowFilterTier.d.ts.map +1 -0
  167. package/dist/shadows/ShadowFilterTier.js +89 -0
  168. package/dist/shadows/ShadowFilterTier.js.map +1 -0
  169. package/dist/shadows/ShadowSystem.d.ts +15 -0
  170. package/dist/shadows/ShadowSystem.d.ts.map +1 -1
  171. package/dist/shadows/ShadowSystem.js +12 -2
  172. package/dist/shadows/ShadowSystem.js.map +1 -1
  173. package/dist/shadows/shadowLegacy.d.ts +12 -0
  174. package/dist/shadows/shadowLegacy.d.ts.map +1 -1
  175. package/dist/shadows/shadowLegacy.js +24 -0
  176. package/dist/shadows/shadowLegacy.js.map +1 -1
  177. package/dist/webgl2/BloomFusion.d.ts +31 -0
  178. package/dist/webgl2/BloomFusion.d.ts.map +1 -0
  179. package/dist/webgl2/BloomFusion.js +25 -0
  180. package/dist/webgl2/BloomFusion.js.map +1 -0
  181. package/dist/webgl2/ContextLifecycle.d.ts +14 -0
  182. package/dist/webgl2/ContextLifecycle.d.ts.map +1 -1
  183. package/dist/webgl2/ContextLifecycle.js +44 -5
  184. package/dist/webgl2/ContextLifecycle.js.map +1 -1
  185. package/dist/webgl2/LegacyPost.d.ts +30 -0
  186. package/dist/webgl2/LegacyPost.d.ts.map +1 -1
  187. package/dist/webgl2/LegacyPost.js +259 -27
  188. package/dist/webgl2/LegacyPost.js.map +1 -1
  189. package/dist/webgl2/MultiDraw.d.ts +2 -0
  190. package/dist/webgl2/MultiDraw.d.ts.map +1 -1
  191. package/dist/webgl2/MultiDraw.js +33 -7
  192. package/dist/webgl2/MultiDraw.js.map +1 -1
  193. package/dist/webgl2/Samplers.d.ts +10 -1
  194. package/dist/webgl2/Samplers.d.ts.map +1 -1
  195. package/dist/webgl2/Samplers.js +24 -1
  196. package/dist/webgl2/Samplers.js.map +1 -1
  197. package/dist/webgl2/TextureFormats.d.ts +12 -0
  198. package/dist/webgl2/TextureFormats.d.ts.map +1 -1
  199. package/dist/webgl2/TextureFormats.js +16 -0
  200. package/dist/webgl2/TextureFormats.js.map +1 -1
  201. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"ShadowOrchestration.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/ShadowOrchestration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShadowOrchestration.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/ShadowOrchestration.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,gFAAgF;AAEhF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAGpH,OAAO,EAAqB,iBAAiB,EAAqB,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAA8B,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAA+B,MAAM,8BAA8B,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAa,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAa,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/N,MAAM,UAAU,uBAAuB,CAAC,MAAmD;IACzF,OAAO,MAAM,YAAY,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAmD;IAC9F,IAAI,MAAM,YAAY,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IACrC,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAmD,EAAE,MAAiC;IACrH,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3F,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,KAAK,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AAC5F,CAAC;AAED,SAAS,gCAAgC,CAAC,MAAiC;IACzE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAmB;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,KAAK,YAAY,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,OAAO,aAAa,CAAC;QACnB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAmB,EAAE,KAA4B,EAAE,cAA0C;IACpI,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACxE,OAAO,YAAY,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,6BAA6B,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAiB;IACtD,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAS;QACrB,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;KAChC,CAAC;IACF,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,MAAM,KAAK,GAA+D;QACxE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QACxC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QACzC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;QACvC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACzC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QACxC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;KAC1C,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,0BAA0B;IACjC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACjC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAoB,EAAE,MAAoB;IACtE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,mBAAmB,CAC1B,WAAuB,EACvB,UAAkB,EAClB,WAAmB,EACnB,UAAsB,EACtB,QAAgB,EAChB,SAAuB,EACvB,IAAY;IAEZ,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;IACzE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,GAAG,GAAG,QAAQ,GAAG,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9D,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,QAAQ,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAS,EAAE,MAAY,EAAE,EAAQ;IACrD,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO;QACL,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,KAA4B,EAAE,cAAiD;IACpH,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAChC,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;IACD,MAAM,KAAK,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5F,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7D,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,EAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,EAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,EAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,EAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,EAC5B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAC7B,CAAC;IACF,OAAO,YAAY,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,qBAAqB,CAAC,cAAiD;IAK9E,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAS,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACpD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,eAAe,CAAC,KAA0E;IACjG,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACX,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAW,EAAE,KAA0E;IACvH,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,aAAa,CAAC,MAAoB;IACzC,OAAO;QACL,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAuB;IAC7C,MAAM,GAAG,GAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACjG,MAAM,GAAG,GAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACjG,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACtB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,2BAA2B,CAAC,KAA4B;IAC/D,OAAO,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,KAAwC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7F,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,SAAS,CAAC,KAAW,EAAE,MAAc;IAC5C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,OAAO,CAAC,IAAU,EAAE,KAAW;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,IAAU,EAAE,KAAW;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,SAAS,CAAC,IAAU,EAAE,KAAW;IACxC,OAAO;QACL,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAU,EAAE,KAAW;IACtC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,OAAO,0BAA0B;IAChB;IAArB,YAAqB,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAE3C,8FAA8F;IACtF,uBAAuB,CAAC,IAAY;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC7C,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,QAAQ,CAAC;QAC3G,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YACjD,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,6BAA6B;YACpC,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;SACzF,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wBAAwB,CAAC,OAYxB;QACC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACtE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,eAAe,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5C,mEAAmE;YACnE,qEAAqE;YACrE,qEAAqE;YACrE,uEAAuE;YACvE,2DAA2D;YAC3D,mEAAmE;YACnE,OAAO,4BAA4B,CAAC;gBAClC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,kFAAkF;gBAClF,IAAI,EAAE,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ;gBACvE,KAAK,EAAE,eAAe,EAAE;aACzB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,iBAAiB,CAAC,+CAA+C,EAAE,kCAAkC,EAAE;gBAC/G,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACrG,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,6BAA6B,CAAC;gBACxC,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,iBAAiB,CAAC,wEAAwE,EAAE,+BAA+B,EAAE;gBACrI,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;aAClC,CAAC,CAAC;QACL,CAAC;QACD,IACE,KAAK,YAAY,gBAAgB;eAC9B,OAAO,CAAC,MAAM,YAAY,iBAAiB;eAC3C,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,EAChD,CAAC;YACD,OAAO,IAAI,CAAC,gCAAgC,CAAC;gBAC3C,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,KAAK;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW;YACnD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,oBAAoB,CAAC;YACjE,CAAC,CAAC,+BAA+B,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,gCAAgC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5G,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;YAC9B,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAChC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAChC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM;YACpC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU;YAC5C,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,eAAe;YACtD,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,qBAAqB;SAC5D,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,KAAK;YACL,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,SAAS;YACT,oBAAoB,EAAE,WAAW;YACjC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;YACtC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3D,CAAC,CAAC;QACH,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAClH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,gBAAgB,IAAI,MAAM,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;gBACjH,MAAM,IAAI,iBAAiB,CAAC,iEAAiE,EAAE,uBAAuB,EAAE;oBACtH,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,UAAU,CAAC,mBAAmB,CAAC;YACpC,WAAW;YACX,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ;YACxC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAChC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY;SACjD,CAAC,IAAI,SAAS,CAAC;IAClB,CAAC;IAEO,gCAAgC,CAAC,OAMxC;QACC,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,iBAAiB,CAAC,qDAAqD,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAClI,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QACnD,MAAM,MAAM,GAAS;YACnB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;SAC/B,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;YACtC,YAAY;YACZ,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;YACzB,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;YACvB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,IAAI,GAAG;YAClD,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAChC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAChC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM;YACpC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU;YAC5C,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,cAAc;SACrD,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,uBAAuB,CAAC;YAC5C,MAAM,EAAE;gBACN,QAAQ;gBACR,MAAM;gBACN,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW;gBACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;aAC9B;YACD,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;YAC5C,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,cAAc,IAAI,IAAI;YACrD,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS,KAAK,KAAK;SACrD,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC;YACzC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,KAAK;YACtB,QAAQ;YACR,sBAAsB,EAAE,aAAa;YACrC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;SACvC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACnH,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QACvC,MAAM,IAAI,GAAG,WAAW,CAAC,oBAAoB,CAAC;YAC5C,aAAa;YACb,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ;YACxC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAChC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY;SACjD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACvE,OAAO;YACL,GAAG,KAAK;YACR,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjD,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;gBACxB,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG;gBACtB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAE;aACxB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAEO,6BAA6B,CAAC,OAMrC;QACC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;YAC9C,MAAM,IAAI,iBAAiB,CAAC,4FAA4F,EAAE,uCAAuC,EAAE;gBACjK,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,GAAG,CAAC;QAC/C,MAAM,YAAY,GAAG,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,0BAA0B,EAAE,CAAC;QAC/C,MAAM,gBAAgB,GAAG;YACvB,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAChC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM;YACpC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU;YAC5C,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,eAAe;SACvD,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,OAAO,EAAE,OAAO,CAAC,KAAK;gBACtB,SAAS,EAAE,IAAI,SAAS,CAAC,EAAE,GAAG,gBAAgB,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,uBAAuB,SAAS,IAAI,EAAE,EAAE,CAAC;gBAClI,oBAAoB,EAAE,UAAU;gBAChC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;aACvC,CAAC,CAAC;YACH,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAClH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,MAAM,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,iBAAiB,CAAC,kEAAkE,EAAE,kCAAkC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAChJ,CAAC;YACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClE,mBAAmB,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YACtD,KAAK,EAAE,IAAI,GAAG,CAAC;YACf,MAAM,EAAE,IAAI,GAAG,CAAC;YAChB,KAAK,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,uBAAuB,QAAQ;YACxE,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QACH,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC;YACjC,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,WAAW,CAAC,YAAY;YACjC,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;YAC1H,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,IAAI,cAAc,CAAC;gBAC1B,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,WAAW,CAAC,YAAY;gBACjC,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;gBAC1H,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,WAAW,EAAE,YAAY,EAAE;YAC3B,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ;YACxC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;YAC1C,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;YAChC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY;YAChD,UAAU,EAAE;gBACV,OAAO;gBACP,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC1I,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;gBAC1B,YAAY;gBACZ,SAAS;gBACT,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ;gBACxC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,SAAS;gBAC1C,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBACjE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI;gBAChC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY;aACjD;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -39,10 +39,5 @@ export declare function legacyPostEffects(postprocess: object): readonly string[
39
39
  * executor uses.
40
40
  */
41
41
  export declare function resolveCoreOutputPostRoute(coreOutputOn: boolean, postprocess: object | undefined, v2DeclineReason?: string | null): CoreOutputPostRoute;
42
- /**
43
- * The frame's flags with `A3D_QR_CORE_OUTPUT` explicitly off, so frame
44
- * contributors (lane 07 vfx, transmission capture) pick the legacy `color`
45
- * resource the legacy-routed graph actually writes.
46
- */
47
42
  export declare function withCoreOutputOff(flags: QrFlags): QrFlags;
48
43
  //# sourceMappingURL=coreOutputPostRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coreOutputPostRoute.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/coreOutputPostRoute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,4GAA4G;IAC5G,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,gJAAgJ;IAChJ,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,+BAA+B,uIAC0F,CAAC;AAEvI,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAIxE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,eAAe,GAAE,MAAM,GAAG,IAAW,GACpC,mBAAmB,CASrB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKzD"}
1
+ {"version":3,"file":"coreOutputPostRoute.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/coreOutputPostRoute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,sGAAsG;IACtG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,4GAA4G;IAC5G,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,gJAAgJ;IAChJ,QAAQ,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,+BAA+B,uIAC0F,CAAC;AAEvI,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAIxE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,eAAe,GAAE,MAAM,GAAG,IAAW,GACpC,mBAAmB,CASrB;AASD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYzD"}
@@ -46,10 +46,20 @@ export function resolveCoreOutputPostRoute(coreOutputOn, postprocess, v2DeclineR
46
46
  * contributors (lane 07 vfx, transmission capture) pick the legacy `color`
47
47
  * resource the legacy-routed graph actually writes.
48
48
  */
49
+ const coreOutputOffCache = new WeakMap();
49
50
  export function withCoreOutputOff(flags) {
50
- return {
51
- values: { ...flags.values, A3D_QR_CORE_OUTPUT: false },
51
+ // Asked for every frame of the direct path with the same app flags: one derived (frozen) object per input, so the
52
+ // registries' per-flags memo keeps hitting instead of seeing a new flags object each frame.
53
+ const cached = coreOutputOffCache.get(flags);
54
+ if (cached !== undefined)
55
+ return cached;
56
+ const derived = {
57
+ values: Object.freeze({ ...flags.values, A3D_QR_CORE_OUTPUT: false }),
52
58
  on: (name) => (name === "A3D_QR_CORE_OUTPUT" ? false : flags.on(name))
53
59
  };
60
+ // Only a flags object whose own `values` are frozen is immutable, so only then is the derived one safe to reuse.
61
+ if (Object.isFrozen(flags.values))
62
+ coreOutputOffCache.set(flags, derived);
63
+ return derived;
54
64
  }
55
65
  //# sourceMappingURL=coreOutputPostRoute.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coreOutputPostRoute.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/coreOutputPostRoute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAmBH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,oIAAoI,CAAC;AAEvI,4FAA4F;AAC5F,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC,WAAsC,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;SAC3I,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAAqB,EACrB,WAA+B,EAC/B,kBAAiC,IAAI;IAErC,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjF,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5F,IAAI,eAAe,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3F,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,+BAA+B,KAAK,eAAe,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE;KACnJ,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE;QACtD,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"coreOutputPostRoute.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/renderer/coreOutputPostRoute.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAmBH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,oIAAoI,CAAC;AAEvI,4FAA4F;AAC5F,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,OAAO,MAAM,CAAC,OAAO,CAAC,WAAsC,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;SAC3I,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAAqB,EACrB,WAA+B,EAC/B,kBAAiC,IAAI;IAErC,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjF,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5F,IAAI,eAAe,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3F,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,+BAA+B,KAAK,eAAe,EAAE,EAAE,OAAO,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE;KACnJ,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAoB,CAAC;AAE3D,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,kHAAkH;IAClH,4FAA4F;IAC5F,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,OAAO,GAAY;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;QACrE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;KACvE,CAAC;IACF,iHAAiH;IACjH,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -18,6 +18,8 @@ export declare class InstanceBuffer implements InstanceBufferLike {
18
18
  private allocated;
19
19
  count: number;
20
20
  version: number;
21
+ private matricesNeedUpload;
22
+ private colorsNeedUpload;
21
23
  constructor(device: RenderDevice, capacity: number, options?: {
22
24
  colors?: boolean;
23
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceBuffer.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/resources/InstanceBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAKhE,qBAAa,cAAe,YAAW,kBAAkB;IAUrD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAV3B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,SAAS,CAAS;IACnB,KAAK,SAAK;IACV,OAAO,SAAK;gBAGA,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EACjC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAchC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,UAAU;IAUlB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAUlD,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAWhC,IAAI,IAAI;QAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAA;KAAE;IAMpF,OAAO,IAAI,IAAI;CAIhB"}
1
+ {"version":3,"file":"InstanceBuffer.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/resources/InstanceBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAahE,qBAAa,cAAe,YAAW,kBAAkB;IAarD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAb3B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,SAAS,CAAS;IACnB,KAAK,SAAK;IACV,OAAO,SAAK;IAEnB,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,gBAAgB,CAAQ;gBAGb,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EACjC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAchC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,UAAU;IAWlB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAclD,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAahC,IAAI,IAAI;QAAE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,CAAA;KAAE;IAMpF,OAAO,IAAI,IAAI;CAIhB"}
@@ -8,6 +8,16 @@
8
8
  */
9
9
  import {} from "../RenderDevice.js";
10
10
  const MIN_CAPACITY = 16;
11
+ /** True when the first `length` scalars of `stored` already equal `incoming` (stops at the first difference). */
12
+ const sameScalars = (stored, incoming, length) => {
13
+ if (incoming.length < length || stored.length < length)
14
+ return false;
15
+ for (let i = 0; i < length; i += 1) {
16
+ if (stored[i] !== incoming[i])
17
+ return false;
18
+ }
19
+ return true;
20
+ };
11
21
  const pow2Ceil = (value) => 2 ** Math.ceil(Math.log2(Math.max(1, value)));
12
22
  export class InstanceBuffer {
13
23
  device;
@@ -19,6 +29,9 @@ export class InstanceBuffer {
19
29
  allocated;
20
30
  count = 0;
21
31
  version = 0;
32
+ // A (re)allocated device buffer holds no data yet, so the next write must upload even if the CPU copy matches.
33
+ matricesNeedUpload = true;
34
+ colorsNeedUpload = true;
22
35
  constructor(device, capacity, options) {
23
36
  this.device = device;
24
37
  this.capacity = capacity;
@@ -42,6 +55,7 @@ export class InstanceBuffer {
42
55
  this.matrices = matrices;
43
56
  const oldMatrix = this.matrixBuffer;
44
57
  this.matrixBuffer = this.device.createBuffer("vertex", matrices.byteLength);
58
+ this.matricesNeedUpload = true;
45
59
  // Dispose of the old buffer first so device-side VAOs referencing it are
46
60
  // evicted (PRD §7.1) before a same-content buffer takes its place.
47
61
  oldMatrix.dispose();
@@ -58,6 +72,7 @@ export class InstanceBuffer {
58
72
  this.colors = colors;
59
73
  const oldColors = this.colorBuffer;
60
74
  this.colorBuffer = this.device.createBuffer("vertex", colors.byteLength);
75
+ this.colorsNeedUpload = true;
61
76
  oldColors.dispose();
62
77
  }
63
78
  setMatrices(m, count) {
@@ -65,8 +80,13 @@ export class InstanceBuffer {
65
80
  if (n > this.capacity)
66
81
  throw new Error(`INSTANCE_CAPACITY_EXCEEDED:${n}>${this.capacity}`);
67
82
  this.ensureAllocated(n, false);
83
+ // Static instance sets (forests, props) are re-submitted every frame by the forward pass; skip the copy,
84
+ // the GPU upload and the version bump when the contents did not change.
85
+ if (!this.matricesNeedUpload && n === this.count && sameScalars(this.matrices, m, n * 16))
86
+ return;
68
87
  this.matrices.set(m.subarray(0, n * 16));
69
88
  this.device.updateBuffer(this.matrixBuffer, 0, this.matrices.subarray(0, n * 16));
89
+ this.matricesNeedUpload = false;
70
90
  this.count = n;
71
91
  this.version += 1;
72
92
  }
@@ -79,8 +99,11 @@ export class InstanceBuffer {
79
99
  this.ensureAllocated(n, true);
80
100
  if (this.colors.length < n * 4)
81
101
  this.growColors(n);
102
+ if (!this.colorsNeedUpload && sameScalars(this.colors, c, n * 4))
103
+ return;
82
104
  this.colors.set(c.subarray(0, n * 4));
83
105
  this.device.updateBuffer(this.colorBuffer, 0, this.colors.subarray(0, n * 4));
106
+ this.colorsNeedUpload = false;
84
107
  this.version += 1;
85
108
  }
86
109
  bind() {
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceBuffer.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/resources/InstanceBuffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstanceBuffer.js","sourceRoot":"","sources":["../../../../../packages/rendering/src/resources/InstanceBuffer.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,17 @@
1
1
  /**
2
2
  * a3d_prd02_contact_shadow — screen-space contact shadow march
3
3
  * (PRD-02 §6.5/§8.6). Marches up to 16 steps along the primary shadowed
4
- * light's view-space direction over `length` against the scene depth buffer
5
- * (linearized to metres), with a `thickness` test and interleaved-gradient
6
- * noise jitter. Returns a soft [0,1] visibility applied inside that light's
7
- * V_l only — never to total colour. The pass reports
8
- * contactShadows.passExecuted through C-31 diagnostics.
4
+ * light's world-space direction over `length` against the scene depth buffer,
5
+ * with a `thickness` test and interleaved-gradient noise jitter. Returns a soft
6
+ * [0,1] visibility applied inside that light's V_l only — never to total colour.
7
+ * The pass reports contactShadows.passExecuted through C-31 diagnostics.
8
+ *
9
+ * World space (not view space): the production renderer hands the frame hooks a
10
+ * camera that carries only the combined view-projection matrix, so the march
11
+ * unprojects with its inverse and measures depth as the clip-space w (the
12
+ * view-space distance for a perspective camera) of the combined matrix. That
13
+ * needs no separate view/projection matrices and no near/far for perspective.
9
14
  */
10
15
  export declare const CONTACT_SHADOW_CHUNK_ID = "a3d_prd02_contact_shadow";
11
- export declare const CONTACT_SHADOW_CHUNK_GLSL = "\nuniform highp sampler2D u_prd02ContactDepth; // scene depth buffer ([0,1])\nuniform mat4 u_prd02ContactInvProj; // clip -> view\nuniform mat4 u_prd02ContactProj; // view -> clip\nuniform vec3 u_prd02ContactSun; // shadowed-light dir, view space\nuniform vec4 u_prd02ContactParams; // (length_m, thickness_m, steps, jitter)\nuniform vec2 u_prd02ContactNearFar; // (near, far)\n\nfloat a3d_prd02ContactNoise(vec2 px) {\n return fract(52.9829189 * fract(0.06711056 * px.x + 0.00583715 * px.y));\n}\n\nfloat a3d_prd02ContactLinear(float z) {\n float n = u_prd02ContactNearFar.x;\n float f = u_prd02ContactNearFar.y;\n return (n * f) / (f - z * (f - n));\n}\n\nfloat a3d_contactShadow(vec2 uv) {\n float sceneZ = texture(u_prd02ContactDepth, uv).r;\n vec4 ndc = vec4(uv * 2.0 - 1.0, sceneZ * 2.0 - 1.0, 1.0);\n vec4 vpos = u_prd02ContactInvProj * ndc;\n vec3 pos = vpos.xyz / vpos.w;\n float len = u_prd02ContactParams.x;\n float thickness = u_prd02ContactParams.y;\n float steps = max(u_prd02ContactParams.z, 1.0);\n float jitter = a3d_prd02ContactNoise(gl_FragCoord.xy) * u_prd02ContactParams.w;\n float occluded = 0.0;\n for (int i = 1; i <= 16; i++) {\n if (float(i) > steps) break;\n float t = (float(i) - jitter) / steps;\n vec3 p = pos + u_prd02ContactSun * (t * len);\n vec4 clip = u_prd02ContactProj * vec4(p, 1.0);\n vec3 r = clip.xyz / clip.w;\n vec2 suv = r.xy * 0.5 + 0.5;\n if (suv.x < 0.0 || suv.x > 1.0 || suv.y < 0.0 || suv.y > 1.0) continue;\n float blocker = a3d_prd02ContactLinear(texture(u_prd02ContactDepth, suv).r);\n if (blocker < -p.z - thickness) occluded = max(occluded, 1.0 - t);\n }\n return 1.0 - occluded;\n}\n";
16
+ export declare const CONTACT_SHADOW_CHUNK_GLSL = "\nuniform highp sampler2D u_prd02ContactDepth; // scene depth buffer ([0,1])\nuniform mat4 u_prd02ContactInvViewProj; // clip -> world\nuniform mat4 u_prd02ContactViewProj; // world -> clip\nuniform vec3 u_prd02ContactSun; // shadowed-light direction TOWARD the light, world space\nuniform vec4 u_prd02ContactParams; // (length_m, thickness_m, steps, jitter)\nuniform vec3 u_prd02ContactNearFar; // (near, far, orthographic 0|1); only the orthographic flag is read\n\nfloat a3d_prd02ContactNoise(vec2 px) {\n return fract(52.9829189 * fract(0.06711056 * px.x + 0.00583715 * px.y));\n}\n\nvec3 a3d_prd02ContactWorld(vec2 uv, float z) {\n vec4 w = u_prd02ContactInvViewProj * vec4(uv * 2.0 - 1.0, z * 2.0 - 1.0, 1.0);\n return w.xyz / w.w;\n}\n\n// How far the march point sits behind the visible surface at the same screen position, in world units along the view\n// direction. Perspective: the clip-space w difference (view-space distance). Orthographic: the projection is linear, but the\n// near/far the frame camera reports are not guaranteed to be the ones the projection matrix was built with (the first GPU\n// run of an orthographic scene gave a mask of all ones for that reason), so the gap is measured in world space along the\n// view direction recovered from the inverse view-projection instead.\nfloat a3d_prd02ContactBehind(vec4 clip, vec3 p, vec3 blockerPos, vec2 suv) {\n if (u_prd02ContactNearFar.z > 0.5) {\n vec3 viewDir = normalize(a3d_prd02ContactWorld(suv, 1.0) - a3d_prd02ContactWorld(suv, 0.0));\n return dot(p - blockerPos, viewDir);\n }\n return clip.w - (u_prd02ContactViewProj * vec4(blockerPos, 1.0)).w;\n}\n\nfloat a3d_contactShadow(vec2 uv) {\n float sceneZ = texture(u_prd02ContactDepth, uv).r;\n vec3 pos = a3d_prd02ContactWorld(uv, sceneZ);\n float len = u_prd02ContactParams.x;\n float thickness = u_prd02ContactParams.y;\n float steps = max(u_prd02ContactParams.z, 1.0);\n float jitter = a3d_prd02ContactNoise(gl_FragCoord.xy) * u_prd02ContactParams.w;\n float occluded = 0.0;\n for (int i = 1; i <= 16; i++) {\n if (float(i) > steps) break;\n float t = (float(i) - jitter) / steps;\n vec3 p = pos + u_prd02ContactSun * (t * len);\n vec4 clip = u_prd02ContactViewProj * vec4(p, 1.0);\n if (clip.w <= 0.0) continue;\n vec3 r = clip.xyz / clip.w;\n vec2 suv = r.xy * 0.5 + 0.5;\n if (suv.x < 0.0 || suv.x > 1.0 || suv.y < 0.0 || suv.y > 1.0) continue;\n float blockerZ = texture(u_prd02ContactDepth, suv).r;\n vec3 blockerPos = a3d_prd02ContactWorld(suv, blockerZ);\n // The ray point must sit behind the visible surface by more than the thickness parameter (self-shadow bias) and by less than\n // twice the march length. The upper bound stops a foreground prop between the camera and the receiver from\n // \"occluding\" every ray whose screen position lands behind it (ghost shadows), while still letting a solid\n // caster shade rays that dive up to one march length into its volume.\n float behind = a3d_prd02ContactBehind(clip, p, blockerPos, suv);\n if (behind > thickness && behind < len * 2.0) occluded = max(occluded, 1.0 - t);\n }\n return 1.0 - occluded;\n}\n";
12
17
  //# sourceMappingURL=contact_shadow.glsl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact_shadow.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,eAAO,MAAM,yBAAyB,muDAyCrC,CAAC"}
1
+ {"version":3,"file":"contact_shadow.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAElE,eAAO,MAAM,yBAAyB,irGA0DrC,CAAC"}
@@ -1,36 +1,51 @@
1
1
  /**
2
2
  * a3d_prd02_contact_shadow — screen-space contact shadow march
3
3
  * (PRD-02 §6.5/§8.6). Marches up to 16 steps along the primary shadowed
4
- * light's view-space direction over `length` against the scene depth buffer
5
- * (linearized to metres), with a `thickness` test and interleaved-gradient
6
- * noise jitter. Returns a soft [0,1] visibility applied inside that light's
7
- * V_l only — never to total colour. The pass reports
8
- * contactShadows.passExecuted through C-31 diagnostics.
4
+ * light's world-space direction over `length` against the scene depth buffer,
5
+ * with a `thickness` test and interleaved-gradient noise jitter. Returns a soft
6
+ * [0,1] visibility applied inside that light's V_l only — never to total colour.
7
+ * The pass reports contactShadows.passExecuted through C-31 diagnostics.
8
+ *
9
+ * World space (not view space): the production renderer hands the frame hooks a
10
+ * camera that carries only the combined view-projection matrix, so the march
11
+ * unprojects with its inverse and measures depth as the clip-space w (the
12
+ * view-space distance for a perspective camera) of the combined matrix. That
13
+ * needs no separate view/projection matrices and no near/far for perspective.
9
14
  */
10
15
  export const CONTACT_SHADOW_CHUNK_ID = "a3d_prd02_contact_shadow";
11
16
  export const CONTACT_SHADOW_CHUNK_GLSL = /* glsl */ `
12
17
  uniform highp sampler2D u_prd02ContactDepth; // scene depth buffer ([0,1])
13
- uniform mat4 u_prd02ContactInvProj; // clip -> view
14
- uniform mat4 u_prd02ContactProj; // view -> clip
15
- uniform vec3 u_prd02ContactSun; // shadowed-light dir, view space
18
+ uniform mat4 u_prd02ContactInvViewProj; // clip -> world
19
+ uniform mat4 u_prd02ContactViewProj; // world -> clip
20
+ uniform vec3 u_prd02ContactSun; // shadowed-light direction TOWARD the light, world space
16
21
  uniform vec4 u_prd02ContactParams; // (length_m, thickness_m, steps, jitter)
17
- uniform vec2 u_prd02ContactNearFar; // (near, far)
22
+ uniform vec3 u_prd02ContactNearFar; // (near, far, orthographic 0|1); only the orthographic flag is read
18
23
 
19
24
  float a3d_prd02ContactNoise(vec2 px) {
20
25
  return fract(52.9829189 * fract(0.06711056 * px.x + 0.00583715 * px.y));
21
26
  }
22
27
 
23
- float a3d_prd02ContactLinear(float z) {
24
- float n = u_prd02ContactNearFar.x;
25
- float f = u_prd02ContactNearFar.y;
26
- return (n * f) / (f - z * (f - n));
28
+ vec3 a3d_prd02ContactWorld(vec2 uv, float z) {
29
+ vec4 w = u_prd02ContactInvViewProj * vec4(uv * 2.0 - 1.0, z * 2.0 - 1.0, 1.0);
30
+ return w.xyz / w.w;
31
+ }
32
+
33
+ // How far the march point sits behind the visible surface at the same screen position, in world units along the view
34
+ // direction. Perspective: the clip-space w difference (view-space distance). Orthographic: the projection is linear, but the
35
+ // near/far the frame camera reports are not guaranteed to be the ones the projection matrix was built with (the first GPU
36
+ // run of an orthographic scene gave a mask of all ones for that reason), so the gap is measured in world space along the
37
+ // view direction recovered from the inverse view-projection instead.
38
+ float a3d_prd02ContactBehind(vec4 clip, vec3 p, vec3 blockerPos, vec2 suv) {
39
+ if (u_prd02ContactNearFar.z > 0.5) {
40
+ vec3 viewDir = normalize(a3d_prd02ContactWorld(suv, 1.0) - a3d_prd02ContactWorld(suv, 0.0));
41
+ return dot(p - blockerPos, viewDir);
42
+ }
43
+ return clip.w - (u_prd02ContactViewProj * vec4(blockerPos, 1.0)).w;
27
44
  }
28
45
 
29
46
  float a3d_contactShadow(vec2 uv) {
30
47
  float sceneZ = texture(u_prd02ContactDepth, uv).r;
31
- vec4 ndc = vec4(uv * 2.0 - 1.0, sceneZ * 2.0 - 1.0, 1.0);
32
- vec4 vpos = u_prd02ContactInvProj * ndc;
33
- vec3 pos = vpos.xyz / vpos.w;
48
+ vec3 pos = a3d_prd02ContactWorld(uv, sceneZ);
34
49
  float len = u_prd02ContactParams.x;
35
50
  float thickness = u_prd02ContactParams.y;
36
51
  float steps = max(u_prd02ContactParams.z, 1.0);
@@ -40,12 +55,19 @@ float a3d_contactShadow(vec2 uv) {
40
55
  if (float(i) > steps) break;
41
56
  float t = (float(i) - jitter) / steps;
42
57
  vec3 p = pos + u_prd02ContactSun * (t * len);
43
- vec4 clip = u_prd02ContactProj * vec4(p, 1.0);
58
+ vec4 clip = u_prd02ContactViewProj * vec4(p, 1.0);
59
+ if (clip.w <= 0.0) continue;
44
60
  vec3 r = clip.xyz / clip.w;
45
61
  vec2 suv = r.xy * 0.5 + 0.5;
46
62
  if (suv.x < 0.0 || suv.x > 1.0 || suv.y < 0.0 || suv.y > 1.0) continue;
47
- float blocker = a3d_prd02ContactLinear(texture(u_prd02ContactDepth, suv).r);
48
- if (blocker < -p.z - thickness) occluded = max(occluded, 1.0 - t);
63
+ float blockerZ = texture(u_prd02ContactDepth, suv).r;
64
+ vec3 blockerPos = a3d_prd02ContactWorld(suv, blockerZ);
65
+ // The ray point must sit behind the visible surface by more than the thickness parameter (self-shadow bias) and by less than
66
+ // twice the march length. The upper bound stops a foreground prop between the camera and the receiver from
67
+ // "occluding" every ray whose screen position lands behind it (ghost shadows), while still letting a solid
68
+ // caster shade rays that dive up to one march length into its volume.
69
+ float behind = a3d_prd02ContactBehind(clip, p, blockerPos, suv);
70
+ if (behind > thickness && behind < len * 2.0) occluded = max(occluded, 1.0 - t);
49
71
  }
50
72
  return 1.0 - occluded;
51
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contact_shadow.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCnD,CAAC"}
1
+ {"version":3,"file":"contact_shadow.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAElE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DnD,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * contact_shadow_mask — forward-shading consumer of the screen-space contact-shadow
3
+ * mask (beat-three.js PRD-2 WP-4). `a3dContactShadowMaskFactor(kind)` is multiplied into the
4
+ * visibility of the shadow-casting DIRECTIONAL light only (`kind` 0): the mask is marched along
5
+ * that sun's direction, so applying it to a spot or point light would darken surfaces by a shadow
6
+ * unrelated to that light. Ambient and environment light never see it. Strength 0 (no mask bound)
7
+ * returns exactly 1.0 so draws without `effects.contactShadows()` are unchanged. The mask is
8
+ * sampled by fragment position over the forward target size.
9
+ */
10
+ export declare const CONTACT_SHADOW_MASK_CHUNK_ID = "contact_shadow_mask";
11
+ export declare const CONTACT_SHADOW_MASK_GLSL = "\nuniform sampler2D u_contactShadowMask;\nuniform float u_contactShadowMaskStrength;\nuniform vec2 u_contactShadowMaskViewport;\nfloat a3dContactShadowMaskFactor(float kind) {\n if (kind > 0.5 || u_contactShadowMaskStrength < 0.001) return 1.0;\n float mask = texture(u_contactShadowMask, gl_FragCoord.xy / u_contactShadowMaskViewport).r;\n return mix(1.0, mask, clamp(u_contactShadowMaskStrength, 0.0, 1.0));\n}\n";
12
+ //# sourceMappingURL=contact_shadow_mask.glsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact_shadow_mask.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow_mask.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAElE,eAAO,MAAM,wBAAwB,saASpC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * contact_shadow_mask — forward-shading consumer of the screen-space contact-shadow
3
+ * mask (beat-three.js PRD-2 WP-4). `a3dContactShadowMaskFactor(kind)` is multiplied into the
4
+ * visibility of the shadow-casting DIRECTIONAL light only (`kind` 0): the mask is marched along
5
+ * that sun's direction, so applying it to a spot or point light would darken surfaces by a shadow
6
+ * unrelated to that light. Ambient and environment light never see it. Strength 0 (no mask bound)
7
+ * returns exactly 1.0 so draws without `effects.contactShadows()` are unchanged. The mask is
8
+ * sampled by fragment position over the forward target size.
9
+ */
10
+ export const CONTACT_SHADOW_MASK_CHUNK_ID = "contact_shadow_mask";
11
+ export const CONTACT_SHADOW_MASK_GLSL = /* glsl */ `
12
+ uniform sampler2D u_contactShadowMask;
13
+ uniform float u_contactShadowMaskStrength;
14
+ uniform vec2 u_contactShadowMaskViewport;
15
+ float a3dContactShadowMaskFactor(float kind) {
16
+ if (kind > 0.5 || u_contactShadowMaskStrength < 0.001) return 1.0;
17
+ float mask = texture(u_contactShadowMask, gl_FragCoord.xy / u_contactShadowMaskViewport).r;
18
+ return mix(1.0, mask, clamp(u_contactShadowMaskStrength, 0.0, 1.0));
19
+ }
20
+ `;
21
+ //# sourceMappingURL=contact_shadow_mask.glsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact_shadow_mask.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/contact_shadow_mask.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AAElE,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;;;;;;;;;CASlD,CAAC"}
@@ -24,6 +24,11 @@ export declare const LIGHTING_IBL_CHUNK_GLSL = "\nuniform samplerCube u_envSpecu
24
24
  * (which divide by pi) and applied once as exit radiance. `a3dEnvIrradiance`
25
25
  * keeps the name/scale the C-03 lobe IBL calls read from the default body
26
26
  * (true irradiance, cf. `PI * a3dSampleEnvironment(N, 8.0)` there).
27
+ *
28
+ * LIGHT-05/08: the hemisphere pair (true irradiance, no 1/pi) is split out the
29
+ * same way and applied as a plain Lambert term, as three.js r185 does for
30
+ * `HemisphereLight` (it joins `irradiance`, never `iblIrradiance`), so it
31
+ * does not feed the multiscatter energy terms of the probe.
27
32
  */
28
- export declare const LIGHTING_IBL_CALL_GLSL = "\nvec3 a3dPrd02Irradiance = a3dIndirectDiffuseIrradiance(N);\nvec3 a3dEnvIrradiance = max(a3dPrd02Irradiance - u_ambientIrradiance, vec3(0.0));\nindirectDiffuse += a3dIndirectDiffuse(a3dEnvIrradiance, V, N, material);\nindirectDiffuse += u_ambientIrradiance * material.diffuseContribution;\nindirectSpecular += a3dIndirectSpecular(a3dEnvSpecularRadiance(N, V, material.roughness), a3dEnvIrradiance, V, N, material);\n";
33
+ export declare const LIGHTING_IBL_CALL_GLSL = "\nvec3 a3dPrd02Irradiance = a3dIndirectDiffuseIrradiance(N);\nvec3 a3dHemiIrradiance = mix(u_hemiGround, u_hemiSky, dot(N, u_hemiDirection) * 0.5 + 0.5);\nvec3 a3dEnvIrradiance = max(a3dPrd02Irradiance - u_ambientIrradiance - a3dHemiIrradiance, vec3(0.0));\nindirectDiffuse += a3dIndirectDiffuse(a3dEnvIrradiance, V, N, material);\nindirectDiffuse += (u_ambientIrradiance + a3dHemiIrradiance * 0.31830989) * material.diffuseContribution;\nindirectSpecular += a3dIndirectSpecular(a3dEnvSpecularRadiance(N, V, material.roughness), a3dEnvIrradiance, V, N, material);\n";
29
34
  //# sourceMappingURL=lighting_ibl.glsl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lighting_ibl.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/lighting_ibl.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,gxGAuFnC,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,saAMlC,CAAC"}
1
+ {"version":3,"file":"lighting_ibl.glsl.d.ts","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/lighting_ibl.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,gxGAuFnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,sBAAsB,0jBAOlC,CAAC"}
@@ -111,12 +111,18 @@ vec3 a3d_iblDiffuseFresnel(vec3 f0, float roughness, float ndv) {
111
111
  * (which divide by pi) and applied once as exit radiance. `a3dEnvIrradiance`
112
112
  * keeps the name/scale the C-03 lobe IBL calls read from the default body
113
113
  * (true irradiance, cf. `PI * a3dSampleEnvironment(N, 8.0)` there).
114
+ *
115
+ * LIGHT-05/08: the hemisphere pair (true irradiance, no 1/pi) is split out the
116
+ * same way and applied as a plain Lambert term, as three.js r185 does for
117
+ * `HemisphereLight` (it joins `irradiance`, never `iblIrradiance`), so it
118
+ * does not feed the multiscatter energy terms of the probe.
114
119
  */
115
120
  export const LIGHTING_IBL_CALL_GLSL = /* glsl */ `
116
121
  vec3 a3dPrd02Irradiance = a3dIndirectDiffuseIrradiance(N);
117
- vec3 a3dEnvIrradiance = max(a3dPrd02Irradiance - u_ambientIrradiance, vec3(0.0));
122
+ vec3 a3dHemiIrradiance = mix(u_hemiGround, u_hemiSky, dot(N, u_hemiDirection) * 0.5 + 0.5);
123
+ vec3 a3dEnvIrradiance = max(a3dPrd02Irradiance - u_ambientIrradiance - a3dHemiIrradiance, vec3(0.0));
118
124
  indirectDiffuse += a3dIndirectDiffuse(a3dEnvIrradiance, V, N, material);
119
- indirectDiffuse += u_ambientIrradiance * material.diffuseContribution;
125
+ indirectDiffuse += (u_ambientIrradiance + a3dHemiIrradiance * 0.31830989) * material.diffuseContribution;
120
126
  indirectSpecular += a3dIndirectSpecular(a3dEnvSpecularRadiance(N, V, material.roughness), a3dEnvIrradiance, V, N, material);
121
127
  `;
122
128
  //# sourceMappingURL=lighting_ibl.glsl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lighting_ibl.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/lighting_ibl.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuFjD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;;;;;;CAMhD,CAAC"}
1
+ {"version":3,"file":"lighting_ibl.glsl.js","sourceRoot":"","sources":["../../../../../../packages/rendering/src/shaders/chunks/lighting_ibl.glsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuFjD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;;;;;;;CAOhD,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * PRD-2 WP-7: which sun cascades does the frame sample at all?
3
+ *
4
+ * The legacy forward path picks ONE cascade per item (`selectForwardShadowMap`): the first cascade whose far split is >= the item's world-centre
5
+ * depth, measured as view-space depth when the draw has a view matrix and as distance to the eye otherwise. A cascade that no visible item picks
6
+ * is never read, so rendering its depth map is wasted work: every cascade redraws every caster.
7
+ *
8
+ * This module evaluates that same selection per receiver, with the same expression (`forwardCascadeSelectionDepth`, shared with
9
+ * `selectForwardShadowMap`), the same item centre (`renderItemWorldCenter`) and the same camera inputs the renderer hands the forward pass
10
+ * (`resolvedCamera.viewMatrix`, `cameraPosition`). Every cascade no receiver picks is reported as unused. Because the decision is computed by the
11
+ * forward path's own function and not by a parallel formula, a skipped cascade is one the forward path cannot select for these receivers.
12
+ * Instanced receivers (SI-1) select by instance coverage (`forwardCascadePosition`); every cascade holding any of their instances counts as used.
13
+ */
14
+ import type { RenderItem } from "../contracts/renderItem.js";
15
+ export interface CascadeUseFit {
16
+ readonly index: number;
17
+ readonly splitFar: number;
18
+ /** The cascade's unbiased light view-projection (what the bridge hands the forward pass as `lightMatrix`); needed for instanced receivers. */
19
+ readonly drawViewProjection?: ArrayLike<number>;
20
+ }
21
+ /** The camera inputs `ForwardPass` receives as `cameraViewMatrix` / `cameraPosition`; they decide which depth the forward path measures. */
22
+ export interface CascadeUseCamera {
23
+ readonly viewMatrix?: Float32Array | readonly number[];
24
+ readonly eye?: readonly [number, number, number];
25
+ }
26
+ /**
27
+ * Indices of cascades no receiver can select, or `undefined` when the answer cannot be given safely (fewer than two cascades, no receivers,
28
+ * neither a view matrix nor an eye, non-finite depths). `undefined` means "render every cascade".
29
+ */
30
+ export declare function unusedCascadeIndices(fits: readonly CascadeUseFit[], receivers: readonly RenderItem[], camera: CascadeUseCamera): ReadonlySet<number> | undefined;
31
+ //# sourceMappingURL=CascadeUse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CascadeUse.d.ts","sourceRoot":"","sources":["../../../../../packages/rendering/src/shadows/CascadeUse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8IAA8I;IAC9I,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACjD;AAED,4IAA4I;AAC5I,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAAC;IACvD,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,aAAa,EAAE,EAC9B,SAAS,EAAE,SAAS,UAAU,EAAE,EAChC,MAAM,EAAE,gBAAgB,GACvB,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CA4BjC"}