observability-toolkit 1.8.2 → 1.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -0
- package/dist/backends/index.d.ts +43 -0
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +41 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/index.test.d.ts +5 -0
- package/dist/backends/index.test.d.ts.map +1 -0
- package/dist/backends/index.test.js +156 -0
- package/dist/backends/index.test.js.map +1 -0
- package/dist/backends/local-jsonl-boolean-search.test.js +15 -12
- package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -1
- package/dist/backends/local-jsonl-cache.test.d.ts +2 -0
- package/dist/backends/local-jsonl-cache.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-cache.test.js +295 -0
- package/dist/backends/local-jsonl-cache.test.js.map +1 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.d.ts +2 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.js +180 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.js.map +1 -0
- package/dist/backends/local-jsonl-export.test.d.ts +2 -0
- package/dist/backends/local-jsonl-export.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-export.test.js +704 -0
- package/dist/backends/local-jsonl-export.test.js.map +1 -0
- package/dist/backends/local-jsonl-index.test.d.ts +2 -0
- package/dist/backends/local-jsonl-index.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-index.test.js +554 -0
- package/dist/backends/local-jsonl-index.test.js.map +1 -0
- package/dist/backends/local-jsonl-logs.test.d.ts +2 -0
- package/dist/backends/local-jsonl-logs.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-logs.test.js +612 -0
- package/dist/backends/local-jsonl-logs.test.js.map +1 -0
- package/dist/backends/local-jsonl-metrics.test.d.ts +2 -0
- package/dist/backends/local-jsonl-metrics.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-metrics.test.js +876 -0
- package/dist/backends/local-jsonl-metrics.test.js.map +1 -0
- package/dist/backends/local-jsonl-traces.test.d.ts +2 -0
- package/dist/backends/local-jsonl-traces.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-traces.test.js +1729 -0
- package/dist/backends/local-jsonl-traces.test.js.map +1 -0
- package/dist/backends/local-jsonl.d.ts +9 -0
- package/dist/backends/local-jsonl.d.ts.map +1 -1
- package/dist/backends/local-jsonl.js +348 -227
- package/dist/backends/local-jsonl.js.map +1 -1
- package/dist/backends/local-jsonl.test.js +290 -21
- package/dist/backends/local-jsonl.test.js.map +1 -1
- package/dist/backends/signoz-api-circuit-breaker.test.d.ts +6 -0
- package/dist/backends/signoz-api-circuit-breaker.test.d.ts.map +1 -0
- package/dist/backends/signoz-api-circuit-breaker.test.js +548 -0
- package/dist/backends/signoz-api-circuit-breaker.test.js.map +1 -0
- package/dist/backends/signoz-api-rate-limiter.test.d.ts +6 -0
- package/dist/backends/signoz-api-rate-limiter.test.d.ts.map +1 -0
- package/dist/backends/signoz-api-rate-limiter.test.js +389 -0
- package/dist/backends/signoz-api-rate-limiter.test.js.map +1 -0
- package/dist/backends/signoz-api-ssrf.test.d.ts +6 -0
- package/dist/backends/signoz-api-ssrf.test.d.ts.map +1 -0
- package/dist/backends/signoz-api-ssrf.test.js +216 -0
- package/dist/backends/signoz-api-ssrf.test.js.map +1 -0
- package/dist/backends/signoz-api-test-helpers.d.ts +80 -0
- package/dist/backends/signoz-api-test-helpers.d.ts.map +1 -0
- package/dist/backends/signoz-api-test-helpers.js +79 -0
- package/dist/backends/signoz-api-test-helpers.js.map +1 -0
- package/dist/backends/signoz-api.d.ts +16 -0
- package/dist/backends/signoz-api.d.ts.map +1 -1
- package/dist/backends/signoz-api.js +71 -9
- package/dist/backends/signoz-api.js.map +1 -1
- package/dist/backends/signoz-api.test.d.ts +9 -0
- package/dist/backends/signoz-api.test.d.ts.map +1 -1
- package/dist/backends/signoz-api.test.js +14 -1027
- package/dist/backends/signoz-api.test.js.map +1 -1
- package/dist/lib/cache.d.ts +47 -1
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +40 -3
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/circuit-breaker.d.ts +83 -0
- package/dist/lib/circuit-breaker.d.ts.map +1 -0
- package/dist/lib/circuit-breaker.js +125 -0
- package/dist/lib/circuit-breaker.js.map +1 -0
- package/dist/lib/circuit-breaker.test.d.ts +2 -0
- package/dist/lib/circuit-breaker.test.d.ts.map +1 -0
- package/dist/lib/circuit-breaker.test.js +263 -0
- package/dist/lib/circuit-breaker.test.js.map +1 -0
- package/dist/lib/constants-symlink.test.d.ts +12 -0
- package/dist/lib/constants-symlink.test.d.ts.map +1 -0
- package/dist/lib/constants-symlink.test.js +357 -0
- package/dist/lib/constants-symlink.test.js.map +1 -0
- package/dist/lib/constants.d.ts +43 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +154 -24
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/constants.test.js +156 -7
- package/dist/lib/constants.test.js.map +1 -1
- package/dist/lib/edge-cases.test.d.ts +11 -0
- package/dist/lib/edge-cases.test.d.ts.map +1 -0
- package/dist/lib/edge-cases.test.js +634 -0
- package/dist/lib/edge-cases.test.js.map +1 -0
- package/dist/lib/error-sanitizer.d.ts.map +1 -1
- package/dist/lib/error-sanitizer.js +62 -26
- package/dist/lib/error-sanitizer.js.map +1 -1
- package/dist/lib/error-sanitizer.test.js +186 -0
- package/dist/lib/error-sanitizer.test.js.map +1 -1
- package/dist/lib/error-types.d.ts +54 -0
- package/dist/lib/error-types.d.ts.map +1 -0
- package/dist/lib/error-types.js +154 -0
- package/dist/lib/error-types.js.map +1 -0
- package/dist/lib/error-types.test.d.ts +2 -0
- package/dist/lib/error-types.test.d.ts.map +1 -0
- package/dist/lib/error-types.test.js +196 -0
- package/dist/lib/error-types.test.js.map +1 -0
- package/dist/lib/file-utils.test.js +3 -3
- package/dist/lib/file-utils.test.js.map +1 -1
- package/dist/lib/indexer.test.js +157 -24
- package/dist/lib/indexer.test.js.map +1 -1
- package/dist/lib/input-validator.d.ts +17 -0
- package/dist/lib/input-validator.d.ts.map +1 -1
- package/dist/lib/input-validator.fuzz.test.d.ts +12 -0
- package/dist/lib/input-validator.fuzz.test.d.ts.map +1 -0
- package/dist/lib/input-validator.fuzz.test.js +290 -0
- package/dist/lib/input-validator.fuzz.test.js.map +1 -0
- package/dist/lib/input-validator.js +62 -3
- package/dist/lib/input-validator.js.map +1 -1
- package/dist/lib/input-validator.test.js +129 -1
- package/dist/lib/input-validator.test.js.map +1 -1
- package/dist/lib/logger.d.ts +46 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +81 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/logger.test.d.ts +2 -0
- package/dist/lib/logger.test.d.ts.map +1 -0
- package/dist/lib/logger.test.js +122 -0
- package/dist/lib/logger.test.js.map +1 -0
- package/dist/lib/query-sanitizer.d.ts +51 -3
- package/dist/lib/query-sanitizer.d.ts.map +1 -1
- package/dist/lib/query-sanitizer.js +105 -31
- package/dist/lib/query-sanitizer.js.map +1 -1
- package/dist/lib/query-sanitizer.test.js +102 -1
- package/dist/lib/query-sanitizer.test.js.map +1 -1
- package/dist/lib/server-utils.d.ts +88 -0
- package/dist/lib/server-utils.d.ts.map +1 -0
- package/dist/lib/server-utils.js +173 -0
- package/dist/lib/server-utils.js.map +1 -0
- package/dist/lib/shared-schemas.d.ts +81 -0
- package/dist/lib/shared-schemas.d.ts.map +1 -0
- package/dist/lib/shared-schemas.js +80 -0
- package/dist/lib/shared-schemas.js.map +1 -0
- package/dist/lib/shared-schemas.test.d.ts +5 -0
- package/dist/lib/shared-schemas.test.d.ts.map +1 -0
- package/dist/lib/shared-schemas.test.js +106 -0
- package/dist/lib/shared-schemas.test.js.map +1 -0
- package/dist/lib/toon-encoder.d.ts +26 -0
- package/dist/lib/toon-encoder.d.ts.map +1 -0
- package/dist/lib/toon-encoder.js +61 -0
- package/dist/lib/toon-encoder.js.map +1 -0
- package/dist/lib/toon-encoder.test.d.ts +5 -0
- package/dist/lib/toon-encoder.test.d.ts.map +1 -0
- package/dist/lib/toon-encoder.test.js +85 -0
- package/dist/lib/toon-encoder.test.js.map +1 -0
- package/dist/server.d.ts +1 -49
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +154 -162
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +198 -7
- package/dist/server.test.js.map +1 -1
- package/dist/test-helpers/env-utils.d.ts +87 -0
- package/dist/test-helpers/env-utils.d.ts.map +1 -0
- package/dist/test-helpers/env-utils.js +132 -0
- package/dist/test-helpers/env-utils.js.map +1 -0
- package/dist/test-helpers/file-utils.d.ts +67 -0
- package/dist/test-helpers/file-utils.d.ts.map +1 -1
- package/dist/test-helpers/file-utils.js +165 -2
- package/dist/test-helpers/file-utils.js.map +1 -1
- package/dist/test-helpers/fuzz-generators.d.ts +58 -0
- package/dist/test-helpers/fuzz-generators.d.ts.map +1 -0
- package/dist/test-helpers/fuzz-generators.js +216 -0
- package/dist/test-helpers/fuzz-generators.js.map +1 -0
- package/dist/test-helpers/index.d.ts +11 -0
- package/dist/test-helpers/index.d.ts.map +1 -0
- package/dist/test-helpers/index.js +30 -0
- package/dist/test-helpers/index.js.map +1 -0
- package/dist/test-helpers/memfs-utils.d.ts +181 -0
- package/dist/test-helpers/memfs-utils.d.ts.map +1 -0
- package/dist/test-helpers/memfs-utils.js +292 -0
- package/dist/test-helpers/memfs-utils.js.map +1 -0
- package/dist/test-helpers/memfs-utils.test.d.ts +5 -0
- package/dist/test-helpers/memfs-utils.test.d.ts.map +1 -0
- package/dist/test-helpers/memfs-utils.test.js +338 -0
- package/dist/test-helpers/memfs-utils.test.js.map +1 -0
- package/dist/test-helpers/mock-backends.d.ts +113 -2
- package/dist/test-helpers/mock-backends.d.ts.map +1 -1
- package/dist/test-helpers/mock-backends.js +199 -3
- package/dist/test-helpers/mock-backends.js.map +1 -1
- package/dist/test-helpers/mock-backends.test.d.ts +5 -0
- package/dist/test-helpers/mock-backends.test.d.ts.map +1 -0
- package/dist/test-helpers/mock-backends.test.js +368 -0
- package/dist/test-helpers/mock-backends.test.js.map +1 -0
- package/dist/test-helpers/race-condition-helpers.d.ts +85 -0
- package/dist/test-helpers/race-condition-helpers.d.ts.map +1 -0
- package/dist/test-helpers/race-condition-helpers.js +279 -0
- package/dist/test-helpers/race-condition-helpers.js.map +1 -0
- package/dist/test-helpers/schema-validators.d.ts +32 -0
- package/dist/test-helpers/schema-validators.d.ts.map +1 -0
- package/dist/test-helpers/schema-validators.js +125 -0
- package/dist/test-helpers/schema-validators.js.map +1 -0
- package/dist/test-helpers/test-data-builders.d.ts +260 -0
- package/dist/test-helpers/test-data-builders.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.js +337 -0
- package/dist/test-helpers/test-data-builders.js.map +1 -0
- package/dist/test-helpers/test-data-builders.test.d.ts +2 -0
- package/dist/test-helpers/test-data-builders.test.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.test.js +306 -0
- package/dist/test-helpers/test-data-builders.test.js.map +1 -0
- package/dist/test-helpers/tool-validators.d.ts +28 -0
- package/dist/test-helpers/tool-validators.d.ts.map +1 -0
- package/dist/test-helpers/tool-validators.js +71 -0
- package/dist/test-helpers/tool-validators.js.map +1 -0
- package/dist/tools/context-stats.d.ts +1 -0
- package/dist/tools/context-stats.d.ts.map +1 -1
- package/dist/tools/context-stats.js +9 -5
- package/dist/tools/context-stats.js.map +1 -1
- package/dist/tools/context-stats.test.js +24 -10
- package/dist/tools/context-stats.test.js.map +1 -1
- package/dist/tools/get-trace-url.js +2 -2
- package/dist/tools/get-trace-url.js.map +1 -1
- package/dist/tools/health-check.js +2 -2
- package/dist/tools/health-check.js.map +1 -1
- package/dist/tools/query-evaluations.d.ts +21 -18
- package/dist/tools/query-evaluations.d.ts.map +1 -1
- package/dist/tools/query-evaluations.js +33 -19
- package/dist/tools/query-evaluations.js.map +1 -1
- package/dist/tools/query-evaluations.test.js +60 -63
- package/dist/tools/query-evaluations.test.js.map +1 -1
- package/dist/tools/query-llm-events.d.ts +19 -15
- package/dist/tools/query-llm-events.d.ts.map +1 -1
- package/dist/tools/query-llm-events.js +31 -15
- package/dist/tools/query-llm-events.js.map +1 -1
- package/dist/tools/query-llm-events.test.js +277 -12
- package/dist/tools/query-llm-events.test.js.map +1 -1
- package/dist/tools/query-logs.d.ts +22 -22
- package/dist/tools/query-logs.d.ts.map +1 -1
- package/dist/tools/query-logs.js +9 -9
- package/dist/tools/query-logs.js.map +1 -1
- package/dist/tools/query-logs.test.js +19 -72
- package/dist/tools/query-logs.test.js.map +1 -1
- package/dist/tools/query-metrics.d.ts +14 -14
- package/dist/tools/query-metrics.d.ts.map +1 -1
- package/dist/tools/query-metrics.js +9 -9
- package/dist/tools/query-metrics.js.map +1 -1
- package/dist/tools/query-metrics.test.js +12 -25
- package/dist/tools/query-metrics.test.js.map +1 -1
- package/dist/tools/query-traces.d.ts +28 -28
- package/dist/tools/query-traces.d.ts.map +1 -1
- package/dist/tools/query-traces.js +18 -18
- package/dist/tools/query-traces.js.map +1 -1
- package/dist/tools/query-traces.test.js +58 -54
- package/dist/tools/query-traces.test.js.map +1 -1
- package/dist/tools/setup-claudeignore.js +7 -7
- package/dist/tools/setup-claudeignore.js.map +1 -1
- package/dist/tools/setup-claudeignore.test.js +4 -25
- package/dist/tools/setup-claudeignore.test.js.map +1 -1
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signoz-api.test.js","sourceRoot":"","sources":["../../src/backends/signoz-api.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,8DAA8D;AAC9D,MAAM,SAAS,GAAG,CAAC,EAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAA4B,CAAC;AAE1F,4DAA4D;AAC5D,SAAS,YAAY,CAAC,IAAoC;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED,qDAAqD;AACrD,SAAS,qBAAqB,CAAC,KAAqC;IAClE,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACpB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAClD,IAAI,EAAE;gCACJ,QAAQ,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ;gCACjC,OAAO,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO;gCAC9B,cAAc,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,cAAc;gCAClD,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,aAAa,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,aAAa;gCAChD,cAAc,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,cAAc,CAAC;gCAClD,oBAAoB,EAAE,CAAC,CAAC,UAAU;6BACnC;yBACF,CAAC,CAAC;qBACJ,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC;AAED,8CAA8C;AAC9C,SAAS,mBAAmB,CAAC,IAAoC;IAC/D,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACnB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAClD,IAAI,EAAE,CAAC;yBACR,CAAC,CAAC;qBACJ,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,SAAS,sBAAsB,CAAC,MAAuG;IACrI,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC;wBACR,YAAY,EAAE,CAAC;gCACb,MAAM,EAAE,MAAM;6BACf,CAAC;qBACH,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC;YACjF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;YACzE,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;YAC3E,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC;oBACtC;wBACE,OAAO,EAAE,WAAW;wBACpB,MAAM,EAAE,UAAU;wBAClB,IAAI,EAAE,cAAc;wBACpB,SAAS,EAAE,UAAU;wBACrB,YAAY,EAAE,SAAS;wBACvB,WAAW,EAAE,aAAa;qBAC3B;iBACF,CAAC;gBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC;gBACvC,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACnD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACjD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACnD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAEpD,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;YAEzD,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;YAEnD,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;YAElD,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;YAElD,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC;gBACxB,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,SAAS;gBACnB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,yCAAyC;YACzC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAClE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC;oBACtC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;oBAC5F,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;oBAC5F,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;oBAC5F,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;oBAC5F,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;iBAC7F,CAAC;gBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC;oBACtC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE;iBACpF,CAAC;gBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,IAAI,eAAmD,CAAC;YAExD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,eAAe,GAAG,OAAO,EAAE,OAAiC,CAAC;gBAC7D,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;YACpF,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE9B,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,EAAE,eAAe,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,IAAI,eAAmD,CAAC;YAExD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,eAAe,GAAG,OAAO,EAAE,OAAiC,CAAC;gBAC7D,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE9B,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc;aACjC,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC;YAElF,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,6EAA6E;gBAC7E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE7C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;gBACjD,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE9B,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YAEvD,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,4EAA4E;YAC5E,MAAM,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE9B,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAyC,CAAC;YACtE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAyC,CAAC;YAEzE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YACrD,MAAM,CAAC,WAAW,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAgC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,IAAI,EAAE;wBACJ,IAAI,EAAE;4BACJ,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,CAAC;4CACL,SAAS,EAAE,sBAAsB;4CACjC,IAAI,EAAE;gDACJ,aAAa,EAAE,OAAO;gDACtB,IAAI,EAAE,mBAAmB;gDACzB,QAAQ,EAAE,WAAW;gDACrB,OAAO,EAAE,UAAU;6CACpB;yCACF,CAAC;iCACH,CAAC;yBACH;qBACF;iBACF,CAAC;gBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YAE7E,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;YAC9D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;YACtD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACzC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAE/C,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACzC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAElD,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACzC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAEtD,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACzC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,SAAS,CAAC;gBACtB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgC,CAAC;YAErD,yCAAyC;YACzC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAClE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,IAAI,EAAE;wBACJ,IAAI,EAAE;4BACJ,OAAO,EAAE,CAAC;oCACR,IAAI,EAAE,CAAC;4CACL,SAAS,EAAE,sBAAsB;4CACjC,IAAI,EAAE,EAAE;yCACT,CAAC;iCACH,CAAC;yBACH;qBACF;iBACF,CAAC;gBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAEzC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,uBAAuB;aAC1C,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAEzC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,sBAAsB,CAAC;oBACvC;wBACE,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;wBAC1B,MAAM,EAAE;4BACN,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,eAAe;4BAC1D,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE;yBAC1C;qBACF;iBACF,CAAC;gBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;gBACzC,UAAU,EAAE,qBAAqB;gBACjC,SAAS,EAAE,YAAY;aACxB,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;YAC3D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;oBACvD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YAE1D,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAA6C,CAAC;YACxE,0CAA0C;YAC1C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;oBACvD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;YAE9E,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAA6C,CAAC;YACxE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,IAAI,YAAqB,CAAC;YAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;oBAC5C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,CAAC,YAAY,CAAC;gBACzB,UAAU,EAAE,aAAa;gBACzB,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;aAC/B,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,YAAuC,CAAC;YACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;YACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAwC,CAAC;YAC9D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,sBAAsB,CAAC;oBACvC;wBACE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,eAAe;qBACnE;iBACF,CAAC;gBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YAE1E,wDAAwD;YACxD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,sBAAsB,CAAC;oBACvC;wBACE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC;6BACf,IAAI,CAAC,CAAC,CAAC;6BACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;4BACd,SAAS,EAAE,aAAa,GAAG,CAAC,GAAG,KAAK,EAAE,eAAe;4BACrD,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;qBACN;iBACF,CAAC;gBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC;gBACzC,UAAU,EAAE,aAAa;gBACzB,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;YAEH,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa;aAChC,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YAE1E,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACzC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACrB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAE3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAE3C,0CAA0C;YAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAE3C,8CAA8C;YAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,iEAAiE;gBACjE,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB;aACxC,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAE3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YAEjD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,gDAAgD,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,sCAAsC,EAAE,UAAU,CAAC,CAAC;YACzF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAE7C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAC;YACtF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAE7C,mEAAmE;YACnE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,mDAAmD,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;YACpF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAE7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,iDAAiD,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAClC,kDAAkD,EAClD,UAAU,CACX,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAE7C,yEAAyE;YACzE,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kEAAkE,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAClC,mCAAmC,EACnC,UAAU,CACX,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,mDAAmD,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAClC,wCAAwC,EACxC,UAAU,CACX,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,wDAAwD,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAClC,0CAA0C,EAC1C,UAAU,CACX,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,0DAA0D,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAClC,wCAAwC,EACxC,UAAU,CACX,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,sDAAsD;YACtD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,4CAA4C,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAClC,mDAAmD,EACnD,UAAU,CACX,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,wCAAwC;YACxC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,sDAAsD,CAAC,CAAC;YAChF,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAClC,2CAA2C,EAC3C,UAAU,CACX,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,kBAAkB;aACrC,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,6EAA6E;gBAC7E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE7C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAE3C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;YAElE,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,8EAA8E;YAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,mCAAmC;gBACrC,CAAC;YACH,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,sFAAsF;YACtF,MAAM,SAAS,GAAG,SAAS,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,EAAE,6CAA6C,CAAC,CAAC;YAClF,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,2DAA2D,CAAC,CAAC;QACxG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,qCAAqC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,yDAAyD;YACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,mDAAmD,CAAC,CAAC;YAEtF,mDAAmD;YACnD,WAAW,IAAI,KAAK,CAAC;YAErB,8CAA8C;YAC9C,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;YACvD,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,6CAA6C,CAAC,CAAC;YAEhF,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC/B,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,qCAAqC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,WAAW,IAAI,KAAK,CAAC;YACrB,UAAU,GAAG,KAAK,CAAC;YAEnB,6DAA6D;YAC7D,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,4DAA4D;YAC5D,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,qCAAqC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,iCAAiC;YACjC,WAAW,IAAI,KAAK,CAAC;YAErB,mCAAmC;YACnC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW;YACb,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,iEAAiE;YACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,uDAAuD,CAAC,CAAC;YAE1F,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC/B,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,0CAA0C;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,gDAAgD;YAChD,UAAU,GAAG,KAAK,CAAC;YACnB,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,4DAA4D;YAC5D,UAAU,GAAG,IAAI,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,2DAA2D;YAC3D,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,gCAAgC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,+BAA+B;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAEjC,gCAAgC;YAChC,MAAM,OAAO,GAAG;gBACd,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7B,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;aACnD,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAW,SAAS,CAAC;gBACpC,IAAI,CAAC;oBACH,MAAM,MAAM,EAAE,CAAC;gBACjB,CAAC;gBAAC,MAAM,CAAC;oBACP,uEAAuE;gBACzE,CAAC;gBACD,6CAA6C;gBAC7C,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,8CAA8C,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,mBAAmB;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YAED,oDAAoD;YACpD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAClC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAExD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,qCAAqC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YAED,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAE5B,qDAAqD;YACrD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAClC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAExD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,qCAAqC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,WAAW,IAAI,KAAK,CAAC;YAErB,8DAA8D;YAC9D,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;YAED,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC5B,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;YAE3B,wDAAwD;YACxD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;YACpF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAClC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAExD,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC/B,CAAC;gBACD,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,qCAAqC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,WAAW,IAAI,KAAK,CAAC;YACrB,UAAU,GAAG,KAAK,CAAC;YAEnB,qEAAqE;YACrE,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE9B,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC5B,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;YAE3B,yDAAyD;YACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC;YACrG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,+DAA+D,CAAC,CAAC,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YACpC,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;gBAChG,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACxC,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC;wBACtC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE;wBACrG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE;qBACtG,CAAC;oBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC,CAAC,CAAC;gBAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAEjE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;gBACrF,0EAA0E;gBAC1E,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACxC,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC;wBACtC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE;wBACrG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE;wBACrG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE;qBACtG,CAAC;oBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC,CAAC,CAAC;gBAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAEhE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;gBAC3D,IAAI,YAAqB,CAAC;gBAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;oBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;wBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,CAAC;oBACD,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;qBACrB,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/D,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAE1D,MAAM,IAAI,GAAG,YAAuC,CAAC;gBACrD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBAE9C,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;gBACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;gBACtD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,IAAI,YAAqB,CAAC;gBAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;oBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;wBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,CAAC;oBACD,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;qBACrB,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAE5E,MAAM,IAAI,GAAG,YAAuC,CAAC;gBACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;gBACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;gBACtD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;oBACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;gBAEtD,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;gBACnD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACxC,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC;wBACpC,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE;wBAC1E,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE;qBAC5E,CAAC;oBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC,CAAC,CAAC;gBAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAE/D,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACxC,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC;wBACpC,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE;wBAC1E,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE;wBAC3E,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE;qBAC3E,CAAC;oBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC,CAAC,CAAC;gBAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAE9D,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;gBACvD,IAAI,YAAqB,CAAC;gBAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;oBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;wBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,CAAC;oBACD,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC;wBACzC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;qBACrB,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/D,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAExD,MAAM,IAAI,GAAG,YAAuC,CAAC;gBACrD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBAE9C,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;gBACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;gBACtD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;oBACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBAEpD,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACrC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;gBACtD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACxC,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,sBAAsB,CAAC,CAAC;4BACxC,MAAM,EAAE;gCACN,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE;gCACzC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE;6BAC1C;yBACF,CAAC,CAAC;oBACH,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC,CAAC,CAAC;gBAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAE7F,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;gBACtE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACxC,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,sBAAsB,CAAC,CAAC;4BACxC,MAAM,EAAE;gCACN,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;gCACtC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;gCACtC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE;6BACvC;yBACF,CAAC,CAAC;oBACH,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC,CAAC,CAAC;gBAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAE5F,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBAC1D,IAAI,YAAqB,CAAC;gBAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;oBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;wBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,CAAC;oBACD,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC;wBAC5C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;qBACrB,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,OAAO,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAEtF,MAAM,IAAI,GAAG,YAAuC,CAAC;gBACrD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBAE9C,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;gBACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;gBACtD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAE/E,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC;oBAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;oBACtC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;gBAElF,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;gBAClD,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBACxC,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC;wBACtC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE;wBACrG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE;wBACrG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,EAAE;qBACtG,CAAC;oBACF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC,CAAC,CAAC;gBAEJ,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAEhE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC7B,gCAAgC;gBAChC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,MAAM,CAAC,WAAW,CAAC,OAAO,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC/C,MAAM,CAAC,WAAW,CAAC,OAAO,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;gBACnE,IAAI,YAAqB,CAAC;gBAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;oBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;wBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,CAAC;oBACD,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;qBACrB,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,+CAA+C;gBAC/C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnE,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAErE,4BAA4B;gBAC5B,MAAM,IAAI,GAAG,YAAuC,CAAC;gBACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;gBACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;gBACtD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAChE,IAAI,YAAqB,CAAC;gBAE1B,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,IAAY,EAAE,OAAqB,EAAE,EAAE;oBACzE,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;wBAClB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClD,CAAC;oBACD,OAAO;wBACL,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;qBACrB,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,mCAAmC;gBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC7G,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBAC/E,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAErE,4BAA4B;gBAC5B,MAAM,IAAI,GAAG,YAAuC,CAAC;gBACrD,MAAM,KAAK,GAAI,IAAI,CAAC,cAA0C,CAAC,OAAyC,CAAC;gBACzG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAA+B,CAAC;gBACtD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,wCAAwC;YACxC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,uEAAuE;YACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,EAAE,0CAA0C,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,iEAAiE;YACjE,wEAAwE;YACxE,kCAAkC;YAClC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;YAE3E,iBAAiB;YACjB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAC;YAChF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAC;YAChF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAC;YAChF,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAAC;YAE/E,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;YAE3E,iBAAiB;YACjB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,2BAA2B,CAAC,CAAC;YAEjF,4BAA4B;YAC5B,WAAW,IAAI,IAAI,CAAC;YAEpB,gCAAgC;YAChC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;YAErF,4CAA4C;YAC5C,WAAW,IAAI,IAAI,CAAC;YAEpB,2BAA2B;YAC3B,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAEhF,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAC3C,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,uEAAuE;YACvE,sDAAsD;YACtD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,yCAAyC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAElC,sCAAsC;YACtC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,EAAE,6CAA6C,CAAC,CAAC;YAClF,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,EAAE,mDAAmD,CAAC,CAAC;YAEvF,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAClC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAExD,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEjD,iBAAiB;YACjB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,UAAU,EAAE,CAAC;YAErB,kCAAkC;YAClC,OAAO,CAAC,UAAU,EAAE,CAAC;YAErB,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC5B,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;YAE3B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;oBACzC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YAED,+CAA+C;YAC/C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;YAE/C,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEjD,iBAAiB;YACjB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;YAEpD,QAAQ;YACR,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;oBACvD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAElC,yCAAyC;YACzC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,EAAE,uDAAuD,CAAC,CAAC;YAE3F,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;oBACvD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;iBACrB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,oBAAoB;YACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAElC,4CAA4C;YAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;YAClE,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,EAAE,0DAA0D,CAAC,CAAC;YAE9F,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;YAE3E,iBAAiB;YACjB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,2BAA2B,CAAC,CAAC;YAEjF,mBAAmB;YACnB,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;YAExF,eAAe;YACf,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,0CAA0C,CAAC,CAAC;YAEhG,sCAAsC;YACtC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,yBAAyB;YAC3C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;YAEhF,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC;YACjC,IAAI,WAAW,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAE7B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,EAAE;gBACtC,SAAS,EAAE,CAAC;gBACZ,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG;oBACf,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,GAAG;oBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;oBACtB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,uBAAuB;iBAC1C,CAAC;gBACF,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;YAE/E,yEAAyE;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,oBAAoB;gBACtB,CAAC;YACH,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAC;YAExE,wDAAwD;YACxD,wEAAwE;YACxE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE,+CAA+C,CAAC,CAAC;YAErF,qEAAqE;YACrE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE,+CAA+C,CAAC,CAAC;YAErF,kDAAkD;YAClD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,4DAA4D,CAAC,CAAC;YAE/F,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;YAC1E,mDAAmD;YACnD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,8CAA8C,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;YAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,8CAA8C,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;YACtE,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,+BAA+B,EAAE,UAAU,CAAC,CAAC;YAClF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,uCAAuC,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,gCAAgC,EAAE,UAAU,CAAC,CAAC;YACnF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,oCAAoC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;YAChF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;YAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;YACzE,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;YAC3E,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;YAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;YAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,gCAAgC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;YAC7E,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;YAChF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,+BAA+B,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,8BAA8B,EAAE,UAAU,CAAC,CAAC;YACjF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,gCAAgC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;YACpF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,iCAAiC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,+BAA+B,EAAE,UAAU,CAAC,CAAC;YAClF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"signoz-api.test.js","sourceRoot":"","sources":["../../src/backends/signoz-api.test.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/cache.d.ts
CHANGED
|
@@ -1,14 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* LRU (Least Recently Used) cache with TTL for query result caching.
|
|
3
|
+
*
|
|
4
|
+
* ## Memory Characteristics (M1)
|
|
5
|
+
* - **Bounded memory**: Fixed maxSize prevents unbounded growth
|
|
6
|
+
* - **Default capacity**: 100 entries per cache instance
|
|
7
|
+
* - **TTL expiration**: Entries expire after 60 seconds (configurable via CACHE_TTL_MS)
|
|
8
|
+
* - **LRU eviction**: Oldest entries removed when capacity reached
|
|
9
|
+
*
|
|
10
|
+
* ## Usage in MultiDirectoryBackend
|
|
11
|
+
* The backend uses 5 separate cache instances:
|
|
12
|
+
* - traceCache, logCache, metricCache, llmEventCache, evaluationCache
|
|
13
|
+
* - Total capacity: 5 × 100 = 500 entries max
|
|
14
|
+
* - Each entry contains query results (arrays of records)
|
|
15
|
+
*
|
|
16
|
+
* ## Monitoring
|
|
17
|
+
* Use `getStats()` to monitor cache performance:
|
|
18
|
+
* - hitRate: Cache efficiency (0-1, higher is better)
|
|
19
|
+
* - evictions: Count of LRU evictions (indicates capacity pressure)
|
|
20
|
+
* - size: Current number of cached entries
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const cache = new QueryCache<TraceSpan[]>(100, 60000);
|
|
25
|
+
* const stats = cache.getStats();
|
|
26
|
+
* console.log(`Hit rate: ${(stats.hitRate * 100).toFixed(1)}%`);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Cache statistics for monitoring and observability
|
|
3
31
|
*/
|
|
4
32
|
export interface CacheStats {
|
|
33
|
+
/** Number of cache hits (successful retrievals) */
|
|
5
34
|
hits: number;
|
|
35
|
+
/** Number of cache misses (key not found or expired) */
|
|
6
36
|
misses: number;
|
|
37
|
+
/** Number of LRU evictions (entries removed due to capacity) */
|
|
7
38
|
evictions: number;
|
|
39
|
+
/** Current number of entries in cache */
|
|
8
40
|
size: number;
|
|
41
|
+
/** Hit rate: hits / (hits + misses), 0 if no requests */
|
|
9
42
|
hitRate: number;
|
|
10
43
|
}
|
|
44
|
+
/** Default TTL: 60 seconds, configurable via CACHE_TTL_MS env var */
|
|
11
45
|
export declare const CACHE_TTL_MS: number;
|
|
46
|
+
/** Default cache size: 100 entries per instance (L-STYLE-1) */
|
|
47
|
+
export declare const DEFAULT_CACHE_SIZE = 100;
|
|
48
|
+
/**
|
|
49
|
+
* LRU cache with TTL expiration.
|
|
50
|
+
*
|
|
51
|
+
* @typeParam T - Type of cached data (typically arrays of query results)
|
|
52
|
+
*/
|
|
12
53
|
export declare class QueryCache<T> {
|
|
13
54
|
private cache;
|
|
14
55
|
private maxSize;
|
|
@@ -16,6 +57,11 @@ export declare class QueryCache<T> {
|
|
|
16
57
|
private hits;
|
|
17
58
|
private misses;
|
|
18
59
|
private evictions;
|
|
60
|
+
/**
|
|
61
|
+
* Create a new QueryCache instance.
|
|
62
|
+
* @param maxSize - Maximum number of entries (default: DEFAULT_CACHE_SIZE)
|
|
63
|
+
* @param ttlMs - Time-to-live in milliseconds (default: CACHE_TTL_MS)
|
|
64
|
+
*/
|
|
19
65
|
constructor(maxSize?: number, ttlMs?: number);
|
|
20
66
|
get(key: string): T | undefined;
|
|
21
67
|
set(key: string, data: T): void;
|
package/dist/lib/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAOH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qEAAqE;AACrE,eAAO,MAAM,YAAY,QAAoD,CAAC;AAE9E,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;;GAIG;AACH,qBAAa,UAAU,CAAC,CAAC;IACvB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAAK;IAEtB;;;;OAIG;gBACS,OAAO,SAAqB,EAAE,KAAK,SAAe;IAK9D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAkB/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAe/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUzB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,QAAQ,IAAI,UAAU;CAUvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE"}
|
package/dist/lib/cache.js
CHANGED
|
@@ -1,8 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* LRU (Least Recently Used) cache with TTL for query result caching.
|
|
3
|
+
*
|
|
4
|
+
* ## Memory Characteristics (M1)
|
|
5
|
+
* - **Bounded memory**: Fixed maxSize prevents unbounded growth
|
|
6
|
+
* - **Default capacity**: 100 entries per cache instance
|
|
7
|
+
* - **TTL expiration**: Entries expire after 60 seconds (configurable via CACHE_TTL_MS)
|
|
8
|
+
* - **LRU eviction**: Oldest entries removed when capacity reached
|
|
9
|
+
*
|
|
10
|
+
* ## Usage in MultiDirectoryBackend
|
|
11
|
+
* The backend uses 5 separate cache instances:
|
|
12
|
+
* - traceCache, logCache, metricCache, llmEventCache, evaluationCache
|
|
13
|
+
* - Total capacity: 5 × 100 = 500 entries max
|
|
14
|
+
* - Each entry contains query results (arrays of records)
|
|
15
|
+
*
|
|
16
|
+
* ## Monitoring
|
|
17
|
+
* Use `getStats()` to monitor cache performance:
|
|
18
|
+
* - hitRate: Cache efficiency (0-1, higher is better)
|
|
19
|
+
* - evictions: Count of LRU evictions (indicates capacity pressure)
|
|
20
|
+
* - size: Current number of cached entries
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const cache = new QueryCache<TraceSpan[]>(100, 60000);
|
|
25
|
+
* const stats = cache.getStats();
|
|
26
|
+
* console.log(`Hit rate: ${(stats.hitRate * 100).toFixed(1)}%`);
|
|
27
|
+
* ```
|
|
3
28
|
*/
|
|
4
|
-
|
|
29
|
+
/** Default TTL: 60 seconds, configurable via CACHE_TTL_MS env var */
|
|
5
30
|
export const CACHE_TTL_MS = parseInt(process.env.CACHE_TTL_MS || '60000', 10);
|
|
31
|
+
/** Default cache size: 100 entries per instance (L-STYLE-1) */
|
|
32
|
+
export const DEFAULT_CACHE_SIZE = 100;
|
|
33
|
+
/**
|
|
34
|
+
* LRU cache with TTL expiration.
|
|
35
|
+
*
|
|
36
|
+
* @typeParam T - Type of cached data (typically arrays of query results)
|
|
37
|
+
*/
|
|
6
38
|
export class QueryCache {
|
|
7
39
|
cache = new Map();
|
|
8
40
|
maxSize;
|
|
@@ -10,7 +42,12 @@ export class QueryCache {
|
|
|
10
42
|
hits = 0;
|
|
11
43
|
misses = 0;
|
|
12
44
|
evictions = 0;
|
|
13
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Create a new QueryCache instance.
|
|
47
|
+
* @param maxSize - Maximum number of entries (default: DEFAULT_CACHE_SIZE)
|
|
48
|
+
* @param ttlMs - Time-to-live in milliseconds (default: CACHE_TTL_MS)
|
|
49
|
+
*/
|
|
50
|
+
constructor(maxSize = DEFAULT_CACHE_SIZE, ttlMs = CACHE_TTL_MS) {
|
|
14
51
|
this.maxSize = maxSize;
|
|
15
52
|
this.ttlMs = ttlMs;
|
|
16
53
|
}
|
package/dist/lib/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Circuit breaker pattern implementation for resilient I/O operations
|
|
3
|
+
*
|
|
4
|
+
* Prevents cascading failures by temporarily stopping requests to a failing service.
|
|
5
|
+
* States:
|
|
6
|
+
* - CLOSED: Normal operation, requests pass through
|
|
7
|
+
* - OPEN: Service failing, requests are rejected immediately
|
|
8
|
+
* - HALF-OPEN: Testing if service recovered, allows one request through
|
|
9
|
+
*/
|
|
10
|
+
export type CircuitState = 'closed' | 'open' | 'half-open';
|
|
11
|
+
export interface CircuitBreakerOptions {
|
|
12
|
+
/** Number of consecutive failures before opening circuit (default: 3) */
|
|
13
|
+
maxFailures?: number;
|
|
14
|
+
/** Time in ms before attempting recovery (default: 60000) */
|
|
15
|
+
resetMs?: number;
|
|
16
|
+
/** Name for logging purposes */
|
|
17
|
+
name?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Simple circuit breaker for I/O operations (API calls, file operations)
|
|
21
|
+
*
|
|
22
|
+
* Usage:
|
|
23
|
+
* ```ts
|
|
24
|
+
* const breaker = new CircuitBreaker({ name: 'local-file' });
|
|
25
|
+
*
|
|
26
|
+
* if (!breaker.canRequest()) {
|
|
27
|
+
* return []; // Circuit is open, fail fast
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* try {
|
|
31
|
+
* const result = await riskyOperation();
|
|
32
|
+
* breaker.recordSuccess();
|
|
33
|
+
* return result;
|
|
34
|
+
* } catch (error) {
|
|
35
|
+
* breaker.recordFailure();
|
|
36
|
+
* throw error;
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare class CircuitBreaker {
|
|
41
|
+
private failures;
|
|
42
|
+
private lastFailure;
|
|
43
|
+
private state;
|
|
44
|
+
/** Prevents multiple concurrent requests during half-open state */
|
|
45
|
+
private halfOpenRequestInFlight;
|
|
46
|
+
private readonly maxFailures;
|
|
47
|
+
private readonly resetMs;
|
|
48
|
+
private readonly name;
|
|
49
|
+
constructor(options?: CircuitBreakerOptions);
|
|
50
|
+
/**
|
|
51
|
+
* Check if a request can proceed
|
|
52
|
+
* Returns false if circuit is open (and not ready to retry)
|
|
53
|
+
* In half-open state, only one request is allowed through at a time
|
|
54
|
+
*/
|
|
55
|
+
canRequest(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Record a successful operation
|
|
58
|
+
* Closes the circuit if in half-open state
|
|
59
|
+
*/
|
|
60
|
+
recordSuccess(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Record a failed operation
|
|
63
|
+
* Opens the circuit after maxFailures consecutive failures
|
|
64
|
+
*/
|
|
65
|
+
recordFailure(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Get current circuit state
|
|
68
|
+
*/
|
|
69
|
+
getState(): CircuitState;
|
|
70
|
+
/**
|
|
71
|
+
* Get current failure count
|
|
72
|
+
*/
|
|
73
|
+
getFailureCount(): number;
|
|
74
|
+
/**
|
|
75
|
+
* Reset circuit to closed state (useful for testing)
|
|
76
|
+
*/
|
|
77
|
+
reset(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Check if a half-open request is in flight (for testing)
|
|
80
|
+
*/
|
|
81
|
+
isHalfOpenRequestInFlight(): boolean;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=circuit-breaker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../src/lib/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,KAAK,CAA0B;IACvC,mEAAmE;IACnE,OAAO,CAAC,uBAAuB,CAAS;IAExC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,OAAO,GAAE,qBAA0B;IAM/C;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAqBrB;;;OAGG;IACH,aAAa,IAAI,IAAI;IASrB;;;OAGG;IACH,aAAa,IAAI,IAAI;IAWrB;;OAEG;IACH,QAAQ,IAAI,YAAY;IAIxB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,yBAAyB,IAAI,OAAO;CAGrC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Circuit breaker pattern implementation for resilient I/O operations
|
|
3
|
+
*
|
|
4
|
+
* Prevents cascading failures by temporarily stopping requests to a failing service.
|
|
5
|
+
* States:
|
|
6
|
+
* - CLOSED: Normal operation, requests pass through
|
|
7
|
+
* - OPEN: Service failing, requests are rejected immediately
|
|
8
|
+
* - HALF-OPEN: Testing if service recovered, allows one request through
|
|
9
|
+
*/
|
|
10
|
+
import { CIRCUIT_BREAKER } from './constants.js';
|
|
11
|
+
/**
|
|
12
|
+
* Simple circuit breaker for I/O operations (API calls, file operations)
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* ```ts
|
|
16
|
+
* const breaker = new CircuitBreaker({ name: 'local-file' });
|
|
17
|
+
*
|
|
18
|
+
* if (!breaker.canRequest()) {
|
|
19
|
+
* return []; // Circuit is open, fail fast
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* try {
|
|
23
|
+
* const result = await riskyOperation();
|
|
24
|
+
* breaker.recordSuccess();
|
|
25
|
+
* return result;
|
|
26
|
+
* } catch (error) {
|
|
27
|
+
* breaker.recordFailure();
|
|
28
|
+
* throw error;
|
|
29
|
+
* }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export class CircuitBreaker {
|
|
33
|
+
failures = 0;
|
|
34
|
+
lastFailure = 0;
|
|
35
|
+
state = 'closed';
|
|
36
|
+
/** Prevents multiple concurrent requests during half-open state */
|
|
37
|
+
halfOpenRequestInFlight = false;
|
|
38
|
+
maxFailures;
|
|
39
|
+
resetMs;
|
|
40
|
+
name;
|
|
41
|
+
constructor(options = {}) {
|
|
42
|
+
this.maxFailures = options.maxFailures ?? CIRCUIT_BREAKER.MAX_FAILURES;
|
|
43
|
+
this.resetMs = options.resetMs ?? CIRCUIT_BREAKER.RESET_MS;
|
|
44
|
+
this.name = options.name ?? 'circuit-breaker';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if a request can proceed
|
|
48
|
+
* Returns false if circuit is open (and not ready to retry)
|
|
49
|
+
* In half-open state, only one request is allowed through at a time
|
|
50
|
+
*/
|
|
51
|
+
canRequest() {
|
|
52
|
+
if (this.state === 'open') {
|
|
53
|
+
if (Date.now() - this.lastFailure > this.resetMs) {
|
|
54
|
+
// Prevent race condition: only allow one request through during half-open
|
|
55
|
+
if (this.halfOpenRequestInFlight) {
|
|
56
|
+
return false; // Another half-open request is already testing
|
|
57
|
+
}
|
|
58
|
+
this.halfOpenRequestInFlight = true;
|
|
59
|
+
console.info(`[obs-toolkit] ${this.name}: entering HALF-OPEN state (reset timeout elapsed)`);
|
|
60
|
+
this.state = 'half-open';
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
// In half-open state, reject if a request is already in flight
|
|
66
|
+
if (this.state === 'half-open' && this.halfOpenRequestInFlight) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Record a successful operation
|
|
73
|
+
* Closes the circuit if in half-open state
|
|
74
|
+
*/
|
|
75
|
+
recordSuccess() {
|
|
76
|
+
this.halfOpenRequestInFlight = false;
|
|
77
|
+
if (this.state === 'half-open') {
|
|
78
|
+
console.info(`[obs-toolkit] ${this.name}: CLOSED after successful request`);
|
|
79
|
+
}
|
|
80
|
+
this.failures = 0;
|
|
81
|
+
this.state = 'closed';
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Record a failed operation
|
|
85
|
+
* Opens the circuit after maxFailures consecutive failures
|
|
86
|
+
*/
|
|
87
|
+
recordFailure() {
|
|
88
|
+
this.halfOpenRequestInFlight = false;
|
|
89
|
+
this.failures++;
|
|
90
|
+
this.lastFailure = Date.now();
|
|
91
|
+
if (this.failures >= this.maxFailures && this.state !== 'open') {
|
|
92
|
+
const previousState = this.state;
|
|
93
|
+
this.state = 'open';
|
|
94
|
+
console.warn(`[obs-toolkit] ${this.name}: OPENED after ${this.failures} consecutive failures (was: ${previousState})`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get current circuit state
|
|
99
|
+
*/
|
|
100
|
+
getState() {
|
|
101
|
+
return this.state;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get current failure count
|
|
105
|
+
*/
|
|
106
|
+
getFailureCount() {
|
|
107
|
+
return this.failures;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Reset circuit to closed state (useful for testing)
|
|
111
|
+
*/
|
|
112
|
+
reset() {
|
|
113
|
+
this.failures = 0;
|
|
114
|
+
this.lastFailure = 0;
|
|
115
|
+
this.state = 'closed';
|
|
116
|
+
this.halfOpenRequestInFlight = false;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Check if a half-open request is in flight (for testing)
|
|
120
|
+
*/
|
|
121
|
+
isHalfOpenRequestInFlight() {
|
|
122
|
+
return this.halfOpenRequestInFlight;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=circuit-breaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../src/lib/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAajD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,cAAc;IACjB,QAAQ,GAAG,CAAC,CAAC;IACb,WAAW,GAAG,CAAC,CAAC;IAChB,KAAK,GAAiB,QAAQ,CAAC;IACvC,mEAAmE;IAC3D,uBAAuB,GAAG,KAAK,CAAC;IAEvB,WAAW,CAAS;IACpB,OAAO,CAAS;IAChB,IAAI,CAAS;IAE9B,YAAY,UAAiC,EAAE;QAC7C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,eAAe,CAAC,YAAY,CAAC;QACvE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjD,0EAA0E;gBAC1E,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBACjC,OAAO,KAAK,CAAC,CAAC,+CAA+C;gBAC/D,CAAC;gBACD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,oDAAoD,CAAC,CAAC;gBAC7F,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,+DAA+D;QAC/D,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,mCAAmC,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;YACjC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,kBAAkB,IAAI,CAAC,QAAQ,+BAA+B,aAAa,GAAG,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,yBAAyB;QACvB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-breaker.test.d.ts","sourceRoot":"","sources":["../../src/lib/circuit-breaker.test.ts"],"names":[],"mappings":""}
|