@uptimizr/db 2.0.1 → 2.1.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 (171) hide show
  1. package/AGENTS.md +228 -3
  2. package/README.md +13 -0
  3. package/dist/duckdb/migrations.d.ts.map +1 -1
  4. package/dist/duckdb/migrations.js +169 -0
  5. package/dist/duckdb/migrations.js.map +1 -1
  6. package/dist/duckdb/panelSpecs.d.ts +29 -0
  7. package/dist/duckdb/panelSpecs.d.ts.map +1 -0
  8. package/dist/duckdb/panelSpecs.js +104 -0
  9. package/dist/duckdb/panelSpecs.js.map +1 -0
  10. package/dist/duckdb/projectMetadata.d.ts +43 -0
  11. package/dist/duckdb/projectMetadata.d.ts.map +1 -0
  12. package/dist/duckdb/projectMetadata.js +222 -0
  13. package/dist/duckdb/projectMetadata.js.map +1 -0
  14. package/dist/duckdb/subscriptions.d.ts +45 -0
  15. package/dist/duckdb/subscriptions.d.ts.map +1 -0
  16. package/dist/duckdb/subscriptions.js +202 -0
  17. package/dist/duckdb/subscriptions.js.map +1 -0
  18. package/dist/index.d.ts +18 -4
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +48 -3
  21. package/dist/index.js.map +1 -1
  22. package/dist/insights/anomalies.d.ts +213 -0
  23. package/dist/insights/anomalies.d.ts.map +1 -0
  24. package/dist/insights/anomalies.js +340 -0
  25. package/dist/insights/anomalies.js.map +1 -0
  26. package/dist/insights/baseline.d.ts +51 -0
  27. package/dist/insights/baseline.d.ts.map +1 -0
  28. package/dist/insights/baseline.js +48 -0
  29. package/dist/insights/baseline.js.map +1 -0
  30. package/dist/insights/buckets.d.ts +114 -0
  31. package/dist/insights/buckets.d.ts.map +1 -0
  32. package/dist/insights/buckets.js +220 -0
  33. package/dist/insights/buckets.js.map +1 -0
  34. package/dist/insights/changepoint.d.ts +130 -0
  35. package/dist/insights/changepoint.d.ts.map +1 -0
  36. package/dist/insights/changepoint.js +209 -0
  37. package/dist/insights/changepoint.js.map +1 -0
  38. package/dist/insights/evaluate.d.ts +63 -0
  39. package/dist/insights/evaluate.d.ts.map +1 -0
  40. package/dist/insights/evaluate.js +158 -0
  41. package/dist/insights/evaluate.js.map +1 -0
  42. package/dist/insights/health.d.ts +219 -0
  43. package/dist/insights/health.d.ts.map +1 -0
  44. package/dist/insights/health.js +349 -0
  45. package/dist/insights/health.js.map +1 -0
  46. package/dist/insights/index.d.ts +45 -0
  47. package/dist/insights/index.d.ts.map +1 -0
  48. package/dist/insights/index.js +40 -0
  49. package/dist/insights/index.js.map +1 -0
  50. package/dist/insights/measures.d.ts +222 -0
  51. package/dist/insights/measures.d.ts.map +1 -0
  52. package/dist/insights/measures.js +431 -0
  53. package/dist/insights/measures.js.map +1 -0
  54. package/dist/insights/movers.d.ts +123 -0
  55. package/dist/insights/movers.d.ts.map +1 -0
  56. package/dist/insights/movers.js +166 -0
  57. package/dist/insights/movers.js.map +1 -0
  58. package/dist/insights/significance.d.ts +221 -0
  59. package/dist/insights/significance.d.ts.map +1 -0
  60. package/dist/insights/significance.js +531 -0
  61. package/dist/insights/significance.js.map +1 -0
  62. package/dist/insights/stats.d.ts +104 -0
  63. package/dist/insights/stats.d.ts.map +1 -0
  64. package/dist/insights/stats.js +181 -0
  65. package/dist/insights/stats.js.map +1 -0
  66. package/dist/insights/windows.d.ts +95 -0
  67. package/dist/insights/windows.d.ts.map +1 -0
  68. package/dist/insights/windows.js +97 -0
  69. package/dist/insights/windows.js.map +1 -0
  70. package/dist/metadata.d.ts +178 -1
  71. package/dist/metadata.d.ts.map +1 -1
  72. package/dist/metadata.js +80 -0
  73. package/dist/metadata.js.map +1 -1
  74. package/dist/narrative/build.d.ts +78 -0
  75. package/dist/narrative/build.d.ts.map +1 -0
  76. package/dist/narrative/build.js +437 -0
  77. package/dist/narrative/build.js.map +1 -0
  78. package/dist/narrative/index.d.ts +14 -0
  79. package/dist/narrative/index.d.ts.map +1 -0
  80. package/dist/narrative/index.js +13 -0
  81. package/dist/narrative/index.js.map +1 -0
  82. package/dist/narrative/text.d.ts +25 -0
  83. package/dist/narrative/text.d.ts.map +1 -0
  84. package/dist/narrative/text.js +41 -0
  85. package/dist/narrative/text.js.map +1 -0
  86. package/dist/parity/cases.d.ts +3 -0
  87. package/dist/parity/cases.d.ts.map +1 -1
  88. package/dist/parity/cases.js +387 -7
  89. package/dist/parity/cases.js.map +1 -1
  90. package/dist/parity/compare.d.ts +19 -0
  91. package/dist/parity/compare.d.ts.map +1 -1
  92. package/dist/parity/compare.js +19 -0
  93. package/dist/parity/compare.js.map +1 -1
  94. package/dist/parity/fixtures.d.ts.map +1 -1
  95. package/dist/parity/fixtures.js +25 -0
  96. package/dist/parity/fixtures.js.map +1 -1
  97. package/dist/query/aggregations.d.ts +46 -1
  98. package/dist/query/aggregations.d.ts.map +1 -1
  99. package/dist/query/aggregations.js +86 -0
  100. package/dist/query/aggregations.js.map +1 -1
  101. package/dist/query/clickhouseDialect.d.ts.map +1 -1
  102. package/dist/query/clickhouseDialect.js +5 -1
  103. package/dist/query/clickhouseDialect.js.map +1 -1
  104. package/dist/query/customEventVocabulary.d.ts +46 -0
  105. package/dist/query/customEventVocabulary.d.ts.map +1 -0
  106. package/dist/query/customEventVocabulary.js +127 -0
  107. package/dist/query/customEventVocabulary.js.map +1 -0
  108. package/dist/query/dsl/builders.d.ts +38 -0
  109. package/dist/query/dsl/builders.d.ts.map +1 -0
  110. package/dist/query/dsl/builders.js +35 -0
  111. package/dist/query/dsl/builders.js.map +1 -0
  112. package/dist/query/dsl/compare.d.ts +167 -0
  113. package/dist/query/dsl/compare.d.ts.map +1 -0
  114. package/dist/query/dsl/compare.js +358 -0
  115. package/dist/query/dsl/compare.js.map +1 -0
  116. package/dist/query/dsl/compile.d.ts +89 -0
  117. package/dist/query/dsl/compile.d.ts.map +1 -0
  118. package/dist/query/dsl/compile.js +174 -0
  119. package/dist/query/dsl/compile.js.map +1 -0
  120. package/dist/query/dsl/explain.d.ts +115 -0
  121. package/dist/query/dsl/explain.d.ts.map +1 -0
  122. package/dist/query/dsl/explain.js +143 -0
  123. package/dist/query/dsl/explain.js.map +1 -0
  124. package/dist/query/dsl/generic.d.ts +127 -0
  125. package/dist/query/dsl/generic.d.ts.map +1 -0
  126. package/dist/query/dsl/generic.js +323 -0
  127. package/dist/query/dsl/generic.js.map +1 -0
  128. package/dist/query/dsl/index.d.ts +30 -0
  129. package/dist/query/dsl/index.d.ts.map +1 -0
  130. package/dist/query/dsl/index.js +23 -0
  131. package/dist/query/dsl/index.js.map +1 -0
  132. package/dist/query/dsl/order.d.ts +41 -0
  133. package/dist/query/dsl/order.d.ts.map +1 -0
  134. package/dist/query/dsl/order.js +55 -0
  135. package/dist/query/dsl/order.js.map +1 -0
  136. package/dist/query/dsl/significance.d.ts +130 -0
  137. package/dist/query/dsl/significance.d.ts.map +1 -0
  138. package/dist/query/dsl/significance.js +224 -0
  139. package/dist/query/dsl/significance.js.map +1 -0
  140. package/dist/query/index.d.ts +2 -0
  141. package/dist/query/index.d.ts.map +1 -1
  142. package/dist/query/index.js +8 -0
  143. package/dist/query/index.js.map +1 -1
  144. package/dist/query/summary/index.d.ts +4 -2
  145. package/dist/query/summary/index.d.ts.map +1 -1
  146. package/dist/query/summary/index.js +2 -1
  147. package/dist/query/summary/index.js.map +1 -1
  148. package/dist/query/summary/labels.d.ts +101 -0
  149. package/dist/query/summary/labels.d.ts.map +1 -0
  150. package/dist/query/summary/labels.js +261 -0
  151. package/dist/query/summary/labels.js.map +1 -0
  152. package/dist/query/summary/reading.d.ts.map +1 -1
  153. package/dist/query/summary/reading.js +21 -2
  154. package/dist/query/summary/reading.js.map +1 -1
  155. package/dist/query/summary/schema.d.ts +250 -20
  156. package/dist/query/summary/schema.d.ts.map +1 -1
  157. package/dist/query/summary/schema.js +135 -123
  158. package/dist/query/summary/schema.js.map +1 -1
  159. package/dist/query/summary/summarize.d.ts.map +1 -1
  160. package/dist/query/summary/summarize.js +91 -5
  161. package/dist/query/summary/summarize.js.map +1 -1
  162. package/dist/query/summary/types.d.ts +77 -2
  163. package/dist/query/summary/types.d.ts.map +1 -1
  164. package/dist/query/types.d.ts +47 -1
  165. package/dist/query/types.d.ts.map +1 -1
  166. package/dist/subscriptions.d.ts +208 -0
  167. package/dist/subscriptions.d.ts.map +1 -0
  168. package/dist/subscriptions.js +153 -0
  169. package/dist/subscriptions.js.map +1 -0
  170. package/llms.txt +9 -0
  171. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/query/summary/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;EAAuC,CAAC;AAEvE,gFAAgF;AAChF,KAAK,kBAAkB,GAAG;IACxB,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,SAAS,YAAY,GAAG,IAAI,GAAG,KAAK;IACtE,YAAY,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GAAG,IAAI,GAAG,KAAK;CACvE,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAoIpD,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAK9B,CAAC;AAEH,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAa7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAE/E"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/query/summary/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,kBAAkB,EAGnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,gFAAgF;AAChF,KAAK,kBAAkB,GAAG;IACxB,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,SAAS,YAAY,GAAG,IAAI,GAAG,KAAK;IACtE,YAAY,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GAAG,IAAI,GAAG,KAAK;CACvE,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAiCpD,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAAwB,CAAC;AAEzD,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAE7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAE/E;AAsDD,iFAAiF;AACjF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcjC,CAAC;AAEH,iFAAiF;AACjF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAY9B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;iBAS1B,CAAC;AAEH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAS9E"}
@@ -1,26 +1,29 @@
1
1
  /**
2
- * Zod mirrors of the three result envelopes.
2
+ * Zod mirrors of the three result envelopes — **re-exported**, not redefined.
3
3
  *
4
4
  * The collector attaches each route's 200 response schema from the registry so
5
5
  * the Zod type provider **serialises through it** — which means the `table` and
6
6
  * `summary` envelopes need schemas too, or a formatted response would be
7
- * stripped down to nothing on its way out. `resultEnvelopeSchema(row)` builds
8
- * the union a formatted route responds with: the untouched `full` shape first,
9
- * so a default request is validated by exactly the schema it has always been
10
- * validated by, then the two envelopes.
7
+ * stripped down to nothing on its way out. `resultEnvelopeSchema(full, row)`
8
+ * builds the union a formatted route responds with: the untouched `full` shape
9
+ * first, so a default request is validated by exactly the schema it has always
10
+ * been validated by, then the two envelopes.
11
11
  *
12
- * These live next to the types rather than in the collector so the shapes have
13
- * one definition the same reason the row schemas live in the registry.
12
+ * The definitions themselves now live in `@uptimizr/metrics`, next to the row
13
+ * schemas they wrap (#350): `@uptimizr/agent-core` and `@uptimizr/mcp` need the
14
+ * same shapes to describe a tool's result, and neither may depend on this
15
+ * package — it carries the DuckDB driver. This module keeps the names and the
16
+ * signatures `@uptimizr/db` has always exported, so nothing downstream changes.
14
17
  */
15
18
  import { z } from "zod";
16
- import { METRIC_IDS } from "@uptimizr/metrics";
17
- /**
18
- * `format=full | table | summary`, the shared querystring value every
19
- * registry-served aggregate endpoint accepts. Spelled out literally rather than
20
- * built from `RESULT_FORMATS` so the inferred type is the `ResultFormat` union
21
- * and a route handler keeps its narrowing.
22
- */
23
- export const resultFormatSchema = z.enum(["full", "table", "summary"]);
19
+ import { METRIC_IDS, resultEnvelopeSchema as envelopeSchema, resultFormatSchema, summaryEnvelopeSchema, tableEnvelopeSchema, } from "@uptimizr/metrics";
20
+ export { resultFormatSchema };
21
+ // --- shapes the compare / explain envelopes below are built from -----------
22
+ //
23
+ // The four `format` digests moved to `@uptimizr/metrics` with #350 and are
24
+ // re-exported above. These five fragments stayed behind because only the
25
+ // DSL-specific envelopes at the bottom of this file use them, and a comparison
26
+ // is not something `@uptimizr/metrics` describes.
24
27
  /** Any registry metric id. */
25
28
  const metricIdSchema = z.enum(METRIC_IDS);
26
29
  const rangeSchema = z.object({
@@ -33,10 +36,6 @@ const sampleSizeSchema = z.object({
33
36
  sessions: z.number().nullable(),
34
37
  events: z.number().nullable(),
35
38
  });
36
- const limitsSchema = z.object({
37
- maxRows: z.number().int(),
38
- maxSummaryRows: z.number().int(),
39
- });
40
39
  const measureSchema = z
41
40
  .object({
42
41
  column: z.string(),
@@ -44,112 +43,11 @@ const measureSchema = z
44
43
  additive: z.boolean(),
45
44
  })
46
45
  .nullable();
47
- const shareIntervalSchema = z.object({ low: z.number(), high: z.number() });
48
- const confidenceSchema = z.object({
49
- kind: z.literal("wilson"),
50
- level: z.number(),
51
- note: z.string(),
52
- });
53
- const drillSchema = z.record(z.string(), z.string());
54
- const restSchema = z.object({
55
- rows: z.number().int(),
56
- value: z.number().nullable(),
57
- share: z.number().nullable(),
58
- });
59
- /** Fields every summary carries, whatever its grain. */
60
- const summaryBase = {
61
- metric: metricIdSchema,
62
- range: rangeSchema,
63
- filters: filtersSchema,
64
- sampleSize: sampleSizeSchema,
65
- total: z.number().nullable(),
66
- measure: measureSchema,
67
- confidence: confidenceSchema.optional(),
68
- reading: z.string(),
69
- caveats: z.array(z.string()),
70
- };
71
- const rankedSummarySchema = z.object({
72
- ...summaryBase,
73
- kind: z.literal("ranked"),
74
- top: z.array(z.object({
75
- label: z.string(),
76
- value: z.number().nullable(),
77
- share: z.number().nullable(),
78
- shareInterval: shareIntervalSchema.optional(),
79
- drill: drillSchema.optional(),
80
- })),
81
- rest: restSchema,
82
- });
83
- const seriesSummarySchema = z.object({
84
- ...summaryBase,
85
- kind: z.literal("series"),
86
- series: z.object({
87
- axis: z.string(),
88
- points: z.number().int(),
89
- first: z.number().nullable(),
90
- last: z.number().nullable(),
91
- min: z.number().nullable(),
92
- max: z.number().nullable(),
93
- firstLabel: z.string().nullable(),
94
- lastLabel: z.string().nullable(),
95
- minLabel: z.string().nullable(),
96
- maxLabel: z.string().nullable(),
97
- trend: z.enum(["up", "down", "flat"]),
98
- slope: z.number().nullable(),
99
- }),
100
- });
101
- const clusterSummarySchema = z.object({
102
- ...summaryBase,
103
- kind: z.literal("clusters"),
104
- axes: z.array(z.string()),
105
- occupiedCells: z.number().int(),
106
- densityThreshold: z.number(),
107
- clusters: z.array(z.object({
108
- centroid: z.array(z.number()),
109
- extent: z.object({ min: z.array(z.number()), max: z.array(z.number()) }),
110
- cells: z.number().int(),
111
- weight: z.number(),
112
- share: z.number().nullable(),
113
- drill: drillSchema.optional(),
114
- })),
115
- rest: z.object({
116
- clusters: z.number().int(),
117
- cells: z.number().int(),
118
- weight: z.number().nullable(),
119
- share: z.number().nullable(),
120
- }),
121
- });
122
- const recordSummarySchema = z.object({
123
- ...summaryBase,
124
- kind: z.literal("record"),
125
- record: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.null()])),
126
- rates: z.record(z.string(), z.object({
127
- value: z.number().nullable(),
128
- numerator: z.string(),
129
- denominator: z.string(),
130
- })),
131
- });
132
46
  /** `format=summary`: one of the four grain-driven shapes. */
133
- export const resultSummarySchema = z.discriminatedUnion("kind", [
134
- rankedSummarySchema,
135
- seriesSummarySchema,
136
- clusterSummarySchema,
137
- recordSummarySchema,
138
- ]);
47
+ export const resultSummarySchema = summaryEnvelopeSchema;
139
48
  /** `format=table`: the `meta` envelope around a metric's own row schema. */
140
49
  export function tableResultSchema(row) {
141
- return z.object({
142
- meta: z.object({
143
- metric: metricIdSchema,
144
- range: rangeSchema,
145
- filters: filtersSchema,
146
- sampleSize: sampleSizeSchema,
147
- rows: z.number().int(),
148
- truncated: z.boolean(),
149
- limits: limitsSchema,
150
- }),
151
- rows: z.array(row),
152
- });
50
+ return tableEnvelopeSchema(row);
153
51
  }
154
52
  /**
155
53
  * The 200 response schema of a route that honours `format`: the union of the
@@ -160,8 +58,122 @@ export function tableResultSchema(row) {
160
58
  * The envelopes are unambiguous against it — `table` is an object with `meta`
161
59
  * and `rows`, `summary` an object with `kind` and `reading`, and neither can
162
60
  * satisfy a row array or a stats row's required numeric columns.
61
+ *
62
+ * A route's own `full` schema is passed explicitly because a single-record
63
+ * endpoint (the spatial `stats` routes) answers with a bare object rather than
64
+ * an array of rows.
163
65
  */
164
66
  export function resultEnvelopeSchema(full, row) {
165
- return z.union([full, tableResultSchema(row), resultSummarySchema]);
67
+ return envelopeSchema(row, full);
68
+ }
69
+ // --- compare / explain (ADR 0051 §3, #304) --------------------------------
70
+ const scoreIntervalSchema = z.object({ low: z.number(), high: z.number() });
71
+ const proportionSignificanceSchema = z.object({
72
+ test: z.literal("two-proportion-z"),
73
+ current: z.number(),
74
+ previous: z.number(),
75
+ diff: z.number(),
76
+ z: z.number(),
77
+ pValue: z.number(),
78
+ significant: z.boolean(),
79
+ currentInterval: scoreIntervalSchema,
80
+ previousInterval: scoreIntervalSchema,
81
+ });
82
+ const meanSignificanceSchema = z.object({
83
+ test: z.literal("welch-t"),
84
+ current: z.number(),
85
+ previous: z.number(),
86
+ diff: z.number(),
87
+ t: z.number(),
88
+ df: z.number(),
89
+ pValue: z.number(),
90
+ significant: z.boolean(),
91
+ currentSamples: z.number().int(),
92
+ previousSamples: z.number().int(),
93
+ });
94
+ const significanceSchema = z.discriminatedUnion("test", [
95
+ proportionSignificanceSchema,
96
+ meanSignificanceSchema,
97
+ ]);
98
+ const comparisonSideSchema = z.object({
99
+ range: rangeSchema,
100
+ segment: filtersSchema,
101
+ rows: z.number().int(),
102
+ total: z.number().nullable(),
103
+ sampleSize: sampleSizeSchema,
104
+ });
105
+ const comparisonRowSchema = z.object({
106
+ key: z.record(z.string(), z.string()),
107
+ label: z.string(),
108
+ current: z.number().nullable(),
109
+ previous: z.number().nullable(),
110
+ delta: z.number().nullable(),
111
+ deltaPct: z.number().nullable(),
112
+ significance: significanceSchema.optional(),
113
+ });
114
+ /** `format=full | table` on a `compare` query: the envelope plus joined rows. */
115
+ export const comparisonResultSchema = z.object({
116
+ meta: z.object({
117
+ metric: metricIdSchema,
118
+ basis: z.enum(["range", "segment"]),
119
+ keys: z.array(z.string()),
120
+ measure: measureSchema,
121
+ current: comparisonSideSchema,
122
+ previous: comparisonSideSchema,
123
+ rows: z.number().int(),
124
+ truncated: z.boolean(),
125
+ overall: meanSignificanceSchema.optional(),
126
+ caveats: z.array(z.string()),
127
+ }),
128
+ rows: z.array(comparisonRowSchema),
129
+ });
130
+ /** `format=summary` on a `compare` query: the biggest movers, with a reading. */
131
+ export const moversSummarySchema = z.object({
132
+ kind: z.literal("movers"),
133
+ metric: metricIdSchema,
134
+ basis: z.enum(["range", "segment"]),
135
+ measure: measureSchema,
136
+ current: comparisonSideSchema,
137
+ previous: comparisonSideSchema,
138
+ top: z.array(comparisonRowSchema),
139
+ rest: z.object({ rows: z.number().int(), delta: z.number().nullable() }),
140
+ overall: meanSignificanceSchema.optional(),
141
+ reading: z.string(),
142
+ caveats: z.array(z.string()),
143
+ });
144
+ /**
145
+ * `explain: true`: the plan instead of the rows.
146
+ *
147
+ * `params` carries names and logical types only — never values. That is not a
148
+ * redaction step applied afterwards; the DSL binds every caller-supplied value,
149
+ * so there is nothing in `sql` to redact and nothing in `params` worth echoing.
150
+ */
151
+ export const queryPlanSchema = z.object({
152
+ metric: metricIdSchema,
153
+ tier: z.enum(["delegated", "generic"]),
154
+ dialect: z.string(),
155
+ sql: z.string(),
156
+ params: z.array(z.object({ name: z.string(), type: z.string() })),
157
+ rowsScanned: z.number().nullable(),
158
+ sampleSize: sampleSizeSchema,
159
+ warnings: z.array(z.string()),
160
+ });
161
+ /**
162
+ * The 200 response schema of the query DSL endpoint: everything
163
+ * {@link resultEnvelopeSchema} answers with, plus the three envelopes only the
164
+ * DSL can produce — a comparison, a movers digest and a plan.
165
+ *
166
+ * Order matters for the same reason it does there: the plain-rows shape is
167
+ * matched first so a `format=full` response cannot be reshaped on its way out.
168
+ */
169
+ export function queryEnvelopeSchema(full, row) {
170
+ return z.union([
171
+ full,
172
+ tableResultSchema(row),
173
+ resultSummarySchema,
174
+ comparisonResultSchema,
175
+ moversSummarySchema,
176
+ queryPlanSchema,
177
+ ]);
166
178
  }
167
179
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/query/summary/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/query/summary/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../src/query/summary/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAa,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAiBpF,OAAO,KAAK,EAUV,aAAa,EAKb,cAAc,EAEd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,yDAAyD;AACzD,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAmH1D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,SAAS,SAAS,EAC/C,MAAM,EAAE,QAAQ,GAAG,gBAAgB,EACnC,IAAI,EAAE,SAAS,GAAG,EAAE,EACpB,GAAG,GAAE,cAAmB,GACvB,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAezB;AA+RD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,GAAG,gBAAgB,EACnC,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,GAAG,GAAE,cAAmB,GACvB,aAAa,GAAG,IAAI,CAkBtB"}
1
+ {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../../src/query/summary/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAkB3B,OAAO,KAAK,EAWV,aAAa,EAKb,cAAc,EAEd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,yDAAyD;AACzD,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AA0L1D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,SAAS,SAAS,EAC/C,MAAM,EAAE,QAAQ,GAAG,gBAAgB,EACnC,IAAI,EAAE,SAAS,GAAG,EAAE,EACpB,GAAG,GAAE,cAAmB,GACvB,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAezB;AAqTD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,QAAQ,GAAG,gBAAgB,EACnC,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,GAAG,GAAE,cAAmB,GACvB,aAAa,GAAG,IAAI,CAkBtB"}
@@ -35,10 +35,11 @@
35
35
  * That is the whole point of the envelope: a 500-bin heatmap must cost the same
36
36
  * number of tokens as a 5-bin one.
37
37
  */
38
- import { getMetric } from "@uptimizr/metrics";
38
+ import { dimensionColumn, genericDimensions, getMetric, } from "@uptimizr/metrics";
39
39
  import { clusterCells } from "./cluster.js";
40
40
  import { axisColumn, columnsOf, gridColumns, labelColumn, measureColumn, numberAt, sampleSizeOf, sumColumn, weightColumn, } from "./columns.js";
41
41
  import { isAdditiveUnit } from "./format.js";
42
+ import { labelClusters } from "./labels.js";
42
43
  import { readingFor } from "./reading.js";
43
44
  import { leastSquaresSlope, trendOf, wilsonInterval, Z_95 } from "./stats.js";
44
45
  /**
@@ -47,6 +48,22 @@ import { leastSquaresSlope, trendOf, wilsonInterval, Z_95 } from "./stats.js";
47
48
  * endpoint would silently ignore is worse than no hint.
48
49
  */
49
50
  const DRILL_FILTERS = ["scene", "session", "mesh", "source"];
51
+ /**
52
+ * Dimensions a **runnable** drill query can hold fixed, in the order a reader
53
+ * would narrow by. Wider than {@link DRILL_FILTERS} because `segment` reaches
54
+ * further than `filters` does: `top_meshes` is a leaderboard *of meshes* whose
55
+ * builder has never taken a `mesh` filter, so before #304 its own rows were the
56
+ * one thing it could not be narrowed to. `segment: { mesh }` on the generic tier
57
+ * is exactly that narrowing.
58
+ */
59
+ const DRILL_DIMENSIONS = [
60
+ "scene",
61
+ "session",
62
+ "mesh",
63
+ "source",
64
+ "name",
65
+ "event_type",
66
+ ];
50
67
  /** Resolve an id or a definition to a definition. */
51
68
  function resolve(metric) {
52
69
  return typeof metric === "string" ? getMetric(metric) : metric;
@@ -102,6 +119,55 @@ function caveatsFor(metric, rows, ctx, extra = []) {
102
119
  }
103
120
  return caveats;
104
121
  }
122
+ /**
123
+ * The whole query, narrowed to one summarised row (#304).
124
+ *
125
+ * The filter *names* were already here; what was missing is the thing a caller
126
+ * actually needs next, which is the query to run. Reconstructing it is where a
127
+ * model loses the range it was looking at, the scene it had already scoped to,
128
+ * or the `format` it was reading — so the summary hands it over complete.
129
+ *
130
+ * `explain` is dropped: a drill-down is meant to return the narrower rows, not a
131
+ * plan for them. Everything else is carried through, `compare` included, so
132
+ * drilling into a mover keeps comparing.
133
+ */
134
+ function drillQueryFor(metric, ctx, row, hints) {
135
+ if (ctx.query == null)
136
+ return undefined;
137
+ const segment = drillSegmentFor(metric, row, hints);
138
+ if (hints == null && Object.keys(segment).length === 0)
139
+ return undefined;
140
+ const { explain: _explain, ...rest } = ctx.query;
141
+ const filters = (rest.filters ?? {});
142
+ const existing = (rest.segment ?? {});
143
+ return {
144
+ ...rest,
145
+ filters: { ...filters, ...(hints ?? {}) },
146
+ ...(Object.keys(segment).length > 0 ? { segment: { ...existing, ...segment } } : {}),
147
+ };
148
+ }
149
+ /**
150
+ * The dimensions a drill query holds fixed with `segment` because the metric has
151
+ * no filter for them. Only dimensions the generic tier can actually render, so
152
+ * every drill query the summary hands out is one the collector will answer;
153
+ * anything already covered by a `filters` hint is left alone.
154
+ */
155
+ function drillSegmentFor(metric, row, hints) {
156
+ const groupable = new Set(genericDimensions(metric));
157
+ const segment = {};
158
+ for (const dimension of DRILL_DIMENSIONS) {
159
+ if (!groupable.has(dimension))
160
+ continue;
161
+ if (hints != null && dimension in hints)
162
+ continue;
163
+ if (metric.filters.includes(dimension))
164
+ continue;
165
+ const value = row[dimensionColumn(metric, dimension)];
166
+ if (typeof value === "string" && value.length > 0)
167
+ segment[dimension] = value;
168
+ }
169
+ return segment;
170
+ }
105
171
  /** Filters that would narrow a subsequent query to this row. */
106
172
  function drillFor(metric, row) {
107
173
  const hints = {};
@@ -199,12 +265,14 @@ function rankedSummary(metric, rows, ctx, cap) {
199
265
  const share = total != null && total > 0 && value != null ? value / total : null;
200
266
  const interval = proportional && value != null && total != null ? wilsonInterval(value, total, Z_95) : null;
201
267
  const drill = drillFor(metric, row);
268
+ const drillQuery = drillQueryFor(metric, ctx, row, drill);
202
269
  return {
203
270
  label: labelCol == null ? "" : String(row[labelCol[0]] ?? ""),
204
271
  value,
205
272
  share,
206
273
  ...(interval != null ? { shareInterval: interval } : {}),
207
274
  ...(drill != null ? { drill } : {}),
275
+ ...(drillQuery != null ? { drillQuery } : {}),
208
276
  };
209
277
  });
210
278
  const listedValue = measureCol == null ? null : sumColumn(listed, measureCol[0]);
@@ -313,7 +381,7 @@ function clusterSummary(metric, rows, ctx, cap) {
313
381
  ctx.cellSize > 0 &&
314
382
  axes.length === 3 &&
315
383
  metric.filters.includes("region");
316
- const clusters = result.clusters.map((cluster) => {
384
+ const boxed = result.clusters.map((cluster) => {
317
385
  if (!canDrillRegion)
318
386
  return cluster;
319
387
  const size = ctx.cellSize;
@@ -323,14 +391,32 @@ function clusterSummary(metric, rows, ctx, cap) {
323
391
  ];
324
392
  return { ...cluster, drill: { region: box.join(",") } };
325
393
  });
394
+ // Spatial labelling (ADR 0051 §2, sketch §B.2): when the collector handed us
395
+ // the scene's regions and proxy boxes, each hotspot is named — the region it
396
+ // falls in and the mesh it sits on — and a containing region upgrades the
397
+ // `drill.region` hint from an ad-hoc box to the region's own id.
398
+ const labelled = ctx.scene != null && ctx.cellSize != null
399
+ ? labelClusters(boxed, {
400
+ axes: axes.map(([name]) => name),
401
+ cellSize: ctx.cellSize,
402
+ scene: ctx.scene,
403
+ })
404
+ : null;
405
+ const clusters = labelled?.clusters ?? boxed;
326
406
  const extraCaveats = result.occupiedCells > 0
327
407
  ? [
328
408
  `Hotspots are merged from cells at or above a density threshold of ` +
329
409
  `${result.densityThreshold} (the mean weight per occupied cell); looser cells are ` +
330
410
  "reported in `rest` rather than clustered.",
331
- "Cluster coordinates are grid indices, not world coordinates — multiply by the " +
332
- "effective `cellSize` to place them (ADR 0040 §1). Spatial labelling (nearest mesh, " +
333
- "named region) is not part of this envelope.",
411
+ labelled?.labelled === true
412
+ ? "Cluster coordinates are grid indices, not world coordinates multiply by the " +
413
+ "effective `cellSize` to place them (ADR 0040 §1). `region` / `nearestMesh` label " +
414
+ "each hotspot against the scene registry; `distance` is in world units and `0` " +
415
+ "means the mesh box contains the hotspot."
416
+ : "Cluster coordinates are grid indices, not world coordinates — multiply by the " +
417
+ "effective `cellSize` to place them (ADR 0040 §1). Spatial labelling (nearest " +
418
+ "mesh, named region) is not part of this envelope.",
419
+ ...(labelled?.caveats ?? []),
334
420
  ]
335
421
  : [];
336
422
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../src/query/summary/summarize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../src/query/summary/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,SAAS,GAIV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAiB,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,UAAU,EACV,SAAS,EAET,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAyB9E;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,OAAO;IACP,SAAS;IACT,MAAM;IACN,QAAQ;IACR,MAAM;IACN,YAAY;CACb,CAAC;AAEF,qDAAqD;AACrD,SAAS,OAAO,CAAC,MAAmC;IAClD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjE,CAAC;AAED,8EAA8E;AAC9E,SAAS,OAAO,CAAC,GAAmB;IAClC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,MAAwB,EAAE,GAAmB;IAC9D,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,EAAE,KAAK,QAAQ;YAAE,SAAS;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,MAAwB;IACxC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;AAC1F,CAAC;AAED,yEAAyE;AACzE,SAAS,WAAW,CAClB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB;IAEnB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;AACpD,CAAC;AAED,gEAAgE;AAChE,SAAS,SAAS,CAAC,MAA0B;IAC3C,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,0EAA0E;AAC1E,SAAS,UAAU,CACjB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB,EACnB,QAA2B,EAAE;IAE7B,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CACV,uFAAuF,CACxF,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CACV,uBAAuB,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,qCAAqC;YAC5F,8CAA8C,CACjD,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CACpB,MAAwB,EACxB,GAAmB,EACnB,GAAc,EACd,KAA6B;IAE7B,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC,KAAgC,CAAC;IAC5E,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;IAChE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;IACjE,OAAO;QACL,GAAG,IAAI;QACP,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;QACzC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CACtB,MAAwB,EACxB,GAAc,EACd,KAA6B;IAE7B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QACxC,IAAI,KAAK,IAAI,IAAI,IAAI,SAAS,IAAI,KAAK;YAAE,SAAS;QAClD,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAA2C,CAAC;YAAE,SAAS;QACnF,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAChF,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,gEAAgE;AAChE,SAAS,QAAQ,CAAC,MAAwB,EAAE,GAAc;IACxD,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,SAAS;QAC/C,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,IAAI,GAAG,CAC/D,CAAC;QACF,IAAI,MAAM,IAAI,IAAI;YAAE,SAAS;QAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,4EAA4E;AAC5E,SAAS,aAAa,CACpB,OAA8B,EAC9B,KAAoB;IAEpB,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1F,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjE,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,IAAI;QACX,IAAI,EACF,6BAA6B,KAAK,IAAI,IAAI,iDAAiD;YAC3F,6EAA6E;KAChF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,MAAmC,EACnC,IAAoB,EACpB,MAAsB,EAAE;IAExB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO;QACL,IAAI,EAAE;YACJ,MAAM,EAAE,UAAU,CAAC,EAAE;YACrB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;YACnB,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC;YACnC,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,SAAS,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;YAC7C,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;SAC7B;QACD,IAAI;KACL,CAAC;AACJ,CAAC;AAED,6EAA6E;AAE7E,kDAAkD;AAClD,SAAS,MAAM,CACb,MAAwB,EACxB,IAA0B,EAC1B,GAAmB,EACnB,OAA8B,EAC9B,KAAoB,EACpB,eAAkC,EAAE;IAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;QACnB,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;QAC/B,UAAU,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;QACtC,KAAK;QACL,OAAO;QACP,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB,EACnB,GAAW;IAEX,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnF,+EAA+E;IAC/E,iFAAiF;IACjF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,IAAI,IAAI,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC;YAC3B,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC7B,OAAO,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;IAC3D,MAAM,GAAG,GAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,MAAM,QAAQ,GACZ,YAAY,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7F,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO;YACL,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7D,KAAK;YACL,KAAK;YACL,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,KAAK,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IACpF,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;QAC5C,IAAI,EAAE,QAAQ;QACd,GAAG;QACH,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9C,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI;SAClF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB;IAEnB,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAEtC,8EAA8E;IAC9E,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwD,CAAC;IAChF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI;YAAE,SAAS;QAC5B,MAAM,EAAE,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC;YACpB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;SACjC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,KAAK,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK;KAC3E,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAClC,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAC1E,SAAS,CACV,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAC1E,SAAS,CACV,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjF,MAAM,OAAO,GAAG,CAAC,KAAmC,EAAiB,EAAE,CACrE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEtE,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;QAC5C,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,IAAI;YAC3B,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,IAAI;YACzB,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI;YAC1B,GAAG,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;YAC3B,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC;YAC1B,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC;YACxB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;YAC1B,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;YAC7B,KAAK;SACN;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB,EACnB,GAAW;IAEX,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEtD,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI,CAAC;YAAE,SAAS;QAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,IAAI;YAAE,SAAS;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAkB,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE;QACjC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,WAAW,EAAE,GAAG;KACjB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjE,6EAA6E;IAC7E,mEAAmE;IACnE,MAAM,cAAc,GAClB,GAAG,CAAC,QAAQ,IAAI,IAAI;QACpB,GAAG,CAAC,QAAQ,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,KAAK,GAAqB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9D,IAAI,CAAC,cAAc;YAAE,OAAO,OAAO,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAkB,CAAC;QACpC,MAAM,GAAG,GAAG;YACV,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;YAClD,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;SACzD,CAAC;QACF,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAC7E,6EAA6E;IAC7E,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,QAAQ,GACZ,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,QAAQ,IAAI,IAAI;QACvC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE;YACnB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC;QACJ,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,IAAI,KAAK,CAAC;IAE7C,MAAM,YAAY,GAChB,MAAM,CAAC,aAAa,GAAG,CAAC;QACtB,CAAC,CAAC;YACE,oEAAoE;gBAClE,GAAG,MAAM,CAAC,gBAAgB,yDAAyD;gBACnF,2CAA2C;YAC7C,QAAQ,EAAE,QAAQ,KAAK,IAAI;gBACzB,CAAC,CAAC,gFAAgF;oBAChF,mFAAmF;oBACnF,gFAAgF;oBAChF,0CAA0C;gBAC5C,CAAC,CAAC,gFAAgF;oBAChF,+EAA+E;oBAC/E,mDAAmD;YACvD,GAAG,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;SAC7B;QACH,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC;QAC1D,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;QAChC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,QAAQ;QACR,IAAI,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC9B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;YACjD,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI;SACtE;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,MAAwB,EACxB,IAA0B,EAC1B,GAAmB;IAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAqD,EAAE,CAAC;IACpE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;gBAAE,SAAS;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,IAAI,IAAI;oBACX,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;wBACpF,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,IAAI,CAAC;QACf,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI;YAAE,SAAS;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,GAAG;YACZ,KAAK,EACH,SAAS,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,GAAG,CAAC;gBACzD,CAAC,CAAC,SAAS,GAAG,WAAW;gBACzB,CAAC,CAAC,IAAI;YACV,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,SAAS,CAAC,MAAM;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,GAAG,CAAC;QACb,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,MAAM,0DAA0D,CAAC;QAC9F,CAAC,CAAC,EAAE,CAAC;IACT,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;QACnD,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAmC,EACnC,IAA0B,EAC1B,MAAsB,EAAE;IAExB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAEzE,IAAI,OAAO,GAAyB,IAAI,CAAC;IACzC,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,IAAI,UAAU,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QACtE,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7E,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IACD,wEAAwE;IACxE,2EAA2E;IAC3E,OAAO,KAAK,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEtD,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,EAAmB,CAAC;AACnF,CAAC"}