@typeonce/effect-machine 0.3.0 → 0.5.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 (170) hide show
  1. package/README.md +410 -17
  2. package/dist/Machine.d.ts +1191 -510
  3. package/dist/Machine.d.ts.map +1 -1
  4. package/dist/Machine.js +371 -565
  5. package/dist/Machine.js.map +1 -1
  6. package/dist/internal/machine/activities.d.ts +57 -0
  7. package/dist/internal/machine/activities.d.ts.map +1 -0
  8. package/dist/internal/machine/activities.js +49 -0
  9. package/dist/internal/machine/activities.js.map +1 -0
  10. package/dist/internal/machine/atom.d.ts +69 -0
  11. package/dist/internal/machine/atom.d.ts.map +1 -0
  12. package/dist/{AtomMachine.js → internal/machine/atom.js} +20 -95
  13. package/dist/internal/machine/atom.js.map +1 -0
  14. package/dist/internal/machine/cluster.d.ts +63 -0
  15. package/dist/internal/machine/cluster.d.ts.map +1 -0
  16. package/dist/{ClusterMachine.js → internal/machine/cluster.js} +15 -119
  17. package/dist/internal/machine/cluster.js.map +1 -0
  18. package/dist/internal/machine/command.d.ts +16 -0
  19. package/dist/internal/machine/command.d.ts.map +1 -0
  20. package/dist/internal/machine/command.js +45 -0
  21. package/dist/internal/machine/command.js.map +1 -0
  22. package/dist/internal/machine/commandRuntime.d.ts +13 -0
  23. package/dist/internal/machine/commandRuntime.d.ts.map +1 -0
  24. package/dist/internal/machine/commandRuntime.js +16 -0
  25. package/dist/internal/machine/commandRuntime.js.map +1 -0
  26. package/dist/internal/{machineModel.d.ts → machine/configuration.d.ts} +12 -61
  27. package/dist/internal/machine/configuration.d.ts.map +1 -0
  28. package/dist/internal/{machineModel.js → machine/configuration.js} +250 -545
  29. package/dist/internal/machine/configuration.js.map +1 -0
  30. package/dist/internal/{machineErrors.d.ts → machine/errors.d.ts} +8 -8
  31. package/dist/internal/machine/errors.d.ts.map +1 -0
  32. package/dist/internal/{machineErrors.js → machine/errors.js} +8 -8
  33. package/dist/internal/machine/errors.js.map +1 -0
  34. package/dist/internal/machine/executionPlan.d.ts +49 -0
  35. package/dist/internal/machine/executionPlan.d.ts.map +1 -0
  36. package/dist/internal/machine/executionPlan.js +676 -0
  37. package/dist/internal/machine/executionPlan.js.map +1 -0
  38. package/dist/internal/machine/invocation.d.ts +23 -0
  39. package/dist/internal/machine/invocation.d.ts.map +1 -0
  40. package/dist/internal/machine/invocation.js +77 -0
  41. package/dist/internal/machine/invocation.js.map +1 -0
  42. package/dist/internal/machine/machine.d.ts +183 -0
  43. package/dist/internal/machine/machine.d.ts.map +1 -0
  44. package/dist/internal/machine/machine.js +552 -0
  45. package/dist/internal/machine/machine.js.map +1 -0
  46. package/dist/internal/machine/planner.d.ts +182 -0
  47. package/dist/internal/machine/planner.d.ts.map +1 -0
  48. package/dist/internal/machine/planner.js +1082 -0
  49. package/dist/internal/machine/planner.js.map +1 -0
  50. package/dist/internal/{machineProcess.d.ts → machine/process.d.ts} +11 -5
  51. package/dist/internal/machine/process.d.ts.map +1 -0
  52. package/dist/internal/machine/process.js +498 -0
  53. package/dist/internal/machine/process.js.map +1 -0
  54. package/dist/internal/machine/protocol.d.ts +34 -0
  55. package/dist/internal/machine/protocol.d.ts.map +1 -0
  56. package/dist/internal/machine/protocol.js +182 -0
  57. package/dist/internal/machine/protocol.js.map +1 -0
  58. package/dist/internal/machine/readiness.d.ts +4 -0
  59. package/dist/internal/machine/readiness.d.ts.map +1 -0
  60. package/dist/internal/machine/readiness.js +2 -0
  61. package/dist/internal/machine/readiness.js.map +1 -0
  62. package/dist/internal/machine/runtime.d.ts +255 -0
  63. package/dist/internal/machine/runtime.d.ts.map +1 -0
  64. package/dist/internal/machine/runtime.js +1489 -0
  65. package/dist/internal/machine/runtime.js.map +1 -0
  66. package/dist/internal/machine/serialization.d.ts +14 -0
  67. package/dist/internal/machine/serialization.d.ts.map +1 -0
  68. package/dist/internal/machine/serialization.js +338 -0
  69. package/dist/internal/machine/serialization.js.map +1 -0
  70. package/dist/internal/machine/stateDefinition.d.ts +15 -0
  71. package/dist/internal/machine/stateDefinition.d.ts.map +1 -0
  72. package/dist/internal/machine/stateDefinition.js +210 -0
  73. package/dist/internal/machine/stateDefinition.js.map +1 -0
  74. package/dist/internal/machine/symbols.d.ts +3 -0
  75. package/dist/internal/machine/symbols.d.ts.map +1 -0
  76. package/dist/internal/machine/symbols.js +3 -0
  77. package/dist/internal/machine/symbols.js.map +1 -0
  78. package/dist/internal/machine/topology.d.ts +98 -0
  79. package/dist/internal/machine/topology.d.ts.map +1 -0
  80. package/dist/internal/machine/topology.js +347 -0
  81. package/dist/internal/machine/topology.js.map +1 -0
  82. package/dist/internal/testing/machine/arbitrary.d.ts +36 -0
  83. package/dist/internal/testing/machine/arbitrary.d.ts.map +1 -0
  84. package/dist/internal/testing/machine/arbitrary.js +68 -0
  85. package/dist/internal/testing/machine/arbitrary.js.map +1 -0
  86. package/dist/internal/testing/machine/exploration.d.ts +30 -0
  87. package/dist/internal/testing/machine/exploration.d.ts.map +1 -0
  88. package/dist/internal/testing/machine/exploration.js +237 -0
  89. package/dist/internal/testing/machine/exploration.js.map +1 -0
  90. package/dist/internal/testing/machine/finiteModel.d.ts +322 -0
  91. package/dist/internal/testing/machine/finiteModel.d.ts.map +1 -0
  92. package/dist/internal/testing/machine/finiteModel.js +976 -0
  93. package/dist/internal/testing/machine/finiteModel.js.map +1 -0
  94. package/dist/internal/testing/machine/invariant.d.ts +31 -0
  95. package/dist/internal/testing/machine/invariant.d.ts.map +1 -0
  96. package/dist/internal/testing/machine/invariant.js +214 -0
  97. package/dist/internal/testing/machine/invariant.js.map +1 -0
  98. package/dist/internal/testing/machine/probe.d.ts +26 -0
  99. package/dist/internal/testing/machine/probe.d.ts.map +1 -0
  100. package/dist/internal/testing/machine/probe.js +45 -0
  101. package/dist/internal/testing/machine/probe.js.map +1 -0
  102. package/dist/internal/testing/machine/referenceModel.d.ts +203 -0
  103. package/dist/internal/testing/machine/referenceModel.d.ts.map +1 -0
  104. package/dist/internal/testing/machine/referenceModel.js +1012 -0
  105. package/dist/internal/testing/machine/referenceModel.js.map +1 -0
  106. package/dist/internal/testing/machine/runtime.d.ts +631 -0
  107. package/dist/internal/testing/machine/runtime.d.ts.map +1 -0
  108. package/dist/internal/testing/machine/runtime.js +726 -0
  109. package/dist/internal/testing/machine/runtime.js.map +1 -0
  110. package/dist/internal/testing/machine/runtimeInvariant.d.ts +32 -0
  111. package/dist/internal/testing/machine/runtimeInvariant.d.ts.map +1 -0
  112. package/dist/internal/testing/machine/runtimeInvariant.js +334 -0
  113. package/dist/internal/testing/machine/runtimeInvariant.js.map +1 -0
  114. package/dist/internal/testing/machine/trace.d.ts +17 -0
  115. package/dist/internal/testing/machine/trace.d.ts.map +1 -0
  116. package/dist/internal/testing/machine/trace.js +94 -0
  117. package/dist/internal/testing/machine/trace.js.map +1 -0
  118. package/dist/internal/testing/machine/verification.d.ts +36 -0
  119. package/dist/internal/testing/machine/verification.d.ts.map +1 -0
  120. package/dist/internal/testing/machine/verification.js +1375 -0
  121. package/dist/internal/testing/machine/verification.js.map +1 -0
  122. package/dist/testing/MachineTest.d.ts +1588 -0
  123. package/dist/testing/MachineTest.d.ts.map +1 -0
  124. package/dist/testing/MachineTest.js +406 -0
  125. package/dist/testing/MachineTest.js.map +1 -0
  126. package/dist/testing/index.d.ts +7 -0
  127. package/dist/testing/index.d.ts.map +1 -0
  128. package/dist/testing/index.js +7 -0
  129. package/dist/testing/index.js.map +1 -0
  130. package/dist/{ClusterMachine.d.ts → unstable/cluster/ClusterMachine.d.ts} +56 -45
  131. package/dist/unstable/cluster/ClusterMachine.d.ts.map +1 -0
  132. package/dist/unstable/cluster/ClusterMachine.js +144 -0
  133. package/dist/unstable/cluster/ClusterMachine.js.map +1 -0
  134. package/dist/{cluster.js → unstable/cluster/index.d.ts} +1 -1
  135. package/dist/unstable/cluster/index.d.ts.map +1 -0
  136. package/dist/{cluster.d.ts → unstable/cluster/index.js} +1 -1
  137. package/dist/unstable/cluster/index.js.map +1 -0
  138. package/dist/{AtomMachine.d.ts → unstable/reactivity/AtomMachine.d.ts} +116 -50
  139. package/dist/unstable/reactivity/AtomMachine.d.ts.map +1 -0
  140. package/dist/unstable/reactivity/AtomMachine.js +164 -0
  141. package/dist/unstable/reactivity/AtomMachine.js.map +1 -0
  142. package/dist/{reactivity.js → unstable/reactivity/index.d.ts} +1 -1
  143. package/dist/unstable/reactivity/index.d.ts.map +1 -0
  144. package/dist/{reactivity.d.ts → unstable/reactivity/index.js} +1 -1
  145. package/dist/unstable/reactivity/index.js.map +1 -0
  146. package/docs/agent-guide.md +316 -31
  147. package/package.json +28 -10
  148. package/dist/AtomMachine.d.ts.map +0 -1
  149. package/dist/AtomMachine.js.map +0 -1
  150. package/dist/ClusterMachine.d.ts.map +0 -1
  151. package/dist/ClusterMachine.js.map +0 -1
  152. package/dist/cluster.d.ts.map +0 -1
  153. package/dist/cluster.js.map +0 -1
  154. package/dist/internal/machineErrors.d.ts.map +0 -1
  155. package/dist/internal/machineErrors.js.map +0 -1
  156. package/dist/internal/machineModel.d.ts.map +0 -1
  157. package/dist/internal/machineModel.js.map +0 -1
  158. package/dist/internal/machinePlanner.d.ts +0 -74
  159. package/dist/internal/machinePlanner.d.ts.map +0 -1
  160. package/dist/internal/machinePlanner.js +0 -797
  161. package/dist/internal/machinePlanner.js.map +0 -1
  162. package/dist/internal/machineProcess.d.ts.map +0 -1
  163. package/dist/internal/machineProcess.js +0 -181
  164. package/dist/internal/machineProcess.js.map +0 -1
  165. package/dist/internal/machineRuntime.d.ts +0 -125
  166. package/dist/internal/machineRuntime.d.ts.map +0 -1
  167. package/dist/internal/machineRuntime.js +0 -365
  168. package/dist/internal/machineRuntime.js.map +0 -1
  169. package/dist/reactivity.d.ts.map +0 -1
  170. package/dist/reactivity.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../../src/internal/machine/planner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAA;AACnF,OAAO,EAEL,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,0BAA0B,EAC1B,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,gCAAgC,EAChC,SAAS,EACT,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,EAC7B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC7F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EACL,OAAO,EACP,cAAc,EACd,eAAe,EACf,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,oBAAoB,EACrB,MAAM,eAAe,CAAA;AAyDtB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAA8D,EACN,EAAE;IAC1D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,OAAO,UAAU,KAAK,UAAU;QACrC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE;QACpD,CAAC,CAAC;YACA,OAAO,EAAE,UAAU,CAAC,OAAO,KAAK,IAAI;YACpC,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,UAAU,EAAE,UAAU,CAAC,UAAU;SAClC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CACzB,OAAoB,EACpB,OAAwG,EACxG,OAAgB,EAChB,EAAE;IACF,MAAM,SAAS,GAAG,aAAa,CAAQ,OAAO,CAAC,CAAA;IAC/C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,aAAa,EAAE,SAAS,CAAC,aAAa;SACvC,CAAA;IACH,CAAC;IACD,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACnC,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,aAAa,EAAE,SAAS,CAAC,aAAa;KACvC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAOxB,OAAoB,EACpB,UAAoD,EACpD,OAAgB,EAChB,EAAE;IACF,MAAM,SAAS,GAAG,aAAa,CAAQ,OAAO,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IACpD,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,aAAa,EAAE,SAAS,CAAC,aAAa;KACvC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAC9B,OAAoB,EACpB,OAA8D,EAC9D,OAAY,EACZ,EAAE;IACF,MAAM,SAAS,GAAG,aAAa,CAAU,OAAO,CAAC,CAAA;IACjD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC;QAC1C,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,aAAa,EAAE,SAAS,CAAC,aAAa;KACvC,CAAA;AACH,CAAC,CAAA;AAED;;sCAEsC;AACtC,MAAM,4BAA4B,GAAG,CACnC,OAAoB,EACpB,aAAkC,EAClC,KAAc,EACd,EAAE;IACF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAA0B,EAAE,CAAA;IAC1C,MAAM,YAAY,GAAmB,EAAE,CAAA;IACvC,MAAM,aAAa,GAAmB,EAAE,CAAA;IAExC,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,OAAO,OAAO,EAAE,CAAC;QACf,OAAO,GAAG,KAAK,CAAA;QACf,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACxG,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACnC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAClF,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,oDAAoD,IAAI,4BAA4B,CAAC,CAAA;gBACvG,CAAC;gBACD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;gBACnD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,+EAA+E,IAAI,GAAG,CAAC,CAAA;gBACzG,CAAC;gBACD,MAAM,OAAO,GAAG;oBACd,MAAM;oBACN,MAAM;oBACN,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,OAAO,EAAE,aAAa,CAAC,OAAO;iBACR,CAAA;gBACxB,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE;oBAChE,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;oBACpC,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;oBAC9C,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;oBAChD,KAAK;iBACN,CAAC,CAAA;gBACF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC5C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACtB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC/E,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;gBACtC,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;gBAC9C,aAAa,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAA;gBAChD,OAAO,GAAG,IAAI,CAAA;YAChB,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;gBAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;oBACnD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,MAAM,IAAI,KAAK,CAAC,+EAA+E,IAAI,GAAG,CAAC,CAAA;oBACzG,CAAC;oBACD,MAAM,OAAO,GAAG;wBACd,MAAM;wBACN,MAAM;wBACN,OAAO,EAAE,aAAa,CAAC,OAAO;wBAC9B,OAAO,EAAE,aAAa,CAAC,OAAO;qBACR,CAAA;oBACxB,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE;wBAChE,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;wBACpC,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;wBAC9C,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;wBAChD,KAAK;qBACN,CAAC,CAAA;oBACF,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;wBACxE,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,iCAAiC,CAAC,CAAA;oBACnG,CAAC;oBACD,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;wBAChC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;wBACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;4BACxE,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,yBAAyB,KAAK,CAAC,GAAG,GAAG,CAAC,CAAA;wBACvG,CAAC;wBACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;wBACtB,MAAM,CAAC,GAAG,CACR,KAAK,CAAC,IAAI,EACV,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAG,WAAW,CAAC,KAAiC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAChG,CAAA;oBACH,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;oBACtC,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;oBAC9C,aAAa,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAA;oBAChD,OAAO,GAAG,IAAI,CAAA;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO;QACL,aAAa,EAAE;YACb,MAAM;YACN,MAAM;YACN,OAAO,EAAE,IAAI,GAAG,EAAmB;YACnC,OAAO,EAAE,aAAa,CAAC,OAAO;SACR;QACxB,QAAQ;QACR,YAAY;QACZ,aAAa;KACd,CAAA;AACH,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC3B,OAAoB,EACpB,aAAkC,EAClC,MAA0D,EAC1D,KAAc,EACd,EAAE;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,IAAI,qCAAqC,CAAC,CAAA;IACvG,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,8BAA8B,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAC/E,2EAA2E;QAC3E,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,SAAS,GAAG,4BAA4B,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,+BAA+B,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACjG,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACjE,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAa,EAAE,QAAQ,CAAC,KAAY,EAAE;gBAC9D,QAAQ,EAAE,QAAe;gBACzB,MAAM,EAAE,MAAa;aACtB,CAAC;YACF,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,WAAW,EAAE,EAAE;SAChB,CAAA;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACzE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,qCAAqC,CAAC,CAAA;IAC7F,CAAC;IACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE;QACrD,KAAK;QACL,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI;QACrD,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAA;IACF,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,IAAI,wDAAwD,CAAC,CAAA;IACtH,CAAC;IACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACxD,MAAM,gBAAgB,GAAG,cAAc,KAAK,SAAS;QACnD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,mBAAmB,CACnB,OAAO,EACP;YACE,MAAM,EAAE,IAAI,GAAG,EAAE;YACjB,MAAM,EAAE,IAAI,GAAG,EAAE;YACjB,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B,EACD,SAAS,CAAC,KAAK,EACf,KAAK,CACN,CAAA;IACH,IAAI,qBAAqB,GAAG,gBAAgB,KAAK,SAAS;QACxD,CAAC,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,KAAY,CAAC;QAC7D,CAAC,CAAC,gCAAgC,CAAC,OAAO,EAAE;YAC1C,MAAM,EAAE,IAAI,GAAG,EAAE;YACjB,MAAM,EAAE,IAAI,GAAG,EAAE;YACjB,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B,EAAE,gBAAgB,CAAC,MAAa,CAAC,CAAA;IACpC,KAAK,MAAM,gBAAgB,IAAI,gBAAgB,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;QACzE,qBAAqB,GAAG,gCAAgC,CACtD,OAAO,EACP,qBAAqB,EACrB,gBAE+B,CAChC,CAAA;IACH,CAAC;IACD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,IAAI,iEAAiE,MAAM,CAAC,MAAM,GAAG,CAC7H,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,+BAA+B,CAAC,OAAO,EAAE,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAC/D,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAa,EAAE,QAAQ,CAAC,KAAY,EAAE;YAC9D,QAAQ,EAAE,QAAe;YACzB,MAAM,EAAE,MAAa;SACtB,CAAC;QACF,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,gBAAgB,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QACxE,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,gBAAgB,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;QACpF,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,gBAAgB,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC;QACvF,WAAW,EAAE,gBAAgB,EAAE,WAAW,IAAI,EAAE;KACjD,CAAA;AACH,CAAC,CAAA;AAqCD,MAAM,iBAAiB,GAAG,CAAC,OAAoB,EAAE,aAAkC,EAAyB,EAAE,CAC5G,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;KAC7B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAClE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACzE,CAAC,CAAC,CAAA;AAEN,MAAM,qBAAqB,GAAG,CAAC,OAAoB,EAAE,IAAY,EAAyB,EAAE,CAC1F,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,OAAoB,EACpB,IAAY,EACZ,KAAa,EACO,EAAE;IACtB,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC/C,IAAI,QAAQ,GAAuB,SAAS,CAAA;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IAC1D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,MAAK;QACP,CAAC;QACD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,eAAmC,EACnC,eAAmC,EACf,EAAE;IACtB,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACpF,OAAO,eAAe,KAAK,eAAe,IAAI,cAAc,CAAC,eAAe,EAAE,eAAe,CAAC;QAC5F,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,eAAe,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAoB,EACpB,aAAkC,EAClC,QAA4B,EACL,EAAE,CACzB,aAAa,CACX,OAAO,EACP,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;KAC7B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAC9E,CAAA;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAoB,EACpB,aAAkC,EAClC,QAA4B,EACL,EAAE,CACzB,cAAc,CACZ,OAAO,EACP,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAC5G,CAAA;AAEH,MAAM,kBAAkB,GAAG,CAAC,IAAyB,EAAE,KAA0B,EAAW,EAAE,CAC5F,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAE3G,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAoB,EAAE,KAAuB,EAAyB,EAAE,CACpG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;KACvB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAA;IACxF,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AAC3F,CAAC,CAAC,CAAA;AAEN,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAoB,EAAE,KAAuB,EAAyB,EAAE,CACrG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;KACvB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,CAAA;IACxF,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACzE,CAAC,CAAC,CAAA;AAEN,MAAM,sBAAsB,GAAG,CAM7B,OAAoB,EACpB,aAAkC,EAClC,IAAY,EACZ,KAAqC,EACuB,EAAE,CAAC,CAAC;IAChE,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE,IAAI,CAA+C;IACxF,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAA8C;IACjG,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAA+C;IACpG,KAAK;CACN,CAAC,CAAA;AAEF,MAAM,qBAAqB,GAAG,CAO5B,OAA+E,EAC/E,aAAkC,EAClC,IAAY,EACZ,KAA2C,EAC3C,QAAkC,EAC0C,EAAE,CAAC,CAAC;IAChF,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE,IAAI,CAA+C;IACxF,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAA8C;IACjG,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAA+C;IACpG,KAAK;IACL,QAAQ;IACR,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;CACxC,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAMtB,OAAoB,EACpB,aAAkC,EAClC,IAAY,EACZ,KAAqC,EACrC,MAAe,EACf,QAAkC,EACmB,EAAE,CAAC,CAAC;IACzD,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE,IAAI,CAA+C;IACxF,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAA8C;IACjG,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAA+C;IACpG,KAAK;IACL,MAAM,EAAE,MAA+D;IACvE,QAAQ;IACR,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;CACxC,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,CAO1B,OAAoB,EACpB,aAAkC,EAClC,KAA4B,EAC5B,KAAqC,EACrC,GAAqB,EACrB,EAAE;IACF,MAAM,QAAQ,GAA0B,EAAE,CAAA;IAC1C,MAAM,YAAY,GAAmC,EAAE,CAAA;IACvD,MAAM,aAAa,GAAiC,EAAE,CAAA;IACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,kBAAkB,CAMlC,OAAO,EACP,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAC7B,sBAAsB,CACpB,OAAO,EACP,aAAa,EACb,IAAI,EACJ,KAAK,CACN,CACF,CAAA;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;QACpC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,aAAqD,CAAC,CAAA;IACxF,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA;AAClD,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAO9B,OAAoB,EACpB,aAAkC,EAClC,KAAqC,EAQrC,EAAE;IACF,MAAM,QAAQ,GAOV,EAAE,CAAA;IACN,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IACzC,IAAI,QAA8C,CAAA;IAClD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,QAAQ,KAAK,yBAAyB,CAAS,OAAO,EAAE,aAAa,CAAC,CAAA;IACrG,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;YAClE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBACzB,QAAQ,CAAC,IAAI,CAAC;wBACZ,UAAU,EAAE,IAAI;wBAChB,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC3B,UAAU,EAAE,MAKX;wBACD,OAAO,EAAE;4BACP,KAAK,EAAE,cAAc,CAAC,aAAa,EAAE,IAAI,CAGxC;4BACD,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAGlD;4BACD,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAGpD;4BACD,KAAK;4BACL,QAAQ,EAAE,gBAAgB,EAAE;4BAC5B,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;yBACxC;qBACF,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAO5B,OAAoB,EACpB,aAAkC,EAClC,KAAqC,EACrC,WAA+E,EAQ/E,EAAE;IACF,MAAM,QAAQ,GAOV,EAAE,CAAA;IACN,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IACzC,IAAI,QAA8C,CAAA;IAClD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,QAAQ,KAAK,yBAAyB,CAAS,OAAO,EAAE,aAAa,CAAC,CAAA;IACrG,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7E,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACpC,QAAQ,CAAC,IAAI,CAAC;gBACZ,UAAU,EAAE,UAAU,CAAC,IAAI;gBAC3B,QAAQ,EAAE,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC;gBACxE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBACzB,UAAU,EAAE,MAKX;gBACD,OAAO,EAAE,eAAe,CACtB,OAAO,EACP,aAAa,EACb,UAAU,CAAC,IAAI,EACf,KAAK,EACL,UAAU,CAAC,MAAM,EACjB,gBAAgB,EAAE,CACnB;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAO7B,OAAoB,EACpB,aAAkC,EAClC,KAAgE,EAQhE,EAAE;IACF,MAAM,QAAQ,GAeV,EAAE,CAAA;IACN,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IACzC,IAAI,QAA8C,CAAA;IAClD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,QAAQ,KAAK,yBAAyB,CAAS,OAAO,EAAE,aAAa,CAAC,CAAA;IACrG,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;QAC9D,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;YAChF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBACzB,QAAQ,CAAC,IAAI,CAAC;wBACZ,UAAU,EAAE,IAAI;wBAChB,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;wBAC7C,UAAU,EAAE,UAaX;wBACD,OAAO,EAAE,qBAAqB,CAM5B,OAAc,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;qBAClE,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAIkE,EAC1D,EAAE;IACV,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAA;AACjG,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC9C,UAAkB,EAClB,OAAkC,EAClC,eAAkD,EAClD,MAAe,EACT,EAAE;IACR,IAAI,eAAe,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAM;IACR,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,MAAM;QAC9E,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC,WAAW,CAAA;IACf,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAA;QACpF,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,SAAS,YAAY,sBAAsB,MAAM,+BACrF,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAC9F,EAAE,CACH,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,IAA2B,EAAE,KAA4B,EAAW,EAAE;IACjG,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAOtC,OAAoB,EACpB,WAAwE,EACN,EAAE,CACpE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;KACpB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;AAEhH,MAAM,iCAAiC,GAAG,CAMxC,UAAoE,EACV,EAAE,CAC5D,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9B,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACzB,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,IAAI,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,CACpG,CACF,CAAA;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAO1C,OAAoB,EACpB,WAA6E,EACX,EAAE;IACpE,MAAM,QAAQ,GAA6D,EAAE,CAAA;IAC7E,KAAK,MAAM,UAAU,IAAI,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QACxE,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAqD,CAAA;QACxF,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,mBAAmB,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClE,IAAI,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnF,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACnC,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,IAAI,CAAA;oBAChB,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACvC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACf,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC3B,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CACxB,MAAe,EACf,kBAAqD,EAAE,EAItD,EAAE;IACH,MAAM,MAAM,GAA4B,EAAE,GAAG,eAAe,EAAE,CAAA;IAC9D,MAAM,OAAO,GAA+C,EAAE,CAAA;IAC9D,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAQ,EAAE;QACvC,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;YAC3C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACrB,OAAM;QACR,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;YAAE,OAAM;QAC5G,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAA;QAC5C,IAAI,OAAO,IAAI,OAAO;YAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5C,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACjE,CAAC;IACH,CAAC,CAAA;IACD,KAAK,CAAC,MAAM,CAAC,CAAA;IACb,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5D,MAAM;KACP,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CACvB,MAAe,EACf,kBAAqD,EAAE,EACvD,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAElD,MAAM,gBAAgB,GAAG,CAAC,MAAe,EAAE,MAAyC,EAAW,EAAE;IAC/F,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;IAC9F,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAA;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC7C,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE;QAC3C,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC/C,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;KAChD,CAAC,CAAA;AACJ,CAAC,CAAA;AAUD,MAAM,mBAAmB,GAAG,CAC1B,OAAoB,EACpB,aAAkC,EAClC,aAAsB,EACtB,KAAc,EACd,EAAE;IACF,MAAM,OAAO,GAAmB,CAAC,aAAa,CAAC,CAAA;IAC/C,MAAM,eAAe,GAAmB,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAA0B,EAAE,CAAA;IAC1C,MAAM,YAAY,GAAmB,EAAE,CAAA;IACvC,MAAM,aAAa,GAAmB,EAAE,CAAA;IACxC,MAAM,WAAW,GAAoC,EAAE,CAAA;IACvD,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,GAAY,OAAO,CAAC,KAAK,EAAE,CAAA;QACtC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;YACnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACrC,IAAI,SAAS,KAAK,SAAS;gBAAE,MAAK;YAClC,OAAO,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;YACzE,UAAU,IAAI,CAAC,CAAA;YACf,IAAI,UAAU,GAAG,sBAAsB,EAAE,CAAC;gBACxC,MAAM,IAAI,uBAAuB,CAAC;oBAChC,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI;oBAC5B,aAAa,EAAE,sBAAsB;iBACtC,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACpD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,mCAAmC,SAAS,CAAC,MAAM,CAAC,IAAI,qCAAqC,CAAC,CAAA;YAChH,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;YAClD,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,IAAI,8BAA8B,CAAC,CAAA;YACnF,CAAC;YACD,MAAM,WAAW,GAAwB;gBACvC,MAAM,EAAE,IAAI,GAAG,CAAC;oBACd,GAAG,aAAa,CAAC,MAAM;oBACvB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;iBACjC,CAAC;gBACF,MAAM,EAAE,IAAI,GAAG,CAAC;oBACd,GAAG,aAAa,CAAC,MAAM;oBACvB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;iBACpC,CAAC;gBACF,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,OAAO,EAAE,aAAa,CAAC,OAAO;aAC/B,CAAA;YACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE;gBAC9D,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC;gBACvD,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC;gBACzD,KAAK;gBACL,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;aAC7C,CAAC,CAAA;YACF,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,IAAI,wBAAwB,CAAC,CAAA;YACpF,CAAC;YACD,gCAAgC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;YAChG,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAY,CAAC,CAAA;YAC9D,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7D,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;YACxC,WAAW,CAAC,IAAI,CAAC;gBACf,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC3B,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,YAAY;gBACpB,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,YAAY;aACpD,CAAC,CAAA;YACF,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;YACpC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;YAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;QAChF,CAAC;QACD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO;QACL,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;QAC1B,iBAAiB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,WAAW;KACZ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,0BAA0B,GAAG,CAOjC,OAAoB,EACpB,KAA0B,EAC1B,SAAoD,EACpD,EAAE;IACF,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAA;IAC1C,MAAM,gBAAgB,GAAG,iBAAiB,CACxC,OAAO,EACP,SAAS,CAAC,UAAU,CAAC,UAAU,EAC/B,SAAS,CAAC,OAAO,CAClB,CAAA;IACD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,KAAK,SAAS;QAC3D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,gBAAgB,CAAC,KAI+C,CAAA;IACpE,gCAAgC,CAC9B,SAAS,CAAC,UAAU,EACpB,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,UAAU,CAAC,OAAO,EAC5B,gBAAgB,CACjB,CAAA;IACD,MAAM,gBAAgB,GAAG,gBAAgB,KAAK,SAAS;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,mBAAmB,CACnB,OAAO,EACP,KAAK,EACL,gBAAgB,EACf,SAAS,CAAC,OAAe,CAAC,KAAK,CACjC,CAAA;IACH,MAAM,oBAAoB,GAAG,gBAAgB,EAAE,MAAM,IAAI,gBAAgB,CAAA;IACzE,IAAI,iBAMS,CAAA;IACb,MAAM,sBAAsB,GAAG,eAAe,CAAC,oBAAoB,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,OAAO;QAChG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,SAAS,CAAA;IACb,IAAI,oBAAoB,KAAK,SAAS,IAAI,eAAe,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAChF,wEAAwE;QACxE,oEAAoE;QACpE,wDAAwD;QACxD,MAAM,mBAAmB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO;YACtD,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM;YAC/C,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACjF,MAAM,oBAAoB,GAAG,sBAAsB,KAAK,SAAS;YAC/D,CAAC,CAAC,aAAa,CACb,OAAO,EACP,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAC9F;YACD,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAA;QACrD,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC;YACzF,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,CAAC;YAC7D,CAAC,CAAC,KAAK,CAAA;QACT,iBAAiB,GAAG,oBAAoB,CACtC,OAAO,EACP,wBAAwB,EACxB,oBAAoB,EACnB,SAAS,CAAC,OAAe,CAAC,KAAK,CACjC,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GACV,iBAAiB,KAAK,SAAS;QAC7B,CAAC,CAAC,oBAGW;QACb,CAAC,CAAC,iBAAiB,CAAC,MAEuC,CAAA;IAC/D,MAAM,wBAAwB,GAA0B,EAAE,CAAA;IAC1D,MAAM,6BAA6B,GAAmB,EAAE,CAAA;IACxD,MAAM,8BAA8B,GAAmB,EAAE,CAAA;IACzD,MAAM,kCAAkC,GAAoC,EAAE,CAAA;IAC9E,MAAM,uBAAuB,GAEzB,EAAE,CAAA;IACN,KAAK,MAAM,gBAAgB,IAAI,gBAAgB,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;QACzE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvC,uBAAuB,CAAC,IAAI,CAAC,gBAAuB,CAAC,CAAA;YACrD,SAAQ;QACV,CAAC;QACD,MAAM,QAAQ,GAAG,oBAAoB,CACnC,OAAO,EACP,KAAK,EACL,gBAAgB,EACf,SAAS,CAAC,OAAe,CAAC,KAAK,CACjC,CAAA;QACD,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAa,CAAC,CAAA;QACpD,wBAAwB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACnD,6BAA6B,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;QAC5D,8BAA8B,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;QAC9D,kCAAkC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAClE,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS;QACrC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,uBAAuB,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,SAAS;YACxE,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC3B,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IACvC,IAAI,oBAAoB,GAAG,MAAM,KAAK,SAAS;QAC7C,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,gCAAgC,CAAS,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACpE,KAAK,MAAM,gBAAgB,IAAI,uBAAuB,EAAE,CAAC;QACvD,oBAAoB,GAAG,gCAAgC,CACrD,OAAO,EACP,oBAAoB,EACpB,gBAAgB,CACjB,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;IAEhG,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,SAAS;YACT,gBAAgB;YAChB,MAAM;YACN,QAAQ,EAAE;gBACR,GAAG,gBAAgB,CAAC,QAAQ;gBAC5B,GAAG,CAAC,gBAAgB,EAAE,QAAQ,IAAI,EAAE,CAAC;gBACrC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,IAAI,EAAE,CAAC;gBACtC,GAAG,wBAAwB;aAC5B;YACD,YAAY,EAAE;gBACZ,GAAG,gBAAgB,CAAC,YAAY;gBAChC,GAAG,CAAC,gBAAgB,EAAE,YAAY,IAAI,EAAE,CAAC;gBACzC,GAAG,CAAC,iBAAiB,EAAE,YAAY,IAAI,EAAE,CAAC;gBAC1C,GAAG,6BAA6B;aACjC;YACD,aAAa,EAAE;gBACb,GAAG,gBAAgB,CAAC,aAAa;gBACjC,GAAG,CAAC,gBAAgB,EAAE,aAAa,IAAI,EAAE,CAAC;gBAC1C,GAAG,CAAC,iBAAiB,EAAE,aAAa,IAAI,EAAE,CAAC;gBAC3C,GAAG,8BAA8B;aAClC;YACD,OAAO;YACP,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,iBAAiB,EAAE;gBACjB,GAAG,CAAC,gBAAgB,EAAE,WAAW,IAAI,EAAE,CAAC;gBACxC,GAAG,CAAC,iBAAiB,EAAE,WAAW,IAAI,EAAE,CAAC;gBACzC,GAAG,kCAAkC;aACtC;SACmD,CAAA;IACxD,CAAC;IAED,MAAM,eAAe,GAAG,UAAU,KAAK,SAAS;QAC9C,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM;QAC/C,CAAC,CAAC,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,CAAA;IAChE,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM,CAAA;IACrE,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO;QAC3C,CAAC,CAAC,yBAAyB,CAAC,eAAe,EAAE,eAAe,CAAC;QAC7D,CAAC,CAAC,eAAe,CAAA;IAEnB,OAAO;QACL,SAAS;QACT,gBAAgB;QAChB,MAAM;QACN,QAAQ,EAAE;YACR,GAAG,gBAAgB,CAAC,QAAQ;YAC5B,GAAG,CAAC,gBAAgB,EAAE,QAAQ,IAAI,EAAE,CAAC;YACrC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,IAAI,EAAE,CAAC;YACtC,GAAG,wBAAwB;SAC5B;QACD,YAAY,EAAE;YACZ,GAAG,gBAAgB,CAAC,YAAY;YAChC,GAAG,CAAC,gBAAgB,EAAE,YAAY,IAAI,EAAE,CAAC;YACzC,GAAG,CAAC,iBAAiB,EAAE,YAAY,IAAI,EAAE,CAAC;YAC1C,GAAG,6BAA6B;SACjC;QACD,aAAa,EAAE;YACb,GAAG,gBAAgB,CAAC,aAAa;YACjC,GAAG,CAAC,gBAAgB,EAAE,aAAa,IAAI,EAAE,CAAC;YAC1C,GAAG,CAAC,iBAAiB,EAAE,aAAa,IAAI,EAAE,CAAC;YAC3C,GAAG,8BAA8B;SAClC;QACD,OAAO;QACP,SAAS,EAAE,sBAAsB,KAAK,SAAS;YAC7C,CAAC,CAAC,aAAa,CACb,OAAO,EACP,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAChG;YACD,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;QAC1C,UAAU,EAAE,sBAAsB,KAAK,SAAS;YAC9C,CAAC,CAAC,cAAc,CACd,OAAO,EACP,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAC/G;YACD,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,CAAC;QAC1D,iBAAiB,EAAE;YACjB,GAAG,CAAC,gBAAgB,EAAE,WAAW,IAAI,EAAE,CAAC;YACxC,GAAG,CAAC,iBAAiB,EAAE,WAAW,IAAI,EAAE,CAAC;YACzC,GAAG,kCAAkC;SACtC;KACmD,CAAA;AACxD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAA;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAwB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAA;AAE7E,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAAoB,EACpB,KAA4B,EACnB,EAAE,CAAC,0BAA0B,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;AAEzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAKlC,OAAoB,EACpB,KAA+B,EAC/B,KAAqC,EACY,EAAE,CACnD,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,EAC7F,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAyB,EAAE;IAClD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,CAAA;IAC1D,IACE,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC;WAC1D,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAC7C,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CACf,IAAI,KAAK,CAAC,6EAA6E,CAAC,CACzF,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAW,CAAC,CAAA;AAC5E,CAAC,CAAC,CACH,CAAA;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,CAcrB,OAaC,EACD,KAA+B,EACgC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAEhG,MAAM,CAAC,MAAM,eAAe,GAAG,CAa7B,OAA8G,EAC9G,GAAG,IAAmC,EACtC,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS;QAC3C,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YACnB,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC;YAC5D,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAkC,CAAA;IACvF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;IAC3C,MAAM,kBAAkB,GAAwB;QAC9C,MAAM,EAAE,IAAI,GAAG,EAAE;QACjB,MAAM,EAAE,IAAI,GAAG,EAAE;QACjB,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,OAAO,EAAE,IAAI,GAAG,EAAE;KACnB,CAAA;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,gBAAgB,GAAG,aAAa,KAAK,SAAS;QAClD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,mBAAmB,CACnB,OAAO,EACP,kBAAkB,EAClB,KAAK,EACL,YAAY,CACb,CAAA;IACH,MAAM,qBAAqB,GAA0B,EAAE,CAAA;IACvD,MAAM,0BAA0B,GAAmB,EAAE,CAAA;IACrD,MAAM,2BAA2B,GAAmB,EAAE,CAAA;IACtD,MAAM,+BAA+B,GAAoC,EAAE,CAAA;IAC3E,MAAM,sBAAsB,GAAmB,EAAE,CAAA;IACjD,KACE,MAAM,MAAM,IAAI,gBAAgB,KAAK,SAAS;QAC5C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,EACpE,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACnC,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;QACvF,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC3C,qBAAqB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC/C,0BAA0B,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;QACxD,2BAA2B,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;QAC1D,+BAA+B,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,qBAAqB,GAAG,gBAAgB,KAAK,SAAS;QACxD,CAAC,CAAC,0BAA0B,CAAS,OAAO,EAAE,KAAiC,CAAC;QAChF,CAAC,CAAC,gCAAgC,CAChC,OAAO,EACP,kBAAkB,EAClB,sBAAsB,CAAC,CAAC,CAEmC,CAC5D,CAAA;IACH,KAAK,MAAM,gBAAgB,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,qBAAqB,GAAG,gCAAgC,CACtD,OAAO,EACP,qBAAqB,EACrB,gBAAsG,CACvG,CAAA;IACH,CAAC;IACD,MAAM,aAAa,GAAwB,qBAAqB,CAAA;IAChE,4BAA4B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,yBAAyB,CAAS,OAAO,EAAE,aAAa,CAAC,CAAA;IAC/E,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACtE,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,gBAAgB,EAAE,QAAQ,IAAI,EAAE,CAAC;QACrC,GAAG,qBAAqB;KACzB,CAAA;IACD,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,gBAAgB,EAAE,YAAY,IAAI,EAAE,CAAC;QACzC,GAAG,0BAA0B;KAC9B,CAAA;IACD,MAAM,aAAa,GAAG;QACpB,GAAG,CAAC,gBAAgB,EAAE,aAAa,IAAI,EAAE,CAAC;QAC1C,GAAG,2BAA2B;KAC/B,CAAA;IACD,MAAM,KAAK,GAAG,mBAAmB,CAC/B,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,OAAO,CACR,CAAA;IACD,MAAM,OAAO,GAAG,MAAM,CACpB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EACnB,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,YAAY,CAAmC,EAC1E,CAAC,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,EAC1C,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,GAAG,+BAA+B,CAAC;YAClF,QAAQ,EAAE,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,GAAG,qBAAqB,CAAC;YAClE,YAAY,EAAE;gBACZ,GAAG,gBAAgB,CAAC,YAAY;gBAChC,GAAG,0BAA0B;aACY;YAC3C,aAAa,EAAE,CAAC,GAAG,gBAAgB,CAAC,aAAa,EAAE,GAAG,2BAA2B,CAAC;YAClF,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,KAAK;SACf,CAAC,CACH,CAAA;IAED,MAAM,OAAO,GAAG;QACd,aAAa;QACb,iBAAiB;QACjB,KAAK,EAAE,yBAAyB,CAAS,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;QAC/D,QAAQ,EAAE;YACR,GAAG,QAAQ;YACX,GAAG,OAAO,CAAC,QAAQ;SACpB;QACD,aAAa,EAAE,OAAO,CAAC,aAAqD;QAC5E,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,yBAAyB,CAAS,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;YAC3D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;KACJ,CAAA;IACD,OAAO,OAAO,CAAC,IAAI;QACjB,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAa,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QAC7D,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAc,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAcrB,OAaC,EACD,KAA+B,EACe,EAAE;IAChD,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,aAAa,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAyC,EAAE,CAAA;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAA;IACnC,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;QAC7D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACb,IAAI,CAAC,IAAI,CAAC,GAAoC,CAAC,CAAA;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAchB,OAA8G,EAC9G,KAA0B,EAC1B,KAAqC,EACrC,UAAoE,EACpE,EAAE;IACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,KAAK;YACX,KAAK;YACL,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,KAAK;SACf,CAAA;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,iCAAiC,CAAC,UAAU,CAAC,CAAA;IACtE,MAAM,oBAAoB,GAA+E,EAAE,CAAA;IAC3G,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,oBAAoB,CAAC,IAAI,CACvB,0BAA0B,CACxB,OAAO,EACP,KAAK,EACL,SAAS,CACV,CACF,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,4BAA4B,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;IAC/E,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACxE,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;QACpE;YACE,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU;YACvC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO;YACrC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO;YAChD,MAAM,EAAE,UAAU,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAC9G,cAAc,EAAE,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC;SACnG;QACD,GAAG,UAAU,CAAC,iBAAiB;KAChC,CAAC,CAAA;IACF,IAAI,oBAAoB,GAAG,KAAK,CAAA;IAChC,0EAA0E;IAC1E,yEAAyE;IACzE,uEAAuE;IACvE,kEAAkE;IAClE,0DAA0D;IAC1D,MAAM,sBAAsB,GAAG;QAC7B,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAChE,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;KAChE,CAAA;IACD,KAAK,MAAM,UAAU,IAAI,sBAAsB,EAAE,CAAC;QAChD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACpC,oBAAoB,GAAG,gCAAgC,CACrD,OAAO,EACP,oBAAoB,EACpB,UAAU,CAAC,MAAM,CAClB,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACpE,MAAM,iBAAiB,GAAG,iBAAiB;SACxC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,sBAAsB,GAAG,iBAAiB;SAC7C,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,uBAAuB,GAAG,iBAAiB;SAC9C,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;IAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,oBAAoB;YAC1B,KAAK;YACL,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE,iBAAiB;YAC3B,YAAY,EAAE,sBAAsB;YACpC,aAAa,EAAE,uBAAuB;YACtC,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,KAAK;SACf,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IACzG,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;IAC5G,oBAAoB,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAA;IACtF,MAAM,IAAI,GAAG,mBAAmB,CAC9B,OAAO,EACP,KAAK,EACL,SAAS,EACT,KAAK,EACL,MAAM,CACP,CAAA;IACD,MAAM,KAAK,GAAG,mBAAmB,CAC/B,OAAO,EACP,oBAAoB,EACpB,UAAU,EACV,KAAK,EACL,OAAO,CACR,CAAA;IAED,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,KAAK;QACL,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,iBAAiB,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;QACrE,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,sBAAsB,EAAE,GAAG,KAAK,CAAC,YAAY,CAEpF;QACD,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,uBAAuB,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC1F,SAAS;QACT,UAAU;QACV,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAab,OAA8G,EAC9G,KAA0B,EAC1B,KAAqC,EACrC,QAA+B,EAC/B,YAA4C,EAC5C,aAA6B,EAC7B,UAAoF,EACpF,EAAE;IACF,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,IAAI,eAAe,GAAG,IAAI,CAAA;IAC1B,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,iBAAiB,GAAG,KAAK,CAAA;IAC7B,IAAI,WAAW,GAAuB,SAAS,CAAA;IAC/C,MAAM,kBAAkB,GAA+D,EAAE,CAAA;IAEzF,OAAO,IAAI,EAAE,CAAC;QACZ,UAAU,IAAI,CAAC,CAAA;QACf,IAAI,UAAU,GAAG,sBAAsB,EAAE,CAAC;YACxC,MAAM,IAAI,uBAAuB,CAAC;gBAChC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBACjD,aAAa,EAAE,sBAAsB;aACtC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QAChF,YAAY,GAAG,SAAS,CAAC,aAAa,CAAA;QACtC,kBAAkB,CAAC,IAAI,CACrB,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CACzG,CAAA;QACD,OAAO,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9F,kBAAkB,CAAC,KAAK,EAAE,CAAA;QAC5B,CAAC;QACD,MAAM,IAAI,GAAG,qBAAqB,CAChC,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAG,CAAC,CACrE,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAsE,SAAS,CAC3F,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,IAAI,CACL,CAAA;YACD,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACnC,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;YAC3C,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;YAC7C,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACzB,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAA;YAC5B,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAA;YAClC,SAAQ;QACV,CAAC;QACD,IAAI,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YAC/C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;YAC7F,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAA;YACxB,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAW,CAAA;YACtD,MAAK;QACP,CAAC;QAED,MAAM,MAAM,GAAG,eAAe;YAC5B,CAAC,CAAC,uBAAuB,CAA8B,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC;YAC3F,CAAC,CAAC,EAAE,CAAA;QACN,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,UAAU,GAAsE,SAAS,CAC7F,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,MAAM,CACP,CAAA;YACD,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;YACrC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;YAC7C,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;YAC/C,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC3B,YAAY,GAAG,UAAU,CAAC,IAAI,CAAA;YAC9B,eAAe,GAAG,UAAU,CAAC,OAAO,CAAA;YACpC,SAAQ;QACV,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAA;QACvD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,MAAK;QACP,CAAC;QACD,gBAAgB,IAAI,CAAC,CAAA;QAErB,8EAA8E;QAC9E,sEAAsE;QACtE,MAAM,WAAW,GAAG,gBAAgB,CAAA;QACpC,YAAY,GAAG,WAAW,CAAA;QAC1B,MAAM,gBAAgB,GAAG,sBAAsB,CAC7C,OAAO,EACP,YAAY,EACZ,WAAwE,CACzE,CAAA;QACD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,eAAe,GAAG,IAAI,CAAA;YACtB,SAAQ;QACV,CAAC;QACD,MAAM,UAAU,GAAG,SAAS,CAC1B,OAAO,EACP,YAAY,EACZ,WAAW,EACX,gBAAgB,CACjB,CAAA;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QACrC,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;QAC7C,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;QAC/C,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC3B,YAAY,GAAG,UAAU,CAAC,IAAI,CAAA;QAC9B,eAAe,GAAG,IAAI,CAAA;IACxB,CAAC;IAED,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,YAAY;QAClB,QAAQ;QACR,aAAa;QACb,UAAU;KACX,CAAA;IACD,OAAO,iBAAiB;QACtB,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAa,EAAE,MAAM,EAAE,WAAqB,EAAE;QACnE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAc,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAa7B,OAA8G,EAC9G,aAAkC,EAClC,KAA8B,EAC9B,EAAE;IACF,MAAM,YAAY,GAAG,eAAe,CAAS,OAAO,EAAE,KAAK,CAAC,CAAA;IAC5D,IAAI,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;QACjF,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,CAAA;QAC1D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;QAC7F,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,aAAa;YAC7B,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,EAAE;YACjB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,IAAa;YACnB,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAW;SAC5D,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,sBAAsB,CACvC,OAAO,EACP,aAAa,EACb,YAAyE,CAC1E,CAAA;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,EAAE;YACjB,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,KAAc;YACpB,MAAM,EAAE,SAAS;SAClB,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CACpB,OAAO,EACP,aAAa,EACb,YAAY,EACZ,UAAU,CACX,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;IAC3C,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;AACpG,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAOxB,OAAoB,EACpB,OAAgE,EACF,EAAE;IAChE,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,yBAAyB,CAAS,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;QAC9D,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,yBAAyB,CAAS,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;YAC3D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;KACJ,CAAA;IACD,OAAO,OAAO,CAAC,IAAI;QACjB,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QACpD,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAahB,OAA8G,EAC9G,KAA+B,EAC/B,KAA8B,EAC9B,EAAE;IACF,MAAM,aAAa,GAAG,0BAA0B,CAAS,OAAO,EAAE,KAAK,CAAC,CAAA;IACxE,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAA;IACrE,OAAO,iBAAiB,CAAgD,OAAO,EAAE,OAAO,CAAC,CAAA;AAC3F,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAA;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAA;AAEvD,MAAM,cAAc,GAAG,CAAI,KAAc,EAAwE,EAAE,CACjH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,YAAY,uBAAuB,IAAI,KAAK,YAAY,wBAAwB;YAC1F,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,OAAoB,EAAE,KAA4B,EAAE,KAAc,EAAE,EAAE,CACzF,cAAc,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAc,EAAE,KAAK,EAAE,KAAY,CAAC,CAAC,CAAA;AAErE,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAoB,EACpB,GAAG,IAA4B,EACwD,EAAE,CACzF,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,GAAG,EAAE,CAAE,eAAuB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACrD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,KAAK,YAAY,uBAAuB,IAAI,KAAK,YAAY,wBAAwB;YAC1F,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACnD,CAAC;CACF,CAAC,CAAA"}
@@ -1,16 +1,22 @@
1
1
  /**
2
2
  * Internal machine process integration.
3
3
  *
4
- * @since 4.0.0
4
+ * @since 0.4.0
5
5
  */
6
6
  import * as Effect from "effect/Effect";
7
7
  import type * as Schema from "effect/Schema";
8
- import type { ActionError, ExecutionServices, Machine, Runtime } from "../Machine.js";
9
- import type { InfiniteTransitionError, MachineSchemaDecodeError, StartupError, StoppedError } from "./machineErrors.js";
10
- import * as internalRuntime from "./machineRuntime.js";
8
+ import type { ActionError, ExecutionServices, Machine, Runtime } from "../../Machine.js";
9
+ import { InfiniteTransitionError, MachineSchemaDecodeError, StartupError } from "./errors.js";
10
+ import type { StoppedError } from "./errors.js";
11
+ import * as internalRuntime from "./runtime.js";
11
12
  type IsAny<A> = 0 extends (1 & A) ? true : false;
12
13
  type ExcludeCompatibleRuntime<Requirements, Events, Emits> = Requirements extends Runtime.Requirement<infer RequiredEvents, infer RequiredEmits> ? IsAny<Requirements> extends true ? Requirements : [RequiredEvents] extends [Events] ? [RequiredEmits] extends [Emits] ? never : Requirements : Requirements : Requirements;
13
14
  export declare const toProcessLogic: <const States extends Machine.StateSchemas, const Events extends ReadonlyArray<Machine.TaggedSchema>, const Emits extends ReadonlyArray<Machine.TaggedSchema> = readonly [], const Input extends Schema.Top = typeof Schema.Void, UnhandledStates extends Machine.StateIdentifier<States> = Machine.StateIdentifier<States>, E = never, R = never, InitialE = never, InitialR = never, FinalStates extends Machine.StateIdentifier<States> = never, Output = never>(machine: Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits>, ...args: [...Machine.InputArgs<Input>]) => internalRuntime.ProcessLogic<Machine.Snapshot<States>, Machine.EventOf<Events>, E | ActionError<R> | InfiniteTransitionError | MachineSchemaDecodeError | StoppedError, ExcludeCompatibleRuntime<Exclude<ExecutionServices<InitialR | R>, internalRuntime.MachineRuntime>, Machine.EventOf<Events>, Machine.EmitOf<Emits>>, Output, InitialE | E | ActionError<InitialR | R> | InfiniteTransitionError | MachineSchemaDecodeError | StartupError | StoppedError>;
15
+ /** @internal Test-only runtime strategy selection for a fresh machine. */
16
+ export declare const startWithRuntimeStrategyForTesting: (machine: Machine.Any, strategy: internalRuntime.ProcessRuntimeStrategy, ...args: ReadonlyArray<unknown>) => Effect.Effect<internalRuntime.MachineRef<any, any, any, any>, any, any>;
17
+ /** @internal Test-only runtime strategy selection for a resumed machine. */
18
+ export declare const resumeWithRuntimeStrategyForTesting: (machine: Machine.Any, snapshot: Machine.Snapshot<any>, strategy: internalRuntime.ProcessRuntimeStrategy) => Effect.Effect<internalRuntime.MachineRef<any, any, any, any>, any, any>;
14
19
  export declare const start: <const States extends Machine.StateSchemas, const Events extends ReadonlyArray<Machine.TaggedSchema>, const Emits extends ReadonlyArray<Machine.TaggedSchema> = readonly [], const Input extends Schema.Top = typeof Schema.Void, UnhandledStates extends Machine.StateIdentifier<States> = Machine.StateIdentifier<States>, E = never, R = never, InitialE = never, InitialR = never, FinalStates extends Machine.StateIdentifier<States> = never, Output = never>(machine: Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits>, ...args: [...Machine.InputArgs<Input>]) => Effect.Effect<internalRuntime.MachineRef<Machine.Snapshot<States>, Machine.EventOf<Events>, E | ActionError<R> | InfiniteTransitionError | MachineSchemaDecodeError | StoppedError, Output>, InitialE | E | ActionError<InitialR | R> | InfiniteTransitionError | MachineSchemaDecodeError | StartupError | StoppedError, ExcludeCompatibleRuntime<Exclude<ExecutionServices<InitialR | R>, internalRuntime.MachineRuntime>, Machine.EventOf<Events>, Machine.EmitOf<Emits>>>;
20
+ export declare const resume: <const States extends Machine.StateSchemas, const Events extends ReadonlyArray<Machine.TaggedSchema>, const Emits extends ReadonlyArray<Machine.TaggedSchema> = readonly [], const Input extends Schema.Top = typeof Schema.Void, UnhandledStates extends Machine.StateIdentifier<States> = Machine.StateIdentifier<States>, E = never, R = never, InitialE = never, InitialR = never, FinalStates extends Machine.StateIdentifier<States> = never, Output = never>(machine: Machine<States, Events, Input, UnhandledStates, E, R, InitialE, InitialR, FinalStates, Output, Emits>, snapshot: Machine.Snapshot<States>) => Effect.Effect<internalRuntime.MachineRef<Machine.Snapshot<States>, Machine.EventOf<Events>, E | ActionError<R> | InfiniteTransitionError | MachineSchemaDecodeError | StoppedError, Output>, MachineSchemaDecodeError, ExcludeCompatibleRuntime<Exclude<ExecutionServices<R>, internalRuntime.MachineRuntime>, Machine.EventOf<Events>, Machine.EmitOf<Emits>>>;
15
21
  export {};
16
- //# sourceMappingURL=machineProcess.d.ts.map
22
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/internal/machine/process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,498 @@
1
+ /**
2
+ * Internal machine process integration.
3
+ *
4
+ * @since 0.4.0
5
+ */
6
+ import * as Cause from "effect/Cause";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Option from "effect/Option";
9
+ import * as CommandRuntime from "./commandRuntime.js";
10
+ import * as Configuration from "./configuration.js";
11
+ import { InfiniteTransitionError, MachineSchemaDecodeError, StartupError } from "./errors.js";
12
+ import * as ExecutionPlan from "./executionPlan.js";
13
+ import * as Invocation from "./invocation.js";
14
+ import * as internalPlanner from "./planner.js";
15
+ import * as internalRuntime from "./runtime.js";
16
+ import * as Serialization from "./serialization.js";
17
+ const runSequentialDiscard = (effects) => effects.length === 0
18
+ ? Effect.void
19
+ : effects.length === 1
20
+ ? effects[0]
21
+ : Effect.all(effects, { discard: true });
22
+ const acknowledgedPlan = (planned, snapshot) => ({
23
+ next: snapshot(planned.next),
24
+ commands: planned.commands,
25
+ emittedEvents: planned.emittedEvents,
26
+ microsteps: planned.microsteps.map((microstep) => {
27
+ const { transitions: _, ...evidence } = microstep;
28
+ return { ...evidence, next: snapshot(microstep.next) };
29
+ }),
30
+ done: planned.done,
31
+ output: planned.output
32
+ });
33
+ const invokeCapabilityCache = new WeakMap();
34
+ const hasInvokeCapability = (machine) => {
35
+ const cached = invokeCapabilityCache.get(machine);
36
+ if (cached !== undefined) {
37
+ return cached;
38
+ }
39
+ const hasInvokes = Object.values(machine.handlers).some((config) => config.invoke !== undefined);
40
+ invokeCapabilityCache.set(machine, hasInvokes);
41
+ return hasInvokes;
42
+ };
43
+ const makeChildlessCompiledDrain = (machine, checkInitialFinal) => {
44
+ const executionPlan = ExecutionPlan.compileExecutionPlan(machine);
45
+ return (context) => {
46
+ let current = context.state();
47
+ if (checkInitialFinal && internalPlanner.isFinalState(machine, current)) {
48
+ return internalPlanner.getFinalOutputEffect(machine, current, internalPlanner.InitialEvent).pipe(Effect.map(Option.some));
49
+ }
50
+ let configuration = context.executionState;
51
+ let liveRuntime;
52
+ let loop;
53
+ loop = Effect.suspend(() => {
54
+ const pending = context.pollMessage();
55
+ if (Option.isNone(pending)) {
56
+ context.executionState = undefined;
57
+ return Effect.succeed(Option.none());
58
+ }
59
+ const message = pending.value;
60
+ const acknowledged = internalRuntime.isAcknowledgedMessage(message);
61
+ const event = acknowledged ? message.event : message;
62
+ const before = current;
63
+ let planned;
64
+ try {
65
+ planned = executionPlan.plan(configuration ?? executionPlan.fromConfiguration(Configuration.normalizeConfigurationSync(machine, current)), event, acknowledged);
66
+ }
67
+ catch (error) {
68
+ return error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError
69
+ ? Effect.fail(error)
70
+ : Effect.die(error);
71
+ }
72
+ configuration = planned.next;
73
+ context.executionState = configuration;
74
+ if (planned.microsteps.length === 0) {
75
+ if (acknowledged) {
76
+ context.completeMessage({ before, plan: acknowledgedPlan(planned, executionPlan.snapshot), after: current });
77
+ }
78
+ return loop;
79
+ }
80
+ const next = executionPlan.snapshot(planned.next);
81
+ const beforeCommit = planned.commands.length === 0
82
+ ? undefined
83
+ : CommandRuntime.runCommands(planned.commands, context.scope);
84
+ const afterCommit = planned.emittedEvents.length === 0
85
+ ? undefined
86
+ : CommandRuntime.runEmittedEvents(planned.emittedEvents, liveRuntime ??= CommandRuntime.makeLiveRuntime(machine, context.scope));
87
+ const commit = () => {
88
+ const notification = context.commit(next);
89
+ current = next;
90
+ return notification;
91
+ };
92
+ const continueAfterCommit = () => {
93
+ const continued = Effect.suspend(() => {
94
+ if (acknowledged) {
95
+ context.completeMessage({ before, plan: acknowledgedPlan(planned, executionPlan.snapshot), after: next });
96
+ }
97
+ return planned.done ? Effect.succeed(Option.some(planned.output)) : loop;
98
+ });
99
+ return afterCommit === undefined ? continued : afterCommit.pipe(Effect.andThen(continued));
100
+ };
101
+ const commitAndContinue = () => {
102
+ const notification = commit();
103
+ const continued = continueAfterCommit();
104
+ const effect = notification === undefined ? continued : notification.pipe(Effect.andThen(continued));
105
+ return notification === undefined && afterCommit === undefined
106
+ ? effect
107
+ : context.runAfterChanges(effect);
108
+ };
109
+ if (beforeCommit === undefined) {
110
+ return commitAndContinue();
111
+ }
112
+ return context.runAfterChanges(beforeCommit.pipe(Effect.andThen(Effect.suspend(commitAndContinue))));
113
+ });
114
+ return internalRuntime.provideMachineRuntime(loop, context.scope);
115
+ };
116
+ };
117
+ class InvokeExecutionState {
118
+ initialized = false;
119
+ initial;
120
+ constructor(initial) {
121
+ this.initial = initial;
122
+ }
123
+ }
124
+ const makeInvokingCompiledDrain = (machine, checkInitialFinal) => {
125
+ const executionPlan = ExecutionPlan.compileExecutionPlan(machine);
126
+ return (context) => {
127
+ let current = context.state();
128
+ if (checkInitialFinal && internalPlanner.isFinalState(machine, current)) {
129
+ return internalPlanner.getFinalOutputEffect(machine, current, internalPlanner.InitialEvent).pipe(Effect.map(Option.some));
130
+ }
131
+ const scope = context.scope;
132
+ const stored = context.executionState;
133
+ const execution = stored instanceof InvokeExecutionState
134
+ ? stored
135
+ : new InvokeExecutionState();
136
+ context.executionState = execution;
137
+ let liveRuntime;
138
+ let configuration;
139
+ let loop;
140
+ loop = Effect.suspend(() => {
141
+ const pending = context.pollMessage();
142
+ if (Option.isNone(pending)) {
143
+ configuration = undefined;
144
+ return Effect.succeed(Option.none());
145
+ }
146
+ const message = pending.value;
147
+ const acknowledged = internalRuntime.isAcknowledgedMessage(message);
148
+ const event = acknowledged ? message.event : message;
149
+ const before = current;
150
+ let planned;
151
+ try {
152
+ planned = executionPlan.plan(configuration ??
153
+ executionPlan.fromConfiguration(Configuration.normalizeConfigurationSync(machine, current)), event, acknowledged);
154
+ }
155
+ catch (error) {
156
+ return error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError
157
+ ? Effect.fail(error)
158
+ : Effect.die(error);
159
+ }
160
+ configuration = planned.next;
161
+ if (planned.microsteps.length === 0) {
162
+ if (acknowledged) {
163
+ context.completeMessage({ before, plan: acknowledgedPlan(planned, executionPlan.snapshot), after: current });
164
+ }
165
+ return loop;
166
+ }
167
+ const changed = planned.microsteps.some((step) => step.changed);
168
+ const exitPaths = changed ? planned.microsteps.flatMap((step) => step.exitPaths) : [];
169
+ const entryEvents = new Map();
170
+ if (changed) {
171
+ for (const step of planned.microsteps) {
172
+ if (step.changed) {
173
+ for (const path of step.entryPaths) {
174
+ entryEvents.set(path, step.event);
175
+ }
176
+ }
177
+ }
178
+ }
179
+ const activeConfiguration = executionPlan.toConfiguration(planned.next);
180
+ const next = executionPlan.snapshot(planned.next);
181
+ const beforeCommit = [];
182
+ if (planned.commands.length > 0) {
183
+ beforeCommit.push(CommandRuntime.runCommands(planned.commands, scope));
184
+ }
185
+ if (changed) {
186
+ const stopping = context.ownedChildren.stopPaths(exitPaths);
187
+ if (stopping !== undefined)
188
+ beforeCommit.push(stopping);
189
+ }
190
+ const afterCommit = [];
191
+ if (planned.emittedEvents.length > 0) {
192
+ afterCommit.push(CommandRuntime.runEmittedEvents(planned.emittedEvents, liveRuntime ??= CommandRuntime.makeLiveRuntime(machine, scope)));
193
+ }
194
+ if (planned.done) {
195
+ afterCommit.push(context.ownedChildren.stopAll());
196
+ }
197
+ else if (changed) {
198
+ for (const [path, entryEvent] of entryEvents) {
199
+ const starting = Invocation.startAll(machine, scope, context.ownedChildren, activeConfiguration, [path], entryEvent);
200
+ if (starting !== undefined)
201
+ afterCommit.push(starting);
202
+ }
203
+ }
204
+ const commit = () => {
205
+ const notification = context.commit(next);
206
+ current = next;
207
+ return notification;
208
+ };
209
+ const continueAfterCommit = () => {
210
+ const continued = Effect.suspend(() => {
211
+ if (acknowledged) {
212
+ context.completeMessage({ before, plan: acknowledgedPlan(planned, executionPlan.snapshot), after: next });
213
+ }
214
+ return planned.done ? Effect.succeed(Option.some(planned.output)) : loop;
215
+ });
216
+ return afterCommit.length === 0
217
+ ? continued
218
+ : runSequentialDiscard(afterCommit).pipe(Effect.andThen(continued));
219
+ };
220
+ const commitAndContinue = () => {
221
+ const notification = commit();
222
+ const continued = continueAfterCommit();
223
+ const effect = notification === undefined ? continued : notification.pipe(Effect.andThen(continued));
224
+ return notification === undefined && afterCommit.length === 0
225
+ ? effect
226
+ : context.runAfterChanges(effect);
227
+ };
228
+ if (beforeCommit.length === 0) {
229
+ return commitAndContinue();
230
+ }
231
+ return context.runAfterChanges(runSequentialDiscard(beforeCommit).pipe(Effect.andThen(Effect.suspend(commitAndContinue))));
232
+ });
233
+ const initialize = () => {
234
+ if (execution.initialized) {
235
+ return loop;
236
+ }
237
+ const seeded = execution.initial;
238
+ const initialConfiguration = seeded?.activeConfiguration ??
239
+ Configuration.normalizeConfigurationSync(machine, current);
240
+ configuration = seeded?.configuration ?? executionPlan.fromConfiguration(initialConfiguration);
241
+ const starting = Invocation.startAll(machine, scope, context.ownedChildren, initialConfiguration, seeded?.entryPaths ?? Configuration.getInitialEntryPaths(machine, initialConfiguration), internalPlanner.InitialEvent);
242
+ execution.initial = undefined;
243
+ execution.initialized = true;
244
+ return starting === undefined ? loop : starting.pipe(Effect.andThen(loop));
245
+ };
246
+ return internalRuntime.provideMachineRuntime(Effect.suspend(initialize), scope);
247
+ };
248
+ };
249
+ const makeProcessLogic = (machine, entry) => {
250
+ const hasInvokes = hasInvokeCapability(machine);
251
+ const executionPlan = ExecutionPlan.compileExecutionPlan(machine);
252
+ const initialArgs = entry._tag === "Initial" ? entry.args : [];
253
+ const compiledInitial = entry._tag === "Initial" ? executionPlan.initial : undefined;
254
+ const makeCompiledInitial = compiledInitial === undefined ? undefined : () => {
255
+ try {
256
+ const planned = compiledInitial(initialArgs);
257
+ const result = {
258
+ state: planned.state,
259
+ done: planned.done,
260
+ output: planned.output
261
+ };
262
+ return hasInvokes
263
+ ? {
264
+ ...result,
265
+ executionState: new InvokeExecutionState({
266
+ configuration: planned.configuration,
267
+ activeConfiguration: planned.activeConfiguration,
268
+ entryPaths: planned.initialEntryPaths
269
+ })
270
+ }
271
+ : result;
272
+ }
273
+ catch (error) {
274
+ throw error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError
275
+ ? error
276
+ : new StartupError({ cause: Cause.die(error) });
277
+ }
278
+ };
279
+ const makeInitial = (scope) => compiledInitial === undefined
280
+ ? internalRuntime.provideMachineRuntime(internalPlanner.planInitial(machine, ...initialArgs).pipe(Effect.flatMap((planned) => {
281
+ const commands = planned.commands.length === 0
282
+ ? undefined
283
+ : CommandRuntime.runCommands(planned.commands, scope);
284
+ const emitted = planned.emittedEvents.length === 0
285
+ ? undefined
286
+ : CommandRuntime.runEmittedEvents(planned.emittedEvents, CommandRuntime.makeLiveRuntime(machine, scope));
287
+ const result = Effect.succeed({
288
+ state: planned.state,
289
+ done: planned.done,
290
+ output: planned.output
291
+ });
292
+ return commands === undefined
293
+ ? emitted === undefined ? result : emitted.pipe(Effect.andThen(result))
294
+ : emitted === undefined
295
+ ? commands.pipe(Effect.andThen(result))
296
+ : commands.pipe(Effect.andThen(emitted), Effect.andThen(result));
297
+ })), scope)
298
+ : Effect.try({ try: makeCompiledInitial, catch: (error) => error });
299
+ return ({
300
+ execution: {
301
+ _tag: "Compiled",
302
+ childless: !hasInvokes,
303
+ initial: entry._tag === "Initial" ? makeInitial : undefined,
304
+ initialSync: makeCompiledInitial,
305
+ drain: {
306
+ _tag: "Owned",
307
+ run: hasInvokes
308
+ ? makeInvokingCompiledDrain(machine, entry._tag === "Resume")
309
+ : makeChildlessCompiledDrain(machine, entry._tag === "Resume")
310
+ }
311
+ },
312
+ initial: (scope) => entry._tag === "Resume"
313
+ ? internalRuntime.provideMachineRuntime(Serialization.normalizeSnapshotEffect(machine, entry.snapshot), scope)
314
+ : makeInitial(scope).pipe(Effect.map((initialized) => initialized.state)),
315
+ run: (context) => internalRuntime.provideMachineRuntime(Effect.gen(function* () {
316
+ const { completeMessage, pollMessage, receiveMessage, state, setState } = context;
317
+ if (completeMessage === undefined || pollMessage === undefined || receiveMessage === undefined) {
318
+ return yield* Effect.die(new Error("Machine statechart started without acknowledged mailbox access"));
319
+ }
320
+ let terminal;
321
+ let current = yield* state;
322
+ if (internalPlanner.isFinalState(machine, current)) {
323
+ return yield* internalPlanner.getFinalOutputEffect(machine, current, internalPlanner.InitialEvent);
324
+ }
325
+ if (!hasInvokes) {
326
+ // A queued batch is produced entirely by this worker, so its
327
+ // configuration is already validated. Drop both caches before
328
+ // blocking again so idle machines retain only the public snapshot.
329
+ // Keeping the loop in this generator avoids a suspended generator
330
+ // per iteration; every iteration still crosses Effect boundaries,
331
+ // so the Effect scheduler remains responsible for cooperative yield.
332
+ let configuration;
333
+ let pendingMessage = Option.none();
334
+ let liveRuntime;
335
+ while (terminal === undefined) {
336
+ const message = Option.isSome(pendingMessage) ? pendingMessage.value : yield* receiveMessage;
337
+ pendingMessage = Option.none();
338
+ const acknowledged = internalRuntime.isAcknowledgedMessage(message);
339
+ const event = acknowledged ? message.event : message;
340
+ const before = current;
341
+ let planned;
342
+ try {
343
+ planned = internalPlanner.planConfiguration(machine, configuration ?? Configuration.normalizeConfigurationSync(machine, current), event);
344
+ }
345
+ catch (error) {
346
+ if (error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError) {
347
+ return yield* error;
348
+ }
349
+ throw error;
350
+ }
351
+ configuration = planned.next;
352
+ if (planned.microsteps.length > 0) {
353
+ const next = Configuration.snapshotFromConfiguration(machine, planned.next);
354
+ yield* CommandRuntime.runCommands(planned.commands, context);
355
+ yield* setState(next);
356
+ current = next;
357
+ if (planned.emittedEvents.length > 0) {
358
+ yield* CommandRuntime.runEmittedEvents(planned.emittedEvents, liveRuntime ??= CommandRuntime.makeLiveRuntime(machine, context));
359
+ }
360
+ if (planned.done) {
361
+ terminal = { output: planned.output };
362
+ }
363
+ }
364
+ if (acknowledged) {
365
+ completeMessage({
366
+ before,
367
+ plan: acknowledgedPlan(planned, (state) => Configuration.snapshotFromConfiguration(machine, state)),
368
+ after: current
369
+ });
370
+ }
371
+ if (terminal === undefined) {
372
+ pendingMessage = yield* pollMessage;
373
+ if (Option.isNone(pendingMessage)) {
374
+ configuration = undefined;
375
+ }
376
+ }
377
+ }
378
+ if (terminal === undefined) {
379
+ return yield* Effect.die(new Error("Machine process stopped receiving events before reaching a terminal configuration"));
380
+ }
381
+ return terminal.output;
382
+ }
383
+ // The execution descriptor requests this owner-local capability only
384
+ // when an invoking statechart is deliberately run by the generic
385
+ // reference strategy.
386
+ const ownedChildren = context.ownedChildren;
387
+ if (ownedChildren === undefined) {
388
+ return yield* Effect.die(new Error("Invoking statechart started without an owned child runtime"));
389
+ }
390
+ const startInvokes = (configuration, paths, event) => (Invocation.startAll(machine, context, ownedChildren, configuration, paths, event) ?? Effect.void);
391
+ const stopInvokes = (paths) => ownedChildren.stopPaths(paths) ?? Effect.void;
392
+ return yield* Effect.gen(function* () {
393
+ let configuration = yield* Configuration
394
+ .normalizeConfigurationEffect(machine, current);
395
+ yield* startInvokes(configuration, Configuration.getInitialEntryPaths(machine, configuration), internalPlanner.InitialEvent);
396
+ // As above, keep the normalized configuration only while this
397
+ // worker can continue draining an already queued batch.
398
+ configuration = undefined;
399
+ let pendingMessage = Option.none();
400
+ let liveRuntime;
401
+ // Match the compact non-invoke loop while retaining state-scoped
402
+ // child lifecycle work at the same ordered Effect boundaries.
403
+ while (terminal === undefined) {
404
+ const message = Option.isSome(pendingMessage) ? pendingMessage.value : yield* receiveMessage;
405
+ pendingMessage = Option.none();
406
+ const acknowledged = internalRuntime.isAcknowledgedMessage(message);
407
+ const event = acknowledged ? message.event : message;
408
+ const before = current;
409
+ let planned;
410
+ try {
411
+ planned = internalPlanner.planConfiguration(machine, configuration ?? Configuration.normalizeConfigurationSync(machine, current), event);
412
+ }
413
+ catch (error) {
414
+ if (error instanceof InfiniteTransitionError || error instanceof MachineSchemaDecodeError) {
415
+ return yield* error;
416
+ }
417
+ throw error;
418
+ }
419
+ configuration = planned.next;
420
+ if (planned.microsteps.length > 0) {
421
+ const changed = planned.microsteps.some((step) => step.changed);
422
+ const exitPaths = planned.microsteps.flatMap((step) => step.exitPaths);
423
+ const entryEvents = new Map();
424
+ for (const step of planned.microsteps) {
425
+ if (step.changed) {
426
+ for (const path of step.entryPaths) {
427
+ entryEvents.set(path, step.event);
428
+ }
429
+ }
430
+ }
431
+ const next = Configuration.snapshotFromConfiguration(machine, planned.next);
432
+ yield* CommandRuntime.runCommands(planned.commands, context);
433
+ if (changed) {
434
+ yield* stopInvokes(exitPaths);
435
+ }
436
+ yield* setState(next);
437
+ current = next;
438
+ if (planned.emittedEvents.length > 0) {
439
+ yield* CommandRuntime.runEmittedEvents(planned.emittedEvents, liveRuntime ??= CommandRuntime.makeLiveRuntime(machine, context));
440
+ }
441
+ if (planned.done) {
442
+ terminal = { output: planned.output };
443
+ yield* ownedChildren.stopAll();
444
+ }
445
+ else if (changed) {
446
+ for (const [path, entryEvent] of entryEvents) {
447
+ yield* startInvokes(planned.next, [path], entryEvent);
448
+ }
449
+ }
450
+ }
451
+ if (acknowledged) {
452
+ completeMessage({
453
+ before,
454
+ plan: acknowledgedPlan(planned, (state) => Configuration.snapshotFromConfiguration(machine, state)),
455
+ after: current
456
+ });
457
+ }
458
+ if (terminal === undefined) {
459
+ pendingMessage = yield* pollMessage;
460
+ if (Option.isNone(pendingMessage)) {
461
+ configuration = undefined;
462
+ }
463
+ }
464
+ }
465
+ if (terminal === undefined) {
466
+ return yield* Effect.die(new Error("Machine process stopped receiving events before reaching a terminal configuration"));
467
+ }
468
+ return terminal.output;
469
+ }).pipe(Effect.onExit(() => ownedChildren.stopAll()));
470
+ }), context)
471
+ });
472
+ };
473
+ const initialProcessLogicCache = new WeakMap();
474
+ export const toProcessLogic = (machine, ...args) => {
475
+ if (args.length > 0) {
476
+ return makeProcessLogic(machine, { _tag: "Initial", args });
477
+ }
478
+ // The execution descriptor stores process-local invoke sessions by each
479
+ // runtime address and evaluates initialization/services on every start. A
480
+ // zero-argument descriptor is therefore safe to share for the lifetime of
481
+ // its immutable machine definition. Input-bearing and resumed starts retain
482
+ // their instance-specific entry values below.
483
+ const cached = initialProcessLogicCache.get(machine);
484
+ if (cached !== undefined) {
485
+ return cached;
486
+ }
487
+ const logic = makeProcessLogic(machine, { _tag: "Initial", args });
488
+ initialProcessLogicCache.set(machine, logic);
489
+ return logic;
490
+ };
491
+ const toResumedProcessLogic = (machine, snapshot) => makeProcessLogic(machine, { _tag: "Resume", snapshot });
492
+ /** @internal Test-only runtime strategy selection for a fresh machine. */
493
+ export const startWithRuntimeStrategyForTesting = (machine, strategy, ...args) => internalRuntime.startProcessWithStrategyForTesting(toProcessLogic(machine, ...args), strategy, machine.id === undefined ? undefined : { id: machine.id });
494
+ /** @internal Test-only runtime strategy selection for a resumed machine. */
495
+ export const resumeWithRuntimeStrategyForTesting = (machine, snapshot, strategy) => internalRuntime.startProcessWithStrategyForTesting(toResumedProcessLogic(machine, snapshot), strategy, machine.id === undefined ? undefined : { id: machine.id });
496
+ export const start = (machine, ...args) => internalRuntime.startProcess(toProcessLogic(machine, ...args), machine.id === undefined ? undefined : { id: machine.id });
497
+ export const resume = (machine, snapshot) => internalRuntime.startProcess(toResumedProcessLogic(machine, snapshot), machine.id === undefined ? undefined : { id: machine.id });
498
+ //# sourceMappingURL=process.js.map