@needle-tools/engine 2.35.3-pre → 2.35.5-pre

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 (63) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/needle-engine.d.ts +58 -34
  3. package/dist/needle-engine.js +394 -343
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +96 -45
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/api.d.ts +3 -0
  8. package/lib/engine/api.js +3 -0
  9. package/lib/engine/api.js.map +1 -1
  10. package/lib/engine/debug/debug.d.ts +3 -0
  11. package/lib/engine/debug/debug.js +8 -0
  12. package/lib/engine/debug/debug.js.map +1 -0
  13. package/lib/engine/debug/debug_overlay.d.ts +7 -0
  14. package/lib/engine/debug/debug_overlay.js +202 -0
  15. package/lib/engine/debug/debug_overlay.js.map +1 -0
  16. package/lib/engine/engine.js +1 -1
  17. package/lib/engine/engine.js.map +1 -1
  18. package/lib/engine/engine_element_loading.js +19 -8
  19. package/lib/engine/engine_element_loading.js.map +1 -1
  20. package/lib/engine/engine_networking.js +4 -0
  21. package/lib/engine/engine_networking.js.map +1 -1
  22. package/lib/engine/engine_networking_utils.d.ts +1 -0
  23. package/lib/engine/engine_networking_utils.js +3 -0
  24. package/lib/engine/engine_networking_utils.js.map +1 -1
  25. package/lib/engine/engine_serialization_core.js +35 -0
  26. package/lib/engine/engine_serialization_core.js.map +1 -1
  27. package/lib/engine/engine_types.d.ts +5 -1
  28. package/lib/engine/engine_types.js.map +1 -1
  29. package/lib/engine/extensions/NEEDLE_render_objects.d.ts +2 -2
  30. package/lib/engine/extensions/NEEDLE_render_objects.js +2 -2
  31. package/lib/engine/extensions/NEEDLE_render_objects.js.map +1 -1
  32. package/lib/engine-components/AudioSource.d.ts +1 -1
  33. package/lib/engine-components/AudioSource.js +2 -2
  34. package/lib/engine-components/AudioSource.js.map +1 -1
  35. package/lib/engine-components/Component.js +4 -2
  36. package/lib/engine-components/Component.js.map +1 -1
  37. package/lib/engine-components/Renderer.d.ts +8 -3
  38. package/lib/engine-components/Renderer.js +9 -1
  39. package/lib/engine-components/Renderer.js.map +1 -1
  40. package/lib/engine-components/WebXRController.js +6 -2
  41. package/lib/engine-components/WebXRController.js.map +1 -1
  42. package/lib/engine-components/js-extensions/ExtensionUtils.js +1 -1
  43. package/lib/engine-components/js-extensions/ExtensionUtils.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/engine/api.ts +3 -0
  46. package/src/engine/debug/debug.ts +9 -0
  47. package/src/engine/debug/debug_overlay.ts +217 -0
  48. package/src/engine/engine.ts +1 -1
  49. package/src/engine/engine_element_loading.ts +20 -9
  50. package/src/engine/engine_networking.ts +7 -3
  51. package/src/engine/engine_networking_utils.ts +4 -0
  52. package/src/engine/engine_serialization_core.ts +34 -0
  53. package/src/engine/engine_types.ts +6 -1
  54. package/src/engine/extensions/NEEDLE_render_objects.ts +4 -4
  55. package/src/engine-components/AudioSource.ts +3 -3
  56. package/src/engine-components/Component.ts +4 -2
  57. package/src/engine-components/Renderer.ts +737 -724
  58. package/src/engine-components/WebXRController.ts +6 -2
  59. package/src/engine-components/js-extensions/ExtensionUtils.ts +1 -1
  60. package/lib/engine/debug/error_overlay.d.ts +0 -1
  61. package/lib/engine/debug/error_overlay.js +0 -114
  62. package/lib/engine/debug/error_overlay.js.map +0 -1
  63. package/src/engine/debug/error_overlay.ts +0 -126
@@ -1 +1 @@
1
- {"version":3,"file":"WebXRController.js","sourceRoot":"","sources":["../../../engine-components/WebXRController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAW,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAqB,wBAAwB,EAAE,MAAM,sDAAsD,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAS,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,KAAK,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAE/C,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,uEAAkB,CAAA;IAClB,qDAAS,CAAA;AACb,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,gDAA4B,CAAA;IAC5B,4CAAwB,CAAA;IACxB,qCAAiB,CAAA;AACrB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,OAAO,cAAe,SAAQ,SAAS;CAE5C;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAEnC,MAAM,CAAC,OAAO,GAA6B,IAAI,wBAAwB,EAAE,CAAC;IAEzE,MAAM,CAAC,YAAY,GAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,iBAAiB,GAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,MAAM,CAAC,UAAU,GAAgD,EAAE,CAAC;IAEpE,MAAM,CAAC,iBAAiB;QAC5B,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAmC,CAAC;QACrD,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,qBAAqB;QAChC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAY,EAAE,KAAa,EAAE,KAAiB,EAAE,IAAoB;QACrF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC;QAEvG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,sFAAsF;QACtF,cAAc;QACd,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAG/E,iFAAiF;QACjF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YAChD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACjD,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC,EAAE,IAAI,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,uEAAuE;QACvE,iFAAiF;QACjF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;YACjC,IAAI,aAAa,CAAC,IAAI,EAAE;gBACpB,IAAI,KAAK,CAAC,GAAG;oBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;gBACvE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpE,kFAAkF;gBAClF,+CAA+C;gBAC/C,wEAAwE;gBACxE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjC,IAAI,IAAI,EAAE;oBACN,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxB,IAAI,KAAK,CAAC,MAAM;4BAAE,SAAS;wBAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qBACxB;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,sCAAsC;IAC/B,MAAM,CAAC,gBAAgB,CAAC,GAAqB,EAAE,QAA0D;QAC5G,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,sCAAsC;IAC/B,MAAM,CAAC,mBAAmB,CAAC,GAAqB,EAAE,QAA0D;QAC/G,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,GAAG,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC;IAEO,MAAM,CAAC,SAAS,GAAkC,EAAE,CAAC;IAEtD,KAAK,CAAS;IACd,KAAK,GAAW,CAAC,CAAC,CAAC;IACnB,eAAe,CAAqB;IACpC,UAAU,CAAe;IACzB,cAAc,CAAe;IAC7B,IAAI,CAAe;IACnB,gBAAgB,CAA0B;IAC1C,OAAO,GAA0B,IAAI,CAAC;IACtC,KAAK,GAA+B,IAAI,CAAC;IACzC,IAAI,GAAmB,cAAc,CAAC,cAAc,CAAC;IAE5D,IAAI,YAAY;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;QAC3B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC;IACzC,CAAC;IAED,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAEO,gBAAgB,GAA4B,IAAI,CAAC;IACzD,kBAAkB;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3E,MAAM,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7H,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,cAAc,GAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACpD,QAAQ,GAAqB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IACpD,QAAQ,GAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9C,SAAS,GAAY,KAAK,CAAC;IAC3B,WAAW,GAAY,KAAK,CAAC;IAC7B,cAAc,GAAY,KAAK,CAAC;IAChC,MAAM,CAAC,yBAAyB,GAAuB,SAAS,CAAC;IACjE,MAAM,CAAC,mBAAmB,GAAW,CAAC,CAAC;IAEvC,OAAO,GAA8B,IAAI,CAAC;IAE1C,WAAW,GAAsB,IAAI,CAAC;IACtC,gBAAgB,GAA0B,IAAI,CAAC;IAC/C,mBAAmB,GAAe,IAAI,CAAC;IACvC,qBAAqB,GAAe,IAAI,CAAC;IACzC,eAAe,GAAe,IAAI,CAAC;IACnC,aAAa,GAAe,IAAI,CAAC;IAEzC,IAAW,aAAa,KAAc,OAAO,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC1G,IAAW,WAAW,KAAc,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACxG,IAAW,gBAAgB,KAAc,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACzE,IAAW,cAAc,KAAc,OAAO,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAAC,CAAC;IACxG,IAAW,eAAe,KAA4B,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE7E,iBAAiB,GAAY,KAAK,CAAC;IACnC,0BAA0B,GAAY,KAAK,CAAC;IAC5C,mBAAmB,GAAW,CAAC,CAAC;IAChC,iBAAiB,GAAW,CAAC,CAAC;IAEtC,IAAW,YAAY,KAAc,OAAO,IAAI,CAAC,aAAa,CAAA,CAAC,CAAC;IAAA,CAAC;IACzD,aAAa,GAAY,IAAI,CAAC;IAEtC,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO;SACV;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC5E,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACrE;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACrE;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC/E,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACpF,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACzE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACxE;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACzE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEM,QAAQ;QACX,IAAI,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QAC5B,IAAI,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAChD,IAAI,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC;QACxC,IAAI,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,cAAc,CAAA;QAE1C,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACtB,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,qBAAqB,EAAE,CAAC;QAEpE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrC,IAAI,KAAK;YACL,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhD,iEAAiE;IACrE,CAAC;IAED,SAAS;QACL,+CAA+C;QAC/C,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;QAC1C,gFAAgF;QAChF,kFAAkF;QAClF,uFAAuF;QAEvF,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,sBAAsB;IACtB,4CAA4C;IAC5C,IAAI;IAEI,YAAY,GAAY,KAAK,CAAC;IAE9B,iBAAiB,CAAC,CAAuC;QAC7D,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO,CAAC,IAAI,CAAC,mEAAmE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACjG,OAAO;SACV;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QAEpB,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;SACnC;IACL,CAAC;IAEO,oBAAoB,CAAC,EAAO;QAChC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,iEAAiE,EAAE,EAAE,CAAC,CAAC;YACpF,OAAO;SACV;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACnC,QAAQ,IAAI,EAAE;YACV,KAAK,MAAM;gBACP,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClI,MAAM;YACV,KAAK,MAAM;gBACP,MAAM;YACV,KAAK,IAAI;gBACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChI,MAAM;SACb;IACL,CAAC;IAED,WAAW,GAAqB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IAEvD,MAAM;QAEF,gFAAgF;QAChF,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAC1C;QAED,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACpB,GAAG,CAAC,IAAI,CAAC,CAAC;aACb;SACJ;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;YAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACjF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO;YAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAClG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/F,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;gBACpC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;aACpC;iBACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBACzC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5B,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;wBACnD,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACrC,IAAI,EAAE;4BACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC9B,6DAA6D;qBAChE;iBACJ;gBACD,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAChE;iBACI;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;gBAChC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7D,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;aAChD;SACJ;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACzB;QAED,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEzD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAEO,eAAe,GAAuB,SAAS,CAAC;IAExD,QAAQ,CAAC,OAAkB;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;YACvD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO;SACV;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;YAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC5D,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;QAE7C,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAC3B,KAAK,MAAM;gBACP,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC;gBAC5D,MAAM,SAAS,GAAG,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAExD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChD,IAAI,IAAI,OAAO,CAAC;gBAChB,IAAI,IAAI,KAAK,CAAC;gBAGd,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBACnD,OAAO,IAAI,UAAU,CAAC;gBACtB,IAAI,IAAI,KAAK,CAAC;gBAEd,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC1C,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACrE,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9E,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAEtC,IAAI,IAAI,CAAC,YAAY;oBACjB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACnC,MAAM;YAEV,KAAK,OAAO;gBACR,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,MAAM,GAAG,GAAG,EAAE;oBACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBAC1B;qBACI,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACrC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;iBACzB;gBAED,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAE/B,MAAM;SACb;IACL,CAAC;IAEO,WAAW,CAAC,GAAG,EAAE,OAAO;QAC5B,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAClD,IAAI,OAAO,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;gBAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;aACjD;YACD,IAAI,OAAO,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,EAAE,EAAE;gBACvF,iDAAiD;gBACjD,mFAAmF;gBACnF,kCAAkC;gBAClC,kDAAkD;gBAClD,uDAAuD;gBACvD,gEAAgE;gBAChE,6CAA6C;gBAC7C,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxD;YACD,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;SAClD;;YACI,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEtC,IAAI,UAAU,GAAG,QAAQ,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACpD,IAAI,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACjF,IAAI,WAAW,GAAkB,IAAI,CAAC;QAEtC,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvB,sGAAsG;gBACtG,iFAAiF;gBACjF,IAAI,CAAC,KAAK,CAAC,EAAE;oBACT,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;wBAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;wBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;wBAC3B,IAAI,GAAG,EAAE;4BACL,IAAI,CAAC,iBAAiB,EAAE;gCACpB,iBAAiB,GAAG,IAAI,CAAC;gCACzB,UAAU,GAAG,IAAI,CAAC;gCAClB,WAAW,GAAG,EAAE,CAAC;gCACjB,eAAe,CAAC,mBAAmB,GAAG,WAAW,GAAG,CAAC,CAAC;gCACtD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAqC,CAAC;gCAC/D,eAAe,CAAC,yBAAyB,GAAG,GAAG,CAAC,GAAG,CAAC;gCACpD,GAAG,CAAC,GAAG,IAAI,WAAW,CAAC;6BAC1B;iCACI;gCACD,iBAAiB,GAAG,KAAK,CAAC;gCAC1B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gCACvB,WAAW,GAAG,CAAC,CAAC;gCAChB,eAAe,CAAC,mBAAmB,GAAG,CAAC,CAAC;gCACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAqC,CAAC;gCAC/D,IAAI,eAAe,CAAC,yBAAyB;oCACzC,GAAG,CAAC,GAAG,GAAG,eAAe,CAAC,yBAAyB,CAAC;6BAC3D;yBACJ;qBACJ;yBACI,IAAI,CAAC,GAAG,CAAC,OAAO;wBACjB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBACnC;aACJ;SACJ;QAED,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;wBAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;wBACxB,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;qBACtC;iBACJ;aACJ;SACJ;aACI,IAAI,QAAQ,GAAG,EAAE,EAAE;YACpB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;QAED,IAAI,WAAW,KAAK,IAAI,EAAE;YACtB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACrD,GAAG,CAAC,iBAAiB,EAAE,CAAC;SAC3B;IACL,CAAC;IAEO,qBAAqB,CAAC,GAAmB;QAC7C,OAAO,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC;IACxE,CAAC;IAEO,WAAW,CAAC,WAAgC;QAChD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;YAAE,OAAO;QACzF,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YAChB,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;SACpC;QACD,wBAAwB;QAExB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;YACrE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAmC,CAAC;YACjE,IAAI,GAAG,IAAI,IAAI;gBAAE,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC;;gBACrD,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,iBAAiB,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,0BAA0B;gBAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1E,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;aACxD;YACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;SACvF;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY;YAAE,OAAO;QAClD,uCAAuC;QACvC,sDAAsD;QACtD,qFAAqF;QACrF,6CAA6C;QAC7C,mEAAmE;QACnE,6CAA6C;QAC7C,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAChE,CAAC;IAEO,mBAAmB,GAAoB,IAAI,CAAC;IAC5C,qBAAqB,GAA0B,IAAI,CAAC;IAAA,CAAC;IAErD,mBAAmB;QACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,8DAA8D;QAE9D,wDAAwD;QACxD,IAAI,aAAa,GAAgC,IAAI,CAAC;QACtD,IAAI,SAAS,GAAY,KAAK,CAAC;QAC/B,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC3B,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,SAAS,GAAG,KAAK,CAAC;aACrB;iBACI;gBACD,SAAS,GAAG,IAAI,CAAC;aACpB;SACJ;;YACI,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAEpC,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;gBACtC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;gBACnC,qCAAqC;gBACrC,iBAAiB;gBACjB,sCAAsC;gBACtC,gBAAgB;gBAChB,IAAI;gBACJ,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;gBACpC,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBACrE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;wBACpB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;qBACnB;iBACJ;gBACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK;oBAC7B,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChF,IAAI,IAAI,CAAC,IAAI,EAAE;oBACX,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;iBACnF;gBACD,MAAM;aACT;SACJ;aACI;YACD,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;oBACpB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBACnB;aACJ;SACJ;IACL,CAAC;IAEO,mBAAmB,GAAY,KAAK,CAAC;IAErC,WAAW;QACf,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAC/B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,OAAO;aACV;SACJ;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACpC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAEhD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACpB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACnB;SACJ;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;IACL,CAAC;IAEO,aAAa,CAAC,GAA0B;QAC5C,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,IAAI,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;QACZ,kCAAkC;QAClC,yCAAyC;IAC7C,CAAC;IAEO,mBAAmB,CAAC,GAAmB,EAAE,KAAa;QAC1D,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,GAAG,CAAC,QAAQ,EAAE;YACd,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,KAAK,EAAE,EAAE;oBACpE,SAAS;iBACZ;gBACD,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aACvC;SACJ;IACL,CAAC;IAEM,MAAM;QACT,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5B,2EAA2E;QAC3E,iEAAiE;QACjE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,OAAO;QACV,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAC/H,IAAI,CAAC,aAAa;YACd,OAAO,IAAI,KAAK,EAAsB,CAAC;QAE3C,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAEM,OAAO;QACV,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClB,CAAC,EAAE,CAAC;gBACJ,SAAS;aACZ;YACD,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM;SACT;QACD,wBAAwB;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;;AAIL,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;AACvB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,MAAM,OAAO,cAAc;IAEhB,MAAM,CAAC,MAAM,GAAkC,EAAE,CAAC;IAClD,MAAM,CAAC,gBAAgB,CAAC,KAA2B,EAAE,QAAkB;QAC1E,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACrE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IACpB,CAAC;IACM,MAAM,CAAC,mBAAmB,CAAC,KAA2B,EAAE,QAAyB;QACpF,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;QAC1C,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,GAAG,IAAI,CAAC;YAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAGM,MAAM,CAAC,OAAO,GAAqB,EAAE,CAAC;IAErC,MAAM,CAAC,QAAQ,CAAC,GAAmB;QAEvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1B;IACL,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,GAAmB;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7B;IACL,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,UAA2B,EAAE,SAAyB,EAAE,YAAgC,EAAE,SAAkB;QAC9H,MAAM,YAAY,GAAG,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,EAAE;YACf,IAAI,KAAK;gBACL,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,SAAS,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC;SACf;QAED,IAAI,cAAc,GAAG,SAAS,CAAC;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACzE,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;SACpC;QAED,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YAC1B,IAAI,CAAC,CAAC,QAAQ,KAAK,cAAc,EAAE;gBAC/B,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU;oBAAE,OAAO,CAAC,CAAC;gBAC1C,CAAC,CAAC,IAAI,EAAE,CAAC;gBACT,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBAC3F,OAAO,CAAC,CAAC;aACZ;SACJ;QAED,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC;IACf,CAAC;IAGM,IAAI,GAA2B,IAAI,CAAC;IACpC,QAAQ,GAA0B,IAAI,CAAC;IACvC,cAAc,GAA0B,IAAI,CAAC;IAC7C,YAAY,GAAsB,IAAI,CAAC;IACvC,UAAU,GAA2B,IAAI,CAAC;IAC1C,QAAQ,GAAW,CAAC,CAAC;IACrB,QAAQ,GAAW,EAAE,CAAC;IACtB,WAAW,GAAY,KAAK,CAAC,CAAC,wCAAwC;IAErE,gBAAgB,GAA6C,IAAI,CAAC;IAClE,WAAW,GAAuB,IAAI,CAAC;IACvC,WAAW,GAAuB,IAAI,CAAC;IACvC,WAAW,GAAY,KAAK,CAAC;IAC7B,YAAY,GAAW,CAAC,CAAC;IACzB,YAAY,GAAwB,IAAI,CAAC;IACzC,cAAc,GAA0B,IAAI,CAAC;IAE7C,IAAI,CAAC,UAA2B,EAAE,IAAoB,EAAE,GAAmB,EAAE,IAA4B,EAAE,aAA2B,EAC1I,YAAgC,EAAE,SAAkB;QAEpD,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,qCAAqC,EAAE,IAAI,CAAC,CAAC;QAE3E,IAAI,UAAU,CAAC,YAAY,EAAE;YACzB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;SAC9E;aACI;YACD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC;SAC/C;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;SACf;QAED,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;QAC1E,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAG5D,MAAM,IAAI,GAAG,GAAiB,CAAC;QAC/B,IAAI,IAAI,EAAE,QAAQ,EAAE;YAChB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/B,IAAI,CAAC,QAAQ,GAAI,IAAI,CAAC,QAA2B,CAAC,KAAK,EAAE,CAAC;gBAC1D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC1C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aACxC;SACJ;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;SACrC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,8BAA8B;QAC9B,+BAA+B;QAC/B,2CAA2C;QAC3C,IAAI;QACJ,QAAQ;QACR,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAGzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChF,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxG,IAAI,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3E,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC;QAErC,oDAAoD;QACpD,6CAA6C;QAC7C,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAClI,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9F,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QACtC,IAAI,GAAG;YACH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAA;QAE/D,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC7B;QAED,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC3H,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5D,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAW,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3D,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC9B;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACzC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,iDAAiD;QACjD,qDAAqD;QACrD,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;YACvC,IAAI,UAAU;gBAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;gBACrC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAGjB,6BAA6B;QAC7B,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC/B,EAAE,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,EAAE,CAAC,gBAAgB;oBAAE,SAAS;gBACnC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;aACvF;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,SAAS,GAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAE9C,yBAAyB,GAAyB,IAAI,CAAC;IACvD,oCAAoC,GAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC1E,qBAAqB,GAAqB,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,SAAS,GAAyB,IAAI,CAAC;IACvC,cAAc,GAA4B,IAAI,CAAC;IAE/C,aAAa,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACpC,kBAAkB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACzC,sBAAsB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7C,kBAAkB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACzC,yBAAyB,GAAG,GAAG,CAAC;IAChC,oBAAoB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAE3C,gCAAgC;QACpC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QAEzD,uBAAuB;QACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAEhE,mBAAmB;QACnB,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QACtC,IAAI,GAAG,EAAE;YACL,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1C;QAED,kCAAkC;QAClC,MAAM,8BAA8B,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEvF,OAAO,8BAA8B,CAAC;IAC1C,CAAC;IAEM,MAAM;QACT,0CAA0C;QAC1C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC7E,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7D,oCAAoC;YACpC,kFAAkF;YAClF,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,EAAE;gBACR,oCAAoC;gBACpC,4CAA4C;gBAC5C,IAAI;gBACJ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,KAAK,EAAE;oBACpC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxD,IAAI,CAAC,IAAI,EAAE,CAAC;iBACf;aACJ;SACJ;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO;YAAE,OAAO;QAE5D,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;YAE3D,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,gCAAgC,EAAE,CAAC;YAC1E,+CAA+C;YAE/C,iFAAiF;YACjF,IAAI,WAAW,GAAG,GAAG,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,qEAAqE;aACjI;gBACI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,yBAAyB,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;gBACjF,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;aACzD;YACD,IAAI,IAAI,CAAC,YAAY,GAAG,QAAQ,GAAG,GAAG;gBAAE,WAAW,GAAG,GAAG,CAAC,CAAC,8DAA8D;YAEzH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;aACxC;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAExG,iBAAiB;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACpI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;aAC5C;YACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACzH,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,0EAA0E;YAEzH,iBAAiB;YACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,0BAA0B;YAC1B,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAChC,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBAC/E,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjH,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;aACzD;YACD,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SACjD;QAGD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC1B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC/B,EAAE,CAAC,MAAM,EAAE,CAAC;gBACZ,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClD;SACJ;QAED,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC"}
1
+ {"version":3,"file":"WebXRController.js","sourceRoot":"","sources":["../../../engine-components/WebXRController.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export function applyPrototypeExtensions(obj, prototype) {
16
16
  // applyPrototypeExtensions(prototype);
17
17
  }
18
18
  export function registerPrototypeExtensions(type) {
19
- console.log("Register", type.prototype.constructor.name);
19
+ // console.log("Register", type.prototype.constructor.name);
20
20
  const handler = createPrototypeExtensionHandler(type.prototype);
21
21
  handlers.set(type, handler);
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionUtils.js","sourceRoot":"","sources":["../../../../engine-components/js-extensions/ExtensionUtils.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ,GAAsC,IAAI,GAAG,EAAE,CAAC;AAE9D,MAAM,UAAU,wBAAwB,CAAI,GAAQ,EAAE,SAA0B;IAC5E,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,gDAAgD;IAChD,iCAAiC;IACjC,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACxE,OAAO;KACV;IACD,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,OAAO,EAAE;QACT,gCAAgC;QAChC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACtB;IACD,uCAAuC;AAC3C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAI,IAAoB;IAC/D,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC;AAGD,SAAS,+BAA+B,CAAC,SAAc;IACnD,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAMD,MAAM,uBAAuB;IAER,OAAO,CAAS;IAChB,UAAU,CAAW;IACrB,WAAW,CAAwC;IAEpE,YAAY,SAAiB;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC7C,wFAAwF;QACxF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,gCAAgC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,EAAkC,CAAC;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,oBAAoB;YACpB,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACnE,IAAI,UAAU,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACrC;SACJ;IACL,CAAC;IAED,KAAK,CAAC,MAAgB;QAElB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO;QACjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAE5B,kDAAkD;QAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,EAAE;gBACN,mBAAmB;gBACnB,sEAAsE;gBACtE,oBAAoB;gBACpB,oBAAoB;gBACpB,QAAQ;gBACR,IAAI;gBACJ,uCAAuC;gBACvC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;aAC5C;SACJ;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"ExtensionUtils.js","sourceRoot":"","sources":["../../../../engine-components/js-extensions/ExtensionUtils.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ,GAAsC,IAAI,GAAG,EAAE,CAAC;AAE9D,MAAM,UAAU,wBAAwB,CAAI,GAAQ,EAAE,SAA0B;IAC5E,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,gDAAgD;IAChD,iCAAiC;IACjC,IAAI,CAAC,SAAS,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACxE,OAAO;KACV;IACD,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,OAAO,EAAE;QACT,gCAAgC;QAChC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACtB;IACD,uCAAuC;AAC3C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAI,IAAoB;IAC/D,4DAA4D;IAC5D,MAAM,OAAO,GAAG,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC;AAGD,SAAS,+BAA+B,CAAC,SAAc;IACnD,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAMD,MAAM,uBAAuB;IAER,OAAO,CAAS;IAChB,UAAU,CAAW;IACrB,WAAW,CAAwC;IAEpE,YAAY,SAAiB;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC7C,wFAAwF;QACxF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,gCAAgC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,EAAkC,CAAC;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,oBAAoB;YACpB,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACnE,IAAI,UAAU,EAAE;gBACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACrC;SACJ;IACL,CAAC;IAED,KAAK,CAAC,MAAgB;QAElB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO;QACjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QAE5B,kDAAkD;QAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,EAAE;gBACN,mBAAmB;gBACnB,sEAAsE;gBACtE,oBAAoB;gBACpB,oBAAoB;gBACpB,QAAQ;gBACR,IAAI;gBACJ,uCAAuC;gBACvC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;aAC5C;SACJ;IACL,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "2.35.3-pre",
3
+ "version": "2.35.5-pre",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development, and can be deployed anywhere. It is flexible, extensible, and collaboration and XR come naturally.",
5
5
  "main": "dist/needle-engine.js",
6
6
  "module": "lib/needle-engine.js",
package/src/engine/api.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  export { InstancingUtil } from "./engine_instancing";
2
2
  export * from "./engine_gameobject";
3
3
  export * from "./engine_components"
4
+ export { AssetReference } from "./engine_addressables";
5
+ export { FrameEvent } from "./engine_setup";
6
+ export * from "./debug/debug";
@@ -0,0 +1,9 @@
1
+ import { addLog, LogType } from "./debug_overlay";
2
+
3
+ export { LogType };
4
+
5
+ export function showBalloonMessage(text: string, logType: LogType = LogType.Log) {
6
+ addLog(logType, text);
7
+ // addLog(LogType.Error, text);
8
+ // addLog(LogType.Log, text);
9
+ }
@@ -0,0 +1,217 @@
1
+ import { getParam } from "../engine_utils";
2
+ import { isLocalNetwork } from "../engine_networking_utils";
3
+ import { Context } from "../engine_setup";
4
+ import { arContainerClassName } from "../engine_element_overlay";
5
+
6
+ const debug = getParam("debugdebug");
7
+ const hide = getParam("noerrors");
8
+
9
+ const errorContainer: Map<HTMLElement, HTMLElement> = new Map();
10
+ const locationRegex = new RegExp(" at .+\/(.+?\.ts)", "g");
11
+
12
+ export enum LogType {
13
+ Log,
14
+ Warn,
15
+ Error
16
+ }
17
+
18
+
19
+ export function makeErrorsVisibleForDevelopment() {
20
+ if (hide) return;
21
+ if (isLocalNetwork()) {
22
+ if (debug)
23
+ console.log(window.location.hostname);
24
+ const error = console.error;
25
+ console.error = (...args: any[]) => {
26
+ error.apply(console, args);
27
+ addLog(LogType.Error, args, null, null);
28
+ };
29
+ window.addEventListener("error", (event) => {
30
+ if (!event) return;
31
+ addLog(LogType.Error, event.error, event.filename, event.lineno);
32
+ }, true);
33
+ window.addEventListener("unhandledrejection", (event) => {
34
+ if (!event) return;
35
+ addLog(LogType.Error, event.reason.message, event.reason.stack);
36
+ });
37
+ }
38
+ }
39
+
40
+
41
+
42
+ export function addLog(type: LogType, message: string | any[], _file?: string | null, _line?: number | null) {
43
+
44
+ const context = Context.Current;
45
+ const domElement = context?.domElement ?? document.querySelector("needle-engine");
46
+ if (!domElement) return;
47
+ if (Array.isArray(message)) {
48
+ message = message.join(" ");
49
+ }
50
+ showMessage(type, domElement, message);
51
+ }
52
+
53
+ // function getLocation(err: Error): string {
54
+ // const location = err.stack;
55
+ // console.log(location);
56
+ // if (location) {
57
+ // locationRegex.exec(location);
58
+ // const match = locationRegex.exec(location);
59
+ // return match ? match[1] : "";
60
+ // }
61
+ // return "";
62
+ // }
63
+
64
+ const currentMessages = new Set<string>();
65
+
66
+ function showMessage(type: LogType, element: HTMLElement, msg: string) {
67
+ const container = getLogsContainer(element);
68
+ if (container.childElementCount >= 20) {
69
+ return;
70
+ }
71
+ if (currentMessages.has(msg)) return;
72
+ currentMessages.add(msg);
73
+ const msgcontainer = getMessageContainer(type, msg);
74
+ container.prepend(msgcontainer);
75
+
76
+ setTimeout(() => {
77
+ currentMessages.delete(msg);
78
+ returnMessageContainer(msgcontainer);
79
+ }, 10000);
80
+ }
81
+
82
+
83
+ const logsContainerStyles = `
84
+
85
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
86
+
87
+
88
+ div {
89
+ font-family: 'Roboto', sans-serif;
90
+ font-weight: 400;
91
+ }
92
+
93
+ strong {
94
+ font-weight: 700;
95
+ }
96
+
97
+ a {
98
+ color: white;
99
+ text-decoration: none;
100
+ border-bottom: 1px solid rgba(255, 255, 255, 0.3);
101
+ }
102
+
103
+ a:hover {
104
+ text-decoration: none;
105
+ border: none;
106
+ }
107
+
108
+ .log strong {
109
+ color: rgba(200,200,200,.9);
110
+ }
111
+
112
+ .warn strong {
113
+ color: rgba(255,255,230, 1);
114
+ }
115
+
116
+ .error strong {
117
+ color: rgba(255,100,120, 1);
118
+ }
119
+
120
+ `;
121
+
122
+ function getLogsContainer(domElement: HTMLElement): HTMLElement {
123
+ if (errorContainer.has(domElement)) {
124
+ return errorContainer.get(domElement)!;
125
+ } else {
126
+ const container = document.createElement("div");
127
+ container.classList.add(arContainerClassName);
128
+ container.classList.add("desktop");
129
+ container.classList.add("debug-container");
130
+ container.style.position = "absolute";
131
+ container.style.top = "0";
132
+ container.style.right = "5px";
133
+ container.style.paddingTop = "0px";
134
+ container.style.maxWidth = "70%";
135
+ container.style.maxHeight = "calc(100% - 5px)";
136
+ container.style.zIndex = "1000";
137
+ // container.style.pointerEvents = "none";
138
+ container.style.pointerEvents = "scroll";
139
+ // container.style["-webkit-overflow-scrolling"] = "touch";
140
+ container.style.display = "flex";
141
+ container.style.alignItems = "end";
142
+ container.style.flexDirection = "column";
143
+ container.style.color = "white";
144
+ container.style.overflow = "auto";
145
+ // container.style.border = "1px solid red";
146
+ domElement.appendChild(container);
147
+ errorContainer.set(domElement, container);
148
+
149
+ const style = document.createElement("style");
150
+ style.innerHTML = logsContainerStyles;
151
+ container.appendChild(style);
152
+ return container;
153
+ }
154
+ }
155
+
156
+
157
+ const typeSymbol = Symbol("logtype");
158
+ const containerCache = new Map<LogType, HTMLElement[]>();
159
+
160
+ function returnMessageContainer(container: HTMLElement) {
161
+ container.remove();
162
+ const type = container[typeSymbol];
163
+ const containers = containerCache.get(type) ?? [];
164
+ containers.push(container);
165
+ containerCache.set(type, containers);
166
+ }
167
+
168
+ function getMessageContainer(type: LogType, msg: string): HTMLElement {
169
+ if (containerCache.has(type)) {
170
+ const containers = containerCache.get(type)!;
171
+ if (containers.length > 0) {
172
+ return containers.pop()!;
173
+ }
174
+ }
175
+ const element = document.createElement("div");
176
+ element.style.marginRight = "5px";
177
+ element.style.padding = ".5em";
178
+ element.style.backgroundColor = "rgba(0,0,0,.9)";
179
+ element.style.marginTop = "5px";
180
+ element.style.marginBottom = "3px";
181
+ element.style.borderRadius = "8px";
182
+ element.style.pointerEvents = "all";
183
+ element.style.userSelect = "text";
184
+ element.style.whiteSpace = "pre-wrap";
185
+ element.style["backdrop-filter"] = "blur(10px)";
186
+ element.style.backgroundColor = "rgba(20,20,20,.8)";
187
+ element.style.boxShadow = "inset 0 0 80px rgba(0,0,0,.2), 0 0 5px rgba(0,0,0,.2)";
188
+ element.style.border = "1px solid rgba(160,160,160,.2)";
189
+ element[typeSymbol] = type;
190
+ switch (type) {
191
+ case LogType.Log:
192
+ element.classList.add("log");
193
+ element.style.color = "rgba(200,200,200,.7)";
194
+ element.style.backgroundColor = "rgba(40,40,40,.7)";
195
+ // element.style.backgroundColor = "rgba(200,200,200,.5)";
196
+ break;
197
+ case LogType.Warn:
198
+ element.classList.add("warn");
199
+ element.style.color = "rgb(255, 255, 150)";
200
+ element.style.backgroundColor = "rgba(50,50,20,.8)";
201
+ // element.style.backgroundColor = "rgba(245,245,50,.5)";
202
+ break;
203
+ case LogType.Error:
204
+ element.classList.add("error");
205
+ element.style.color = "rgb(255, 50, 50";
206
+ element.style.backgroundColor = "rgba(50,20,20,.8)";
207
+ // element.style.backgroundColor = "rgba(255,50,50,.5)";
208
+ break;
209
+ }
210
+ element.title = "Open the browser console (F12) for more information";
211
+
212
+ // msg = msg.replace(/[\n\r]/g, "<br/>");
213
+ // console.log(msg);
214
+ element.innerHTML = msg;
215
+
216
+ return element;
217
+ }
@@ -2,8 +2,8 @@ import * as engine_setup from "./engine_setup";
2
2
  import * as engine_scenetools from "./engine_scenetools";
3
3
  import "./tests/test_utils";
4
4
  import { RGBAColor } from "../engine-components/js-extensions/RGBAColor";
5
- import { makeErrorsVisibleForDevelopment } from "./debug/error_overlay";
6
5
 
6
+ import { makeErrorsVisibleForDevelopment } from "./debug/debug_overlay";
7
7
  makeErrorsVisibleForDevelopment();
8
8
 
9
9
  const engine = {
@@ -15,7 +15,7 @@ export interface ILoadingViewHandler {
15
15
  onLoadingFinished(message?: string);
16
16
  }
17
17
 
18
- export function calculateProgress01(progress : LoadingProgressArgs){
18
+ export function calculateProgress01(progress: LoadingProgressArgs) {
19
19
  return progress.index / progress.count + (progress.progress.loaded / progress.progress.total) / progress.count
20
20
  }
21
21
 
@@ -44,10 +44,11 @@ export class EngineLoadingView implements ILoadingViewHandler {
44
44
  const el = this.container.children[i] as HTMLElement;
45
45
  if (el.classList.contains("loading")) {
46
46
  if (!this._allowCustomLoadingElement) {
47
- this.container.removeChild(el);
47
+ console.warn("Custom loading container is not allowed")
48
+ // this.container.removeChild(el);
48
49
  continue;
49
50
  }
50
- this._loadingElement = this.createLoadingElement();
51
+ this._loadingElement = this.createLoadingElement(el);
51
52
  return;
52
53
  }
53
54
  }
@@ -55,7 +56,7 @@ export class EngineLoadingView implements ILoadingViewHandler {
55
56
  }
56
57
  this._progress = 0;
57
58
  this.loadingProgress = 0;
58
- this._loadingElement.style.display = "";
59
+ this._loadingElement.style.display = "flex";
59
60
  this.container.appendChild(this._loadingElement);
60
61
  this.smoothProgressLoop();
61
62
  this.setMessage(message ?? "");
@@ -127,7 +128,21 @@ export class EngineLoadingView implements ILoadingViewHandler {
127
128
 
128
129
  private createLoadingElement(existing?: HTMLElement): HTMLElement {
129
130
  this._loadingElement = existing || document.createElement("div");
130
- this._loadingElement.style.width = "100%";
131
+ if (!existing) {
132
+ this._loadingElement.style.position = "fixed";
133
+ this._loadingElement.style.width = "100%";
134
+ this._loadingElement.style.height = "100%";
135
+ this._loadingElement.style.left = "0";
136
+ this._loadingElement.style.top = "0";
137
+ this._loadingElement.style.backgroundColor = "#000000";
138
+ this._loadingElement.style.display = "flex";
139
+ this._loadingElement.style.alignItems = "center";
140
+ this._loadingElement.style.justifyContent = "center";
141
+ this._loadingElement.style.zIndex = "1000";
142
+ this._loadingElement.style.flexDirection = "column";
143
+ this._loadingElement.style.pointerEvents = "none";
144
+ this._loadingElement.style.color = "white";
145
+ }
131
146
 
132
147
  const className = this._loadingElementOptions?.className ?? "loading";
133
148
  this._loadingElement.classList.add(className);
@@ -137,10 +152,6 @@ export class EngineLoadingView implements ILoadingViewHandler {
137
152
  }
138
153
  }
139
154
 
140
- if (!existing) {
141
- this._loadingElement.style.color = "white";
142
- this._loadingElement.style.display = "flex";
143
- }
144
155
 
145
156
  const loadingBarContainer = document.createElement("div");
146
157
  const maxWidth = 30;
@@ -11,12 +11,13 @@ import * as flatbuffers from 'flatbuffers';
11
11
  import * as schemes from "../engine-schemes/schemes";
12
12
  import { PeerNetworking } from './engine_networking_peer';
13
13
  import { IModel, INetworkConnection, SendQueue } from './engine_networking_types';
14
+ import { isHostedOnGlitch } from './engine_networking_utils';
14
15
 
15
16
  export const debugNet = utils.getParam("debugnet") ? true : false;
16
17
  export const debugOwner = debugNet || utils.getParam("debugowner") ? true : false;
17
18
 
18
19
  export interface INetworkingWebsocketUrlProvider {
19
- getWebsocketUrl() : string | null;
20
+ getWebsocketUrl(): string | null;
20
21
  }
21
22
 
22
23
  export declare interface IConnectionData {
@@ -386,9 +387,9 @@ export class NetworkConnection implements INetworkConnection {
386
387
  }
387
388
  }
388
389
 
389
- private netWebSocketUrlProvider? : INetworkingWebsocketUrlProvider;
390
+ private netWebSocketUrlProvider?: INetworkingWebsocketUrlProvider;
390
391
 
391
- public registerProvider(prov : INetworkingWebsocketUrlProvider){
392
+ public registerProvider(prov: INetworkingWebsocketUrlProvider) {
392
393
  this.netWebSocketUrlProvider = prov;
393
394
  }
394
395
 
@@ -403,6 +404,9 @@ export class NetworkConnection implements INetworkConnection {
403
404
  if (overrideUrl) {
404
405
  serverUrl = overrideUrl;
405
406
  }
407
+ else if(isHostedOnGlitch()) {
408
+ serverUrl = "wss://" + window.location.host + "/socket";
409
+ }
406
410
  this.connectWebsocket();
407
411
  };
408
412
 
@@ -8,4 +8,8 @@ export function isLocalNetwork(hostname = window.location.hostname) {
8
8
  const isLocalNetwork = new RegExp("[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}|localhost", "gm").test(hostname);
9
9
  if (isLocalNetwork === true) return true;
10
10
  return false;
11
+ }
12
+
13
+ export function isHostedOnGlitch() {
14
+ return window.location.hostname.includes("glitch.me");
11
15
  }
@@ -5,6 +5,8 @@ import { Context } from "./engine_setup";
5
5
  import { isPersistentAsset } from "./extensions/NEEDLE_persistent_assets";
6
6
  import { SourceIdentifier } from "./engine_types";
7
7
  import { debugExtension } from "../engine/engine_default_parameters";
8
+ import { LogType, showBalloonMessage } from "./debug/debug";
9
+ import { isLocalNetwork } from "./engine_networking_utils";
8
10
 
9
11
  const debug = getParam("debugserializer");
10
12
 
@@ -312,6 +314,8 @@ export function deserializeObject(obj: ISerializable, serializedData: object, co
312
314
  implictlyAssignPrimitiveTypes(obj, serializedData);
313
315
  }
314
316
 
317
+ checkObjectAssignments(obj, serializedData);
318
+
315
319
  if (obj.onAfterDeserialize !== undefined) {
316
320
  obj.onAfterDeserialize(serializedData, context);
317
321
  }
@@ -320,6 +324,36 @@ export function deserializeObject(obj: ISerializable, serializedData: object, co
320
324
  return true;
321
325
  }
322
326
 
327
+ function checkObjectAssignments(obj: any, _serializedData?: any) {
328
+ if(isLocalNetwork() === false) return;
329
+ // test if any object reference is missing serializable
330
+ const ownKeys = Object.getOwnPropertyNames(obj);
331
+ for (const key of ownKeys) {
332
+ if (key === "sourceId") continue;
333
+ const value = obj[key];
334
+ if (value === undefined || value === null) continue;
335
+ if (typeof value === "object") {
336
+ if (!value.isObject3D) {
337
+ if (typeof value["node"] === "number" || typeof value["guid"] === "string") {
338
+ const hasOtherKeys = Object.keys(value).length > 1;
339
+ if (!hasOtherKeys) {
340
+ const typeName = obj.constructor?.name;
341
+ showBalloonMessage(`<strong>Missing serialization for object reference!</strong>\n\nPlease change to: \n@serializable(Object3D)\n${key}? : Object3D;\n\nin script ${typeName}.ts\n<a href="https://docs.needle.tools/serializeable">documentation</a>`, LogType.Warn);
342
+ console.warn(obj);
343
+ }
344
+ }
345
+ }
346
+ }
347
+ else if (typeof value === "string") {
348
+ if (value.endsWith(".gltf") || value.endsWith(".glb")) {
349
+ const typeName = obj.constructor?.name;
350
+ showBalloonMessage(`<strong>Missing serialization for object reference!</strong>\n\nPlease change to: \n@serializable(AssetReference)\n${key}? : AssetReference;\n\nin script ${typeName}.ts\n<a href="https://docs.needle.tools/serializeable">documentation</a>`, LogType.Warn);
351
+ console.warn(obj);
352
+ }
353
+ }
354
+ }
355
+ }
356
+
323
357
  function implictlyAssignPrimitiveTypes(obj: any, serializedData: any) {
324
358
  // implictly assign serialized primitive fields
325
359
  for (const key of Object.keys(serializedData)) {
@@ -100,8 +100,13 @@ export declare interface ILight extends IComponent {
100
100
  color: Color;
101
101
  }
102
102
 
103
+ export declare interface ISharedMaterials {
104
+ [num:number] : Material;
105
+ }
106
+
103
107
  export declare interface IRenderer extends IComponent {
104
- material: Material;
108
+ sharedMaterial: Material;
109
+ get sharedMaterials(): ISharedMaterials;
105
110
  }
106
111
 
107
112
  export declare interface ICollider extends IComponent {