@meimu/mutracer 0.1.3 → 0.1.5

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 (125) hide show
  1. package/dist/assets/bvh.worker.js +1 -1
  2. package/dist/mutracer.umd.js +4155 -4052
  3. package/docs/api.md +13 -10
  4. package/docs/materials.md +17 -26
  5. package/docs/threejs.md +35 -9
  6. package/docs/viewer.md +36 -3
  7. package/lib/Engine.js +18 -1
  8. package/lib/Engine.js.map +1 -1
  9. package/lib/main.d.ts +1 -1
  10. package/lib/main.js.map +1 -1
  11. package/lib/oidn.d.ts +1 -1
  12. package/lib/oidnBundledWeights.cdn.d.ts +2 -2
  13. package/lib/renderer/MaterialTable.d.ts +1 -0
  14. package/lib/renderer/MaterialTable.js +10 -4
  15. package/lib/renderer/MaterialTable.js.map +1 -1
  16. package/lib/renderer/WGPUBloomPass.js +18 -18
  17. package/lib/renderer/WGPUFullQuadPass.js +6 -6
  18. package/lib/renderer/WGPUJNLMDenoiser.js +69 -69
  19. package/lib/renderer/WGPURayTraceOutput.js +14 -14
  20. package/lib/renderer/WGPURayTracePass.d.ts +2 -0
  21. package/lib/renderer/WGPURayTracePass.js +17 -9
  22. package/lib/renderer/WGPURayTracePass.js.map +1 -1
  23. package/lib/renderer/WGPURenderingPipeline.js +15 -15
  24. package/lib/renderer/WebGLJNLMDenoiser.js +69 -69
  25. package/lib/renderer/WebGLRayTraceOutputPass.js +4 -4
  26. package/lib/renderer/WebGLRayTracePass.d.ts +1 -0
  27. package/lib/renderer/WebGLRayTracePass.js +8 -1
  28. package/lib/renderer/WebGLRayTracePass.js.map +1 -1
  29. package/lib/renderer/envMapCreation.d.ts +5 -1
  30. package/lib/renderer/envMapCreation.js +42 -5
  31. package/lib/renderer/envMapCreation.js.map +1 -1
  32. package/lib/renderer/geometryUpdates.js +1 -1
  33. package/lib/renderer/geometryUpdates.js.map +1 -1
  34. package/lib/renderer/glsl/chunks/cameraRay.glsl.js +12 -12
  35. package/lib/renderer/glsl/chunks/envMap.glsl.js +66 -54
  36. package/lib/renderer/glsl/chunks/envMap.glsl.js.map +1 -1
  37. package/lib/renderer/glsl/chunks/intersect.glsl.js +323 -315
  38. package/lib/renderer/glsl/chunks/intersect.glsl.js.map +1 -1
  39. package/lib/renderer/glsl/chunks/materialBuffer.glsl.js +154 -121
  40. package/lib/renderer/glsl/chunks/materialBuffer.glsl.js.map +1 -1
  41. package/lib/renderer/glsl/chunks/openPbrBsdf.glsl.js +434 -434
  42. package/lib/renderer/glsl/chunks/openPbrBsdf.glsl.js.map +1 -1
  43. package/lib/renderer/glsl/chunks/rand.glsl.js +3 -3
  44. package/lib/renderer/glsl/chunks/random.glsl.js +3 -3
  45. package/lib/renderer/glsl/chunks/rayTraceCore.glsl.js +42 -41
  46. package/lib/renderer/glsl/chunks/rayTraceCore.glsl.js.map +1 -1
  47. package/lib/renderer/glsl/chunks/sampleLight.glsl.js +69 -69
  48. package/lib/renderer/glsl/chunks/sampleMaterial.glsl.js +84 -84
  49. package/lib/renderer/glsl/chunks/sampleMaterial.glsl.js.map +1 -1
  50. package/lib/renderer/glsl/chunks/sampleShadowCatcher.glsl.js +12 -12
  51. package/lib/renderer/glsl/chunks/sampling.glsl.js +75 -75
  52. package/lib/renderer/glsl/chunks/sobol.glsl.js +61 -61
  53. package/lib/renderer/glsl/chunks/textureLinear.glsl.js +5 -5
  54. package/lib/renderer/glsl/chunks/uvProjection.glsl.js +11 -11
  55. package/lib/renderer/glsl/depthQuery.frag.js +5 -5
  56. package/lib/renderer/glsl/depthQuery.frag.js.map +1 -1
  57. package/lib/renderer/glsl/normalizeRayTraceOutput.frag.js +8 -8
  58. package/lib/renderer/glsl/rayTrace.frag.js +133 -133
  59. package/lib/renderer/glsl/rayTrace.frag.js.map +1 -1
  60. package/lib/renderer/glsl/shadowCatcher.frag.js +9 -9
  61. package/lib/renderer/glsl/shadowCatcher.frag.js.map +1 -1
  62. package/lib/renderer/glsl/webglPipeline.frag.js +52 -52
  63. package/lib/renderer/lightsUtil.js +6 -4
  64. package/lib/renderer/lightsUtil.js.map +1 -1
  65. package/lib/renderer/materialChanges.js +1 -1
  66. package/lib/renderer/materialChanges.js.map +1 -1
  67. package/lib/renderer/materialComparison.generated.js +36 -18
  68. package/lib/renderer/materialComparison.generated.js.map +1 -1
  69. package/lib/renderer/prepareMeshBVH.js +2 -2
  70. package/lib/renderer/prepareMeshBVH.js.map +1 -1
  71. package/lib/renderer/sceneChangeDetector.js +4 -1
  72. package/lib/renderer/sceneChangeDetector.js.map +1 -1
  73. package/lib/renderer/sceneLightChanges.js +3 -2
  74. package/lib/renderer/sceneLightChanges.js.map +1 -1
  75. package/lib/renderer/scratchSampling.js +18 -18
  76. package/lib/renderer/wgsl/chunks/common.wgsl.js +4 -4
  77. package/lib/renderer/wgsl/chunks/envMap.wgsl.d.ts +1 -1
  78. package/lib/renderer/wgsl/chunks/envMap.wgsl.js +39 -31
  79. package/lib/renderer/wgsl/chunks/envMap.wgsl.js.map +1 -1
  80. package/lib/renderer/wgsl/chunks/intersect.wgsl.js +476 -470
  81. package/lib/renderer/wgsl/chunks/intersect.wgsl.js.map +1 -1
  82. package/lib/renderer/wgsl/chunks/intersectionAlpha.wgsl.js +8 -8
  83. package/lib/renderer/wgsl/chunks/materialBuffer.wgsl.js +95 -60
  84. package/lib/renderer/wgsl/chunks/materialBuffer.wgsl.js.map +1 -1
  85. package/lib/renderer/wgsl/chunks/openPbrBsdf.wgsl.js +469 -469
  86. package/lib/renderer/wgsl/chunks/pdm_displacement.wgsl.d.ts +1 -1
  87. package/lib/renderer/wgsl/chunks/pdm_displacement.wgsl.js +117 -120
  88. package/lib/renderer/wgsl/chunks/pdm_displacement.wgsl.js.map +1 -1
  89. package/lib/renderer/wgsl/chunks/rand.wgsl.js +3 -3
  90. package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.js +25 -22
  91. package/lib/renderer/wgsl/chunks/rayTraceCore.wgsl.js.map +1 -1
  92. package/lib/renderer/wgsl/chunks/sampleLight.wgsl.js +127 -127
  93. package/lib/renderer/wgsl/chunks/sampleMaterial.wgsl.js +136 -136
  94. package/lib/renderer/wgsl/chunks/sampleShadowCatcher.wgsl.js +6 -6
  95. package/lib/renderer/wgsl/chunks/sampling.wgsl.js +73 -73
  96. package/lib/renderer/wgsl/chunks/sobol.wgsl.js +62 -62
  97. package/lib/renderer/wgsl/chunks/uvProjection.wgsl.js +11 -11
  98. package/lib/renderer/wgsl/compose.frag.wgsl.js +105 -105
  99. package/lib/renderer/wgsl/customDenoise.wgsl.js +10 -10
  100. package/lib/renderer/wgsl/depthQuery.wgsl.d.ts +1 -1
  101. package/lib/renderer/wgsl/depthQuery.wgsl.js +5 -5
  102. package/lib/renderer/wgsl/depthQuery.wgsl.js.map +1 -1
  103. package/lib/renderer/wgsl/offlineAdaptive.compute.js +28 -28
  104. package/lib/renderer/wgsl/rayTrace.compute.js +251 -248
  105. package/lib/renderer/wgsl/rayTrace.compute.js.map +1 -1
  106. package/lib/scene/EnvironmentLight.d.ts +9 -3
  107. package/lib/scene/EnvironmentLight.js +9 -2
  108. package/lib/scene/EnvironmentLight.js.map +1 -1
  109. package/lib/scene/OpenPBRMaterial.d.ts +1 -1
  110. package/lib/scene/OpenPBRMaterial.js +1 -1
  111. package/lib/scene/OpenPBRMaterial.js.map +1 -1
  112. package/lib/scene/Scene.d.ts +4 -0
  113. package/lib/scene/Scene.js.map +1 -1
  114. package/lib/scene/SpotLight.d.ts +2 -2
  115. package/lib/scene/SpotLight.js +1 -1
  116. package/lib/scene/SpotLight.js.map +1 -1
  117. package/lib/scene/Texture.d.ts +17 -6
  118. package/lib/scene/Texture.js +13 -4
  119. package/lib/scene/Texture.js.map +1 -1
  120. package/lib/util/fromTHREE.js +151 -29
  121. package/lib/util/fromTHREE.js.map +1 -1
  122. package/lib/version.d.ts +1 -1
  123. package/lib/version.js +1 -1
  124. package/lib/version.js.map +1 -1
  125. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"materialComparison.generated.js","sourceRoot":"","sources":["../../src/renderer/materialComparison.generated.ts"],"names":[],"mappings":"AAIA,gFAAgF;AAChF,SAAS,oBAAoB,CAAC,KAAc,EAAE,QAAiB;IAC7D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,KAAK,GAAG,KAA0B,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAC3F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,uBAAuB,CAAC,QAAyB,EAAE,MAA0B;IAC3F,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,6BAA6B,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,2BAA2B,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,gCAAgC,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,6BAA6B,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,wBAAwB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,0BAA0B,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,uBAAuB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAA0B,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;QAC7F,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,CAAC;QACC,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CAAC,QAAyB,EAAE,QAA4B;IAC7F,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAClC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC;QACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,oBAAoB,CAAC;QAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;QACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;QACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC;QACzC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC;QACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC;QACzC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC;QACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,CAAC;QACC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,IAAI,CAAC;YAAC,CAAC;iBAC1D,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO;gBACrE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK;gBAClE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,QAAQ;gBACvE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS;gBAAE,OAAO,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC;AAC/B,CAAC","sourcesContent":["// Generated by scripts/generate-material-comparison.mjs from openPbrSchema.ts.\n// Do not edit; run npm run generate:material-comparison after changing the schema.\nimport type OpenPBRMaterial from '../scene/OpenPBRMaterial.js';\n\n// Retain the generic array behavior for unusual scalar values supplied from JS.\nfunction arrayParametersEqual(value: unknown, previous: unknown): boolean {\n if (!Array.isArray(value) && !ArrayBuffer.isView(value)) return false;\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n return true;\n}\n\n/** Static field accesses keep the unchanged-material path free of dynamic key lookups. */\nexport function materialParametersEqual(material: OpenPBRMaterial, values: readonly unknown[]): boolean {\n {\n const value = material.baseWeight, previous = values[0];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.baseColor, previous = values[1];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.baseDiffuseRoughness, previous = values[2];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.baseMetalness, previous = values[3];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularWeight, previous = values[4];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularColor, previous = values[5];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.specularRoughness, previous = values[6];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularIor, previous = values[7];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularAnisotropy, previous = values[8];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionWeight, previous = values[9];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionColor, previous = values[10];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.transmissionDepth, previous = values[11];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionScatter, previous = values[12];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.transmissionScatterAnisotropy, previous = values[13];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionDispersionScale, previous = values[14];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionDispersionAbbeNumber, previous = values[15];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.subsurfaceWeight, previous = values[16];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.subsurfaceColor, previous = values[17];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.subsurfaceRadius, previous = values[18];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.subsurfaceRadiusScale, previous = values[19];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.subsurfaceAnisotropy, previous = values[20];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.fuzzWeight, previous = values[21];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.fuzzColor, previous = values[22];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.fuzzRoughness, previous = values[23];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatWeight, previous = values[24];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatColor, previous = values[25];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.coatRoughness, previous = values[26];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatAnisotropy, previous = values[27];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatIor, previous = values[28];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatDarkening, previous = values[29];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmWeight, previous = values[30];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmThickness, previous = values[31];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmIor, previous = values[32];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.emissionColor, previous = values[33];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.emissionLuminance, previous = values[34];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.opacity, previous = values[35];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinWalled, previous = values[36];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.doubleSided, previous = values[37];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.alphaMode, previous = values[38];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.alphaCutoff, previous = values[39];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.normalScale, previous = values[40];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.shadowCatcher, previous = values[41];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.unlit, previous = values[42];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.bevelSize, previous = values[43];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.mapAlphaUsage, previous = values[44];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.uvProjection, previous = values[45];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.uvProjectionScale, previous = values[46];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.displacementUvProjection, previous = values[47];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.displacementUvProjectionScale, previous = values[48];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.displacementScale, previous = values[49];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.displacementStepSize, previous = values[50];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmThicknessMinimum, previous = values[51];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmMapChannel, previous = values[52];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularAnisotropyRotation, previous = values[53];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatAnisotropyRotation, previous = values[54];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularAnisotropyModel, previous = values[55];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatNormalScale, previous = values[56];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.displacementBias, previous = values[57];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n return true;\n}\n\n/** Mirrors captureMaterialTextures, including numeric texture-category scalars. */\nexport function materialTexturesChanged(material: OpenPBRMaterial, previous: readonly unknown[]): boolean {\n let i = 0;\n {\n const texture = material.map;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.alphaMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.emissiveMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.normalMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.metallicRoughnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.roughnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.metalnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.transmissionMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.thinFilmMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.displacementMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.coatWeightMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.coatRoughnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.fuzzColorMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.fuzzRoughnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.specularWeightMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.specularColorMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.anisotropyMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n {\n const texture = material.coatNormalMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel) return true;\n }\n }\n return i !== previous.length;\n}\n"]}
1
+ {"version":3,"file":"materialComparison.generated.js","sourceRoot":"","sources":["../../src/renderer/materialComparison.generated.ts"],"names":[],"mappings":"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","sourcesContent":["// Generated by scripts/generate-material-comparison.mjs from openPbrSchema.ts.\n// Do not edit; run npm run generate:material-comparison after changing the schema.\nimport type OpenPBRMaterial from '../scene/OpenPBRMaterial.js';\n\n// Retain the generic array behavior for unusual scalar values supplied from JS.\nfunction arrayParametersEqual(value: unknown, previous: unknown): boolean {\n if (!Array.isArray(value) && !ArrayBuffer.isView(value)) return false;\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n return true;\n}\n\n/** Static field accesses keep the unchanged-material path free of dynamic key lookups. */\nexport function materialParametersEqual(material: OpenPBRMaterial, values: readonly unknown[]): boolean {\n {\n const value = material.baseWeight, previous = values[0];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.baseColor, previous = values[1];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.baseDiffuseRoughness, previous = values[2];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.baseMetalness, previous = values[3];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularWeight, previous = values[4];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularColor, previous = values[5];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.specularRoughness, previous = values[6];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularIor, previous = values[7];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularAnisotropy, previous = values[8];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionWeight, previous = values[9];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionColor, previous = values[10];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.transmissionDepth, previous = values[11];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionScatter, previous = values[12];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.transmissionScatterAnisotropy, previous = values[13];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionDispersionScale, previous = values[14];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.transmissionDispersionAbbeNumber, previous = values[15];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.subsurfaceWeight, previous = values[16];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.subsurfaceColor, previous = values[17];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.subsurfaceRadius, previous = values[18];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.subsurfaceRadiusScale, previous = values[19];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.subsurfaceAnisotropy, previous = values[20];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.fuzzWeight, previous = values[21];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.fuzzColor, previous = values[22];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.fuzzRoughness, previous = values[23];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatWeight, previous = values[24];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatColor, previous = values[25];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.coatRoughness, previous = values[26];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatAnisotropy, previous = values[27];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatIor, previous = values[28];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatDarkening, previous = values[29];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmWeight, previous = values[30];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmThickness, previous = values[31];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmIor, previous = values[32];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.emissionColor, previous = values[33];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.emissionLuminance, previous = values[34];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.opacity, previous = values[35];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinWalled, previous = values[36];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.doubleSided, previous = values[37];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.alphaMode, previous = values[38];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.alphaCutoff, previous = values[39];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.normalScale, previous = values[40];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.shadowCatcher, previous = values[41];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.unlit, previous = values[42];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.bevelSize, previous = values[43];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.mapAlphaUsage, previous = values[44];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.uvProjection, previous = values[45];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.uvProjectionScale, previous = values[46];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.displacementUvProjection, previous = values[47];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.displacementUvProjectionScale, previous = values[48];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.displacementScale, previous = values[49];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.displacementStepSize, previous = values[50];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmThicknessMinimum, previous = values[51];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.thinFilmMapChannel, previous = values[52];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularAnisotropyRotation, previous = values[53];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatAnisotropyRotation, previous = values[54];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.specularAnisotropyModel, previous = values[55];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n {\n const value = material.coatNormalScale, previous = values[56];\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n const array = value as ArrayLike<number>;\n if (!Array.isArray(previous) || array.length !== previous.length) return false;\n for (let i = 0; i < array.length; i++) if (!Object.is(array[i], previous[i])) return false;\n } else if (!Object.is(value, previous)) return false;\n }\n {\n const value = material.displacementBias, previous = values[57];\n if (!Object.is(value, previous) && !arrayParametersEqual(value, previous)) return false;\n }\n return true;\n}\n\n/** Mirrors captureMaterialTextures, including numeric texture-category scalars. */\nexport function materialTexturesChanged(material: OpenPBRMaterial, previous: readonly unknown[]): boolean {\n let i = 0;\n {\n const texture = material.map;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.alphaMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.emissiveMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.normalMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.metallicRoughnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.roughnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.metalnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.transmissionMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.thinFilmMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.displacementMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.coatWeightMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.coatRoughnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.fuzzColorMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.fuzzRoughnessMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.specularWeightMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.specularColorMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.anisotropyMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n {\n const texture = material.coatNormalMap;\n if (typeof texture !== 'number') {\n if (!texture) { if (previous[i++] !== undefined) return true; }\n else if (previous[i++] !== texture || previous[i++] !== texture.version ||\n previous[i++] !== texture.image || previous[i++] !== texture.flipY ||\n previous[i++] !== texture.uvScale || previous[i++] !== texture.uvOffset ||\n previous[i++] !== texture.uvChannel || previous[i++] !== texture.wrapS || previous[i++] !== texture.wrapT ||\n previous[i++] !== texture.colorSpace) return true;\n }\n }\n return i !== previous.length;\n}\n"]}
@@ -200,7 +200,7 @@ export function getPreparedMeshGeometryCacheKey(mesh) {
200
200
  const scale = getMeshDisplacementScale(mesh);
201
201
  if (texture && (scale !== 0 || material.displacementBias !== 0)) {
202
202
  return ['displacement', source.version, getDisplacementTextureDataCacheKey(texture),
203
- +texture.flipY, texture.uvScale.join(','), texture.uvOffset.join(','), texture.uvChannel,
203
+ +texture.flipY, texture.uvScale.join(','), texture.uvOffset.join(','), texture.uvChannel, texture.wrapS, texture.wrapT, texture.colorSpace,
204
204
  scale, material.displacementBias, material.displacementUvProjectionScale, material.displacementUvProjection].join('|');
205
205
  }
206
206
  return undefined;
@@ -763,7 +763,7 @@ function mergeGeometry(geometries, globalMaterialIndicesMap, regions) {
763
763
  uv1: uv1Attrib,
764
764
  materialIndex: materialIndexAttrib,
765
765
  color: hasColor
766
- ? new Attribute(new Float32Array(3 * totalVertexCount), 3)
766
+ ? new Attribute(new Float32Array(3 * totalVertexCount).fill(1), 3)
767
767
  : undefined,
768
768
  tangent: hasTangent
769
769
  ? new Attribute(new Float32Array(4 * totalVertexCount), 4)