kinetex 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +1164 -453
  2. package/dist/browser/kinetex.esm.js +38 -22
  3. package/dist/browser/kinetex.js +3127 -715
  4. package/dist/browser/kinetex.min.js +38 -22
  5. package/dist/cjs/aws-sigv4.js +137 -20
  6. package/dist/cjs/cache.js +101 -21
  7. package/dist/cjs/circuit-breaker.js +69 -7
  8. package/dist/cjs/client.js +838 -191
  9. package/dist/cjs/cookie-parser.js +110 -9
  10. package/dist/cjs/cookie-store.js +141 -36
  11. package/dist/cjs/core.js +501 -63
  12. package/dist/cjs/dedup.js +58 -18
  13. package/dist/cjs/digest.js +185 -23
  14. package/dist/cjs/graphql.js +164 -24
  15. package/dist/cjs/headers.js +362 -48
  16. package/dist/cjs/interceptors.js +285 -29
  17. package/dist/cjs/lifecycle.js +89 -40
  18. package/dist/cjs/logging.js +169 -16
  19. package/dist/cjs/mod.js +3 -2
  20. package/dist/cjs/pagination.js +261 -28
  21. package/dist/cjs/progress.js +282 -52
  22. package/dist/cjs/proxy.js +412 -0
  23. package/dist/cjs/response.js +316 -47
  24. package/dist/cjs/socks5.js +167 -36
  25. package/dist/cjs/sse.js +201 -34
  26. package/dist/cjs/url.js +191 -45
  27. package/dist/cjs/utils.js +222 -48
  28. package/dist/cjs/worker.js +6 -6
  29. package/dist/cjs/ws.js +32 -16
  30. package/dist/esm/aws-sigv4.js +137 -20
  31. package/dist/esm/aws-sigv4.js.map +1 -1
  32. package/dist/esm/cache.js +101 -21
  33. package/dist/esm/cache.js.map +1 -1
  34. package/dist/esm/circuit-breaker.js +69 -7
  35. package/dist/esm/circuit-breaker.js.map +1 -1
  36. package/dist/esm/client.js +838 -191
  37. package/dist/esm/client.js.map +1 -1
  38. package/dist/esm/cookie-parser.js +110 -9
  39. package/dist/esm/cookie-parser.js.map +1 -1
  40. package/dist/esm/cookie-store.js +141 -36
  41. package/dist/esm/cookie-store.js.map +1 -1
  42. package/dist/esm/core.js +501 -63
  43. package/dist/esm/core.js.map +1 -1
  44. package/dist/esm/dedup.js +58 -18
  45. package/dist/esm/dedup.js.map +1 -1
  46. package/dist/esm/digest.js +185 -23
  47. package/dist/esm/digest.js.map +1 -1
  48. package/dist/esm/graphql.js +164 -24
  49. package/dist/esm/graphql.js.map +1 -1
  50. package/dist/esm/headers.js +362 -48
  51. package/dist/esm/headers.js.map +1 -1
  52. package/dist/esm/interceptors.js +285 -29
  53. package/dist/esm/interceptors.js.map +1 -1
  54. package/dist/esm/lifecycle.js +89 -40
  55. package/dist/esm/lifecycle.js.map +1 -1
  56. package/dist/esm/logging.js +169 -16
  57. package/dist/esm/logging.js.map +1 -1
  58. package/dist/esm/mod.js +3 -2
  59. package/dist/esm/mod.js.map +1 -1
  60. package/dist/esm/pagination.js +261 -28
  61. package/dist/esm/pagination.js.map +1 -1
  62. package/dist/esm/progress.js +282 -52
  63. package/dist/esm/progress.js.map +1 -1
  64. package/dist/esm/proxy.js +413 -0
  65. package/dist/esm/proxy.js.map +1 -0
  66. package/dist/esm/response.js +316 -47
  67. package/dist/esm/response.js.map +1 -1
  68. package/dist/esm/socks5.js +167 -36
  69. package/dist/esm/socks5.js.map +1 -1
  70. package/dist/esm/sse.js +201 -34
  71. package/dist/esm/sse.js.map +1 -1
  72. package/dist/esm/types.js.map +1 -1
  73. package/dist/esm/url.js +191 -45
  74. package/dist/esm/url.js.map +1 -1
  75. package/dist/esm/utils.js +222 -48
  76. package/dist/esm/utils.js.map +1 -1
  77. package/dist/esm/worker.js +6 -6
  78. package/dist/esm/worker.js.map +1 -1
  79. package/dist/esm/ws.js +32 -16
  80. package/dist/esm/ws.js.map +1 -1
  81. package/dist/types/aws-sigv4.d.ts.map +1 -1
  82. package/dist/types/cache.d.ts +27 -2
  83. package/dist/types/cache.d.ts.map +1 -1
  84. package/dist/types/circuit-breaker.d.ts +14 -1
  85. package/dist/types/circuit-breaker.d.ts.map +1 -1
  86. package/dist/types/client.d.ts +98 -23
  87. package/dist/types/client.d.ts.map +1 -1
  88. package/dist/types/cookie-parser.d.ts +0 -17
  89. package/dist/types/cookie-parser.d.ts.map +1 -1
  90. package/dist/types/cookie-store.d.ts.map +1 -1
  91. package/dist/types/core.d.ts +109 -25
  92. package/dist/types/core.d.ts.map +1 -1
  93. package/dist/types/dedup.d.ts +0 -7
  94. package/dist/types/dedup.d.ts.map +1 -1
  95. package/dist/types/digest.d.ts +31 -37
  96. package/dist/types/digest.d.ts.map +1 -1
  97. package/dist/types/graphql.d.ts.map +1 -1
  98. package/dist/types/headers.d.ts +62 -29
  99. package/dist/types/headers.d.ts.map +1 -1
  100. package/dist/types/interceptors.d.ts +102 -0
  101. package/dist/types/interceptors.d.ts.map +1 -1
  102. package/dist/types/lifecycle.d.ts +19 -2
  103. package/dist/types/lifecycle.d.ts.map +1 -1
  104. package/dist/types/logging.d.ts +23 -4
  105. package/dist/types/logging.d.ts.map +1 -1
  106. package/dist/types/mod.d.ts +5 -3
  107. package/dist/types/mod.d.ts.map +1 -1
  108. package/dist/types/pagination.d.ts +0 -25
  109. package/dist/types/pagination.d.ts.map +1 -1
  110. package/dist/types/progress.d.ts +1 -1
  111. package/dist/types/progress.d.ts.map +1 -1
  112. package/dist/types/proxy.d.ts +50 -0
  113. package/dist/types/proxy.d.ts.map +1 -0
  114. package/dist/types/response.d.ts +7 -1
  115. package/dist/types/response.d.ts.map +1 -1
  116. package/dist/types/socks5.d.ts.map +1 -1
  117. package/dist/types/sse.d.ts.map +1 -1
  118. package/dist/types/types.d.ts +139 -5
  119. package/dist/types/types.d.ts.map +1 -1
  120. package/dist/types/url.d.ts +0 -14
  121. package/dist/types/url.d.ts.map +1 -1
  122. package/dist/types/utils.d.ts.map +1 -1
  123. package/dist/types/worker.d.ts +6 -6
  124. package/dist/types/worker.d.ts.map +1 -1
  125. package/dist/types/ws.d.ts.map +1 -1
  126. package/package.json +2 -2
@@ -27,6 +27,9 @@
27
27
  * - Metrics interceptor (timing, status buckets, error rates)
28
28
  * - No dependencies, no runtime globals beyond Promise/Map/Set
29
29
  */
30
+ import { getAuthFingerprint } from "./cache.js";
31
+ import { KinetexError } from "./types.js";
32
+ import { parseHTTPDate } from "./headers.js";
30
33
  // ============================================================================
31
34
  // §3 INTERCEPTOR MANAGER
32
35
  // ============================================================================
@@ -34,8 +37,18 @@ let _idSeq = 0;
34
37
  function nextId() {
35
38
  return `interceptor_${++_idSeq}`;
36
39
  }
37
- function sortByPriority(arr) {
38
- return [...arr].sort((a, b) => a.priority - b.priority);
40
+ /**
41
+ * Insert keeping ascending priority order. Sorting at registration (once)
42
+ * instead of on every request avoids copying the whole array three times per
43
+ * request, and Array#sort is stable so equal priorities keep registration
44
+ * order — the same result the old per-request sort produced.
45
+ */
46
+ function insertByPriority(arr, entry) {
47
+ const at = arr.findIndex((x) => x.priority > entry.priority);
48
+ if (at === -1)
49
+ arr.push(entry);
50
+ else
51
+ arr.splice(at, 0, entry);
39
52
  }
40
53
  /**
41
54
  * Manages registration, ejection, and pipeline execution of interceptors.
@@ -57,7 +70,7 @@ export class InterceptorManager {
57
70
  */
58
71
  useRequest(fn, opts = {}) {
59
72
  const id = opts.id ?? nextId();
60
- this.requestInterceptors.push({
73
+ insertByPriority(this.requestInterceptors, {
61
74
  id,
62
75
  priority: opts.priority ?? 0,
63
76
  once: opts.once ?? false,
@@ -75,7 +88,7 @@ export class InterceptorManager {
75
88
  */
76
89
  useResponse(fn, opts = {}) {
77
90
  const id = opts.id ?? nextId();
78
- this.responseInterceptors.push({
91
+ insertByPriority(this.responseInterceptors, {
79
92
  id,
80
93
  priority: opts.priority ?? 0,
81
94
  once: opts.once ?? false,
@@ -93,7 +106,7 @@ export class InterceptorManager {
93
106
  */
94
107
  useError(fn, opts = {}) {
95
108
  const id = opts.id ?? nextId();
96
- this.errorInterceptors.push({
109
+ insertByPriority(this.errorInterceptors, {
97
110
  id,
98
111
  priority: opts.priority ?? 0,
99
112
  once: opts.once ?? false,
@@ -178,7 +191,7 @@ export class InterceptorManager {
178
191
  // Collect IDs to eject after iteration (avoids modifying array during for-of)
179
192
  const toEject = new Set();
180
193
  // ── Request phase ──────────────────────────────────────────────────────
181
- for (const interceptor of sortByPriority(this.requestInterceptors)) {
194
+ for (const interceptor of this.requestInterceptors) {
182
195
  if (ctx.aborted)
183
196
  break;
184
197
  if (interceptor.condition && !interceptor.condition(ctx))
@@ -225,7 +238,7 @@ export class InterceptorManager {
225
238
  async _runResponsePhase(ctx, dispatcher) {
226
239
  // Collect IDs to eject after iteration
227
240
  const toEject = new Set();
228
- for (const interceptor of sortByPriority(this.responseInterceptors)) {
241
+ for (const interceptor of this.responseInterceptors) {
229
242
  if (ctx.aborted)
230
243
  break;
231
244
  if (interceptor.condition && !interceptor.condition(ctx))
@@ -268,7 +281,7 @@ export class InterceptorManager {
268
281
  async _runErrorPhase(ctx, dispatcher) {
269
282
  // Collect IDs to eject after iteration
270
283
  const toEject = new Set();
271
- for (const interceptor of sortByPriority(this.errorInterceptors)) {
284
+ for (const interceptor of this.errorInterceptors) {
272
285
  if (interceptor.condition && !interceptor.condition(ctx))
273
286
  continue;
274
287
  let result;
@@ -346,7 +359,9 @@ export function createRetryInterceptor(config = {}) {
346
359
  const exp = cfg.baseDelayMs * Math.pow(2, attempt - 1);
347
360
  const capped = Math.min(exp, cfg.maxDelayMs);
348
361
  const jitterMs = capped * cfg.jitter * Math.random();
349
- return Math.floor(capped + jitterMs);
362
+ // `maxDelayMs` is documented as a hard maximum, so it has to be applied
363
+ // after jitter too — capping first let jitter push the delay past it.
364
+ return Math.min(Math.floor(capped + jitterMs), cfg.maxDelayMs);
350
365
  }
351
366
  function shouldRetryCtx(ctx) {
352
367
  if (ctx.attempt > cfg.maxRetries)
@@ -367,8 +382,12 @@ export function createRetryInterceptor(config = {}) {
367
382
  return null;
368
383
  if (/^\d+$/.test(ra.trim()))
369
384
  return parseInt(ra, 10) * 1000;
370
- const ms = Date.parse(ra);
371
- if (!isNaN(ms))
385
+ // Only the three HTTP-date formats count. Raw `Date.parse` is lenient to a
386
+ // fault here: it happily accepts "1.5", "-5" and "+5" as ancient dates, so a
387
+ // malformed `Retry-After` resolved to ~0ms and silently cancelled the
388
+ // back-off instead of falling through to the exponential delay.
389
+ const ms = parseHTTPDate(ra);
390
+ if (ms !== null)
372
391
  return Math.max(0, ms - Date.now());
373
392
  return null;
374
393
  }
@@ -607,6 +626,7 @@ export function createLoggingInterceptor(config = {}) {
607
626
  durationMs: type !== "request" ? now() - ctx.startedAt : null,
608
627
  attempt: ctx.attempt,
609
628
  error: ctx.error instanceof Error ? ctx.error.message : null,
629
+ headers: redactHeaders(ctx.request.headers ?? {}),
610
630
  };
611
631
  }
612
632
  const requestInterceptor = (ctx) => {
@@ -626,7 +646,6 @@ export function createLoggingInterceptor(config = {}) {
626
646
  return;
627
647
  cfg.logger(makeEntry("error", ctx));
628
648
  };
629
- void redactHeaders; // used externally; suppress unused warning
630
649
  return { requestInterceptor, responseInterceptor, errorInterceptor };
631
650
  }
632
651
  const CACHE_DEFAULTS = {
@@ -758,13 +777,22 @@ const CACHE_STALE_KEY = Symbol("cacheStale");
758
777
  */
759
778
  export function createDedupeInterceptor() {
760
779
  const inflight = new Map();
761
- function key(req) {
762
- return `${req.method.toUpperCase()}:${req.url}`;
780
+ /**
781
+ * Dedupe key. SECURITY: the auth fingerprint is part of the key. Without it,
782
+ * two callers with different Authorization / Cookie / API-key headers for the
783
+ * same URL were coalesced and one user received the other user's response.
784
+ */
785
+ async function key(req) {
786
+ const authFp = await getAuthFingerprint((req.headers ?? {}));
787
+ return `${req.method.toUpperCase()}:${req.url}${authFp ? ":" + authFp : ""}`;
763
788
  }
764
- const requestInterceptor = (ctx) => {
789
+ const requestInterceptor = async (ctx) => {
765
790
  if (ctx.request.method.toUpperCase() !== "GET" && ctx.request.method.toUpperCase() !== "HEAD")
766
791
  return;
767
- const k = key(ctx.request);
792
+ const k = await key(ctx.request);
793
+ // Stash the key on the context so the response/error phases can find this
794
+ // request' slot without re-deriving it.
795
+ ctx.store.set(DEDUPE_KEY, k);
768
796
  const slot = inflight.get(k);
769
797
  if (!slot) {
770
798
  // First request for this key — create in-flight entry
@@ -774,39 +802,61 @@ export function createDedupeInterceptor() {
774
802
  });
775
803
  return;
776
804
  }
777
- // A request is already in flight — queue up
778
- ctx.store.set(DEDUPE_QUEUED_KEY, k);
779
- // Return a Promise that resolves to InterceptorResponse (which is a valid RequestInterceptorResult)
805
+ // A request is already in flight — queue up. A queued caller must never be
806
+ // left hanging if its own signal aborts while it waits for the leader.
780
807
  return new Promise((resolve, reject) => {
781
- slot.waiters.push({
808
+ const signal = ctx.request.signal;
809
+ const waiter = {
782
810
  resolve: (res) => resolve(res),
783
811
  reject: (err) => reject(err), // Properly reject instead of throwing
784
- });
812
+ cleanup: () => signal?.removeEventListener("abort", onQueuedAbort),
813
+ };
814
+ const onQueuedAbort = () => {
815
+ const at = slot.waiters.indexOf(waiter);
816
+ if (at !== -1)
817
+ slot.waiters.splice(at, 1);
818
+ reject(new Error("Request aborted while queued for deduplication"));
819
+ };
820
+ if (signal?.aborted) {
821
+ onQueuedAbort();
822
+ return;
823
+ }
824
+ signal?.addEventListener("abort", onQueuedAbort, { once: true });
825
+ slot.waiters.push(waiter);
785
826
  });
786
827
  };
787
828
  const responseInterceptor = (ctx) => {
788
829
  if (!ctx.response)
789
830
  return;
790
- const k = key(ctx.request);
831
+ const k = ctx.store.get(DEDUPE_KEY);
832
+ if (!k)
833
+ return;
791
834
  const slot = inflight.get(k);
792
835
  if (!slot)
793
836
  return;
794
837
  inflight.delete(k);
795
- for (const w of slot.waiters)
838
+ for (const w of slot.waiters.splice(0)) {
839
+ w.cleanup();
796
840
  w.resolve(ctx.response);
841
+ }
797
842
  };
798
843
  const errorInterceptor = (ctx) => {
799
- const k = key(ctx.request);
844
+ const k = ctx.store.get(DEDUPE_KEY);
845
+ if (!k)
846
+ return;
800
847
  const slot = inflight.get(k);
801
848
  if (!slot)
802
849
  return;
803
850
  inflight.delete(k);
804
- for (const w of slot.waiters)
851
+ for (const w of slot.waiters.splice(0)) {
852
+ w.cleanup();
805
853
  w.reject(ctx.error);
854
+ }
806
855
  };
807
856
  return { requestInterceptor, responseInterceptor, errorInterceptor };
808
857
  }
809
- const DEDUPE_QUEUED_KEY = Symbol("dedupeQueued");
858
+ /** ctx.store key holding this request's dedupe key. */
859
+ const DEDUPE_KEY = Symbol("dedupeKey");
810
860
  const RATE_LIMIT_DEFAULTS = {
811
861
  limit: 60,
812
862
  windowMs: 60_000,
@@ -821,6 +871,19 @@ const RATE_LIMIT_DEFAULTS = {
821
871
  */
822
872
  export function createRateLimitInterceptor(config = {}) {
823
873
  const cfg = { ...RATE_LIMIT_DEFAULTS, ...config };
874
+ // A non-positive `limit` (or a non-positive `windowMs`) has no valid token-bucket
875
+ // state: the refill interval `windowMs / limit` becomes `Infinity` or `NaN`,
876
+ // which `setInterval` turns into a ~1ms busy-poll, and every request either
877
+ // throws or queues forever. Reject it up front rather than degrading silently.
878
+ if (!Number.isFinite(cfg.limit) || cfg.limit < 1) {
879
+ throw new RangeError(`rateLimit.limit must be a finite number >= 1, got ${cfg.limit}`);
880
+ }
881
+ if (!Number.isFinite(cfg.windowMs) || cfg.windowMs < 1) {
882
+ throw new RangeError(`rateLimit.windowMs must be a finite number >= 1, got ${cfg.windowMs}`);
883
+ }
884
+ if (!Number.isFinite(cfg.maxQueue) || cfg.maxQueue < 0) {
885
+ throw new RangeError(`rateLimit.maxQueue must be a finite number >= 0, got ${cfg.maxQueue}`);
886
+ }
824
887
  let tokens = cfg.limit;
825
888
  let lastRefill = now();
826
889
  const pending = [];
@@ -877,6 +940,191 @@ export class RateLimitError extends Error {
877
940
  this.name = "RateLimitError";
878
941
  }
879
942
  }
943
+ /** Defaults for {@link ConcurrencyLimitConfig}. */
944
+ export const CONCURRENCY_DEFAULTS = {
945
+ maxConcurrent: 10,
946
+ queue: true,
947
+ maxQueue: 100,
948
+ };
949
+ /**
950
+ * Raised when the concurrency limit is reached and the request cannot be
951
+ * queued (or queueing is disabled).
952
+ *
953
+ * Distinct from {@link RateLimitError}: a rate limit bounds requests per unit
954
+ * of _time_, this bounds requests in flight.
955
+ */
956
+ export class ConcurrencyLimitError extends Error {
957
+ /** Machine-readable error code identifying this as a concurrency error */
958
+ code = "ECONCURRENCY";
959
+ constructor(message) {
960
+ super(message);
961
+ this.name = "ConcurrencyLimitError";
962
+ }
963
+ }
964
+ /**
965
+ * Detach a waiter's abort listener.
966
+ *
967
+ * Nulling `onAbort` alone is not enough: a caller-supplied signal usually
968
+ * outlives a single request, so the `{ once: true }` listener would stay
969
+ * attached forever and accumulate one closure per queued request.
970
+ */
971
+ function detachAbortListener(waiter) {
972
+ if (waiter.onAbort && waiter.signal) {
973
+ waiter.signal.removeEventListener("abort", waiter.onAbort);
974
+ }
975
+ waiter.onAbort = null;
976
+ waiter.signal = null;
977
+ }
978
+ /**
979
+ * A counting semaphore bounding how many requests may be in flight at once.
980
+ *
981
+ * The rate limiter is a token bucket: it releases a token at _dispatch_, so
982
+ * `limit: 100` per minute still permits 100 simultaneous sockets. This bounds
983
+ * concurrency instead — a permit is held for the whole request (including its
984
+ * retries) and returned only when it settles.
985
+ *
986
+ * Permits are handed directly to the next waiter on release, so releasing
987
+ * never transiently overshoots {@link ConcurrencyLimitConfig.maxConcurrent}.
988
+ *
989
+ * @example
990
+ * ```ts
991
+ * const limiter = new ConcurrencyLimiter({ maxConcurrent: 4 });
992
+ * await limiter.acquire();
993
+ * try {
994
+ * await doWork();
995
+ * } finally {
996
+ * limiter.release();
997
+ * }
998
+ * ```
999
+ */
1000
+ export class ConcurrencyLimiter {
1001
+ cfg;
1002
+ active = 0;
1003
+ peak = 0;
1004
+ waiters = [];
1005
+ /**
1006
+ * @param config - Partial configuration; omitted fields use {@link CONCURRENCY_DEFAULTS}.
1007
+ * @throws {RangeError} If `maxConcurrent` is not a finite number >= 1, or
1008
+ * `maxQueue` is neither a non-negative integer nor `Infinity`.
1009
+ */
1010
+ constructor(config = {}) {
1011
+ this.cfg = { ...CONCURRENCY_DEFAULTS, ...config };
1012
+ if (!Number.isFinite(this.cfg.maxConcurrent) || this.cfg.maxConcurrent < 1) {
1013
+ throw new RangeError(`concurrencyLimit.maxConcurrent must be a finite number >= 1, received ${String(this.cfg.maxConcurrent)}`);
1014
+ }
1015
+ // The cap is tested as `waiters.length >= maxQueue`, so `NaN` makes every
1016
+ // comparison false and the queue stops bounding anything: each request then
1017
+ // parks a waiter holding its promise, signal and closures, with nothing
1018
+ // ever rejected. A negative value is the opposite failure — the first
1019
+ // overflow is refused, so a configured depth of -1 silently means 0.
1020
+ if (this.cfg.maxQueue !== Number.POSITIVE_INFINITY &&
1021
+ (!Number.isInteger(this.cfg.maxQueue) || this.cfg.maxQueue < 0)) {
1022
+ throw new RangeError(`concurrencyLimit.maxQueue must be a non-negative integer or Infinity, received ${String(this.cfg.maxQueue)}`);
1023
+ }
1024
+ }
1025
+ /** Number of permits currently held. */
1026
+ get inFlight() {
1027
+ return this.active;
1028
+ }
1029
+ /** Number of requests currently waiting for a permit. */
1030
+ get waiting() {
1031
+ return this.waiters.length;
1032
+ }
1033
+ /** Highest concurrent in-flight count observed. */
1034
+ get highWaterMark() {
1035
+ return this.peak;
1036
+ }
1037
+ /**
1038
+ * Take a permit, waiting in the queue if the limit is saturated.
1039
+ *
1040
+ * @param signal - Optional abort signal; aborting while queued removes the
1041
+ * waiter and rejects without ever consuming a permit.
1042
+ * @throws {ConcurrencyLimitError} If queueing is disabled or the queue is full.
1043
+ * @throws {KinetexError} With code `EABORT` if `signal` aborts while queued —
1044
+ * the same contract every other abort path in the library offers, so
1045
+ * `err.code === "EABORT"` and `err.isAbort` work here too.
1046
+ */
1047
+ acquire(signal) {
1048
+ // Checked before anything else, so the answer does not depend on whether a
1049
+ // permit happened to be free. This used to sit only inside the enqueue
1050
+ // path, which gave the same call three different answers: on an idle pool
1051
+ // the fast path granted the permit and dropped the abort entirely; with
1052
+ // queueing disabled or the queue full, the abort was reported as a queue
1053
+ // overflow, so a caller branching on `err.code === "EABORT"` treated a
1054
+ // cancelled request as a capacity failure.
1055
+ if (signal?.aborted) {
1056
+ // Refused before a permit is taken, so none can leak.
1057
+ return Promise.reject(new KinetexError("Concurrency acquire aborted", "EABORT"));
1058
+ }
1059
+ if (this.active < this.cfg.maxConcurrent) {
1060
+ this.active++;
1061
+ if (this.active > this.peak)
1062
+ this.peak = this.active;
1063
+ return Promise.resolve();
1064
+ }
1065
+ if (!this.cfg.queue) {
1066
+ return Promise.reject(new ConcurrencyLimitError(`Concurrency limit reached (${this.cfg.maxConcurrent} in flight) and queueing is disabled`));
1067
+ }
1068
+ if (this.waiters.length >= this.cfg.maxQueue) {
1069
+ return Promise.reject(new ConcurrencyLimitError(`Concurrency queue is full (${this.cfg.maxQueue} waiting)`));
1070
+ }
1071
+ return new Promise((resolve, reject) => {
1072
+ const waiter = { resolve, reject, onAbort: null, signal: null };
1073
+ if (signal) {
1074
+ if (signal.aborted) {
1075
+ // Redundant with the check at the top of `acquire`, and kept as
1076
+ // defence in depth: nothing awaits between the two, but an `abort`
1077
+ // event never fires on an already-aborted signal, so if this branch
1078
+ // were ever the only check the abort would be lost silently.
1079
+ reject(new KinetexError("Concurrency acquire aborted", "EABORT"));
1080
+ return;
1081
+ }
1082
+ waiter.onAbort = () => {
1083
+ const idx = this.waiters.indexOf(waiter);
1084
+ if (idx !== -1)
1085
+ this.waiters.splice(idx, 1);
1086
+ reject(new KinetexError("Concurrency acquire aborted", "EABORT"));
1087
+ };
1088
+ waiter.signal = signal;
1089
+ signal.addEventListener("abort", waiter.onAbort, { once: true });
1090
+ }
1091
+ this.waiters.push(waiter);
1092
+ });
1093
+ }
1094
+ /**
1095
+ * Return a permit taken by {@link acquire}.
1096
+ *
1097
+ * The permit is handed to the longest-waiting caller, so `inFlight` never
1098
+ * exceeds `maxConcurrent`. Releasing with nothing held is a no-op.
1099
+ */
1100
+ release() {
1101
+ if (this.active === 0)
1102
+ return;
1103
+ const next = this.waiters.shift();
1104
+ if (!next) {
1105
+ this.active--;
1106
+ return;
1107
+ }
1108
+ // Transfer the permit: `active` is intentionally left unchanged.
1109
+ detachAbortListener(next);
1110
+ next.resolve();
1111
+ }
1112
+ /**
1113
+ * Drop every queued waiter, rejecting them with `reason`.
1114
+ *
1115
+ * Used by {@link Kinetex.destroy} so a shutdown cannot leave callers parked
1116
+ * on a queue that will never drain.
1117
+ *
1118
+ * @param reason - Error to reject waiters with.
1119
+ */
1120
+ drain(reason = new ConcurrencyLimitError("Client destroyed")) {
1121
+ const pending = this.waiters.splice(0, this.waiters.length);
1122
+ for (const w of pending) {
1123
+ detachAbortListener(w);
1124
+ w.reject(reason);
1125
+ }
1126
+ }
1127
+ }
880
1128
  /**
881
1129
  * Create a HAR (HTTP Archive) recording interceptor.
882
1130
  * Captures request/response pairs for export as a HAR log.
@@ -908,7 +1156,11 @@ export function createHARInterceptor() {
908
1156
  ctx.response.headers["Content-Type"] ??
909
1157
  "application/octet-stream";
910
1158
  const body = ctx.response.body;
911
- const bSize = body instanceof Uint8Array ? body.byteLength : typeof body === "string" ? body.length : 0;
1159
+ // Byte length, not `.length`: a non-ASCII response body was under-reported in
1160
+ // both `content.size` and `bodySize` by one byte per accented character and by
1161
+ // three bytes per astral character. `computeBodySize` returns -1 for a body it
1162
+ // cannot size, which HAR reports as 0 here (unchanged for those types).
1163
+ const bSize = Math.max(0, computeBodySize(body));
912
1164
  entries.push({
913
1165
  startedDateTime: new Date(Date.now() - total).toISOString(),
914
1166
  time: total,
@@ -1038,8 +1290,12 @@ function sleep(ms) {
1038
1290
  export function computeBodySize(body) {
1039
1291
  if (!body)
1040
1292
  return 0;
1041
- if (typeof body === "string")
1042
- return body.length;
1293
+ if (typeof body === "string") {
1294
+ // UTF-8 byte length, not `.length` (UTF-16 code units). HAR `bodySize` and the
1295
+ // metrics byte counters are byte counts, and a non-ASCII body was under-reported
1296
+ // by 2 bytes per astral character and 1 per Latin-1 accented character.
1297
+ return new TextEncoder().encode(body).length;
1298
+ }
1043
1299
  if (body instanceof Uint8Array)
1044
1300
  return body.byteLength;
1045
1301
  if (body instanceof ArrayBuffer)
@@ -1 +1 @@
1
- {"version":3,"file":"interceptors.js","sourceRoot":"","sources":["../../src/interceptors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interceptors.js","sourceRoot":"","sources":["../../src/interceptors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAyHH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAqF7C,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,SAAS,MAAM;IACb,OAAO,eAAe,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAiC,GAAQ,EAAE,KAAQ;IAC1E,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7D,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;QAC1B,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACrB,mBAAmB,GAAyB,EAAE,CAAC;IAC/C,oBAAoB,GAA0B,EAAE,CAAC;IACjD,iBAAiB,GAAuB,EAAE,CAAC;IAEnD,6EAA6E;IAE7E;;;;;;OAMG;IACH,UAAU,CAAC,EAAwB,EAAE,OAA2B,EAAE;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAC/B,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACzC,EAAE;YACF,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;YACjC,EAAE;SACH,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,EAAyB,EAAE,OAA2B,EAAE;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAC/B,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC1C,EAAE;YACF,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;YACjC,EAAE;SACH,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,EAAsB,EAAE,OAA2B,EAAE;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAC/B,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACvC,EAAE;YACF,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;YACjC,EAAE;SACH,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,gEAAgE;IAChE,GAAG,CACD,SAAsC,EACtC,UAAwC,EACxC,OAA2B,EAAE;QAO7B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,6EAA6E;IAE7E;;;;;OAKG;IACH,KAAK,CAAC,EAAU;QACd,MAAM,MAAM,GACV,IAAI,CAAC,mBAAmB,CAAC,MAAM;YAC/B,IAAI,CAAC,oBAAoB,CAAC,MAAM;YAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAEhC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAE3E,MAAM,KAAK,GACT,IAAI,CAAC,mBAAmB,CAAC,MAAM;YAC/B,IAAI,CAAC,oBAAoB,CAAC,MAAM;YAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAChC,OAAO,KAAK,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,0CAA0C;IAC1C,QAAQ;QACN,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,6EAA6E;IAE7E,+DAA+D;IAC/D,GAAG,CAAC,EAAU;QACZ,OAAO,CACL,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YACjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;IACzC,CAAC;IACD,kDAAkD;IAClD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;IAC1C,CAAC;IACD,+CAA+C;IAC/C,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,6EAA6E;IAE7E;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,OAA2B,EAAE,UAAsB;QAC/D,MAAM,GAAG,GAAuB;YAC9B,OAAO;YACP,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,GAAG,EAAE;YAChB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI,GAAG,EAAE;SACjB,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,IAAI,CAAC,GAAuB,EAAE,UAAsB;QACxD,GAAG,CAAC,OAAO,EAAE,CAAC;QAEd,8EAA8E;QAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,0EAA0E;QAC1E,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACnD,IAAI,GAAG,CAAC,OAAO;gBAAE,MAAM;YACvB,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEnE,IAAI,MAAgC,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;gBAChB,KAAK,MAAM,EAAE,IAAI,OAAO;oBAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,WAAW,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAElD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;gBAAE,SAAS;YAEtD,2DAA2D;YAC3D,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;gBACtB,KAAK,MAAM,EAAE,IAAI,OAAO;oBAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC;YAED,kBAAkB;YAClB,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;YACvB,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,KAAK,MAAM,EAAE,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEzC,0EAA0E;QAC1E,IAAI,CAAC;YACH,GAAG,CAAC,QAAQ,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;YAChB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,GAAuB,EACvB,UAAsB;QAEtB,uCAAuC;QACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpD,IAAI,GAAG,CAAC,OAAO;gBAAE,MAAM;YACvB,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEnE,IAAI,MAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;gBAChB,KAAK,MAAM,EAAE,IAAI,OAAO;oBAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,WAAW,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAElD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;gBAAE,SAAS;YAEtD,4CAA4C;YAC5C,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;gBACrB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACpB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,KAAK,MAAM,EAAE,IAAI,OAAO;oBAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACpC,CAAC;YAED,mBAAmB;YACnB,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;YACxB,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,KAAK,MAAM,EAAE,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEzC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,GAAuB,EACvB,UAAsB;QAEtB,uCAAuC;QACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjD,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEnE,IAAI,MAA8B,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,wDAAwD;gBACxD,IAAK,GAAmC,CAAC,aAAa,EAAE,CAAC;oBACvD,KAAK,MAAM,EAAE,IAAI,OAAO;wBAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACzC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;oBACjB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACpC,CAAC;gBACD,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;gBAChB,SAAS;YACX,CAAC;YAED,IAAI,WAAW,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAElD,sDAAsD;YACtD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7E,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;gBACtB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;gBACjB,KAAK,MAAM,EAAE,IAAI,OAAO;oBAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,KAAK,MAAM,EAAE,IAAI,OAAO;YAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEzC,MAAM,GAAG,CAAC,KAAK,CAAC;IAClB,CAAC;CACF;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,SAAS,qBAAqB,CAAC,CAAU;IACvC,OAAO,CACL,CAAC,KAAK,IAAI;QACV,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAQ,CAAyB,CAAC,MAAM,KAAK,QAAQ;QACrD,SAAS,IAAI,CAAC;QACd,SAAS,IAAI,CAAC,CACf,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,CAAU;IACtC,OAAO,CACL,CAAC,KAAK,IAAI;QACV,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAQ,CAAwB,CAAC,GAAG,KAAK,QAAQ;QACjD,OAAQ,CAAwB,CAAC,MAAM,KAAK,QAAQ;QACpD,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CACjB,CAAC;AACJ,CAAC;AAiCD,MAAM,cAAc,GAAgB;IAClC,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,GAAG;IACX,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC7C,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;IAC1E,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAA+B,EAAE;IAMtE,MAAM,GAAG,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7C,SAAS,YAAY,CAAC,OAAe,EAAE,YAA2B;QAChE,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACrD,wEAAwE;QACxE,sEAAsE;QACtE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,cAAc,CAAC,GAAuB;QAC7C,IAAI,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC/E,IAAI,GAAG,CAAC,WAAW;YAAE,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,GAAG,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC,YAAY,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ;YAAE,OAAO,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,YAAY,CAAC,GAAuB;QAC3C,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACxF,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACrB,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAAE,OAAO,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;QAC5D,2EAA2E;QAC3E,6EAA6E;QAC7E,sEAAsE;QACtE,gEAAgE;QAChE,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,mBAAmB,GAA0B,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAAE,OAAO;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,6CAA6C;QAC7C,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAuB,KAAK,EAAE,GAAG,EAAE,EAAE;QACzD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAAE,OAAO;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9C,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;QACjB,6EAA6E;QAC7E,+CAA+C;QAC/C,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;AACnD,CAAC;AAED,gEAAgE;AAChE,MAAM,WAAW;IAEa;IADnB,aAAa,GAAG,IAAI,CAAC;IAC9B,YAA4B,OAA2B;QAA3B,YAAO,GAAP,OAAO,CAAoB;IAAG,CAAC;CAC5D;AA6BD,MAAM,aAAa,GAA0B;IAC3C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,eAAe;IAC3B,MAAM,EAAE,SAAS;IACjB,iBAAiB,EAAE,CAAC,GAAG,CAAC;IACxB,QAAQ,EAAE,EAAE;IACZ,iBAAiB,EAAE,MAAM;CAC1B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAEC;IAOD,MAAM,GAAG,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAE5C,IAAI,cAAc,GAAkC,IAAI,CAAC;IACzD,MAAM,KAAK,GAGN,EAAE,CAAC;IAER,0EAA0E;IAC1E,IAAI,kBAAkB,GAAkB,IAAI,CAAC;IAC7C,MAAM,sBAAsB,GAAG,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,CAAC,cAAc;IAE9E,KAAK,UAAU,iBAAiB;QAC9B,iEAAiE;QACjE,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC;YACzD,IAAI,gBAAgB,GAAG,sBAAsB,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACb,8CAA8C,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,IAAI,CAAC,KAAK,CAAC,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,CACzK,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,sDAAsD;YACtD,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7E,OAAO,MAAM,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAEnC,cAAc,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,CACtC,CAAC,KAAK,EAAE,EAAE;YACR,cAAc;YACd,KAAK,MAAM,MAAM,IAAI,KAAK;gBAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClD,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,cAAc,GAAG,IAAI,CAAC;YACtB,kBAAkB,GAAG,IAAI,CAAC,CAAC,mCAAmC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,KAAK,MAAM,MAAM,IAAI,KAAK;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/C,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,cAAc,GAAG,IAAI,CAAC;YACtB,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,0CAA0C;YAC3E,MAAM,GAAG,CAAC;QACZ,CAAC,CACF,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,kBAAkB,GAAyB,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QAChE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAA0B,KAAK,EAAE,GAAG,EAAE,EAAE;QAC/D,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO;QACjE,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,OAAO;QAC9B,iCAAiC;QACjC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,QAAQ,GAAuB;YACnC,GAAG,GAAG,CAAC,OAAO;YACd,OAAO,EAAE;gBACP,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO;gBACtB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,QAAQ,EAAE;aAC7C;YACD,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;SACnD,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AACrD,CAAC;AAeD,MAAM,gBAAgB,GAAkB;IACtC,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,EAAE;IAClB,OAAO,EAAE,mBAAmB;CAC7B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiC,EAAE;IAU1E,MAAM,GAAG,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,MAAM,EAAE,CAAC;IAE/C,MAAM,kBAAkB,GAAyB,CAAC,GAAG,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC;QACjF,IAAI,EAAE,IAAI,CAAC;YAAE,OAAO;QAEpB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;YACnB,UAAU,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,iEAAiE;QACjE,oEAAoE;QACpE,iDAAiD;QACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QACpC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,eAAe,GAAG,GAAG,EAAE;gBAC3B,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC,CAAC;YACF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QAE5D,+BAA+B;QAC/B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,wDAAwD;IACxD,MAAM,cAAc,GAAG,CAAC,GAAoC,EAAQ,EAAE;QACpE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAA8C,CAAC;QAC5F,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CACqB,CAAC;QACrE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;YACrE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;IAEF,4EAA4E;IAC5E,wBAAwB;IACxB,MAAM,mBAAmB,GAA0B,CAAC,GAAG,EAAE,EAAE;QACzD,cAAc,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,wEAAwE;IACxE,MAAM,gBAAgB,GAAuB,CAAC,GAAG,EAAE,EAAE;QACnD,cAAc,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,SAAS;QACb,kBAAkB;QAClB,mBAAmB;QACnB,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACjD,MAAM,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAEnD,kEAAkE;AAClE,MAAM,OAAO,YAAa,SAAQ,KAAK;IAInB;IAHT,IAAI,GAAG,WAAW,CAAC;IAC5B,YACE,OAAe,EACC,SAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AA+CD,MAAM,YAAY,GAAkB;IAClC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7C,aAAa,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,qBAAqB,CAAC;IAC/E,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiC,EAAE;IAQ1E,MAAM,GAAG,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEzE,SAAS,aAAa,CAAC,OAA+B;QACpD,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,SAAS,CAAC,IAAsB,EAAE,GAAuB;QAChE,MAAM,SAAS,GAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAY,IAAI,SAAS,CAAC;QACzE,OAAO;YACL,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS;YACT,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM;YAC1B,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG;YACpB,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI;YACpC,UAAU,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAC7D,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC5D,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAyB,CAAC,GAAG,EAAE,EAAE;QACvD,MAAM,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,WAAW;YAAE,OAAO;QAC7B,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAA0B,CAAC,GAAG,EAAE,EAAE;QACzD,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,OAAO;QAC9B,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAuB,CAAC,GAAG,EAAE,EAAE;QACnD,IAAI,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO;QAC3B,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;AACvE,CAAC;AAmCD,MAAM,cAAc,GAAgB;IAClC,UAAU,EAAE,GAAG;IACf,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,IAAI;IACd,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAA+B,EAAE;IAQtE,MAAM,GAAG,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC,CAAC,6BAA6B;IAEvD,SAAS,QAAQ,CAAC,GAAuB;QACvC,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;IACvE,CAAC;IAED,SAAS,QAAQ,CAAC,GAAW;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAG,CAAC;YACzB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,SAAS,QAAQ,CAAC,QAA6B;QAC7C,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QACxF,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,GAAG,CAAC,iBAAiB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAEjF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;QACtE,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,kBAAkB,GAAyB,CAAC,GAAG,EAAE,EAAE;QACvD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,SAAS,CAAC;QACnF,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAEhB,wBAAwB;QACxB,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACnC,OAAO,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QACrD,CAAC;QAED,uEAAuE;QACvE,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACtC,8CAA8C;YAC9C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,GAAG,CAAC,OAAO,GAAG;oBACZ,GAAG,GAAG,CAAC,OAAO;oBACd,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,IAAI,EAAE;iBACjE,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC9B,GAAG,CAAC,OAAO,GAAG;oBACZ,GAAG,GAAG,CAAC,OAAO;oBACd,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,CAAC,YAAY,EAAE;iBAC7E,CAAC;YACJ,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAA0B,CAAC,GAAG,EAAE,EAAE;QACzD,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO;QAEzE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElC,mDAAmD;QACnD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAA2B,CAAC;YACvE,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAe;oBAC1B,GAAG,KAAK;oBACR,SAAS,EAAE,CAAC;oBACZ,SAAS,EAAE,CAAC,GAAG,KAAK;oBACpB,UAAU,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK;iBAC9B,CAAC;gBACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACd,GAAG,CAAC,QAAQ,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3D,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO;QAEvB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAe;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC,GAAG,KAAK;YACpB,UAAU,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK;YAC7B,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI;YAC1E,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI;SAC5D,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACzC,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE7C,+EAA+E;AAC/E,2CAA2C;AAC3C,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IAarC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwE,CAAC;IAEjG;;;;OAIG;IACH,KAAK,UAAU,GAAG,CAAC,GAAuB;QACxC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAA2B,CAAC,CAAC;QACvF,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,kBAAkB,GAAyB,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7D,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM;YAC3F,OAAO;QAET,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,0EAA0E;QAC1E,wCAAwC;QACxC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,sDAAsD;YACtD,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;gBACd,OAAO,EAAE,SAAoD;gBAC7D,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,uEAAuE;QACvE,OAAO,IAAI,OAAO,CAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,MAAM,MAAM,GAAW;gBACrB,OAAO,EAAE,CAAC,GAAwB,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;gBACnD,MAAM,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,sCAAsC;gBAC7E,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC;aACnE,CAAC;YACF,MAAM,aAAa,GAAG,GAAG,EAAE;gBACzB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC;YACF,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,aAAa,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAA0B,CAAC,GAAG,EAAE,EAAE;QACzD,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAuB,CAAC;QAC1D,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,CAAC,CAAC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAuB,CAAC,GAAG,EAAE,EAAE;QACnD,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAuB,CAAC;QAC1D,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,CAAC,CAAC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;AACvE,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAiBvC,MAAM,mBAAmB,GAAoB;IAC3C,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,SAAmC,EAAE;IAErC,MAAM,GAAG,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAAC;IAClD,kFAAkF;IAClF,6EAA6E;IAC7E,4EAA4E;IAC5E,+EAA+E;IAC/E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,UAAU,CAAC,qDAAqD,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,UAAU,CAAC,wDAAwD,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,UAAU,CAAC,wDAAwD,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;IACvB,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;IACvB,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,IAAI,WAAW,GAA0C,IAAI,CAAC;IAE9D,SAAS,MAAM;QACb,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QACzD,UAAU,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,SAAS,iBAAiB;QACxB,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO;QACjC,WAAW,GAAG,WAAW,CACvB,GAAG,EAAE;YACH,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,EAAG,EAAE,CAAC;YACrB,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACjD,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC3B,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,EACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CACpC,CAAC;QACF,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;YACrF,WAAqC,CAAC,KAAK,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED,KAAK,UAAU,OAAO;QACpB,MAAM,EAAE,CAAC;QACT,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,MAAM,IAAI,cAAc,CAAC,qBAAqB,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAEtF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9B,iBAAiB,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED,oDAAoD;AACpD,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,yEAAyE;IAChE,IAAI,GAAG,YAAY,CAAC;IAC7B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAsBD,mDAAmD;AACnD,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,0EAA0E;IACjE,IAAI,GAAG,cAAc,CAAC;IAC/B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAUD;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,MAAyB;IACpD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,kBAAkB;IACZ,GAAG,CAAyB;IACrC,MAAM,GAAG,CAAC,CAAC;IACX,IAAI,GAAG,CAAC,CAAC;IACA,OAAO,GAAwB,EAAE,CAAC;IAEnD;;;;OAIG;IACH,YAAY,SAA0C,EAAE;QACtD,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,UAAU,CAClB,yEAAyE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAC1G,CAAC;QACJ,CAAC;QACD,0EAA0E;QAC1E,4EAA4E;QAC5E,wEAAwE;QACxE,sEAAsE;QACtE,qEAAqE;QACrE,IACE,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB;YAC9C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,EAC/D,CAAC;YACD,MAAM,IAAI,UAAU,CAClB,kFAAkF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAC9G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,mDAAmD;IACnD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,MAA2B;QACjC,2EAA2E;QAC3E,uEAAuE;QACvE,0EAA0E;QAC1E,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,2CAA2C;QAC3C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,sDAAsD;YACtD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;YACrD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,qBAAqB,CACvB,8BAA8B,IAAI,CAAC,GAAG,CAAC,aAAa,sCAAsC,CAC3F,CACF,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,qBAAqB,CAAC,8BAA8B,IAAI,CAAC,GAAG,CAAC,QAAQ,WAAW,CAAC,CACtF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAEnF,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,gEAAgE;oBAChE,mEAAmE;oBACnE,oEAAoE;oBACpE,6DAA6D;oBAC7D,MAAM,CAAC,IAAI,YAAY,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAClE,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;oBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACzC,IAAI,GAAG,KAAK,CAAC,CAAC;wBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC5C,MAAM,CAAC,IAAI,YAAY,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACpE,CAAC,CAAC;gBACF,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBACvB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,iEAAiE;QACjE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAgB,IAAI,qBAAqB,CAAC,kBAAkB,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACvB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAwED;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAUlC,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAEzC,SAAS,YAAY,CAAC,CAAyB;QAC7C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,SAAS,kBAAkB,CAAC,GAAW;QACrC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAyB,CAAC,GAAG,EAAE,EAAE;QACvD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAA0B,CAAC,GAAG,EAAE,EAAE;QACzD,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAY,IAAI,GAAG,CAAC,SAAS,CAAC;QAC1E,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;QAC9B,MAAM,IAAI,GACR,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;YACpC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;YACpC,0BAA0B,CAAC;QAE7B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,8EAA8E;QAC9E,+EAA+E;QAC/E,+EAA+E;QAC/E,wEAAwE;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjD,OAAO,CAAC,IAAI,CAAC;YACX,eAAe,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE;YAC3D,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACP,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE;gBACxC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG;gBACpB,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC1C,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;gBAChD,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;aAC5C;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM;gBAC3B,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU;gBACnC,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC3C,OAAO,EAAE;oBACP,IAAI,EAAE,KAAK;oBACX,QAAQ,EAAE,IAAI;oBACd,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpD;gBACD,QAAQ,EAAE,KAAK;gBACf,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE;aACpD;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;gBAC7B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;aACjC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,kBAAkB;QAClB,mBAAmB;QACnB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACb,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;YAC9C,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;SACtB,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE;YACb,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC;AA0BD;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IAYtC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,aAAa,GAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACzF,MAAM,aAAa,GAAG,MAAM,CAAC;IAC7B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,MAAM,kBAAkB,GAAyB,CAAC,GAAG,EAAE,EAAE;QACvD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,aAAa,EAAE,CAAC;QAChB,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC;YAAE,YAAY,EAAE,CAAC;IACtC,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAA0B,CAAC,GAAG,EAAE,EAAE;QACzD,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAuB,CAAC;QACnE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;YAChC,IAAI,SAAS,CAAC,MAAM,IAAI,aAAa;gBAAE,SAAS,CAAC,KAAK,EAAE,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;QAC5D,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,aAAuC,CAAC;YACxD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAuB,GAAG,EAAE;QAChD,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,SAAS,UAAU,CAAC,MAAgB,EAAE,CAAS;QAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,UAAU,CAAE,CAAC;IAC7B,CAAC;IAED,MAAM,QAAQ,GAAG,GAAoB,EAAE;QACrC,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO;YACL,aAAa;YACb,WAAW;YACX,YAAY;YACZ,aAAa,EAAE,EAAE,GAAG,aAAa,EAAE;YACnC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC9B,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;SACtC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,aAAa,GAAG,CAAC,CAAC;QAClB,WAAW,GAAG,CAAC,CAAC;QAChB,YAAY,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACxF,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,SAAS,GAAG;IACV,sEAAsE;IACtE,mEAAmE;IACnE,OAAO,OAAO,WAAW,KAAK,WAAW,IAAI,OAAO,WAAW,CAAC,GAAG,KAAK,UAAU;QAChF,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE;QACnB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACjB,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAAC,IAA2C;IACzE,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,+EAA+E;QAC/E,iFAAiF;QACjF,wEAAwE;QACxE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;IACD,IAAI,IAAI,YAAY,UAAU;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC;IACvD,IAAI,IAAI,YAAY,WAAW;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC;IACxD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAwCD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAsB,EAAE;IAC7D,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAEzC,6CAA6C;IAC7C,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACtF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACxF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IAElF,aAAa;IACb,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YAC/D,QAAQ,EAAE,CAAC,EAAE;YACb,EAAE,EAAE,WAAW;SAChB,CAAC,CAAC;IACL,CAAC;IAED,SAAS;IACT,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACnF,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACrF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAE/E,QAAQ;IACR,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAEnF,OAAO;IACP,IAAI,SAAS,GAAoD,IAAI,CAAC;IACtE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,QAAQ;IACR,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAClF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAE5E,UAAU;IACV,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAChF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAClF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAE5E,MAAM;IACN,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAE9E,UAAU;IACV,MAAM,OAAO,GAAG,wBAAwB,EAAE,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACrF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACvF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IAEjF,OAAO;QACL,OAAO;QACP,KAAK;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE;QAC3B,OAAO;QACP,KAAK;QACL,MAAM;QACN,GAAG;QACH,OAAO;KACR,CAAC;AACJ,CAAC"}