@x12i/made-easy 0.0.0-stage → 0.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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -2
  3. package/dist/analysis.d.ts +19 -0
  4. package/dist/analysis.d.ts.map +1 -0
  5. package/dist/analysis.js +90 -0
  6. package/dist/analysis.js.map +1 -0
  7. package/dist/build.d.ts +36 -0
  8. package/dist/build.d.ts.map +1 -0
  9. package/dist/build.js +260 -0
  10. package/dist/build.js.map +1 -0
  11. package/dist/contracts/api.d.ts +447 -0
  12. package/dist/contracts/api.d.ts.map +1 -0
  13. package/dist/contracts/api.js +152 -0
  14. package/dist/contracts/api.js.map +1 -0
  15. package/dist/contracts/blocks.d.ts +221 -0
  16. package/dist/contracts/blocks.d.ts.map +1 -0
  17. package/dist/contracts/blocks.js +392 -0
  18. package/dist/contracts/blocks.js.map +1 -0
  19. package/dist/contracts/diagnostics.d.ts +111 -0
  20. package/dist/contracts/diagnostics.d.ts.map +1 -0
  21. package/dist/contracts/diagnostics.js +122 -0
  22. package/dist/contracts/diagnostics.js.map +1 -0
  23. package/dist/contracts/index.d.ts +11 -0
  24. package/dist/contracts/index.d.ts.map +1 -0
  25. package/dist/contracts/index.js +11 -0
  26. package/dist/contracts/index.js.map +1 -0
  27. package/dist/contracts/json-schema.d.ts +5 -0
  28. package/dist/contracts/json-schema.d.ts.map +1 -0
  29. package/dist/contracts/json-schema.js +41 -0
  30. package/dist/contracts/json-schema.js.map +1 -0
  31. package/dist/contracts/recipe.d.ts +535 -0
  32. package/dist/contracts/recipe.d.ts.map +1 -0
  33. package/dist/contracts/recipe.js +380 -0
  34. package/dist/contracts/recipe.js.map +1 -0
  35. package/dist/contracts/schemas.d.ts +413 -0
  36. package/dist/contracts/schemas.d.ts.map +1 -0
  37. package/dist/contracts/schemas.js +205 -0
  38. package/dist/contracts/schemas.js.map +1 -0
  39. package/dist/draft.d.ts +157 -0
  40. package/dist/draft.d.ts.map +1 -0
  41. package/dist/draft.js +254 -0
  42. package/dist/draft.js.map +1 -0
  43. package/dist/emit-assets.d.ts +2 -0
  44. package/dist/emit-assets.d.ts.map +1 -0
  45. package/dist/emit-assets.js +27 -0
  46. package/dist/emit-assets.js.map +1 -0
  47. package/dist/index.d.ts +25 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +30 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/markdown-doc.d.ts +59 -0
  52. package/dist/markdown-doc.d.ts.map +1 -0
  53. package/dist/markdown-doc.js +187 -0
  54. package/dist/markdown-doc.js.map +1 -0
  55. package/dist/model.d.ts +54 -0
  56. package/dist/model.d.ts.map +1 -0
  57. package/dist/model.js +244 -0
  58. package/dist/model.js.map +1 -0
  59. package/dist/normalize.d.ts +63 -0
  60. package/dist/normalize.d.ts.map +1 -0
  61. package/dist/normalize.js +54 -0
  62. package/dist/normalize.js.map +1 -0
  63. package/dist/npm.d.ts +24 -0
  64. package/dist/npm.d.ts.map +1 -0
  65. package/dist/npm.js +51 -0
  66. package/dist/npm.js.map +1 -0
  67. package/dist/render/blocks.d.ts +17 -0
  68. package/dist/render/blocks.d.ts.map +1 -0
  69. package/dist/render/blocks.js +384 -0
  70. package/dist/render/blocks.js.map +1 -0
  71. package/dist/render/brief.d.ts +77 -0
  72. package/dist/render/brief.d.ts.map +1 -0
  73. package/dist/render/brief.js +62 -0
  74. package/dist/render/brief.js.map +1 -0
  75. package/dist/render/context.d.ts +43 -0
  76. package/dist/render/context.d.ts.map +1 -0
  77. package/dist/render/context.js +88 -0
  78. package/dist/render/context.js.map +1 -0
  79. package/dist/render/html.d.ts +19 -0
  80. package/dist/render/html.d.ts.map +1 -0
  81. package/dist/render/html.js +178 -0
  82. package/dist/render/html.js.map +1 -0
  83. package/dist/render/markdown-out.d.ts +11 -0
  84. package/dist/render/markdown-out.d.ts.map +1 -0
  85. package/dist/render/markdown-out.js +121 -0
  86. package/dist/render/markdown-out.js.map +1 -0
  87. package/dist/render/pdf.d.ts +23 -0
  88. package/dist/render/pdf.d.ts.map +1 -0
  89. package/dist/render/pdf.js +138 -0
  90. package/dist/render/pdf.js.map +1 -0
  91. package/dist/render/prose.d.ts +15 -0
  92. package/dist/render/prose.d.ts.map +1 -0
  93. package/dist/render/prose.js +110 -0
  94. package/dist/render/prose.js.map +1 -0
  95. package/dist/scaffold.d.ts +13 -0
  96. package/dist/scaffold.d.ts.map +1 -0
  97. package/dist/scaffold.js +393 -0
  98. package/dist/scaffold.js.map +1 -0
  99. package/dist/sdk.d.ts +56 -0
  100. package/dist/sdk.d.ts.map +1 -0
  101. package/dist/sdk.js +238 -0
  102. package/dist/sdk.js.map +1 -0
  103. package/dist/source.d.ts +57 -0
  104. package/dist/source.d.ts.map +1 -0
  105. package/dist/source.js +289 -0
  106. package/dist/source.js.map +1 -0
  107. package/dist/theme/book.d.ts +10 -0
  108. package/dist/theme/book.d.ts.map +1 -0
  109. package/dist/theme/book.js +198 -0
  110. package/dist/theme/book.js.map +1 -0
  111. package/dist/util.d.ts +14 -0
  112. package/dist/util.d.ts.map +1 -0
  113. package/dist/util.js +69 -0
  114. package/dist/util.js.map +1 -0
  115. package/dist/validate.d.ts +36 -0
  116. package/dist/validate.d.ts.map +1 -0
  117. package/dist/validate.js +986 -0
  118. package/dist/validate.js.map +1 -0
  119. package/dist/verify.d.ts +35 -0
  120. package/dist/verify.d.ts.map +1 -0
  121. package/dist/verify.js +112 -0
  122. package/dist/verify.js.map +1 -0
  123. package/dist/version.d.ts +3 -0
  124. package/dist/version.d.ts.map +1 -0
  125. package/dist/version.js +4 -0
  126. package/dist/version.js.map +1 -0
  127. package/dist/yamlfile.d.ts +22 -0
  128. package/dist/yamlfile.d.ts.map +1 -0
  129. package/dist/yamlfile.js +129 -0
  130. package/dist/yamlfile.js.map +1 -0
  131. package/package.json +64 -4
  132. package/recipes/index.json +282 -0
  133. package/recipes/shared-1.0.0.json +456 -0
  134. package/schemas/artifact.v1.json +36 -0
  135. package/schemas/assets.v1.json +61 -0
  136. package/schemas/block.v1.json +27 -0
  137. package/schemas/blocks/brief.v1.json +20 -0
  138. package/schemas/blocks/callout.v1.json +25 -0
  139. package/schemas/blocks/code.v1.json +21 -0
  140. package/schemas/blocks/decision.v1.json +80 -0
  141. package/schemas/blocks/evidence-comparison.v1.json +33 -0
  142. package/schemas/blocks/example.v1.json +52 -0
  143. package/schemas/blocks/figure.v1.json +22 -0
  144. package/schemas/blocks/human-action.v1.json +42 -0
  145. package/schemas/blocks/job-map.v1.json +170 -0
  146. package/schemas/blocks/pause.v1.json +25 -0
  147. package/schemas/blocks/reference-profile.v1.json +41 -0
  148. package/schemas/blocks/review-checklist.v1.json +19 -0
  149. package/schemas/blocks/table.v1.json +59 -0
  150. package/schemas/brief.v1.json +157 -0
  151. package/schemas/build-request.v1.json +173 -0
  152. package/schemas/build-result.v1.json +171 -0
  153. package/schemas/checks.v1.json +149 -0
  154. package/schemas/create-request.v1.json +47 -0
  155. package/schemas/diagnostic.v1.json +50 -0
  156. package/schemas/draft-request.v1.json +196 -0
  157. package/schemas/guide.v1.json +172 -0
  158. package/schemas/job.v1.json +107 -0
  159. package/schemas/preview-request.v1.json +153 -0
  160. package/schemas/preview-result.v1.json +84 -0
  161. package/schemas/problem.v1.json +78 -0
  162. package/schemas/recipe-definition.v1.json +673 -0
  163. package/schemas/source-ref.v1.json +111 -0
  164. package/schemas/sources.v1.json +158 -0
  165. package/schemas/validate-request.v1.json +135 -0
  166. package/schemas/validate-result.v1.json +110 -0
  167. package/schemas/verification.v1.json +77 -0
  168. package/themes/book/1.0.0/theme.css +190 -0
  169. package/themes/book/1.0.0/theme.json +5 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
package/dist/npm.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ export interface ResolvedNpmPackage {
2
+ name: string;
3
+ requested: string;
4
+ /** The exact registry version the request resolved to. */
5
+ version: string;
6
+ /** SRI integrity string when the registry provides it (sha512-...). */
7
+ integrity?: string;
8
+ shasum?: string;
9
+ tarball?: string;
10
+ registry: string;
11
+ resolvedFrom: string;
12
+ deprecated?: string;
13
+ }
14
+ export interface ResolveNpmOptions {
15
+ registry?: string;
16
+ fetch?: typeof fetch;
17
+ signal?: AbortSignal;
18
+ }
19
+ /**
20
+ * Resolve a package request (range, tag or exact version) to one exact registry version and its
21
+ * integrity metadata. This is an explicit network operation; builds never call it.
22
+ */
23
+ export declare function resolveNpmPackage(name: string, requested?: string, options?: ResolveNpmOptions): Promise<ResolvedNpmPackage>;
24
+ //# sourceMappingURL=npm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../src/npm.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAOD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsCxI"}
package/dist/npm.js ADDED
@@ -0,0 +1,51 @@
1
+ import semver from 'semver';
2
+ import { MadeEasyError } from './contracts/index.js';
3
+ /**
4
+ * Resolve a package request (range, tag or exact version) to one exact registry version and its
5
+ * integrity metadata. This is an explicit network operation; builds never call it.
6
+ */
7
+ export async function resolveNpmPackage(name, requested = 'latest', options = {}) {
8
+ const registry = (options.registry ?? 'https://registry.npmjs.org').replace(/\/+$/, '');
9
+ if (!/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/.test(name)) {
10
+ throw new MadeEasyError('NPM_RESOLVE_FAILED', `"${name}" is not a valid npm package name.`);
11
+ }
12
+ const url = `${registry}/${name.replace('/', '%2f')}`;
13
+ const doFetch = options.fetch ?? fetch;
14
+ let res;
15
+ try {
16
+ res = await doFetch(url, { headers: { accept: 'application/vnd.npm.install-v1+json' }, signal: options.signal });
17
+ }
18
+ catch (e) {
19
+ throw new MadeEasyError('NPM_RESOLVE_FAILED', `Could not reach ${registry}: ${e.message}`);
20
+ }
21
+ if (res.status === 404)
22
+ throw new MadeEasyError('NPM_RESOLVE_FAILED', `Package ${name} was not found at ${registry}.`);
23
+ if (!res.ok)
24
+ throw new MadeEasyError('NPM_RESOLVE_FAILED', `The registry answered ${res.status} for ${name}.`);
25
+ const doc = (await res.json());
26
+ const versions = doc.versions ?? {};
27
+ const tag = doc['dist-tags']?.[requested];
28
+ let version = tag;
29
+ if (!version) {
30
+ if (versions[requested])
31
+ version = requested;
32
+ else
33
+ version = semver.maxSatisfying(Object.keys(versions), requested, { includePrerelease: false }) ?? undefined;
34
+ }
35
+ if (!version || !versions[version]) {
36
+ throw new MadeEasyError('NPM_RESOLVE_FAILED', `No version of ${name} satisfies "${requested}".`);
37
+ }
38
+ const v = versions[version];
39
+ return {
40
+ name,
41
+ requested,
42
+ version,
43
+ integrity: v.dist?.integrity,
44
+ shasum: v.dist?.shasum,
45
+ tarball: v.dist?.tarball,
46
+ registry,
47
+ resolvedFrom: url,
48
+ deprecated: typeof v.deprecated === 'string' ? v.deprecated : undefined,
49
+ };
50
+ }
51
+ //# sourceMappingURL=npm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm.js","sourceRoot":"","sources":["../src/npm.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2BrD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAS,GAAG,QAAQ,EAAE,UAA6B,EAAE;IACzG,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,4BAA4B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxF,IAAI,CAAC,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,IAAI,IAAI,oCAAoC,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACvC,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,qCAAqC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,mBAAmB,QAAQ,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,WAAW,IAAI,qBAAqB,QAAQ,GAAG,CAAC,CAAC;IACvH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,yBAAyB,GAAG,CAAC,MAAM,QAAQ,IAAI,GAAG,CAAC,CAAC;IAC/G,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAc,CAAC;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAuB,GAAG,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,GAAG,SAAS,CAAC;;YACxC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,CAAC;IACnH,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,aAAa,CAAC,oBAAoB,EAAE,iBAAiB,IAAI,eAAe,SAAS,IAAI,CAAC,CAAC;IACnG,CAAC;IACD,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAE,CAAC;IAC7B,OAAO;QACL,IAAI;QACJ,SAAS;QACT,OAAO;QACP,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS;QAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM;QACtB,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO;QACxB,QAAQ;QACR,YAAY,EAAE,GAAG;QACjB,UAAU,EAAE,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { JobMapProps } from '../contracts/index.js';
2
+ import type { BlockNode } from '../markdown-doc.js';
3
+ import type { ModelEntry } from '../model.js';
4
+ import { type RenderContext } from './context.js';
5
+ export declare const BLOCK_LABELS: {
6
+ OUTCOME: Record<string, string>;
7
+ VERDICT: Record<string, string>;
8
+ };
9
+ export declare function jobMapText(p: JobMapProps): string;
10
+ export declare function exampleStatus(ctx: RenderContext, block: BlockNode): {
11
+ status: 'verified' | 'stale' | 'failed' | 'unverified';
12
+ ref?: string;
13
+ kind?: string;
14
+ };
15
+ export declare function renderBlockHtml(block: BlockNode, entry: ModelEntry, ctx: RenderContext): string;
16
+ export declare function renderBlockMarkdown(block: BlockNode, ctx: RenderContext): string;
17
+ //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/render/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAQV,WAAW,EAOZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAwBtE,eAAO,MAAM,YAAY;;;CAGxB,CAAC;AA6BF,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAajD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,GAAG;IAAE,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAK3J;AAwBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CA6M/F;AAWD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAoHhF"}
@@ -0,0 +1,384 @@
1
+ import { parseRef } from '../analysis.js';
2
+ import { exampleDigest } from '../validate.js';
3
+ import { escapeHtml as esc } from '../util.js';
4
+ import { buildBriefDocument } from './brief.js';
5
+ import { hrefTo, resolveRef } from './context.js';
6
+ import { renderInline } from './prose.js';
7
+ const OUTCOME = {
8
+ pass: '\u2714 Pass',
9
+ fail: '\u2716 Fail',
10
+ missing: '\u25CC Missing',
11
+ contradictory: '\u26A0 Contradictory',
12
+ };
13
+ const VERDICT = {
14
+ usable: '\u2714 Usable',
15
+ partial: '\u25D0 Partial',
16
+ invalid: '\u2716 Invalid',
17
+ };
18
+ const ACTOR = { human: 'Human', operator: 'Operator', system: 'System' };
19
+ const KIND = { decision: 'Human decision', action: 'Human action', delegated: 'Delegated work' };
20
+ const CALLOUT = {
21
+ info: 'Note',
22
+ success: 'Success',
23
+ warning: 'Warning',
24
+ risk: 'Risk',
25
+ exception: 'Exception',
26
+ };
27
+ export const BLOCK_LABELS = {
28
+ OUTCOME,
29
+ VERDICT,
30
+ };
31
+ const list = (items, ctx, cls = '') => items?.length
32
+ ? `<ul${cls ? ` class="${cls}"` : ''}>${items.map((x) => `<li>${renderInline(x, ctx)}</li>`).join('')}</ul>`
33
+ : '';
34
+ function refLinks(ctx, refs) {
35
+ if (!refs?.length)
36
+ return '';
37
+ const items = refs.map((r) => {
38
+ const p = parseRef(r);
39
+ const resolved = p ? resolveRef(ctx, p.kind, p.id, p.anchor) : undefined;
40
+ if (!resolved)
41
+ return `<li><span class="ref ref-unresolved">${esc(r)}</span></li>`;
42
+ const title = resolved.title ? ` title="${esc(resolved.title)}"` : '';
43
+ return resolved.href
44
+ ? `<li><a class="ref ref-${p.kind}" href="${esc(resolved.href)}"${title}>${esc(resolved.label)}</a></li>`
45
+ : `<li><span class="ref ref-${p.kind}"${title}>${esc(resolved.label)}</span></li>`;
46
+ });
47
+ return `<ul class="evidence-links" aria-label="Evidence">${items.join('')}</ul>`;
48
+ }
49
+ function fact(label, body) {
50
+ return body ? `<div class="fact"><dt>${esc(label)}</dt><dd>${body}</dd></div>` : '';
51
+ }
52
+ /* ---------------------------------- HTML ---------------------------------- */
53
+ export function jobMapText(p) {
54
+ const names = (xs) => (xs ?? []).map((x) => x.label).join('; ');
55
+ const parts = [];
56
+ if (p.inputs?.length)
57
+ parts.push(`The job starts from ${names(p.inputs)}.`);
58
+ (p.stages ?? []).forEach((s, i) => {
59
+ parts.push(`Step ${i + 1} (${ACTOR[s.actor] ?? s.actor}): ${s.label}${s.description ? ` \u2014 ${s.description}` : ''}.`);
60
+ });
61
+ if (p.outputs?.length)
62
+ parts.push(`It produces ${names(p.outputs)}.`);
63
+ if (p.sideEffects?.length)
64
+ parts.push(`Side effects: ${names(p.sideEffects)}.`);
65
+ if (p.failurePoints?.length) {
66
+ parts.push(`It can fail at: ${p.failurePoints.map((f) => f.description).join('; ')}.`);
67
+ }
68
+ return parts.join(' ');
69
+ }
70
+ export function exampleStatus(ctx, block) {
71
+ const record = ctx.model.verification?.records?.find((r) => r.example === block.id);
72
+ if (!record)
73
+ return { status: 'unverified' };
74
+ if (record.digest !== exampleDigest(ctx.model, block.props))
75
+ return { status: 'stale' };
76
+ return { status: record.result === 'pass' ? 'verified' : 'failed', ref: record.verifier.ref, kind: record.verifier.kind };
77
+ }
78
+ function resultCard(ctx, r, role, decisive) {
79
+ const rows = (r.checks ?? [])
80
+ .map((c) => {
81
+ const check = ctx.checks.get(c.check);
82
+ const ev = refLinks(ctx, c.evidence);
83
+ return `<tr class="outcome-${c.outcome}${decisive.has(c.check) ? ' decisive' : ''}">
84
+ <th scope="row" data-label="Check"><a href="#check-${esc(c.check)}">${esc(c.check)}</a>${decisive.has(c.check) ? ' <span class="tag">decisive</span>' : ''}<span class="sub">${renderInline(check?.observable, ctx)}</span></th>
85
+ <td data-label="Outcome"><span class="outcome outcome-${c.outcome}">${OUTCOME[c.outcome]}</span></td>
86
+ <td data-label="Observation">${renderInline(c.observation, ctx)}${ev}</td></tr>`;
87
+ })
88
+ .join('');
89
+ const block = (title, items) => items?.length ? `<h5>${title}</h5>${list(items, ctx)}` : '';
90
+ return `<article class="result result-${role} verdict-${r.verdict}" id="result-${esc(r.id)}" aria-labelledby="result-${esc(r.id)}-h">
91
+ <header><h4 id="result-${esc(r.id)}-h">${esc(r.label ?? r.id)}</h4><p class="verdict verdict-${r.verdict}"><span class="sr-only">Verdict: </span>${VERDICT[r.verdict]}</p></header>
92
+ <p>${renderInline(r.summary, ctx)}</p>
93
+ <table class="check-results"><thead><tr><th scope="col">Check</th><th scope="col">Outcome</th><th scope="col">Observation</th></tr></thead><tbody>${rows}</tbody></table>
94
+ ${block('Completed actions', r.completedActions)}${block('Observations', r.observations)}${block('Gaps', r.gaps)}${block('Recommended next steps', r.nextSteps)}
95
+ ${r.recovery ? `<p class="recovery"><strong>Recovery:</strong> ${renderInline(r.recovery, ctx)}</p>` : ''}
96
+ </article>`;
97
+ }
98
+ export function renderBlockHtml(block, entry, ctx) {
99
+ const p = block.props;
100
+ const id = `b-${esc(block.id)}`;
101
+ const wrap = (cls, kicker, inner, extra = '') => `<section class="block ${cls}" id="${id}" aria-label="${esc(kicker)}"${extra}><p class="block-kicker">${esc(kicker)}</p>${inner}</section>`;
102
+ void entry;
103
+ switch (block.type) {
104
+ case 'decision': {
105
+ const d = p;
106
+ const options = (d.options ?? [])
107
+ .map((o) => `<li id="option-${esc(o.id)}"><div class="option-head"><strong>${renderInline(o.label, ctx)}</strong>${o.kind ? ` <span class="tag kind-${o.kind}">${esc(o.kind)}</span>` : ''}</div>
108
+ ${o.when ? `<p><em>When:</em> ${renderInline(o.when, ctx)}</p>` : ''}${o.decidedBy ? `<p><em>Decided by:</em> ${renderInline(o.decidedBy, ctx)}</p>` : ''}
109
+ ${o.consequence ? `<p><em>Consequence:</em> ${renderInline(o.consequence, ctx)}</p>` : ''}${o.rationale ? `<p><em>Why:</em> ${renderInline(o.rationale, ctx)}</p>` : ''}
110
+ ${o.evidence?.length ? `<div class="evidence"><span>Evidence:</span> ${refLinks(ctx, o.evidence)}</div>` : ''}</li>`)
111
+ .join('');
112
+ return wrap('decision', 'Decision', `<dl class="facts">${fact('The job', renderInline(d.job, ctx))}${fact('Question', renderInline(d.question, ctx))}${fact('Decision owner', renderInline(d.owner, ctx))}${fact('Depends on', list(d.dependsOn, ctx))}</dl>
113
+ ${options ? `<h4>Options</h4><ol class="options">${options}</ol>` : ''}
114
+ ${d.evidence?.length ? `<div class="evidence"><span>Evidence:</span> ${refLinks(ctx, d.evidence)}</div>` : ''}`);
115
+ }
116
+ case 'job-map': {
117
+ const m = p;
118
+ const col = (title, items, cls) => items?.length
119
+ ? `<div class="jm-col ${cls}"><h4>${title}</h4><ul>${items.map((x) => `<li id="${esc(block.id)}-${esc(x.id)}"><strong>${renderInline(x.label, ctx)}</strong>${x.description ? `<span class="sub">${renderInline(x.description, ctx)}</span>` : ''}</li>`).join('')}</ul></div>`
120
+ : '';
121
+ const stages = m.stages?.length
122
+ ? `<div class="jm-col stages"><h4>Operator stages</h4><ol>${m.stages
123
+ .map((s) => `<li id="${esc(block.id)}-${esc(s.id)}"><span class="actor actor-${s.actor}">${ACTOR[s.actor]}</span> <strong>${renderInline(s.label, ctx)}</strong>${s.description ? `<span class="sub">${renderInline(s.description, ctx)}</span>` : ''}</li>`)
124
+ .join('')}</ol></div>`
125
+ : '';
126
+ const failures = m.failurePoints?.length
127
+ ? `<h4>Failure points</h4><div class="table-wrap" role="region" tabindex="0" aria-label="Failure points"><table class="failure-points"><thead><tr><th scope="col">Where</th><th scope="col">What fails</th><th scope="col">How to read it</th><th scope="col">Recovery</th></tr></thead><tbody>${m.failurePoints
128
+ .map((f) => `<tr id="${esc(block.id)}-${esc(f.id)}"><th scope="row" data-label="Where">${esc(f.stage ?? f.id)}</th><td data-label="What fails">${renderInline(f.description, ctx)}</td><td data-label="How to read it">${renderInline(f.interpretation, ctx)}</td><td data-label="Recovery">${renderInline(f.recovery, ctx)}</td></tr>`)
129
+ .join('')}</tbody></table></div>`
130
+ : '';
131
+ const mechanisms = m.mechanisms?.length
132
+ ? `<h4>Mechanisms that change a decision</h4><dl class="mechanisms">${m.mechanisms
133
+ .map((x) => `<div id="${esc(block.id)}-${esc(x.id)}"><dt>${renderInline(x.name, ctx)}</dt><dd>${renderInline(x.explanation, ctx)}${x.decisionImpact ? ` <em>Decision impact:</em> ${renderInline(x.decisionImpact, ctx)}` : ''}</dd></div>`)
134
+ .join('')}</dl>`
135
+ : '';
136
+ const text = m.textEquivalent ?? jobMapText(m);
137
+ return wrap('job-map', 'Job map', `<div class="jm-grid">${col('Inputs', m.inputs, 'inputs')}${stages}${col('Outputs', m.outputs, 'outputs')}</div>
138
+ ${m.sideEffects?.length ? `<h4>Side effects</h4><ul class="side-effects">${m.sideEffects.map((s) => `<li>${renderInline(s.label, ctx)}${s.reversible === undefined ? '' : ` <span class="tag">${s.reversible ? 'reversible' : 'not reversible'}</span>`}</li>`).join('')}</ul>` : ''}
139
+ ${failures}${mechanisms}
140
+ <p class="text-equivalent"><strong>Text equivalent.</strong> ${renderInline(text, ctx)}</p>`);
141
+ }
142
+ case 'human-action': {
143
+ const a = p;
144
+ const pause = a.pause ? ctx.pauses.get(a.pause) : undefined;
145
+ return wrap(`human-action kind-${a.kind}`, KIND[a.kind] ?? 'Human action', `<dl class="facts">${fact('Who acts', renderInline(a.actor, ctx))}${fact('What they do', renderInline(a.action, ctx))}</dl>
146
+ ${a.steps?.length ? `<ol class="steps">${a.steps.map((s) => `<li>${renderInline(s, ctx)}</li>`).join('')}</ol>` : ''}
147
+ <dl class="facts">${fact('May continue meanwhile', renderInline(a.mayContinue ?? pause?.mayContinue, ctx))}${fact('How to resume', renderInline(a.resume ?? pause?.resumeWhen, ctx))}</dl>
148
+ ${a.pause ? `<p class="evidence">Pause rule: ${refLinks(ctx, [`pause:${a.pause}`])}</p>` : ''}`);
149
+ }
150
+ case 'pause': {
151
+ const q = p;
152
+ const r = ctx.pauses.get(q.rule);
153
+ return `<section class="block pause" id="pause-${esc(q.rule)}" aria-label="Pause rule ${esc(q.rule)}"><p class="block-kicker">Pause rule \u00B7 ${esc(q.rule)}</p>
154
+ <dl class="facts">${fact('Pause when', renderInline(r?.trigger, ctx))}${fact('Decision owner', renderInline(r?.owner, ctx))}${fact('Work that may continue', renderInline(r?.mayContinue, ctx))}${fact('Resume when', renderInline(r?.resumeWhen, ctx))}</dl>
155
+ ${q.note ? `<p>${renderInline(q.note, ctx)}</p>` : ''}${q.exceptions?.length ? `<h4>Exceptions</h4>${list(q.exceptions, ctx)}` : ''}</section>`;
156
+ }
157
+ case 'brief': {
158
+ const b = p;
159
+ const doc = buildBriefDocument(ctx.model);
160
+ const view = b.view ?? 'both';
161
+ const inputs = (values, title, cls) => `<div class="brief-pane ${cls}">
162
+ <h4>${title}</h4>
163
+ <dl class="brief-inputs">${values.map((v) => `<div id="${cls === 'worked' ? 'input-' + esc(v.id) : 'template-input-' + esc(v.id)}" class="fact"><dt>${esc(v.label)} <code>${esc(v.id)}</code></dt><dd>${v.value ? renderInline(v.value, ctx) : '<span class="empty">(no value)</span>'}</dd></div>`).join('')}</dl></div>`;
164
+ const entryLinks = doc.operatorReference.entries
165
+ .map((e) => {
166
+ const href = hrefTo(ctx, 'operator', `e-${e.id}`);
167
+ return href ? `<li><a href="${esc(href)}">${esc(e.title)}</a> <code>${esc(e.digest.slice(7, 19))}</code></li>` : `<li>${esc(e.title)} <code>${esc(e.digest.slice(7, 19))}</code> <span class="sub">(${esc(e.path)})</span></li>`;
168
+ })
169
+ .join('');
170
+ return wrap('brief', b.title ?? 'Operator brief', `<dl class="facts">${fact('Goal', renderInline(doc.outcome, ctx))}</dl>
171
+ <div class="brief-panes">${view !== 'template' ? inputs(doc.worked.inputs, 'Worked brief \u2014 inputs', 'worked') : ''}${view !== 'worked' ? inputs(doc.template.inputs, 'Blank template \u2014 inputs', 'template') : ''}</div>
172
+ <div class="brief-cols">
173
+ <div><h4>Authority: may read</h4>${list(doc.authority.reads, ctx) || '<p class="empty">Nothing listed.</p>'}</div>
174
+ <div><h4>Authority: may change</h4>${list(doc.authority.changes, ctx) || '<p class="empty">Nothing listed.</p>'}</div>
175
+ <div><h4>Limits</h4>${list(doc.limits, ctx) || '<p class="empty">None.</p>'}</div></div>
176
+ <h4>Pause rules</h4><ul class="pause-summary">${doc.pauseRules.map((r) => `<li><a href="#pause-${esc(r.id)}"><code>${esc(r.id)}</code></a> \u2014 ${renderInline(r.trigger, ctx)} <span class="sub">Owner: ${renderInline(r.owner, ctx)}</span></li>`).join('')}</ul>
177
+ <h4>Acceptance checks</h4><ul class="check-summary">${doc.acceptanceChecks.map((c) => `<li><a href="#check-${esc(c.id)}"><code>${esc(c.id)}</code></a> \u2014 ${renderInline(c.observable, ctx)}</li>`).join('')}</ul>
178
+ <h4>Return</h4><ul class="report-back">${doc.reportBack.map((r) => `<li id="report-${esc(r.id)}"><strong>${renderInline(r.label, ctx)}</strong> <code>${esc(r.id)}</code>${r.description ? ` \u2014 ${renderInline(r.description, ctx)}` : ''}</li>`).join('')}</ul>
179
+ <div class="reference-pin"><h4>Operator reference revision</h4><p><code>${esc(doc.referenceRevision.slice(7, 19))}</code> (${esc(doc.referenceRevision)})</p><ul>${entryLinks}</ul>
180
+ <p class="downloads">${ctx.standalone ? 'Companion files: brief.md, brief.json, operator/reference.md.' : `Download: <a href="${ctx.page === 'human' ? '' : '../'}brief.md">brief.md</a> \u00B7 <a href="${ctx.page === 'human' ? '' : '../'}brief.json">brief.json</a>`}</p></div>`);
181
+ }
182
+ case 'review-checklist': {
183
+ const c = p;
184
+ const ids = c.checks?.length ? c.checks : (ctx.model.brief?.acceptanceChecks ?? []);
185
+ return wrap('review-checklist', c.title ?? 'Review checklist', `<ul class="checklist">${ids
186
+ .map((cid) => {
187
+ const k = ctx.checks.get(cid);
188
+ return `<li><span class="box" aria-hidden="true">\u2610</span><div><p><strong><a href="#check-${esc(cid)}">${esc(cid)}</a></strong> \u2014 ${renderInline(k?.observable, ctx)}</p>
189
+ <p class="sub">Pass when: ${renderInline(k?.passCondition, ctx)}</p><p class="sub">If missing: ${renderInline(k?.onMissing, ctx)} \u00B7 If contradictory: ${renderInline(k?.onContradictory, ctx)}</p></div></li>`;
190
+ })
191
+ .join('')}</ul>`);
192
+ }
193
+ case 'evidence-comparison': {
194
+ const e = p;
195
+ const decisive = new Set(e.decisiveChecks ?? []);
196
+ const usable = e.usable ? ctx.results.get(e.usable) : undefined;
197
+ const flawed = e.flawed ? ctx.results.get(e.flawed) : undefined;
198
+ return wrap('evidence-comparison', 'Evidence comparison', `<div class="compare">${usable ? resultCard(ctx, usable, 'usable', decisive) : ''}${flawed ? resultCard(ctx, flawed, 'flawed', decisive) : ''}</div>
199
+ <dl class="facts">${fact('Decisive checks', e.decisiveChecks?.length ? `<ul>${e.decisiveChecks.map((c) => `<li><a href="#check-${esc(c)}">${esc(c)}</a> \u2014 ${renderInline(ctx.checks.get(c)?.observable, ctx)}</li>`).join('')}</ul>` : '')}
200
+ ${fact('A result is partial when', renderInline(e.partialWhen, ctx))}${fact('A result is invalid when', renderInline(e.invalidWhen, ctx))}${fact('Recovery action', renderInline(e.recovery, ctx))}</dl>`);
201
+ }
202
+ case 'callout': {
203
+ const c = p;
204
+ const v = c.variant ?? 'info';
205
+ return `<aside class="block callout callout-${v}" id="${id}" role="note" aria-label="${CALLOUT[v]}"><p class="callout-title"><span class="callout-label">${CALLOUT[v]}</span>${c.title ? ` \u00B7 ${renderInline(c.title, ctx)}` : ''}</p><p>${renderInline(c.text, ctx)}</p></aside>`;
206
+ }
207
+ case 'code': {
208
+ const c = p;
209
+ const lang = (c.language ?? '').replace(/[^A-Za-z0-9_+-]/g, '');
210
+ return `<figure class="block code-figure" id="${id}">${c.caption ? `<figcaption>${renderInline(c.caption, ctx)}</figcaption>` : ''}<pre class="code" tabindex="0"><code${lang ? ` class="language-${lang}"` : ''}>${esc(c.code)}</code></pre></figure>`;
211
+ }
212
+ case 'table': {
213
+ const t = p;
214
+ return `<div class="block table-block" id="${id}"><div class="table-wrap" role="region" tabindex="0" aria-label="${esc(t.caption ?? 'Table')}"><table>${t.caption ? `<caption>${renderInline(t.caption, ctx)}</caption>` : ''}<thead><tr>${t.columns.map((c) => `<th scope="col"${c.align ? ` class="align-${c.align}"` : ''}>${renderInline(c.label, ctx)}</th>`).join('')}</tr></thead><tbody>${t.rows.map((r) => `<tr>${t.columns.map((c) => `<td data-label="${esc(c.label)}"${c.align ? ` class="align-${c.align}"` : ''}>${renderInline(String(r[c.key] ?? ''), ctx)}</td>`).join('')}</tr>`).join('')}</tbody></table></div></div>`;
215
+ }
216
+ case 'figure': {
217
+ const f = p;
218
+ const asset = ctx.assets.get(f.asset);
219
+ const src = asset ? ctx.assetSrc(asset) : undefined;
220
+ if (!asset || !src)
221
+ return `<figure class="block figure missing" id="${id}"><figcaption>${renderInline(f.caption, ctx)}</figcaption></figure>`;
222
+ const alt = asset.decorative ? '' : (f.alt ?? asset.alt ?? '');
223
+ return `<figure class="block figure" id="${id}"><img src="${esc(src)}" alt="${esc(alt)}" loading="lazy">${f.caption ? `<figcaption>${renderInline(f.caption, ctx)}</figcaption>` : ''}</figure>`;
224
+ }
225
+ case 'reference-profile': {
226
+ const r = p;
227
+ const def = ctx.model.recipe?.profileDefinition;
228
+ const known = [...(def?.referenceFields ?? []), ...(def?.npmFields ?? [])];
229
+ const keys = [...new Set([...known.map((k) => k.key), ...Object.keys(r.fields)])].filter((k) => r.fields[k] !== undefined);
230
+ return wrap(`reference-profile profile-${r.profile}`, `Reference profile \u00B7 ${r.profile}`, `<dl class="facts profile">${keys
231
+ .map((k) => {
232
+ const label = known.find((x) => x.key === k)?.label ?? k;
233
+ const v = r.fields[k];
234
+ return fact(label, Array.isArray(v) ? list(v, ctx) : renderInline(String(v), ctx));
235
+ })
236
+ .join('')}</dl>`);
237
+ }
238
+ case 'example': {
239
+ const x = p;
240
+ const st = exampleStatus(ctx, block);
241
+ const fixture = x.fixture?.replace(/\/$/, '');
242
+ const files = (x.files ?? [])
243
+ .map((f) => {
244
+ const path = fixture ? `${fixture}/${f}` : f;
245
+ const text = ctx.model.files.text(path);
246
+ return text === undefined
247
+ ? ''
248
+ : `<figure class="code-figure"><figcaption><code>${esc(f)}</code></figcaption><pre class="code" tabindex="0"><code>${esc(text.replace(/\n$/, ''))}</code></pre></figure>`;
249
+ })
250
+ .join('');
251
+ const cmds = (title, items) => items?.length ? `<h4>${title}</h4><pre class="code" tabindex="0"><code>${esc(items.join('\n'))}</code></pre>` : '';
252
+ const badge = st.status === 'verified'
253
+ ? `<span class="tag verified">\u2714 Verified (${esc(st.kind ?? '')}: ${esc(st.ref ?? '')})</span>`
254
+ : `<span class="tag unverified">\u25CC ${st.status === 'unverified' ? 'Not verified' : st.status === 'stale' ? 'Verification out of date' : 'Verification failed'}</span>`;
255
+ return wrap('example', `Runnable example${x.title ? ` \u00B7 ${x.title}` : ''}`, `<p>${badge}${x.runtime ? ` <span class="sub">Runtime: ${renderInline(x.runtime, ctx)}</span>` : ''}</p>
256
+ ${x.summary ? `<p>${renderInline(x.summary, ctx)}</p>` : ''}${files ? `<h4>Fixture files</h4>${files}` : ''}${cmds('Setup', x.setup)}${cmds('Run', x.run)}
257
+ ${x.expected ? `<h4>Expected result</h4><pre class="code expected" tabindex="0"><code>${esc(x.expected.replace(/\n$/, ''))}</code></pre>` : ''}`);
258
+ }
259
+ default:
260
+ return `<section class="block unknown" id="${id}"><p>Unknown block type ${esc(block.type)}.</p></section>`;
261
+ }
262
+ }
263
+ /* -------------------------------- Markdown -------------------------------- */
264
+ const md = (s) => (s ?? '').replace(/\r?\n/g, ' ').trim();
265
+ const bullets = (xs) => (xs ?? []).map((x) => `- ${md(x)}`).join('\n');
266
+ const fence = (text, lang = '') => {
267
+ const ticks = '`'.repeat(Math.max(3, ...(text.match(/`+/g) ?? []).map((m) => m.length + 1)));
268
+ return `${ticks}${lang}\n${text.replace(/\n$/, '')}\n${ticks}`;
269
+ };
270
+ export function renderBlockMarkdown(block, ctx) {
271
+ const p = block.props;
272
+ switch (block.type) {
273
+ case 'decision': {
274
+ const d = p;
275
+ return [
276
+ `**Decision** \u00B7 ${md(d.question)}`,
277
+ '',
278
+ d.job ? `- **Job:** ${md(d.job)}` : '',
279
+ d.owner ? `- **Decision owner:** ${md(d.owner)}` : '',
280
+ d.dependsOn?.length ? `- **Depends on:**\n${(d.dependsOn ?? []).map((x) => ` - ${md(x)}`).join('\n')}` : '',
281
+ d.options?.length
282
+ ? `\n**Options**\n\n${d.options
283
+ .map((o, i) => `${i + 1}. **${md(o.label)}**${o.kind ? ` (${o.kind})` : ''}${o.decidedBy ? ` \u2014 decided by ${md(o.decidedBy)}` : ''}${o.consequence ? `. ${md(o.consequence)}` : ''}${o.evidence?.length ? ` _Evidence: ${o.evidence.join(', ')}_` : ''}`)
284
+ .join('\n')}`
285
+ : '',
286
+ ]
287
+ .filter((l) => l !== '')
288
+ .join('\n');
289
+ }
290
+ case 'job-map': {
291
+ const m = p;
292
+ return [
293
+ '**Job map**',
294
+ '',
295
+ m.inputs?.length ? `Inputs:\n${bullets(m.inputs.map((x) => x.label))}\n` : '',
296
+ m.stages?.length ? `Stages:\n${m.stages.map((s, i) => `${i + 1}. [${ACTOR[s.actor]}] ${md(s.label)}${s.description ? ` \u2014 ${md(s.description)}` : ''}`).join('\n')}\n` : '',
297
+ m.outputs?.length ? `Outputs:\n${bullets(m.outputs.map((x) => x.label))}\n` : '',
298
+ m.sideEffects?.length ? `Side effects:\n${bullets(m.sideEffects.map((x) => x.label))}\n` : '',
299
+ m.failurePoints?.length ? `Failure points:\n${m.failurePoints.map((f) => `- ${md(f.description)}${f.interpretation ? ` _Read it as:_ ${md(f.interpretation)}` : ''}${f.recovery ? ` _Recovery:_ ${md(f.recovery)}` : ''}`).join('\n')}\n` : '',
300
+ `_Text equivalent:_ ${md(m.textEquivalent ?? jobMapText(m))}`,
301
+ ]
302
+ .filter((l) => l !== '')
303
+ .join('\n');
304
+ }
305
+ case 'human-action': {
306
+ const a = p;
307
+ return `**${KIND[a.kind]}** \u2014 ${md(a.actor)}: ${md(a.action)}${a.steps?.length ? `\n\n${a.steps.map((s, i) => `${i + 1}. ${md(s)}`).join('\n')}` : ''}${a.resume ? `\n\nResume: ${md(a.resume)}` : ''}`;
308
+ }
309
+ case 'pause': {
310
+ const q = p;
311
+ const r = ctx.pauses.get(q.rule);
312
+ return `**Pause rule \`${q.rule}\`**\n\n- Pause when: ${md(r?.trigger)}\n- Decision owner: ${md(r?.owner)}\n- May continue: ${md(r?.mayContinue)}\n- Resume when: ${md(r?.resumeWhen)}`;
313
+ }
314
+ case 'brief':
315
+ return '_The operator brief is provided in brief.md and brief.json._';
316
+ case 'review-checklist': {
317
+ const c = p;
318
+ const ids = c.checks?.length ? c.checks : (ctx.model.brief?.acceptanceChecks ?? []);
319
+ return ids.map((id) => `- [ ] **${id}** \u2014 ${md(ctx.checks.get(id)?.observable)} (pass when: ${md(ctx.checks.get(id)?.passCondition)})`).join('\n');
320
+ }
321
+ case 'evidence-comparison': {
322
+ const e = p;
323
+ const rows = [e.usable, e.flawed]
324
+ .map((rid) => (rid ? ctx.results.get(rid) : undefined))
325
+ .filter((r) => Boolean(r))
326
+ .map((r) => `**${md(r.label ?? r.id)}** \u2014 ${VERDICT[r.verdict]}\n\n${(r.checks ?? []).map((c) => `- ${c.check}: ${OUTCOME[c.outcome]} \u2014 ${md(c.observation)}`).join('\n')}`);
327
+ return rows.join('\n\n');
328
+ }
329
+ case 'callout': {
330
+ const c = p;
331
+ return `> **${CALLOUT[c.variant ?? 'info']}${c.title ? `: ${md(c.title)}` : ''}** ${md(c.text)}`;
332
+ }
333
+ case 'code': {
334
+ const c = p;
335
+ return `${c.caption ? `_${md(c.caption)}_\n\n` : ''}${fence(c.code, c.language ?? '')}`;
336
+ }
337
+ case 'table': {
338
+ const t = p;
339
+ const head = `| ${t.columns.map((c) => md(c.label)).join(' | ')} |`;
340
+ const sep = `| ${t.columns.map((c) => (c.align === 'right' ? '---:' : c.align === 'center' ? ':---:' : '---')).join(' | ')} |`;
341
+ const body = t.rows.map((r) => `| ${t.columns.map((c) => md(String(r[c.key] ?? '')).replace(/\|/g, '\\|')).join(' | ')} |`);
342
+ return `${t.caption ? `_${md(t.caption)}_\n\n` : ''}${[head, sep, ...body].join('\n')}`;
343
+ }
344
+ case 'figure': {
345
+ const f = p;
346
+ const a = ctx.assets.get(f.asset);
347
+ return a ? `![${a.decorative ? '' : md(f.alt ?? a.alt)}](${a.path})${f.caption ? `\n\n_${md(f.caption)}_` : ''}` : '';
348
+ }
349
+ case 'reference-profile': {
350
+ const r = p;
351
+ const def = ctx.model.recipe?.profileDefinition;
352
+ const known = [...(def?.referenceFields ?? []), ...(def?.npmFields ?? [])];
353
+ return Object.entries(r.fields)
354
+ .map(([k, v]) => `- **${known.find((x) => x.key === k)?.label ?? k}:** ${Array.isArray(v) ? v.map(md).join('; ') : md(String(v))}`)
355
+ .join('\n');
356
+ }
357
+ case 'example': {
358
+ const x = p;
359
+ const fixture = x.fixture?.replace(/\/$/, '');
360
+ const st = exampleStatus(ctx, block);
361
+ const files = (x.files ?? [])
362
+ .map((f) => {
363
+ const text = ctx.model.files.text(fixture ? `${fixture}/${f}` : f);
364
+ return text === undefined ? '' : `\`${f}\`\n\n${fence(text)}`;
365
+ })
366
+ .filter(Boolean)
367
+ .join('\n\n');
368
+ return [
369
+ `**Runnable example${x.title ? ` \u2014 ${md(x.title)}` : ''}** (${st.status}${st.ref ? `: ${st.ref}` : ''})`,
370
+ x.runtime ? `Runtime: ${md(x.runtime)}` : '',
371
+ x.summary ? md(x.summary) : '',
372
+ files,
373
+ x.setup?.length ? `Setup:\n\n${fence(x.setup.join('\n'), 'sh')}` : '',
374
+ x.run?.length ? `Run:\n\n${fence(x.run.join('\n'), 'sh')}` : '',
375
+ x.expected ? `Expected result:\n\n${fence(x.expected)}` : '',
376
+ ]
377
+ .filter(Boolean)
378
+ .join('\n\n');
379
+ }
380
+ default:
381
+ return '';
382
+ }
383
+ }
384
+ //# sourceMappingURL=blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/render/blocks.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,IAAI,GAAG,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAO,GAA2B;IACtC,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,gBAAgB;IACzB,aAAa,EAAE,sBAAsB;CACtC,CAAC;AACF,MAAM,OAAO,GAA2B;IACtC,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,gBAAgB;IACzB,OAAO,EAAE,gBAAgB;CAC1B,CAAC;AACF,MAAM,KAAK,GAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACjG,MAAM,IAAI,GAA2B,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACzH,MAAM,OAAO,GAA2B;IACtC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO;IACP,OAAO;CACR,CAAC;AAIF,MAAM,IAAI,GAAG,CAAC,KAA2B,EAAE,GAAkB,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CACzE,KAAK,EAAE,MAAM;IACX,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;IAC5G,CAAC,CAAC,EAAE,CAAC;AAET,SAAS,QAAQ,CAAC,GAAkB,EAAE,IAA0B;IAC9D,IAAI,CAAC,IAAI,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,IAAI,CAAC,QAAQ;YAAE,OAAO,wCAAwC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;QACnF,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,QAAQ,CAAC,IAAI;YAClB,CAAC,CAAC,yBAAyB,CAAE,CAAC,IAAI,WAAW,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW;YAC1G,CAAC,CAAC,4BAA4B,CAAE,CAAC,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,OAAO,oDAAoD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;AACnF,CAAC;AAED,SAAS,IAAI,CAAC,KAAa,EAAE,IAAY;IACvC,OAAO,IAAI,CAAC,CAAC,CAAC,yBAAyB,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,UAAU,CAAC,CAAc;IACvC,MAAM,KAAK,GAAG,CAAC,EAAmC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjG,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5H,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChF,IAAI,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAkB,EAAE,KAAgB;IAChE,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAgC,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACnH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC5H,CAAC;AAED,SAAS,UAAU,CAAC,GAAkB,EAAE,CAAe,EAAE,IAAyB,EAAE,QAAqB;IACvG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,sBAAsB,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;qDAClC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,qBAAqB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC;wDAC3J,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;+BACzD,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC;IAC7E,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,KAAgB,EAAE,EAAE,CAChD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,OAAO,iCAAiC,IAAI,YAAY,CAAC,CAAC,OAAO,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,6BAA6B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;yBACzG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,kCAAkC,CAAC,CAAC,OAAO,2CAA2C,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;KAChK,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;oJACmH,IAAI;EACtJ,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,SAAS,CAAC;EAC7J,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kDAAkD,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;WAC9F,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAE,KAAiB,EAAE,GAAkB;IACrF,MAAM,CAAC,GAAG,KAAK,CAAC,KAAU,CAAC;IAC3B,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,MAAc,EAAE,KAAa,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CACtE,yBAAyB,GAAG,SAAS,EAAE,iBAAiB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,4BAA4B,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,YAAY,CAAC;IAC9I,KAAK,KAAK,CAAC;IACX,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,GAAG,CAAkB,CAAC;YAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;iBAC9B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sCAAsC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;EAC7L,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;EACvJ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,4BAA4B,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;EACrK,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,gDAAgD,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAC3G;iBACA,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO,IAAI,CACT,UAAU,EACV,UAAU,EACV,qBAAqB,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;EACxN,OAAO,CAAC,CAAC,CAAC,uCAAuC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE;EACpE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,gDAAgD,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACxG,CAAC;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,CAAgB,CAAC;YAC3B,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,KAAwE,EAAE,GAAW,EAAE,EAAE,CACnH,KAAK,EAAE,MAAM;gBACX,CAAC,CAAC,sBAAsB,GAAG,SAAS,KAAK,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa;gBAC/Q,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM;gBAC7B,CAAC,CAAC,0DAA0D,CAAC,CAAC,MAAM;qBAC/D,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CACxP;qBACA,IAAI,CAAC,EAAE,CAAC,aAAa;gBAC1B,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,QAAQ,GAAG,CAAC,CAAC,aAAa,EAAE,MAAM;gBACtC,CAAC,CAAC,+RAA+R,CAAC,CAAC,aAAa;qBAC3S,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,wCAAwC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,oCAAoC,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,wCAAwC,YAAY,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,kCAAkC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,CACnU;qBACA,IAAI,CAAC,EAAE,CAAC,wBAAwB;gBACrC,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM;gBACrC,CAAC,CAAC,oEAAoE,CAAC,CAAC,UAAU;qBAC7E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,8BAA8B,YAAY,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC;qBAC3O,IAAI,CAAC,EAAE,CAAC,OAAO;gBACpB,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,IAAI,CACT,SAAS,EACT,SAAS,EACT,wBAAwB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC;EAC/G,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,SAAS,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;EAClR,QAAQ,GAAG,UAAU;+DACwC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CACrF,CAAC;QACJ,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAqB,CAAC;YAChC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,OAAO,IAAI,CACT,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAC7B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,cAAc,EAC9B,qBAAqB,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;EAC3H,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAChG,IAAI,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,IAAI,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;EAClL,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mCAAmC,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxF,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,CAAe,CAAC;YAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,0CAA0C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,+CAA+C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC/I,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;EACrP,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;QAC5I,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,CAAe,CAAC;YAC1B,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,MAAsD,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE,CAAC,0BAA0B,GAAG;MACpI,KAAK;2BACgB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,uCAAuC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YACrT,MAAM,UAAU,GAAG,GAAG,CAAC,iBAAiB,CAAC,OAAO;iBAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,8BAA8B,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;YACnO,CAAC,CAAC;iBACD,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO,IAAI,CACT,OAAO,EACP,CAAC,CAAC,KAAK,IAAI,gBAAgB,EAC3B,qBAAqB,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;2BAC9C,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,4BAA4B,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,8BAA8B,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;;mCAEvL,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,sCAAsC;qCACtE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,sCAAsC;sBACzF,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,4BAA4B;gDAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,6BAA6B,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;sDACzM,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,YAAY,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;yCACvK,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;0EACpL,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,YAAY,UAAU;uBACtJ,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,sBAAsB,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,0CAA0C,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,4BAA4B,YAAY,CAC7Q,CAAC;QACJ,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,CAAyB,CAAC;YACpC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC;YACpF,OAAO,IAAI,CACT,kBAAkB,EAClB,CAAC,CAAC,KAAK,IAAI,kBAAkB,EAC7B,yBAAyB,GAAG;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9B,OAAO,yFAAyF,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,wBAAwB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC;4BAC7J,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,kCAAkC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,6BAA6B,YAAY,CAAC,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,iBAAiB,CAAC;YAC1M,CAAC,CAAC;iBACD,IAAI,CAAC,EAAE,CAAC,OAAO,CACnB,CAAC;QACJ,CAAC;QACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,CAA4B,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,OAAO,IAAI,CACT,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;oBACjI,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;EAC7O,IAAI,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAClM,CAAC;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,CAAiB,CAAC;YAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC;YAC9B,OAAO,uCAAuC,CAAC,SAAS,EAAE,6BAA6B,OAAO,CAAC,CAAC,CAAC,0DAA0D,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,cAAc,CAAC;QACzR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,GAAG,CAAc,CAAC;YACzB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO,yCAAyC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,uCAAuC,IAAI,CAAC,CAAC,CAAC,oBAAoB,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC;QAC1P,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,CAAe,CAAC;YAC1B,OAAO,sCAAsC,EAAE,oEAAoE,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,8BAA8B,CAAC;QAC7mB,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,CAAgB,CAAC;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpD,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG;gBAAE,OAAO,4CAA4C,EAAE,iBAAiB,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,wBAAwB,CAAC;YAC/I,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;YAC/D,OAAO,oCAAoC,EAAE,eAAe,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;QACnM,CAAC;QACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,CAA0B,CAAC;YACrC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC;YAChD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;YAC3H,OAAO,IAAI,CACT,6BAA6B,CAAC,CAAC,OAAO,EAAE,EACxC,4BAA4B,CAAC,CAAC,OAAO,EAAE,EACvC,6BAA6B,IAAI;iBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;gBACzD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACtB,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACrF,CAAC,CAAC;iBACD,IAAI,CAAC,EAAE,CAAC,OAAO,CACnB,CAAC;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,CAAiB,CAAC;YAC5B,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,OAAO,IAAI,KAAK,SAAS;oBACvB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,iDAAiD,GAAG,CAAC,CAAC,CAAC,4DAA4D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC;YAC9K,CAAC,CAAC;iBACD,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,KAAgB,EAAE,EAAE,CAC/C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,6CAA6C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YACrH,MAAM,KAAK,GACT,EAAE,CAAC,MAAM,KAAK,UAAU;gBACtB,CAAC,CAAC,+CAA+C,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,UAAU;gBACnG,CAAC,CAAC,uCAAuC,EAAE,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,qBAAqB,SAAS,CAAC;YAC/K,OAAO,IAAI,CACT,SAAS,EACT,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACxD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;EACzG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;EACvJ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,yEAAyE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CACzI,CAAC;QACJ,CAAC;QACD;YACE,OAAO,sCAAsC,EAAE,2BAA2B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAC/G,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,MAAM,EAAE,GAAG,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9E,MAAM,OAAO,GAAG,CAAC,EAAwB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7F,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,OAAO,GAAG,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,KAAgB,EAAE,GAAkB;IACtE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAU,CAAC;IAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,GAAG,CAAkB,CAAC;YAC7B,OAAO;gBACL,uBAAuB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;gBACvC,EAAE;gBACF,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBACtC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBACrD,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC5G,CAAC,CAAC,OAAO,EAAE,MAAM;oBACf,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO;yBAC1B,GAAG,CACF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjP;yBACA,IAAI,CAAC,IAAI,CAAC,EAAE;oBACjB,CAAC,CAAC,EAAE;aACP;iBACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;iBACvB,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,CAAgB,CAAC;YAC3B,OAAO;gBACL,aAAa;gBACb,EAAE;gBACF,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC7E,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC/K,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAChF,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC7F,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBAC9O,sBAAsB,EAAE,CAAC,CAAC,CAAC,cAAc,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;aAC9D;iBACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;iBACvB,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAqB,CAAC;YAChC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/M,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,CAAe,CAAC;YAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,kBAAkB,CAAC,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QAC1L,CAAC;QACD,KAAK,OAAO;YACV,OAAO,8DAA8D,CAAC;QACxE,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,CAAyB,CAAC;YACpC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC;YACpF,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1J,CAAC;QACD,KAAK,qBAAqB,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,CAA4B,CAAC;YACvC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;iBAC9B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;iBACtD,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzL,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,CAAiB,CAAC;YAC5B,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACnG,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,GAAG,CAAc,CAAC;YACzB,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,GAAG,CAAe,CAAC;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACpE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/H,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5H,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1F,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,CAAgB,CAAC;YAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxH,CAAC;QACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,CAA0B,CAAC;YACrC,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC;YAChD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3E,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;iBAC5B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBAClI,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,CAAiB,CAAC;YAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;iBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,MAAM,CAAC,CAAC;YAChB,OAAO;gBACL,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;gBAC7G,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC5C,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC9B,KAAK;gBACL,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBACrE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC/D,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;aAC7D;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QACD;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}