@graview/core 0.1.62 → 0.1.64
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.
- package/dist/app.d.ts +12 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/arranging.js +2 -2
- package/dist/arranging.js.map +1 -1
- package/dist/cli/check/index.d.ts +1 -0
- package/dist/cli/check/index.d.ts.map +1 -1
- package/dist/cli/check/index.js +1 -0
- package/dist/cli/check/index.js.map +1 -1
- package/dist/cli/check/workflows.d.ts +11 -0
- package/dist/cli/check/workflows.d.ts.map +1 -0
- package/dist/cli/check/workflows.js +20 -0
- package/dist/cli/check/workflows.js.map +1 -0
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +2 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +31 -1
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/document-schema.d.ts.map +1 -1
- package/dist/cli/document-schema.js +9 -0
- package/dist/cli/document-schema.js.map +1 -1
- package/dist/compose.d.ts +1 -1
- package/dist/compose.d.ts.map +1 -1
- package/dist/document/amount.d.ts +1 -1
- package/dist/document/amount.d.ts.map +1 -1
- package/dist/document/amount.js +2 -2
- package/dist/document/amount.js.map +1 -1
- package/dist/document/blocks.d.ts.map +1 -1
- package/dist/document/blocks.js +17 -1
- package/dist/document/blocks.js.map +1 -1
- package/dist/document/brand-check.d.ts.map +1 -1
- package/dist/document/brand-check.js +8 -2
- package/dist/document/brand-check.js.map +1 -1
- package/dist/document/compile-checked.d.ts.map +1 -1
- package/dist/document/compile-checked.js +4 -2
- package/dist/document/compile-checked.js.map +1 -1
- package/dist/document/compile.d.ts.map +1 -1
- package/dist/document/compile.js +48 -9
- package/dist/document/compile.js.map +1 -1
- package/dist/document/compiled.d.ts +14 -0
- package/dist/document/compiled.d.ts.map +1 -1
- package/dist/document/compiled.js +39 -4
- package/dist/document/compiled.js.map +1 -1
- package/dist/document/connection-findings.js +93 -21
- package/dist/document/connection-findings.js.map +1 -1
- package/dist/document/connection-spec.d.ts +54 -1
- package/dist/document/connection-spec.d.ts.map +1 -1
- package/dist/document/connection-spec.js +76 -8
- package/dist/document/connection-spec.js.map +1 -1
- package/dist/document/derives-findings.d.ts +4 -0
- package/dist/document/derives-findings.d.ts.map +1 -0
- package/dist/document/derives-findings.js +68 -0
- package/dist/document/derives-findings.js.map +1 -0
- package/dist/document/describe-forms.js +2 -2
- package/dist/document/describe-forms.js.map +1 -1
- package/dist/document/diff.d.ts +6 -0
- package/dist/document/diff.d.ts.map +1 -1
- package/dist/document/diff.js +43 -1
- package/dist/document/diff.js.map +1 -1
- package/dist/document/edit.d.ts +1 -1
- package/dist/document/edit.d.ts.map +1 -1
- package/dist/document/edit.js +264 -23
- package/dist/document/edit.js.map +1 -1
- package/dist/document/expr/evaluate.d.ts +7 -0
- package/dist/document/expr/evaluate.d.ts.map +1 -1
- package/dist/document/expr/evaluate.js +29 -2
- package/dist/document/expr/evaluate.js.map +1 -1
- package/dist/document/format-words.d.ts +1 -0
- package/dist/document/format-words.d.ts.map +1 -1
- package/dist/document/format-words.js +2 -2
- package/dist/document/format-words.js.map +1 -1
- package/dist/document/kept-in-step-with.d.ts +20 -0
- package/dist/document/kept-in-step-with.d.ts.map +1 -0
- package/dist/document/kept-in-step-with.js +38 -0
- package/dist/document/kept-in-step-with.js.map +1 -0
- package/dist/document/kept-in-step.d.ts.map +1 -1
- package/dist/document/kept-in-step.js +3 -1
- package/dist/document/kept-in-step.js.map +1 -1
- package/dist/document/money.d.ts +10 -2
- package/dist/document/money.d.ts.map +1 -1
- package/dist/document/money.js +14 -5
- package/dist/document/money.js.map +1 -1
- package/dist/document/policy-words.d.ts +2 -0
- package/dist/document/policy-words.d.ts.map +1 -1
- package/dist/document/policy-words.js +11 -1
- package/dist/document/policy-words.js.map +1 -1
- package/dist/document/schema.d.ts +46 -1
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +48 -8
- package/dist/document/schema.js.map +1 -1
- package/dist/document/template-parse.d.ts.map +1 -1
- package/dist/document/template-parse.js +7 -1
- package/dist/document/template-parse.js.map +1 -1
- package/dist/document/template.d.ts +2 -0
- package/dist/document/template.d.ts.map +1 -1
- package/dist/document/template.js +10 -1
- package/dist/document/template.js.map +1 -1
- package/dist/document/to-document.js +2 -2
- package/dist/document/to-document.js.map +1 -1
- package/dist/document/workflow-spec.d.ts +72 -0
- package/dist/document/workflow-spec.d.ts.map +1 -0
- package/dist/document/workflow-spec.js +45 -0
- package/dist/document/workflow-spec.js.map +1 -0
- package/dist/document.schema.json +883 -4
- package/dist/head.d.ts +81 -0
- package/dist/head.d.ts.map +1 -0
- package/dist/head.js +123 -0
- package/dist/head.js.map +1 -0
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +2 -0
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/installation.d.ts +1 -1
- package/dist/job-findings.d.ts +5 -0
- package/dist/job-findings.d.ts.map +1 -1
- package/dist/job-findings.js +9 -3
- package/dist/job-findings.js.map +1 -1
- package/dist/keep-linked.d.ts +45 -0
- package/dist/keep-linked.d.ts.map +1 -0
- package/dist/keep-linked.js +188 -0
- package/dist/keep-linked.js.map +1 -0
- package/dist/mutations/derive-edits.js +2 -2
- package/dist/mutations/propose-changes.d.ts +24 -0
- package/dist/mutations/propose-changes.d.ts.map +1 -0
- package/dist/mutations/propose-changes.js +30 -0
- package/dist/mutations/propose-changes.js.map +1 -0
- package/dist/mutations/vote-suggestion.d.ts +30 -0
- package/dist/mutations/vote-suggestion.d.ts.map +1 -1
- package/dist/mutations/vote-suggestion.js +23 -0
- package/dist/mutations/vote-suggestion.js.map +1 -1
- package/dist/mutations/words.js +3 -3
- package/dist/ops/digest.d.ts +3 -1
- package/dist/ops/digest.d.ts.map +1 -1
- package/dist/ops/digest.js +7 -2
- package/dist/ops/digest.js.map +1 -1
- package/dist/ops/lineage.d.ts +19 -2
- package/dist/ops/lineage.d.ts.map +1 -1
- package/dist/ops/lineage.js +8 -4
- package/dist/ops/lineage.js.map +1 -1
- package/dist/ops/log.d.ts.map +1 -1
- package/dist/ops/log.js +13 -2
- package/dist/ops/log.js.map +1 -1
- package/dist/ops/suggestions.d.ts +47 -5
- package/dist/ops/suggestions.d.ts.map +1 -1
- package/dist/ops/suggestions.js +88 -13
- package/dist/ops/suggestions.js.map +1 -1
- package/dist/ops/tidying.d.ts.map +1 -1
- package/dist/ops/tidying.js +6 -1
- package/dist/ops/tidying.js.map +1 -1
- package/dist/ops/types.d.ts +28 -0
- package/dist/ops/types.d.ts.map +1 -1
- package/dist/ops/undo.d.ts.map +1 -1
- package/dist/ops/undo.js +17 -0
- package/dist/ops/undo.js.map +1 -1
- package/dist/permissions/policy.d.ts +7 -0
- package/dist/permissions/policy.d.ts.map +1 -1
- package/dist/permissions/policy.js +12 -0
- package/dist/permissions/policy.js.map +1 -1
- package/dist/permissions/types.d.ts +27 -0
- package/dist/permissions/types.d.ts.map +1 -1
- package/dist/permissions/types.js.map +1 -1
- package/dist/places.d.ts +10 -0
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +35 -1
- package/dist/places.js.map +1 -1
- package/dist/scene.d.ts +2 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +2 -0
- package/dist/scene.js.map +1 -1
- package/dist/schema/amount-mark.d.ts +2 -0
- package/dist/schema/amount-mark.d.ts.map +1 -1
- package/dist/schema/amount-mark.js.map +1 -1
- package/dist/schema/amount-words.js +2 -2
- package/dist/schema/amount-words.js.map +1 -1
- package/dist/schema/choice-words.js +2 -2
- package/dist/schema/define-node.d.ts +8 -2
- package/dist/schema/define-node.d.ts.map +1 -1
- package/dist/schema/define-node.js +2 -2
- package/dist/schema/define-node.js.map +1 -1
- package/dist/schema/humanize.d.ts +17 -0
- package/dist/schema/humanize.d.ts.map +1 -1
- package/dist/schema/humanize.js +28 -1
- package/dist/schema/humanize.js.map +1 -1
- package/dist/schema/reading.d.ts +8 -0
- package/dist/schema/reading.d.ts.map +1 -1
- package/dist/schema/reading.js +16 -2
- package/dist/schema/reading.js.map +1 -1
- package/dist/schema/types.d.ts +8 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/value-words.js +2 -2
- package/dist/schema/value-words.js.map +1 -1
- package/dist/starting-document.d.ts +16 -3
- package/dist/starting-document.d.ts.map +1 -1
- package/dist/starting-document.js +32 -5
- package/dist/starting-document.js.map +1 -1
- package/dist/store.d.ts +47 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +176 -13
- package/dist/store.js.map +1 -1
- package/dist/sync/connection.d.ts +24 -5
- package/dist/sync/connection.d.ts.map +1 -1
- package/dist/sync/connection.js +168 -31
- package/dist/sync/connection.js.map +1 -1
- package/dist/sync/engine.d.ts +97 -0
- package/dist/sync/engine.d.ts.map +1 -1
- package/dist/sync/engine.js +159 -1
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/google-calendar.d.ts.map +1 -1
- package/dist/sync/google-calendar.js +18 -1
- package/dist/sync/google-calendar.js.map +1 -1
- package/dist/sync/guest-words.d.ts +9 -0
- package/dist/sync/guest-words.d.ts.map +1 -0
- package/dist/sync/guest-words.js +41 -0
- package/dist/sync/guest-words.js.map +1 -0
- package/dist/sync/index.d.ts +8 -5
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +2 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/notion-stub.d.ts +4 -1
- package/dist/sync/notion-stub.d.ts.map +1 -1
- package/dist/sync/notion-stub.js +40 -0
- package/dist/sync/notion-stub.js.map +1 -1
- package/dist/sync/notion.d.ts +44 -2
- package/dist/sync/notion.d.ts.map +1 -1
- package/dist/sync/notion.js +289 -143
- package/dist/sync/notion.js.map +1 -1
- package/dist/sync/status.d.ts +43 -0
- package/dist/sync/status.d.ts.map +1 -0
- package/dist/sync/status.js +46 -0
- package/dist/sync/status.js.map +1 -0
- package/dist/sync/types.d.ts +60 -0
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js.map +1 -1
- package/dist/theme/marks.d.ts +12 -0
- package/dist/theme/marks.d.ts.map +1 -1
- package/dist/theme/marks.js +5 -0
- package/dist/theme/marks.js.map +1 -1
- package/dist/tidying.d.ts +53 -4
- package/dist/tidying.d.ts.map +1 -1
- package/dist/tidying.js +110 -8
- package/dist/tidying.js.map +1 -1
- package/dist/validate-graph.d.ts +2 -1
- package/dist/validate-graph.d.ts.map +1 -1
- package/dist/validate-graph.js +32 -1
- package/dist/validate-graph.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/words.d.ts +4 -1
- package/dist/words.d.ts.map +1 -1
- package/dist/words.js +4 -1
- package/dist/words.js.map +1 -1
- package/dist/workflow-shape.d.ts +223 -0
- package/dist/workflow-shape.d.ts.map +1 -0
- package/dist/workflow-shape.js +31 -0
- package/dist/workflow-shape.js.map +1 -0
- package/dist/workflows/findings.d.ts +13 -0
- package/dist/workflows/findings.d.ts.map +1 -0
- package/dist/workflows/findings.js +157 -0
- package/dist/workflows/findings.js.map +1 -0
- package/dist/workflows/generate-words.d.ts +12 -0
- package/dist/workflows/generate-words.d.ts.map +1 -0
- package/dist/workflows/generate-words.js +25 -0
- package/dist/workflows/generate-words.js.map +1 -0
- package/dist/workflows/generate.d.ts +59 -0
- package/dist/workflows/generate.d.ts.map +1 -0
- package/dist/workflows/generate.js +165 -0
- package/dist/workflows/generate.js.map +1 -0
- package/dist/workflows/judging.d.ts +17 -0
- package/dist/workflows/judging.d.ts.map +1 -0
- package/dist/workflows/judging.js +11 -0
- package/dist/workflows/judging.js.map +1 -0
- package/dist/workflows/next.d.ts +18 -0
- package/dist/workflows/next.d.ts.map +1 -0
- package/dist/workflows/next.js +75 -0
- package/dist/workflows/next.js.map +1 -0
- package/dist/workflows/on-the-map.d.ts +79 -0
- package/dist/workflows/on-the-map.d.ts.map +1 -0
- package/dist/workflows/on-the-map.js +96 -0
- package/dist/workflows/on-the-map.js.map +1 -0
- package/dist/workflows/policies.d.ts +39 -0
- package/dist/workflows/policies.d.ts.map +1 -0
- package/dist/workflows/policies.js +95 -0
- package/dist/workflows/policies.js.map +1 -0
- package/dist/workflows/resolve.d.ts +55 -0
- package/dist/workflows/resolve.d.ts.map +1 -0
- package/dist/workflows/resolve.js +57 -0
- package/dist/workflows/resolve.js.map +1 -0
- package/dist/workflows/schedule.d.ts +28 -0
- package/dist/workflows/schedule.d.ts.map +1 -0
- package/dist/workflows/schedule.js +160 -0
- package/dist/workflows/schedule.js.map +1 -0
- package/dist/workflows/step-act.d.ts +6 -0
- package/dist/workflows/step-act.d.ts.map +1 -0
- package/dist/workflows/step-act.js +79 -0
- package/dist/workflows/step-act.js.map +1 -0
- package/dist/workflows/step-agent.d.ts +4 -0
- package/dist/workflows/step-agent.d.ts.map +1 -0
- package/dist/workflows/step-agent.js +55 -0
- package/dist/workflows/step-agent.js.map +1 -0
- package/dist/workflows/step-archive.d.ts +8 -0
- package/dist/workflows/step-archive.d.ts.map +1 -0
- package/dist/workflows/step-archive.js +74 -0
- package/dist/workflows/step-archive.js.map +1 -0
- package/dist/workflows/step-classify.d.ts +25 -0
- package/dist/workflows/step-classify.d.ts.map +1 -0
- package/dist/workflows/step-classify.js +160 -0
- package/dist/workflows/step-classify.js.map +1 -0
- package/dist/workflows/step-generate.d.ts +7 -0
- package/dist/workflows/step-generate.d.ts.map +1 -0
- package/dist/workflows/step-generate.js +185 -0
- package/dist/workflows/step-generate.js.map +1 -0
- package/dist/workflows/steps.d.ts +75 -0
- package/dist/workflows/steps.d.ts.map +1 -0
- package/dist/workflows/steps.js +40 -0
- package/dist/workflows/steps.js.map +1 -0
- package/dist/workflows/triggered.d.ts +35 -0
- package/dist/workflows/triggered.d.ts.map +1 -0
- package/dist/workflows/triggered.js +69 -0
- package/dist/workflows/triggered.js.map +1 -0
- package/dist/workflows/values.d.ts +28 -0
- package/dist/workflows/values.d.ts.map +1 -0
- package/dist/workflows/values.js +75 -0
- package/dist/workflows/values.js.map +1 -0
- package/dist/workflows/words.d.ts +10 -0
- package/dist/workflows/words.d.ts.map +1 -0
- package/dist/workflows/words.js +30 -0
- package/dist/workflows/words.js.map +1 -0
- package/dist/workflows/world.d.ts +23 -0
- package/dist/workflows/world.d.ts.map +1 -0
- package/dist/workflows/world.js +50 -0
- package/dist/workflows/world.js.map +1 -0
- package/dist/workflows.d.ts +35 -0
- package/dist/workflows.d.ts.map +1 -0
- package/dist/workflows.js +20 -0
- package/dist/workflows.js.map +1 -0
- package/package.json +12 -2
package/dist/sync/notion.js
CHANGED
|
@@ -34,6 +34,17 @@ import { NOTION_EDGE, NOTION_FITS, NOTION_LEFT_ALONE, NOTION_READ_ONLY, notionFi
|
|
|
34
34
|
* type `NOTION_EDGE`): its value is the ids of the pages it reaches, every
|
|
35
35
|
* one of them — Notion lists 25 on a page and the rest through the
|
|
36
36
|
* property's own endpoint, which is followed — and it is written whole.
|
|
37
|
+
* - SEVERAL DATA SOURCES of one database are kept by one transport, each
|
|
38
|
+
* its own resource (`sources`): a pull reads each in turn, with a cursor
|
|
39
|
+
* of its own, and a push writes each page to the source its resource is.
|
|
40
|
+
* - THE PROPERTIES A MAPPING NEEDS ARE MADE (`make`): a name that finds no
|
|
41
|
+
* property, and has a property to make, is given one by changing the
|
|
42
|
+
* data source (PATCH /data_sources/{id}), each pull that finds it missing;
|
|
43
|
+
* a relation's is made to the source of this transport it links. Nothing
|
|
44
|
+
* there is renamed or deleted, and a property of another type is said and
|
|
45
|
+
* left. What was made is said in the pull's `said`, as every note is the
|
|
46
|
+
* first time; with several sources each sentence names its kind, and
|
|
47
|
+
* `saidOf` keeps each with its resource (request:notion-said-names-its-source).
|
|
37
48
|
* - Notion asking us to slow down (429) is waited out as its `Retry-After`
|
|
38
49
|
* says, within a bound; a refused secret (401) and a database the
|
|
39
50
|
* integration cannot see (404) are said as sentences that say what to do.
|
|
@@ -171,17 +182,44 @@ function valuesOf(page) {
|
|
|
171
182
|
export function notionVersion(page) {
|
|
172
183
|
return `${String(page["last_edited_time"] ?? "")}~${hashOf(valuesOf(page))}`;
|
|
173
184
|
}
|
|
174
|
-
const
|
|
185
|
+
const oneCursor = (parsed) => parsed && typeof parsed.swept === "number" ? { swept: parsed.swept, ...(typeof parsed.since === "string" ? { since: parsed.since } : {}) } : undefined;
|
|
186
|
+
/** Each resource's cursor: a connection of one source keeps its own as it always has; one of several keeps them by resource (`by`). */
|
|
187
|
+
const readCursors = (cursor) => {
|
|
188
|
+
const out = new Map();
|
|
175
189
|
if (!cursor)
|
|
176
|
-
return
|
|
190
|
+
return out;
|
|
177
191
|
try {
|
|
178
192
|
const parsed = JSON.parse(cursor);
|
|
179
|
-
|
|
193
|
+
const single = oneCursor(parsed);
|
|
194
|
+
if (single)
|
|
195
|
+
out.set("pages", single);
|
|
196
|
+
for (const [resource, one] of Object.entries(parsed.by ?? {})) {
|
|
197
|
+
const read = oneCursor(one);
|
|
198
|
+
if (read)
|
|
199
|
+
out.set(resource, read);
|
|
200
|
+
}
|
|
180
201
|
}
|
|
181
202
|
catch {
|
|
182
|
-
|
|
203
|
+
// A cursor this build cannot read is a whole read, as none is.
|
|
183
204
|
}
|
|
205
|
+
return out;
|
|
184
206
|
};
|
|
207
|
+
/** A property's settings as Notion takes them when one is made. */
|
|
208
|
+
function madeSettings(made, linked) {
|
|
209
|
+
switch (made.type) {
|
|
210
|
+
case "select":
|
|
211
|
+
case "multi_select":
|
|
212
|
+
return { [made.type]: { options: (made.options ?? []).map((name) => ({ name })) } };
|
|
213
|
+
case "number":
|
|
214
|
+
return { number: { format: "number" } };
|
|
215
|
+
case "relation":
|
|
216
|
+
return { relation: { data_source_id: linked, type: "single_property", single_property: {} } };
|
|
217
|
+
default:
|
|
218
|
+
return { [made.type]: {} };
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/** "Status, Due and Owner". */
|
|
222
|
+
const listed = (names) => (names.length <= 1 ? names.join("") : `${names.slice(0, -1).join(", ")} and ${names.at(-1)}`);
|
|
185
223
|
export function notion(options) {
|
|
186
224
|
const doFetch = options.fetch ?? globalThis.fetch;
|
|
187
225
|
const base = options.baseUrl ?? NOTION_API;
|
|
@@ -191,10 +229,14 @@ export function notion(options) {
|
|
|
191
229
|
const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
192
230
|
const maxWait = options.maxWait ?? 60_000;
|
|
193
231
|
const said = new Set();
|
|
194
|
-
|
|
195
|
-
|
|
232
|
+
/* What was said for the first time since the last pull returned, each with the resource it is of: the pull's `said` and `saidOf`. */
|
|
233
|
+
let fresh = [];
|
|
234
|
+
const note = (line, resource) => {
|
|
235
|
+
const key = `${resource ?? ""}\n${line}`;
|
|
236
|
+
if (said.has(key))
|
|
196
237
|
return;
|
|
197
|
-
said.add(
|
|
238
|
+
said.add(key);
|
|
239
|
+
fresh.push({ ...(resource ? { resource } : {}), sentence: line });
|
|
198
240
|
options.say?.(line);
|
|
199
241
|
};
|
|
200
242
|
/** One request, Notion's rate limit waited out; anything but a yes thrown as a `NotionError`. */
|
|
@@ -233,11 +275,11 @@ export function notion(options) {
|
|
|
233
275
|
throw new NotionError(`notion: HTTP ${response.status}${code ? ` ${code}` : ""}${said ? `: ${said}` : ""}`, response.status, code);
|
|
234
276
|
}
|
|
235
277
|
};
|
|
236
|
-
/** The
|
|
237
|
-
let
|
|
238
|
-
const
|
|
239
|
-
if (
|
|
240
|
-
return
|
|
278
|
+
/** The database, read once: its title and its data sources. */
|
|
279
|
+
let held;
|
|
280
|
+
const databaseOf = async () => {
|
|
281
|
+
if (held)
|
|
282
|
+
return held;
|
|
241
283
|
let answer;
|
|
242
284
|
try {
|
|
243
285
|
answer = await call("GET", `/databases/${encodeURIComponent(databaseId)}`);
|
|
@@ -251,88 +293,226 @@ export function notion(options) {
|
|
|
251
293
|
}
|
|
252
294
|
throw error;
|
|
253
295
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
: sources.length === 1
|
|
260
|
-
? sources[0]
|
|
261
|
-
: undefined;
|
|
262
|
-
if (!chosen) {
|
|
263
|
-
const list = sources.map((one) => one.name || one.id).join(", ");
|
|
264
|
-
throw new NotionError(named
|
|
265
|
-
? `notion: the database ${title} has no data source ${named}; it holds ${list || "none"}`
|
|
266
|
-
: `notion: the database ${title} holds ${sources.length} data sources — ${list} — so the connection says which with source`, 400, "validation_error");
|
|
267
|
-
}
|
|
268
|
-
sourceId = chosen.id;
|
|
269
|
-
return chosen.id;
|
|
270
|
-
};
|
|
271
|
-
/** The data source's properties, by name — and a sentence when the integration cannot see it. */
|
|
272
|
-
let schema;
|
|
273
|
-
const database = async () => {
|
|
274
|
-
const answer = await call("GET", `/data_sources/${encodeURIComponent(await dataSource())}`);
|
|
275
|
-
const properties = new Map();
|
|
276
|
-
for (const [name, property] of Object.entries(answer["properties"] ?? {})) {
|
|
277
|
-
const type = String(property["type"]);
|
|
278
|
-
const options = property[type]?.["options"] ?? [];
|
|
279
|
-
properties.set(name, { name, type, options: options.map((option) => String(option["name"])) });
|
|
280
|
-
}
|
|
281
|
-
schema = properties;
|
|
282
|
-
return properties;
|
|
283
|
-
};
|
|
284
|
-
/** The mapping's names, each to the property it finds: by name, loosely, and the title for `titleRef`. */
|
|
285
|
-
const resolve = (properties) => {
|
|
286
|
-
const found = resolveRefs(properties);
|
|
287
|
-
// What is kept in step by nothing, said once: a formula, a rollup, a relation no relation here holds.
|
|
288
|
-
const held = new Set([...found.values()].map((property) => property.name));
|
|
289
|
-
const alone = [...properties.values()].filter((property) => !NOTION_FITS[property.type] && !held.has(property.name));
|
|
290
|
-
if (alone.length > 0) {
|
|
291
|
-
note(`left alone in Notion: ${alone.map((property) => `${property.name} (${property.type}${NOTION_LEFT_ALONE[property.type] ? `: ${NOTION_LEFT_ALONE[property.type]}` : ""})`).join(", ")}`);
|
|
292
|
-
}
|
|
293
|
-
return found;
|
|
296
|
+
held = {
|
|
297
|
+
title: (answer["title"] ?? []).map((part) => String(part["plain_text"] ?? "")).join("") || databaseId,
|
|
298
|
+
sources: (answer["data_sources"] ?? []).map((one) => ({ id: String(one["id"]), name: String(one["name"] ?? "") })),
|
|
299
|
+
};
|
|
300
|
+
return held;
|
|
294
301
|
};
|
|
295
|
-
const
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
302
|
+
const declared = options.sources ?? [
|
|
303
|
+
{
|
|
304
|
+
resource: "pages",
|
|
305
|
+
...(options.source ? { source: options.source } : {}),
|
|
306
|
+
...(options.refs ? { refs: options.refs } : {}),
|
|
307
|
+
...(options.quiet ? { quiet: options.quiet } : {}),
|
|
308
|
+
...(options.titleRef ? { titleRef: options.titleRef } : {}),
|
|
309
|
+
...(options.make ? { make: options.make } : {}),
|
|
310
|
+
},
|
|
311
|
+
];
|
|
312
|
+
/** One data source, kept as one resource: its id, its properties, and the pages it reads and writes. */
|
|
313
|
+
const keeper = (spec) => {
|
|
314
|
+
/*
|
|
315
|
+
* WHICH SOURCE A SENTENCE IS OF (request:notion-said-names-its-source):
|
|
316
|
+
* with several, every sentence names its kind — " for <kind>", or
|
|
317
|
+
* "<kind>'s <name>" — and each is kept with its resource beside it.
|
|
318
|
+
*/
|
|
319
|
+
const several = declared.length > 1;
|
|
320
|
+
const kindName = spec.resource.replace(/^pages:/, "");
|
|
321
|
+
const forKind = several ? ` for ${kindName}` : "";
|
|
322
|
+
const refOf = (ref) => (several ? `${kindName}'s ${ref}` : ref);
|
|
323
|
+
const noteHere = (line) => note(line, spec.resource);
|
|
324
|
+
let sourceId;
|
|
325
|
+
/** Its id: the database's only source, or the one `source` names. */
|
|
326
|
+
const dataSource = async () => {
|
|
327
|
+
if (sourceId)
|
|
328
|
+
return sourceId;
|
|
329
|
+
const { title, sources } = await databaseOf();
|
|
330
|
+
const named = spec.source;
|
|
331
|
+
const chosen = named
|
|
332
|
+
? (sources.find((one) => notionKey(one.id) === notionKey(named)) ?? sources.find((one) => one.name === named) ?? sources.find((one) => loose(one.name) === loose(named)))
|
|
333
|
+
: sources.length === 1
|
|
334
|
+
? sources[0]
|
|
335
|
+
: undefined;
|
|
336
|
+
if (!chosen) {
|
|
337
|
+
const list = sources.map((one) => one.name || one.id).join(", ");
|
|
338
|
+
throw new NotionError(named
|
|
339
|
+
? `notion: the database ${title} has no data source ${named}; it holds ${list || "none"}`
|
|
340
|
+
: `notion: the database ${title} holds ${sources.length} data sources — ${list} — so the connection says which with source`, 400, "validation_error");
|
|
341
|
+
}
|
|
342
|
+
sourceId = chosen.id;
|
|
343
|
+
return chosen.id;
|
|
344
|
+
};
|
|
345
|
+
/** Its properties, by name. */
|
|
346
|
+
let schema;
|
|
347
|
+
const readSchema = async () => {
|
|
348
|
+
const answer = await call("GET", `/data_sources/${encodeURIComponent(await dataSource())}`);
|
|
349
|
+
const properties = new Map();
|
|
350
|
+
for (const [name, property] of Object.entries(answer["properties"] ?? {})) {
|
|
351
|
+
const type = String(property["type"]);
|
|
352
|
+
const listed = property[type]?.["options"] ?? [];
|
|
353
|
+
properties.set(name, { name, type, options: listed.map((option) => String(option["name"])) });
|
|
354
|
+
}
|
|
355
|
+
schema = properties;
|
|
356
|
+
return properties;
|
|
357
|
+
};
|
|
358
|
+
/** The property a mapping's name finds: by name, loosely, and the title for `titleRef`. */
|
|
359
|
+
const find = (properties, ref) => {
|
|
360
|
+
const byLoose = [...properties.values()].find((property) => loose(property.name) === loose(ref));
|
|
361
|
+
return properties.get(ref) ?? byLoose ?? (ref === spec.titleRef ? [...properties.values()].find((property) => property.type === "title") : undefined);
|
|
362
|
+
};
|
|
363
|
+
/**
|
|
364
|
+
* THE PROPERTIES IT LACKS, MADE: each name of `make` that finds no
|
|
365
|
+
* property is given one in a single change of the data source; a
|
|
366
|
+
* relation's links the source of the resource it names. Said once, as
|
|
367
|
+
* a sentence; a refusal is said and the pass goes on without them.
|
|
368
|
+
*/
|
|
369
|
+
const makeMissing = async (properties) => {
|
|
370
|
+
if (!spec.make)
|
|
371
|
+
return properties;
|
|
372
|
+
const wanted = {};
|
|
373
|
+
const names = [];
|
|
374
|
+
for (const [ref, made] of Object.entries(spec.make)) {
|
|
375
|
+
if (find(properties, ref))
|
|
376
|
+
continue;
|
|
377
|
+
let linked;
|
|
378
|
+
if (made.type === "relation") {
|
|
379
|
+
const other = keepers.find((one) => one.resource === made.to);
|
|
380
|
+
if (!other)
|
|
381
|
+
continue;
|
|
382
|
+
linked = await other.dataSource();
|
|
383
|
+
}
|
|
384
|
+
const name = made.name ?? ref;
|
|
385
|
+
wanted[name] = madeSettings(made, linked);
|
|
386
|
+
names.push(name);
|
|
387
|
+
}
|
|
388
|
+
if (names.length === 0)
|
|
389
|
+
return properties;
|
|
390
|
+
try {
|
|
391
|
+
await call("PATCH", `/data_sources/${encodeURIComponent(await dataSource())}`, { properties: wanted });
|
|
392
|
+
}
|
|
393
|
+
catch (error) {
|
|
394
|
+
noteHere(`could not make ${listed(names)} in Notion${forKind}: ${error instanceof Error ? error.message.replace(/^notion: /, "") : String(error)}`);
|
|
395
|
+
return properties;
|
|
396
|
+
}
|
|
397
|
+
noteHere(`Made ${names.length} ${names.length === 1 ? "property" : "properties"} in Notion${forKind}: ${listed(names)}`);
|
|
398
|
+
return readSchema();
|
|
399
|
+
};
|
|
400
|
+
/** The mapping's names, each to the property it finds. */
|
|
401
|
+
const resolve = (properties) => {
|
|
402
|
+
const found = resolveRefs(properties);
|
|
403
|
+
// What is kept in step by nothing, said once: a formula, a rollup, a relation no relation here holds.
|
|
404
|
+
const kept = new Set([...found.values()].map((property) => property.name));
|
|
405
|
+
const alone = [...properties.values()].filter((property) => !NOTION_FITS[property.type] && !kept.has(property.name));
|
|
406
|
+
if (alone.length > 0) {
|
|
407
|
+
noteHere(`left alone in Notion${forKind}: ${alone.map((property) => `${property.name} (${property.type}${NOTION_LEFT_ALONE[property.type] ? `: ${NOTION_LEFT_ALONE[property.type]}` : ""})`).join(", ")}`);
|
|
408
|
+
}
|
|
301
409
|
return found;
|
|
302
|
-
}
|
|
303
|
-
const
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
missing.push(ref);
|
|
311
|
-
continue;
|
|
410
|
+
};
|
|
411
|
+
const resolveRefs = (properties) => {
|
|
412
|
+
const found = new Map();
|
|
413
|
+
if (!spec.refs) {
|
|
414
|
+
for (const property of properties.values())
|
|
415
|
+
if (NOTION_FITS[property.type])
|
|
416
|
+
found.set(property.name, property);
|
|
417
|
+
return found;
|
|
312
418
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
419
|
+
const missing = [];
|
|
420
|
+
for (const [ref, fieldType] of Object.entries(spec.refs)) {
|
|
421
|
+
const property = find(properties, ref);
|
|
422
|
+
if (!property) {
|
|
423
|
+
if (!spec.quiet?.includes(ref))
|
|
424
|
+
missing.push(ref);
|
|
425
|
+
continue;
|
|
426
|
+
}
|
|
427
|
+
if (fieldType === NOTION_EDGE || property.type === "relation") {
|
|
428
|
+
if (fieldType === NOTION_EDGE && property.type === "relation")
|
|
429
|
+
found.set(ref, property);
|
|
430
|
+
else if (fieldType === NOTION_EDGE)
|
|
431
|
+
noteHere(`${refOf(ref)}: the property ${property.name} is a ${property.type} property, and a relation holds only a relation property, so it is left out`);
|
|
432
|
+
else
|
|
433
|
+
noteHere(`${refOf(ref)}: the property ${property.name} is a relation, which a relation of the kind holds and a field does not, so it is left out`);
|
|
434
|
+
continue;
|
|
435
|
+
}
|
|
436
|
+
if (!NOTION_FITS[property.type]) {
|
|
437
|
+
noteHere(`${refOf(ref)}: the property ${property.name} is a ${property.type} property, which is not kept in step, so it is left out`);
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
if (fieldType && !notionFits(property.type, fieldType)) {
|
|
441
|
+
noteHere(`${refOf(ref)}: the property ${property.name} is a ${property.type} property, and a ${fieldType} field cannot hold it, so it is left out`);
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
found.set(ref, property);
|
|
321
445
|
}
|
|
322
|
-
if (
|
|
323
|
-
|
|
324
|
-
|
|
446
|
+
if (missing.length > 0)
|
|
447
|
+
noteHere(`no property in the ${several ? `data source for ${kindName}` : "database"} for ${missing.join(", ")}, so ${missing.length === 1 ? "it is" : "they are"} not kept in step`);
|
|
448
|
+
return found;
|
|
449
|
+
};
|
|
450
|
+
/** Every page of one query: edited on or after `since`, oldest first; without it, the whole source. */
|
|
451
|
+
const query = async (since) => {
|
|
452
|
+
const pages = [];
|
|
453
|
+
let start;
|
|
454
|
+
for (;;) {
|
|
455
|
+
const answer = await call("POST", `/data_sources/${encodeURIComponent(await dataSource())}/query`, {
|
|
456
|
+
page_size: options.pageSize ?? 100,
|
|
457
|
+
sorts: [{ timestamp: "last_edited_time", direction: "ascending" }],
|
|
458
|
+
...(since ? { filter: { timestamp: "last_edited_time", last_edited_time: { on_or_after: since } } } : {}),
|
|
459
|
+
...(start ? { start_cursor: start } : {}),
|
|
460
|
+
});
|
|
461
|
+
pages.push(...(answer["results"] ?? []));
|
|
462
|
+
if (answer["has_more"] === true && typeof answer["next_cursor"] === "string") {
|
|
463
|
+
start = answer["next_cursor"];
|
|
464
|
+
continue;
|
|
465
|
+
}
|
|
466
|
+
return pages;
|
|
325
467
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
468
|
+
};
|
|
469
|
+
/** Whether a page this sync knew is gone from the source: archived, in the trash, moved out, or not there at all. */
|
|
470
|
+
const goneFromSource = async (id) => {
|
|
471
|
+
try {
|
|
472
|
+
const page = await call("GET", `/pages/${encodeURIComponent(id)}`);
|
|
473
|
+
const parent = page["parent"];
|
|
474
|
+
return page["archived"] === true || page["in_trash"] === true || notionKey(String(parent?.["data_source_id"] ?? "")) !== notionKey(await dataSource());
|
|
329
475
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
476
|
+
catch (error) {
|
|
477
|
+
if (error instanceof NotionError && error.status === 404)
|
|
478
|
+
return true;
|
|
479
|
+
throw error;
|
|
480
|
+
}
|
|
481
|
+
};
|
|
482
|
+
/** Its properties as this pass keeps them: read, what it lacks made, resolved. */
|
|
483
|
+
const ready = async () => resolve(await makeMissing(await readSchema()));
|
|
484
|
+
return {
|
|
485
|
+
resource: spec.resource,
|
|
486
|
+
dataSource,
|
|
487
|
+
ready,
|
|
488
|
+
/** What a push resolves against: the properties the last pull read, or read now. */
|
|
489
|
+
resolved: async () => (schema ? resolve(schema) : ready()),
|
|
490
|
+
async pull(at, resolved, time) {
|
|
491
|
+
const whole = !at || time - at.swept >= (options.sweepEvery ?? DEFAULT_SWEEP);
|
|
492
|
+
const pages = await query(whole ? undefined : at.since);
|
|
493
|
+
let since = at?.since;
|
|
494
|
+
const changes = [];
|
|
495
|
+
for (const page of pages) {
|
|
496
|
+
const edited = String(page["last_edited_time"] ?? "");
|
|
497
|
+
if (edited && (!since || edited > since))
|
|
498
|
+
since = edited;
|
|
499
|
+
const archived = page["archived"] === true || page["in_trash"] === true;
|
|
500
|
+
changes.push({ resource: spec.resource, id: String(page["id"]), version: notionVersion(page), ...(archived ? { deleted: true } : { fields: await fieldsOf(page, resolved) }) });
|
|
501
|
+
}
|
|
502
|
+
if (whole && options.known) {
|
|
503
|
+
const listedHere = new Set(pages.map((page) => notionKey(String(page["id"]))));
|
|
504
|
+
for (const id of options.known(spec.resource)) {
|
|
505
|
+
if (listedHere.has(notionKey(id)))
|
|
506
|
+
continue;
|
|
507
|
+
if (await goneFromSource(id))
|
|
508
|
+
changes.push({ resource: spec.resource, id, version: "gone", deleted: true });
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
return { changes, cursor: { ...(since ? { since } : {}), swept: whole ? time : at.swept } };
|
|
512
|
+
},
|
|
513
|
+
};
|
|
335
514
|
};
|
|
515
|
+
const keepers = declared.map(keeper);
|
|
336
516
|
const fieldsOf = async (page, resolved) => {
|
|
337
517
|
const properties = page["properties"] ?? {};
|
|
338
518
|
const out = {};
|
|
@@ -363,72 +543,38 @@ export function notion(options) {
|
|
|
363
543
|
return ids.length > 0 ? ids : null;
|
|
364
544
|
}
|
|
365
545
|
};
|
|
366
|
-
/** Every page of one query: edited on or after `since`, oldest first; without it, the whole database. */
|
|
367
|
-
const query = async (since) => {
|
|
368
|
-
const pages = [];
|
|
369
|
-
let start;
|
|
370
|
-
for (;;) {
|
|
371
|
-
const answer = await call("POST", `/data_sources/${encodeURIComponent(await dataSource())}/query`, {
|
|
372
|
-
page_size: options.pageSize ?? 100,
|
|
373
|
-
sorts: [{ timestamp: "last_edited_time", direction: "ascending" }],
|
|
374
|
-
...(since ? { filter: { timestamp: "last_edited_time", last_edited_time: { on_or_after: since } } } : {}),
|
|
375
|
-
...(start ? { start_cursor: start } : {}),
|
|
376
|
-
});
|
|
377
|
-
pages.push(...(answer["results"] ?? []));
|
|
378
|
-
if (answer["has_more"] === true && typeof answer["next_cursor"] === "string") {
|
|
379
|
-
start = answer["next_cursor"];
|
|
380
|
-
continue;
|
|
381
|
-
}
|
|
382
|
-
return pages;
|
|
383
|
-
}
|
|
384
|
-
};
|
|
385
|
-
/** Whether a page this sync knew is gone from the database: archived, in the trash, moved out, or not there at all. */
|
|
386
|
-
const goneFromDatabase = async (id) => {
|
|
387
|
-
try {
|
|
388
|
-
const page = await call("GET", `/pages/${encodeURIComponent(id)}`);
|
|
389
|
-
const parent = page["parent"];
|
|
390
|
-
return page["archived"] === true || page["in_trash"] === true || notionKey(String(parent?.["data_source_id"] ?? "")) !== notionKey(await dataSource());
|
|
391
|
-
}
|
|
392
|
-
catch (error) {
|
|
393
|
-
if (error instanceof NotionError && error.status === 404)
|
|
394
|
-
return true;
|
|
395
|
-
throw error;
|
|
396
|
-
}
|
|
397
|
-
};
|
|
398
546
|
return {
|
|
399
547
|
name: "notion",
|
|
400
548
|
async pull(cursor) {
|
|
401
|
-
|
|
402
|
-
const at = readCursor(cursor);
|
|
549
|
+
fresh = [];
|
|
403
550
|
const time = now();
|
|
404
|
-
const
|
|
405
|
-
|
|
406
|
-
|
|
551
|
+
const cursors = readCursors(cursor);
|
|
552
|
+
// Every source made ready first: a relation made on one links another's source.
|
|
553
|
+
const resolved = new Map();
|
|
554
|
+
for (const one of keepers)
|
|
555
|
+
resolved.set(one.resource, await one.ready());
|
|
407
556
|
const changes = [];
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
changes.push({ resource: "pages", id: String(page["id"]), version: notionVersion(page), ...(archived ? { deleted: true } : { fields: await fieldsOf(page, resolved) }) });
|
|
414
|
-
}
|
|
415
|
-
if (whole && options.known) {
|
|
416
|
-
const listed = new Set(pages.map((page) => notionKey(String(page["id"]))));
|
|
417
|
-
for (const id of options.known()) {
|
|
418
|
-
if (listed.has(notionKey(id)))
|
|
419
|
-
continue;
|
|
420
|
-
if (await goneFromDatabase(id))
|
|
421
|
-
changes.push({ resource: "pages", id, version: "gone", deleted: true });
|
|
422
|
-
}
|
|
557
|
+
const next = new Map();
|
|
558
|
+
for (const one of keepers) {
|
|
559
|
+
const pulled = await one.pull(cursors.get(one.resource), resolved.get(one.resource), time);
|
|
560
|
+
changes.push(...pulled.changes);
|
|
561
|
+
next.set(one.resource, pulled.cursor);
|
|
423
562
|
}
|
|
424
|
-
|
|
563
|
+
// One source of `pages` keeps its cursor as it always has; several keep theirs by resource.
|
|
564
|
+
const only = keepers.length === 1 && keepers[0].resource === "pages" ? next.get("pages") : undefined;
|
|
565
|
+
const written = only ?? { by: Object.fromEntries(next) };
|
|
566
|
+
const saidOf = fresh;
|
|
567
|
+
fresh = [];
|
|
568
|
+
return { changes, cursor: JSON.stringify(written), ...(saidOf.length > 0 ? { said: saidOf.map((one) => one.sentence), saidOf } : {}) };
|
|
425
569
|
},
|
|
426
570
|
async push(writes) {
|
|
427
|
-
const resolved = resolve(schema ?? (await database()));
|
|
428
571
|
const acks = [];
|
|
429
572
|
for (const write of writes) {
|
|
430
573
|
try {
|
|
431
|
-
|
|
574
|
+
const one = keepers.find((keeper) => keeper.resource === write.resource) ?? (keepers.length === 1 ? keepers[0] : undefined);
|
|
575
|
+
if (!one)
|
|
576
|
+
throw new Error(`notion: no data source here keeps ${write.resource}`);
|
|
577
|
+
acks.push(await writeOne(write, await one.resolved(), one.dataSource));
|
|
432
578
|
}
|
|
433
579
|
catch (error) {
|
|
434
580
|
// One refusal is not a failed run: the engine keeps the local state for this write and says so.
|
|
@@ -438,7 +584,7 @@ export function notion(options) {
|
|
|
438
584
|
return acks;
|
|
439
585
|
},
|
|
440
586
|
};
|
|
441
|
-
async function
|
|
587
|
+
async function writeOne(write, resolved, dataSource) {
|
|
442
588
|
if (write.deleted && write.id) {
|
|
443
589
|
try {
|
|
444
590
|
await call("PATCH", `/pages/${encodeURIComponent(write.id)}`, { in_trash: true });
|
package/dist/sync/notion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notion.js","sourceRoot":"","sources":["../../src/sync/notion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notion.js","sourceRoot":"","sources":["../../src/sync/notion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG9G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,2BAA2B,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAuE3C,mDAAmD;AACnD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGzB;IACA;IAHX,YACE,OAAe,EACN,MAAc,EACd,IAAa;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAUD,4HAA4H;AAC5H,SAAS,QAAQ,CAAC,QAAkB,EAAE,KAAc;IAClD,MAAM,GAAG,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACpM,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErC,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5E,6EAA6E;AAC7E,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAE7E,iCAAiC;AACjC,MAAM,UAAU,WAAW,CAAC,QAAc;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,GAAG,CAAE,GAA0B,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAK,IAAI,CAAC,MAAM,CAAsB,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7J,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,CAAC;QACD,KAAK,QAAQ;YACX,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,GAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,CAAE,GAA0B,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1F,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QACD,KAAK,MAAM;YACT,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,GAAY,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,KAAK,UAAU;YACb,OAAO,GAAG,KAAK,IAAI,CAAC;QACtB,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,CAAE,GAA0B,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1G,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,GAAG,GAAG,CAAE,GAA0B,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClF,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,CAAC;QACD;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClH,MAAM,MAAM,GAAW,EAAE,CAAC;IAC1B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,GAAI,CAAC;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;YAAE,GAAG,IAAI,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACtE,EAAE,GAAG,GAAG,CAAC;IACX,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,qDAAqD,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC;IACzH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAc;IACzD,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;IACpE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,WAAW;YACd,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC5D,KAAK,cAAc;YACjB,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACzH,KAAK,MAAM;YACT,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3D,KAAK,UAAU;YACb,OAAO,EAAE,QAAQ,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;QACtC,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,KAAK,UAAU;YACb,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/G;YACE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,oCAAoC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,SAAS,MAAM,CAAC,MAAY;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACjG,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,oEAAoE;AACpE,SAAS,QAAQ,CAAC,IAAU;IAC1B,MAAM,GAAG,GAAS,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAE,IAAI,CAAC,YAAY,CAAsC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9G,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,UAAU;YAAE,SAAS;QACxF,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAU;IACtC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC;AAMD,MAAM,SAAS,GAAG,CAAC,MAAmC,EAAsB,EAAE,CAC5E,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACzJ,uIAAuI;AACvI,MAAM,WAAW,GAAG,CAAC,MAA0B,EAAuB,EAAE;IACtE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA+D,CAAC;QAChG,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrC,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,IAAI;gBAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;IACjE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,mEAAmE;AACnE,SAAS,YAAY,CAAC,IAAgB,EAAE,MAAe;IACrD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc;YACjB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtF,KAAK,QAAQ;YACX,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC1C,KAAK,UAAU;YACb,OAAO,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC;QAChG;YACE,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,+BAA+B;AAC/B,MAAM,MAAM,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE3I,MAAM,UAAU,MAAM,CAAC,OAAsB;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAK,UAAU,CAAC,KAAiB,CAAC;IAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,IAAI,0BAA0B,CAAC;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,qIAAqI;IACrI,IAAI,KAAK,GAA8C,EAAE,CAAC;IAC1D,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,QAAiB,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACzC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,iGAAiG;IACjG,MAAM,IAAI,GAAG,KAAK,EAAE,MAAc,EAAE,IAAY,EAAE,IAAW,EAAiB,EAAE;QAC9E,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,SAAS,CAAC;YACR,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;gBAC/C,MAAM;gBACN,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,OAAO,CAAC,KAAK,EAAE,EAAE;oBAChD,gBAAgB,EAAE,cAAc;oBAChC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC1F,IAAI,MAAM,GAAG,IAAI,GAAG,OAAO;oBAAE,MAAM,IAAI,WAAW,CAAC,mDAAmD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;gBAC3M,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAS,CAAC;YACjE,IAAI,QAAQ,CAAC,EAAE;gBAAE,OAAO,MAAM,CAAC;YAC/B,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,WAAW,CAAC,0BAA0B,MAAM,oIAAoI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACzM,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,WAAW,CAAC,iHAAiH,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACtJ,CAAC;YACD,MAAM,IAAI,WAAW,CAAC,gBAAgB,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrI,CAAC;IACH,CAAC,CAAC;IAEF,+DAA+D;IAC/D,IAAI,IAAyH,CAAC;IAC9H,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,MAAY,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,cAAc,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzD,MAAM,IAAI,WAAW,CACnB,iDAAiD,UAAU,kHAAkH,EAC7K,GAAG,EACH,KAAK,CAAC,IAAI,CACX,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzD,MAAM,IAAI,WAAW,CAAC,WAAW,UAAU,iHAAiH,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtO,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,GAAG;YACL,KAAK,EAAE,CAAE,MAAM,CAAC,OAAO,CAAwB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,UAAU;YAC7H,OAAO,EAAE,CAAE,MAAM,CAAC,cAAc,CAAwB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3I,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAmC,OAAO,CAAC,OAAO,IAAI;QAClE;YACE,QAAQ,EAAE,OAAO;YACjB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD;KACF,CAAC;IAEF,wGAAwG;IACxG,MAAM,MAAM,GAAG,CAAC,IAAyB,EAAE,EAAE;QAC3C;;;;WAIG;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,QAA4B,CAAC;QACjC,qEAAqE;QACrE,MAAM,UAAU,GAAG,KAAK,IAAqB,EAAE;YAC7C,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,MAAM,MAAM,GAAG,KAAK;gBAClB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzK,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oBACpB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACZ,CAAC,CAAC,SAAS,CAAC;YAChB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjE,MAAM,IAAI,WAAW,CACnB,KAAK;oBACH,CAAC,CAAC,wBAAwB,KAAK,uBAAuB,KAAK,cAAc,IAAI,IAAI,MAAM,EAAE;oBACzF,CAAC,CAAC,wBAAwB,KAAK,UAAU,OAAO,CAAC,MAAM,mBAAmB,IAAI,6CAA6C,EAC7H,GAAG,EACH,kBAAkB,CACnB,CAAC;YACJ,CAAC;YACD,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,+BAA+B;QAC/B,IAAI,MAAyC,CAAC;QAC9C,MAAM,UAAU,GAAG,KAAK,IAAoC,EAAE;YAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,iBAAiB,kBAAkB,CAAC,MAAM,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5F,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;YAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAE,MAAM,CAAC,YAAY,CAAsC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChH,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAK,QAAQ,CAAC,IAAI,CAAsB,EAAE,CAAC,SAAS,CAAwB,IAAI,EAAE,CAAC;gBAC/F,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,MAAM,GAAG,UAAU,CAAC;YACpB,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;QAEF,2FAA2F;QAC3F,MAAM,IAAI,GAAG,CAAC,UAAiC,EAAE,GAAW,EAAwB,EAAE;YACpF,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACjG,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxJ,CAAC,CAAC;QAEF;;;;;WAKG;QACH,MAAM,WAAW,GAAG,KAAK,EAAE,UAAiC,EAAkC,EAAE;YAC9F,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO,UAAU,CAAC;YAClC,MAAM,MAAM,GAAyB,EAAE,CAAC;YACxC,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;oBAAE,SAAS;gBACpC,IAAI,MAA0B,CAAC;gBAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9D,IAAI,CAAC,KAAK;wBAAE,SAAS;oBACrB,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;gBACpC,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,EAAE,iBAAiB,kBAAkB,CAAC,MAAM,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;YACzG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,kBAAkB,MAAM,CAAC,KAAK,CAAC,aAAa,OAAO,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpJ,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,QAAQ,CAAC,QAAQ,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,aAAa,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzH,OAAO,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,0DAA0D;QAC1D,MAAM,OAAO,GAAG,CAAC,UAAiC,EAAyB,EAAE;YAC3E,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;YACtC,sGAAsG;YACtG,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACrH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,uBAAuB,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7M,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,UAAiC,EAAyB,EAAE;YAC/E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE;oBAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC/G,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC;wBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClD,SAAS;gBACX,CAAC;gBACD,IAAI,SAAS,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC9D,IAAI,SAAS,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;wBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;yBACnF,IAAI,SAAS,KAAK,WAAW;wBAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,IAAI,SAAS,QAAQ,CAAC,IAAI,6EAA6E,CAAC,CAAC;;wBACzL,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,IAAI,4FAA4F,CAAC,CAAC;oBACxJ,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,IAAI,SAAS,QAAQ,CAAC,IAAI,yDAAyD,CAAC,CAAC;oBACtI,SAAS;gBACX,CAAC;gBACD,IAAI,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;oBACvD,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,IAAI,SAAS,QAAQ,CAAC,IAAI,oBAAoB,SAAS,0CAA0C,CAAC,CAAC;oBACpJ,SAAS;gBACX,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,CAAC,sBAAsB,OAAO,CAAC,CAAC,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC,CAAC,UAAU,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,mBAAmB,CAAC,CAAC;YAC7M,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,uGAAuG;QACvG,MAAM,KAAK,GAAG,KAAK,EAAE,KAAyB,EAAmB,EAAE;YACjE,MAAM,KAAK,GAAW,EAAE,CAAC;YACzB,IAAI,KAAyB,CAAC;YAC9B,SAAS,CAAC;gBACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,iBAAiB,kBAAkB,CAAC,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE;oBACjG,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG;oBAClC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;oBAClE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,GAAG,CAAE,MAAM,CAAC,SAAS,CAAwB,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjE,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC7E,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;oBAC9B,SAAS;gBACX,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QAEF,qHAAqH;QACrH,MAAM,cAAc,GAAG,KAAK,EAAE,EAAU,EAAoB,EAAE;YAC5D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,UAAU,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAqB,CAAC;gBAClD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC;YACzJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;oBAAE,OAAO,IAAI,CAAC;gBACtE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QAEF,kFAAkF;QAClF,MAAM,KAAK,GAAG,KAAK,IAAoC,EAAE,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC;QAEzG,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU;YACV,KAAK;YACL,oFAAoF;YACpF,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAE1D,KAAK,CAAC,IAAI,CAAC,EAAsB,EAAE,QAA+B,EAAE,IAAY;gBAC9E,MAAM,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC;gBAC9E,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACxD,IAAI,KAAK,GAAG,EAAE,EAAE,KAAK,CAAC;gBACtB,MAAM,OAAO,GAAmB,EAAE,CAAC;gBACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;oBACtD,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,GAAG,KAAK,CAAC;wBAAE,KAAK,GAAG,MAAM,CAAC;oBACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;oBACxE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClL,CAAC;gBACD,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/E,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC9C,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;4BAAE,SAAS;wBAC5C,IAAI,MAAM,cAAc,CAAC,EAAE,CAAC;4BAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9G,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;YAC9F,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAU,EAAE,QAA+B,EAAiB,EAAE;QACpF,MAAM,UAAU,GAAI,IAAI,CAAC,YAAY,CAAsC,IAAI,EAAE,CAAC;QAClF,MAAM,GAAG,GAAS,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,+GAA+G;YAC/G,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACzJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,yGAAyG;IACzG,MAAM,UAAU,GAAG,KAAK,EAAE,MAAc,EAAE,UAAkB,EAA4B,EAAE;QACxF,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,IAAI,KAAyB,CAAC;QAC9B,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,UAAU,kBAAkB,CAAC,MAAM,CAAC,eAAe,kBAAkB,CAAC,UAAU,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChM,KAAK,MAAM,IAAI,IAAK,MAAM,CAAC,SAAS,CAAwB,IAAI,EAAE,EAAE,CAAC;gBACnE,MAAM,EAAE,GAAI,IAAI,CAAC,UAAU,CAAsB,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC1D,IAAI,OAAO,EAAE,KAAK,QAAQ;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC7E,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACrC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,QAAQ;QAEd,KAAK,CAAC,IAAI,CAAC,MAAM;YACf,KAAK,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACpC,gFAAgF;YAChF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiC,CAAC;YAC1D,KAAK,MAAM,GAAG,IAAI,OAAO;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YACzE,MAAM,OAAO,GAAmB,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAE,EAAE,IAAI,CAAC,CAAC;gBAC5F,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,4FAA4F;YAC5F,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtG,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,KAAK,CAAC;YACrB,KAAK,GAAG,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACzI,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,MAAM;YACf,MAAM,IAAI,GAAgB,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAC5H,IAAI,CAAC,GAAG;wBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACjF,IAAI,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBACzE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,gGAAgG;oBAChG,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACxI,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;IAEF,KAAK,UAAU,QAAQ,CAAC,KAAkB,EAAE,QAA+B,EAAE,UAAiC;QAC5G,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,EAAE,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACpF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gDAAgD;gBAChD,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;oBAAE,MAAM,KAAK,CAAC;YAC3E,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,UAAU,GAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC/D,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7H,CAAC;QACD,IAAI,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACnH,IAAI,IAAU,CAAC;QACf,IAAI,CAAC;YACH,IAAI,GAAG,KAAK,CAAC,EAAE;gBACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;gBAC/E,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3H,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACrE,MAAM,IAAI,WAAW,CAAC,oBAAoB,KAAK,CAAC,EAAE,wHAAwH,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/L,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1F,CAAC;AACH,CAAC"}
|