things-api 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/README.md +57 -12
  2. package/dist/audit/log.js +56 -2
  3. package/dist/audit/log.js.map +1 -1
  4. package/dist/audit/schema.d.ts +26 -8
  5. package/dist/audit/schema.js +42 -1
  6. package/dist/audit/schema.js.map +1 -1
  7. package/dist/cli/clock.d.ts +8 -0
  8. package/dist/cli/clock.js +24 -0
  9. package/dist/cli/clock.js.map +1 -0
  10. package/dist/cli/commands/area.d.ts +26 -3
  11. package/dist/cli/commands/area.js +129 -75
  12. package/dist/cli/commands/area.js.map +1 -1
  13. package/dist/cli/commands/doctor.d.ts +1 -1
  14. package/dist/cli/commands/doctor.js +44 -5
  15. package/dist/cli/commands/doctor.js.map +1 -1
  16. package/dist/cli/commands/install-skill.d.ts +45 -0
  17. package/dist/cli/commands/install-skill.js +207 -0
  18. package/dist/cli/commands/install-skill.js.map +1 -0
  19. package/dist/cli/commands/mcp.js +23 -4
  20. package/dist/cli/commands/mcp.js.map +1 -1
  21. package/dist/cli/commands/project.d.ts +18 -1
  22. package/dist/cli/commands/project.js +74 -35
  23. package/dist/cli/commands/project.js.map +1 -1
  24. package/dist/cli/commands/reads.d.ts +15 -2
  25. package/dist/cli/commands/reads.js +459 -165
  26. package/dist/cli/commands/reads.js.map +1 -1
  27. package/dist/cli/commands/repeat-flags.d.ts +20 -0
  28. package/dist/cli/commands/repeat-flags.js +76 -0
  29. package/dist/cli/commands/repeat-flags.js.map +1 -0
  30. package/dist/cli/commands/setup.js +8 -4
  31. package/dist/cli/commands/setup.js.map +1 -1
  32. package/dist/cli/commands/show.js +53 -30
  33. package/dist/cli/commands/show.js.map +1 -1
  34. package/dist/cli/commands/todo.d.ts +1 -1
  35. package/dist/cli/commands/todo.js +20 -13
  36. package/dist/cli/commands/todo.js.map +1 -1
  37. package/dist/cli/commands/writes.js +388 -161
  38. package/dist/cli/commands/writes.js.map +1 -1
  39. package/dist/cli/did-you-mean.d.ts +1 -1
  40. package/dist/cli/excess-args.d.ts +15 -0
  41. package/dist/cli/excess-args.js +51 -0
  42. package/dist/cli/excess-args.js.map +1 -0
  43. package/dist/cli/glyphs.d.ts +55 -2
  44. package/dist/cli/glyphs.js +114 -21
  45. package/dist/cli/glyphs.js.map +1 -1
  46. package/dist/cli/help.d.ts +54 -0
  47. package/dist/cli/help.js +405 -0
  48. package/dist/cli/help.js.map +1 -0
  49. package/dist/cli/main.js +64 -26
  50. package/dist/cli/main.js.map +1 -1
  51. package/dist/cli/move-hint.d.ts +45 -0
  52. package/dist/cli/move-hint.js +196 -0
  53. package/dist/cli/move-hint.js.map +1 -0
  54. package/dist/cli/period.d.ts +9 -8
  55. package/dist/cli/period.js +56 -30
  56. package/dist/cli/period.js.map +1 -1
  57. package/dist/cli/read-driver.d.ts +26 -19
  58. package/dist/cli/read-driver.js +77 -33
  59. package/dist/cli/read-driver.js.map +1 -1
  60. package/dist/cli/render.d.ts +92 -28
  61. package/dist/cli/render.js +333 -103
  62. package/dist/cli/render.js.map +1 -1
  63. package/dist/cli/resolve-invocation.d.ts +42 -4
  64. package/dist/cli/resolve-invocation.js +97 -14
  65. package/dist/cli/resolve-invocation.js.map +1 -1
  66. package/dist/cli/skill-check.d.ts +21 -0
  67. package/dist/cli/skill-check.js +82 -0
  68. package/dist/cli/skill-check.js.map +1 -0
  69. package/dist/cli/skill.d.ts +62 -0
  70. package/dist/cli/skill.js +142 -0
  71. package/dist/cli/skill.js.map +1 -0
  72. package/dist/cli/tag-filters.d.ts +63 -0
  73. package/dist/cli/tag-filters.js +59 -0
  74. package/dist/cli/tag-filters.js.map +1 -0
  75. package/dist/cli/verb-hint.d.ts +25 -0
  76. package/dist/cli/verb-hint.js +163 -0
  77. package/dist/cli/verb-hint.js.map +1 -0
  78. package/dist/cli/version.d.ts +4 -0
  79. package/dist/cli/version.js +18 -0
  80. package/dist/cli/version.js.map +1 -0
  81. package/dist/cli/width.d.ts +135 -0
  82. package/dist/cli/width.js +313 -0
  83. package/dist/cli/width.js.map +1 -0
  84. package/dist/client.d.ts +160 -24
  85. package/dist/client.js +132 -19
  86. package/dist/client.js.map +1 -1
  87. package/dist/config.d.ts +11 -0
  88. package/dist/config.js +3 -0
  89. package/dist/config.js.map +1 -1
  90. package/dist/contracts.d.ts +97 -17
  91. package/dist/contracts.js +44 -1
  92. package/dist/contracts.js.map +1 -1
  93. package/dist/db/fingerprint.d.ts +12 -0
  94. package/dist/db/fingerprint.js +15 -1
  95. package/dist/db/fingerprint.js.map +1 -1
  96. package/dist/db/locate.js +1 -1
  97. package/dist/db/locate.js.map +1 -1
  98. package/dist/diagnose.d.ts +63 -0
  99. package/dist/diagnose.js +38 -1
  100. package/dist/diagnose.js.map +1 -1
  101. package/dist/index.d.ts +36 -5
  102. package/dist/index.js +38 -2
  103. package/dist/index.js.map +1 -1
  104. package/dist/mcp/server.d.ts +9 -1
  105. package/dist/mcp/server.js +1038 -436
  106. package/dist/mcp/server.js.map +1 -1
  107. package/dist/model/clock.d.ts +61 -0
  108. package/dist/model/clock.js +71 -0
  109. package/dist/model/clock.js.map +1 -0
  110. package/dist/model/dates.d.ts +26 -3
  111. package/dist/model/dates.js +84 -3
  112. package/dist/model/dates.js.map +1 -1
  113. package/dist/model/entities.d.ts +48 -10
  114. package/dist/model/entities.js.map +1 -1
  115. package/dist/model/mappers.d.ts +9 -2
  116. package/dist/model/mappers.js +32 -9
  117. package/dist/model/mappers.js.map +1 -1
  118. package/dist/model/serialize.d.ts +28 -0
  119. package/dist/model/serialize.js +80 -0
  120. package/dist/model/serialize.js.map +1 -0
  121. package/dist/model/when-sugar.d.ts +47 -0
  122. package/dist/model/when-sugar.js +45 -0
  123. package/dist/model/when-sugar.js.map +1 -0
  124. package/dist/read/area-view.d.ts +8 -1
  125. package/dist/read/area-view.js +55 -17
  126. package/dist/read/area-view.js.map +1 -1
  127. package/dist/read/detail.d.ts +1 -1
  128. package/dist/read/detail.js +11 -4
  129. package/dist/read/detail.js.map +1 -1
  130. package/dist/read/filter-contract.d.ts +117 -0
  131. package/dist/read/filter-contract.js +78 -0
  132. package/dist/read/filter-contract.js.map +1 -0
  133. package/dist/read/log-boundary.d.ts +1 -1
  134. package/dist/read/log-boundary.js +13 -3
  135. package/dist/read/log-boundary.js.map +1 -1
  136. package/dist/read/predicates.d.ts +30 -0
  137. package/dist/read/predicates.js +30 -0
  138. package/dist/read/predicates.js.map +1 -1
  139. package/dist/read/project-view.d.ts +12 -1
  140. package/dist/read/project-view.js +45 -12
  141. package/dist/read/project-view.js.map +1 -1
  142. package/dist/read/queries.d.ts +152 -7
  143. package/dist/read/queries.js +277 -36
  144. package/dist/read/queries.js.map +1 -1
  145. package/dist/read/sections.d.ts +51 -0
  146. package/dist/read/sections.js +37 -0
  147. package/dist/read/sections.js.map +1 -0
  148. package/dist/read/sidebar-order.js +2 -1
  149. package/dist/read/sidebar-order.js.map +1 -1
  150. package/dist/read/snapshot.d.ts +1 -1
  151. package/dist/read/snapshot.js +9 -2
  152. package/dist/read/snapshot.js.map +1 -1
  153. package/dist/read/tags.d.ts +27 -3
  154. package/dist/read/tags.js +83 -12
  155. package/dist/read/tags.js.map +1 -1
  156. package/dist/read/truncation.d.ts +71 -0
  157. package/dist/read/{pagination.js → truncation.js} +103 -94
  158. package/dist/read/truncation.js.map +1 -0
  159. package/dist/read/views.d.ts +147 -22
  160. package/dist/read/views.js +282 -80
  161. package/dist/read/views.js.map +1 -1
  162. package/dist/surface-copy.d.ts +19 -0
  163. package/dist/surface-copy.js +32 -0
  164. package/dist/surface-copy.js.map +1 -1
  165. package/dist/sync-health.d.ts +78 -0
  166. package/dist/sync-health.js +312 -0
  167. package/dist/sync-health.js.map +1 -0
  168. package/dist/write/accessibility-probe.d.ts +12 -0
  169. package/dist/write/accessibility-probe.js +71 -0
  170. package/dist/write/accessibility-probe.js.map +1 -0
  171. package/dist/write/automation-probe.d.ts +8 -1
  172. package/dist/write/automation-probe.js +16 -1
  173. package/dist/write/automation-probe.js.map +1 -1
  174. package/dist/write/batch.js +5 -2
  175. package/dist/write/batch.js.map +1 -1
  176. package/dist/write/capabilities.d.ts +8 -0
  177. package/dist/write/capabilities.js +13 -6
  178. package/dist/write/capabilities.js.map +1 -1
  179. package/dist/write/commands.d.ts +3 -1
  180. package/dist/write/commands.js +602 -49
  181. package/dist/write/commands.js.map +1 -1
  182. package/dist/write/edit-checklist.js +3 -2
  183. package/dist/write/edit-checklist.js.map +1 -1
  184. package/dist/write/guards.d.ts +2 -7
  185. package/dist/write/guards.js +87 -6
  186. package/dist/write/guards.js.map +1 -1
  187. package/dist/write/heading.js +2 -0
  188. package/dist/write/heading.js.map +1 -1
  189. package/dist/write/lock.d.ts +40 -2
  190. package/dist/write/lock.js +91 -14
  191. package/dist/write/lock.js.map +1 -1
  192. package/dist/write/make-repeating-project.d.ts +4 -0
  193. package/dist/write/make-repeating-project.js +253 -0
  194. package/dist/write/make-repeating-project.js.map +1 -0
  195. package/dist/write/operations.d.ts +145 -1
  196. package/dist/write/operations.js +48 -0
  197. package/dist/write/operations.js.map +1 -1
  198. package/dist/write/pipeline.d.ts +73 -2
  199. package/dist/write/pipeline.js +218 -43
  200. package/dist/write/pipeline.js.map +1 -1
  201. package/dist/write/planner.js +8 -1
  202. package/dist/write/planner.js.map +1 -1
  203. package/dist/write/pre-state.d.ts +105 -3
  204. package/dist/write/pre-state.js +144 -3
  205. package/dist/write/pre-state.js.map +1 -1
  206. package/dist/write/recurrence-rule-blob.d.ts +65 -0
  207. package/dist/write/recurrence-rule-blob.js +150 -0
  208. package/dist/write/recurrence-rule-blob.js.map +1 -0
  209. package/dist/write/reopen.js +3 -2
  210. package/dist/write/reopen.js.map +1 -1
  211. package/dist/write/reorder.js +27 -17
  212. package/dist/write/reorder.js.map +1 -1
  213. package/dist/write/repeat-rule.d.ts +22 -0
  214. package/dist/write/repeat-rule.js +258 -0
  215. package/dist/write/repeat-rule.js.map +1 -0
  216. package/dist/write/reversibility.js +49 -0
  217. package/dist/write/reversibility.js.map +1 -1
  218. package/dist/write/tag-refs.d.ts +47 -0
  219. package/dist/write/tag-refs.js +126 -0
  220. package/dist/write/tag-refs.js.map +1 -0
  221. package/dist/write/undo.d.ts +74 -5
  222. package/dist/write/undo.js +493 -80
  223. package/dist/write/undo.js.map +1 -1
  224. package/dist/write/vectors/registry.d.ts +15 -1
  225. package/dist/write/vectors/registry.js +65 -2
  226. package/dist/write/vectors/registry.js.map +1 -1
  227. package/dist/write/vectors/simulator.d.ts +44 -0
  228. package/dist/write/vectors/simulator.js +1136 -0
  229. package/dist/write/vectors/simulator.js.map +1 -0
  230. package/dist/write/vectors/types.d.ts +154 -3
  231. package/dist/write/vectors/ui-certification.d.ts +54 -0
  232. package/dist/write/vectors/ui-certification.js +43 -0
  233. package/dist/write/vectors/ui-certification.js.map +1 -0
  234. package/dist/write/vectors/ui-drag.d.ts +188 -0
  235. package/dist/write/vectors/ui-drag.js +1095 -0
  236. package/dist/write/vectors/ui-drag.js.map +1 -0
  237. package/dist/write/vectors/ui-recipes.d.ts +83 -0
  238. package/dist/write/vectors/ui-recipes.js +610 -0
  239. package/dist/write/vectors/ui-recipes.js.map +1 -0
  240. package/dist/write/vectors/ui.d.ts +152 -0
  241. package/dist/write/vectors/ui.js +704 -0
  242. package/dist/write/vectors/ui.js.map +1 -0
  243. package/dist/write/verify/delta.d.ts +141 -4
  244. package/dist/write/verify/delta.js +199 -21
  245. package/dist/write/verify/delta.js.map +1 -1
  246. package/dist/write/verify/poller.d.ts +7 -1
  247. package/dist/write/verify/poller.js +21 -1
  248. package/dist/write/verify/poller.js.map +1 -1
  249. package/package.json +18 -3
  250. package/skills/things-cli/SKILL.md +53 -0
  251. package/skills/things-cli/references/contracts.md +41 -0
  252. package/skills/things-cli/references/gui.md +11 -0
  253. package/skills/things-cli/references/model.md +51 -0
  254. package/dist/cli/exit-codes.d.ts +0 -26
  255. package/dist/cli/exit-codes.js +0 -26
  256. package/dist/cli/exit-codes.js.map +0 -1
  257. package/dist/cli/output.d.ts +0 -42
  258. package/dist/cli/output.js +0 -16
  259. package/dist/cli/output.js.map +0 -1
  260. package/dist/read/pagination.d.ts +0 -104
  261. package/dist/read/pagination.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../../src/write/vectors/simulator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AASjE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAShD,0EAA0E;AAC1E,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAW,CAAC;AAC/D,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAW,CAAC;AAE3D,kFAAkF;AAClF,MAAM,cAAc,GAAG,wDAAwD,CAAC;AAOhF,wEAAwE;AAExE;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,GAAG,CAAC,mBAAmB,CAAC,KAAK,GAAG,EAAE,CAAC;QACrC,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;IAClC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,cAAc,QAAQ,0CAA0C,MAAM,GAAG,CAAC;IACnF,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACpC,OAAO,4DAA4D,CAAC;IACtE,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,mBAAmB,MAAM,sCAAsC,CAAC;IACzE,CAAC;IACD,2EAA2E;IAC3E,6EAA6E;IAC7E,wDAAwD;IACxD,KAAK,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,uBAAuB,CAAU,EAAE,CAAC;QAC7E,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3C,OAAO,GAAG,GAAG,iGAAiG,CAAC;QACjH,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,0BAA0B,EAAE,CAAC;QAC3C,OAAO,CACL,uCAAuC,OAAO,IAAI,SAAS,uBAAuB;YAClF,0BAA0B,0BAA0B,oCAAoC;YACxF,2FAA2F;YAC3F,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,SAAS,sBAAsB,CAAC,MAAc;IAC5C,IAAI,EAA4B,CAAC;IACjC,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,EAAE,EAAE,KAAK,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAyB,OAAO,CAAC,GAAG;IACjE,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,EAA4B,CAAC;IACjC,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,EAElE,CAAC;QACd,OAAO,GAAG,EAAE,KAAK,KAAK,GAAG,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,EAAE,EAAE,KAAK,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,sEAAsE;AAEtE,MAAM,MAAM,GAAG,gEAAgE,CAAC;AAEhF,0EAA0E;AAC1E,SAAS,OAAO;IACd,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uEAAuE;AAEvE,kFAAkF;AAClF,SAAS,UAAU,CACjB,GAAiB,EACjB,IAAe,EACf,GAAa,EACb,IAeC;IAED,GAAG;SACA,OAAO,CACN;;;;;;;;;gIAS0H,CAC3H;SACA,GAAG,CACF,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,EAC7B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,IAAI,EAAE,EAChB,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,QAAQ,EACZ,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAC1B,IAAI,CAAC,SAAS,IAAI,IAAI,EACtB,IAAI,CAAC,WAAW,IAAI,CAAC,EACrB,IAAI,CAAC,YAAY,IAAI,IAAI,EACzB,IAAI,CAAC,QAAQ,IAAI,IAAI,EACrB,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,OAAO,IAAI,IAAI,EACpB,IAAI,CAAC,OAAO,IAAI,IAAI,EACpB,IAAI,CAAC,mBAAmB,IAAI,CAAC,EAC7B,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAClC,CAAC;AACN,CAAC;AAED,8EAA8E;AAC9E,SAAS,eAAe,CACtB,IAA2B,EAC3B,QAAgB,EAChB,YAAqB;IAErB,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,wEAAwE;YACxE,wEAAwE;YACxE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC/F,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QACnE,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QACnE,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAClE,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QACnE;YACE,2EAA2E;YAC3E,sDAAsD;YACtD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IACtF,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,GAAiB,EACjB,GAA6B,EAC7B,IAAwB;IAExB,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1F,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClF,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,YAAY,CAAC,CAAC;IACtF,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC3B,CAAC;AAED,kFAAkF;AAClF,SAAS,QAAQ,CAAC,GAAiB,EAAE,IAAc;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG;aACZ,OAAO,CAAC,+DAA+D,CAAC;aACxE,GAAG,CAAC,KAAK,CAAiC,CAAC;QAC9C,IAAI,GAAG,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,GAAiB,EAAE,QAAgB,EAAE,IAAc;IACtE,GAAG,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnE,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,gBAAgB,CACvB,GAAiB,EACjB,QAAgB,EAChB,KAA0D,EAC1D,GAAa;IAEb,GAAG,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3D,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;QACtE,IAAI,CAAC,SAAS;YAAE,IAAI,EAAE,CAAC;QACvB,GAAG;aACA,OAAO,CACN;+CACuC,CACxC;aACA,GAAG,CACF,OAAO,EAAE,EACT,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,QAAQ,EACZ,KAAK,EACL,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAC1C,CAAC,EACD,QAAQ,CACT,CAAC;IACN,CAAC,CAAC,CAAC;IACH,GAAG;SACA,OAAO,CACN,iHAAiH,CAClH;SACA,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,sFAAsF;AACtF,SAAS,WAAW,CAClB,GAAiB,EACjB,IAAY,EACZ,MAAuD;IAEvD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5F,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,IAAI,CAE9D,CAAC;IACd,MAAM,OAAO,GAAG,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC;IACjC,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;IACnF,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IAC1C,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC;AAC7D,CAAC;AAED,kFAAkF;AAClF,SAAS,sBAAsB,CAC7B,GAAiB,EACjB,IAAY,EACZ,MAAsD;IAEtD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,WAAW,GACf,IAAI,KAAK,OAAO;QAChB,IAAI,KAAK,SAAS;QAClB,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,4DAA4D;IAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,IAAI,CAErE,CAAC;IACd,OAAO,GAAG,EAAE,YAAY,IAAI,IAAI,CAAC;AACnC,CAAC;AAED,8EAA8E;AAC9E,SAAS,iBAAiB,CACxB,GAAiB,EACjB,MASC,EACD,GAAa;IAEb,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,SAAS,CAChB,GAAiB,EACjB,IAAY,EACZ,MAAc,EACd,QAAuB,EACvB,GAAa;IAEb,GAAG;SACA,OAAO,CAAC,qFAAqF,CAAC;SAC9F,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,wEAAwE;AACxE,EAAE;AACF,kEAAkE;AAClE,0EAA0E;AAC1E,6EAA6E;AAC7E,+EAA+E;AAC/E,qEAAqE;AACrE,6EAA6E;AAC7E,qBAAqB;AAErB,2FAA2F;AAC3F,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAE3C,uEAAuE;AACvE,SAAS,WAAW,CAAC,GAAW,EAAE,SAA0B,EAAE,QAAgB;IAC5E,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;QACvC,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrC,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,SAAS,YAAY,CAAC,GAAW,EAAE,MAAc;IAC/C,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAA6B,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CACL,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG;QACnC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG;QACzC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAClC,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3D,CAAC;AAmBD,wFAAwF;AACxF,SAAS,mBAAmB,CAAC,GAAiB,EAAE,GAAa,EAAE,CAAoB;IACjF,GAAG;SACA,OAAO,CACN;;;;;;;;;;;wDAWkD,CACnD;SACA,GAAG,CACF,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,KAAK,EACP,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,QAAQ,EACZ,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,QAAQ,EACV,CAAC,CAAC,IAAI,EACN,CAAC,CAAC,iBAAiB,IAAI,IAAI,EAC3B,CAAC,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EACxF,CAAC,CAAC,yBAAyB,IAAI,IAAI,EACnC,CAAC,CAAC,qBAAqB,IAAI,CAAC,EAC5B,CAAC,CAAC,4BAA4B,IAAI,IAAI,EACtC,CAAC,CAAC,qBAAqB,IAAI,IAAI,CAChC,CAAC;AACN,CAAC;AAED,iGAAiG;AACjG,SAAS,YAAY,CAAC,GAAiB,EAAE,QAAgB,EAAE,MAAc;IACvE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAEhF,CAAC;IACJ,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,GAAG,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,GAAiB,EACjB,IAAY;IAEZ,MAAM,GAAG,GAAG,GAAG;SACZ,OAAO,CAAC,iEAAiE,CAAC;SAC1E,GAAG,CAAC,IAAI,CAEE,CAAC;IACd,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACrF,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAoDD;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CAAC,GAAiB,EAAE,WAAmB;IAChE,MAAM,WAAW,GAAG,GAAG;SACpB,OAAO,CACN;qEAC+D,CAChE;SACA,GAAG,CAAC,WAAW,CAQf,CAAC;IACJ,MAAM,QAAQ,GAAqB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,GAAG;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC;KACzB,CAAC,CAAC,CAAC;IACJ,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjD,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,GAAG;SACjB,OAAO,CACN;;;;6BAIuB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE;0BACpE,CACrB;SACA,GAAG,CAAC,WAAW,EAAE,GAAG,YAAY,CAYhC,CAAC;IACJ,MAAM,KAAK,GAAkB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,GAAG;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC;QACxB,WAAW,EAAE,CAAC,CAAC,OAAO;QACtB,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;QACtC,IAAI,EACF,GAAG,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CACrE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACpB,SAAS,EACP,GAAG;aACA,OAAO,CACN,2FAA2F,CAC5F;aACA,GAAG,CAAC,CAAC,CAAC,IAAI,CACd,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;KACzE,CAAC,CAAC,CAAC;IACJ,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,2FAA2F;AAC3F,SAAS,WAAW,CAAC,GAAiB,EAAE,IAAY,EAAE,KAAa;IACjE,GAAG,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,sBAAsB,CAC7B,GAAiB,EACjB,GAAa,EACb,OAAuB,EACvB,cAAsB;IAEtB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,OAAO;YAAE,SAAS,CAAC,yDAAyD;QAClF,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;QAC1B,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;YACtB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,yCAAyC;YAC9D,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI;YAC1B,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,OAAO;YAAE,SAAS,CAAC,yDAAyD;QAClF,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;QAC1B,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,MAAM,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;QACzD,MAAM,aAAa,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACjF,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;YACtB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB;YAC1C,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,OAAO;YACP,OAAO;YACP,mBAAmB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM;YACvC,uBAAuB,EAAE,aAAa;SACvC,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI;YAC1B,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACrF,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAC5B,GAAG;iBACA,OAAO,CACN;mDACyC,CAC1C;iBACA,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,GAAiB,EAAE,OAAuB;IACtE,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9B,GAAG,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,GAAG,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjE,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,OAAuB;IACvD,4EAA4E;IAC5E,6EAA6E;IAC7E,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,CAAC,iBAAiB,KAAK,IAAI,CAAC,CACjF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,uBAAuB,CAC9B,GAAiB,EACjB,IAAW,EACX,MAAwB,EACxB,GAAa;IAEb,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC;IAE/B,oEAAoE;IACpE,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE;QAC5B,IAAI,EAAE,YAAY;QAClB,IAAI;QACJ,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI;QACpE,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC;QAChC,qBAAqB,EAAE,CAAC;QACxB,yBAAyB,EAAE,gBAAgB,CAAC,OAAO,CAAC;QACpD,qBAAqB,EAAE,gBAAgB,CAAC,OAAO,CAAC;KACjD,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAE7C,gFAAgF;IAChF,8EAA8E;IAC9E,sBAAsB;IACtB,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEhF,oFAAoF;IACpF,IAAI,OAAO,KAAK,IAAI,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,qCAAqC,CACnC,GAAG,EACH,GAAG,EACH,MAAM,CAAC,IAAI,EACX,OAAO,EACP,YAAY,EACZ,YAAY,CACb,CAAC;QACF,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,IAAI,OAAO,KAAK,IAAI;QAAE,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAE9E,4EAA4E;IAC5E,kFAAkF;IAClF,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC;IAC/B,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE;QAC5B,IAAI,EAAE,YAAY;QAClB,IAAI;QACJ,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC;QACzC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QACvD,iBAAiB,EAAE,YAAY;KAChC,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7C,8EAA8E;IAC9E,IAAI,OAAO,KAAK,IAAI;QAAE,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAE9E,4EAA4E;IAC5E,IAAI,OAAO,KAAK,IAAI;QAAE,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzD,GAAG,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtE,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,qCAAqC,CAC5C,GAAiB,EACjB,GAAa,EACb,UAAkB,EAClB,OAAuB,EACvB,YAAoB,EACpB,YAAoB;IAEpB,2EAA2E;IAC3E,oEAAoE;IACpE,kEAAkE;IAClE,2EAA2E;IAC3E,4DAA4D;IAC5D,MAAM,SAAS,GAAmB;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACpD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;KAC5E,CAAC;IACF,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAE1D,4EAA4E;IAC5E,2EAA2E;IAC3E,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,OAAO;YAAE,SAAS;QACxB,IAAI,CAAC,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YAC9B,kEAAkE;YAClE,GAAG,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,CAAC,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACxC,4CAA4C;YAC5C,GAAG,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,GAAG;SACA,OAAO,CACN,gHAAgH,CACjH;SACA,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAChG,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,iCAAiC,CACxC,GAAiB,EACjB,IAAW,EACX,MAAwB,EACxB,GAAa;IAEb,sEAAsE;IACtE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,wCAAwC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC;IAE/B,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE;QAC5B,IAAI,EAAE,YAAY;QAClB,IAAI;QACJ,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI;QACpE,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC;QAChC,qBAAqB,EAAE,CAAC;KACzB,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAE7C,0EAA0E;IAC1E,GAAG;SACA,OAAO,CAAC,sFAAsF,CAAC;SAC/F,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,wCAAwC,CAC/C,GAAiB,EACjB,MAAwB,EACxB,GAAa;IAEb,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC;IAE/B,wEAAwE;IACxE,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE;QAC5B,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI;QACpE,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC;QAChC,qBAAqB,EAAE,CAAC,EAAE,YAAY;KACvC,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7C,oCAAoC;IACpC,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAExD,6EAA6E;IAC7E,mDAAmD;IACnD,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE;QAC5B,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,KAAK,EAAE,KAAK,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,QAAQ,EAAE,IAAI;QACd,iBAAiB,EAAE,YAAY;KAChC,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7C,wEAAwE;IACxE,2EAA2E;IAC3E,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAExD,+EAA+E;IAC/E,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnC,GAAG,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtE,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,oFAAoF;AACpF,SAAS,kBAAkB,CACzB,GAAiB,EACjB,IAAW,EACX,MAAwB,EACxB,GAAa;IAEb,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI;QAAE,iCAAiC,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;;QAC1F,uBAAuB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,GAAiB,EAAE,MAAwB,EAAE,GAAa;IACjF,MAAM,GAAG,GAAG,GAAG;SACZ,OAAO,CAAC,8DAA8D,CAAC;SACvE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAkC,CAAC;IACrD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,eAAe,GACnB,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;IAC/F,MAAM,uBAAuB,GAC3B,MAAM,CAAC,eAAe,KAAK,SAAS;QACpC,CAAC,eAAe;QAChB,QAAQ,CAAC,IAAI,KAAK,kBAAkB,CAAC;IACvC,MAAM,SAAS,GAAqB,EAAE,GAAG,MAAM,EAAE,CAAC;IAClD,IAAI,uBAAuB;QAAE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;IAE9D,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAE7E,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC;IAC5F,IAAI,CAAC,YAAY;QAAE,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,kCAAkC;IAEzF,MAAM,IAAI,GAAG;QACX,wBAAwB;QACxB,mCAAmC;QACnC,+BAA+B;QAC/B,0BAA0B;KAC3B,CAAC;IACF,MAAM,KAAK,GAA4C;QACrD,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,gBAAgB,CAAC,OAAO,CAAC;QACzB,gBAAgB,CAAC,OAAO,CAAC;QACzB,GAAG,CAAC,QAAQ;KACb,CAAC;IACF,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAChG,CAAC;AAED;;;;;;GAMG;AACH,SAAS,4BAA4B,CACnC,GAAiB,EACjB,YAAoB,EACpB,GAAa;IAEb,MAAM,IAAI,GAAG,GAAG;SACb,OAAO,CAAC,iEAAiE,CAAC;SAC1E,GAAG,CAAC,YAAY,CAAwC,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,EAAE,IAAI,CAAC;IAChC,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO;IAChE,MAAM,GAAG,GAAG,GAAG;SACZ,OAAO,CAAC,8DAA8D,CAAC;SACvE,GAAG,CAAC,YAAY,CAAkC,CAAC;IACtD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO;IACnD,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,4CAA4C;IACtD,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO;IAC7C,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC;IACnC,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrE,GAAG;SACA,OAAO,CACN,yFAAyF;QACvF,yCAAyC,CAC5C;SACA,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACjG,CAAC;AAMD,wEAAwE;AACxE,SAAS,EAAE,CACT,EAA6E;IAE7E,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAA+B,EAAE,GAAG,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,QAAQ,GAA4C;IACxD,UAAU,EAAE,EAAE,CAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC9C,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/D,IAAI,QAAQ,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACnF,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC1E,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,qDAAqD;QAClF,CAAC;aAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,YAAY,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;QAC3E,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;YACtB,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;YACzB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YACxF,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAClF,IAAI;YACJ,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;YACrC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,aAAa,EAAE,EAAE,CAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAE3F,eAAe,EAAE,EAAE,CAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QACxD,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjE,oEAAoE;QACpE,uDAAuD;QACvD,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,aAAa,EAAE,EAAE,CAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CACpD,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAChE;IACD,aAAa,EAAE,EAAE,CAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CACpD,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CACpD;IAED,aAAa,EAAE,EAAE,CAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CACpD,GAAG;SACA,OAAO,CAAC,wEAAwE,CAAC;SACjF,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAClC;IAED,cAAc,EAAE,EAAE,CAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;IACtD,0DAA0D;IAC1D,GAAG;SACA,OAAO,CACN,sHAAsH,CACvH;SACA,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAClC;IAED,WAAW,EAAE,EAAE,CAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAChD,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,GAAG;iBACA,OAAO,CACN,sJAAsJ,CACvJ;iBACA,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC3B,GAAG;iBACA,OAAO,CACN,wGAAwG,CACzG;iBACA,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/D,IAAI,QAAQ,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAClF,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC1E,GAAG;iBACA,OAAO,CACN,wJAAwJ,CACzJ;iBACA,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC/D,GAAG;iBACA,OAAO,CACN,wJAAwJ,CACzJ;iBACA,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzD,sEAAsE;YACtE,oEAAoE;YACpE,qEAAqE;YACrE,GAAG;iBACA,OAAO,CACN,wJAAwJ,CACzJ;iBACA,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,eAAe,EAAE,EAAE,CAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QACxD,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,GAAG;aACA,OAAO,CAAC,2DAA2D,CAAC;aACpE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,wBAAwB,EAAE,EAAE,CAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAC1E,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CACtD;IAED,aAAa,EAAE,EAAE,CAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;YACtB,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;YACzB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAClF,IAAI;SACL,CAAC,CAAC;QACH,uEAAuE;IACzE,CAAC,CAAC;IAEF,gBAAgB,EAAE,EAAE,CAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAEjG,kBAAkB,EAAE,EAAE,CAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC9D,6EAA6E;QAC7E,wEAAwE;QACxE,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,GAAG;aACjB,OAAO,CACN;;;;WAIG,CACJ;aACA,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAuB,CAAC;QACpE,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtF,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjE,4EAA4E;QAC5E,6EAA6E;QAC7E,GAAG;aACA,OAAO,CAAC,kFAAkF,CAAC;aAC3F,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,UAAU,EAAE,EAAE,CAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,GAAG;aACA,OAAO,CAAC,wEAAwE,CAAC;aACjF,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,aAAa,EAAE,EAAE,CAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAChF,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,GAAG,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/D,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,EAAE,EAAE,CAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACvC,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAC/E,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7B,CAAC;QACD,GAAG;aACA,OAAO,CACN,sGAAsG,CACvG;aACA,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,gBAAgB,EAAE,EAAE,CAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACpF,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC,CAAC;IAEF,yEAAyE;IACzE,mFAAmF;IACnF,+EAA+E;IAC/E,+EAA+E;IAC/E,iBAAiB;IACjB,qBAAqB,EAAE,EAAE,CAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CACpE,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CACxC;IACD,wBAAwB,EAAE,EAAE,CAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAC1E,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAClC;IACD,wBAAwB,EAAE,EAAE,CAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAC1E,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CACxC;IACD,2BAA2B,EAAE,EAAE,CAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAChF,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAClC;CACF,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,kBAAkB,GAAoB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAoB,CAAC;AAE5F,SAAS,eAAe;IACtB,MAAM,OAAO,GAAkB;QAC7B,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,WAAW;QACvB,KAAK,EAAE,WAAW;KACnB,CAAC;IACF,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,kBAAkB;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uEAAuE;AAEvE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,OAA6B,EAAE;IAE/B,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,aAAa,EAAE,CAAC;IACxC,IAAI,GAA6B,CAAC;IAElC,OAAO;QACL,EAAE,EAAE,YAAY;QAChB,MAAM,EAAE,eAAe,EAAE;QACzB,SAAS,EAAE,IAAI;QACf,KAAK,CAAC,OAAO,CAAC,UAA8B;YAC1C,sEAAsE;YACtE,gEAAgE;YAChE,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,6BAA6B,UAAU,EAAE,EAAE,CAAC;YACxF,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO;oBACL,QAAQ,EAAE,CAAC;oBACX,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,gDAAgD;iBACzD,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,gCAAgC,IAAI,EAAE,EAAE,CAAC;YACrF,CAAC;YACD,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC;YACnB,MAAM,GAAG,GAAa;gBACpB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;gBAC3C,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;aAC3B,CAAC;YACF,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,QAAQ,EAAE,CAAC;oBACX,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,yBAAyB,IAAI,YAAa,GAAa,CAAC,OAAO,EAAE;iBAC1E,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,SAAS,aAAa;IACpB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;AAC1B,CAAC"}
@@ -5,14 +5,15 @@
5
5
  */
6
6
  import type { DisruptionTier } from "../../config.ts";
7
7
  import type { OperationKind } from "../operations.ts";
8
- export type VectorId = "url-scheme" | "applescript" | "shortcuts";
8
+ export type VectorId = "url-scheme" | "applescript" | "shortcuts" | "ui";
9
9
  export interface CompiledInvocation {
10
10
  vector: VectorId;
11
- kind: "open-url" | "osascript" | "shortcuts-run";
11
+ kind: "open-url" | "osascript" | "shortcuts-run" | "ui-drive";
12
12
  /**
13
13
  * The exact payload executed (URL or AppleScript source). For the
14
14
  * shortcuts-run kind this is a human-readable rendering of the run — the
15
- * executor reads `shortcut`/`input` instead.
15
+ * executor reads `shortcut`/`input` instead. For the ui-drive kind this is
16
+ * a human-readable rendering of the recipe — the executor reads `recipe`.
16
17
  */
17
18
  payload: string;
18
19
  /** Payload with secrets replaced — safe for dry-run output and errors. */
@@ -21,6 +22,146 @@ export interface CompiledInvocation {
21
22
  shortcut?: string;
22
23
  /** shortcuts-run only: the JSON-serializable input dict piped to the shortcut. */
23
24
  input?: unknown;
25
+ /** ui-drive only: the ordered Accessibility recipe the driver executes. */
26
+ recipe?: UiRecipe;
27
+ /**
28
+ * STRUCTURED input for the simulator write vector (bench harness): the
29
+ * resolved operation kind and its (uuid/when-normalized) params. Populated by
30
+ * the pipeline right after {@link CommandSpec.compile}; the real transport
31
+ * vectors ignore them entirely. They exist so a synthetic SQL applier never
32
+ * has to reverse-engineer the payload URL / AppleScript to learn the intent.
33
+ */
34
+ op?: OperationKind;
35
+ /** @see op — the resolved params object for the simulator applier. */
36
+ opParams?: unknown;
37
+ }
38
+ /**
39
+ * A compiled Accessibility recipe: the target to reveal plus an ordered list
40
+ * of element-addressed steps. Element paths are SEMANTIC (System Events),
41
+ * never coordinates. Every path is marked provisional-pending-certification
42
+ * in its source (see docs/design/ui-vector.md).
43
+ */
44
+ export interface UiRecipe {
45
+ op: OperationKind;
46
+ /** The item the recipe acts on (revealed/selected via things:///show?id=). */
47
+ targetUuid: string;
48
+ steps: UiStep[];
49
+ }
50
+ export type UiPrimitive = "reveal" | "activate" | "resolve" | "press" | "set-value" | "select-popup" | "wait" | "key"
51
+ /**
52
+ * Synthesize a MOUSE click at an AX-resolved element's frame center (the
53
+ * NATIVE1 JXA ObjC-bridge / HID-tap primitive). Used ONLY for Things' custom
54
+ * `…` menu / repeat-bar popover, whose items are AX-readable but inert to
55
+ * AXPress (UIC2). The frame is read from the live AX tree (`position`/`size`)
56
+ * — never a guessed pixel — so a resolution miss fails closed exactly like a
57
+ * canaried AX press. Requires Things frontmost (the HID tap posts to the
58
+ * foreground surface, NATIVE1-e), so a recipe using it must activate first.
59
+ */
60
+ | "click-element"
61
+ /**
62
+ * Synthesize a MOUSE DRAG that reorders a sidebar AREA row (the AXDRAG1
63
+ * primitive). The driver resolves the source row and the destination slot
64
+ * boundary from the live AX tree per gesture, pre-scrolls (or multi-hops)
65
+ * when the sidebar is longer than the viewport, and asserts the database
66
+ * order after every gesture — see src/write/vectors/ui-drag.ts. Foreground-
67
+ * bound like click-element.
68
+ */
69
+ | "drag-reorder"
70
+ /**
71
+ * Select a PROJECT as a content-table ROW by matching its title, purely via
72
+ * AX (UIC4-a): the content table's `AXSelectedRows` is settable, so the
73
+ * driver walks the table's rows, sets each as the selection, and reads back
74
+ * `Things3 → name of selected to dos` — leaving the row whose readback equals
75
+ * the target title selected, or reporting no match. Coordinate-free and
76
+ * background-capable (no focus steal); the readback IS the
77
+ * selection-landed verification. `path` is the content table; `value` the
78
+ * title to match.
79
+ */
80
+ | "select-row"
81
+ /**
82
+ * Select a HEADING as a content-table ROW by POSITION, purely via AX
83
+ * (HEADCERT1). A heading is not `things:///show`-selectable and its row
84
+ * exposes no stable AX title handle (only a hover-dependent "More" affordance
85
+ * carries the title), so identity is positional: the driver walks the
86
+ * revealed PROJECT view's content table and selects the Nth row that is
87
+ * genuinely selectable (`AXSelected` lands) AND reads back an EMPTY
88
+ * `Things3 → name of selected to dos` — the signature of a heading, since a
89
+ * heading is not a to-do (a to-do row's readback is its title; header/spacer
90
+ * rows do not take selection). Coordinate-free and background-capable. `path`
91
+ * is the content table; `value` the 0-based heading ordinal (its position
92
+ * among the project's headings in `index` order). With the heading selected,
93
+ * `Items ▸ Convert to Project…` enables.
94
+ */
95
+ | "select-heading-row"
96
+ /**
97
+ * Set the Repeat dialog's date/time control (the reminder time, the "ends on
98
+ * date" bound) — an `AXDateTimeArea` whose value is an NSDate, NOT a text
99
+ * field (UIC6). System Events cannot set it (`set value … to <date>` errors
100
+ * -10000), so the driver sets `AXValue` to an NSDate through the ObjC bridge
101
+ * (JXA), the same bridge the mouse-synthesis primitive rides. `value` is the
102
+ * spec: `time:HH:mm` (keep the control's date, set the time-of-day, for the
103
+ * reminder) or `date:YYYY-MM-DD` (set the calendar date, for the end bound).
104
+ * The control is located by role within the open dialog and fails closed if
105
+ * it is absent.
106
+ */
107
+ | "set-datetime";
108
+ export interface UiStep {
109
+ primitive: UiPrimitive;
110
+ /** Human-readable step label — surfaced in the partial-state report. */
111
+ label: string;
112
+ /** System Events element path (semantic) for resolve/press/set-value/wait. */
113
+ path?: string;
114
+ /**
115
+ * Alternative element paths, tried in order — the driver dispatches against
116
+ * the FIRST that resolves at run time (fail-closed if none do). Used where a
117
+ * control has two equally-valid shapes: the make-repeating Repeat editor is
118
+ * an attached `AXSheet` when Things is frontmost but a DETACHED top-level
119
+ * `AXUnknown` window when backgrounded (UIC4-a), and its controls sit at
120
+ * different depths in each form. Overrides `path` when present.
121
+ */
122
+ pathCandidates?: string[];
123
+ /**
124
+ * Preflight-canary path when the step's own `path` is not statically
125
+ * resolvable (a nested submenu item only populates once its parent opens):
126
+ * the canary resolves this first-level ancestor instead, still catching a
127
+ * menu that a Things update renamed or removed. Falls back to `path`.
128
+ */
129
+ canaryPath?: string;
130
+ /** set-value: the string typed into the field. */
131
+ value?: string;
132
+ /** key: a keyboard spec (e.g. "down down return" for a dropdown pick). */
133
+ keys?: string;
134
+ /** wait: how long to poll for the element before aborting. */
135
+ timeoutMs?: number;
136
+ /**
137
+ * click-element only: the element expected to appear right AFTER the click
138
+ * (a popover opening, a sheet appearing). The driver polls for it and, on
139
+ * mismatch, sends Escape to dismiss whatever DID open and aborts fail-closed
140
+ * — so a click that lands somewhere unexpected never cascades into blind
141
+ * presses. Omitted for a TERMINAL click (one that dismisses the popover with
142
+ * no successor element); the write pipeline's read-after-write check is the
143
+ * outcome verifier there.
144
+ */
145
+ assertPath?: string;
146
+ /** click-element only: human-readable name of the asserted element (report). */
147
+ assertLabel?: string;
148
+ /** click-element only: how long to poll for `assertPath` before aborting. */
149
+ assertTimeoutMs?: number;
150
+ /**
151
+ * The element appears only AFTER a preceding press (a sheet/popover), so it
152
+ * is NOT resolvable in the preflight canary — the driver waits for it at run
153
+ * time instead. Static steps (menu-bar paths) are canary-resolved up front.
154
+ */
155
+ dynamic?: boolean;
156
+ /** How the element is addressed — pinned English title, or a stable AXIdentifier. */
157
+ addressing?: "title" | "axidentifier";
158
+ /**
159
+ * activate only: this foregrounding step is a fallback that may be skipped
160
+ * once certification proves background AXPress works (see the runbook).
161
+ */
162
+ activateFallback?: boolean;
163
+ /** drag-reorder only: the sidebar move the drag driver performs. */
164
+ drag?: import("./ui-drag.ts").SidebarDragSpec;
24
165
  }
25
166
  export interface VectorSupport {
26
167
  support: "yes" | "partial" | "no";
@@ -53,4 +194,14 @@ export interface WriteVector {
53
194
  id: VectorId;
54
195
  matrix: VectorMatrix;
55
196
  execute(invocation: CompiledInvocation): Promise<ExecuteResult>;
197
+ /**
198
+ * The bench-harness SIMULATOR vector (src/write/vectors/simulator.ts). It
199
+ * presents under a real {@link VectorId} but applies mutations via SQL from
200
+ * the structured `invocation.op`/`opParams`, never from a compiled payload.
201
+ * A single VectorId cannot satisfy the transport-specific `spec.compile` of
202
+ * EVERY operation (some are url-scheme-only, others applescript/shortcuts), so
203
+ * the pipeline SKIPS compile for a simulator and hands it structured input
204
+ * directly. Undefined/false for every real transport vector.
205
+ */
206
+ simulates?: boolean;
56
207
  }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Per-op certification manifest for the Accessibility GUI ("ui") vector.
3
+ *
4
+ * Certification has two tiers (see docs/design/ui-vector.md):
5
+ * - `lab-certified` — the op was run end-to-end through the real shipped
6
+ * pipeline inside a disposable Tart VM (Accessibility granted via the AXVM1
7
+ * user-path toggle), and the exact DB deltas the lab verdicts specify were
8
+ * observed. This certifies the recipe against the Things build in the golden.
9
+ * - `certified` — additionally confirmed on the target deployment hardware
10
+ * against a scratch database (docs/lab/ui-certification-runbook.md §5).
11
+ * - `uncertified` — recipe wired from the known menu structure but either not
12
+ * yet exercised, or FAILED lab certification (see `blocker`).
13
+ *
14
+ * UIC1 (2026-07-14, Things 3.22.11 / macOS 15.7.7 / DB v26) ran the in-VM suite:
15
+ * five ops passed and are `lab-certified`; two FAILED and stay `uncertified`
16
+ * with the blocker recorded, because both need to select a specific Things list
17
+ * row and the app exposes no AX/URL handle to do so (a to-do card opens only on
18
+ * a mouse double-click; a heading/project is not selectable via things:///show).
19
+ * UIC5 (2026-07-15) then certified `project.make-repeating` (and the
20
+ * `project.create-repeating` composite that rides it) `lab-certified` — the
21
+ * pure-AX row-selection path, corrected at the sitting (the row `select` action,
22
+ * not the silent-no-op table `AXSelectedRows` set; the detached editor's interval
23
+ * field nests in group 1 exactly like the sheet). HEADCERT1 (2026-07-17) then
24
+ * certified `heading.convert-to-project` `lab-certified` — the LAST uncertified
25
+ * op — by reusing the row `select` action on the heading's parent-project view:
26
+ * a heading row IS selectable (unlike the `things:///show` reveal UIC1 tried),
27
+ * addressed POSITIONALLY (heading rows expose no stable AX title, only a
28
+ * hover-dependent "More" affordance) by ordinal among the project's headings.
29
+ * With the heading selected, Convert to Project… enables. Every ui op is now
30
+ * lab-certified.
31
+ *
32
+ * This is DATA, not logic — the single source of truth surfaced by
33
+ * `things capabilities`, the doctor ui-vector section, and the per-op warning a
34
+ * successful non-`certified` drive carries. Kept as a typed module (not JSON) so
35
+ * it type-checks and survives the `tsc` build without a JSON-copy step.
36
+ */
37
+ import type { OperationKind } from "../operations.ts";
38
+ export type CertificationStatus = "uncertified" | "lab-certified" | "certified";
39
+ export interface CertificationEntry {
40
+ status: CertificationStatus;
41
+ /** Lab verdict ids the recipe's structure and certification are derived from. */
42
+ evidence: string[];
43
+ /** Why an op is uncertified after a certification attempt (a failed run). */
44
+ blocker?: string;
45
+ }
46
+ /** The manifest profile — records the tier + Things build the suite certified. */
47
+ export declare const UI_CERTIFICATION_PROFILE = "UIC1 + UIC3 + AXDRAG2 + UIC5 + UIC6 + HEADCERT1 in-VM (Things 3.22.11) \u2014 on-device pending";
48
+ /** Certification entry for a ui-vector op (undefined for non-ui ops). */
49
+ export declare function certificationOf(op: OperationKind): CertificationEntry | undefined;
50
+ /** Every ui-vector op's certification, for the doctor section + capabilities. */
51
+ export declare function allCertifications(): {
52
+ op: OperationKind;
53
+ entry: CertificationEntry;
54
+ }[];
@@ -0,0 +1,43 @@
1
+ import { UI_DRIVE_OPS } from "../operations.js";
2
+ /** The manifest profile — records the tier + Things build the suite certified. */
3
+ export const UI_CERTIFICATION_PROFILE = "UIC1 + UIC3 + AXDRAG2 + UIC5 + UIC6 + HEADCERT1 in-VM (Things 3.22.11) — on-device pending";
4
+ const CERTIFICATION = {
5
+ "todo.make-repeating": {
6
+ status: "lab-certified",
7
+ evidence: ["UI1", "UI2-a", "UIC1-a", "UIC6-a"],
8
+ },
9
+ "todo.reschedule-repeat": { status: "lab-certified", evidence: ["UI2-b", "UIC1-a", "UIC6-k"] },
10
+ "todo.pause-repeat": { status: "lab-certified", evidence: ["UI2-c", "UIC1-a"] },
11
+ "todo.resume-repeat": { status: "lab-certified", evidence: ["UI2-c", "UIC1-a"] },
12
+ "todo.convert-to-project": { status: "lab-certified", evidence: ["UI2-d", "UIC1-a"] },
13
+ "project.reschedule-repeat": {
14
+ status: "lab-certified",
15
+ evidence: ["UIC2-a", "UIC3-b", "UIC6-k"],
16
+ },
17
+ "project.pause-repeat": { status: "lab-certified", evidence: ["UIC2-a", "UIC3-b"] },
18
+ "project.resume-repeat": { status: "lab-certified", evidence: ["UIC2-a", "UIC3-b"] },
19
+ "area.reorder": {
20
+ status: "lab-certified",
21
+ evidence: ["NATIVE1-d", "AXDRAG1-a", "AXDRAG1-b", "AXDRAG1-f", "AXDRAG2-c"],
22
+ },
23
+ "project.make-repeating": {
24
+ status: "lab-certified",
25
+ evidence: ["UIC4-a", "UIC4-b", "UIC4-f", "UIC5-a", "UIC6-i"],
26
+ },
27
+ "heading.convert-to-project": {
28
+ status: "lab-certified",
29
+ evidence: ["UI2-d", "UIC1-a", "HEADCERT1"],
30
+ },
31
+ };
32
+ /** Certification entry for a ui-vector op (undefined for non-ui ops). */
33
+ export function certificationOf(op) {
34
+ return CERTIFICATION[op];
35
+ }
36
+ /** Every ui-vector op's certification, for the doctor section + capabilities. */
37
+ export function allCertifications() {
38
+ return UI_DRIVE_OPS.map((op) => ({
39
+ op,
40
+ entry: CERTIFICATION[op] ?? { status: "uncertified", evidence: [] },
41
+ }));
42
+ }
43
+ //# sourceMappingURL=ui-certification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-certification.js","sourceRoot":"","sources":["../../../src/write/vectors/ui-certification.ts"],"names":[],"mappings":"AAqCA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAYhD,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GACnC,4FAA4F,CAAC;AAE/F,MAAM,aAAa,GAAuD;IACxE,qBAAqB,EAAE;QACrB,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;KAC/C;IACD,wBAAwB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;IAC9F,mBAAmB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;IAC/E,oBAAoB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;IAChF,yBAAyB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;IACrF,2BAA2B,EAAE;QAC3B,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;KACzC;IACD,sBAAsB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;IACnF,uBAAuB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;IACpF,cAAc,EAAE;QACd,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC;KAC5E;IACD,wBAAwB,EAAE;QACxB,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;KAC7D;IACD,4BAA4B,EAAE;QAC5B,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;KAC3C;CACF,CAAC;AAEF,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,EAAiB;IAC/C,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/B,EAAE;QACF,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;KACpE,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,188 @@
1
+ import type { DatabaseSync } from "node:sqlite";
2
+ import type { UiRunner } from "./ui.ts";
3
+ export type SidebarPlacement = {
4
+ kind: "before";
5
+ uuid: string;
6
+ title: string;
7
+ } | {
8
+ kind: "after";
9
+ uuid: string;
10
+ title: string;
11
+ } | {
12
+ kind: "first";
13
+ } | {
14
+ kind: "last";
15
+ };
16
+ export interface SidebarDragSpec {
17
+ targetUuid: string;
18
+ targetTitle: string;
19
+ placement: SidebarPlacement;
20
+ }
21
+ /** Ordered area state read from the database between hops (the assert seam). */
22
+ export interface AreaSidebarState {
23
+ /** Areas ordered by TMArea."index" (== sidebar order once materialized). */
24
+ areas: {
25
+ uuid: string;
26
+ title: string;
27
+ index: number;
28
+ }[];
29
+ /** Digest over every untrashed task's area assignment (invariance tripwire). */
30
+ assignmentsDigest: string;
31
+ }
32
+ /**
33
+ * Auxiliary seams the ui vector needs beyond osascript dispatch. The sidebar
34
+ * drag driver asserts the database between hops; the client wires `areaState`
35
+ * to the open connection. Absent (e.g. the capabilities surface, which never
36
+ * executes), a drag op refuses cleanly.
37
+ */
38
+ export interface UiDriveAux {
39
+ areaState?: () => AreaSidebarState;
40
+ }
41
+ /** The client-side default aux: reads area order + assignments from the DB. */
42
+ export declare function createUiDriveAux(db: DatabaseSync): UiDriveAux;
43
+ export interface SidebarRect {
44
+ x: number;
45
+ y: number;
46
+ w: number;
47
+ h: number;
48
+ }
49
+ export interface SidebarRowInfo extends SidebarRect {
50
+ /** Concatenated descendant static-text segments, joined with "|". */
51
+ text: string;
52
+ }
53
+ export interface SidebarSnapshot {
54
+ /** The sidebar scroll-area viewport rect (the visible band). */
55
+ viewport: SidebarRect | null;
56
+ /** Vertical scroll fraction 0..1 from the AXScrollBar, when exposed. */
57
+ scroll: number | null;
58
+ rows: SidebarRowInfo[];
59
+ }
60
+ /** Snapshot: sidebar rows (text + frames), viewport rect, scroll fraction. */
61
+ export declare function jxaSidebarSnapshotScript(): string;
62
+ /**
63
+ * Scroll: move the pointer over the sidebar center (wheel events target the
64
+ * surface under the cursor), then post `clicks` line-unit wheel events.
65
+ * Positive clicks move the CONTENT down (earlier rows return, row y grows);
66
+ * negative clicks reveal lower rows (row y shrinks) — AXDRAG1-b.
67
+ */
68
+ export declare function jxaSidebarScrollScript(clicks: number): string;
69
+ /**
70
+ * Drag: the NATIVE1 gesture verbatim — move, down, 3px wiggle to open the drag
71
+ * session, ~25 interpolated drag events, a settle so the drop indicator locks,
72
+ * then up. Coordinates are AX-resolved frames + slot-boundary geometry computed
73
+ * by the caller in the SAME snapshot generation.
74
+ */
75
+ export declare function jxaSidebarDragScript(sx: number, sy: number, tx: number, ty: number): string;
76
+ /**
77
+ * Rung 2 — scroll-while-held (AXDRAG2-a: wheel events DO scroll the list while
78
+ * a drag is held, and AX frames re-resolve fresh mid-drag). One atomic
79
+ * gesture: grab the source, post wheel events until the anchor row's LIVE
80
+ * frame enters the visible band (direction re-derived every tick from the
81
+ * live frame), then move to the live-computed boundary and drop. No static
82
+ * corrections are needed — the mid-drag layout already reflects the lifted
83
+ * source. If the anchor never arrives within the tick budget, the script
84
+ * Escape-aborts (AXDRAG1-d: byte-identical index vector) and reports it.
85
+ */
86
+ export declare function jxaSidebarHeldScrollDragScript(sx: number, sy: number, anchorTitle: string | null, // null = drop below the last row (to-last)
87
+ maxTicks: number): string;
88
+ /** Median height of the table's spacer rows (rows with no static text). */
89
+ export declare function medianSpacerHeight(rows: SidebarRowInfo[]): number | null;
90
+ /**
91
+ * Slot pitch estimate: the median y-delta between adjacent resolved area rows
92
+ * (falls back to entity-row height + spacer height when fewer than two area
93
+ * rows resolve).
94
+ */
95
+ export declare function slotPitch(orderedAreaRows: {
96
+ title: string;
97
+ row: SidebarRowInfo;
98
+ }[], allRows: SidebarRowInfo[]): number;
99
+ /**
100
+ * The boundary Y that inserts ABOVE `ref`: the midpoint of the region between
101
+ * `ref` and the row immediately above it (the spacer row's center when a
102
+ * spacer sits there; the shared edge when rows are contiguous). With no row
103
+ * above, half a spacer height above `ref` (derived, not assumed).
104
+ */
105
+ export declare function boundaryAboveRow(allRows: SidebarRowInfo[], ref: SidebarRowInfo): number;
106
+ /**
107
+ * The boundary Y that drops BELOW the final table row (to-last). The drop
108
+ * zone below the last entity IS the trailing spacer row when one exists
109
+ * (AXDRAG1-b landed to-last inside it) — its center keeps the drop in the
110
+ * scrollable band even when the list is pinned to the bottom.
111
+ */
112
+ export declare function boundaryBelowLast(allRows: SidebarRowInfo[]): number | null;
113
+ export declare function parseSidebarSnapshot(stdout: string): SidebarSnapshot | null;
114
+ /**
115
+ * Does a row's static-text carry this exact title as a segment? Sidebar row
116
+ * text concatenates descendant static texts with "|" (AXDRAG1: e.g.
117
+ * "Area-05.|Source Toggle Template|Area-05") — an exact segment match avoids
118
+ * substring collisions; the trailing-dot variant covers the AXDescription-like
119
+ * first segment some rows carry.
120
+ */
121
+ export declare function rowMatchesTitle(text: string, title: string): boolean;
122
+ /** All rows matching known area titles, in visual (y) order. */
123
+ export declare function areaRowsInOrder(rows: SidebarRowInfo[], titles: readonly string[]): {
124
+ title: string;
125
+ row: SidebarRowInfo;
126
+ }[];
127
+ /** Find a single area row by title; ambiguous or missing → null. */
128
+ export declare function findAreaRow(rows: SidebarRowInfo[], title: string): SidebarRowInfo | null;
129
+ /**
130
+ * The source's group span: lifting an area collapses its row AND its visible
131
+ * nested project rows. Computed from resolved frames as the distance from the
132
+ * source area row's top to the NEXT area row's top (falls back to the median
133
+ * slot pitch when the source is the last area).
134
+ */
135
+ export declare function sourceGroupSpan(orderedAreaRows: {
136
+ title: string;
137
+ row: SidebarRowInfo;
138
+ }[], sourceTitle: string, allRows: SidebarRowInfo[]): number;
139
+ /**
140
+ * Static drop boundary Y for the requested placement, computed against the
141
+ * CURRENT snapshot. Every placement reduces to "insert above area R" (the
142
+ * mid-gap above R's row) except to-last, which drops below the final table row.
143
+ */
144
+ export declare function staticBoundaryY(orderedAreaRows: {
145
+ title: string;
146
+ row: SidebarRowInfo;
147
+ }[], allRows: SidebarRowInfo[], sourceTitle: string, placement: SidebarPlacement): {
148
+ y: number;
149
+ anchor: string;
150
+ } | {
151
+ error: string;
152
+ };
153
+ /**
154
+ * Correct a static boundary for the mid-drag layout: a DOWNWARD drag (boundary
155
+ * below the source) sees everything below the source shift up by the source's
156
+ * group span the instant it is picked up (AXDRAG1-a). Upward drags use static
157
+ * coordinates unchanged.
158
+ */
159
+ export declare function correctedDropY(staticY: number, sourceCenterY: number, span: number): number;
160
+ export declare function inBand(y: number, viewport: SidebarRect, pad?: number): boolean;
161
+ /**
162
+ * Grab/drop x: a fixed FRACTION of the row's resolved width (≈ the label area
163
+ * NATIVE1 clicked at x+170 on a 240px row), clear of the leading icon and the
164
+ * trailing counters — derived from the frame, not a pixel offset.
165
+ */
166
+ export declare function grabPoint(row: SidebarRowInfo): {
167
+ x: number;
168
+ y: number;
169
+ };
170
+ /** Is the requested placement already satisfied in this DB state? */
171
+ export declare function placementSatisfied(state: AreaSidebarState, targetUuid: string, placement: SidebarPlacement): boolean;
172
+ export interface DragDriveResult {
173
+ ok: boolean;
174
+ /** Human-readable outcome (hop count, rung) or the refusal reason. */
175
+ detail: string;
176
+ /** A gesture may have landed before the failure — recovery state, honestly. */
177
+ recovered?: boolean;
178
+ }
179
+ /**
180
+ * The rung-2 anchor: every placement reduces to "drop above this area row"
181
+ * (title) or "drop below the last row" (null). `undefined` = unresolvable.
182
+ */
183
+ export declare function rung2AnchorTitle(rows: SidebarRowInfo[], areaTitles: readonly string[], sourceTitle: string, placement: SidebarPlacement): string | null | undefined;
184
+ /**
185
+ * Drive the full ladder. `preState` is captured ONCE up front for the whole
186
+ * move (recovery + the caller's undo capture both key off it, not per hop).
187
+ */
188
+ export declare function driveSidebarAreaReorder(spec: SidebarDragSpec, run: UiRunner, aux: UiDriveAux, sleep?: (ms: number) => Promise<void>): Promise<DragDriveResult>;