@elaraai/east-py-datascience 0.0.2-beta.8 → 0.0.2-beta.80

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 (123) hide show
  1. package/README.md +58 -1
  2. package/dist/src/alns/alns.d.ts +528 -0
  3. package/dist/src/alns/alns.d.ts.map +1 -0
  4. package/dist/src/alns/alns.js +238 -0
  5. package/dist/src/alns/alns.js.map +1 -0
  6. package/dist/src/google_or/google_or.d.ts +2422 -0
  7. package/dist/src/google_or/google_or.d.ts.map +1 -0
  8. package/dist/src/google_or/google_or.js +542 -0
  9. package/dist/src/google_or/google_or.js.map +1 -0
  10. package/dist/{gp → src/gp}/gp.d.ts +185 -136
  11. package/dist/src/gp/gp.d.ts.map +1 -0
  12. package/dist/{gp → src/gp}/gp.js +64 -12
  13. package/dist/src/gp/gp.js.map +1 -0
  14. package/dist/src/index.d.ts +34 -0
  15. package/dist/src/index.d.ts.map +1 -0
  16. package/dist/src/index.js +57 -0
  17. package/dist/src/index.js.map +1 -0
  18. package/dist/src/lightgbm/lightgbm.d.ts +575 -0
  19. package/dist/src/lightgbm/lightgbm.d.ts.map +1 -0
  20. package/dist/{lightgbm → src/lightgbm}/lightgbm.js +104 -18
  21. package/dist/src/lightgbm/lightgbm.js.map +1 -0
  22. package/dist/src/lightning/lightning.d.ts +1594 -0
  23. package/dist/src/lightning/lightning.d.ts.map +1 -0
  24. package/dist/src/lightning/lightning.js +468 -0
  25. package/dist/src/lightning/lightning.js.map +1 -0
  26. package/dist/{mads → src/mads}/mads.d.ts +109 -112
  27. package/dist/src/mads/mads.d.ts.map +1 -0
  28. package/dist/{mads → src/mads}/mads.js +6 -8
  29. package/dist/src/mads/mads.js.map +1 -0
  30. package/dist/src/mapie/mapie.d.ts +3680 -0
  31. package/dist/src/mapie/mapie.d.ts.map +1 -0
  32. package/dist/src/mapie/mapie.js +616 -0
  33. package/dist/src/mapie/mapie.js.map +1 -0
  34. package/dist/{ngboost → src/ngboost}/ngboost.d.ts +192 -142
  35. package/dist/src/ngboost/ngboost.d.ts.map +1 -0
  36. package/dist/{ngboost → src/ngboost}/ngboost.js +67 -14
  37. package/dist/src/ngboost/ngboost.js.map +1 -0
  38. package/dist/src/optimization/optimization.d.ts +420 -0
  39. package/dist/src/optimization/optimization.d.ts.map +1 -0
  40. package/dist/src/optimization/optimization.js +257 -0
  41. package/dist/src/optimization/optimization.js.map +1 -0
  42. package/dist/{optuna → src/optuna}/optuna.d.ts +374 -314
  43. package/dist/src/optuna/optuna.d.ts.map +1 -0
  44. package/dist/{optuna → src/optuna}/optuna.js +2 -0
  45. package/dist/src/optuna/optuna.js.map +1 -0
  46. package/dist/src/pymc/pymc.d.ts +2932 -0
  47. package/dist/src/pymc/pymc.d.ts.map +1 -0
  48. package/dist/src/pymc/pymc.js +688 -0
  49. package/dist/src/pymc/pymc.js.map +1 -0
  50. package/dist/src/scipy/scipy.d.ts +2205 -0
  51. package/dist/src/scipy/scipy.d.ts.map +1 -0
  52. package/dist/src/scipy/scipy.js +884 -0
  53. package/dist/src/scipy/scipy.js.map +1 -0
  54. package/dist/src/shap/shap.d.ts +2988 -0
  55. package/dist/src/shap/shap.d.ts.map +1 -0
  56. package/dist/src/shap/shap.js +500 -0
  57. package/dist/src/shap/shap.js.map +1 -0
  58. package/dist/{simanneal → src/simanneal}/simanneal.d.ts +257 -160
  59. package/dist/src/simanneal/simanneal.d.ts.map +1 -0
  60. package/dist/{simanneal → src/simanneal}/simanneal.js +105 -8
  61. package/dist/src/simanneal/simanneal.js.map +1 -0
  62. package/dist/src/simulation/simulation.d.ts +431 -0
  63. package/dist/src/simulation/simulation.d.ts.map +1 -0
  64. package/dist/src/simulation/simulation.js +306 -0
  65. package/dist/src/simulation/simulation.js.map +1 -0
  66. package/dist/src/sklearn/sklearn.d.ts +6362 -0
  67. package/dist/src/sklearn/sklearn.d.ts.map +1 -0
  68. package/dist/src/sklearn/sklearn.js +1508 -0
  69. package/dist/src/sklearn/sklearn.js.map +1 -0
  70. package/dist/src/torch/torch.d.ts +1205 -0
  71. package/dist/src/torch/torch.d.ts.map +1 -0
  72. package/dist/{torch → src/torch}/torch.js +109 -18
  73. package/dist/src/torch/torch.js.map +1 -0
  74. package/dist/src/types.d.ts +43 -0
  75. package/dist/src/types.d.ts.map +1 -0
  76. package/dist/src/types.js +44 -0
  77. package/dist/src/types.js.map +1 -0
  78. package/dist/src/xgboost/xgboost.d.ts +1424 -0
  79. package/dist/src/xgboost/xgboost.d.ts.map +1 -0
  80. package/dist/src/xgboost/xgboost.js +432 -0
  81. package/dist/src/xgboost/xgboost.js.map +1 -0
  82. package/package.json +12 -12
  83. package/dist/gp/gp.d.ts.map +0 -1
  84. package/dist/gp/gp.js.map +0 -1
  85. package/dist/index.d.ts +0 -27
  86. package/dist/index.d.ts.map +0 -1
  87. package/dist/index.js +0 -41
  88. package/dist/index.js.map +0 -1
  89. package/dist/lightgbm/lightgbm.d.ts +0 -494
  90. package/dist/lightgbm/lightgbm.d.ts.map +0 -1
  91. package/dist/lightgbm/lightgbm.js.map +0 -1
  92. package/dist/mads/mads.d.ts.map +0 -1
  93. package/dist/mads/mads.js.map +0 -1
  94. package/dist/ngboost/ngboost.d.ts.map +0 -1
  95. package/dist/ngboost/ngboost.js.map +0 -1
  96. package/dist/optuna/optuna.d.ts.map +0 -1
  97. package/dist/optuna/optuna.js.map +0 -1
  98. package/dist/scipy/scipy.d.ts +0 -1260
  99. package/dist/scipy/scipy.d.ts.map +0 -1
  100. package/dist/scipy/scipy.js +0 -413
  101. package/dist/scipy/scipy.js.map +0 -1
  102. package/dist/shap/shap.d.ts +0 -657
  103. package/dist/shap/shap.d.ts.map +0 -1
  104. package/dist/shap/shap.js +0 -241
  105. package/dist/shap/shap.js.map +0 -1
  106. package/dist/simanneal/simanneal.d.ts.map +0 -1
  107. package/dist/simanneal/simanneal.js.map +0 -1
  108. package/dist/sklearn/sklearn.d.ts +0 -2691
  109. package/dist/sklearn/sklearn.d.ts.map +0 -1
  110. package/dist/sklearn/sklearn.js +0 -524
  111. package/dist/sklearn/sklearn.js.map +0 -1
  112. package/dist/torch/torch.d.ts +0 -1081
  113. package/dist/torch/torch.d.ts.map +0 -1
  114. package/dist/torch/torch.js.map +0 -1
  115. package/dist/tsconfig.tsbuildinfo +0 -1
  116. package/dist/types.d.ts +0 -80
  117. package/dist/types.d.ts.map +0 -1
  118. package/dist/types.js +0 -81
  119. package/dist/types.js.map +0 -1
  120. package/dist/xgboost/xgboost.d.ts +0 -504
  121. package/dist/xgboost/xgboost.d.ts.map +0 -1
  122. package/dist/xgboost/xgboost.js +0 -177
  123. package/dist/xgboost/xgboost.js.map +0 -1
@@ -0,0 +1,306 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Discrete Event Simulation (DES) — Economic Ontology.
7
+ *
8
+ * Provides a generic priority-queue DES engine grounded in an economic ontology:
9
+ * - R (Resources): user-defined struct representing business state
10
+ * - E (Events): user-defined variant where each case is an economic activity
11
+ * - Process handler: defines how events affect resources (match dispatch)
12
+ *
13
+ * Two entry points:
14
+ * - `simulation_run`: single deterministic run
15
+ * - `simulation_run_trajectories`: Monte Carlo with multiple seeds
16
+ *
17
+ * @packageDocumentation
18
+ */
19
+ import { East, StructType, OptionType, ArrayType, IntegerType, DateTimeType, FunctionType, } from "@elaraai/east";
20
+ // ============================================================================
21
+ // Internal Helper Types
22
+ // ============================================================================
23
+ /**
24
+ * Scheduled event — a date + event pair.
25
+ * Not exported; users construct these inline.
26
+ */
27
+ const ScheduledEventType = StructType({
28
+ date: DateTimeType,
29
+ event: "E",
30
+ });
31
+ /**
32
+ * Handler return type — new state + new events to schedule.
33
+ */
34
+ const ProcessResultType = StructType({
35
+ state: "R",
36
+ events: ArrayType(ScheduledEventType),
37
+ });
38
+ /**
39
+ * Handler function type — (state, date, event) -> ProcessResult.
40
+ */
41
+ const ProcessFnType = FunctionType(["R", DateTimeType, "E"], ProcessResultType);
42
+ // ============================================================================
43
+ // Single Run Types
44
+ // ============================================================================
45
+ /**
46
+ * Configuration for a single simulation run.
47
+ */
48
+ export const SimulationConfigType = StructType({
49
+ /** Safety limit on number of events processed (default: 100000) */
50
+ max_events: OptionType(IntegerType),
51
+ /** Stop processing events after this date */
52
+ end_date: OptionType(DateTimeType),
53
+ });
54
+ /**
55
+ * Result of a single simulation run.
56
+ */
57
+ export const SimulationResultType = StructType({
58
+ /** Final resource state after all events processed */
59
+ final_state: "R",
60
+ /** Number of events processed */
61
+ events_processed: IntegerType,
62
+ /** Date of the last event processed */
63
+ final_date: DateTimeType,
64
+ });
65
+ // ============================================================================
66
+ // Monte Carlo Types
67
+ // ============================================================================
68
+ /**
69
+ * Configuration for Monte Carlo simulation trajectories.
70
+ */
71
+ export const SimulationTrajectoriesConfigType = StructType({
72
+ /** Number of trajectories to run (required) */
73
+ trajectories: IntegerType,
74
+ /** Base RNG seed — trajectory i uses seed + i */
75
+ seed: OptionType(IntegerType),
76
+ /** Safety limit on events per trajectory (default: 100000) */
77
+ max_events: OptionType(IntegerType),
78
+ /** Stop processing events after this date */
79
+ end_date: OptionType(DateTimeType),
80
+ });
81
+ /**
82
+ * Result of Monte Carlo simulation trajectories.
83
+ */
84
+ export const SimulationTrajectoriesResultType = StructType({
85
+ /** Array of per-trajectory results */
86
+ trajectories: ArrayType(StructType({
87
+ /** Final resource state */
88
+ final_state: "R",
89
+ /** Number of events processed */
90
+ events_processed: IntegerType,
91
+ /** Date of last event processed */
92
+ final_date: DateTimeType,
93
+ })),
94
+ });
95
+ // ============================================================================
96
+ // Platform Functions
97
+ // ============================================================================
98
+ /**
99
+ * Run a single deterministic discrete event simulation.
100
+ *
101
+ * Events are processed in chronological order from a priority queue.
102
+ * The handler function dispatches on event type (match) and can
103
+ * mutate state and schedule new events.
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * import { East, StructType, VariantType, FloatType, DateTimeType, variant } from "@elaraai/east";
108
+ * import { Simulation } from "@elaraai/east-py-datascience";
109
+ *
110
+ * const Resources = StructType({ cash: FloatType });
111
+ * const Events = VariantType({ income: FloatType, expense: FloatType });
112
+ *
113
+ * const process = East.function(
114
+ * [Resources, DateTimeType, Events],
115
+ * StructType({ state: Resources, events: ArrayType(StructType({ date: DateTimeType, event: Events })) }),
116
+ * ($, state, date, event) => {
117
+ * return $.return(event.match({
118
+ * income: ($, amount) => $.return({ state: state.spread({ cash: state.cash.add(amount) }), events: [] }),
119
+ * expense: ($, amount) => $.return({ state: state.spread({ cash: state.cash.subtract(amount) }), events: [] }),
120
+ * }));
121
+ * }
122
+ * );
123
+ *
124
+ * const result = $.let(Simulation.run([Resources, Events], initialState, initialEvents, process, config));
125
+ * ```
126
+ */
127
+ export const simulation_run = East.genericPlatform("simulation_run", ["R", "E"], [
128
+ "R", // initial_state
129
+ ArrayType(ScheduledEventType), // initial_events
130
+ ProcessFnType, // process handler
131
+ SimulationConfigType, // config
132
+ ], SimulationResultType);
133
+ /**
134
+ * Run Monte Carlo simulation trajectories.
135
+ *
136
+ * Each trajectory runs the same DES engine with a different RNG seed
137
+ * (base_seed + trajectory_index), enabling stochastic scenario analysis.
138
+ *
139
+ * @example
140
+ * ```ts
141
+ * const result = $.let(Simulation.runTrajectories(
142
+ * [Resources, Events],
143
+ * initialState, initialEvents, stochasticProcess,
144
+ * { trajectories: 100n, seed: variant('some', 42n), max_events: variant('none', null), end_date: variant('none', null) },
145
+ * ));
146
+ * result.trajectories.get(0n).final_state.cash
147
+ * ```
148
+ */
149
+ export const simulation_run_trajectories = East.genericPlatform("simulation_run_trajectories", ["R", "E"], [
150
+ "R", // initial_state
151
+ ArrayType(ScheduledEventType), // initial_events
152
+ ProcessFnType, // process handler
153
+ SimulationTrajectoriesConfigType, // config
154
+ ], SimulationTrajectoriesResultType);
155
+ // ============================================================================
156
+ // Grouped Export
157
+ // ============================================================================
158
+ /**
159
+ * Type definitions for simulation functions.
160
+ */
161
+ export const SimulationTypes = {
162
+ /** Single run configuration */
163
+ ConfigType: SimulationConfigType,
164
+ /** Single run result */
165
+ ResultType: SimulationResultType,
166
+ /** Monte Carlo configuration */
167
+ TrajectoriesConfigType: SimulationTrajectoriesConfigType,
168
+ /** Monte Carlo result */
169
+ TrajectoriesResultType: SimulationTrajectoriesResultType,
170
+ };
171
+ /**
172
+ * Discrete Event Simulation (DES) — REA Economic Ontology.
173
+ *
174
+ * Generic over:
175
+ * - R: Resources (state struct — the economic resource ontology)
176
+ * - E: Events (variant type — the economic event ontology)
177
+ *
178
+ * The handler function uses match dispatch to define economic processes.
179
+ * Each match branch IS a separate economic process. Process-from-process
180
+ * triggering works by returning new events.
181
+ */
182
+ export const Simulation = {
183
+ /**
184
+ * Run a single deterministic discrete event simulation.
185
+ *
186
+ * Events are processed chronologically from a priority queue.
187
+ * The handler function dispatches on event type via match and can
188
+ * mutate state and schedule new events (creating the directed
189
+ * cyclic economic graph).
190
+ *
191
+ * @example
192
+ * ```ts
193
+ * import { East, StructType, VariantType, ArrayType, FloatType, DateTimeType, variant } from "@elaraai/east";
194
+ * import { Simulation, SimulationConfigType } from "@elaraai/east-py-datascience";
195
+ *
196
+ * const Resources = StructType({ cash: FloatType });
197
+ * const Events = VariantType({ income: FloatType, expense: FloatType });
198
+ * const ScheduledEvent = StructType({ date: DateTimeType, event: Events });
199
+ * const ProcessResult = StructType({ state: Resources, events: ArrayType(ScheduledEvent) });
200
+ *
201
+ * const simulate = East.function([], Simulation.Types.ResultType, ($) => {
202
+ * const process = East.function(
203
+ * [Resources, DateTimeType, Events],
204
+ * ProcessResult,
205
+ * ($, state, date, event) => {
206
+ * const empty = $.let([] as const, ArrayType(ScheduledEvent));
207
+ * return $.return(event.match({
208
+ * income: ($, amount) => ({
209
+ * state: { cash: state.cash.add(amount) },
210
+ * events: empty,
211
+ * }),
212
+ * expense: ($, amount) => ({
213
+ * state: { cash: state.cash.subtract(amount) },
214
+ * events: empty,
215
+ * }),
216
+ * }));
217
+ * }
218
+ * );
219
+ *
220
+ * const initialState = $.let({ cash: 1000.0 });
221
+ * const initialEvents = $.let([
222
+ * { date: $.let(new Date("2025-01-01")), event: $.let(variant("income", 500.0), Events) },
223
+ * { date: $.let(new Date("2025-01-15")), event: $.let(variant("expense", 200.0), Events) },
224
+ * ], ArrayType(ScheduledEvent));
225
+ * const config = $.let({
226
+ * max_events: variant("none", null),
227
+ * end_date: variant("none", null),
228
+ * }, SimulationConfigType);
229
+ *
230
+ * const result = $.let(Simulation.run(
231
+ * [Resources, Events],
232
+ * initialState, initialEvents, process, config,
233
+ * ));
234
+ * // result.final_state.cash => 1300.0
235
+ * // result.events_processed => 2n
236
+ * return $.return(result);
237
+ * });
238
+ * ```
239
+ */
240
+ run: simulation_run,
241
+ /**
242
+ * Run Monte Carlo simulation trajectories.
243
+ *
244
+ * Each trajectory runs the same DES engine with a different RNG seed
245
+ * (base_seed + trajectory_index), enabling stochastic scenario analysis.
246
+ * Use this when the process handler uses Random functions — each trajectory
247
+ * gets a deterministic but distinct seed.
248
+ *
249
+ * @example
250
+ * ```ts
251
+ * import { East, StructType, VariantType, ArrayType, FloatType, DateTimeType, variant } from "@elaraai/east";
252
+ * import { Simulation, SimulationTrajectoriesConfigType } from "@elaraai/east-py-datascience";
253
+ *
254
+ * const Resources = StructType({ cash: FloatType });
255
+ * const Events = VariantType({ income: FloatType, expense: FloatType });
256
+ * const ScheduledEvent = StructType({ date: DateTimeType, event: Events });
257
+ * const ProcessResult = StructType({ state: Resources, events: ArrayType(ScheduledEvent) });
258
+ *
259
+ * const simulate = East.function([], Simulation.Types.TrajectoriesResultType, ($) => {
260
+ * const process = East.function(
261
+ * [Resources, DateTimeType, Events],
262
+ * ProcessResult,
263
+ * ($, state, date, event) => {
264
+ * const empty = $.let([] as const, ArrayType(ScheduledEvent));
265
+ * return $.return(event.match({
266
+ * income: ($, amount) => ({
267
+ * state: { cash: state.cash.add(amount) },
268
+ * events: empty,
269
+ * }),
270
+ * expense: ($, amount) => ({
271
+ * state: { cash: state.cash.subtract(amount) },
272
+ * events: empty,
273
+ * }),
274
+ * }));
275
+ * }
276
+ * );
277
+ *
278
+ * const initialState = $.let({ cash: 1000.0 });
279
+ * const initialEvents = $.let([
280
+ * { date: $.let(new Date("2025-01-01")), event: $.let(variant("income", 500.0), Events) },
281
+ * { date: $.let(new Date("2025-01-15")), event: $.let(variant("expense", 200.0), Events) },
282
+ * ], ArrayType(ScheduledEvent));
283
+ * const config = $.let({
284
+ * trajectories: 100n,
285
+ * seed: variant("some", 42n),
286
+ * max_events: variant("none", null),
287
+ * end_date: variant("some", new Date("2025-12-31")),
288
+ * }, SimulationTrajectoriesConfigType);
289
+ *
290
+ * const result = $.let(Simulation.runTrajectories(
291
+ * [Resources, Events],
292
+ * initialState, initialEvents, process, config,
293
+ * ));
294
+ * // result.trajectories.length() => 100n
295
+ * // result.trajectories.get(0n).final_state.cash
296
+ * return $.return(result);
297
+ * });
298
+ * ```
299
+ */
300
+ runTrajectories: simulation_run_trajectories,
301
+ /**
302
+ * Type definitions for simulation functions.
303
+ */
304
+ Types: SimulationTypes,
305
+ };
306
+ //# sourceMappingURL=simulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulation.js","sourceRoot":"","sources":["../../../src/simulation/simulation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACH,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,GACf,MAAM,eAAe,CAAC;AAEvB,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,kBAAkB,GAAG,UAAU,CAAC;IAClC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,GAAG;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,iBAAiB,GAAG,UAAU,CAAC;IACjC,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,SAAS,CAAC,kBAAkB,CAAC;CACxC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,aAAa,GAAG,YAAY,CAC9B,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,EACxB,iBAAiB,CACpB,CAAC;AAEF,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;IAC3C,mEAAmE;IACnE,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC;IACnC,6CAA6C;IAC7C,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC;CACrC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;IAC3C,sDAAsD;IACtD,WAAW,EAAE,GAAG;IAChB,iCAAiC;IACjC,gBAAgB,EAAE,WAAW;IAC7B,uCAAuC;IACvC,UAAU,EAAE,YAAY;CAC3B,CAAC,CAAC;AAEH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,UAAU,CAAC;IACvD,+CAA+C;IAC/C,YAAY,EAAE,WAAW;IACzB,iDAAiD;IACjD,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;IAC7B,8DAA8D;IAC9D,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC;IACnC,6CAA6C;IAC7C,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC;CACrC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,UAAU,CAAC;IACvD,sCAAsC;IACtC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;QAC/B,2BAA2B;QAC3B,WAAW,EAAE,GAAG;QAChB,iCAAiC;QACjC,gBAAgB,EAAE,WAAW;QAC7B,mCAAmC;QACnC,UAAU,EAAE,YAAY;KAC3B,CAAC,CAAC;CACN,CAAC,CAAC;AAEH,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAC9C,gBAAgB,EAChB,CAAC,GAAG,EAAE,GAAG,CAAC,EACV;IACI,GAAG,EAA6B,gBAAgB;IAChD,SAAS,CAAC,kBAAkB,CAAC,EAAG,iBAAiB;IACjD,aAAa,EAAmB,kBAAkB;IAClD,oBAAoB,EAAY,SAAS;CAC5C,EACD,oBAAoB,CACvB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC,eAAe,CAC3D,6BAA6B,EAC7B,CAAC,GAAG,EAAE,GAAG,CAAC,EACV;IACI,GAAG,EAAqC,gBAAgB;IACxD,SAAS,CAAC,kBAAkB,CAAC,EAAW,iBAAiB;IACzD,aAAa,EAA2B,kBAAkB;IAC1D,gCAAgC,EAAQ,SAAS;CACpD,EACD,gCAAgC,CACnC,CAAC;AAEF,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,+BAA+B;IAC/B,UAAU,EAAE,oBAAoB;IAChC,wBAAwB;IACxB,UAAU,EAAE,oBAAoB;IAChC,gCAAgC;IAChC,sBAAsB,EAAE,gCAAgC;IACxD,yBAAyB;IACzB,sBAAsB,EAAE,gCAAgC;CAClD,CAAC;AAEX;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACH,GAAG,EAAE,cAAc;IAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0DG;IACH,eAAe,EAAE,2BAA2B;IAE5C;;OAEG;IACH,KAAK,EAAE,eAAe;CAChB,CAAC"}