@netacea/akamai 5.0.48 → 5.0.49

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/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 5.0.49 (2023-09-04)
7
+
8
+ **Note:** Version bump only for package @netacea/akamai
9
+
10
+
11
+
12
+
13
+
6
14
  ## 5.0.48 (2023-08-25)
7
15
 
8
16
  **Note:** Version bump only for package @netacea/akamai
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netacea/akamai",
3
- "version": "5.0.48",
3
+ "version": "5.0.49",
4
4
  "description": "Netacea Akamai CDN Integration",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "license": "ISC",
22
22
  "dependencies": {
23
- "@netacea/netaceaintegrationbase": "^1.16.54",
23
+ "@netacea/netaceaintegrationbase": "^1.16.55",
24
24
  "buffer": "^6.0.3",
25
25
  "jssha": "^3.3.0"
26
26
  },
@@ -67,5 +67,5 @@
67
67
  "tslib": "^2.0.3",
68
68
  "typescript": "^4.0.3"
69
69
  },
70
- "gitHead": "63789f13a8a4e402923f4b1aeb4f935e51e96466"
70
+ "gitHead": "1f90b04e1b62d284d335a48cd135637b05f371c2"
71
71
  }
@@ -2,6 +2,7 @@
2
2
  import { InjectResponse, ComposeResultResponse, MakeRequestArgs, MakeRequestResponse, MitigateResponse, NetaceaBaseArgs, NetaceaMitigationType, NetaceaIngestType, NetaceaLogVersion, NetaceaMitigationResponse, IngestArgs, WebLog, V2WebLog, FindBestMitigationResponse, APICallResponse, NetaceaResponseBase, ProcessMitigateRequestArgs, NetaceaWorker } from '@netacea/netaceaintegrationbase';
3
3
  import { CachedEncryption } from './CachedEncryption';
4
4
  import type { HttpResponse, RequestBody } from 'http-request';
5
+ import { AkamaiWorkerConfig } from './ConfigLoader';
5
6
  export interface ResponseProperties {
6
7
  headers: Record<string, string>;
7
8
  body?: string | undefined;
@@ -9,9 +10,10 @@ export interface ResponseProperties {
9
10
  statusText?: string;
10
11
  mitigation?: string;
11
12
  }
12
- export interface AkamaiConstructorArgs extends Omit<NetaceaBaseArgs, 'apiKey'> {
13
+ export interface LegacyAkamaiConstructorArgs extends Omit<NetaceaBaseArgs, 'apiKey'> {
13
14
  apiKey?: string;
14
15
  useCaptchaRelAssets?: boolean;
16
+ cookieEncryptionKey?: string;
15
17
  }
16
18
  export declare type AkamaiMitigateResponse = MitigateResponse<ResponseProperties>;
17
19
  export interface UpstreamMitHeaders {
@@ -39,7 +41,7 @@ interface InjectedDependencies {
39
41
  httpRequest: AkamaiHttpRequestFn;
40
42
  }
41
43
  export default class AkamaiLegacyWorker implements NetaceaWorker<RequestArgs, Response> {
42
- protected mitataCookieExpirySeconds: number;
44
+ protected netaceaCookieExpirySeconds: number;
43
45
  protected apiKey: string;
44
46
  protected secretKey?: string;
45
47
  protected mitigationServiceUrl: string;
@@ -54,25 +56,17 @@ export default class AkamaiLegacyWorker implements NetaceaWorker<RequestArgs, Re
54
56
  protected mitigationType: NetaceaMitigationType;
55
57
  protected enableMitigationProxyPass: boolean;
56
58
  protected enableIngestProxyPass: boolean;
57
- protected useSecretKeyFromAkamaiVariable: boolean;
58
- protected useApiKeyFromAkamaiVariable: boolean;
59
59
  protected cookieEncryptionKey: string | undefined;
60
60
  protected cachedEncryption?: CachedEncryption;
61
61
  protected encryptedCookies: string[];
62
62
  protected useCaptchaRelAssets: boolean;
63
- protected netaceaCookieAttr?: string;
64
- protected netaceaCaptchaCookieAttr?: string;
63
+ protected netaceaCookieAttributes: string;
64
+ protected netaceaCaptchaCookieAttributes: string;
65
65
  protected logger: Logger;
66
66
  protected httpRequest: AkamaiHttpRequestFn;
67
- constructor(args: AkamaiConstructorArgs, deps: InjectedDependencies);
67
+ constructor(config: AkamaiWorkerConfig, deps: InjectedDependencies);
68
68
  requestHandler(request: EW.IngressClientRequest): Promise<void>;
69
69
  private logToDataStream;
70
- private populateKeys;
71
- private configureApiEndpoints;
72
- private configureIngestAndMitigationTypes;
73
- private configureCookieNames;
74
- private populateCookieAttributes;
75
- private checkCaptchaRelAssets;
76
70
  private initConfiguration;
77
71
  private handleMitResult;
78
72
  inject(request: EW.IngressClientRequest): Promise<InjectResponse>;
@@ -3,7 +3,7 @@ import { checkMitataCookie, createMitataCookie, generateId } from './mitataCooki
3
3
  import { CachedEncryption } from './CachedEncryption';
4
4
  import * as pack from '../package.json';
5
5
  import { isUrlCaptchaPost, isUrlCaptchaAssetsGet } from './netaceaPaths';
6
- import { configureCookiesDomain, extractAndRemoveCookieAttr } from './netaceaCookieAttributes';
6
+ import { extractAndRemoveCookieAttr } from './netaceaCookieAttributes';
7
7
  const ONE_HOUR_IN_SECONDS = 60 * 60;
8
8
  const ONE_DAY_IN_SECONDS = ONE_HOUR_IN_SECONDS * 24;
9
9
  const DEFAULT_MITIGATION_TYPE = NetaceaMitigationType.MITIGATE;
@@ -11,22 +11,19 @@ const DEFAULT_INGEST_TYPE = NetaceaIngestType.HTTP;
11
11
  const captchaPassCode = String(dictionary.captchaStatusCodes.captchaPass);
12
12
  const captchaStatusHeaderName = dictionary.netaceaHeaders.captcha;
13
13
  const protoMitataVariableName = 'PMUSER_NETACEA_PROTO_MITATA';
14
- function configureMitataExpiry(mitigationType, expirySeconds) {
15
- if (expirySeconds === undefined) {
16
- return mitigationType === NetaceaMitigationType.INGEST ? 3600 : 60;
17
- }
18
- return expirySeconds;
19
- }
20
14
  export default class AkamaiLegacyWorker {
21
- constructor(args, deps) {
22
- this.enableMitigationProxyPass = true;
23
- this.enableIngestProxyPass = true;
15
+ constructor(config, deps) {
24
16
  this.encryptedCookies = [];
25
17
  this.httpRequest = deps.httpRequest;
26
18
  this.logger = deps.logger;
27
- const { apiKey, secretKey, timeout = 3000, mitigationServiceUrl = 'https://mitigations.netacea.net', ingestServiceUrl = 'https://ingest.netacea.net', useCaptchaRelAssets = false, mitigationType = NetaceaMitigationType.INGEST, captchaSiteKey, captchaSecretKey, ingestType = NetaceaIngestType.HTTP, kinesis, logVersion, mitataCookieExpirySeconds, netaceaCookieExpirySeconds, netaceaCookieName, netaceaCaptchaCookieName } = args;
19
+ const { apiKey, captchaSecretKey, captchaSiteKey, cookieEncryptionKey, enableIngestProxyPass = true, enableMitigationProxyPass = true, ingestServiceUrl = 'https://ingest.netacea.net', ingestType = NetaceaIngestType.HTTP, kinesis, logVersion, mitigationServiceUrl = 'https://mitigations.netacea.net', mitigationType = NetaceaMitigationType.INGEST, netaceaCaptchaCookieAttributes, netaceaCaptchaCookieName, netaceaCookieAttributes, netaceaCookieExpirySeconds, netaceaCookieName, secretKey, timeout = 3000, useCaptchaRelAssets = false } = config;
20
+ this.netaceaCookieAttributes = netaceaCookieAttributes;
21
+ this.netaceaCaptchaCookieAttributes = netaceaCaptchaCookieAttributes;
22
+ this.enableMitigationProxyPass = enableMitigationProxyPass;
23
+ this.enableIngestProxyPass = enableIngestProxyPass;
28
24
  this.apiKey = apiKey ?? '';
29
25
  this.secretKey = secretKey ?? '';
26
+ this.cookieEncryptionKey = cookieEncryptionKey;
30
27
  this.mitigationServiceUrl = mitigationServiceUrl;
31
28
  this.ingestServiceUrl = ingestServiceUrl;
32
29
  this.useCaptchaRelAssets = useCaptchaRelAssets;
@@ -51,11 +48,12 @@ export default class AkamaiLegacyWorker {
51
48
  this.netaceaCookieName,
52
49
  this.netaceaCaptchaCookieName
53
50
  ];
54
- this.mitataCookieExpirySeconds = configureMitataExpiry(mitigationType, netaceaCookieExpirySeconds ?? mitataCookieExpirySeconds);
55
- this.mitigationType = args.mitigationType ?? DEFAULT_MITIGATION_TYPE;
56
- this.ingestType = args.ingestType ?? DEFAULT_INGEST_TYPE;
57
- this.useSecretKeyFromAkamaiVariable = !Boolean(args.secretKey);
58
- this.useApiKeyFromAkamaiVariable = !Boolean(args.apiKey);
51
+ if (netaceaCookieExpirySeconds === undefined) {
52
+ throw new Error('netaceaCookieExpirySeconds must not be undefined');
53
+ }
54
+ this.netaceaCookieExpirySeconds = netaceaCookieExpirySeconds;
55
+ this.mitigationType = config.mitigationType ?? DEFAULT_MITIGATION_TYPE;
56
+ this.ingestType = config.ingestType ?? DEFAULT_INGEST_TYPE;
59
57
  }
60
58
  async requestHandler(request) {
61
59
  this.initConfiguration(request);
@@ -92,64 +90,7 @@ export default class AkamaiLegacyWorker {
92
90
  this.logError(`Error setting PMUSER_NETACEA_DS2_CUSTOM_FIELD ${e}`);
93
91
  }
94
92
  }
95
- populateKeys(request) {
96
- if (this.useApiKeyFromAkamaiVariable) {
97
- this.apiKey = request.getVariable('PMUSER_NETACEA_API_KEY') ?? '';
98
- }
99
- if (this.useSecretKeyFromAkamaiVariable) {
100
- this.secretKey = request.getVariable('PMUSER_NETACEA_SECRET_KEY') ?? '';
101
- }
102
- this.cookieEncryptionKey = request.getVariable('PMUSER_NETACEA_ENCRYPTION_KEY');
103
- }
104
- configureApiEndpoints(request) {
105
- const mitigationServiceUrlVar = request.getVariable('PMUSER_NETACEA_MITIGATION_URL');
106
- const ingestServiceUrlVar = request.getVariable('PMUSER_NETACEA_INGEST_URL');
107
- if (mitigationServiceUrlVar !== undefined) {
108
- this.enableMitigationProxyPass = false;
109
- this.mitigationServiceUrl = mitigationServiceUrlVar;
110
- }
111
- if (ingestServiceUrlVar !== undefined) {
112
- this.enableIngestProxyPass = false;
113
- this.ingestServiceUrl = ingestServiceUrlVar;
114
- }
115
- }
116
- configureIngestAndMitigationTypes(request) {
117
- const fetchedIngestType = String(request.getVariable('PMUSER_NETACEA_INGEST_TYPE'));
118
- const fetchedMitigationType = String(request.getVariable('PMUSER_NETACEA_MITIGATION_TYPE'));
119
- this.ingestType = NetaceaIngestType[fetchedIngestType] ?? this.ingestType;
120
- this.mitigationType = NetaceaMitigationType[fetchedMitigationType] ?? this.mitigationType;
121
- if (fetchedMitigationType !== undefined) {
122
- this.mitataCookieExpirySeconds = configureMitataExpiry(this.mitigationType, undefined);
123
- }
124
- }
125
- configureCookieNames(request) {
126
- const fetchedCookieName = request.getVariable('PMUSER_NETACEA_COOKIE_NAME');
127
- const fetchedCaptchaCookieName = request.getVariable('PMUSER_NETACEA_CAPT_COOKIE_NAME');
128
- this.netaceaCookieName = fetchedCookieName ?? this.netaceaCookieName;
129
- this.netaceaCaptchaCookieName = fetchedCaptchaCookieName ?? this.netaceaCaptchaCookieName;
130
- this.encryptedCookies = [
131
- this.netaceaCookieName,
132
- this.netaceaCaptchaCookieName
133
- ];
134
- }
135
- async populateCookieAttributes(request) {
136
- const fetchedCookieAttr = request.getVariable('PMUSER_NETACEA_COOKIE_ATTR');
137
- const fetchedCaptchaCookieAttr = request.getVariable('PMUSER_NETACEA_CAP_COOKIE_ATTR');
138
- const { cookieAttribute, captchaCookieAttribute } = configureCookiesDomain(fetchedCookieAttr, fetchedCaptchaCookieAttr);
139
- this.netaceaCookieAttr = cookieAttribute;
140
- this.netaceaCaptchaCookieAttr = captchaCookieAttribute;
141
- }
142
- checkCaptchaRelAssets(request) {
143
- const netaceaCaptRelAssets = request.getVariable('PMUSER_NETACEA_CAPT_REL_ASSETS')?.toLowerCase() ?? 'false';
144
- this.useCaptchaRelAssets = netaceaCaptRelAssets === 'true';
145
- }
146
93
  initConfiguration(request) {
147
- this.populateKeys(request);
148
- this.configureApiEndpoints(request);
149
- this.configureIngestAndMitigationTypes(request);
150
- this.configureCookieNames(request);
151
- this.checkCaptchaRelAssets(request);
152
- this.populateCookieAttributes(request);
153
94
  if (this.cookieEncryptionKey !== undefined && this.cookieEncryptionKey !== '') {
154
95
  this.cachedEncryption = new CachedEncryption({
155
96
  encryptionKey: this.cookieEncryptionKey ?? ''
@@ -423,7 +364,7 @@ export default class AkamaiLegacyWorker {
423
364
  }
424
365
  async createAkamaiMitata(clientIP, userId, match, mitigate, captcha, maxAge = 86400, expiry = undefined) {
425
366
  const isCaptchaServe = [1, 3, 5].includes(captcha);
426
- const expiryDelta = isCaptchaServe ? -this.mitataCookieExpirySeconds : this.mitataCookieExpirySeconds;
367
+ const expiryDelta = isCaptchaServe ? -this.netaceaCookieExpirySeconds : this.netaceaCookieExpirySeconds;
427
368
  const mitataExpiry = expiry ?? Math.floor(Date.now() / 1000) + expiryDelta;
428
369
  if (this.secretKey === undefined) {
429
370
  throw new Error('Cannot build cookie without secret key.');
@@ -463,16 +404,16 @@ export default class AkamaiLegacyWorker {
463
404
  : this.getProtoMitataFromRequestVar(request);
464
405
  if (protoMitata !== undefined) {
465
406
  let maxAgeAttr;
466
- if (this.netaceaCookieAttr !== undefined) {
467
- const { extractedAttribute: cookieMaxAge, cookieAttributes } = extractAndRemoveCookieAttr(this.netaceaCookieAttr, 'Max-Age');
407
+ if (this.netaceaCookieAttributes !== '') {
408
+ const { extractedAttribute: cookieMaxAge, cookieAttributes } = extractAndRemoveCookieAttr(this.netaceaCookieAttributes, 'Max-Age');
468
409
  maxAgeAttr = cookieMaxAge;
469
- this.netaceaCookieAttr = cookieAttributes;
410
+ this.netaceaCookieAttributes = cookieAttributes;
470
411
  }
471
412
  const cookie = await this.createAkamaiMitata(protoMitata.clientIP, protoMitata.userId, protoMitata.match, protoMitata.mitigate, protoMitata.captcha, maxAgeAttr !== undefined ? Number(maxAgeAttr) : protoMitata.mitataMaxAge);
472
413
  const responseCookies = response.getHeader('set-cookie') ?? [];
473
414
  response.setHeader('set-cookie', [
474
415
  ...responseCookies.filter(c => !c.startsWith('_proto-mitata=')),
475
- this.netaceaCookieAttr !== undefined ? `${cookie}; ${this.netaceaCookieAttr}` : cookie
416
+ this.netaceaCookieAttributes !== '' ? `${cookie}; ${this.netaceaCookieAttributes}` : cookie
476
417
  ]);
477
418
  }
478
419
  }
@@ -490,10 +431,10 @@ export default class AkamaiLegacyWorker {
490
431
  `${this.netaceaCaptchaCookieName}=${captchaCookieValue}`,
491
432
  ...attributes
492
433
  ].join('; ');
493
- if (this.netaceaCaptchaCookieAttr !== undefined) {
494
- const { extractedAttribute: extractedMaxAge, cookieAttributes } = extractAndRemoveCookieAttr(this.netaceaCaptchaCookieAttr, 'Max-Age');
434
+ if (this.netaceaCaptchaCookieAttributes !== '') {
435
+ const { extractedAttribute: extractedMaxAge, cookieAttributes } = extractAndRemoveCookieAttr(this.netaceaCaptchaCookieAttributes, 'Max-Age');
495
436
  const { extractedAttribute: captchaMaxAge } = (extractAndRemoveCookieAttr(captchaCookie, 'Max-Age'));
496
- this.netaceaCaptchaCookieAttr = cookieAttributes;
437
+ this.netaceaCaptchaCookieAttributes = cookieAttributes;
497
438
  if (extractedMaxAge !== undefined && captchaMaxAge !== undefined) {
498
439
  captchaCookie.replace(`Max-Age=${captchaMaxAge}`, `Max-Age=${extractedMaxAge}`);
499
440
  captchaCookie = `${captchaCookie}; ${cookieAttributes}`;
@@ -1 +1 @@
1
- {"version":3,"file":"AkamaiV1.js","sourceRoot":"","sources":["../../src/AkamaiV1.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EAGd,UAAU,EAIV,YAAY,EAKZ,oBAAoB,EAIrB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,sBAAsB,EAAE,0BAA0B,EACnD,MAAM,2BAA2B,CAAA;AAKlC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,CAAA;AACnC,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,EAAE,CAAA;AAEnD,MAAM,uBAAuB,GAA0B,qBAAqB,CAAC,QAAQ,CAAA;AACrF,MAAM,mBAAmB,GAAsB,iBAAiB,CAAC,IAAI,CAAA;AAErE,MAAM,eAAe,GAAW,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;AACjF,MAAM,uBAAuB,GAAW,UAAU,CAAC,cAAc,CAAC,OAAO,CAAA;AAiCzE,MAAM,uBAAuB,GAAG,6BAA6B,CAAA;AAE7D,SAAS,qBAAqB,CAC5B,cAAqC,EACrC,aAAiC;IAEjC,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,cAAc,KAAK,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;KACnE;IACD,OAAO,aAAa,CAAA;AACtB,CAAC;AAuBD,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAsCrC,YAAa,IAA2B,EAAE,IAA0B;QAhB1D,8BAAyB,GAAY,IAAI,CAAA;QACzC,0BAAqB,GAAY,IAAI,CAAA;QAKrC,qBAAgB,GAAa,EAAE,CAAA;QAWvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAEzB,MAAM,EACJ,MAAM,EACN,SAAS,EACT,OAAO,GAAG,IAAI,EACd,oBAAoB,GAAG,iCAAiC,EACxD,gBAAgB,GAAG,4BAA4B,EAC/C,mBAAmB,GAAG,KAAK,EAC3B,cAAc,GAAG,qBAAqB,CAAC,MAAM,EAC7C,cAAc,EACd,gBAAgB,EAChB,UAAU,GAAG,iBAAiB,CAAC,IAAI,EACnC,OAAO,EACP,UAAU,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,wBAAwB,EACzB,GAAG,IAAI,CAAA;QAOR,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAA;QACtD,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,iBAAiB,CAAC,EAAE,CAAA;QACpD,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,OAAO,EAAE;YACjD,IAAI,OAAO,KAAK,SAAS,EAAE;gBAEzB,OAAO,CAAC,IAAI,CAAC,8DAA8D,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;aAC9F;iBAAM;aAKN;SACF;QACD,IAAI,cAAc,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;YACpC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;SACzC;QACD,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAEtC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,SAAS,CAAA;QACvD,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,IAAI,gBAAgB,CAAA;QAE5E,IAAI,CAAC,gBAAgB,GAAG;YACtB,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,wBAAwB;SAC9B,CAAA;QAED,IAAI,CAAC,yBAAyB,GAAG,qBAAqB,CACpD,cAAc,EACd,0BAA0B,IAAI,yBAAyB,CACxD,CAAA;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,uBAAuB,CAAA;QACpE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAA;QACxD,IAAI,CAAC,8BAA8B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC9D,IAAI,CAAC,2BAA2B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1D,CAAC;IAOM,KAAK,CAAC,cAAc,CAAE,OAAgC;QAC3D,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAE/B,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAClD,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;SAClC;aAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE;YACxF,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAA;SACzC;aAAM;YACL,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;SACpC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAEO,KAAK,CAAC,eAAe,CAAE,OAAgC;QAE7D,IAAI;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAA;YAE9D,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACpE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA;YAChF,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;YAElD,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,IAAI,EAAE,CAAA;YAC9D,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,UAAU,EAAE,KAAK,IAAI,CAAC,CAAA;YAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAA;YACnE,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,CAAC,CAAA;YAEhE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAC/C,KAAK,EACL,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/C,CAAA;YAGD,MAAM,kBAAkB,GAAG;gBACzB,MAAM;gBACN,aAAa;gBACb,IAAI,CAAC,OAAO;aACb,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,OAAO,CAAC,WAAW,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAA;SAC3E;QAAC,OAAO,CAAC,EAAE;YAEV,IAAI,CAAC,QAAQ,CAAC,iDAAiD,CAAC,EAAE,CAAC,CAAA;SACpE;IACH,CAAC;IAEO,YAAY,CAAE,OAAgC;QACpD,IAAI,IAAI,CAAC,2BAA2B,EAAE;YACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAA;SAClE;QACD,IAAI,IAAI,CAAC,8BAA8B,EAAE;YACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAA;SACxE;QACD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAA;IACjF,CAAC;IAEO,qBAAqB,CAAE,OAAgC;QAC7D,MAAM,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAA;QACpF,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAA;QAE5E,IAAI,uBAAuB,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAA;YACtC,IAAI,CAAC,oBAAoB,GAAG,uBAAuB,CAAA;SACpD;QAED,IAAI,mBAAmB,KAAK,SAAS,EAAE;YACrC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAA;YAClC,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAA;SAC5C;IACH,CAAC;IAEO,iCAAiC,CAAE,OAAgC;QACzE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,CAAA;QACnF,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC,CAAA;QAC3F,IAAI,CAAC,UAAU,GAAI,iBAAyB,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAA;QAClF,IAAI,CAAC,cAAc,GAAI,qBAA6B,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,cAAc,CAAA;QAClG,IAAI,qBAAqB,KAAK,SAAS,EAAE;YACvC,IAAI,CAAC,yBAAyB,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;SACvF;IACH,CAAC;IAEO,oBAAoB,CAAE,OAAgC;QAC5D,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAA;QAC3E,MAAM,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAA;QACvF,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAA;QACpE,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,IAAI,IAAI,CAAC,wBAAwB,CAAA;QACzF,IAAI,CAAC,gBAAgB,GAAG;YACtB,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,wBAAwB;SAC9B,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAE,OAAgC;QACtE,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAA;QAC3E,MAAM,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAA;QAEtF,MAAM,EACJ,eAAe,EACf,sBAAsB,EACvB,GAAG,sBAAsB,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAA;QAEvE,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAA;QACxC,IAAI,CAAC,wBAAwB,GAAG,sBAAsB,CAAA;IACxD,CAAC;IAEO,qBAAqB,CAAE,OAAgC;QAC7D,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,gCAAgC,CAAC,EAAE,WAAW,EAAE,IAAI,OAAO,CAAA;QAC5G,IAAI,CAAC,mBAAmB,GAAG,oBAAoB,KAAK,MAAM,CAAA;IAC5D,CAAC;IAEO,iBAAiB,CAAE,OAAgC;QACzD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACnC,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAA;QAC/C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACnC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;QAEtC,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,KAAK,EAAE,EAAE;YAC7E,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;gBAC3C,aAAa,EAAE,IAAI,CAAC,mBAAmB,IAAI,EAAE;aAC9C,CAAC,CAAA;SACH;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAE,OAAgC;QAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACnD,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;SAC1E;QACD,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAA;QAEvD,IAAI,gBAAgB,KAAK,OAAO,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAA;YAEhD,MAAM,OAAO,GAAG,EAAE,CAAA;YAClB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;YACnF,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAA;aAC9D;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAA;YAE3C,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;SAC3C;aAAM;YACL,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;SACnD;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAE,OAAgC;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACxD,MAAM,eAAe,GAA2B,EAAE,CAAA;QAClD,eAAe,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3D,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE;gBACR,OAAO,EAAE,eAAe;aACzB;SACF,CAAA;IACH,CAAC;IAES,KAAK,CAAC,QAAQ,CAAE,OAAgC;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACxD,MAAM,eAAe,GAA2B,EAAE,CAAA;QAClD,IAAI,IAAI,CAAA;QACR,IAAI,MAAM,CAAA;QACV,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,IAAI,GAAG,MAAM,CAAA;YACb,MAAM,GAAG,GAAG,CAAA;YACZ,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;gBACnC,eAAe,CAAC,cAAc,CAAC,GAAG,0BAA0B,CAAA;gBAC5D,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;aACnB;iBAAM;gBAEL,IAAI,GAAG,WAAW,CAAA;aACnB;SACF;QAED,OAAO;YACL,QAAQ,EAAE;gBACR,IAAI;gBACJ,MAAM;gBACN,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC9B,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B;YACD,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAA;IACH,CAAC;IAGM,KAAK,CAAC,MAAM,CAAE,OAAgC,EAAE,QAAiC;QACtF,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;QACxD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC;YACzC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,EAAE,CAAA;QAC9E,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACpE,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,EAAE,CAAA;SAC3E;QAED,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACR,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI;YAC/B,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;SACX,CAAA;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAC/C,KAAK,EACL,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/C,CAAA;QAED,IAAI;YACF,IAAI,CAAC,UAAU,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC;gBACxE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACvB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,GAAG;gBACjB,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;gBACvE,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC7D,WAAW,EAAE,GAAG;gBAChB,aAAa;gBACb,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC/B,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC;gBACnE,YAAY,EAAE,MAAM;gBACpB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBACnD,kBAAkB,EAAE,IAAI,CAAC,OAAO;aACjC,CAAC,CAAA;SACH;QAAC,OAAO,CAAC,EAAE;YAEV,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAA;SAC7C;IACH,CAAC;IAEM,QAAQ,CAAE,GAAW;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACrB;IACH,CAAC;IAES,KAAK,CAAC,WAAW,CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAmB;QAIjF,MAAM,6BAA6B,GAAG,CACpC,IAAI,CAAC,yBAAyB;YAC9B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC7B,CAAA;QACD,MAAM,wBAAwB,GAAG,CAC/B,IAAI,CAAC,qBAAqB;YAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxB,CAAA;QAED,IAAI,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAChE,IAAI,CAAC,6BAA6B,IAAI,CAAC,wBAAwB,EAAE;gBAC/D,MAAM,KAAK,CAAC,oFAAoF,CAAC,CAAA;aAClG;SACF;QAED,IAAI,GAAG,CAAA;QACP,IAAI,6BAA6B,EAAE;YACjC,OAAO,CAAC,qBAAqB,CAAC,GAAG,YAAY,CAAA;YAC7C,GAAG,GAAG,IAAI,CAAA;SACX;aAAM,IAAI,wBAAwB,EAAE;YACnC,OAAO,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAA;YACzC,GAAG,GAAG,IAAI,CAAA;SACX;aAAM;YAEL,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aACzB;YAED,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;SAClB;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3C,IAAI;YACJ,OAAO;YACP,MAAM;YACN,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QAEF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;YAC3B,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;SAC3C,CAAA;IACH,CAAC;IAEO,kBAAkB,CAAE,QAAsB;QAChD,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QACpE,MAAM,eAAe,GAA4B,EAAE,CAAA;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,sBAAsB,EAAE;YACjD,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;SAChC;QACD,OAAO,eAAe,CAAA;IACxB,CAAC;IAEM,eAAe,CAAE,IAA6B;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAEO,4BAA4B,CAClC,OAAgC;QAEhC,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAA;QAGtE,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,EAAE,EAAE;YAC/D,OAAO,SAAS,CAAA;SACjB;QAED,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;SACrC;QAAC,MAAM;YACN,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAEO,kCAAkC,CACxC,OAAgC,EAChC,QAAiC;QAEjC,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAE,YAAoB,EAAU,EAAE;YAClF,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAA;QACpE,CAAC,CAAA;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;YAClE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SAC/D;QAED,MAAM,MAAM,GAAW,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAEvE,OAAO;YACL,QAAQ;YACR,MAAM,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE;YAC7C,KAAK,EAAE,sBAAsB,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACnD,QAAQ,EAAE,sBAAsB,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACzD,OAAO,EAAE,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACvD,YAAY,EAAE,sBAAsB,CAAC,yBAAyB,EAAE,KAAK,CAAC;SACvE,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,OAAgC,EAChC,QAAiC;QAEjC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAE/B,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAClD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,SAAS,CAAA;YAEtE,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;YAMnC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC3B,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;gBAC9D,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBAO9C,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACtE,IAAI,aAAa,KAAK,eAAe,EAAE;oBACrC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAA;iBACtB;aACF;SACF;aAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE;YACzF,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;SAC/C;QAED,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QAEnC,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,IAAI,EAAE;YAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;SACrC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,SAA8D,EAC9D,OAAgC;QAEhC,IAAI,aAAa,GAAG,EAAE,CAAA;QACtB,IAAI,SAAS,EAAE,SAAS,KAAK,SAAS,EAAE;YAEtC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;YAC/E,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAA;aAC1D;SACF;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,qBAAqB,CAAC,MAAM,EAAE;YACxD,MAAM,MAAM,GAAG,SAA2B,CAAA;YAC1C,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAA;SAC3C;QACD,IAAI,UAAU,GAAG,EAAE,CAAA;QACnB,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,MAAM,EAAE;YAChD,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;SAC1D;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE;YAC9E,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,KAAY,CAAC,CAAA;SACrC;IACH,CAAC;IAEO,uBAAuB,CAC7B,QAA0E,EAC1E,GAAW,EACX,UAAU,GAAG,EAAE;QAEf,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAE1D,OAAO,MAAM,IAAI,UAAU,CAAA;IAC7B,CAAC;IAEO,KAAK,CAAE,OAAgC;QAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAA;IACtD,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAE,OAAgC;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;QACjF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACrE,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC;YACvC,QAAQ;YACR,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,YAAY;YACpB,aAAa;YACb,GAAG,EAAE,OAAO,CAAC,IAAI;YACjB,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,OAAgC,EAChC,cAAoE;QAGpE,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAEpE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,EAAE,CAAA;QACtF,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAG9C,MAAM,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAA;QAE9D,MAAM,EACJ,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EACjC,GAAG,WAAW,IAAI,MAAM,IAAI;YAC3B,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,EAAE;SACX,CAAA;QACD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAC/C,KAAK,EACL,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/C,CAAA;QACD,OAAO;YACL,kBAAkB,EAAE,MAAM;YAC1B,mBAAmB,EAAE,aAAa;YAClC,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAChE,+BAA+B,EAAE,IAAI,CAAC,OAAO;SAC9C,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,QAAgB,EAChB,MAA0B,EAC1B,KAAa,EACb,QAAgB,EAChB,OAAe,EACf,MAAM,GAAG,KAAK,EACd,SAA6B,SAAS;QAGtC,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAClD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAA;QACrG,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,WAAW,CAAA;QAE1E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;SAC3D;QACD,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,IAAI,CAAC,SAAS,EACd,UAAU,CACX,CAAA;QACD,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3F,CAAC;IAGS,KAAK,CAAC,YAAY,CAC1B,QAAgB,EAChB,MAA0B,EAC1B,KAAa,EACb,QAAgB,EAChB,OAAe,EACf,MAAM,GAAG,KAAK,EACd,SAA6B,SAAS;QAEtC,MAAM,eAAe,GAAG;YACtB,QAAQ;YACR,MAAM,EAAE,MAAM,IAAI,UAAU,EAAE;YAC9B,KAAK;YACL,QAAQ;YACR,OAAO;YACP,YAAY,EAAE,MAAM;SACrB,CAAA;QACD,OAAO,iBAAiB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAA;IAC3D,CAAC;IAES,KAAK,CAAC,aAAa,CAAE,OAAgC;QAC7D,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAA;QACxD,OAAO,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;QAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;QAEjF,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;QAClF,IAAI,UAAU,CAAC,kBAAkB,EAAE;YACjC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAA;SACzC;QACD,OAAO,CAAC,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;QAC7C,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAES,KAAK,CAAC,gBAAgB,CAC9B,OAAgC,EAChC,QAAiC;QAEjC,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAA;QAE9C,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,IAAI,UAA8B,CAAA;YAElC,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;gBACxC,MAAM,EACJ,kBAAkB,EAAE,YAAY,EAChC,gBAAgB,EACjB,GAAG,0BAA0B,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;gBACjE,UAAU,GAAG,YAAY,CAAA;gBACzB,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAA;aAC1C;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC1C,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,OAAO,EACnB,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CACzE,CAAA;YAED,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;YAC9D,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE;gBAC/B,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBAC/D,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,MAAM;aACvF,CAAC,CAAA;SACH;IACH,CAAC;IAES,KAAK,CAAC,uBAAuB,CACrC,QAAiC,EACjC,gBAAsC;QAEtC,MAAM,mBAAmB,GAAuB,gBAAgB;YAC9D,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAExD,IAAI,mBAAmB,KAAK,SAAS,EAAE;YACrC,MAAM,gBAAgB,GAAG,mBAAmB;iBACzC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAE9C,IAAI,CAAC,kBAAkB,EAAE,GAAG,UAAU,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAEvE,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACvC,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;aAC7E;YAED,IAAI,aAAa,GAAG;gBAClB,GAAG,IAAI,CAAC,wBAAwB,IAAI,kBAAkB,EAAE;gBACxD,GAAG,UAAU;aACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEZ,IAAI,IAAI,CAAC,wBAAwB,KAAK,SAAS,EAAE;gBAC/C,MAAM,EACJ,kBAAkB,EAAE,eAAe,EACnC,gBAAgB,EACjB,GAAG,0BAA0B,CAAC,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA;gBACxE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAG,CAAC,0BAA0B,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAA;gBACpG,IAAI,CAAC,wBAAwB,GAAG,gBAAgB,CAAA;gBAEhD,IAAI,eAAe,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE;oBAChE,aAAa,CAAC,OAAO,CAAC,WAAW,aAAa,EAAE,EAAE,WAAW,eAAe,EAAE,CAAC,CAAA;oBAC/E,aAAa,GAAG,GAAG,aAAa,KAAK,gBAAgB,EAAE,CAAA;iBACxD;qBAAM;oBACL,aAAa,GAAG,GAAG,aAAa,KAAK,gBAAgB,EAAE,CAAA;iBACxD;aACF;YAED,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;SAChD;IACH,CAAC;IAES,oBAAoB,CAAE,QAAiC;QAC/D,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;QACxC,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAA;QAC3C,QAAQ,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;QAC1C,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAA;QAChD,QAAQ,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAA;QAC/C,QAAQ,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAA;QACvD,QAAQ,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAA;QACtD,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAA;IAC7C,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAE,WAAmB;QACrD,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;SACxD;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAE,oBAA4B;QAC9D,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;SACjE;QACD,OAAO,oBAAoB,CAAA;IAC7B,CAAC;IAKM,KAAK,CAAC,aAAa,CAAE,IAAiB;QAC3C,IAAI;YACF,QAAQ,IAAI,CAAC,cAAc,EAAE;gBAC3B,KAAK,qBAAqB,CAAC,QAAQ;oBACjC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAClC,KAAK,qBAAqB,CAAC,MAAM;oBAC/B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAChC,KAAK,qBAAqB,CAAC,MAAM;oBAC/B,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBACvC;oBAEE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,cAAc,iBAAiB,CAAC,CAAA;aAC1F;SACF;QAAC,OAAO,CAAC,EAAE;YAEV,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAA;YAC3C,OAAO;gBACL,aAAa,EAAE;oBACb,mBAAmB,EAAE,GAAG;oBACxB,iBAAiB,EAAE,GAAG;oBACtB,oBAAoB,EAAE,GAAG;iBAC1B;gBACD,aAAa,EAAE,EAAE;aAClB,CAAA;SACF;IACH,CAAC;IAWS,KAAK,CAAC,UAAU,CACxB,UAAkB,EAClB,OAA6C;QAE7C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;YAC7C,OAAO,SAAS,CAAA;SACjB;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;SAC7D;QAED,MAAM,WAAW,GAAG,GAAG,UAAU,GAAG,CAAA;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAE5B,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;YAEtD,IAAI,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;gBACzC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBAE3D,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC9C,IAAI;wBACF,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;qBAClD;oBAAC,OAAO,EAAE,EAAE;wBACX,OAAO,SAAS,CAAA;qBACjB;iBACF;gBAED,OAAO,WAAW,CAAA;aACnB;SACF;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAES,KAAK,CAAC,UAAU,CAAE,IAAgB;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,OAAO,EAAE;SAelD;aAAM;YACL,MAAM,OAAO,GAAG;gBACd,mBAAmB,EAAE,IAAI,CAAC,MAAM;gBAChC,cAAc,EAAE,kBAAkB;aACnC,CAAA;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACvD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;gBACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;aACzB;SACF;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAE,OAAgC,EAAE,IAAuB;QACxF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,gBAAgB;YAC3B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG;YACT,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;IACJ,CAAC;IAEO,iBAAiB,CAAE,EACzB,EAAE,EACF,SAAS,EACT,MAAM,EACN,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EACP;QACX,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAEtB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACnB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;SAClB;QACD,IAAI,WAA+B,CAAA;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,WAAW,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;SACjC;QACD,MAAM,UAAU,GAAW,SAAS,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;QACtD,MAAM,GAAG,GAAa;YACpB,MAAM;YACN,MAAM;YACN,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC;YACrC,UAAU,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YAChD,SAAS,EAAE,GAAG,MAAM,IAAI,UAAU,GAAG,WAAW,IAAI,EAAE,IAAI,QAAQ,EAAE;YACpE,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC;YACzC,kBAAkB,EAAE,eAAe;YACnC,qBAAqB,EAAE,kBAAkB;YACzC,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa;YAC3D,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE;YACzB,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE;YAE7B,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;YACtD,MAAM,EAAE,UAAU;YAClB,QAAQ;YACR,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,MAAM;SAClB,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAEO,iBAAiB,CAAE,EACzB,EAAE,EACF,SAAS,EACT,MAAM,EACN,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EACP;QACX,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC1C,OAAO;YACL,OAAO,EAAE,GAAG,MAAM,IAAI,IAAI,IAAI,QAAQ,EAAE;YACxC,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE;YACpC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;YAChC,OAAO,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;YACvC,mBAAmB,EAAE,YAAY,IAAI,EAAE;YACvC,wBAAwB,EAAE,aAAa,IAAI,EAAE;YAC7C,eAAe,EAAE,eAAe,IAAI,EAAE;YACtC,kBAAkB,EAAE,kBAAkB,IAAI,EAAE;SAC7C,CAAA;IACH,CAAC;IAES,eAAe,CAAE,IAAgB;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;QAC7D,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,EAAE,EAAE;YAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;SACpC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAES,KAAK,CAAC,KAAK,CACnB,aAAiC,EACjC,QAAgB,EAChB,SAAiB,EACjB,aAAsB;QAEtB,IAAI,MAAc,EAAE,KAAa,EAAE,QAAgB,EAAE,OAAe,EAClE,IAAwB,EAAE,SAAmB,EAAE,OAA2B,CAAA;QAC5E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;SACtD;QACD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACnF,IAAI,CAAC,UAAU,CAAC,kBAAkB,IAAI,UAAU,CAAC,eAAe,EAAE;YAEhE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC3C,UAAU,CAAC,MAAM,EAAE,MAAM,EACzB,QAAQ,EACR,SAAS,EACT,aAAa,CACd,CAAA;YACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YACtB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YACpB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;YACxB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YAClB,SAAS,GAAG;gBACV,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;aAC5G,CAAA;YACD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;SACzB;aAAM;YACL,MAAM,GAAG,CAAC,CAAC,CAAA;YACX,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;YACxB,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;YAC9B,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;YAC5B,IAAI,GAAG,SAAS,CAAA;YAChB,SAAS,GAAG,EAAE,CAAA;SACf;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC9F,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,aAAiC,EACjC,QAAgB,EAChB,SAAiB,EACjB,WAAgB;QAEhB,MAAM,EACJ,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAClD,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;QAClF,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACpF,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAE,OAAgC;QACzE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;YAC1F,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;YACtE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAA;YAC5F,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC1D,IAAI,CAAC,wBAAwB,EAC7B,aAAa,EACb,mBAAmB,CACpB,CAAA;YAED,IAAI,mBAAmB,KAAK,SAAS,EAAE;gBACrC,OAAO,mBAAmB,CAAA;aAC3B;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,aAAiC,EACjC,QAAgB,EAChB,SAAiB,EACjB,WAAgB;QAEhB,MAAM,OAAO,GAA4B;YACvC,mBAAmB,EAAE,IAAI,CAAC,MAAM;YAChC,qBAAqB,EAAE,QAAQ;YAC/B,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,kDAAkD;SACnE,CAAA;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAC/C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;SAC5C;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YAC5E,OAAO,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC,cAAc,CAAA;YAC3D,OAAO,CAAC,8BAA8B,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAA;SAChE;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,oBAAoB;YAC/B,IAAI,EAAE,mBAAmB;YACzB,OAAO;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;QACF,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjF,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAC1C,QAA6B,EAC7B,MAA0B,EAC1B,QAAgB;QAEhB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;SAC9B;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QAE7E,IAAI,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAA;QACrF,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;YACvB,YAAY,GAAG,KAAK,CAAA;SACrB;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAE9E,MAAM,SAAS,GAAG;YAChB,MAAM;YACN,aAAa;SACd,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAa,CAAA;QAE1C,MAAM,OAAO,GAAuB,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACvF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK;YACL,QAAQ;YACR,OAAO;YACP,SAAS;YACT,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO;YACP,YAAY;SACb,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,UAAkB,EAClB,KAAa,EACb,MAAc,EACd,IAAI,GAAG,GAAG;QAEV,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC9C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAC1D,OAAO,GAAG,UAAU,IAAI,aAAa,aAAa,MAAM,UAAU,IAAI,EAAE,CAAA;SACzE;QACD,OAAO,GAAG,UAAU,IAAI,KAAK,aAAa,MAAM,UAAU,IAAI,EAAE,CAAA;IAClE,CAAC;IAEO,iBAAiB,CAAE,OAA4C;QACrE,IAAI,SAAS,GAAG,EAAE,CAAA;QAClB,IAAI,SAAS,GAAG,EAAE,CAAA;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;YACnC,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,IAAI,WAAW,EAAE,CAAA;gBAC9D,SAAS,GAAG,IAAI,CAAA;aACjB;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,MAA0B,EAC1B,QAAgB,EAChB,SAAiB,EACjB,aAAiC;QAEjC,MAAM,OAAO,GAA4B;YACvC,mBAAmB,EAAE,IAAI,CAAC,MAAM;YAChC,qBAAqB,EAAE,QAAQ;YAC/B,YAAY,EAAE,SAAS;YACvB,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAC/B,cAAc,EAAE,aAAa;aAC9B,CAAC;SACH,CAAA;QAED,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAA;SACrC;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YAC5E,OAAO,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC,cAAc,CAAA;YAC3D,OAAO,CAAC,8BAA8B,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAA;SAChE;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,oBAAoB;YAC/B,IAAI,EAAE,GAAG;YACT,OAAO;YACP,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;QAEF,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzE,CAAC;IAEO,aAAa,CAAE,IAAwB,EAC7C,SAAmB,EACnB,MAAc,EACd,KAAa,EACb,QAAgB,EAChB,OAAe,EACf,aAAsB,EACtB,OAAgB;QAEhB,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QACvF,MAAM,MAAM,GAA0B;YACpC,IAAI;YACJ,aAAa,EAAE,MAAM;YACrB,SAAS;YACT,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,SAAS,EAAE;gBACT,UAAU,CAAC,eAAe,CAAC,KAAK;gBAChC,UAAU,CAAC,eAAe,CAAC,OAAO;gBAClC,UAAU,CAAC,eAAe,CAAC,WAAW;aACvC,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC;SACtC,CAAA;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,qBAAqB,CAAC,MAAM,EAAE;YACxD,MAAM,aAAa,GAAkB;gBACnC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxD,oBAAoB,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC9D,mBAAmB,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;aAC7D,CAAA;YACD,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,aAAa,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAA;aAC9C;YACD,MAAM,CAAC,aAAa,GAAG,aAAa,CAAA;SACrC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAES,kBAAkB,CAAE,KAAa,EACzC,QAAgB,EAChB,OAAe,EACf,aAAsB;QAEtB,MAAM,OAAO,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,OAAO,KAAK,CAAC,EAAE;gBACjB,OAAO,GAAG,CAAC,CAAA;aACZ;iBAAM,IAAI,OAAO,KAAK,CAAC,EAAE;gBACxB,OAAO,GAAG,CAAC,CAAA;aACZ;SACF;QAED,IAAI,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA;QACjE,aAAa,IAAI,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAA;QAC5D,IAAI,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QACvD,IAAI,OAAO,KAAK,CAAC,EAAE;YACjB,aAAa,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAA;YAClE,MAAM,qBAAqB,GAAG,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;YAC1E,IAAI,qBAAqB,KAAK,SAAS,EAAE;gBACvC,UAAU,GAAG,qBAAqB,CAAA;aACnC;SACF;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,qBAAqB,CAAC,MAAM,EAAE;YACxD,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAA;SAC7C;QACD,OAAO;YACL,aAAa;YACb,UAAU;YACV,KAAK,EAAE;gBACL,KAAK;gBACL,QAAQ;gBACR,OAAO;aACR;SACF,CAAA;IACH,CAAC;IAES,QAAQ,CAAE,QAAyB;QAC3C,IAAI,OAAO,GAAG,eAAe,CAAA;QAC7B,QAAQ,QAAQ,CAAC,MAAM,EAAE;YACvB,KAAK,GAAG;gBACN,OAAO,GAAG,qBAAqB,CAAA;gBAC/B,MAAK;YACP,KAAK,GAAG;gBACN,OAAO,GAAG,cAAc,CAAA;gBACxB,MAAK;YACP,KAAK,GAAG;gBACN,OAAO,GAAG,aAAa,CAAA;gBACvB,MAAK;YACP,KAAK,GAAG;gBACN,OAAO,GAAG,qBAAqB,CAAA;gBAC/B,MAAK;YACP,KAAK,GAAG;gBACN,OAAO,GAAG,iBAAiB,CAAA;gBAC3B,MAAK;SACR;QACD,OAAO,IAAI,KAAK,CAAC,+BAA+B,OAAO,cAAc,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IACzF,CAAC;IAEO,0BAA0B,CAAE,OAAgC;QAClE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAC1C,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAE,IAAgC;QACtE,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7D,OAAO,MAAM,CAAC,aAAa;YACzB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACzF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAC7E,CAAA;IACH,CAAC;IAES,KAAK,CAAC,yBAAyB,CACvC,MAA0B;QAE1B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAC1C,oBAAoB,EACpB,MAAM,EACN,CAAC,EAAE,CAAC,EAAE,CAAC,EACP,kBAAkB,CACnB,CAAA;QAED,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAA;IACH,CAAC;IAES,KAAK,CAAC,aAAa,CAAE,IAAiB;QAC9C,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;SACrD;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;QAE5E,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/F,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;YAClC,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;SACvD;QAED,IAAI,UAAU,CAAC,eAAe,EAAE;YAC9B,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SACvE;QAED,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,EAAE;SACd,CAAA;IACH,CAAC;CAKF"}
1
+ {"version":3,"file":"AkamaiV1.js","sourceRoot":"","sources":["../../src/AkamaiV1.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EAGd,UAAU,EAIV,YAAY,EAKZ,oBAAoB,EAIrB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACX,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,0BAA0B,EAC3B,MAAM,2BAA2B,CAAA;AAMlC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,CAAA;AACnC,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,EAAE,CAAA;AAEnD,MAAM,uBAAuB,GAA0B,qBAAqB,CAAC,QAAQ,CAAA;AACrF,MAAM,mBAAmB,GAAsB,iBAAiB,CAAC,IAAI,CAAA;AAErE,MAAM,eAAe,GAAW,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;AACjF,MAAM,uBAAuB,GAAW,UAAU,CAAC,cAAc,CAAC,OAAO,CAAA;AAkCzE,MAAM,uBAAuB,GAAG,6BAA6B,CAAA;AAuB7D,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAoCrC,YAAa,MAA0B,EAAE,IAA0B;QAVzD,qBAAgB,GAAa,EAAE,CAAA;QAWvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAEzB,MAAM,EACJ,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GAAG,IAAI,EAC5B,yBAAyB,GAAG,IAAI,EAChC,gBAAgB,GAAG,4BAA4B,EAC/C,UAAU,GAAG,iBAAiB,CAAC,IAAI,EACnC,OAAO,EACP,UAAU,EACV,oBAAoB,GAAG,iCAAiC,EACxD,cAAc,GAAG,qBAAqB,CAAC,MAAM,EAC7C,8BAA8B,EAC9B,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,SAAS,EACT,OAAO,GAAG,IAAI,EACd,mBAAmB,GAAG,KAAK,EAC5B,GAAG,MAAM,CAAA;QAEV,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;QACtD,IAAI,CAAC,8BAA8B,GAAG,8BAA8B,CAAA;QAEpE,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAA;QAC1D,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAElD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAA;QACtD,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,iBAAiB,CAAC,EAAE,CAAA;QACpD,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,OAAO,EAAE;YACjD,IAAI,OAAO,KAAK,SAAS,EAAE;gBAEzB,OAAO,CAAC,IAAI,CAAC,8DAA8D,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;aAC9F;iBAAM;aAKN;SACF;QACD,IAAI,cAAc,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;YACpC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;SACzC;QACD,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAEtC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,SAAS,CAAA;QACvD,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,IAAI,gBAAgB,CAAA;QAE5E,IAAI,CAAC,gBAAgB,GAAG;YACtB,IAAI,CAAC,iBAAiB;YACtB,IAAI,CAAC,wBAAwB;SAC9B,CAAA;QAED,IAAI,0BAA0B,KAAK,SAAS,EAAE;YAC5C,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;SACpE;QAED,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAA;QAE5D,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,uBAAuB,CAAA;QACtE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,mBAAmB,CAAA;IAC5D,CAAC;IAOM,KAAK,CAAC,cAAc,CAAE,OAAgC;QAC3D,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAE/B,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAClD,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;SAClC;aAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE;YACxF,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAA;SACzC;aAAM;YACL,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;SACpC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAEO,KAAK,CAAC,eAAe,CAAE,OAAgC;QAE7D,IAAI;YACF,MAAM,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAA;YAE9D,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACpE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA;YAChF,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;YAElD,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,IAAI,EAAE,CAAA;YAC9D,MAAM,KAAK,GAAG,WAAW,EAAE,KAAK,IAAI,UAAU,EAAE,KAAK,IAAI,CAAC,CAAA;YAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAA;YACnE,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,CAAC,CAAA;YAEhE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAC/C,KAAK,EACL,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/C,CAAA;YAGD,MAAM,kBAAkB,GAAG;gBACzB,MAAM;gBACN,aAAa;gBACb,IAAI,CAAC,OAAO;aACb,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,OAAO,CAAC,WAAW,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAA;SAC3E;QAAC,OAAO,CAAC,EAAE;YAEV,IAAI,CAAC,QAAQ,CAAC,iDAAiD,CAAC,EAAE,CAAC,CAAA;SACpE;IACH,CAAC;IAEO,iBAAiB,CAAE,OAAgC;QACzD,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,KAAK,EAAE,EAAE;YAC7E,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;gBAC3C,aAAa,EAAE,IAAI,CAAC,mBAAmB,IAAI,EAAE;aAC9C,CAAC,CAAA;SACH;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAE,OAAgC;QAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACnD,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;SAC1E;QACD,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAA;QAEvD,IAAI,gBAAgB,KAAK,OAAO,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAClE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAA;YAEhD,MAAM,OAAO,GAAG,EAAE,CAAA;YAClB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;YACnF,IAAI,eAAe,KAAK,SAAS,EAAE;gBACjC,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAA;aAC9D;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAA;YAE3C,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;SAC3C;aAAM;YACL,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;SACnD;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAE,OAAgC;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACxD,MAAM,eAAe,GAA2B,EAAE,CAAA;QAClD,eAAe,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3D,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE;gBACR,OAAO,EAAE,eAAe;aACzB;SACF,CAAA;IACH,CAAC;IAES,KAAK,CAAC,QAAQ,CAAE,OAAgC;QACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACxD,MAAM,eAAe,GAA2B,EAAE,CAAA;QAClD,IAAI,IAAI,CAAA;QACR,IAAI,MAAM,CAAA;QACV,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,IAAI,GAAG,MAAM,CAAA;YACb,MAAM,GAAG,GAAG,CAAA;YACZ,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;gBACnC,eAAe,CAAC,cAAc,CAAC,GAAG,0BAA0B,CAAA;gBAC5D,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;aACnB;iBAAM;gBAEL,IAAI,GAAG,WAAW,CAAA;aACnB;SACF;QAED,OAAO;YACL,QAAQ,EAAE;gBACR,IAAI;gBACJ,MAAM;gBACN,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC9B,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B;YACD,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAA;IACH,CAAC;IAGM,KAAK,CAAC,MAAM,CAAE,OAAgC,EAAE,QAAiC;QACtF,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;QACxD,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC;YACzC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACnD,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,EAAE,CAAA;QAC9E,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACpE,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,EAAE,CAAA;SAC3E;QAED,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACR,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI;YAC/B,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;SACX,CAAA;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAC/C,KAAK,EACL,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/C,CAAA;QAED,IAAI;YACF,IAAI,CAAC,UAAU,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC;gBACxE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACvB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,GAAG;gBACjB,QAAQ,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;gBACvE,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC7D,WAAW,EAAE,GAAG;gBAChB,aAAa;gBACb,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC/B,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC;gBACnE,YAAY,EAAE,MAAM;gBACpB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBACnD,kBAAkB,EAAE,IAAI,CAAC,OAAO;aACjC,CAAC,CAAA;SACH;QAAC,OAAO,CAAC,EAAE;YAEV,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAA;SAC7C;IACH,CAAC;IAEM,QAAQ,CAAE,GAAW;QAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACrB;IACH,CAAC;IAES,KAAK,CAAC,WAAW,CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAmB;QAIjF,MAAM,6BAA6B,GAAG,CACpC,IAAI,CAAC,yBAAyB;YAC9B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC7B,CAAA;QACD,MAAM,wBAAwB,GAAG,CAC/B,IAAI,CAAC,qBAAqB;YAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxB,CAAA;QAED,IAAI,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAChE,IAAI,CAAC,6BAA6B,IAAI,CAAC,wBAAwB,EAAE;gBAC/D,MAAM,KAAK,CAAC,oFAAoF,CAAC,CAAA;aAClG;SACF;QAED,IAAI,GAAG,CAAA;QACP,IAAI,6BAA6B,EAAE;YACjC,OAAO,CAAC,qBAAqB,CAAC,GAAG,YAAY,CAAA;YAC7C,GAAG,GAAG,IAAI,CAAA;SACX;aAAM,IAAI,wBAAwB,EAAE;YACnC,OAAO,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAA;YACzC,GAAG,GAAG,IAAI,CAAA;SACX;aAAM;YAEL,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aACzB;YAED,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;SAClB;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3C,IAAI;YACJ,OAAO;YACP,MAAM;YACN,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QAEF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;YAC3B,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;SAC3C,CAAA;IACH,CAAC;IAEO,kBAAkB,CAAE,QAAsB;QAChD,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QACpE,MAAM,eAAe,GAA4B,EAAE,CAAA;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,sBAAsB,EAAE;YACjD,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;SAChC;QACD,OAAO,eAAe,CAAA;IACxB,CAAC;IAEM,eAAe,CAAE,IAA6B;QACnD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtC,CAAC;IAEO,4BAA4B,CAClC,OAAgC;QAEhC,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAA;QAGtE,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,EAAE,EAAE;YAC/D,OAAO,SAAS,CAAA;SACjB;QAED,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;SACrC;QAAC,MAAM;YACN,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAEO,kCAAkC,CACxC,OAAgC,EAChC,QAAiC;QAEjC,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAE,YAAoB,EAAU,EAAE;YAClF,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAA;QACpE,CAAC,CAAA;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,EAAE;YAClE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SAC/D;QAED,MAAM,MAAM,GAAW,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAEvE,OAAO;YACL,QAAQ;YACR,MAAM,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE;YAC7C,KAAK,EAAE,sBAAsB,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACnD,QAAQ,EAAE,sBAAsB,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACzD,OAAO,EAAE,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACvD,YAAY,EAAE,sBAAsB,CAAC,yBAAyB,EAAE,KAAK,CAAC;SACvE,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,OAAgC,EAChC,QAAiC;QAEjC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAE/B,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YAClD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,SAAS,CAAA;YAEtE,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;YAMnC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC3B,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAA;gBAC9D,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBAO9C,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACtE,IAAI,aAAa,KAAK,eAAe,EAAE;oBACrC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAA;iBACtB;aACF;SACF;aAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAAE;YACzF,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;SAC/C;QAED,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QAEnC,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,IAAI,EAAE;YAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;SACrC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,SAA8D,EAC9D,OAAgC;QAEhC,IAAI,aAAa,GAAG,EAAE,CAAA;QACtB,IAAI,SAAS,EAAE,SAAS,KAAK,SAAS,EAAE;YAEtC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;YAC/E,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAA;aAC1D;SACF;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,qBAAqB,CAAC,MAAM,EAAE;YACxD,MAAM,MAAM,GAAG,SAA2B,CAAA;YAC1C,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAA;SAC3C;QACD,IAAI,UAAU,GAAG,EAAE,CAAA;QACnB,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,MAAM,EAAE;YAChD,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;SAC1D;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE;YAC9E,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,KAAY,CAAC,CAAA;SACrC;IACH,CAAC;IAEO,uBAAuB,CAC7B,QAA0E,EAC1E,GAAW,EACX,UAAU,GAAG,EAAE;QAEf,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QAE1D,OAAO,MAAM,IAAI,UAAU,CAAA;IAC7B,CAAC;IAEO,KAAK,CAAE,OAAgC;QAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAA;IACtD,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAE,OAAgC;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;QACjF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAA;QACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QACrE,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC;YACvC,QAAQ;YACR,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,YAAY;YACpB,aAAa;YACb,GAAG,EAAE,OAAO,CAAC,IAAI;YACjB,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,OAAgC,EAChC,cAAoE;QAGpE,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAEpE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,EAAE,CAAA;QACtF,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAG9C,MAAM,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAA;QAE9D,MAAM,EACJ,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EACjC,GAAG,WAAW,IAAI,MAAM,IAAI;YAC3B,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,EAAE;SACX,CAAA;QACD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAC/C,KAAK,EACL,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAC/C,CAAA;QACD,OAAO;YACL,kBAAkB,EAAE,MAAM;YAC1B,mBAAmB,EAAE,aAAa;YAClC,4BAA4B,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAChE,+BAA+B,EAAE,IAAI,CAAC,OAAO;SAC9C,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,QAAgB,EAChB,MAA0B,EAC1B,KAAa,EACb,QAAgB,EAChB,OAAe,EACf,MAAM,GAAG,KAAK,EACd,SAA6B,SAAS;QAGtC,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAClD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAA;QACvG,MAAM,YAAY,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,WAAW,CAAA;QAE1E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;SAC3D;QACD,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,IAAI,CAAC,SAAS,EACd,UAAU,CACX,CAAA;QACD,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3F,CAAC;IAGS,KAAK,CAAC,YAAY,CAC1B,QAAgB,EAChB,MAA0B,EAC1B,KAAa,EACb,QAAgB,EAChB,OAAe,EACf,MAAM,GAAG,KAAK,EACd,SAA6B,SAAS;QAEtC,MAAM,eAAe,GAAG;YACtB,QAAQ;YACR,MAAM,EAAE,MAAM,IAAI,UAAU,EAAE;YAC9B,KAAK;YACL,QAAQ;YACR,OAAO;YACP,YAAY,EAAE,MAAM;SACrB,CAAA;QACD,OAAO,iBAAiB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAA;IAC3D,CAAC;IAES,KAAK,CAAC,aAAa,CAAE,OAAgC;QAC7D,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAA;QACxD,OAAO,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACnD,OAAO,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;QAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAA;QAEjF,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAA;QAClF,IAAI,UAAU,CAAC,kBAAkB,EAAE;YACjC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAA;SACzC;QACD,OAAO,CAAC,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;QAC7C,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;IAES,KAAK,CAAC,gBAAgB,CAC9B,OAAgC,EAChC,QAAiC;QAEjC,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAA;QAE9C,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,IAAI,UAA8B,CAAA;YAElC,IAAI,IAAI,CAAC,uBAAuB,KAAK,EAAE,EAAE;gBACvC,MAAM,EACJ,kBAAkB,EAAE,YAAY,EAChC,gBAAgB,EACjB,GAAG,0BAA0B,CAAC,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAA;gBACvE,UAAU,GAAG,YAAY,CAAA;gBACzB,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAA;aAChD;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC1C,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,OAAO,EACnB,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CACzE,CAAA;YAED,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;YAC9D,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE;gBAC/B,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBAC/D,IAAI,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,MAAM;aAC5F,CAAC,CAAA;SACH;IACH,CAAC;IAES,KAAK,CAAC,uBAAuB,CACrC,QAAiC,EACjC,gBAAsC;QAEtC,MAAM,mBAAmB,GAAuB,gBAAgB;YAC9D,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAExD,IAAI,mBAAmB,KAAK,SAAS,EAAE;YACrC,MAAM,gBAAgB,GAAG,mBAAmB;iBACzC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAE9C,IAAI,CAAC,kBAAkB,EAAE,GAAG,UAAU,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAEvE,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;gBACvC,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;aAC7E;YAED,IAAI,aAAa,GAAG;gBAClB,GAAG,IAAI,CAAC,wBAAwB,IAAI,kBAAkB,EAAE;gBACxD,GAAG,UAAU;aACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEZ,IAAI,IAAI,CAAC,8BAA8B,KAAK,EAAE,EAAE;gBAC9C,MAAM,EACJ,kBAAkB,EAAE,eAAe,EACnC,gBAAgB,EACjB,GAAG,0BAA0B,CAAC,IAAI,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAA;gBAC9E,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,GAAG,CAAC,0BAA0B,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAA;gBACpG,IAAI,CAAC,8BAA8B,GAAG,gBAAgB,CAAA;gBAEtD,IAAI,eAAe,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE;oBAChE,aAAa,CAAC,OAAO,CAAC,WAAW,aAAa,EAAE,EAAE,WAAW,eAAe,EAAE,CAAC,CAAA;oBAC/E,aAAa,GAAG,GAAG,aAAa,KAAK,gBAAgB,EAAE,CAAA;iBACxD;qBAAM;oBACL,aAAa,GAAG,GAAG,aAAa,KAAK,gBAAgB,EAAE,CAAA;iBACxD;aACF;YAED,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;SAChD;IACH,CAAC;IAES,oBAAoB,CAAE,QAAiC;QAC/D,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;QACxC,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAA;QAC3C,QAAQ,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;QAC1C,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAA;QAChD,QAAQ,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAA;QAC/C,QAAQ,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAA;QACvD,QAAQ,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAA;QACtD,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAA;IAC7C,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAE,WAAmB;QACrD,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;SACxD;QACD,OAAO,WAAW,CAAA;IACpB,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAE,oBAA4B;QAC9D,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YACvC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;SACjE;QACD,OAAO,oBAAoB,CAAA;IAC7B,CAAC;IAKM,KAAK,CAAC,aAAa,CAAE,IAAiB;QAC3C,IAAI;YACF,QAAQ,IAAI,CAAC,cAAc,EAAE;gBAC3B,KAAK,qBAAqB,CAAC,QAAQ;oBACjC,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAClC,KAAK,qBAAqB,CAAC,MAAM;oBAC/B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAChC,KAAK,qBAAqB,CAAC,MAAM;oBAC/B,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBACvC;oBAEE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,cAAc,iBAAiB,CAAC,CAAA;aAC1F;SACF;QAAC,OAAO,CAAC,EAAE;YAEV,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAA;YAC3C,OAAO;gBACL,aAAa,EAAE;oBACb,mBAAmB,EAAE,GAAG;oBACxB,iBAAiB,EAAE,GAAG;oBACtB,oBAAoB,EAAE,GAAG;iBAC1B;gBACD,aAAa,EAAE,EAAE;aAClB,CAAA;SACF;IACH,CAAC;IAWS,KAAK,CAAC,UAAU,CACxB,UAAkB,EAClB,OAA6C;QAE7C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE;YAC7C,OAAO,SAAS,CAAA;SACjB;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;SAC7D;QAED,MAAM,WAAW,GAAG,GAAG,UAAU,GAAG,CAAA;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAE5B,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;YAEtD,IAAI,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;gBACzC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBAE3D,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC9C,IAAI;wBACF,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA;qBAClD;oBAAC,OAAO,EAAE,EAAE;wBACX,OAAO,SAAS,CAAA;qBACjB;iBACF;gBAED,OAAO,WAAW,CAAA;aACnB;SACF;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAES,KAAK,CAAC,UAAU,CAAE,IAAgB;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,OAAO,EAAE;SAelD;aAAM;YACL,MAAM,OAAO,GAAG;gBACd,mBAAmB,EAAE,IAAI,CAAC,MAAM;gBAChC,cAAc,EAAE,kBAAkB;aACnC,CAAA;YACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACvD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;gBACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;aACzB;SACF;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAE,OAAgC,EAAE,IAAuB;QACxF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,gBAAgB;YAC3B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG;YACT,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;IACJ,CAAC;IAEO,iBAAiB,CAAE,EACzB,EAAE,EACF,SAAS,EACT,MAAM,EACN,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EACP;QACX,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAEtB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACnB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;SAClB;QACD,IAAI,WAA+B,CAAA;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,WAAW,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;SACjC;QACD,MAAM,UAAU,GAAW,SAAS,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;QACtD,MAAM,GAAG,GAAa;YACpB,MAAM;YACN,MAAM;YACN,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC;YACrC,UAAU,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YAChD,SAAS,EAAE,GAAG,MAAM,IAAI,UAAU,GAAG,WAAW,IAAI,EAAE,IAAI,QAAQ,EAAE;YACpE,cAAc,EAAE,YAAY,CAAC,WAAW,CAAC;YACzC,kBAAkB,EAAE,eAAe;YACnC,qBAAqB,EAAE,kBAAkB;YACzC,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa;YAC3D,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE;YACzB,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE;YAE7B,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;YACtD,MAAM,EAAE,UAAU;YAClB,QAAQ;YACR,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,MAAM;SAClB,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAEO,iBAAiB,CAAE,EACzB,EAAE,EACF,SAAS,EACT,MAAM,EACN,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EACP;QACX,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC1C,OAAO;YACL,OAAO,EAAE,GAAG,MAAM,IAAI,IAAI,IAAI,QAAQ,EAAE;YACxC,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE;YACpC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE;YAChC,OAAO,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;YACvC,mBAAmB,EAAE,YAAY,IAAI,EAAE;YACvC,wBAAwB,EAAE,aAAa,IAAI,EAAE;YAC7C,eAAe,EAAE,eAAe,IAAI,EAAE;YACtC,kBAAkB,EAAE,kBAAkB,IAAI,EAAE;SAC7C,CAAA;IACH,CAAC;IAES,eAAe,CAAE,IAAgB;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAA;QAC7D,IAAI,IAAI,CAAC,UAAU,KAAK,iBAAiB,CAAC,EAAE,EAAE;YAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;SACpC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAES,KAAK,CAAC,KAAK,CACnB,aAAiC,EACjC,QAAgB,EAChB,SAAiB,EACjB,aAAsB;QAEtB,IAAI,MAAc,EAAE,KAAa,EAAE,QAAgB,EAAE,OAAe,EAClE,IAAwB,EAAE,SAAmB,EAAE,OAA2B,CAAA;QAC5E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;SACtD;QACD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACnF,IAAI,CAAC,UAAU,CAAC,kBAAkB,IAAI,UAAU,CAAC,eAAe,EAAE;YAEhE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC3C,UAAU,CAAC,MAAM,EAAE,MAAM,EACzB,QAAQ,EACR,SAAS,EACT,aAAa,CACd,CAAA;YACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YACtB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YACpB,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;YACxB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YAClB,SAAS,GAAG;gBACV,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC;aAC5G,CAAA;YACD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;SACzB;aAAM;YACL,MAAM,GAAG,CAAC,CAAC,CAAA;YACX,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;YACxB,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;YAC9B,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;YAC5B,IAAI,GAAG,SAAS,CAAA;YAChB,SAAS,GAAG,EAAE,CAAA;SACf;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IAC9F,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,aAAiC,EACjC,QAAgB,EAChB,SAAiB,EACjB,WAAgB;QAEhB,MAAM,EACJ,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAClD,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;QAClF,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACpF,CAAC;IAEO,KAAK,CAAC,2BAA2B,CAAE,OAAgC;QACzE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;YAC1F,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;YACtE,MAAM,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAA;YAC5F,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC1D,IAAI,CAAC,wBAAwB,EAC7B,aAAa,EACb,mBAAmB,CACpB,CAAA;YAED,IAAI,mBAAmB,KAAK,SAAS,EAAE;gBACrC,OAAO,mBAAmB,CAAA;aAC3B;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,aAAiC,EACjC,QAAgB,EAChB,SAAiB,EACjB,WAAgB;QAEhB,MAAM,OAAO,GAA4B;YACvC,mBAAmB,EAAE,IAAI,CAAC,MAAM;YAChC,qBAAqB,EAAE,QAAQ;YAC/B,YAAY,EAAE,SAAS;YACvB,cAAc,EAAE,kDAAkD;SACnE,CAAA;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAC/C,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;SAC5C;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YAC5E,OAAO,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC,cAAc,CAAA;YAC3D,OAAO,CAAC,8BAA8B,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAA;SAChE;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,oBAAoB;YAC/B,IAAI,EAAE,mBAAmB;YACzB,OAAO;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;QACF,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjF,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAC1C,QAA6B,EAC7B,MAA0B,EAC1B,QAAgB;QAEhB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;SAC9B;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC/E,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QAE7E,IAAI,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAA;QACrF,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE;YACvB,YAAY,GAAG,KAAK,CAAA;SACrB;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAE9E,MAAM,SAAS,GAAG;YAChB,MAAM;YACN,aAAa;SACd,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAa,CAAA;QAE1C,MAAM,OAAO,GAAuB,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACvF,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK;YACL,QAAQ;YACR,OAAO;YACP,SAAS;YACT,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO;YACP,YAAY;SACb,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,UAAkB,EAClB,KAAa,EACb,MAAc,EACd,IAAI,GAAG,GAAG;QAEV,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC9C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;YAC1D,OAAO,GAAG,UAAU,IAAI,aAAa,aAAa,MAAM,UAAU,IAAI,EAAE,CAAA;SACzE;QACD,OAAO,GAAG,UAAU,IAAI,KAAK,aAAa,MAAM,UAAU,IAAI,EAAE,CAAA;IAClE,CAAC;IAEO,iBAAiB,CAAE,OAA4C;QACrE,IAAI,SAAS,GAAG,EAAE,CAAA;QAClB,IAAI,SAAS,GAAG,EAAE,CAAA;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;YACnC,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,IAAI,WAAW,EAAE,CAAA;gBAC9D,SAAS,GAAG,IAAI,CAAA;aACjB;SACF;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,MAA0B,EAC1B,QAAgB,EAChB,SAAiB,EACjB,aAAiC;QAEjC,MAAM,OAAO,GAA4B;YACvC,mBAAmB,EAAE,IAAI,CAAC,MAAM;YAChC,qBAAqB,EAAE,QAAQ;YAC/B,YAAY,EAAE,SAAS;YACvB,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;gBAC/B,cAAc,EAAE,aAAa;aAC9B,CAAC;SACH,CAAA;QAED,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAA;SACrC;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;YAC5E,OAAO,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC,cAAc,CAAA;YAC3D,OAAO,CAAC,8BAA8B,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAA;SAChE;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,oBAAoB;YAC/B,IAAI,EAAE,GAAG;YACT,OAAO;YACP,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAA;QAEF,OAAO,MAAM,IAAI,CAAC,8BAA8B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzE,CAAC;IAEO,aAAa,CAAE,IAAwB,EAC7C,SAAmB,EACnB,MAAc,EACd,KAAa,EACb,QAAgB,EAChB,OAAe,EACf,aAAsB,EACtB,OAAgB;QAEhB,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QACvF,MAAM,MAAM,GAA0B;YACpC,IAAI;YACJ,aAAa,EAAE,MAAM;YACrB,SAAS;YACT,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,SAAS,EAAE;gBACT,UAAU,CAAC,eAAe,CAAC,KAAK;gBAChC,UAAU,CAAC,eAAe,CAAC,OAAO;gBAClC,UAAU,CAAC,eAAe,CAAC,WAAW;aACvC,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC;SACtC,CAAA;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,qBAAqB,CAAC,MAAM,EAAE;YACxD,MAAM,aAAa,GAAkB;gBACnC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxD,oBAAoB,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC9D,mBAAmB,EAAE,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;aAC7D,CAAA;YACD,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,aAAa,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAA;aAC9C;YACD,MAAM,CAAC,aAAa,GAAG,aAAa,CAAA;SACrC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAES,kBAAkB,CAAE,KAAa,EACzC,QAAgB,EAChB,OAAe,EACf,aAAsB;QAEtB,MAAM,OAAO,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,OAAO,KAAK,CAAC,EAAE;gBACjB,OAAO,GAAG,CAAC,CAAA;aACZ;iBAAM,IAAI,OAAO,KAAK,CAAC,EAAE;gBACxB,OAAO,GAAG,CAAC,CAAA;aACZ;SACF;QAED,IAAI,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA;QACjE,aAAa,IAAI,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAA;QAC5D,IAAI,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QACvD,IAAI,OAAO,KAAK,CAAC,EAAE;YACjB,aAAa,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAA;YAClE,MAAM,qBAAqB,GAAG,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;YAC1E,IAAI,qBAAqB,KAAK,SAAS,EAAE;gBACvC,UAAU,GAAG,qBAAqB,CAAA;aACnC;SACF;QACD,IAAI,IAAI,CAAC,cAAc,KAAK,qBAAqB,CAAC,MAAM,EAAE;YACxD,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAA;SAC7C;QACD,OAAO;YACL,aAAa;YACb,UAAU;YACV,KAAK,EAAE;gBACL,KAAK;gBACL,QAAQ;gBACR,OAAO;aACR;SACF,CAAA;IACH,CAAC;IAES,QAAQ,CAAE,QAAyB;QAC3C,IAAI,OAAO,GAAG,eAAe,CAAA;QAC7B,QAAQ,QAAQ,CAAC,MAAM,EAAE;YACvB,KAAK,GAAG;gBACN,OAAO,GAAG,qBAAqB,CAAA;gBAC/B,MAAK;YACP,KAAK,GAAG;gBACN,OAAO,GAAG,cAAc,CAAA;gBACxB,MAAK;YACP,KAAK,GAAG;gBACN,OAAO,GAAG,aAAa,CAAA;gBACvB,MAAK;YACP,KAAK,GAAG;gBACN,OAAO,GAAG,qBAAqB,CAAA;gBAC/B,MAAK;YACP,KAAK,GAAG;gBACN,OAAO,GAAG,iBAAiB,CAAA;gBAC3B,MAAK;SACR;QACD,OAAO,IAAI,KAAK,CAAC,+BAA+B,OAAO,cAAc,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IACzF,CAAC;IAEO,0BAA0B,CAAE,OAAgC;QAClE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAC1C,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAE,IAAgC;QACtE,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7D,OAAO,MAAM,CAAC,aAAa;YACzB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACzF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAC7E,CAAA;IACH,CAAC;IAES,KAAK,CAAC,yBAAyB,CACvC,MAA0B;QAE1B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAC1C,oBAAoB,EACpB,MAAM,EACN,CAAC,EAAE,CAAC,EAAE,CAAC,EACP,kBAAkB,CACnB,CAAA;QAED,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,CAAC,YAAY,CAAC;SAC1B,CAAA;IACH,CAAC;IAES,KAAK,CAAC,aAAa,CAAE,IAAiB;QAC9C,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;SACrD;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;QAE5E,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/F,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;YAClC,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;SACvD;QAED,IAAI,UAAU,CAAC,eAAe,EAAE;YAC9B,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SACvE;QAED,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,EAAE;SACd,CAAA;IACH,CAAC;CAKF"}
@@ -1,8 +1,9 @@
1
1
  /// <reference types="akamai-edgeworkers" />
2
- import AkamaiLegacyWorker, { AkamaiConstructorArgs } from './AkamaiV1';
2
+ import { LegacyAkamaiConstructorArgs } from './AkamaiV1';
3
+ import ConfigLoader from './ConfigLoader';
3
4
  export default class Akamai {
4
- legacyWorker: AkamaiLegacyWorker;
5
- constructor(args: AkamaiConstructorArgs);
5
+ configLoader: ConfigLoader;
6
+ constructor(defaultConfig: LegacyAkamaiConstructorArgs);
6
7
  requestHandler(request: EW.IngressClientRequest): Promise<void>;
7
8
  responseHandler(request: EW.IngressClientRequest, response: EW.EgressClientResponse): Promise<void>;
8
9
  }
@@ -1,18 +1,26 @@
1
1
  import AkamaiLegacyWorker from './AkamaiV1';
2
2
  import { httpRequest } from 'http-request';
3
3
  import { logger } from 'log';
4
+ import ConfigLoader from './ConfigLoader';
4
5
  export default class Akamai {
5
- constructor(args) {
6
- this.legacyWorker = new AkamaiLegacyWorker(args, {
6
+ constructor(defaultConfig) {
7
+ this.configLoader = new ConfigLoader(defaultConfig);
8
+ }
9
+ async requestHandler(request) {
10
+ const config = this.configLoader.loadConfig(request);
11
+ const legacyWorker = new AkamaiLegacyWorker(config, {
7
12
  httpRequest,
8
13
  logger
9
14
  });
10
- }
11
- async requestHandler(request) {
12
- return await this.legacyWorker.requestHandler(request);
15
+ return await legacyWorker.requestHandler(request);
13
16
  }
14
17
  async responseHandler(request, response) {
15
- return await this.legacyWorker.responseHandler(request, response);
18
+ const config = this.configLoader.loadConfig(request);
19
+ const legacyWorker = new AkamaiLegacyWorker(config, {
20
+ httpRequest,
21
+ logger
22
+ });
23
+ return await legacyWorker.responseHandler(request, response);
16
24
  }
17
25
  }
18
26
  //# sourceMappingURL=AkamaiV2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AkamaiV2.js","sourceRoot":"","sources":["../../src/AkamaiV2.ts"],"names":[],"mappings":"AAAA,OAAO,kBAEN,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAE5B,MAAM,CAAC,OAAO,OAAO,MAAM;IAGzB,YAAa,IAA2B;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE;YAC/C,WAAW;YACX,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAgC;QAEhC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAgC,EAChC,QAAiC;QAEjC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACnE,CAAC;CACF"}
1
+ {"version":3,"file":"AkamaiV2.js","sourceRoot":"","sources":["../../src/AkamaiV2.ts"],"names":[],"mappings":"AAAA,OAAO,kBAEN,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,MAAM,CAAC,OAAO,OAAO,MAAM;IAGzB,YAAa,aAA0C;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAgC;QAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACpD,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE;YAClD,WAAW;YACX,MAAM;SACP,CAAC,CAAA;QAEF,OAAO,MAAM,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAgC,EAChC,QAAiC;QAEjC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACpD,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE;YAClD,WAAW;YACX,MAAM;SACP,CAAC,CAAA;QAEF,OAAO,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC9D,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="akamai-edgeworkers" />
2
+ import type { LegacyAkamaiConstructorArgs } from './AkamaiV1';
3
+ export interface AkamaiWorkerConfig extends LegacyAkamaiConstructorArgs {
4
+ enableMitigationProxyPass: boolean;
5
+ enableIngestProxyPass: boolean;
6
+ netaceaCookieAttributes: string;
7
+ netaceaCaptchaCookieAttributes: string;
8
+ }
9
+ export default class ConfigLoader {
10
+ defaults: Readonly<LegacyAkamaiConstructorArgs>;
11
+ constructor(defaultConfig: Readonly<LegacyAkamaiConstructorArgs>);
12
+ loadConfig(request: Readonly<EW.IngressClientRequest>): Readonly<AkamaiWorkerConfig>;
13
+ }
@@ -0,0 +1,76 @@
1
+ import { NetaceaMitigationType } from '@netacea/netaceaintegrationbase';
2
+ import { configureCookiesDomain } from './netaceaCookieAttributes';
3
+ const variablePrefix = 'PMUSER_NETACEA_';
4
+ class VariableLoader {
5
+ constructor(request) {
6
+ this.getBoolean = (variableName, defaultValue) => {
7
+ const variableValue = this.getString(variableName);
8
+ return variableValue !== undefined
9
+ ? (variableValue?.toLowerCase() ?? 'false') === 'true'
10
+ : defaultValue;
11
+ };
12
+ this.request = request;
13
+ }
14
+ getString(variableName, defaultValue) {
15
+ if (variableName.startsWith(variablePrefix)) {
16
+ variableName = variableName.slice(variablePrefix.length);
17
+ }
18
+ const fullName = `${variablePrefix}${variableName}`;
19
+ const value = this.request.getVariable(fullName) ?? defaultValue;
20
+ return Boolean(value) ? value : defaultValue;
21
+ }
22
+ }
23
+ export default class ConfigLoader {
24
+ constructor(defaultConfig) {
25
+ this.defaults = defaultConfig;
26
+ }
27
+ loadConfig(request) {
28
+ const vL = new VariableLoader(request);
29
+ const mitigationType = vL.getString('MITIGATION_TYPE', this.defaults.mitigationType);
30
+ const ingestType = vL.getString('INGEST_TYPE', this.defaults.ingestType);
31
+ const fetchedCookieAttr = vL.getString('COOKIE_ATTR');
32
+ const fetchedCaptchaCookieAttr = vL.getString('CAP_COOKIE_ATTR');
33
+ const { cookieAttribute, captchaCookieAttribute } = configureCookiesDomain(fetchedCookieAttr, fetchedCaptchaCookieAttr);
34
+ const config = {
35
+ ...this.defaults,
36
+ apiKey: vL.getString('API_KEY', this.defaults.apiKey),
37
+ cookieEncryptionKey: vL.getString('ENCRYPTION_KEY', this.defaults.cookieEncryptionKey),
38
+ enableIngestProxyPass: true,
39
+ enableMitigationProxyPass: true,
40
+ ingestType: ingestType,
41
+ mitigationType: mitigationType,
42
+ netaceaCaptchaCookieAttributes: captchaCookieAttribute ?? '',
43
+ netaceaCaptchaCookieName: vL.getString('CAPT_COOKIE_NAME', this.defaults.netaceaCaptchaCookieName),
44
+ netaceaCookieAttributes: cookieAttribute ?? '',
45
+ netaceaCookieExpirySeconds: configureMitataExpiry(this.defaults, mitigationType),
46
+ netaceaCookieName: vL.getString('COOKIE_NAME', this.defaults.netaceaCookieName),
47
+ secretKey: vL.getString('SECRET_KEY', this.defaults.secretKey),
48
+ useCaptchaRelAssets: vL.getBoolean('CAPT_REL_ASSETS', this.defaults.useCaptchaRelAssets) ?? false
49
+ };
50
+ const mitigationServiceUrlVar = vL.getString('MITIGATION_URL');
51
+ if (mitigationServiceUrlVar !== undefined) {
52
+ config.enableMitigationProxyPass = false;
53
+ config.mitigationServiceUrl = mitigationServiceUrlVar;
54
+ }
55
+ else {
56
+ config.mitigationServiceUrl = this.defaults.mitigationServiceUrl ?? 'https://mitigations.netacea.net';
57
+ }
58
+ const ingestServiceUrlVar = vL.getString('INGEST_URL');
59
+ if (ingestServiceUrlVar !== undefined) {
60
+ config.enableIngestProxyPass = false;
61
+ config.ingestServiceUrl = ingestServiceUrlVar;
62
+ }
63
+ else {
64
+ config.ingestServiceUrl = this.defaults.ingestServiceUrl ?? 'https://ingest.netacea.net';
65
+ }
66
+ return config;
67
+ }
68
+ }
69
+ function configureMitataExpiry(configJson, mitigationType) {
70
+ const expirySeconds = configJson.netaceaCookieExpirySeconds ?? configJson.mitataCookieExpirySeconds;
71
+ if (expirySeconds === undefined) {
72
+ return mitigationType === NetaceaMitigationType.INGEST ? 3600 : 60;
73
+ }
74
+ return expirySeconds;
75
+ }
76
+ //# sourceMappingURL=ConfigLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigLoader.js","sourceRoot":"","sources":["../../src/ConfigLoader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import Akamai from './AkamaiV2';
2
- export { AkamaiConstructorArgs, AkamaiMitigateResponse } from './AkamaiV1';
2
+ export { LegacyAkamaiConstructorArgs as AkamaiConstructorArgs, AkamaiMitigateResponse } from './AkamaiV1';
3
3
  export { NetaceaMitigationType, InjectResponse } from '@netacea/netaceaintegrationbase';
4
4
  export default Akamai;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netacea/akamai",
3
- "version": "5.0.48",
3
+ "version": "5.0.49",
4
4
  "description": "Netacea Akamai CDN Integration",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "license": "ISC",
22
22
  "dependencies": {
23
- "@netacea/netaceaintegrationbase": "^1.16.54",
23
+ "@netacea/netaceaintegrationbase": "^1.16.55",
24
24
  "buffer": "^6.0.3",
25
25
  "jssha": "^3.3.0"
26
26
  },
@@ -67,5 +67,5 @@
67
67
  "tslib": "^2.0.3",
68
68
  "typescript": "^4.0.3"
69
69
  },
70
- "gitHead": "63789f13a8a4e402923f4b1aeb4f935e51e96466"
70
+ "gitHead": "1f90b04e1b62d284d335a48cd135637b05f371c2"
71
71
  }