@mmnto/totem 1.14.11 → 1.14.13

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 (48) hide show
  1. package/dist/adversarial.test.js +20 -15
  2. package/dist/adversarial.test.js.map +1 -1
  3. package/dist/compile-lesson.d.ts +58 -2
  4. package/dist/compile-lesson.d.ts.map +1 -1
  5. package/dist/compile-lesson.js +307 -29
  6. package/dist/compile-lesson.js.map +1 -1
  7. package/dist/compile-lesson.test.js +491 -19
  8. package/dist/compile-lesson.test.js.map +1 -1
  9. package/dist/compiler-schema.d.ts +154 -9
  10. package/dist/compiler-schema.d.ts.map +1 -1
  11. package/dist/compiler-schema.js +88 -10
  12. package/dist/compiler-schema.js.map +1 -1
  13. package/dist/compiler.d.ts +12 -4
  14. package/dist/compiler.d.ts.map +1 -1
  15. package/dist/compiler.js +25 -5
  16. package/dist/compiler.js.map +1 -1
  17. package/dist/compiler.test.js +194 -50
  18. package/dist/compiler.test.js.map +1 -1
  19. package/dist/config-schema.d.ts +45 -0
  20. package/dist/config-schema.d.ts.map +1 -1
  21. package/dist/config-schema.js +21 -0
  22. package/dist/config-schema.js.map +1 -1
  23. package/dist/config-schema.test.js +50 -1
  24. package/dist/config-schema.test.js.map +1 -1
  25. package/dist/index.d.ts +6 -6
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -3
  28. package/dist/index.js.map +1 -1
  29. package/dist/rule-engine.d.ts +56 -13
  30. package/dist/rule-engine.d.ts.map +1 -1
  31. package/dist/rule-engine.js +62 -40
  32. package/dist/rule-engine.js.map +1 -1
  33. package/dist/rule-engine.test.js +87 -56
  34. package/dist/rule-engine.test.js.map +1 -1
  35. package/dist/rule-metrics.d.ts +40 -0
  36. package/dist/rule-metrics.d.ts.map +1 -1
  37. package/dist/rule-metrics.js +28 -0
  38. package/dist/rule-metrics.js.map +1 -1
  39. package/dist/rule-metrics.test.js +104 -3
  40. package/dist/rule-metrics.test.js.map +1 -1
  41. package/dist/rule-tester.d.ts.map +1 -1
  42. package/dist/rule-tester.js +9 -3
  43. package/dist/rule-tester.js.map +1 -1
  44. package/dist/test-utils.d.ts +9 -0
  45. package/dist/test-utils.d.ts.map +1 -1
  46. package/dist/test-utils.js +13 -0
  47. package/dist/test-utils.js.map +1 -1
  48. package/package.json +1 -1
@@ -4,7 +4,11 @@ import * as path from 'node:path';
4
4
  import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
5
  import { applyRules, engineFields, extractAddedLines, hashLesson, loadCompiledRules, loadCompiledRulesFile, parseCompilerResponse, sanitizeFileGlobs, saveCompiledRules, saveCompiledRulesFile, validateRegex, } from './compiler.js';
6
6
  import { CompiledRuleSchema } from './compiler-schema.js';
7
- import { cleanTmpDir } from './test-utils.js';
7
+ import { cleanTmpDir, makeRuleEngineCtx } from './test-utils.js';
8
+ let ctx;
9
+ beforeEach(() => {
10
+ ctx = makeRuleEngineCtx();
11
+ });
8
12
  // ─── hashLesson ──────────────────────────────────────
9
13
  describe('hashLesson', () => {
10
14
  it('returns a 16-char hex string', () => {
@@ -173,14 +177,14 @@ describe('applyRules', () => {
173
177
  `;
174
178
  it('detects a simple pattern violation', () => {
175
179
  const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
176
- const violations = applyRules(rules, diff);
180
+ const violations = applyRules(ctx, rules, diff);
177
181
  expect(violations).toHaveLength(1);
178
182
  expect(violations[0].rule.message).toBe('Do not call npm.install directly');
179
183
  expect(violations[0].file).toBe('src/app.ts');
180
184
  });
181
185
  it('returns no violations when patterns do not match', () => {
182
186
  const rules = [makeRule('\\byarn\\b', 'Do not use yarn')];
183
- const violations = applyRules(rules, diff);
187
+ const violations = applyRules(ctx, rules, diff);
184
188
  expect(violations).toHaveLength(0);
185
189
  });
186
190
  it('applies multiple rules', () => {
@@ -188,28 +192,28 @@ describe('applyRules', () => {
188
192
  makeRule('\\bnpm\\b', 'Do not use npm'),
189
193
  makeRule('\\berror\\b', 'Use err, not error'),
190
194
  ];
191
- const violations = applyRules(rules, diff);
195
+ const violations = applyRules(ctx, rules, diff);
192
196
  expect(violations).toHaveLength(2);
193
197
  });
194
198
  it('throws on rules with invalid regex patterns (mmnto/totem#1442 — no silent-compliance footgun)', () => {
195
199
  const rules = [makeRule('[invalid', 'Bad pattern')];
196
- expect(() => applyRules(rules, diff)).toThrow(/invalid regex pattern/);
200
+ expect(() => applyRules(ctx, rules, diff)).toThrow(/invalid regex pattern/);
197
201
  });
198
202
  it('returns empty for empty diff', () => {
199
203
  const rules = [makeRule('anything', 'test')];
200
- expect(applyRules(rules, '')).toEqual([]);
204
+ expect(applyRules(ctx, rules, '')).toEqual([]);
201
205
  });
202
206
  it('returns empty for empty rules', () => {
203
- expect(applyRules([], diff)).toEqual([]);
207
+ expect(applyRules(ctx, [], diff)).toEqual([]);
204
208
  });
205
209
  it('excludes files listed in excludeFiles', () => {
206
210
  const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
207
- const violations = applyRules(rules, diff, ['src/app.ts']);
211
+ const violations = applyRules(ctx, rules, diff, ['src/app.ts']);
208
212
  expect(violations).toHaveLength(0);
209
213
  });
210
214
  it('still detects violations in non-excluded files', () => {
211
215
  const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
212
- const violations = applyRules(rules, diff, ['other-file.ts']);
216
+ const violations = applyRules(ctx, rules, diff, ['other-file.ts']);
213
217
  expect(violations).toHaveLength(1);
214
218
  });
215
219
  // ─── fileGlobs scoping ─────────────────────────────
@@ -233,7 +237,7 @@ describe('applyRules', () => {
233
237
  ].join('\n');
234
238
  it('applies rule to all files when fileGlobs is absent', () => {
235
239
  const rules = [makeRule('\\$\\w+', 'Found a dollar-sign variable')];
236
- const violations = applyRules(rules, multiFileDiff);
240
+ const violations = applyRules(ctx, rules, multiFileDiff);
237
241
  expect(violations).toHaveLength(2); // matches in both .sh and .ts
238
242
  });
239
243
  it('restricts rule to matching file types via fileGlobs', () => {
@@ -243,7 +247,7 @@ describe('applyRules', () => {
243
247
  fileGlobs: ['*.sh', '*.bash'],
244
248
  },
245
249
  ];
246
- const violations = applyRules(rules, multiFileDiff);
250
+ const violations = applyRules(ctx, rules, multiFileDiff);
247
251
  expect(violations).toHaveLength(1);
248
252
  expect(violations[0].file).toBe('deploy.sh');
249
253
  });
@@ -254,7 +258,7 @@ describe('applyRules', () => {
254
258
  fileGlobs: ['*.py'],
255
259
  },
256
260
  ];
257
- const violations = applyRules(rules, multiFileDiff);
261
+ const violations = applyRules(ctx, rules, multiFileDiff);
258
262
  expect(violations).toHaveLength(0);
259
263
  });
260
264
  it('handles **/*.ext glob pattern', () => {
@@ -264,7 +268,7 @@ describe('applyRules', () => {
264
268
  fileGlobs: ['**/*.ts'],
265
269
  },
266
270
  ];
267
- const violations = applyRules(rules, multiFileDiff);
271
+ const violations = applyRules(ctx, rules, multiFileDiff);
268
272
  expect(violations).toHaveLength(1);
269
273
  expect(violations[0].file).toBe('src/utils.ts');
270
274
  });
@@ -275,7 +279,7 @@ describe('applyRules', () => {
275
279
  fileGlobs: [],
276
280
  },
277
281
  ];
278
- const violations = applyRules(rules, multiFileDiff);
282
+ const violations = applyRules(ctx, rules, multiFileDiff);
279
283
  expect(violations).toHaveLength(2);
280
284
  });
281
285
  it('excludes files matching negated glob patterns', () => {
@@ -285,7 +289,7 @@ describe('applyRules', () => {
285
289
  fileGlobs: ['*.sh', '*.ts', '!*.sh'],
286
290
  },
287
291
  ];
288
- const violations = applyRules(rules, multiFileDiff);
292
+ const violations = applyRules(ctx, rules, multiFileDiff);
289
293
  expect(violations).toHaveLength(1);
290
294
  expect(violations[0].file).toBe('src/utils.ts');
291
295
  });
@@ -320,7 +324,7 @@ describe('applyRules', () => {
320
324
  fileGlobs: ['packages/mcp/**/*.ts'],
321
325
  },
322
326
  ];
323
- const violations = applyRules(rules, monorepoMultiFileDiff);
327
+ const violations = applyRules(ctx, rules, monorepoMultiFileDiff);
324
328
  expect(violations).toHaveLength(2); // server.ts + tools.test.ts
325
329
  expect(violations.every((v) => v.file.startsWith('packages/mcp/'))).toBe(true);
326
330
  });
@@ -331,7 +335,7 @@ describe('applyRules', () => {
331
335
  fileGlobs: ['packages/mcp/**/*.ts', '!**/*.test.ts'],
332
336
  },
333
337
  ];
334
- const violations = applyRules(rules, monorepoMultiFileDiff);
338
+ const violations = applyRules(ctx, rules, monorepoMultiFileDiff);
335
339
  expect(violations).toHaveLength(1);
336
340
  expect(violations[0].file).toBe('packages/mcp/src/server.ts');
337
341
  });
@@ -342,7 +346,7 @@ describe('applyRules', () => {
342
346
  fileGlobs: ['packages/cli/**/*.ts'],
343
347
  },
344
348
  ];
345
- const violations = applyRules(rules, monorepoMultiFileDiff);
349
+ const violations = applyRules(ctx, rules, monorepoMultiFileDiff);
346
350
  expect(violations).toHaveLength(0);
347
351
  });
348
352
  // ─── Inline suppression (totem-ignore) ─────────────
@@ -357,7 +361,7 @@ describe('applyRules', () => {
357
361
  ' export default x;',
358
362
  ].join('\n');
359
363
  const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
360
- const violations = applyRules(rules, suppressedDiff);
364
+ const violations = applyRules(ctx, rules, suppressedDiff);
361
365
  expect(violations).toHaveLength(0);
362
366
  });
363
367
  it('suppresses next-line violation with totem-ignore-next-line (both added)', () => {
@@ -372,7 +376,7 @@ describe('applyRules', () => {
372
376
  ' export default x;',
373
377
  ].join('\n');
374
378
  const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
375
- const violations = applyRules(rules, suppressedDiff);
379
+ const violations = applyRules(ctx, rules, suppressedDiff);
376
380
  expect(violations).toHaveLength(0);
377
381
  });
378
382
  it('suppresses next-line violation when directive is a context line', () => {
@@ -389,7 +393,7 @@ describe('applyRules', () => {
389
393
  ' export default x;',
390
394
  ].join('\n');
391
395
  const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
392
- const violations = applyRules(rules, suppressedDiff);
396
+ const violations = applyRules(ctx, rules, suppressedDiff);
393
397
  expect(violations).toHaveLength(0);
394
398
  });
395
399
  it('does not suppress when there is no directive', () => {
@@ -403,7 +407,7 @@ describe('applyRules', () => {
403
407
  ' export default x;',
404
408
  ].join('\n');
405
409
  const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install directly')];
406
- const violations = applyRules(rules, plainDiff);
410
+ const violations = applyRules(ctx, rules, plainDiff);
407
411
  expect(violations).toHaveLength(1);
408
412
  });
409
413
  it('supports hash-style comment suppression', () => {
@@ -418,7 +422,7 @@ describe('applyRules', () => {
418
422
  ' exit 0',
419
423
  ].join('\n');
420
424
  const rules = [makeRule('\\$[A-Z_]+', 'Quote shell variables')];
421
- const violations = applyRules(rules, suppressedDiff);
425
+ const violations = applyRules(ctx, rules, suppressedDiff);
422
426
  expect(violations).toHaveLength(0);
423
427
  });
424
428
  it('supports HTML comment suppression', () => {
@@ -432,7 +436,7 @@ describe('applyRules', () => {
432
436
  ' More text',
433
437
  ].join('\n');
434
438
  const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install')];
435
- const violations = applyRules(rules, suppressedDiff);
439
+ const violations = applyRules(ctx, rules, suppressedDiff);
436
440
  expect(violations).toHaveLength(0);
437
441
  });
438
442
  it('suppresses all rule violations on a single ignored line', () => {
@@ -449,7 +453,7 @@ describe('applyRules', () => {
449
453
  makeRule('\\bnpm\\.install\\b', 'Do not call npm.install'),
450
454
  makeRule('\\berror\\b', 'Use err, not error'),
451
455
  ];
452
- const violations = applyRules(rules, suppressedDiff);
456
+ const violations = applyRules(ctx, rules, suppressedDiff);
453
457
  expect(violations).toHaveLength(0);
454
458
  });
455
459
  it('handles suppression at first line of hunk (no preceding line)', () => {
@@ -463,7 +467,7 @@ describe('applyRules', () => {
463
467
  ' export default x;',
464
468
  ].join('\n');
465
469
  const rules = [makeRule('\\bnpm\\.install\\b', 'Do not call npm.install')];
466
- const violations = applyRules(rules, suppressedDiff);
470
+ const violations = applyRules(ctx, rules, suppressedDiff);
467
471
  expect(violations).toHaveLength(0);
468
472
  });
469
473
  it('excludes test files with negated glob while matching source files', () => {
@@ -489,7 +493,7 @@ describe('applyRules', () => {
489
493
  fileGlobs: ['*.ts', '!*.test.ts', '!*.spec.ts'],
490
494
  },
491
495
  ];
492
- const violations = applyRules(rules, testFileDiff);
496
+ const violations = applyRules(ctx, rules, testFileDiff);
493
497
  expect(violations).toHaveLength(1);
494
498
  expect(violations[0].file).toBe('src/utils.ts');
495
499
  });
@@ -647,7 +651,7 @@ describe('compiled rules file I/O', () => {
647
651
  '+const first = "the active rule must fire here";',
648
652
  '+const second = "the archived rule must not fire here";',
649
653
  ].join('\n');
650
- const violations = applyRules(rules, diff);
654
+ const violations = applyRules(ctx, rules, diff);
651
655
  expect(violations).toHaveLength(1);
652
656
  expect(violations[0].rule.lessonHash).toBe(activeRule.lessonHash);
653
657
  expect(violations.some((v) => v.rule.lessonHash === archivedRule.lessonHash)).toBe(false);
@@ -665,6 +669,8 @@ describe('nonCompilable tuple schema (#1280)', () => {
665
669
  it('loads legacy string-only nonCompilable arrays without errors', async () => {
666
670
  // Pre-#1280: nonCompilable was Array<string>. Existing 1.13.0 compiled-rules.json
667
671
  // files in the wild have this shape. The schema must keep accepting them.
672
+ // mmnto-ai/totem#1481: strings migrate to the 4-tuple shape with
673
+ // reasonCode: 'legacy-unknown'.
668
674
  const { loadCompiledRulesFile } = await import('./compiler.js');
669
675
  const rulesPath = path.join(tmpDir, 'compiled-rules.json');
670
676
  fs.writeFileSync(rulesPath, JSON.stringify({
@@ -673,13 +679,16 @@ describe('nonCompilable tuple schema (#1280)', () => {
673
679
  nonCompilable: ['legacy-hash-aaa', 'legacy-hash-bbb'],
674
680
  }));
675
681
  const loaded = loadCompiledRulesFile(rulesPath);
676
- // Loader normalizes legacy strings to {hash, title} tuples for downstream uniformity.
677
682
  expect(loaded.nonCompilable).toEqual([
678
- { hash: 'legacy-hash-aaa', title: '(legacy entry)' },
679
- { hash: 'legacy-hash-bbb', title: '(legacy entry)' },
683
+ { hash: 'legacy-hash-aaa', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
684
+ { hash: 'legacy-hash-bbb', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
680
685
  ]);
681
686
  });
682
- it('loads new tuple-form nonCompilable arrays', async () => {
687
+ it('loads legacy 2-tuple nonCompilable arrays and migrates to 4-tuple', async () => {
688
+ // Pre-mmnto-ai/totem#1481: nonCompilable was Array<{hash, title}>. Files
689
+ // compiled between #1280 and #1481 carry this shape. The Read transform
690
+ // normalizes them to the 4-tuple with reasonCode: 'legacy-unknown' and
691
+ // preserves the original title.
683
692
  const { loadCompiledRulesFile } = await import('./compiler.js');
684
693
  const rulesPath = path.join(tmpDir, 'compiled-rules.json');
685
694
  fs.writeFileSync(rulesPath, JSON.stringify({
@@ -692,13 +701,53 @@ describe('nonCompilable tuple schema (#1280)', () => {
692
701
  }));
693
702
  const loaded = loadCompiledRulesFile(rulesPath);
694
703
  expect(loaded.nonCompilable).toEqual([
695
- { hash: 'newer-hash-1', title: 'Async error handling without context' },
696
- { hash: 'newer-hash-2', title: 'SSR hydration mismatch logging' },
704
+ {
705
+ hash: 'newer-hash-1',
706
+ title: 'Async error handling without context',
707
+ reasonCode: 'legacy-unknown',
708
+ },
709
+ {
710
+ hash: 'newer-hash-2',
711
+ title: 'SSR hydration mismatch logging',
712
+ reasonCode: 'legacy-unknown',
713
+ },
697
714
  ]);
698
715
  });
699
- it('loads mixed legacy + tuple arrays', async () => {
700
- // Migration scenario: a project with stale legacy entries plus new tuple entries
701
- // (e.g., someone upgraded mid-cycle). Loader normalizes both to tuples.
716
+ it('loads modern 4-tuple nonCompilable arrays without transforming them', async () => {
717
+ // Post-mmnto-ai/totem#1481 shape. The Read schema recognizes the full
718
+ // 4-tuple and passes it through unchanged (no 'legacy-unknown' coercion).
719
+ const { loadCompiledRulesFile } = await import('./compiler.js');
720
+ const rulesPath = path.join(tmpDir, 'compiled-rules.json');
721
+ fs.writeFileSync(rulesPath, JSON.stringify({
722
+ version: 1,
723
+ rules: [],
724
+ nonCompilable: [
725
+ {
726
+ hash: 'modern-1',
727
+ title: 'Cannot distill into a rule',
728
+ reasonCode: 'out-of-scope',
729
+ reason: 'Architectural principle.',
730
+ },
731
+ { hash: 'modern-2', title: 'Missing example', reasonCode: 'missing-badexample' },
732
+ ],
733
+ }));
734
+ const loaded = loadCompiledRulesFile(rulesPath);
735
+ expect(loaded.nonCompilable).toEqual([
736
+ {
737
+ hash: 'modern-1',
738
+ title: 'Cannot distill into a rule',
739
+ reasonCode: 'out-of-scope',
740
+ reason: 'Architectural principle.',
741
+ },
742
+ { hash: 'modern-2', title: 'Missing example', reasonCode: 'missing-badexample' },
743
+ ]);
744
+ });
745
+ it('loads mixed legacy + 2-tuple + 4-tuple arrays', async () => {
746
+ // Migration scenario: a project with stale legacy strings, intermediate
747
+ // 2-tuples, and fresh 4-tuples coexisting (e.g., someone upgraded mid
748
+ // cycle across multiple schema versions). Loader normalizes the first
749
+ // two shapes to 4-tuples with reasonCode: 'legacy-unknown' and leaves
750
+ // the modern entry untouched.
702
751
  const { loadCompiledRulesFile } = await import('./compiler.js');
703
752
  const rulesPath = path.join(tmpDir, 'compiled-rules.json');
704
753
  fs.writeFileSync(rulesPath, JSON.stringify({
@@ -707,37 +756,91 @@ describe('nonCompilable tuple schema (#1280)', () => {
707
756
  nonCompilable: [
708
757
  'legacy-hash',
709
758
  { hash: 'tuple-hash', title: 'Has a real title' },
759
+ { hash: 'modern-hash', title: 'Modern entry', reasonCode: 'out-of-scope' },
710
760
  'another-legacy',
711
761
  ],
712
762
  }));
713
763
  const loaded = loadCompiledRulesFile(rulesPath);
714
764
  expect(loaded.nonCompilable).toEqual([
715
- { hash: 'legacy-hash', title: '(legacy entry)' },
716
- { hash: 'tuple-hash', title: 'Has a real title' },
717
- { hash: 'another-legacy', title: '(legacy entry)' },
765
+ { hash: 'legacy-hash', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
766
+ { hash: 'tuple-hash', title: 'Has a real title', reasonCode: 'legacy-unknown' },
767
+ { hash: 'modern-hash', title: 'Modern entry', reasonCode: 'out-of-scope' },
768
+ { hash: 'another-legacy', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
718
769
  ]);
719
770
  });
720
- it('round-trips tuple entries through save and load', async () => {
771
+ it('Write schema rejects malformed shapes with a loud error', async () => {
772
+ // Read schema is permissive (accepts 3 shapes); Write schema is strict.
773
+ // mmnto-ai/totem#1481 locks this separation so legacy 2-tuples cannot
774
+ // round-trip through save and silently stay legacy on disk.
775
+ const { NonCompilableEntryWriteSchema } = await import('./compiler.js');
776
+ // Legacy string: rejected on write.
777
+ expect(NonCompilableEntryWriteSchema.safeParse('raw-hash').success).toBe(false);
778
+ // Legacy 2-tuple: rejected on write.
779
+ expect(NonCompilableEntryWriteSchema.safeParse({ hash: 'h', title: 't' }).success).toBe(false);
780
+ // Modern 4-tuple: accepted.
781
+ expect(NonCompilableEntryWriteSchema.safeParse({
782
+ hash: 'h',
783
+ title: 't',
784
+ reasonCode: 'out-of-scope',
785
+ }).success).toBe(true);
786
+ // reasonCode: 'legacy-unknown' is explicitly accepted on write so migrated
787
+ // 2-tuples can round-trip to disk on the first post-#1481 compile (the
788
+ // behavioral invariant that fresh producers never emit 'legacy-unknown'
789
+ // lives at the call site, not the schema).
790
+ expect(NonCompilableEntryWriteSchema.safeParse({
791
+ hash: 'h',
792
+ title: 't',
793
+ reasonCode: 'legacy-unknown',
794
+ }).success).toBe(true);
795
+ });
796
+ it('saveCompiledRulesFile rejects malformed nonCompilable entries', async () => {
797
+ // The writer is the last line of defense for the Read/Write invariant
798
+ // (lesson 400fed87). If a caller wires up a Read-shape entry into the
799
+ // save path, we fail loudly rather than persist it.
800
+ const { saveCompiledRulesFile } = await import('./compiler.js');
801
+ const rulesPath = path.join(tmpDir, 'compiled-rules.json');
802
+ const malformed = {
803
+ version: 1,
804
+ rules: [],
805
+ // Deliberately a legacy 2-tuple — Read-shape leaking into Write path.
806
+ nonCompilable: [{ hash: 'h', title: 't' }],
807
+ };
808
+ expect(() => saveCompiledRulesFile(rulesPath, malformed)).toThrowError(/nonCompilable\[0\] failed strict write validation/);
809
+ });
810
+ it('round-trips 4-tuple entries through save and load', async () => {
721
811
  const { loadCompiledRulesFile, saveCompiledRulesFile } = await import('./compiler.js');
722
812
  const rulesPath = path.join(tmpDir, 'compiled-rules.json');
723
813
  saveCompiledRulesFile(rulesPath, {
724
814
  version: 1,
725
815
  rules: [],
726
816
  nonCompilable: [
727
- { hash: 'roundtrip-1', title: 'First entry' },
728
- { hash: 'roundtrip-2', title: 'Second entry' },
817
+ {
818
+ hash: 'roundtrip-1',
819
+ title: 'First entry',
820
+ reasonCode: 'out-of-scope',
821
+ reason: 'Architectural principle, not a pattern.',
822
+ },
823
+ { hash: 'roundtrip-2', title: 'Second entry', reasonCode: 'missing-badexample' },
729
824
  ],
730
825
  });
731
826
  const loaded = loadCompiledRulesFile(rulesPath);
732
827
  expect(loaded.nonCompilable).toEqual([
733
- { hash: 'roundtrip-1', title: 'First entry' },
734
- { hash: 'roundtrip-2', title: 'Second entry' },
828
+ {
829
+ hash: 'roundtrip-1',
830
+ title: 'First entry',
831
+ reasonCode: 'out-of-scope',
832
+ reason: 'Architectural principle, not a pattern.',
833
+ },
834
+ { hash: 'roundtrip-2', title: 'Second entry', reasonCode: 'missing-badexample' },
735
835
  ]);
736
836
  });
737
- it('save normalizes legacy strings to tuples on the next round-trip', async () => {
738
- // The loader normalizes on read, so when the same data flows back through save,
739
- // the disk file gets the canonical tuple form. Legacy strings are a one-way
740
- // migration: once loaded, they're tuples; once saved, they stay tuples.
837
+ it('save migrates legacy strings through load, persisting as 4-tuples with legacy-unknown', async () => {
838
+ // The Read transform normalizes legacy strings to 4-tuples on load
839
+ // (reasonCode: 'legacy-unknown'). When the normalized data flows back
840
+ // through save, the strict Write schema accepts `'legacy-unknown'`
841
+ // so migration round-trips safely on the first post-#1481 compile.
842
+ // Fresh compile paths still never emit `'legacy-unknown'` themselves
843
+ // (producer-side invariant, not schema-side).
741
844
  const { loadCompiledRulesFile, saveCompiledRulesFile } = await import('./compiler.js');
742
845
  const rulesPath = path.join(tmpDir, 'compiled-rules.json');
743
846
  fs.writeFileSync(rulesPath, JSON.stringify({
@@ -748,7 +851,48 @@ describe('nonCompilable tuple schema (#1280)', () => {
748
851
  const firstLoad = loadCompiledRulesFile(rulesPath);
749
852
  saveCompiledRulesFile(rulesPath, firstLoad);
750
853
  const onDisk = JSON.parse(fs.readFileSync(rulesPath, 'utf-8'));
751
- expect(onDisk.nonCompilable).toEqual([{ hash: 'legacy-only', title: '(legacy entry)' }]);
854
+ expect(onDisk.nonCompilable).toEqual([
855
+ { hash: 'legacy-only', title: '(legacy entry)', reasonCode: 'legacy-unknown' },
856
+ ]);
857
+ });
858
+ });
859
+ // ─── Manifest-hash backward compatibility (mmnto-ai/totem#1480) ──
860
+ describe('CompiledRule manifest-hash stability with unverified flag', () => {
861
+ it('canonicalStringify yields identical output for undefined unverified and an absent field', async () => {
862
+ // Invariant #10: a CompiledRule compiled without `unverified` (absent)
863
+ // hashes identically to the same rule pre-#1480. The guard is that
864
+ // `canonicalStringify` walks `Object.keys` and ignores entries with
865
+ // `undefined` values (JSON.stringify drops them anyway). Explicit
866
+ // `unverified: false` would add the key and break every pre-#1480
867
+ // manifest hash on disk. We never write that literal; this test
868
+ // anchors the property.
869
+ const { canonicalStringify } = await import('./compile-manifest.js');
870
+ const preRule = {
871
+ lessonHash: 'abc123def4567890',
872
+ lessonHeading: 'Test rule',
873
+ pattern: '\\bfoo\\b',
874
+ message: 'No foo',
875
+ engine: 'regex',
876
+ compiledAt: '2026-01-01T00:00:00Z',
877
+ };
878
+ const postRule = { ...preRule, unverified: undefined };
879
+ expect(canonicalStringify(preRule)).toBe(canonicalStringify(postRule));
880
+ });
881
+ it('canonicalStringify differs when unverified is explicitly true', async () => {
882
+ // Negative control: the flag does change the hash when set. An
883
+ // unverified rule is a different rule from a verified one; they must
884
+ // hash differently so the manifest reflects the governance signal.
885
+ const { canonicalStringify } = await import('./compile-manifest.js');
886
+ const verifiedRule = {
887
+ lessonHash: 'abc123def4567890',
888
+ lessonHeading: 'Test rule',
889
+ pattern: '\\bfoo\\b',
890
+ message: 'No foo',
891
+ engine: 'regex',
892
+ compiledAt: '2026-01-01T00:00:00Z',
893
+ };
894
+ const unverifiedRule = { ...verifiedRule, unverified: true };
895
+ expect(canonicalStringify(verifiedRule)).not.toBe(canonicalStringify(unverifiedRule));
752
896
  });
753
897
  });
754
898
  // ─── CompiledRuleSchema: status / archivedReason ────
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.test.js","sourceRoot":"","sources":["../src/compiler.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.test.js","sourceRoot":"","sources":["../src/compiler.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAErE,OAAO,EACL,UAAU,EAEV,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EAErB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEjE,IAAI,GAAsB,CAAC;AAC3B,UAAU,CAAC,GAAG,EAAE;IACd,GAAG,GAAG,iBAAiB,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,uDAAuD;QACvD,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,uDAAuD;AAEvD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAG;;;;;;;;;;CAUhB,CAAC;QAEE,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QAChG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;CAchB,CAAC;QAEE,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,IAAI,GAAG;;;;;;;CAOhB,CAAC;QAEE,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG;;;;;;;CAOhB,CAAC;QACE,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,yEAAyE;QACzE,mEAAmE;QACnE,2DAA2D;QAC3D,MAAM,IAAI,GAAG;YACX,wCAAwC;YACxC,mBAAmB;YACnB,mBAAmB;YACnB,iBAAiB;YACjB,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,kBAAkB;YAClB,uCAAuC;YACvC,cAAc;YACd,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,mEAAmE;QACnE,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,OAAe,EAAgB,EAAE,CAAC,CAAC;QACpE,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE,WAAW;QAC1B,OAAO;QACP,OAAO;QACP,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG;;;;;;;;CAQd,CAAC;IAEA,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,kCAAkC,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC7E,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG;YACZ,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;YACvC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;SAC9C,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+FAA+F,EAAE,GAAG,EAAE;QACvG,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,kCAAkC,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,kCAAkC,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,sDAAsD;IAEtD,iEAAiE;IACjE,iEAAiE;IACjE,MAAM,aAAa,GAAG;QACpB,oCAAoC;QACpC,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,cAAc;QACd,qBAAqB;QACrB,SAAS;QACT,0CAA0C;QAC1C,oBAAoB;QACpB,oBAAoB;QACpB,iBAAiB;QACjB,eAAe;QACf,gCAAgC;QAChC,oBAAoB;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,KAAK,GAAmB;YAC5B;gBACE,GAAG,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;gBAC/C,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;aAC9B;SACF,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAmB;YAC5B;gBACE,GAAG,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;gBAC/C,SAAS,EAAE,CAAC,MAAM,CAAC;aACpB;SACF,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,KAAK,GAAmB;YAC5B;gBACE,GAAG,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;gBAC/C,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB;SACF,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,KAAK,GAAmB;YAC5B;gBACE,GAAG,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;gBAC/C,SAAS,EAAE,EAAE;aACd;SACF,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAmB;YAC5B;gBACE,GAAG,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;gBAC/C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;aACrC;SACF,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,sDAAsD;IAEtD,MAAM,qBAAqB,GAAG;QAC5B,sEAAsE;QACtE,kCAAkC;QAClC,kCAAkC;QAClC,iBAAiB;QACjB,eAAe;QACf,kBAAkB;QAClB,oBAAoB;QACpB,8EAA8E;QAC9E,sCAAsC;QACtC,sCAAsC;QACtC,iBAAiB;QACjB,eAAe;QACf,kBAAkB;QAClB,oBAAoB;QACpB,8EAA8E;QAC9E,sCAAsC;QACtC,sCAAsC;QACtC,iBAAiB;QACjB,sBAAsB;QACtB,oBAAoB;QACpB,MAAM;KACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,KAAK,GAAmB;YAC5B;gBACE,GAAG,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;gBACxC,SAAS,EAAE,CAAC,sBAAsB,CAAC;aACpC;SACF,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;QAChE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAmB;YAC5B;gBACE,GAAG,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;gBACxC,SAAS,EAAE,CAAC,sBAAsB,EAAE,eAAe,CAAC;aACrD;SACF,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAmB;YAC5B;gBACE,GAAG,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;gBACxC,SAAS,EAAE,CAAC,sBAAsB,CAAC;aACpC;SACF,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,sDAAsD;IAEtD,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,cAAc,GAAG;YACrB,sCAAsC;YACtC,kBAAkB;YAClB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe;YACf,qDAAqD;YACrD,oBAAoB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,kCAAkC,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,cAAc,GAAG;YACrB,sCAAsC;YACtC,kBAAkB;YAClB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe;YACf,4BAA4B;YAC5B,qCAAqC;YACrC,oBAAoB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,kCAAkC,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,wEAAwE;QACxE,kDAAkD;QAClD,MAAM,cAAc,GAAG;YACrB,sCAAsC;YACtC,kBAAkB;YAClB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe;YACf,4BAA4B;YAC5B,qCAAqC;YACrC,oBAAoB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,kCAAkC,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,SAAS,GAAG;YAChB,sCAAsC;YACtC,kBAAkB;YAClB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe;YACf,qCAAqC;YACrC,oBAAoB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,kCAAkC,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACrD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,cAAc,GAAG;YACrB,oCAAoC;YACpC,iBAAiB;YACjB,iBAAiB;YACjB,iBAAiB;YACjB,cAAc;YACd,2BAA2B;YAC3B,qBAAqB;YACrB,SAAS;SACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,cAAc,GAAG;YACrB,4CAA4C;YAC5C,qBAAqB;YACrB,qBAAqB;YACrB,iBAAiB;YACjB,UAAU;YACV,kDAAkD;YAClD,YAAY;SACb,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,cAAc,GAAG;YACrB,sCAAsC;YACtC,kBAAkB;YAClB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe;YACf,oDAAoD;YACpD,oBAAoB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,KAAK,GAAG;YACZ,QAAQ,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;YAC1D,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;SAC9C,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,cAAc,GAAG;YACrB,sCAAsC;YACtC,kBAAkB;YAClB,kBAAkB;YAClB,iBAAiB;YACjB,qDAAqD;YACrD,eAAe;YACf,oBAAoB;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,YAAY,GAAG;YACnB,0CAA0C;YAC1C,oBAAoB;YACpB,oBAAoB;YACpB,iBAAiB;YACjB,eAAe;YACf,2BAA2B;YAC3B,oBAAoB;YACpB,oDAAoD;YACpD,yBAAyB;YACzB,yBAAyB;YACzB,iBAAiB;YACjB,qCAAqC;YACrC,2BAA2B;YAC3B,eAAe;SAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,KAAK,GAAmB;YAC5B;gBACE,GAAG,QAAQ,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;gBAChE,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC;aAChD;SACF,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,MAAc,CAAC;IAEnB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAmB;YAC5B;gBACE,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,mBAAmB;gBAClC,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,0CAA0C;gBACnD,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,sBAAsB;aACnC;SACF,CAAC;QAEF,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC9C,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAClD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,EAAE;IACF,0EAA0E;IAC1E,wEAAwE;IACxE,0EAA0E;IAC1E,yEAAyE;IACzE,sEAAsE;IACtE,0CAA0C;IAC1C,EAAE;IACF,8BAA8B;IAC9B,oEAAoE;IACpE,gFAAgF;IAChF,0DAA0D;IAC1D,6EAA6E;IAC7E,2EAA2E;IAC3E,gFAAgF;IAChF,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,MAAM,UAAU,GAAiB;YAC/B,UAAU,EAAE,kBAAkB;YAC9B,aAAa,EAAE,aAAa;YAC5B,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,sBAAsB;SACnC,CAAC;QAEF,MAAM,UAAU,GAAiB;YAC/B,UAAU,EAAE,kBAAkB;YAC9B,aAAa,EAAE,kCAAkC;YACjD,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,sBAAsB;SACnC,CAAC;QAEF,MAAM,YAAY,GAAiB;YACjC,UAAU,EAAE,kBAAkB;YAC9B,aAAa,EAAE,eAAe;YAC9B,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,uCAAuC;YACvD,UAAU,EAAE,sBAAsB;SACnC,CAAC;QAEF,EAAE,CAAC,4FAA4F,EAAE,GAAG,EAAE;YACpG,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAC3D,qBAAqB,CAAC,SAAS,EAAE;gBAC/B,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC;gBAC7C,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC9C,UAAU,CAAC,UAAU;gBACrB,UAAU,CAAC,UAAU;aACtB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEhE,yEAAyE;YACzE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;YAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAC3D,qBAAqB,CAAC,SAAS,EAAE;gBAC/B,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;gBACjC,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC;YACtF,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAC3D,qBAAqB,CAAC,SAAS,EAAE;gBAC/B,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC,YAAY,CAAC;gBACrB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;YAEH,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;YAChG,mEAAmE;YACnE,qEAAqE;YACrE,gEAAgE;YAChE,iEAAiE;YACjE,kDAAkD;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAC3D,qBAAqB,CAAC,SAAS,EAAE;gBAC/B,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;gBACjC,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAEzD,sEAAsE;YACtE,0EAA0E;YAC1E,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,UAAU,GAAG,eAAe,CAAC;YACnC,MAAM,IAAI,GAAG;gBACX,gBAAgB,UAAU,MAAM,UAAU,EAAE;gBAC5C,+BAA+B;gBAC/B,GAAG,MAAM,MAAM,UAAU,EAAE;gBAC3B,GAAG,KAAK,MAAM,UAAU,EAAE;gBAC1B,iBAAiB;gBACjB,kDAAkD;gBAClD,yDAAyD;aAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACnE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,IAAI,MAAc,CAAC;IAEnB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,kFAAkF;QAClF,0EAA0E;QAC1E,iEAAiE;QACjE,gCAAgC;QAChC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC3D,EAAE,CAAC,aAAa,CACd,SAAS,EACT,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;SACtD,CAAC,CACH,CAAC;QACF,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;YACnC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAClF,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;SACnF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,gCAAgC;QAChC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC3D,EAAE,CAAC,aAAa,CACd,SAAS,EACT,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,EAAE;YACT,aAAa,EAAE;gBACb,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,sCAAsC,EAAE;gBACvE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,gCAAgC,EAAE;aAClE;SACF,CAAC,CACH,CAAC;QACF,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;YACnC;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,sCAAsC;gBAC7C,UAAU,EAAE,gBAAgB;aAC7B;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,gCAAgC;gBACvC,UAAU,EAAE,gBAAgB;aAC7B;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,sEAAsE;QACtE,0EAA0E;QAC1E,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC3D,EAAE,CAAC,aAAa,CACd,SAAS,EACT,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,EAAE;YACT,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,4BAA4B;oBACnC,UAAU,EAAE,cAAc;oBAC1B,MAAM,EAAE,0BAA0B;iBACnC;gBACD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,oBAAoB,EAAE;aACjF;SACF,CAAC,CACH,CAAC;QACF,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;YACnC;gBACE,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,4BAA4B;gBACnC,UAAU,EAAE,cAAc;gBAC1B,MAAM,EAAE,0BAA0B;aACnC;YACD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,oBAAoB,EAAE;SACjF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,wEAAwE;QACxE,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,8BAA8B;QAC9B,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC3D,EAAE,CAAC,aAAa,CACd,SAAS,EACT,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,EAAE;YACT,aAAa,EAAE;gBACb,aAAa;gBACb,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBACjD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;gBAC1E,gBAAgB;aACjB;SACF,CAAC,CACH,CAAC;QACF,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;YACnC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAC9E,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAC/E,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;YAC1E,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;SAClF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,4DAA4D;QAC5D,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACxE,oCAAoC;QACpC,MAAM,CAAC,6BAA6B,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChF,qCAAqC;QACrC,MAAM,CAAC,6BAA6B,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/F,4BAA4B;QAC5B,MAAM,CACJ,6BAA6B,CAAC,SAAS,CAAC;YACtC,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAC,OAAO,CACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,2EAA2E;QAC3E,uEAAuE;QACvE,wEAAwE;QACxE,2CAA2C;QAC3C,MAAM,CACJ,6BAA6B,CAAC,SAAS,CAAC;YACtC,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,GAAG;YACV,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC,OAAO,CACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,sEAAsE;QACtE,sEAAsE;QACtE,oDAAoD;QACpD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,CAAU;YACnB,KAAK,EAAE,EAAE;YACT,sEAAsE;YACtE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAEpB;SACtB,CAAC;QACF,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CACpE,mDAAmD,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC3D,qBAAqB,CAAC,SAAS,EAAE;YAC/B,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,EAAE;YACT,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,aAAa;oBACpB,UAAU,EAAE,cAAc;oBAC1B,MAAM,EAAE,yCAAyC;iBAClD;gBACD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,oBAAoB,EAAE;aACjF;SACF,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;YACnC;gBACE,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,aAAa;gBACpB,UAAU,EAAE,cAAc;gBAC1B,MAAM,EAAE,yCAAyC;aAClD;YACD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,oBAAoB,EAAE;SACjF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;QACrG,mEAAmE;QACnE,sEAAsE;QACtE,mEAAmE;QACnE,mEAAmE;QACnE,qEAAqE;QACrE,8CAA8C;QAC9C,MAAM,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC3D,EAAE,CAAC,aAAa,CACd,SAAS,EACT,IAAI,CAAC,SAAS,CAAC;YACb,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,CAAC,aAAa,CAAC;SAC/B,CAAC,CACH,CAAC;QACF,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACnD,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAE5D,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;YACnC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;SAC/E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,oEAAoE;AAEpE,QAAQ,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACzE,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,uEAAuE;QACvE,mEAAmE;QACnE,oEAAoE;QACpE,kEAAkE;QAClE,kEAAkE;QAClE,gEAAgE;QAChE,wBAAwB;QACxB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACrE,MAAM,OAAO,GAAiB;YAC5B,UAAU,EAAE,kBAAkB;YAC9B,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,sBAAsB;SACnC,CAAC;QACF,MAAM,QAAQ,GAAiB,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QACrE,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,+DAA+D;QAC/D,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACrE,MAAM,YAAY,GAAiB;YACjC,UAAU,EAAE,kBAAkB;YAC9B,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,sBAAsB;SACnC,CAAC;QACF,MAAM,cAAc,GAAiB,EAAE,GAAG,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC3E,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,uDAAuD;AAEvD,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,MAAM,QAAQ,GAAG;QACf,UAAU,EAAE,cAAc;QAC1B,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,0BAA0B;QACnC,MAAM,EAAE,OAAgB;QACxB,UAAU,EAAE,sBAAsB;KACnC,CAAC;IAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC;YACtC,GAAG,QAAQ;YACX,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,6BAA6B;SAC9C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,uDAAuD;AAEvD,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,oEAAoE;QACpE,4DAA4D;QAC5D,+DAA+D;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,yBAAyB;YAClC,UAAU,EAAE,oBAAoB;SACjC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,yBAAyB;YAClC,UAAU,EAAE,oBAAoB;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,oEAAoE;QACpE,MAAM,QAAQ,GAAG;;;OAGd,CAAC;QAEJ,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,QAAQ,GAAG;;;IAGjB,CAAC;QAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,qBAAqB,CAAC,+BAA+B,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,UAAU,EAAE,KAAK;YACjB,MAAM,EACJ,sFAAsF;SACzF,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,UAAU,EAAE,KAAK;YACjB,MAAM,EACJ,sFAAsF;SACzF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,oEAAoE;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;YACtC,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;YACtC,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,uEAAuE;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,2CAA2C;YAC3D,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,uCAAuC;YAChD,UAAU,EAAE,mCAAmC;SAChD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,oEAAoE;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,uBAAuB;YAChC,OAAO,EAAE,gBAAgB;YACzB,UAAU,EAAE,mBAAmB;SAChC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,uEAAuE;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,iCAAiC;YACjD,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,gCAAgC;SAC7C,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,sDAAsD;AAEtD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CAAC,iBAAiB,CAAC,CAAC,aAAa,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzE,aAAa;YACb,SAAS;YACT,SAAS;YACT,SAAS;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,iBAAiB,CAAC,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACtE,eAAe;YACf,eAAe;YACf,eAAe;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,iBAAiB,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACjE,iBAAiB;YACjB,iBAAiB;YACjB,kBAAkB;YAClB,kBAAkB;SACnB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,sDAAsD;IAEtD,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,sDAAsD;AAEtD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3D,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/D,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,sBAAsB;SACvC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,8CAA8C,CAAC,CAAC,CAAC,OAAO,CAAC;YAClF,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,8CAA8C;SACzD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}