@tapthrough/expo 0.0.0-stage → 0.1.1

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 (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +105 -2
  3. package/app.plugin.d.ts +37 -0
  4. package/app.plugin.js +79 -0
  5. package/dist/Annotator.d.ts +14 -0
  6. package/dist/Annotator.d.ts.map +1 -0
  7. package/dist/Annotator.js +160 -0
  8. package/dist/Annotator.js.map +1 -0
  9. package/dist/Bubble.d.ts +27 -0
  10. package/dist/Bubble.d.ts.map +1 -0
  11. package/dist/Bubble.js +234 -0
  12. package/dist/Bubble.js.map +1 -0
  13. package/dist/Feedback.d.ts +14 -0
  14. package/dist/Feedback.d.ts.map +1 -0
  15. package/dist/Feedback.js +977 -0
  16. package/dist/Feedback.js.map +1 -0
  17. package/dist/Overlay.d.ts +13 -0
  18. package/dist/Overlay.d.ts.map +1 -0
  19. package/dist/Overlay.js +44 -0
  20. package/dist/Overlay.js.map +1 -0
  21. package/dist/Popover.d.ts +98 -0
  22. package/dist/Popover.d.ts.map +1 -0
  23. package/dist/Popover.js +531 -0
  24. package/dist/Popover.js.map +1 -0
  25. package/dist/Tapthrough.d.ts +27 -0
  26. package/dist/Tapthrough.d.ts.map +1 -0
  27. package/dist/Tapthrough.js +111 -0
  28. package/dist/Tapthrough.js.map +1 -0
  29. package/dist/core/annotations.d.ts +63 -0
  30. package/dist/core/annotations.d.ts.map +1 -0
  31. package/dist/core/annotations.js +76 -0
  32. package/dist/core/annotations.js.map +1 -0
  33. package/dist/core/bubble.d.ts +21 -0
  34. package/dist/core/bubble.d.ts.map +1 -0
  35. package/dist/core/bubble.js +25 -0
  36. package/dist/core/bubble.js.map +1 -0
  37. package/dist/core/controller.d.ts +46 -0
  38. package/dist/core/controller.d.ts.map +1 -0
  39. package/dist/core/controller.js +103 -0
  40. package/dist/core/controller.js.map +1 -0
  41. package/dist/core/diagnostics.d.ts +47 -0
  42. package/dist/core/diagnostics.d.ts.map +1 -0
  43. package/dist/core/diagnostics.js +101 -0
  44. package/dist/core/diagnostics.js.map +1 -0
  45. package/dist/core/feedback.d.ts +302 -0
  46. package/dist/core/feedback.d.ts.map +1 -0
  47. package/dist/core/feedback.js +345 -0
  48. package/dist/core/feedback.js.map +1 -0
  49. package/dist/core/flags.d.ts +13 -0
  50. package/dist/core/flags.d.ts.map +1 -0
  51. package/dist/core/flags.js +25 -0
  52. package/dist/core/flags.js.map +1 -0
  53. package/dist/core/ideas.d.ts +166 -0
  54. package/dist/core/ideas.d.ts.map +1 -0
  55. package/dist/core/ideas.js +159 -0
  56. package/dist/core/ideas.js.map +1 -0
  57. package/dist/core/launch.d.ts +43 -0
  58. package/dist/core/launch.d.ts.map +1 -0
  59. package/dist/core/launch.js +81 -0
  60. package/dist/core/launch.js.map +1 -0
  61. package/dist/core/reset.d.ts +17 -0
  62. package/dist/core/reset.d.ts.map +1 -0
  63. package/dist/core/reset.js +19 -0
  64. package/dist/core/reset.js.map +1 -0
  65. package/dist/core/review.d.ts +49 -0
  66. package/dist/core/review.d.ts.map +1 -0
  67. package/dist/core/review.js +92 -0
  68. package/dist/core/review.js.map +1 -0
  69. package/dist/core/url.d.ts +9 -0
  70. package/dist/core/url.d.ts.map +1 -0
  71. package/dist/core/url.js +23 -0
  72. package/dist/core/url.js.map +1 -0
  73. package/dist/hooks.d.ts +6 -0
  74. package/dist/hooks.d.ts.map +1 -0
  75. package/dist/hooks.js +13 -0
  76. package/dist/hooks.js.map +1 -0
  77. package/dist/index.d.ts +9 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +7 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/native-intent.d.ts +18 -0
  82. package/dist/native-intent.d.ts.map +1 -0
  83. package/dist/native-intent.js +32 -0
  84. package/dist/native-intent.js.map +1 -0
  85. package/dist/runtime.d.ts +24 -0
  86. package/dist/runtime.d.ts.map +1 -0
  87. package/dist/runtime.js +17 -0
  88. package/dist/runtime.js.map +1 -0
  89. package/dist/screenshot.d.ts +7 -0
  90. package/dist/screenshot.d.ts.map +1 -0
  91. package/dist/screenshot.js +48 -0
  92. package/dist/screenshot.js.map +1 -0
  93. package/dist/supabase.d.ts +20 -0
  94. package/dist/supabase.d.ts.map +1 -0
  95. package/dist/supabase.js +18 -0
  96. package/dist/supabase.js.map +1 -0
  97. package/dist/ui/native.d.ts +34 -0
  98. package/dist/ui/native.d.ts.map +1 -0
  99. package/dist/ui/native.js +76 -0
  100. package/dist/ui/native.js.map +1 -0
  101. package/dist/ui/parts.d.ts +62 -0
  102. package/dist/ui/parts.d.ts.map +1 -0
  103. package/dist/ui/parts.js +110 -0
  104. package/dist/ui/parts.js.map +1 -0
  105. package/dist/ui/theme.d.ts +90 -0
  106. package/dist/ui/theme.d.ts.map +1 -0
  107. package/dist/ui/theme.js +61 -0
  108. package/dist/ui/theme.js.map +1 -0
  109. package/package.json +82 -3
  110. package/src/Annotator.tsx +279 -0
  111. package/src/Bubble.tsx +331 -0
  112. package/src/Feedback.tsx +1739 -0
  113. package/src/Overlay.tsx +61 -0
  114. package/src/Popover.tsx +1393 -0
  115. package/src/Tapthrough.tsx +171 -0
  116. package/src/core/annotations.ts +116 -0
  117. package/src/core/bubble.ts +45 -0
  118. package/src/core/controller.ts +119 -0
  119. package/src/core/diagnostics.ts +128 -0
  120. package/src/core/feedback.ts +589 -0
  121. package/src/core/flags.ts +31 -0
  122. package/src/core/ideas.ts +337 -0
  123. package/src/core/launch.ts +119 -0
  124. package/src/core/reset.ts +28 -0
  125. package/src/core/review.ts +148 -0
  126. package/src/core/url.ts +21 -0
  127. package/src/hooks.ts +15 -0
  128. package/src/index.ts +8 -0
  129. package/src/native-intent.ts +36 -0
  130. package/src/runtime.ts +30 -0
  131. package/src/screenshot.ts +64 -0
  132. package/src/supabase.ts +27 -0
  133. package/src/ui/native.ts +116 -0
  134. package/src/ui/parts.tsx +249 -0
  135. package/src/ui/theme.ts +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.js","sourceRoot":"","sources":["../src/Popover.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,IAAI,EACJ,SAAS,EACT,IAAI,GAEL,MAAM,cAAc,CAAA;AAUrB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAA0C,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAClF,OAAO,EACL,gBAAgB,EAChB,WAAW,EAKX,gBAAgB,EAChB,eAAe,EACf,MAAM,GACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAiB,OAAO,EAAE,MAAM,eAAe,CAAA;AACnF,OAAO,EAAe,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AA6EpE,iFAAiF;AACjF,SAAS,KAAK,CAAC,IAA+B;IAC5C,OAAO,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,SAAS,QAAQ,CAAC,SAAoB,EAAE,GAAW;IACjD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IAC/D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,GAAG;YACH,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,QAAQ;YACR,KAAK,EAAE,KAAK;SACb,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;IAC3D,IAAI,KAAK;QACP,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAC5F,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,GAAQ,EAAE,EAAE,CAC1B,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;IACvC,CAAC,CAAC,GAAG,CAAC,IAAI;IACV,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAC7C,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE;QACzB,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;YACnB,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;YAChC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;AAWlC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAC9D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACjB,OAAM;QACR,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;IAClF,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;IAEzB,uDAAuD;IACvD,sFAAsF;IACtF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,KAAK,QAAQ,CAAC,OAAO,IAAI,YAAY;YAAE,OAAM;QACpD,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAA;QACrB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACrD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAChB,QAAQ,CAAC,QAAQ,CAAC;YAChB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;YAC5E,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;SAC5E,CAAC,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAET,YAAY,CAAC,GAAG,EAAE;QAChB,IAAI,IAAI;YAAE,KAAK,CAAC,YAAY,EAAE,CAAA;aACzB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,EAAE,CAAA;;YAC1D,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACtC,MAAM,KAAK,GAAc,IAAI;QAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACzE,CAAC,CAAC;YACE,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,KAAK;YACjC,GAAG,CAAC,SAAS,CAAC,QAAQ,KAAK,OAAO;gBAChC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE;gBAC9B,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;SAC/B,CAAA;IAEL,OAAO,CACL,KAAC,QAAQ,CAAC,IAAI,IACZ,KAAK,EAAE;YACL,MAAM,CAAC,KAAK;YACZ,KAAK;YACL;gBACE,6EAA6E;gBAC7E,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxF,eAAe,EAAE,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE;aAC1F;SACF,EACD,wBAAwB,EAAE,IAAI,YAE9B,KAAC,OAAO,IAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAC3E,MAAC,QAAQ,CAAC,IAAI,IACZ,KAAK,EAAE;oBACL,MAAM,CAAC,MAAM;oBACb,IAAI,IAAI,MAAM,CAAC,IAAI;oBACnB,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;iBAChF,aAED,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,aACvB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,KAAC,YAAY,IACX,IAAI,EAAC,cAAc,EACnB,KAAK,EAAC,MAAM,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,GAC9C,CACH,CAAC,CAAC,CAAC,IAAI,EACR,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,eAAe,CAAC,aACpE,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,YACpE,IAAI,CAAC,KAAK,GACN,EACN,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACf,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,YACxE,IAAI,CAAC,QAAQ,GACT,CACR,CAAC,CAAC,CAAC,IAAI,IACH,EACP,KAAC,YAAY,IACX,IAAI,EACF,IAAI,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,oCAAoC,EAEpF,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,EAChD,OAAO,EAAE,KAAK,CAAC,YAAY,GAC3B,EACD,IAAI,CAAC,CAAC,CAAC,KAAC,YAAY,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,IACvE,EACP,MAAC,UAAU,IACT,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EACzC,qBAAqB,EAAE,MAAM,CAAC,IAAI,EAClC,yBAAyB,EAAC,SAAS,EACnC,4BAA4B,mBAE3B,IAAI,CAAC,IAAI,EACT,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,iBAAiB,EAAC,OAAO,YAC5E,KAAK,CAAC,KAAK,GACP,CACR,CAAC,CAAC,CAAC,IAAI,IACG,EACZ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,YAAG,IAAI,CAAC,MAAM,GAAQ,CAC9E,CAAC,CAAC,CAAC,IAAI,IACM,GACR,GACI,CACjB,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,CAAqB,EAAE,MAAc;IACvD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;IAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACnD,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACjD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAA;QACjD,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAC/D,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAA;QAC5D,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACtC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACpC,KAAK,OAAO;YACV,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACpC,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,QAAQ;gBACnB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;gBACvD,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACzB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QACnC,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,SAAS,QAAQ,CAAC,CAAqB,EAAE,MAAc;IACrD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACvE,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG;QACb,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI;QACvD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC,IAAI;KACxD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACjB,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,EAAE,EAAE;QACnD,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,6BAA6B,CAAC;QAC1E,IAAI,EAAE,CACJ,8BACG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC,CAAC,CAAC,IAAI,EACvF,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC,CAAC,CAAC,IAAI,EAC7E,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACpB,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;oBACxF,OAAO,CACL,KAAC,GAAG,IAEF,MAAM,EAAE,MAAM,EACd,IAAI,EACF,IAAI,CAAC,CAAC,CAAC,CACL,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,CACnE,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,IAAI,EAAC,iBAAiB,EAAC,MAAM,EAAE,MAAM,GAAI,CACjD,EAEH,KAAK,EAAE,aAAa,IAAI,CAAC,OAAO,EAAE,EAClC,QAAQ,EACN,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAEjF,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,IAb9D,IAAI,CAAC,EAAE,CAcZ,CACH,CAAA;gBACH,CAAC,CAAC,EACD,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;oBACpD,OAAO,CACL,KAAC,GAAG,IAEF,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,KAAC,YAAY,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAI,EAC1D,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAC1D,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,IAL7D,QAAQ,CAAC,GAAG,CAMjB,CACH,CAAA;gBACH,CAAC,CAAC,EACD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CACf,8BACE,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,6BAElE,EACN,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,KAAC,GAAG,IAEF,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,KAAC,KAAK,IAAC,IAAI,EAAC,oBAAoB,EAAC,MAAM,EAAE,MAAM,GAAI,EACzD,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EACN,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gCAChB,CAAC,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,EAExE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,IAR/D,KAAK,CAAC,GAAG,CASd,CACH,CAAC,IACD,CACJ,CAAC,CAAC,CAAC,IAAI,EACP,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAChB,8BACE,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,sBAAc,EACtF,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjC,KAAC,GAAG,IAEF,MAAM,EAAE,MAAM,EACd,IAAI,EACF,KAAC,KAAK,IACJ,IAAI,EAAC,WAAW,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EACP,IAAI,CAAC,MAAM,KAAK,eAAe;oCAC/B,IAAI,CAAC,MAAM,KAAK,eAAe;oCAC/B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAEvB,EAEJ,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EACtB,QAAQ,EACN,IAAI,CAAC,OAAO;gCACV,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,6BAA6B;gCACjD,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY;oCACxD,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,mBAAmB;oCACvC,CAAC,CAAC,IAAI,CAAC,UAAU,EAEvB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,IArB3D,IAAI,CAAC,EAAE,CAsBZ,CACH,CAAC,IACD,CACJ,CAAC,CAAC,CAAC,IAAI,EACP,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACT,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,iJAGjD,CACR,CACF,CAAC,CAAC,CAAC,CACF,KAAC,GAAG,IACF,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,KAAC,KAAK,IAAC,IAAI,EAAC,uBAAuB,EAAC,MAAM,EAAE,MAAM,GAAI,EAC5D,KAAK,EAAC,WAAW,EACjB,QAAQ,EAAC,wCAAmC,EAC5C,OAAO,EAAE,GAAG,EAAE;wBACZ,CAAC,CAAC,WAAW,EAAE,CAAA;wBACf,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;oBACrC,CAAC,GACD,CACH,EACD,KAAC,YAAY,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,GAAI,IACvE,CACJ;QACD,MAAM,EAAE,CACN,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,aACtB,KAAC,OAAO,IAAC,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,GAAI,EAC3F,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,GAAI,IAClF,CACR;KACF,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAU;IAC3B,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC,KAAK,CAAA;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3C,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1D,CAAC;AAED,SAAS,QAAQ,CAAC,CAAqB,EAAE,IAAU,EAAE,MAAc;IACjE,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAA;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAA;IACvE,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;QACtE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;KACnF,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;IAChE,IAAI,MAAM,GAAc,IAAI,CAAA;IAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,CACP,KAAC,OAAO,IAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,GAAI,CAC1F,CAAA;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CACd,KAAC,OAAO,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,GAAI,CAC3F,CAAC,CAAC,CAAC,CACF,KAAC,OAAO,IACN,KAAK,EAAC,oBAAoB,EAC1B,OAAO,EAAE,GAAG,EAAE;gBACZ,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACjE,IAAI,EAAE,EAAE,OAAO;oBAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;qBAC5B,IAAI,IAAI,CAAC,UAAU;oBAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC5D,CAAC,GACD,CACH,CAAA;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,GAAG,CACP,KAAC,OAAO,IACN,KAAK,EAAC,WAAW,EACjB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,GAC/C,CACH,CAAA;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;QACtB,QAAQ,EAAE,IAAI,CAAC,UAAU;QACzB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CACJ,8BACG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACd,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAAG,IAAI,CAAC,OAAO,GAAQ,CAC5E,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,uBAAI,IAAI,CAAC,IAAI,cAAS,CAC3E,EACA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACd,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,aAC3D,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,GAAI,EACvD,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,aACzB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAAG,IAAI,CAAC,OAAO,GAAQ,EAC5E,KAAC,OAAO,IACN,KAAK,EAAE;wCACL,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;wCAC5D,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI;qCACzE,EACD,MAAM,EAAE,MAAM,GACd,IACG,IACF,CACR,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CACrB,KAAC,QAAQ,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,CAClD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACd,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YAAG,IAAI,CAAC,IAAI,GAAQ,CAC9E,CAAC,CAAC,CAAC,IAAI,EACP,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CACpF,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,aACtB,KAAC,iBAAiB,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,GAAI,EAC9C,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YACtE,IAAI,CAAC,MAAM,KAAK,UAAU;gCACzB,CAAC,CAAC,2EAA2E;gCAC7E,CAAC,CAAC,mFAAmF,GAClF,IACF,CACR,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACjC,KAAC,WAAW,IAEV,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EACrD,MAAM,EAAE,MAAM,IAJT,IAAI,CAAC,EAAE,CAKZ,CACH,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,CACtD,KAAC,OAAO,IAAC,KAAK,EAAC,gBAAgB,EAAC,MAAM,EAAE,MAAM,YAC5C,KAAC,QAAQ,IACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EACrE,MAAM,EAAE,MAAM,GACd,GACM,CACX,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAClC,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YACtD,IAAI;wBACH,CAAC,CAAC,wEAAwE;wBAC1E,CAAC,CAAC,4DAA4D,GAC3D,CACR,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,OAAO,IACN,KAAK,EAAE;wBACL,GAAG,KAAK;wBACR,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;qBAClF,EACD,MAAM,EAAE,MAAM,GACd,IACD,CACJ;QACD,MAAM;KACP,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,OAAO,CAAC,EACf,KAAK,EACL,MAAM,GAIP;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;IAClF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAC9B,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,YACtB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,SAAS,IAER,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EACxC,iBAAiB,EAAC,MAAM,EACxB,OAAO,EAAE,CAAC,YAEV,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,YAAG,IAAI,CAAC,KAAK,GAAQ,IALrF,IAAI,CAAC,GAAG,CAMH,CACb,CAAC,GACG,CACR,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAA2C;IAC3E,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAC,MAAM,YACnD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAC/D,MAAM,IAAI,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;YACpC,OAAO,CACL,MAAC,IAAI,IAEH,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,UAAU,QACV,kBAAkB,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,aAE3G,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,aAC3B,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,EAChD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IACH,KAAK,EAAE;oCACL,MAAM,CAAC,SAAS;oCAChB,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE;iCAC7E,GACD,CACH,IACI,EACP,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,aACrD,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,aAC3B,KAAC,IAAI,IACH,KAAK,EAAE;4CACL,IAAI,CAAC,OAAO;4CACZ,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;4CAClD,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;yCACvE,YAEA,KAAK,CAAC,KAAK,GACP,EACN,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YAAG,IAAI,GAAQ,CACzE,CAAC,CAAC,CAAC,IAAI,IACH,EACN,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACd,KAAC,IAAI,IACH,KAAK,EAAE;oCACL,IAAI,CAAC,QAAQ;oCACb,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE;iCACrE,YAEA,KAAK,CAAC,MAAM,GACR,CACR,CAAC,CAAC,CAAC,IAAI,IACH,KAzCF,KAAK,CAAC,GAAG,CA0CT,CACR,CAAA;QACH,CAAC,CAAC,GACG,CACR,CAAA;AACH,CAAC;AAED,MAAM,WAAW,GAAuC;IACtD,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,SAAS;CAClB,CAAA;AAED,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAiD;IACjF,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAI,CAAA;IAC3E,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAI,CAAA;IAC7E,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,YAC1B,KAAC,iBAAiB,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,GAAI,GACjD,CACR,CAAA;IACH,CAAC;IACD,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,GAAI,CAAA;AAClG,CAAC;AAED,oFAAoF;AACpF,SAAS,WAAW,CAAC,EACnB,SAAS,EACT,IAAI,EACJ,MAAM,EACN,MAAM,GAMP;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAW,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACnD,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,aAC7B,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,kFAAkF;YAClF,MAAC,IAAI,IAAS,KAAK,EAAE,MAAM,CAAC,QAAQ,aAClC,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAAG,QAAQ,GAAQ,EACxF,KAAC,SAAS,IACR,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CACtB,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAEvE,WAAW,EAAC,aAAa,EACzB,oBAAoB,EAAE,MAAM,CAAC,SAAS,EACtC,SAAS,QACT,KAAK,EAAE;4BACL,IAAI,CAAC,OAAO;4BACZ,MAAM,CAAC,SAAS;4BAChB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE;yBACtD,EACD,kBAAkB,EAAE,QAAQ,GAC5B,KAhBO,CAAC,CAiBL,CACR,CAAC,EACF,KAAC,OAAO,IACN,KAAK,EAAC,cAAc,EACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,KAAK,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GACnD,IACG,CACR,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,CAAqB,EAAE,MAAc;IACpD,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACnB,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,sBAAsB,CAAC,CAAC,CAAC,UAAU;QACpE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CACb,KAAC,iBAAiB,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,GAAI,CAC/C,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,2DAEjD,CACR,CAAC,CAAC,CAAC,CACF,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAChB,KAAC,GAAG,IAEF,MAAM,EAAE,MAAM,EACd,IAAI,EACF,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CACX,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,MAAM,GAAI,CACrC,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB,EAAE,MAAM,EAAE,MAAM,GAAI,CACrF,EAEH,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,EAClC,QAAQ,EACN,EAAE,CAAC,OAAO;gBACR,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,EAAE,CAAC,aAAa;oBAChB,CAAC,CAAC,oDAAoD;oBACtD,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;yBACxE,MAAM,CAAC,OAAO,CAAC;yBACf,IAAI,CAAC,KAAK,CAAC,IAAI,gBAAgB,EAE1C,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,EAAE,CAAC,OAAO;oBAAE,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAA;qBAC5C,IAAI,EAAE,CAAC,OAAO;oBAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;YACvC,CAAC,IAtBI,EAAE,CAAC,MAAM,CAuBd,CACH,CAAC,CACH;KACF,CAAA;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,YAAY,CAAC,QAA2B,EAAE,OAAgB;IACjE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACpD,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAA;IACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3F,OAAO,IAAI,IAAI,CAAC;QACd,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;QAClD,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAA;AACzC,CAAC;AAED,SAAS,gBAAgB,CACvB,QAA2B,EAC3B,QAA0B,EAC1B,QAAiB;IAEjB,MAAM,KAAK,GAAG,GAAG,QAAQ,CAAC,KAAK,QAAQ,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACxE,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO,KAAK,CAAA;QACzC,OAAO,GAAG,KAAK,MAAM,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAA;IACvE,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,QAAQ,CAAC,OAAO,OAAO,QAAQ,CAAC,KAAK,UAAU,CAAA;IAC3F,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAA;IACnE,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,SAAS,SAAS,CAAC,CAAqB,EAAE,KAAY,EAAE,MAAc;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAA;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAA;IAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3C,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACxC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,KAAK;YACnB,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;QAC1D,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CACJ,8BACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CACX,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAAG,KAAK,CAAC,GAAG,GAAQ,CACzE,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,OAAO,IAAC,KAAK,EAAC,iBAAiB,EAAC,MAAM,EAAE,MAAM,YAC5C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,QAAQ,IAAiB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAC,SAAS,EAAC,MAAM,EAAE,MAAM,EAAE,KAAK,UAA5D,IAAI,CAAC,IAAI,CAAsD,CAC/E,CAAC,GACM,CACX,CAAC,CAAC,CAAC,IAAI,EACP,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,OAAO,IAAC,KAAK,EAAC,gBAAgB,EAAC,MAAM,EAAE,MAAM,YAC5C,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAI,GAC1E,CACX,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACd,KAAC,OAAO,IAAC,KAAK,EAAC,mBAAc,EAAC,MAAM,EAAE,MAAM,YAC1C,KAAC,QAAQ,IACP,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAChE,MAAM,EAAE,MAAM,GACd,GACM,CACX,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,4FAEjD,CACR,CAAC,CAAC,CAAC,IAAI,IACP,CACJ;QACD,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CACb,8BACE,KAAC,OAAO,IACN,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,EAClD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GACnC,EACF,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,IAC/E,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,OAAO,IACN,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EACnE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GACnC,CACH;KACF,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAqB,EAAE,KAAY,EAAE,MAAc;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IACzD,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,CAAA;IAC1B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,IAAI,YAAY,CAAC,CAAA;IACtE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY;QAC/C,QAAQ,EAAE,KAAK,CAAC,KAAK;QACrB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC;QACpB,IAAI,EAAE,CACJ,8BACG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,KAAC,QAAQ,IAEP,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EACnD,MAAM,EAAE,MAAM,IAHT,IAAI,CAAC,IAAI,CAId,CACH,CAAC,EACD,KAAK,CAAC,CAAC,CAAC,CACP,8BACE,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,iBAAiB,EAAC,OAAO,YAC3E,KAAK,GACD,EACP,KAAC,OAAO,IAAC,KAAK,EAAC,sBAAsB,EAAC,MAAM,EAAE,MAAM,YAClD,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAI,GAC1E,IACT,CACJ,CAAC,CAAC,CAAC,IAAI,IACP,CACJ;QACD,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CACd,8BACE,KAAC,OAAO,IAAC,KAAK,EAAC,WAAW,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,EAClE,KAAC,OAAO,IAAC,KAAK,EAAC,wBAAwB,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAI,IAC3F,CACJ,CAAC,CAAC,CAAC,SAAS;KACd,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CACf,CAAqB,EACrB,KAAY,EACZ,QAA2B,EAC3B,KAAa,EACb,MAAc;IAEd,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,QAAQ,KAAK,GAAG,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE;QACzD,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CACJ,8BACE,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAAG,IAAI,CAAC,MAAM,GAAQ,EAC3E,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,yBAAW,IAAI,CAAC,MAAM,IAAQ,EACrF,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAC3D,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YACtD,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,wDAAwD,GAChM,CACR,CAAC,CAAC,CAAC,IAAI,IACP,CACJ;QACD,MAAM,EAAE,CACN,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,aACtB,KAAC,OAAO,IACN,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACtD,kBAAkB,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE,EAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,EAC5C,KAAK,EAAE,MAAM,CAAC,IAAI,GAClB,EACF,KAAC,OAAO,IACN,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,WAAW,EAChB,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACtD,kBAAkB,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE,EAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,EAC5C,KAAK,EAAE,MAAM,CAAC,IAAI,GAClB,IACG,CACR;KACF,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,CAAqB,EAAE,IAAiB,EAAE,MAAc;IAC3E,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACxF,OAAO;QACL,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;QAC1B,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CACJ,8BACE,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAAG,IAAI,CAAC,OAAO,GAAQ,EAC5E,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,yDAEjD,IACN,CACJ;QACD,MAAM,EAAE,CACN,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,aACtB,KAAC,OAAO,IACN,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,SAAS,EAAE,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAC5D,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,EAChD,KAAK,EAAE,MAAM,CAAC,IAAI,GAClB,EACF,KAAC,OAAO,IACN,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,WAAW,EAChB,SAAS,EAAE,MAAM,CAAC,IAAI,EACtB,SAAS,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACrD,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EACzC,KAAK,EAAE,MAAM,CAAC,IAAI,GAClB,IACG,CACR;KACF,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAqB,EAAE,KAAY,EAAE,MAAc;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACpF,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAChE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CACJ,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,aACtB,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAI,EAC5E,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAChD,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,YAAY,GACzD,EACN,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YACrD,GAAG,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,KAAK,SAAS,GAC5C,CACR,CAAC,CAAC,CAAC,IAAI,IACH,CACR;QACD,MAAM,EAAE,CACN,8BACG,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,OAAO,IACN,KAAK,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,GAChE,CACH,CAAC,CAAC,CAAC,CACF,KAAC,OAAO,IAAC,KAAK,EAAC,UAAU,EAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAI,CACjD,EACD,KAAC,OAAO,IACN,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,GAChD,IACD,CACJ;KACF,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,CAAqB,EAAE,KAAY,EAAE,MAAc;IACtE,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,sBAAsB;QAChC,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CACJ,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,+FAE7C,CACR;QACD,MAAM,EAAE,CACN,8BACE,KAAC,OAAO,IAAC,KAAK,EAAC,kBAAkB,EAAC,OAAO,EAAE,CAAC,CAAC,aAAa,GAAI,EAC9D,KAAC,OAAO,IACN,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,GAChD,IACD,CACJ;KACF,CAAA;AACH,CAAC;AAED,gFAAgF;AAEhF,SAAS,UAAU,CAAC,IAAiB;IACnC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3F,CAAC;AAED,SAAS,GAAG,CAAC,EACX,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,GAOP;IACC,OAAO,CACL,MAAC,SAAS,IACR,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,GAAG,KAAK,KAAK,QAAQ,EAAE,EAC3C,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,aAEhF,IAAI,EACL,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,aACzB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,YACpF,KAAK,GACD,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,YACxE,QAAQ,GACJ,IACF,EACP,KAAC,IAAI,IAAC,IAAI,EAAC,eAAe,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,GAAI,IACrD,CACb,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAA6C;IAC5E,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,aAC3D,KAAC,IAAI,IAAC,IAAI,EAAC,iBAAiB,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,GAAI,EAClE,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,aACzB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,+CAE9D,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YAAG,YAAY,CAAC,KAAK,CAAC,GAAQ,IAClF,IACF,CACR,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAyC;IACxE,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,aAC3D,KAAC,IAAI,IAAC,IAAI,EAAC,wBAAwB,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,GAAI,EACpE,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,aACzB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAClE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,wBAAwB,GAC3D,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YACtD,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,6BAA6B,GACjD,IACF,EACN,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CACf,KAAC,SAAS,IACR,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAiB,CAAC,EACvD,iBAAiB,EAAC,MAAM,EACxB,kBAAkB,EAAC,sBAAsB,EACzC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI;oBACX,EAAE,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE;oBACpC,OAAO,IAAI,MAAM,CAAC,OAAO;iBAC1B,YAED,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,qBAAa,GACvE,CACb,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAA;AACH,CAAC;AAED,SAAS,IAAI,CAAC,EACZ,IAAI,EACJ,MAAM,EACN,IAAI,GAAG,EAAE,GAKV;IACC,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,MAAM,CAAC,IAAI;YACX,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,GAAG,CAAC,EAAE;YACrD,EAAE,eAAe,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;SACjE,YAED,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAC7C,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,KAAK,EAAC,SAAS,EACf,MAAM,EAAC,MAAM,GACb,GACG,CACR,CAAA;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EACb,IAAI,EACJ,MAAM,EACN,SAAS,GAAG,KAAK,GAMlB;IACC,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,aAC9D,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,GAAI,EACjD,SAAS,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,GAAI,CAAC,CAAC,CAAC,IAAI,IAChD,CACR,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAkD;IACxF,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,MAAM,GAAI,CAAA;IAC5E,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,MAAM,GAAI,CAAA;IAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAA;IAC5C,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,YAE1F,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,gBAAgB,EAAE,KAAK,YAC5E,QAAQ,CAAC,OAAO,GACZ,CACR,CAAC,CAAC,CAAC,IAAI,GACH,CACR,CAAA;AACH,CAAC;AAED,MAAM,SAAS,GAAwC;IACrD,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,aAAa;CACtB,CAAA;AAED,SAAS,QAAQ,CAAC,EAChB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,GAAG,KAAK,GAOd;IACC,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,aAC7E,KAAC,IAAI,IACH,KAAK,EAAE;oBACL,MAAM,CAAC,IAAI;oBACX;wBACE,eAAe,EACb,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;qBACnF;iBACF,YAEA,CAAC,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC9B,KAAC,iBAAiB,IAAC,IAAI,EAAC,OAAO,GAAG,CACnC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAC/B,KAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,SAAS,EAAC,MAAM,EAAC,MAAM,GAAG,CAClE,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IACH,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAC1B,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,GAC7C,CACH,GACI,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAAG,IAAI,CAAC,IAAI,GAAQ,IACnF,CACR,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,EACf,KAAK,EACL,MAAM,EACN,QAAQ,GAKT;IACC,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,YAAY,aAC9B,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YAAG,KAAK,GAAQ,EAC7F,QAAQ,IACJ,CACR,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,EAChB,KAAK,EACL,MAAM,GAIP;IACC,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,YACzB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QACtB,gGAAgG;QAChG,MAAC,IAAI,IAA4B,KAAK,EAAE,MAAM,CAAC,WAAW,aACxD,KAAC,IAAI,IACH,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YACjE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAQ,EACrB,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,aACzB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,YAAG,IAAI,CAAC,KAAK,GAAQ,EACxE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACb,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,YAAG,IAAI,CAAC,MAAM,GAAQ,CAChF,CAAC,CAAC,CAAC,IAAI,IACH,KATE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAUxB,CACR,CAAC,GACG,CACR,CAAA;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,YAAY,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,MAAM,GAKP;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,aACzB,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,8BAC1C,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,YAAG,IAAI,CAAC,IAAI,EAAE,GAAQ,IACrF,EACP,KAAC,SAAS,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAC,QAAQ,EAAC,OAAO,EAAE,EAAE,YAChF,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,uBAAe,GAC1E,IACP,CACR,CAAA;IACH,CAAC;IACD,OAAO,CACL,KAAC,SAAS,IACR,KAAK,EAAE,IAAI,EACX,YAAY,EAAE,QAAQ,EACtB,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAC5C,WAAW,EAAC,6BAA6B,EACzC,oBAAoB,EAAE,MAAM,CAAC,SAAS,EACtC,cAAc,EAAC,OAAO,EACtB,aAAa,EAAC,MAAM,EACpB,KAAK,EAAE;YACL,IAAI,CAAC,OAAO;YACZ,MAAM,CAAC,SAAS;YAChB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE;SACtD,EACD,kBAAkB,EAAC,WAAW,GAC9B,CACH,CAAA;AACH,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;IAC/B,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IACtC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACjB,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;IACzB,MAAM,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;IACjF,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;IACpC,eAAe,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACpC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IACtC,IAAI,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IAC1E,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IACjC,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;IACjC,GAAG,EAAE;QACH,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,EAAE;QACP,eAAe,EAAE,CAAC;QAClB,iBAAiB,EAAE,EAAE;QACrB,gBAAgB,EAAE,CAAC,EAAE;QACrB,YAAY,EAAE,EAAE;KACjB;IACD,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;IACjC,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC/B,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE;IAC5C,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;IACtC,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IACnC,KAAK,EAAE;QACL,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,gBAAgB,EAAE,CAAC,CAAC;KACrB;IACD,IAAI,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;IACtE,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;IACzB,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE;IACjG,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE;IACxD,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE;IAC7C,QAAQ,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE;IACjE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1B,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IACpB,WAAW,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;IAC7C,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,cAAc,CAAC,EAAE;IACvE,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;IACtC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACjB,IAAI,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;IAC3D,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;QAC/B,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,CAAC;KACb;IACD,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;IACzF,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;IACpB,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;IACxE,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;IAC1B,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;IACxC,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE;IAC9C,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;IACpE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;IAC/B,SAAS,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE;IAC5E,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE;IACnF,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;IACnF,SAAS,EAAE;QACT,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC,CAAC;QACP,KAAK,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,SAAS;KAC3B;CACF,CAAC,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { AuthAdapter, ResetTarget } from './core/launch.js';
3
+ export interface TapthroughProps {
4
+ children: ReactNode;
5
+ /**
6
+ * How to log in with the seeded session, e.g. `supabaseAuth(supabase)`.
7
+ * Leave it out if the app has no login.
8
+ */
9
+ auth?: AuthAdapter;
10
+ /** Local state to clear before logging in: query caches, persisted keys, stores. */
11
+ reset?: ResetTarget[];
12
+ /** Overrides the config plugin's `seedHookUrl`. */
13
+ seedHookUrl?: string;
14
+ /** Overrides the config plugin's `enabled`. Off unless one of them turns it on. */
15
+ enabled?: boolean;
16
+ /** Shows the Report button on PR previews. Defaults to true. */
17
+ feedback?: boolean;
18
+ /** Overrides the config plugin's `apiUrl`, where reports are sent. */
19
+ apiUrl?: string;
20
+ }
21
+ /**
22
+ * Wrap your root layout's content with it. When the app opens from a
23
+ * Tapthrough link, it seeds the test user, logs in, applies flags and opens
24
+ * the scenario's screen. Otherwise it renders `children` and does nothing.
25
+ */
26
+ export declare function Tapthrough({ children, auth, reset, seedHookUrl, enabled, feedback, apiUrl, }: TapthroughProps): import("react").JSX.Element;
27
+ //# sourceMappingURL=Tapthrough.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tapthrough.d.ts","sourceRoot":"","sources":["../src/Tapthrough.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAA;AAGjD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAKhE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS,CAAA;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,oFAAoF;IACpF,KAAK,CAAC,EAAE,WAAW,EAAE,CAAA;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAKD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,IAAa,EACb,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAe,EACf,MAAM,GACP,EAAE,eAAe,+BAgEjB"}
@@ -0,0 +1,111 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Constants from 'expo-constants';
3
+ import * as Linking from 'expo-linking';
4
+ import { router, useRootNavigationState } from 'expo-router';
5
+ import { useEffect } from 'react';
6
+ import { ActivityIndicator, Pressable, StyleSheet, Text, View } from 'react-native';
7
+ import { setFlagOverrides } from './core/flags.js';
8
+ import { ReportButton } from './Feedback.js';
9
+ import { useLaunchState } from './hooks.js';
10
+ import { controller, pluginConfig } from './runtime.js';
11
+ /** For apps without login: the seeded session is ignored. */
12
+ const noAuth = { signIn: async () => { } };
13
+ /**
14
+ * Wrap your root layout's content with it. When the app opens from a
15
+ * Tapthrough link, it seeds the test user, logs in, applies flags and opens
16
+ * the scenario's screen. Otherwise it renders `children` and does nothing.
17
+ */
18
+ export function Tapthrough({ children, auth = noAuth, reset, seedHookUrl, enabled, feedback = true, apiUrl, }) {
19
+ const config = pluginConfig();
20
+ const isEnabled = enabled ?? config.enabled;
21
+ const hookUrl = seedHookUrl ?? config.seedHookUrl;
22
+ const navigationReady = Boolean(useRootNavigationState()?.key);
23
+ useEffect(() => {
24
+ if (!isEnabled)
25
+ return;
26
+ if (!hookUrl) {
27
+ console.warn('[tapthrough] Enabled without a seedHookUrl; launch links will be ignored.');
28
+ return;
29
+ }
30
+ const config = Constants.expoConfig;
31
+ const audiences = [config?.ios?.bundleIdentifier, config?.android?.package].filter((id) => typeof id === 'string');
32
+ controller.configure({
33
+ seedHookUrl: hookUrl,
34
+ expectedAudiences: audiences,
35
+ auth,
36
+ reset: reset ?? [],
37
+ applyFlags: setFlagOverrides,
38
+ });
39
+ return () => controller.configure(undefined);
40
+ }, [isEnabled, hookUrl, auth, reset]);
41
+ useEffect(() => {
42
+ if (!navigationReady)
43
+ return;
44
+ // Back to the root of the stack, then push: the reviewer lands on the scenario's
45
+ // screen with a back button, instead of on a stack that holds only that screen.
46
+ controller.setNavigator((path) => {
47
+ if (router.canDismiss())
48
+ router.dismissAll();
49
+ router.push(path);
50
+ });
51
+ return () => controller.setNavigator(undefined);
52
+ }, [navigationReady]);
53
+ // Fallback for apps without `+native-intent`; tokens are de-duplicated.
54
+ useEffect(() => {
55
+ if (!isEnabled)
56
+ return;
57
+ let active = true;
58
+ void Linking.getInitialURL().then((url) => {
59
+ if (active)
60
+ controller.offer(url);
61
+ });
62
+ const subscription = Linking.addEventListener('url', ({ url }) => controller.offer(url));
63
+ return () => {
64
+ active = false;
65
+ subscription.remove();
66
+ };
67
+ }, [isEnabled]);
68
+ return (_jsxs(_Fragment, { children: [children, (isEnabled || config.staff) && feedback ? (_jsx(ReportButton, { apiUrl: apiUrl ?? config.apiUrl, canSetUp: Boolean(hookUrl), appKey: config.staff ? config.appKey : undefined })) : null, isEnabled ? _jsx(LaunchOverlay, {}) : null] }));
69
+ }
70
+ function LaunchOverlay() {
71
+ const state = useLaunchState();
72
+ // The Review popover shows its own progress for setups it started.
73
+ if (state.status !== 'idle' && state.source === 'app')
74
+ return null;
75
+ if (state.status === 'launching') {
76
+ return (_jsxs(View, { style: styles.backdrop, pointerEvents: "auto", children: [_jsx(ActivityIndicator, { size: "large", color: "#ffffff" }), _jsx(Text, { style: styles.backdropText, children: "Setting up your review\u2026" })] }));
77
+ }
78
+ if (state.status === 'error') {
79
+ return (_jsxs(View, { style: styles.card, accessibilityRole: "alert", children: [_jsx(Text, { style: styles.title, children: "Couldn't open this preview" }), _jsx(Text, { style: styles.message, children: state.error.message }), _jsx(Pressable, { onPress: controller.dismiss, style: styles.button, accessibilityRole: "button", hitSlop: 8, children: _jsx(Text, { style: styles.buttonText, children: "Dismiss" }) })] }));
80
+ }
81
+ return null;
82
+ }
83
+ const styles = StyleSheet.create({
84
+ backdrop: {
85
+ position: 'absolute',
86
+ top: 0,
87
+ right: 0,
88
+ bottom: 0,
89
+ left: 0,
90
+ alignItems: 'center',
91
+ justifyContent: 'center',
92
+ gap: 16,
93
+ backgroundColor: 'rgba(17, 17, 17, 0.85)',
94
+ },
95
+ backdropText: { color: '#ffffff', fontSize: 16 },
96
+ card: {
97
+ position: 'absolute',
98
+ left: 16,
99
+ right: 16,
100
+ bottom: 48,
101
+ padding: 16,
102
+ gap: 8,
103
+ borderRadius: 12,
104
+ backgroundColor: '#1f1f1f',
105
+ },
106
+ title: { color: '#ffffff', fontSize: 16, fontWeight: '600' },
107
+ message: { color: '#d4d4d4', fontSize: 14, lineHeight: 20 },
108
+ button: { alignSelf: 'flex-end', paddingVertical: 8, paddingHorizontal: 12 },
109
+ buttonText: { color: '#8ab4ff', fontSize: 15, fontWeight: '600' },
110
+ });
111
+ //# sourceMappingURL=Tapthrough.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tapthrough.js","sourceRoot":"","sources":["../src/Tapthrough.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /** A box drawn on the screenshot, in fractions of its width and height (what the server expects). */
2
+ export interface AnnotationBox {
3
+ kind: 'highlight' | 'blur';
4
+ x: number;
5
+ y: number;
6
+ w: number;
7
+ h: number;
8
+ }
9
+ export declare const MAX_ANNOTATIONS = 10;
10
+ /**
11
+ * The box between where a drag started and where it is now, in the drawing
12
+ * area's coordinates, normalized to its size. Works in any drag direction and
13
+ * clamps to the image. Returns null while the drag is too small to be a box.
14
+ */
15
+ export declare function boxFromDrag(kind: AnnotationBox['kind'], start: {
16
+ x: number;
17
+ y: number;
18
+ }, current: {
19
+ x: number;
20
+ y: number;
21
+ }, size: {
22
+ width: number;
23
+ height: number;
24
+ }): AnnotationBox | null;
25
+ /** A freehand line drawn on the screenshot: points in fractions of its width and height. */
26
+ export interface AnnotationStroke {
27
+ kind: 'draw';
28
+ points: [number, number][];
29
+ }
30
+ export type Annotation = AnnotationBox | AnnotationStroke;
31
+ /** The most points a stroke keeps; longer ones are thinned evenly. */
32
+ export declare const MAX_STROKE_POINTS = 120;
33
+ /**
34
+ * Adds a touch position, in the drawing area's coordinates, to a stroke.
35
+ * Returns the same array when the point is too close to the last one, so a
36
+ * slow finger doesn't pile up points.
37
+ */
38
+ export declare function addStrokePoint(points: [number, number][], at: {
39
+ x: number;
40
+ y: number;
41
+ }, size: {
42
+ width: number;
43
+ height: number;
44
+ }): [number, number][];
45
+ /** Keeps the first and last points and an even spread between, up to `max`. */
46
+ export declare function thinStroke(points: [number, number][], max?: number): [number, number][];
47
+ /** A finished stroke, or null when it was only a tap. */
48
+ export declare function finishStroke(points: [number, number][]): AnnotationStroke | null;
49
+ export interface Segment {
50
+ left: number;
51
+ top: number;
52
+ length: number;
53
+ angle: number;
54
+ }
55
+ /**
56
+ * A stroke as straight segments in pixels, each centered on its midpoint and
57
+ * rotated into place, for drawing with plain views.
58
+ */
59
+ export declare function strokeSegments(points: [number, number][], size: {
60
+ width: number;
61
+ height: number;
62
+ }): Segment[];
63
+ //# sourceMappingURL=annotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/core/annotations.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,GAAG,MAAM,CAAA;IAC1B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAID,eAAO,MAAM,eAAe,KAAK,CAAA;AAKjC;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC,aAAa,GAAG,IAAI,CAUtB;AAED,4FAA4F;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAC3B;AAED,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,gBAAgB,CAAA;AAEzD,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAIpC;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC1B,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAMpB;AAED,+EAA+E;AAC/E,wBAAgB,UAAU,CACxB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC1B,GAAG,SAAoB,GACtB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAIpB;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAEhF;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC1B,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC,OAAO,EAAE,CAkBX"}
@@ -0,0 +1,76 @@
1
+ /** Boxes smaller than this (in fractions) are treated as accidental taps. */
2
+ const MIN_SIZE = 0.03;
3
+ export const MAX_ANNOTATIONS = 10;
4
+ const clamp = (value) => Math.min(1, Math.max(0, value));
5
+ const round = (value) => Math.round(value * 1000) / 1000;
6
+ /**
7
+ * The box between where a drag started and where it is now, in the drawing
8
+ * area's coordinates, normalized to its size. Works in any drag direction and
9
+ * clamps to the image. Returns null while the drag is too small to be a box.
10
+ */
11
+ export function boxFromDrag(kind, start, current, size) {
12
+ if (size.width <= 0 || size.height <= 0)
13
+ return null;
14
+ const x1 = clamp(start.x / size.width);
15
+ const y1 = clamp(start.y / size.height);
16
+ const x2 = clamp(current.x / size.width);
17
+ const y2 = clamp(current.y / size.height);
18
+ const w = Math.abs(x2 - x1);
19
+ const h = Math.abs(y2 - y1);
20
+ if (w < MIN_SIZE || h < MIN_SIZE)
21
+ return null;
22
+ return { kind, x: round(Math.min(x1, x2)), y: round(Math.min(y1, y2)), w: round(w), h: round(h) };
23
+ }
24
+ /** The most points a stroke keeps; longer ones are thinned evenly. */
25
+ export const MAX_STROKE_POINTS = 120;
26
+ /** Points closer than this to the last one (in fractions) add nothing visible. */
27
+ const MIN_STEP = 0.004;
28
+ /**
29
+ * Adds a touch position, in the drawing area's coordinates, to a stroke.
30
+ * Returns the same array when the point is too close to the last one, so a
31
+ * slow finger doesn't pile up points.
32
+ */
33
+ export function addStrokePoint(points, at, size) {
34
+ if (size.width <= 0 || size.height <= 0)
35
+ return points;
36
+ const next = [round(clamp(at.x / size.width)), round(clamp(at.y / size.height))];
37
+ const last = points.at(-1);
38
+ if (last && Math.hypot(next[0] - last[0], next[1] - last[1]) < MIN_STEP)
39
+ return points;
40
+ return [...points, next];
41
+ }
42
+ /** Keeps the first and last points and an even spread between, up to `max`. */
43
+ export function thinStroke(points, max = MAX_STROKE_POINTS) {
44
+ if (points.length <= max)
45
+ return points;
46
+ const step = (points.length - 1) / (max - 1);
47
+ return Array.from({ length: max }, (_, i) => points[Math.round(i * step)]);
48
+ }
49
+ /** A finished stroke, or null when it was only a tap. */
50
+ export function finishStroke(points) {
51
+ return points.length >= 2 ? { kind: 'draw', points: thinStroke(points) } : null;
52
+ }
53
+ /**
54
+ * A stroke as straight segments in pixels, each centered on its midpoint and
55
+ * rotated into place, for drawing with plain views.
56
+ */
57
+ export function strokeSegments(points, size) {
58
+ const segments = [];
59
+ for (let i = 1; i < points.length; i++) {
60
+ const [ax, ay] = points[i - 1];
61
+ const [bx, by] = points[i];
62
+ const x1 = ax * size.width;
63
+ const y1 = ay * size.height;
64
+ const x2 = bx * size.width;
65
+ const y2 = by * size.height;
66
+ const length = Math.hypot(x2 - x1, y2 - y1);
67
+ segments.push({
68
+ left: (x1 + x2) / 2 - length / 2,
69
+ top: (y1 + y2) / 2,
70
+ length,
71
+ angle: Math.atan2(y2 - y1, x2 - x1),
72
+ });
73
+ }
74
+ return segments;
75
+ }
76
+ //# sourceMappingURL=annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/core/annotations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface Point {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export interface Bounds {
6
+ width: number;
7
+ height: number;
8
+ /** Space kept clear at the top and bottom, for the status bar and home indicator. */
9
+ insetTop: number;
10
+ insetBottom: number;
11
+ }
12
+ export declare const BUBBLE_SIZE = 48;
13
+ export declare const EDGE_MARGIN = 8;
14
+ /** Movement under this many points counts as a tap, not a drag. */
15
+ export declare const TAP_SLOP = 6;
16
+ /** Where the bubble rests after a drag: the nearer side edge, kept on screen. */
17
+ export declare function snapToEdge(point: Point, bounds: Bounds, size?: number): Point;
18
+ /** Starts on the right edge, a little above the bottom, clear of most tab bars. */
19
+ export declare function defaultPosition(bounds: Bounds, size?: number): Point;
20
+ export declare function isTap(dx: number, dy: number): boolean;
21
+ //# sourceMappingURL=bubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubble.d.ts","sourceRoot":"","sources":["../../src/core/bubble.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,WAAW,KAAK,CAAA;AAC7B,eAAO,MAAM,WAAW,IAAI,CAAA;AAC5B,mEAAmE;AACnE,eAAO,MAAM,QAAQ,IAAI,CAAA;AAQzB,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,SAAc,GAAG,KAAK,CAMlF;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,SAAc,GAAG,KAAK,CAMzE;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,WAE3C"}
@@ -0,0 +1,25 @@
1
+ export const BUBBLE_SIZE = 48;
2
+ export const EDGE_MARGIN = 8;
3
+ /** Movement under this many points counts as a tap, not a drag. */
4
+ export const TAP_SLOP = 6;
5
+ function clampY(y, bounds, size) {
6
+ const min = bounds.insetTop;
7
+ const max = bounds.height - bounds.insetBottom - size;
8
+ return Math.min(Math.max(y, min), Math.max(min, max));
9
+ }
10
+ /** Where the bubble rests after a drag: the nearer side edge, kept on screen. */
11
+ export function snapToEdge(point, bounds, size = BUBBLE_SIZE) {
12
+ const left = point.x + size / 2 < bounds.width / 2;
13
+ return {
14
+ x: left ? EDGE_MARGIN : bounds.width - size - EDGE_MARGIN,
15
+ y: clampY(point.y, bounds, size),
16
+ };
17
+ }
18
+ /** Starts on the right edge, a little above the bottom, clear of most tab bars. */
19
+ export function defaultPosition(bounds, size = BUBBLE_SIZE) {
20
+ return snapToEdge({ x: bounds.width, y: bounds.height - bounds.insetBottom - size - 96 }, bounds, size);
21
+ }
22
+ export function isTap(dx, dy) {
23
+ return Math.abs(dx) < TAP_SLOP && Math.abs(dy) < TAP_SLOP;
24
+ }
25
+ //# sourceMappingURL=bubble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubble.js","sourceRoot":"","sources":["../../src/core/bubble.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAA;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAA;AAC5B,mEAAmE;AACnE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAA;AAEzB,SAAS,MAAM,CAAC,CAAS,EAAE,MAAc,EAAE,IAAY;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAA;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAA;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,MAAc,EAAE,IAAI,GAAG,WAAW;IACzE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;IAClD,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,GAAG,WAAW;QACzD,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC;KACjC,CAAA;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,IAAI,GAAG,WAAW;IAChE,OAAO,UAAU,CACf,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,EAAE,EACtE,MAAM,EACN,IAAI,CACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU,EAAE,EAAU;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;AAC3D,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { type LaunchDeps, type LaunchError, type LaunchStage } from './launch.js';
2
+ /**
3
+ * Where a launch came from: a link opened from outside the app, or the
4
+ * Review popover's Set Up button. The popover shows its own progress for
5
+ * launches it started, so the full-screen overlay only covers links.
6
+ */
7
+ export type LaunchSource = 'link' | 'app';
8
+ export type LaunchState = {
9
+ status: 'idle';
10
+ } | {
11
+ status: 'launching';
12
+ source: LaunchSource;
13
+ stage?: LaunchStage;
14
+ } | {
15
+ status: 'done';
16
+ source: LaunchSource;
17
+ path: string;
18
+ } | {
19
+ status: 'error';
20
+ source: LaunchSource;
21
+ error: LaunchError;
22
+ };
23
+ export type ControllerDeps = Omit<LaunchDeps, 'navigate'>;
24
+ type Navigate = LaunchDeps['navigate'];
25
+ /**
26
+ * Turns incoming URLs into launches. Each token runs once and launches run one
27
+ * at a time. A URL can arrive before the app is ready (Expo Router hands over
28
+ * the initial URL before the root layout mounts), so each launch waits for
29
+ * `configure()` and navigation waits for `setNavigator()`.
30
+ */
31
+ export declare function createLaunchController(): {
32
+ /** Queues a launch if `url` carries a token not seen before. Returns whether it did. */
33
+ offer(url: string | null | undefined, source?: LaunchSource): boolean;
34
+ /** Supplies the seed hook URL and adapters; queued launches start once this is called. */
35
+ configure(next: ControllerDeps | undefined): void;
36
+ /** Pass the router's navigate once it can navigate; undefined when it unmounts. */
37
+ setNavigator(next: Navigate | undefined): void;
38
+ dismiss(): void;
39
+ getState: () => LaunchState;
40
+ /** The scenario the app was last launched into, for attributing reports. */
41
+ lastScenarioId: () => string | undefined;
42
+ subscribe(listener: () => void): () => void;
43
+ };
44
+ export type LaunchController = ReturnType<typeof createLaunchController>;
45
+ export {};
46
+ //# sourceMappingURL=controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/core/controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAa,MAAM,aAAa,CAAA;AAG5F;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAA;AAEzC,MAAM,MAAM,WAAW,GACnB;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,GAClE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAA;AAEjE,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AACzD,KAAK,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;AAqBtC;;;;;GAKG;AACH,wBAAgB,sBAAsB;IAyClC,wFAAwF;eAC7E,MAAM,GAAG,IAAI,GAAG,SAAS,WAAU,YAAY,GAAY,OAAO;IAQ7E,0FAA0F;oBAC1E,cAAc,GAAG,SAAS;IAG1C,mFAAmF;uBAChE,QAAQ,GAAG,SAAS;;;IAOvC,4EAA4E;;wBAExD,MAAM,IAAI;EAOjC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA"}
@@ -0,0 +1,103 @@
1
+ import { scenarioIdFromToken } from './feedback.js';
2
+ import { runLaunch } from './launch.js';
3
+ import { parseLaunchUrl } from './url.js';
4
+ /** A value that may not exist yet; `get()` waits for it. */
5
+ function slot() {
6
+ let value;
7
+ let waiters = [];
8
+ return {
9
+ set(next) {
10
+ value = next;
11
+ if (next === undefined)
12
+ return;
13
+ for (const resolve of waiters)
14
+ resolve(next);
15
+ waiters = [];
16
+ },
17
+ get() {
18
+ return value !== undefined
19
+ ? Promise.resolve(value)
20
+ : new Promise((resolve) => waiters.push(resolve));
21
+ },
22
+ };
23
+ }
24
+ /**
25
+ * Turns incoming URLs into launches. Each token runs once and launches run one
26
+ * at a time. A URL can arrive before the app is ready (Expo Router hands over
27
+ * the initial URL before the root layout mounts), so each launch waits for
28
+ * `configure()` and navigation waits for `setNavigator()`.
29
+ */
30
+ export function createLaunchController() {
31
+ let state = { status: 'idle' };
32
+ const listeners = new Set();
33
+ const seen = new Set();
34
+ const queue = [];
35
+ const deps = slot();
36
+ const navigator = slot();
37
+ let running = false;
38
+ let lastScenarioId;
39
+ function setState(next) {
40
+ state = next;
41
+ for (const listener of listeners)
42
+ listener();
43
+ }
44
+ async function drain() {
45
+ if (running)
46
+ return;
47
+ running = true;
48
+ try {
49
+ for (let next = queue.shift(); next !== undefined; next = queue.shift()) {
50
+ const { token, source } = next;
51
+ const current = await deps.get();
52
+ setState({ status: 'launching', source });
53
+ const result = await runLaunch(token, {
54
+ ...current,
55
+ navigate: async (path) => (await navigator.get())(path),
56
+ onStage: (stage) => setState({ status: 'launching', source, stage }),
57
+ });
58
+ if (result.ok)
59
+ lastScenarioId = scenarioIdFromToken(token);
60
+ setState(result.ok
61
+ ? { status: 'done', source, path: result.path }
62
+ : { status: 'error', source, error: result.error });
63
+ }
64
+ }
65
+ finally {
66
+ running = false;
67
+ }
68
+ }
69
+ return {
70
+ /** Queues a launch if `url` carries a token not seen before. Returns whether it did. */
71
+ offer(url, source = 'link') {
72
+ const token = parseLaunchUrl(url);
73
+ if (!token || seen.has(token))
74
+ return false;
75
+ seen.add(token);
76
+ queue.push({ token, source });
77
+ void drain();
78
+ return true;
79
+ },
80
+ /** Supplies the seed hook URL and adapters; queued launches start once this is called. */
81
+ configure(next) {
82
+ deps.set(next);
83
+ },
84
+ /** Pass the router's navigate once it can navigate; undefined when it unmounts. */
85
+ setNavigator(next) {
86
+ navigator.set(next);
87
+ },
88
+ dismiss() {
89
+ if (state.status === 'error' || state.status === 'done')
90
+ setState({ status: 'idle' });
91
+ },
92
+ getState: () => state,
93
+ /** The scenario the app was last launched into, for attributing reports. */
94
+ lastScenarioId: () => lastScenarioId,
95
+ subscribe(listener) {
96
+ listeners.add(listener);
97
+ return () => {
98
+ listeners.delete(listener);
99
+ };
100
+ },
101
+ };
102
+ }
103
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/core/controller.ts"],"names":[],"mappings":"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"}