tailwind-typescript-plugin 1.4.0-beta.11 → 1.4.0-beta.12

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
@@ -1,3 +1,9 @@
1
+ ## [1.4.0-beta.12](https://github.com/IvanRodriCalleja/tailwind-typescript-plugin/compare/v1.4.0-beta.11...v1.4.0-beta.12) (2025-11-30)
2
+
3
+ ### ✨ Features
4
+
5
+ * add configurable utility functions and comprehensive completion tests ([742b3cf](https://github.com/IvanRodriCalleja/tailwind-typescript-plugin/commit/742b3cfb8ddaf8fafc9ae201c983723a301d0b50))
6
+
1
7
  ## [1.4.0-beta.11](https://github.com/IvanRodriCalleja/tailwind-typescript-plugin/compare/v1.4.0-beta.10...v1.4.0-beta.11) (2025-11-29)
2
8
 
3
9
  ### ✨ Features
@@ -1 +1 @@
1
- {"version":3,"file":"TailwindTypescriptPlugin.d.ts","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAcrD,qBAAa,wBAAwB;IAYxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAXvC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAAuB;gBAEb,UAAU,EAAE,OAAO,EAAE;IAElD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC,eAAe;IAmB5D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0D3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAyC3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0E1B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAiDlC;;;OAGG;IACH,OAAO,CAAC,4BAA4B,CA+CjC;IAEH;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAuEjC;IAEH;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIhD;;;OAGG;IACH,OAAO,CAAC,4BAA4B,CA2GjC;IAEH;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAsG9B;IAEH;;OAEG;IACH,OAAO,CAAC,8BAA8B,CAyCnC;IAEH;;OAEG;IACH,OAAO,CAAC,+BAA+B,CAkEpC;IAEH;;;OAGG;IACH,OAAO,IAAI,IAAI;CAMf"}
1
+ {"version":3,"file":"TailwindTypescriptPlugin.d.ts","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAcrD,qBAAa,wBAAwB;IAYxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAXvC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,WAAW,CAAuB;gBAEb,UAAU,EAAE,OAAO,EAAE;IAElD;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC,eAAe;IAmB5D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+D3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAyC3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA0E1B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAiDlC;;;OAGG;IACH,OAAO,CAAC,4BAA4B,CA+CjC;IAEH;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAuEjC;IAEH;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIhD;;;OAGG;IACH,OAAO,CAAC,4BAA4B,CA2GjC;IAEH;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAsG9B;IAEH;;OAEG;IACH,OAAO,CAAC,8BAA8B,CAyCnC;IAEH;;OAEG;IACH,OAAO,CAAC,+BAA+B,CAkEpC;IAEH;;;OAGG;IACH,OAAO,IAAI,IAAI;CAMf"}
@@ -347,7 +347,12 @@ class TailwindTypescriptPlugin {
347
347
  // Initialize code action service for quick fixes
348
348
  this.codeActionService = new CodeActionService_1.CodeActionService(this.validator);
349
349
  // Initialize completion service for Tailwind class autocompletion
350
- this.completionService = new CompletionService_1.CompletionService(this.validator, this.logger);
350
+ const completionConfig = {
351
+ utilityFunctions: this.configService.getUtilityFunctions(),
352
+ tailwindVariantsEnabled: this.configService.isTailwindVariantsEnabled(),
353
+ classVarianceAuthorityEnabled: this.configService.isClassVarianceAuthorityEnabled()
354
+ };
355
+ this.completionService = new CompletionService_1.CompletionService(this.validator, this.logger, completionConfig);
351
356
  // Set allowed classes from config
352
357
  const allowedClasses = this.configService.getAllowedClasses();
353
358
  if (allowedClasses.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"TailwindTypescriptPlugin.js","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TailwindTypescriptPlugin.js","sourceRoot":"","sources":["../../src/plugin/TailwindTypescriptPlugin.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,18 @@
1
1
  import * as ts from 'typescript/lib/tsserverlibrary';
2
+ import { UtilityFunction } from '../core/types';
2
3
  import { TailwindValidator } from '../infrastructure/TailwindValidator';
3
4
  import { Logger } from '../utils/Logger';
5
+ /**
6
+ * Configuration options for completion service
7
+ */
8
+ export interface CompletionServiceConfig {
9
+ /** Custom utility functions to recognize for completions */
10
+ utilityFunctions: UtilityFunction[];
11
+ /** Whether tailwind-variants (tv) is enabled */
12
+ tailwindVariantsEnabled: boolean;
13
+ /** Whether class-variance-authority (cva) is enabled */
14
+ classVarianceAuthorityEnabled: boolean;
15
+ }
4
16
  /**
5
17
  * Service that provides autocompletion for Tailwind CSS class names
6
18
  *
@@ -17,9 +29,12 @@ import { Logger } from '../utils/Logger';
17
29
  export declare class CompletionService {
18
30
  private readonly validator;
19
31
  private readonly logger;
32
+ private readonly config;
20
33
  /** Cached sorted class list for faster completion generation */
21
34
  private cachedClassList;
22
- constructor(validator: TailwindValidator, logger: Logger);
35
+ /** Cached set of utility function names for quick lookup */
36
+ private utilityFunctionNames;
37
+ constructor(validator: TailwindValidator, logger: Logger, config: CompletionServiceConfig);
23
38
  /**
24
39
  * Get completions at the given position
25
40
  */
@@ -61,7 +76,7 @@ export declare class CompletionService {
61
76
  */
62
77
  private isClassNameAttribute;
63
78
  /**
64
- * Check if a function name is a common utility function for class names
79
+ * Check if a function name is a configured utility function for class names
65
80
  */
66
81
  private isUtilityFunction;
67
82
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CompletionService.d.ts","sourceRoot":"","sources":["../../src/services/CompletionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAkBzC;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB;IAK5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALxB,gEAAgE;IAChE,OAAO,CAAC,eAAe,CAAyB;gBAG9B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM;IAGhC;;OAEG;IACH,wBAAwB,CACvB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,EAAE,CAAC,cAAc,GAAG,SAAS,GAChD,EAAE,CAAC,cAAc,GAAG,SAAS;IA+BhC;;;OAGG;IACH,yBAAyB,CACxB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GACf,EAAE,CAAC,sBAAsB,GAAG,SAAS;IAuCxC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkF5B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwD1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8C3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA+EpB;;;OAGG;IACH,OAAO,CAAC,WAAW;CAcnB"}
1
+ {"version":3,"file":"CompletionService.d.ts","sourceRoot":"","sources":["../../src/services/CompletionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAkBzC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,4DAA4D;IAC5D,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,gDAAgD;IAChD,uBAAuB,EAAE,OAAO,CAAC;IACjC,wDAAwD;IACxD,6BAA6B,EAAE,OAAO,CAAC;CACvC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB;IAO5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARxB,gEAAgE;IAChE,OAAO,CAAC,eAAe,CAAyB;IAChD,4DAA4D;IAC5D,OAAO,CAAC,oBAAoB,CAAc;gBAGxB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,uBAAuB;IAoBjD;;OAEG;IACH,wBAAwB,CACvB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,MAAM,EAChB,mBAAmB,EAAE,EAAE,CAAC,cAAc,GAAG,SAAS,GAChD,EAAE,CAAC,cAAc,GAAG,SAAS;IA+BhC;;;OAGG;IACH,yBAAyB,CACxB,UAAU,EAAE,OAAO,EAAE,EACrB,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GACf,EAAE,CAAC,sBAAsB,GAAG,SAAS;IAuCxC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkF5B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4D1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8C3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;;OAGG;IACH,OAAO,CAAC,YAAY;IA+EpB;;;OAGG;IACH,OAAO,CAAC,WAAW;CAcnB"}
@@ -15,11 +15,22 @@ exports.CompletionService = void 0;
15
15
  * - Handles space-separated class lists properly
16
16
  */
17
17
  class CompletionService {
18
- constructor(validator, logger) {
18
+ constructor(validator, logger, config) {
19
19
  this.validator = validator;
20
20
  this.logger = logger;
21
+ this.config = config;
21
22
  /** Cached sorted class list for faster completion generation */
22
23
  this.cachedClassList = null;
24
+ // Build a set of utility function names for quick lookup
25
+ this.utilityFunctionNames = new Set(config.utilityFunctions.map(f => (typeof f === 'string' ? f : f.name)));
26
+ // Add variant functions based on config
27
+ if (config.tailwindVariantsEnabled) {
28
+ this.utilityFunctionNames.add('tv');
29
+ }
30
+ if (config.classVarianceAuthorityEnabled) {
31
+ this.utilityFunctionNames.add('cva');
32
+ }
33
+ this.logger.log(`[CompletionService] Initialized with utility functions: ${Array.from(this.utilityFunctionNames).join(', ')}`);
23
34
  }
24
35
  /**
25
36
  * Get completions at the given position
@@ -240,9 +251,13 @@ class CompletionService {
240
251
  return this.isClassNameAttribute(attrName);
241
252
  }
242
253
  // Case 2: Property assignment like { className: "..." }
254
+ // But only return true here - we need to fall through for properties inside tv()/cva() like base/variants
243
255
  if (typescript.isPropertyAssignment(parent)) {
244
256
  const propName = parent.name.getText();
245
- return this.isClassNameAttribute(propName);
257
+ if (this.isClassNameAttribute(propName)) {
258
+ return true;
259
+ }
260
+ // Fall through to check if this property is inside a utility function call
246
261
  }
247
262
  // Case 3: Inside a call expression (utility function like clsx, cn, etc.)
248
263
  // Check parent chain for call expression
@@ -255,12 +270,12 @@ class CompletionService {
255
270
  return true;
256
271
  }
257
272
  }
258
- // Case 4: Inside tv() or cva() variant definitions
273
+ // Case 4: Inside tv() or cva() variant definitions (property assignments within these calls)
259
274
  if (typescript.isPropertyAssignment(current)) {
260
275
  const parentCall = this.findParentCallExpression(typescript, current);
261
276
  if (parentCall) {
262
277
  const callName = this.getCallExpressionName(typescript, parentCall);
263
- if (callName === 'tv' || callName === 'cva') {
278
+ if (callName && this.isUtilityFunction(callName)) {
264
279
  return true;
265
280
  }
266
281
  }
@@ -288,21 +303,10 @@ class CompletionService {
288
303
  return classNameAttributes.includes(name) || classNameAttributes.includes(name.toLowerCase());
289
304
  }
290
305
  /**
291
- * Check if a function name is a common utility function for class names
306
+ * Check if a function name is a configured utility function for class names
292
307
  */
293
308
  isUtilityFunction(name) {
294
- const utilityFunctions = [
295
- 'clsx',
296
- 'cn',
297
- 'classnames',
298
- 'classNames',
299
- 'cx',
300
- 'cva',
301
- 'tv',
302
- 'twMerge',
303
- 'twJoin'
304
- ];
305
- return utilityFunctions.includes(name);
309
+ return this.utilityFunctionNames.has(name);
306
310
  }
307
311
  /**
308
312
  * Get the name of a call expression
@@ -1 +1 @@
1
- {"version":3,"file":"CompletionService.js","sourceRoot":"","sources":["../../src/services/CompletionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CompletionService.js","sourceRoot":"","sources":["../../src/services/CompletionService.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,11 @@ const ts = __importStar(require("typescript/lib/tsserverlibrary"));
37
37
  const TailwindValidator_1 = require("../infrastructure/TailwindValidator");
38
38
  const Logger_1 = require("../utils/Logger");
39
39
  const CompletionService_1 = require("./CompletionService");
40
+ const defaultConfig = {
41
+ utilityFunctions: ['clsx', 'cn', 'classnames', 'classNames', 'cx', 'twMerge'],
42
+ tailwindVariantsEnabled: true,
43
+ classVarianceAuthorityEnabled: true
44
+ };
40
45
  describe('CompletionService', () => {
41
46
  let validator;
42
47
  let completionService;
@@ -74,7 +79,7 @@ describe('CompletionService', () => {
74
79
  return null;
75
80
  });
76
81
  });
77
- completionService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger());
82
+ completionService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), defaultConfig);
78
83
  });
79
84
  describe('getCompletionsAtPosition', () => {
80
85
  it('should return original completions when not in className context', () => {
@@ -330,5 +335,705 @@ describe('CompletionService', () => {
330
335
  expect(names).not.toContain('flex');
331
336
  });
332
337
  });
338
+ describe('custom utility functions', () => {
339
+ it('should provide completions in custom utility function', () => {
340
+ const customConfig = {
341
+ utilityFunctions: ['myCustomClass', { name: 'styles', from: '@/utils' }],
342
+ tailwindVariantsEnabled: false,
343
+ classVarianceAuthorityEnabled: false
344
+ };
345
+ const customService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), customConfig);
346
+ const sourceCode = 'const x = myCustomClass("fl");';
347
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
348
+ // Position after "fl"
349
+ const position = 27;
350
+ const result = customService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
351
+ expect(result).toBeDefined();
352
+ const names = result.entries.map(e => e.name);
353
+ expect(names).toContain('flex');
354
+ });
355
+ it('should provide completions in tv() when tailwindVariants is enabled', () => {
356
+ const sourceCode = 'const button = tv({ base: "fl" });';
357
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
358
+ // Position at "l" inside "fl" string (position 28)
359
+ // const button = tv({ base: "fl" });
360
+ // ^^ position 27-28
361
+ const position = 28;
362
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
363
+ expect(result).toBeDefined();
364
+ const names = result.entries.map(e => e.name);
365
+ expect(names).toContain('flex');
366
+ });
367
+ it('should NOT provide completions in tv() when tailwindVariants is disabled', () => {
368
+ const customConfig = {
369
+ utilityFunctions: ['clsx'],
370
+ tailwindVariantsEnabled: false,
371
+ classVarianceAuthorityEnabled: false
372
+ };
373
+ const customService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), customConfig);
374
+ const sourceCode = 'const button = tv({ base: "fl" });';
375
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
376
+ // Position after "fl" inside the string
377
+ const position = 29;
378
+ const result = customService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
379
+ // Should not provide Tailwind completions since tv() is not recognized
380
+ expect(result).toBeUndefined();
381
+ });
382
+ it('should provide completions in cva() when classVarianceAuthority is enabled', () => {
383
+ const sourceCode = 'const button = cva("fl");';
384
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
385
+ // Position after "fl"
386
+ const position = 22;
387
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
388
+ expect(result).toBeDefined();
389
+ const names = result.entries.map(e => e.name);
390
+ expect(names).toContain('flex');
391
+ });
392
+ it('should NOT provide completions in cva() when classVarianceAuthority is disabled', () => {
393
+ const customConfig = {
394
+ utilityFunctions: ['clsx'],
395
+ tailwindVariantsEnabled: false,
396
+ classVarianceAuthorityEnabled: false
397
+ };
398
+ const customService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), customConfig);
399
+ const sourceCode = 'const button = cva("fl");';
400
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
401
+ // Position after "fl"
402
+ const position = 22;
403
+ const result = customService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
404
+ // Should not provide Tailwind completions since cva() is not recognized
405
+ expect(result).toBeUndefined();
406
+ });
407
+ it('should provide completions with UtilityFunctionConfig objects', () => {
408
+ const customConfig = {
409
+ utilityFunctions: [{ name: 'customStyles', from: '@/lib/styles' }],
410
+ tailwindVariantsEnabled: false,
411
+ classVarianceAuthorityEnabled: false
412
+ };
413
+ const customService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), customConfig);
414
+ const sourceCode = 'const x = customStyles("fl");';
415
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
416
+ const position = 26;
417
+ const result = customService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
418
+ expect(result).toBeDefined();
419
+ const names = result.entries.map(e => e.name);
420
+ expect(names).toContain('flex');
421
+ });
422
+ it('should provide completions with mixed string and object utility functions', () => {
423
+ const customConfig = {
424
+ utilityFunctions: ['simpleUtil', { name: 'configuredUtil', from: '@/utils' }],
425
+ tailwindVariantsEnabled: false,
426
+ classVarianceAuthorityEnabled: false
427
+ };
428
+ const customService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), customConfig);
429
+ // Test simple string utility
430
+ const sourceCode1 = 'const x = simpleUtil("fl");';
431
+ const sourceFile1 = ts.createSourceFile('test.tsx', sourceCode1, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
432
+ const result1 = customService.getCompletionsAtPosition(ts, sourceFile1, 24, undefined);
433
+ expect(result1).toBeDefined();
434
+ expect(result1.entries.map(e => e.name)).toContain('flex');
435
+ // Test configured utility
436
+ const sourceCode2 = 'const x = configuredUtil("fl");';
437
+ const sourceFile2 = ts.createSourceFile('test.tsx', sourceCode2, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
438
+ const result2 = customService.getCompletionsAtPosition(ts, sourceFile2, 28, undefined);
439
+ expect(result2).toBeDefined();
440
+ expect(result2.entries.map(e => e.name)).toContain('flex');
441
+ });
442
+ it('should provide completions in tv() variants property', () => {
443
+ const sourceCode = `const button = tv({
444
+ base: "flex",
445
+ variants: {
446
+ color: {
447
+ primary: "bg-blue-500 te",
448
+ secondary: "bg-gray-500"
449
+ }
450
+ }
451
+ });`;
452
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
453
+ // Find position after "te" in primary variant
454
+ const position = sourceCode.indexOf('te",') + 2;
455
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
456
+ expect(result).toBeDefined();
457
+ const names = result.entries.map(e => e.name);
458
+ expect(names).toContain('text-white');
459
+ expect(names).toContain('text-black');
460
+ });
461
+ it('should provide completions in cva() variants property', () => {
462
+ const sourceCode = `const button = cva("base-class", {
463
+ variants: {
464
+ size: {
465
+ sm: "p-",
466
+ lg: "p-4"
467
+ }
468
+ }
469
+ });`;
470
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
471
+ // Find position after "p-" in sm variant
472
+ const position = sourceCode.indexOf('p-",') + 2;
473
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
474
+ expect(result).toBeDefined();
475
+ const names = result.entries.map(e => e.name);
476
+ // Should match classes starting with "p-" from the mock (p-4, px-4, py-4)
477
+ expect(names).toContain('p-4');
478
+ });
479
+ it('should provide completions in tv() compoundVariants', () => {
480
+ const sourceCode = `const button = tv({
481
+ base: "flex",
482
+ variants: {
483
+ color: { primary: "bg-blue-500" }
484
+ },
485
+ compoundVariants: [
486
+ { color: "primary", class: "fl" }
487
+ ]
488
+ });`;
489
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
490
+ // Find position after "fl" in compoundVariants class
491
+ const position = sourceCode.indexOf('"fl"') + 3;
492
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
493
+ expect(result).toBeDefined();
494
+ const names = result.entries.map(e => e.name);
495
+ expect(names).toContain('flex');
496
+ });
497
+ it('should enable both tv and cva when both variant options are true', () => {
498
+ const customConfig = {
499
+ utilityFunctions: [],
500
+ tailwindVariantsEnabled: true,
501
+ classVarianceAuthorityEnabled: true
502
+ };
503
+ const customService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), customConfig);
504
+ // Test tv()
505
+ const tvSource = 'const x = tv({ base: "fl" });';
506
+ const tvFile = ts.createSourceFile('test.tsx', tvSource, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
507
+ const tvResult = customService.getCompletionsAtPosition(ts, tvFile, 24, undefined);
508
+ expect(tvResult).toBeDefined();
509
+ // Test cva()
510
+ const cvaSource = 'const x = cva("fl");';
511
+ const cvaFile = ts.createSourceFile('test.tsx', cvaSource, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
512
+ const cvaResult = customService.getCompletionsAtPosition(ts, cvaFile, 17, undefined);
513
+ expect(cvaResult).toBeDefined();
514
+ });
515
+ });
516
+ describe('JSX attribute variations', () => {
517
+ it('should provide completions in "class" attribute', () => {
518
+ const sourceCode = '<div class="fl">Hello</div>';
519
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
520
+ const position = 14;
521
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
522
+ expect(result).toBeDefined();
523
+ const names = result.entries.map(e => e.name);
524
+ expect(names).toContain('flex');
525
+ });
526
+ it('should provide completions in "classList" attribute', () => {
527
+ const sourceCode = '<div classList="fl">Hello</div>';
528
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
529
+ const position = 18;
530
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
531
+ expect(result).toBeDefined();
532
+ const names = result.entries.map(e => e.name);
533
+ expect(names).toContain('flex');
534
+ });
535
+ it('should NOT provide completions in non-className attributes', () => {
536
+ const sourceCode = '<div id="fl">Hello</div>';
537
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
538
+ const position = 11;
539
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
540
+ expect(result).toBeUndefined();
541
+ });
542
+ it('should NOT provide completions in data attributes', () => {
543
+ const sourceCode = '<div data-class="fl">Hello</div>';
544
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
545
+ const position = 19;
546
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
547
+ expect(result).toBeUndefined();
548
+ });
549
+ it('should provide completions in self-closing JSX element', () => {
550
+ const sourceCode = '<input className="fl" />';
551
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
552
+ const position = 20;
553
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
554
+ expect(result).toBeDefined();
555
+ const names = result.entries.map(e => e.name);
556
+ expect(names).toContain('flex');
557
+ });
558
+ it('should provide completions in nested JSX elements', () => {
559
+ const sourceCode = '<div><span className="fl"></span></div>';
560
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
561
+ const position = 24;
562
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
563
+ expect(result).toBeDefined();
564
+ const names = result.entries.map(e => e.name);
565
+ expect(names).toContain('flex');
566
+ });
567
+ });
568
+ describe('utility function contexts', () => {
569
+ it('should provide completions in nested utility function calls', () => {
570
+ const sourceCode = 'const x = cn(clsx("fl"));';
571
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
572
+ const position = 21;
573
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
574
+ expect(result).toBeDefined();
575
+ const names = result.entries.map(e => e.name);
576
+ expect(names).toContain('flex');
577
+ });
578
+ it('should provide completions in twMerge function', () => {
579
+ const sourceCode = 'const x = twMerge("fl");';
580
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
581
+ const position = 21;
582
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
583
+ expect(result).toBeDefined();
584
+ const names = result.entries.map(e => e.name);
585
+ expect(names).toContain('flex');
586
+ });
587
+ it('should provide completions in classnames function (lowercase)', () => {
588
+ const sourceCode = 'const x = classnames("fl");';
589
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
590
+ const position = 24;
591
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
592
+ expect(result).toBeDefined();
593
+ const names = result.entries.map(e => e.name);
594
+ expect(names).toContain('flex');
595
+ });
596
+ it('should provide completions in classNames function (camelCase)', () => {
597
+ const sourceCode = 'const x = classNames("fl");';
598
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
599
+ const position = 24;
600
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
601
+ expect(result).toBeDefined();
602
+ const names = result.entries.map(e => e.name);
603
+ expect(names).toContain('flex');
604
+ });
605
+ it('should provide completions in cx function', () => {
606
+ const sourceCode = 'const x = cx("fl");';
607
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
608
+ const position = 16;
609
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
610
+ expect(result).toBeDefined();
611
+ const names = result.entries.map(e => e.name);
612
+ expect(names).toContain('flex');
613
+ });
614
+ it('should provide completions in conditional utility function argument', () => {
615
+ const sourceCode = 'const x = cn(isActive ? "fl" : "hidden");';
616
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
617
+ // Position inside the first string "fl"
618
+ const position = 27;
619
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
620
+ expect(result).toBeDefined();
621
+ const names = result.entries.map(e => e.name);
622
+ expect(names).toContain('flex');
623
+ });
624
+ it('should provide completions in array argument of utility function', () => {
625
+ const sourceCode = 'const x = cn(["fl", "items-center"]);';
626
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
627
+ // Position inside "fl"
628
+ const position = 17;
629
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
630
+ expect(result).toBeDefined();
631
+ const names = result.entries.map(e => e.name);
632
+ expect(names).toContain('flex');
633
+ });
634
+ it('should provide completions in object value of utility function', () => {
635
+ const sourceCode = 'const x = cn({ "fl": isActive });';
636
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
637
+ // Position inside "fl" key
638
+ const position = 18;
639
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
640
+ expect(result).toBeDefined();
641
+ const names = result.entries.map(e => e.name);
642
+ expect(names).toContain('flex');
643
+ });
644
+ it('should NOT provide completions in unknown function', () => {
645
+ const sourceCode = 'const x = unknownFn("fl");';
646
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
647
+ const position = 23;
648
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
649
+ expect(result).toBeUndefined();
650
+ });
651
+ it('should provide completions with property access expression (method call)', () => {
652
+ // When cn is called as a method: utils.cn("fl")
653
+ const customConfig = {
654
+ utilityFunctions: ['cn'],
655
+ tailwindVariantsEnabled: false,
656
+ classVarianceAuthorityEnabled: false
657
+ };
658
+ const customService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), customConfig);
659
+ const sourceCode = 'const x = utils.cn("fl");';
660
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
661
+ const position = 22;
662
+ const result = customService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
663
+ expect(result).toBeDefined();
664
+ const names = result.entries.map(e => e.name);
665
+ expect(names).toContain('flex');
666
+ });
667
+ });
668
+ describe('edge cases and position handling', () => {
669
+ it('should handle empty className attribute', () => {
670
+ const sourceCode = '<div className="">Hello</div>';
671
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
672
+ // Position inside empty string
673
+ const position = 16;
674
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
675
+ expect(result).toBeDefined();
676
+ expect(result.entries.length).toBeGreaterThan(0);
677
+ });
678
+ it('should handle position at start of string content', () => {
679
+ const sourceCode = '<div className="flex">Hello</div>';
680
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
681
+ // Position at start of string content (right after opening quote)
682
+ const position = 16;
683
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
684
+ expect(result).toBeDefined();
685
+ });
686
+ it('should handle multiple spaces between classes', () => {
687
+ const sourceCode = '<div className="flex items-center">Hello</div>';
688
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
689
+ // Position after multiple spaces
690
+ const position = 23;
691
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
692
+ expect(result).toBeDefined();
693
+ });
694
+ it('should handle trailing space in className', () => {
695
+ const sourceCode = '<div className="flex ">Hello</div>';
696
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
697
+ // Position after trailing space
698
+ const position = 21;
699
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
700
+ expect(result).toBeDefined();
701
+ // flex should be excluded as it's already in the string
702
+ const names = result.entries.map(e => e.name);
703
+ expect(names).not.toContain('flex');
704
+ });
705
+ it('should return existingCompletions when no Tailwind classes match', () => {
706
+ // Mock empty class list
707
+ jest.spyOn(validator, 'getAllClasses').mockReturnValue([]);
708
+ const existingCompletions = {
709
+ isGlobalCompletion: false,
710
+ isMemberCompletion: false,
711
+ isNewIdentifierLocation: false,
712
+ entries: [{ name: 'existing', kind: ts.ScriptElementKind.unknown, sortText: '0' }]
713
+ };
714
+ const sourceCode = '<div className="xyz">Hello</div>';
715
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
716
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 19, existingCompletions);
717
+ expect(result).toBe(existingCompletions);
718
+ });
719
+ it('should handle cursor position before string start', () => {
720
+ const sourceCode = '<div className="flex">Hello</div>';
721
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
722
+ // Position before the opening quote
723
+ const position = 14;
724
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
725
+ // Should not provide completions when cursor is outside string
726
+ expect(result).toBeUndefined();
727
+ });
728
+ it('should handle very long class names', () => {
729
+ jest
730
+ .spyOn(validator, 'getAllClasses')
731
+ .mockReturnValue(['very-long-tailwind-class-name-that-is-quite-long', 'flex']);
732
+ const sourceCode = '<div className="very">Hello</div>';
733
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
734
+ const position = 20;
735
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
736
+ expect(result).toBeDefined();
737
+ const names = result.entries.map(e => e.name);
738
+ expect(names).toContain('very-long-tailwind-class-name-that-is-quite-long');
739
+ });
740
+ it('should handle special characters in class prefix', () => {
741
+ jest
742
+ .spyOn(validator, 'getAllClasses')
743
+ .mockReturnValue(['w-1/2', 'w-1/3', 'w-1/4', '-mt-4', '-translate-x-1/2']);
744
+ const sourceCode = '<div className="w-1/">Hello</div>';
745
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
746
+ const position = 20;
747
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
748
+ expect(result).toBeDefined();
749
+ const names = result.entries.map(e => e.name);
750
+ expect(names).toContain('w-1/2');
751
+ expect(names).toContain('w-1/3');
752
+ expect(names).toContain('w-1/4');
753
+ });
754
+ it('should handle negative value classes', () => {
755
+ jest.spyOn(validator, 'getAllClasses').mockReturnValue(['-mt-4', '-mb-4', '-ml-4', '-mr-4']);
756
+ const sourceCode = '<div className="-m">Hello</div>';
757
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
758
+ const position = 18;
759
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
760
+ expect(result).toBeDefined();
761
+ const names = result.entries.map(e => e.name);
762
+ expect(names).toContain('-mt-4');
763
+ expect(names).toContain('-mb-4');
764
+ });
765
+ it('should handle arbitrary value classes', () => {
766
+ jest
767
+ .spyOn(validator, 'getAllClasses')
768
+ .mockReturnValue(['w-[100px]', 'h-[50vh]', 'bg-[#ff0000]']);
769
+ const sourceCode = '<div className="w-[">Hello</div>';
770
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
771
+ const position = 19;
772
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
773
+ expect(result).toBeDefined();
774
+ const names = result.entries.map(e => e.name);
775
+ expect(names).toContain('w-[100px]');
776
+ });
777
+ });
778
+ describe('sort text ordering', () => {
779
+ it('should prioritize exact matches', () => {
780
+ jest.spyOn(validator, 'getAllClasses').mockReturnValue(['flex', 'flex-row', 'flex-col']);
781
+ const sourceCode = '<div className="flex">Hello</div>';
782
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
783
+ const position = 20;
784
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
785
+ expect(result).toBeDefined();
786
+ const flexEntry = result.entries.find(e => e.name === 'flex');
787
+ const flexRowEntry = result.entries.find(e => e.name === 'flex-row');
788
+ // Exact match should have lower sortText (higher priority)
789
+ expect(flexEntry.sortText < flexRowEntry.sortText).toBe(true);
790
+ });
791
+ it('should prioritize prefix matches over non-matches', () => {
792
+ jest
793
+ .spyOn(validator, 'getAllClasses')
794
+ .mockReturnValue(['flex', 'flex-row', 'items-center', 'justify-center']);
795
+ const sourceCode = '<div className="fl">Hello</div>';
796
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
797
+ const position = 18;
798
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
799
+ expect(result).toBeDefined();
800
+ const flexEntry = result.entries.find(e => e.name === 'flex');
801
+ // Prefix match should start with "1"
802
+ expect(flexEntry.sortText.startsWith('1')).toBe(true);
803
+ });
804
+ it('should sort alphabetically within same priority', () => {
805
+ jest.spyOn(validator, 'getAllClasses').mockReturnValue(['flex-col', 'flex-row', 'flex']);
806
+ const sourceCode = '<div className="flex-">Hello</div>';
807
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
808
+ const position = 21;
809
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
810
+ expect(result).toBeDefined();
811
+ const names = result.entries.map(e => e.name);
812
+ // Both should be prefix matches with alphabetical ordering
813
+ const colIndex = names.indexOf('flex-col');
814
+ const rowIndex = names.indexOf('flex-row');
815
+ expect(colIndex).toBeLessThan(rowIndex);
816
+ });
817
+ });
818
+ describe('color class detection - additional patterns', () => {
819
+ beforeEach(() => {
820
+ jest
821
+ .spyOn(validator, 'getAllClasses')
822
+ .mockReturnValue([
823
+ 'bg-red-500',
824
+ 'bg-red-500/50',
825
+ 'bg-[#ff0000]',
826
+ 'bg-gradient-to-r',
827
+ 'text-transparent',
828
+ 'text-current',
829
+ 'text-inherit',
830
+ 'placeholder-gray-400',
831
+ 'caret-blue-500',
832
+ 'decoration-pink-500',
833
+ 'divide-slate-200',
834
+ 'ring-offset-white',
835
+ 'shadow-black/25',
836
+ 'bg-opacity-50',
837
+ 'text-opacity-75'
838
+ ]);
839
+ });
840
+ it('should detect color classes with opacity modifiers', () => {
841
+ const sourceCode = '<div className="">Hello</div>';
842
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
843
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 16, undefined);
844
+ expect(result).toBeDefined();
845
+ expect(result.entries.find(e => e.name === 'bg-red-500/50')?.kindModifiers).toBe('color');
846
+ expect(result.entries.find(e => e.name === 'shadow-black/25')?.kindModifiers).toBe('color');
847
+ });
848
+ it('should detect arbitrary color values', () => {
849
+ const sourceCode = '<div className="">Hello</div>';
850
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
851
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 16, undefined);
852
+ expect(result).toBeDefined();
853
+ expect(result.entries.find(e => e.name === 'bg-[#ff0000]')?.kindModifiers).toBe('color');
854
+ });
855
+ it('should detect special color values (transparent, current, inherit)', () => {
856
+ const sourceCode = '<div className="">Hello</div>';
857
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
858
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 16, undefined);
859
+ expect(result).toBeDefined();
860
+ expect(result.entries.find(e => e.name === 'text-transparent')?.kindModifiers).toBe('color');
861
+ expect(result.entries.find(e => e.name === 'text-current')?.kindModifiers).toBe('color');
862
+ expect(result.entries.find(e => e.name === 'text-inherit')?.kindModifiers).toBe('color');
863
+ });
864
+ it('should detect placeholder, caret, and decoration colors', () => {
865
+ const sourceCode = '<div className="">Hello</div>';
866
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
867
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 16, undefined);
868
+ expect(result).toBeDefined();
869
+ expect(result.entries.find(e => e.name === 'placeholder-gray-400')?.kindModifiers).toBe('color');
870
+ expect(result.entries.find(e => e.name === 'caret-blue-500')?.kindModifiers).toBe('color');
871
+ expect(result.entries.find(e => e.name === 'decoration-pink-500')?.kindModifiers).toBe('color');
872
+ });
873
+ it('should NOT mark gradient direction as color', () => {
874
+ const sourceCode = '<div className="">Hello</div>';
875
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
876
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 16, undefined);
877
+ expect(result).toBeDefined();
878
+ // bg-gradient-to-r is not a color, it's a gradient direction
879
+ expect(result.entries.find(e => e.name === 'bg-gradient-to-r')?.kindModifiers).toBe('');
880
+ });
881
+ });
882
+ describe('getCompletionEntryDetails - additional cases', () => {
883
+ it('should set color kindModifier in completion details', () => {
884
+ jest
885
+ .spyOn(validator, 'getCssForClasses')
886
+ .mockReturnValue(['.bg-red-500 { background-color: rgb(239 68 68); }']);
887
+ const sourceCode = '<div className="bg-red-500">Hello</div>';
888
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
889
+ const result = completionService.getCompletionEntryDetails(ts, sourceFile, 16, 'bg-red-500');
890
+ expect(result).toBeDefined();
891
+ expect(result.kindModifiers).toBe('color');
892
+ });
893
+ it('should NOT set color kindModifier for non-color class in details', () => {
894
+ const sourceCode = '<div className="flex">Hello</div>';
895
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
896
+ const result = completionService.getCompletionEntryDetails(ts, sourceFile, 16, 'flex');
897
+ expect(result).toBeDefined();
898
+ expect(result.kindModifiers).toBe('');
899
+ });
900
+ it('should handle class with no CSS definition gracefully', () => {
901
+ jest.spyOn(validator, 'getCssForClasses').mockReturnValue([null]);
902
+ jest.spyOn(validator, 'isValidClass').mockReturnValue(true);
903
+ const sourceCode = '<div className="unknown-class">Hello</div>';
904
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
905
+ const result = completionService.getCompletionEntryDetails(ts, sourceFile, 16, 'unknown-class');
906
+ expect(result).toBeDefined();
907
+ expect(result.name).toBe('unknown-class');
908
+ expect(result.documentation).toEqual([]);
909
+ expect(result.displayParts[0].text).toBe('unknown-class');
910
+ });
911
+ it('should format CSS with already formatted multiline input', () => {
912
+ const multilineCss = `.complex {\n display: flex;\n align-items: center;\n}`;
913
+ jest.spyOn(validator, 'getCssForClasses').mockReturnValue([multilineCss]);
914
+ jest.spyOn(validator, 'isValidClass').mockReturnValue(true);
915
+ const sourceCode = '<div className="complex">Hello</div>';
916
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
917
+ const result = completionService.getCompletionEntryDetails(ts, sourceFile, 16, 'complex');
918
+ expect(result).toBeDefined();
919
+ // Should preserve the already formatted CSS
920
+ expect(result.documentation[0].text).toContain(multilineCss);
921
+ });
922
+ });
923
+ describe('template literals', () => {
924
+ it('should provide completions in template literal utility function', () => {
925
+ const sourceCode = 'const x = cn(`fl`);';
926
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
927
+ // Position inside template literal
928
+ const position = 16;
929
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
930
+ expect(result).toBeDefined();
931
+ const names = result.entries.map(e => e.name);
932
+ expect(names).toContain('flex');
933
+ });
934
+ it('should provide completions in NoSubstitutionTemplateLiteral inside utility function', () => {
935
+ const sourceCode = 'const cls = clsx(`flex fl`);';
936
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
937
+ // Position after "fl" inside template literal
938
+ const position = 25;
939
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
940
+ expect(result).toBeDefined();
941
+ const names = result.entries.map(e => e.name);
942
+ expect(names).toContain('flex-row');
943
+ expect(names).toContain('flex-col');
944
+ });
945
+ });
946
+ describe('boundary conditions', () => {
947
+ it('should NOT provide completions inside arrow function body', () => {
948
+ const customConfig = {
949
+ utilityFunctions: [],
950
+ tailwindVariantsEnabled: false,
951
+ classVarianceAuthorityEnabled: false
952
+ };
953
+ const customService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), customConfig);
954
+ const sourceCode = 'const fn = () => { const x = "fl"; };';
955
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
956
+ // Position inside string in arrow function (not a utility function context)
957
+ const position = 32;
958
+ const result = customService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
959
+ expect(result).toBeUndefined();
960
+ });
961
+ it('should NOT provide completions inside regular function body', () => {
962
+ const customConfig = {
963
+ utilityFunctions: [],
964
+ tailwindVariantsEnabled: false,
965
+ classVarianceAuthorityEnabled: false
966
+ };
967
+ const customService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger(), customConfig);
968
+ const sourceCode = 'function fn() { const x = "fl"; }';
969
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
970
+ // Position inside string in function (not a utility function context)
971
+ const position = 29;
972
+ const result = customService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
973
+ expect(result).toBeUndefined();
974
+ });
975
+ it('should provide completions when utility function is inside arrow function', () => {
976
+ const sourceCode = 'const fn = () => cn("fl");';
977
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
978
+ // Position inside cn() string argument
979
+ const position = 23;
980
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
981
+ expect(result).toBeDefined();
982
+ const names = result.entries.map(e => e.name);
983
+ expect(names).toContain('flex');
984
+ });
985
+ });
986
+ describe('case sensitivity', () => {
987
+ it('should handle case-insensitive prefix matching', () => {
988
+ const sourceCode = '<div className="FL">Hello</div>';
989
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
990
+ const position = 18;
991
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
992
+ expect(result).toBeDefined();
993
+ const names = result.entries.map(e => e.name);
994
+ // Should still match lowercase flex classes even with uppercase prefix
995
+ expect(names).toContain('flex');
996
+ expect(names).toContain('flex-row');
997
+ });
998
+ });
999
+ describe('replacement span', () => {
1000
+ it('should set correct replacement span at start of string', () => {
1001
+ const sourceCode = '<div className="fl">Hello</div>';
1002
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
1003
+ const position = 18;
1004
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
1005
+ expect(result).toBeDefined();
1006
+ const flexEntry = result.entries.find(e => e.name === 'flex');
1007
+ expect(flexEntry.replacementSpan).toEqual({
1008
+ start: 16, // Start of "fl"
1009
+ length: 2 // Length of "fl"
1010
+ });
1011
+ });
1012
+ it('should set correct replacement span after space', () => {
1013
+ const sourceCode = '<div className="flex ite">Hello</div>';
1014
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
1015
+ const position = 24;
1016
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
1017
+ expect(result).toBeDefined();
1018
+ const itemsEntry = result.entries.find(e => e.name === 'items-center');
1019
+ expect(itemsEntry.replacementSpan).toEqual({
1020
+ start: 21, // Start of "ite" (after "flex ")
1021
+ length: 3 // Length of "ite"
1022
+ });
1023
+ });
1024
+ it('should set zero-length replacement span when no prefix', () => {
1025
+ const sourceCode = '<div className="flex ">Hello</div>';
1026
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
1027
+ // Position after space (no prefix yet)
1028
+ const position = 21;
1029
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
1030
+ expect(result).toBeDefined();
1031
+ const itemsEntry = result.entries.find(e => e.name === 'items-center');
1032
+ expect(itemsEntry.replacementSpan).toEqual({
1033
+ start: 21,
1034
+ length: 0 // No prefix to replace
1035
+ });
1036
+ });
1037
+ });
333
1038
  });
334
1039
  //# sourceMappingURL=CompletionService.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompletionService.spec.js","sourceRoot":"","sources":["../../src/services/CompletionService.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CompletionService.spec.js","sourceRoot":"","sources":["../../src/services/CompletionService.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAqD;AAErD,2EAAwE;AACxE,4CAA6C;AAC7C,2DAAiF;AAEjF,MAAM,aAAa,GAA4B;IAC9C,gBAAgB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC;IAC7E,uBAAuB,EAAE,IAAI;IAC7B,6BAA6B,EAAE,IAAI;CACnC,CAAC;AAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAClC,IAAI,SAA4B,CAAC;IACjC,IAAI,iBAAoC,CAAC;IAEzC,UAAU,CAAC,GAAG,EAAE;QACf,SAAS,GAAG,IAAI,qCAAiB,CAAC,gBAAgB,EAAE,IAAI,mBAAU,EAAE,CAAC,CAAC;QACtE,6BAA6B;QAC7B,IAAI;aACF,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC;aACjC,eAAe,CAAC;YAChB,MAAM;YACN,UAAU;YACV,UAAU;YACV,cAAc;YACd,aAAa;YACb,WAAW;YACX,gBAAgB;YAChB,iBAAiB;YACjB,KAAK;YACL,MAAM;YACN,MAAM;YACN,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,YAAY;SACZ,CAAC,CAAC;QACJ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,kBAAkB,CAAC,CAAC,SAAiB,EAAE,EAAE;YAC9E,OAAO,SAAS,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC,UAAoB,EAAE,EAAE;YACrF,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,IAAI,KAAK,MAAM;oBAAE,OAAO,0BAA0B,CAAC;gBACvD,IAAI,IAAI,KAAK,KAAK;oBAAE,OAAO,yBAAyB,CAAC;gBACrD,OAAO,IAAI,CAAC;YACb,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,iBAAiB,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,aAAa,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC3E,MAAM,UAAU,GAAG,cAAc,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,CAAC,EAAE,sBAAsB;YACzB,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,uEAAuE;YACvE,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAElD,8BAA8B;YAC9B,MAAM,SAAS,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,MAAM,UAAU,GAAG,iCAAiC,CAAC;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,iDAAiD;YACjD,MAAM,cAAc,GAAG,MAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACzF,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElC,0CAA0C;YAC1C,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,UAAU,GAAG,oCAAoC,CAAC;YACxD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,oEAAoE;YACpE,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,kCAAkC;YAClC,oCAAoC;YACpC,MAAM,UAAU,GAAG,kDAAkD,CAAC;YACtE,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,yEAAyE;YACzE,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE/C,6CAA6C;YAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE5C,8DAA8D;YAC9D,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,MAAM,UAAU,GAAG,8CAA8C,CAAC;YAClE,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,kDAAkD;YAClD,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACtD,MAAM,UAAU,GAAG,4BAA4B,CAAC;YAChD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,qBAAqB;YACrB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,2CAA2C;YAC3C,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YAClE,MAAM,UAAU,GAAG,kCAAkC,CAAC;YACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACtE,MAAM,UAAU,GAAG,uCAAuC,CAAC;YAC3D,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,uBAAuB;YACvB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,4CAA4C;YAC5C,MAAM,WAAW,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YACzE,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,WAAY,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,CAAC,WAAY,CAAC,eAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QACtE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAEvF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,MAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAO,CAAC,aAAc,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,MAAO,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAEvF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YAE5C,qFAAqF;YACrF,MAAM,OAAO,GAAG,MAAO,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC3D,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAEvF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAO,CAAC,YAAa,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAExD,4EAA4E;YAC5E,MAAM,WAAW,GAAG,MAAO,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACzD,MAAM,UAAU,GAAG,8CAA8C,CAAC;YAClE,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CACzD,EAAE,EACF,UAAU,EACV,EAAE,EACF,iBAAiB,CACjB,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,0CAA0C;YAC1C,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC,UAAoB,EAAE,EAAE;gBACrF,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC5B,IAAI,IAAI,KAAK,KAAK;wBACjB,OAAO,4FAA4F,CAAC;oBACrG,OAAO,IAAI,CAAC;gBACb,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,kCAAkC,CAAC;YACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAEtF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAO,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE/C,8DAA8D;YAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,gCAAgC;YAChC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC;gBACtD,MAAM;gBACN,YAAY;gBACZ,aAAa;gBACb,YAAY;gBACZ,YAAY;gBACZ,iBAAiB;gBACjB,iBAAiB;gBACjB,SAAS,EAAE,cAAc;gBACzB,UAAU,CAAC,cAAc;aACzB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,iDAAiD;YACjD,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE3C,MAAM,SAAS,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YACrE,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE/C,MAAM,UAAU,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;YAC3E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEhD,mDAAmD;YACnD,MAAM,SAAS,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAC/D,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YACjE,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACrD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC;gBACtD,iBAAiB,EAAE,gBAAgB;gBACnC,cAAc,EAAE,eAAe;gBAC/B,YAAY,EAAE,cAAc;gBAC5B,cAAc,EAAE,WAAW;gBAC3B,iBAAiB,EAAE,aAAa;gBAChC,mBAAmB,EAAE,eAAe;gBACpC,WAAW,EAAE,4BAA4B;gBACzC,cAAc,EAAE,8BAA8B;gBAC9C,UAAU,EAAE,iCAAiC;gBAC7C,aAAa,CAAC,+BAA+B;aAC7C,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,gBAAgB;YAChB,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxF,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CACpF,OAAO,CACP,CAAC;YAEF,oBAAoB;YACpB,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClF,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjF,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC7C,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,+BAA+B;YAC/B,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAE1E,cAAc;YACd,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAE/B,yBAAyB;YACzB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAEvF,wBAAwB;YACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,MAAM,YAAY,GAA4B;gBAC7C,gBAAgB,EAAE,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBACxE,uBAAuB,EAAE,KAAK;gBAC9B,6BAA6B,EAAE,KAAK;aACpC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,YAAY,CAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,gCAAgC,CAAC;YACpD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE3F,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC9E,MAAM,UAAU,GAAG,oCAAoC,CAAC;YACxD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,mDAAmD;YACnD,qCAAqC;YACrC,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;YACnF,MAAM,YAAY,GAA4B;gBAC7C,gBAAgB,EAAE,CAAC,MAAM,CAAC;gBAC1B,uBAAuB,EAAE,KAAK;gBAC9B,6BAA6B,EAAE,KAAK;aACpC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,YAAY,CAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,oCAAoC,CAAC;YACxD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,wCAAwC;YACxC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE3F,uEAAuE;YACvE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACrF,MAAM,UAAU,GAAG,2BAA2B,CAAC;YAC/C,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;YAC1F,MAAM,YAAY,GAA4B;gBAC7C,gBAAgB,EAAE,CAAC,MAAM,CAAC;gBAC1B,uBAAuB,EAAE,KAAK;gBAC9B,6BAA6B,EAAE,KAAK;aACpC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,YAAY,CAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,2BAA2B,CAAC;YAC/C,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE3F,wEAAwE;YACxE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACxE,MAAM,YAAY,GAA4B;gBAC7C,gBAAgB,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;gBAClE,uBAAuB,EAAE,KAAK;gBAC9B,6BAA6B,EAAE,KAAK;aACpC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,YAAY,CAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE3F,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACpF,MAAM,YAAY,GAA4B;gBAC7C,gBAAgB,EAAE,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC7E,uBAAuB,EAAE,KAAK;gBAC9B,6BAA6B,EAAE,KAAK;aACpC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,YAAY,CAAC,CAAC;YAEvF,6BAA6B;YAC7B,MAAM,WAAW,GAAG,6BAA6B,CAAC;YAClD,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CACtC,UAAU,EACV,WAAW,EACX,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,OAAO,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YACvF,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE5D,0BAA0B;YAC1B,MAAM,WAAW,GAAG,iCAAiC,CAAC;YACtD,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CACtC,UAAU,EACV,WAAW,EACX,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,OAAO,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YACvF,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC/D,MAAM,UAAU,GAAG;;;;;;;;OAQf,CAAC;YACL,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,MAAM,UAAU,GAAG;;;;;;;OAOf,CAAC;YACL,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,yCAAyC;YACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,0EAA0E;YAC1E,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,UAAU,GAAG;;;;;;;;OAQf,CAAC;YACL,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,qDAAqD;YACrD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC3E,MAAM,YAAY,GAA4B;gBAC7C,gBAAgB,EAAE,EAAE;gBACpB,uBAAuB,EAAE,IAAI;gBAC7B,6BAA6B,EAAE,IAAI;aACnC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,YAAY,CAAC,CAAC;YAEvF,YAAY;YACZ,MAAM,QAAQ,GAAG,+BAA+B,CAAC;YACjD,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CACjC,UAAU,EACV,QAAQ,EACR,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YACF,MAAM,QAAQ,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YACnF,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAE/B,aAAa;YACb,MAAM,SAAS,GAAG,sBAAsB,CAAC;YACzC,MAAM,OAAO,GAAG,EAAE,CAAC,gBAAgB,CAClC,UAAU,EACV,SAAS,EACT,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YACF,MAAM,SAAS,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YACrF,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,MAAM,UAAU,GAAG,6BAA6B,CAAC;YACjD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,UAAU,GAAG,iCAAiC,CAAC;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACrE,MAAM,UAAU,GAAG,0BAA0B,CAAC;YAC9C,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,MAAM,UAAU,GAAG,kCAAkC,CAAC;YACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YACjE,MAAM,UAAU,GAAG,0BAA0B,CAAC;YAC9C,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,MAAM,UAAU,GAAG,yCAAyC,CAAC;YAC7D,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACtE,MAAM,UAAU,GAAG,2BAA2B,CAAC;YAC/C,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACzD,MAAM,UAAU,GAAG,0BAA0B,CAAC;YAC9C,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACxE,MAAM,UAAU,GAAG,6BAA6B,CAAC;YACjD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACxE,MAAM,UAAU,GAAG,6BAA6B,CAAC;YACjD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,MAAM,UAAU,GAAG,qBAAqB,CAAC;YACzC,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC9E,MAAM,UAAU,GAAG,2CAA2C,CAAC;YAC/D,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,wCAAwC;YACxC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC3E,MAAM,UAAU,GAAG,uCAAuC,CAAC;YAC3D,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,uBAAuB;YACvB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACzE,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,UAAU,GAAG,4BAA4B,CAAC;YAChD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;YACnF,gDAAgD;YAChD,MAAM,YAAY,GAA4B;gBAC7C,gBAAgB,EAAE,CAAC,IAAI,CAAC;gBACxB,uBAAuB,EAAE,KAAK;gBAC9B,6BAA6B,EAAE,KAAK;aACpC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,YAAY,CAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,2BAA2B,CAAC;YAC/C,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE3F,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACjD,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YAClD,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,kEAAkE;YAClE,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACxD,MAAM,UAAU,GAAG,kDAAkD,CAAC;YACtE,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,iCAAiC;YACjC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,MAAM,UAAU,GAAG,oCAAoC,CAAC;YACxD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,gCAAgC;YAChC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,wDAAwD;YACxD,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC3E,wBAAwB;YACxB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAE3D,MAAM,mBAAmB,GAAsB;gBAC9C,kBAAkB,EAAE,KAAK;gBACzB,kBAAkB,EAAE,KAAK;gBACzB,uBAAuB,EAAE,KAAK;gBAC9B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;aAClF,CAAC;YAEF,MAAM,UAAU,GAAG,kCAAkC,CAAC;YACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,EAAE,EACF,mBAAmB,CACnB,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,oCAAoC;YACpC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,+DAA+D;YAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC9C,IAAI;iBACF,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjC,eAAe,CAAC,CAAC,kDAAkD,EAAE,MAAM,CAAC,CAAC,CAAC;YAEhF,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kDAAkD,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC3D,IAAI;iBACF,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjC,eAAe,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAE5E,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAE7F,MAAM,UAAU,GAAG,iCAAiC,CAAC;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAChD,IAAI;iBACF,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjC,eAAe,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;YAE7D,MAAM,UAAU,GAAG,kCAAkC,CAAC;YACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YAEzF,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAEtE,2DAA2D;YAC3D,MAAM,CAAC,SAAU,CAAC,QAAQ,GAAG,YAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,IAAI;iBACF,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjC,eAAe,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAE1E,MAAM,UAAU,GAAG,iCAAiC,CAAC;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAE/D,qCAAqC;YACrC,MAAM,CAAC,SAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAEzF,MAAM,UAAU,GAAG,oCAAoC,CAAC;YACxD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE/C,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;QAC5D,UAAU,CAAC,GAAG,EAAE;YACf,IAAI;iBACF,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC;iBACjC,eAAe,CAAC;gBAChB,YAAY;gBACZ,eAAe;gBACf,cAAc;gBACd,kBAAkB;gBAClB,kBAAkB;gBAClB,cAAc;gBACd,cAAc;gBACd,sBAAsB;gBACtB,gBAAgB;gBAChB,qBAAqB;gBACrB,kBAAkB;gBAClB,mBAAmB;gBACnB,iBAAiB;gBACjB,eAAe;gBACf,iBAAiB;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC/C,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC7E,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YAClE,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CACvF,OAAO,CACP,CAAC;YACF,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CACtF,OAAO,CACP,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACtD,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,6DAA6D;YAC7D,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC7D,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,IAAI;iBACF,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC;iBACpC,eAAe,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC;YAEzE,MAAM,UAAU,GAAG,yCAAyC,CAAC;YAC7D,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;YAE7F,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC3E,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAEvF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5D,MAAM,UAAU,GAAG,4CAA4C,CAAC;YAChE,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CACzD,EAAE,EACF,UAAU,EACV,EAAE,EACF,eAAe,CACf,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAO,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,MAAM,YAAY,GAAG,yDAAyD,CAAC;YAC/E,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE5D,MAAM,UAAU,GAAG,sCAAsC,CAAC;YAC1D,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAE1F,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,4CAA4C;YAC5C,MAAM,CAAC,MAAO,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YAC1E,MAAM,UAAU,GAAG,qBAAqB,CAAC;YACzC,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,mCAAmC;YACnC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;YAC9F,MAAM,UAAU,GAAG,8BAA8B,CAAC;YAClD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACpE,MAAM,YAAY,GAA4B;gBAC7C,gBAAgB,EAAE,EAAE;gBACpB,uBAAuB,EAAE,KAAK;gBAC9B,6BAA6B,EAAE,KAAK;aACpC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,YAAY,CAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,uCAAuC,CAAC;YAC3D,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,4EAA4E;YAC5E,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE3F,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACtE,MAAM,YAAY,GAA4B;gBAC7C,gBAAgB,EAAE,EAAE;gBACpB,uBAAuB,EAAE,KAAK;gBAC9B,6BAA6B,EAAE,KAAK;aACpC,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,EAAE,YAAY,CAAC,CAAC;YAEvF,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,sEAAsE;YACtE,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,aAAa,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAE3F,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACpF,MAAM,UAAU,GAAG,4BAA4B,CAAC;YAChD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,uCAAuC;YACvC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACzD,MAAM,UAAU,GAAG,iCAAiC,CAAC;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,uEAAuE;YACvE,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YACjE,MAAM,UAAU,GAAG,iCAAiC,CAAC;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAU,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;gBAC1C,KAAK,EAAE,EAAE,EAAE,gBAAgB;gBAC3B,MAAM,EAAE,CAAC,CAAC,iBAAiB;aAC3B,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC1D,MAAM,UAAU,GAAG,uCAAuC,CAAC;YAC3D,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YACxE,MAAM,CAAC,UAAW,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;gBAC3C,KAAK,EAAE,EAAE,EAAE,iCAAiC;gBAC5C,MAAM,EAAE,CAAC,CAAC,kBAAkB;aAC5B,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YACjE,MAAM,UAAU,GAAG,oCAAoC,CAAC;YACxD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,uCAAuC;YACvC,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YACxE,MAAM,CAAC,UAAW,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;gBAC3C,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,CAAC,uBAAuB;aACjC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tailwind-typescript-plugin",
3
- "version": "1.4.0-beta.11",
3
+ "version": "1.4.0-beta.12",
4
4
  "description": "TypeScript Language Service plugin that validates Tailwind CSS class names in JSX/TSX files. Catches typos and invalid classes in real-time with support for tailwind-variants and class-variance-authority.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",