air-dml 1.2.3 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  **AI-Ready Data Modeling Language**
4
4
 
5
+ *The Open Standard for AI-Ready Data Modeling*
6
+
5
7
  AIR-DML is an extended DBML (Database Markup Language) parser designed for AI-driven development. It adds powerful features for modern data modeling while maintaining full backward compatibility with standard DBML.
6
8
 
7
9
  [![npm version](https://badge.fury.io/js/air-dml.svg)](https://www.npmjs.com/package/air-dml)
@@ -15,6 +17,7 @@ AIR-DML is an extended DBML (Database Markup Language) parser designed for AI-dr
15
17
  🎨 **Visual Design**: Coordinate and color information for diagram rendering
16
18
  🔄 **Polyglot Persistence**: Different database types per area
17
19
  📦 **Extends DBML**: Fully compatible with standard DBML, powered by `@dbml/core`
20
+ 💬 **Comment Preservation**: Leading comments are preserved and associated with elements
18
21
 
19
22
  ## Installation
20
23
 
@@ -33,6 +36,7 @@ Project "My Project" {
33
36
  database_type: 'PostgreSQL'
34
37
  }
35
38
 
39
+ // ユーザー管理
36
40
  Table users [alias: "ユーザー", pos_x: 100, pos_y: 100, color: "#1976D2"] {
37
41
  id serial [pk, alias: "ユーザーID"]
38
42
  username varchar(100) [not null, unique, alias: "ユーザー名"]
@@ -40,20 +44,34 @@ Table users [alias: "ユーザー", pos_x: 100, pos_y: 100, color: "#1976D2"] {
40
44
  created_at timestamp [not null, alias: "作成日時"]
41
45
  }
42
46
 
47
+ // プロフィール情報
48
+ Table profiles [alias: "プロフィール", pos_x: 500, pos_y: 100] {
49
+ id serial [pk, alias: "プロフィールID"]
50
+ user_id integer [fk, not null, unique, alias: "ユーザーID"]
51
+ full_name varchar(200) [alias: "氏名"]
52
+ bio text [alias: "自己紹介"]
53
+ }
54
+
55
+ Ref: profiles.user_id - users.id
56
+
43
57
  Area "User Management" [
44
58
  pos_x: 50,
45
59
  pos_y: 50,
46
60
  width: 600,
47
61
  height: 300,
48
- color: "#1976D2",
49
- database_type: "PostgreSQL"
62
+ color: "#1976D2"
50
63
  ] {
51
64
  users
65
+ profiles
66
+
67
+ database_type: "PostgreSQL"
52
68
 
53
69
  CommonColumns: [
54
70
  created_at timestamp [not null, alias: "作成日時"]
55
71
  updated_at timestamp [not null, alias: "更新日時"]
56
72
  ]
73
+
74
+ Note: "ユーザー管理領域"
57
75
  }
58
76
  `;
59
77
 
@@ -65,93 +83,93 @@ const output = exportToAirDML(diagram);
65
83
  console.log(output);
66
84
  ```
67
85
 
68
- ## AIR-DML Extensions
69
-
70
- AIR-DML extends standard DBML with the following features:
86
+ ## AIR-DML Syntax
71
87
 
72
- ### 1. **Logical Names (Alias)**
73
-
74
- Add human-readable names in any language:
88
+ ### Table Definition
75
89
 
76
90
  ```dbml
77
- Table users [alias: "ユーザー"] {
78
- id serial [pk, alias: "ユーザーID"]
79
- name varchar(100) [alias: "名前"]
91
+ Table table_name [alias: "論理名", pos_x: 100, pos_y: 200, color: "#1976D2"] {
92
+ column_name data_type [constraints, alias: "カラム論理名"]
93
+
94
+ Note: "テーブルの説明"
80
95
  }
81
96
  ```
82
97
 
83
- ### 2. **Visual Coordinates**
98
+ ### Column Constraints
84
99
 
85
- Position tables on a canvas:
100
+ | Constraint | Description | Example |
101
+ |------------|-------------|---------|
102
+ | `pk` | Primary Key | `id serial [pk]` |
103
+ | `fk` | Foreign Key (use with Ref) | `user_id integer [fk]` |
104
+ | `unique` | Unique constraint | `email varchar [unique]` |
105
+ | `not null` | NOT NULL constraint | `name varchar [not null]` |
106
+ | `increment` | Auto increment | `id integer [pk, increment]` |
107
+ | `default: value` | Default value | `status text [default: 'active']` |
108
+ | `alias: "name"` | Logical name | `[alias: "ユーザーID"]` |
109
+ | `note: "desc"` | Column description | `[note: "説明"]` |
110
+
111
+ ### Relationships
86
112
 
87
113
  ```dbml
88
- Table users [pos_x: 100, pos_y: 200, color: "#1976D2"] {
89
- // ...
90
- }
114
+ Ref: table_a.column > table_b.column // Many-to-One (A B)
115
+ Ref: table_a.column < table_b.column // One-to-Many (A ← B)
116
+ Ref: table_a.column - table_b.column // One-to-One
117
+ Ref: table_a.column >< table_b.column // Many-to-Many
118
+ Ref: table_a.column ~ table_b.column // AI-inferred (undetermined)
91
119
  ```
92
120
 
93
- ### 3. **Area (Bounded Context)**
94
-
95
- Group related tables into logical domains:
121
+ ### Area (Bounded Context)
96
122
 
97
123
  ```dbml
98
- Area "User Management" [
124
+ Area "Area Name" [
99
125
  pos_x: 50,
100
126
  pos_y: 50,
101
127
  width: 600,
102
128
  height: 300,
103
- color: "#1976D2",
104
- database_type: "PostgreSQL",
105
- note: "User authentication and profile management"
129
+ color: "#1976D2"
106
130
  ] {
107
- users
108
- profiles
131
+ table1
132
+ table2
133
+
134
+ database_type: "PostgreSQL"
109
135
 
110
136
  CommonColumns: [
111
- created_at timestamp [not null]
112
- updated_at timestamp [not null]
137
+ created_at timestamp [not null, alias: "作成日時"]
138
+ updated_at timestamp [not null, alias: "更新日時"]
113
139
  ]
140
+
141
+ Note: "Area description"
114
142
  }
115
143
  ```
116
144
 
117
- ### 4. **CommonColumns**
145
+ ## AI Generation Guidelines
118
146
 
119
- Define shared columns for all tables in an area:
147
+ When using AI to generate AIR-DML, follow these rules:
120
148
 
121
- ```dbml
122
- Area "Content" {
123
- posts
124
- comments
149
+ **Required:**
150
+ - Use **double quotes** for alias values: `alias: "論理名"`
151
+ - Do NOT use single quotes: `alias: '論理名'` ❌
152
+ - Mark foreign key columns with `[fk]`
153
+ - Define relationships separately with `Ref:`
154
+ - Do NOT add inline comments after column definitions
125
155
 
126
- CommonColumns: [
127
- id serial [pk]
128
- created_at timestamp [not null]
129
- updated_at timestamp [not null]
130
- ]
131
- }
132
- ```
133
-
134
- ### 5. **Polyglot Persistence**
135
-
136
- Different database types per area:
156
+ **Example Output:**
137
157
 
138
158
  ```dbml
139
- Area "User Data" [database_type: "PostgreSQL"] {
140
- users
159
+ // 定期購入機能
160
+ Table subscriptions [alias: "定期購入"] {
161
+ id serial [pk, alias: "定期購入ID"]
162
+ user_id integer [fk, not null, alias: "ユーザーID"]
163
+ product_id integer [fk, not null, alias: "商品ID"]
164
+ status text [not null, default: 'active', alias: "ステータス"]
165
+ created_at timestamp [not null, alias: "作成日時"]
141
166
  }
142
167
 
143
- Area "Analytics" [database_type: "BigQuery"] {
144
- events
145
- }
168
+ Ref: subscriptions.user_id > users.id
169
+ Ref: subscriptions.product_id > products.id
146
170
  ```
147
171
 
148
- ### 6. **AI Relationship Type**
149
-
150
- Use `~` for undetermined relationships (AI inference):
151
-
152
- ```dbml
153
- Ref: users.id ~ profiles.user_id
154
- ```
172
+ For complete AI generation guidelines, see [SPECIFICATION.md Section 5](./SPECIFICATION.md#5-ai生成時のガイドライン).
155
173
 
156
174
  ## API Reference
157
175
 
@@ -193,29 +211,57 @@ interface Diagram {
193
211
  interface Table {
194
212
  id: string;
195
213
  name: string;
196
- logicalName?: string; // AIR-DML extension
214
+ logicalName?: string; // alias
197
215
  columns: Column[];
198
- color?: string; // AIR-DML extension
199
- pos?: Position; // AIR-DML extension
200
- areaIds?: string[]; // AIR-DML extension
216
+ color?: string;
217
+ pos?: Position;
218
+ areaIds?: string[];
219
+ note?: string;
220
+ leadingComments?: string[]; // v1.2.0+
221
+ }
222
+
223
+ interface Column {
224
+ name: string;
225
+ logicalName?: string; // alias
226
+ type: DataType;
227
+ typeParams?: string;
228
+ pk: boolean;
229
+ fk: boolean;
230
+ unique: boolean;
231
+ notNull: boolean;
232
+ increment: boolean;
233
+ default?: string;
201
234
  note?: string;
202
235
  }
203
236
 
237
+ interface Reference {
238
+ id: string;
239
+ fromTable: string;
240
+ fromColumn: string;
241
+ toTable: string;
242
+ toColumn: string;
243
+ type: RelationshipType;
244
+ swapEdge?: boolean;
245
+ leadingComments?: string[]; // v1.2.0+
246
+ }
247
+
204
248
  interface Area {
205
249
  id: string;
206
250
  name: string;
251
+ tables: string[];
207
252
  color?: string;
208
253
  pos?: Position;
209
254
  width?: number;
210
255
  height?: number;
211
- databaseType?: string; // AIR-DML extension
212
- commonColumns?: Column[]; // AIR-DML extension
256
+ labelHorizontal?: 'left' | 'center' | 'right';
257
+ labelVertical?: 'top' | 'center' | 'bottom';
258
+ databaseType?: string;
259
+ commonColumns?: Column[];
213
260
  note?: string;
261
+ leadingComments?: string[]; // v1.2.0+
214
262
  }
215
263
  ```
216
264
 
217
- See full type definitions in [src/types/index.ts](./src/types/index.ts).
218
-
219
265
  ## Comparison: DBML vs AIR-DML
220
266
 
221
267
  | Feature | DBML | AIR-DML |
@@ -226,25 +272,34 @@ See full type definitions in [src/types/index.ts](./src/types/index.ts).
226
272
  | **Visual info** | ❌ | ✅ Coordinates, colors, sizes |
227
273
  | **Multi-DB** | Project-level | Area-level (polyglot persistence) |
228
274
  | **AI optimization** | ❌ | ✅ LLM-friendly design |
275
+ | **Comment preservation** | ❌ | ✅ Leading comments (v1.2.0+) |
229
276
 
230
- ## Backward Compatibility
277
+ ## Changelog
231
278
 
232
- AIR-DML is fully compatible with standard DBML:
233
- - All standard DBML syntax works in AIR-DML
234
- - AIR-DML extensions are ignored by standard DBML parsers
235
- - Powered by `@dbml/core` for core DBML parsing
279
+ ### v1.2.3 (2025-01)
280
+ - Bug fixes for Area parsing with Japanese names
281
+ - Improved comment preservation
282
+ - Added AI generation guidelines to specification
236
283
 
237
- ## Use Cases
284
+ ### v1.2.0 (2025-01)
285
+ - Added leading comment preservation for Tables, References, and Areas
286
+ - Added `leadingComments` field to type definitions
287
+ - Export comments back to AIR-DML format
238
288
 
239
- - **AI-Driven Development**: Generate database schemas from natural language
240
- - **Domain-Driven Design**: Model bounded contexts with Areas
241
- - **ER Diagram Tools**: Build visual database designers
242
- - **Documentation**: Human-readable schema with multilingual support
243
- - **Polyglot Persistence**: Manage multiple database types in one schema
289
+ ### v1.1.0 (2025-01)
290
+ - Added `labelHorizontal` and `labelVertical` attributes for Areas
291
+ - Added `swapEdge` attribute for References
292
+ - Improved Area attribute parsing
293
+
294
+ ### v1.0.0 (2025-01)
295
+ - Initial release
296
+ - Core AIR-DML parsing and export
297
+ - Support for alias, pos_x, pos_y, color attributes
298
+ - Area with CommonColumns and database_type
244
299
 
245
300
  ## Specification
246
301
 
247
- For the complete AIR-DML specification, see [AIR-DML Specification](https://github.com/hiroaki-handa/air-dml/blob/main/SPECIFICATION.md).
302
+ For the complete AIR-DML specification, see [SPECIFICATION.md](./SPECIFICATION.md).
248
303
 
249
304
  ## License
250
305
 
@@ -255,16 +310,21 @@ AIR-DML extends [DBML](https://github.com/holistics/dbml) (also Apache-2.0).
255
310
  ## Credits
256
311
 
257
312
  - **Created by**: Data-mination Partners
258
- - **Technical collaboration**: Claude Sonnet 4.5 (Anthropic)
313
+ - **Technical collaboration**: Claude Opus 4.5 (Anthropic)
259
314
  - **Based on**: [@dbml/core](https://www.npmjs.com/package/@dbml/core) by Holistics
260
315
 
261
316
  ## Links
262
317
 
263
318
  - [GitHub Repository](https://github.com/hiroaki-handa/air-dml)
264
319
  - [npm Package](https://www.npmjs.com/package/air-dml)
265
- - [Issue Tracker](https://github.com/hiroaki-handa/air-dml/issues)
266
- - [Mode-ai](https://github.com/data-mination/mode-ai) - Reference implementation
320
+ - [AIR-DML Specification](./SPECIFICATION.md)
321
+ - [Mode-ai](https://mode-ai.net) - Reference implementation
267
322
 
268
323
  ---
269
324
 
270
- **AIR-DML™** (AI-Ready Data Modeling Language) is a trademark of Data-mination Partners.
325
+ ## Trademarks
326
+
327
+ **AIR-DML™** (AI-Ready Data Modeling Language) is a trademark of Datamination Partners Co., Ltd.
328
+ Trademark Application No. 2026-000274 (Japan)
329
+
330
+ *AIR-DML™ — The Open Standard for AI-Ready Data Modeling.*
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,OAAO,EAOR,MAAM,UAAU,CAAC;AA0BlB,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAkL3E;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAoLvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,OAAO,EAOR,MAAM,UAAU,CAAC;AA0BlB,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAuL3E;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAoLvD"}
@@ -77,6 +77,8 @@ export function parseAirDML(airDmlText, diagramId) {
77
77
  leadingComments: refComments,
78
78
  };
79
79
  }));
80
+ const aiInferredRefs = parseAiInferredRefs(airDmlText, commentMap);
81
+ references.push(...aiInferredRefs);
80
82
  const areaAttributes = parseAreaAttributes(airDmlText);
81
83
  const areas = database.schemas.flatMap((schema) => (schema.tableGroups || []).map((group) => {
82
84
  const areaAttrs = areaAttributes.get(group.name) || {};
@@ -327,6 +329,7 @@ function removeExtendedAttributes(airDmlText) {
327
329
  return `Ref: ${refDef}`;
328
330
  }
329
331
  });
332
+ cleaned = cleaned.replace(/Ref\s*:\s*[^\n]*~[^\n]*/g, '');
330
333
  cleaned = cleaned.replace(/Area\s+(["`]?)(.+?)\1\s*\[([^\]]+)\]/g, (_match, quote, areaName) => {
331
334
  return `TableGroup ${quote}${areaName}${quote}`;
332
335
  });
@@ -459,6 +462,43 @@ function parseReferenceAttributes(airDmlText) {
459
462
  }
460
463
  return result;
461
464
  }
465
+ function parseAiInferredRefs(airDmlText, commentMap) {
466
+ const refs = [];
467
+ const refRegex = /Ref\s*:\s*(["`]?)(\w+)\1\.(["`]?)(\w+)\3\s*~\s*(["`]?)(\w+)\5\.(["`]?)(\w+)\7(?:\s*\[([^\]]+)\])?/g;
468
+ let match;
469
+ while ((match = refRegex.exec(airDmlText)) !== null) {
470
+ const fromTable = match[2];
471
+ const fromColumn = match[4];
472
+ const toTable = match[6];
473
+ const toColumn = match[8];
474
+ const attrsStr = match[9] || '';
475
+ const attrs = parseAttributesString(attrsStr);
476
+ const refId = `ref-${fromTable}-${fromColumn}-${toTable}-${toColumn}`;
477
+ let refComments;
478
+ for (const [key, comments] of commentMap.entries()) {
479
+ if (key.startsWith('ref:')) {
480
+ const refDef = key.substring(4);
481
+ if (refDef.includes(fromTable) && refDef.includes(fromColumn) &&
482
+ refDef.includes(toTable) && refDef.includes(toColumn) &&
483
+ refDef.includes('~')) {
484
+ refComments = comments;
485
+ break;
486
+ }
487
+ }
488
+ }
489
+ refs.push({
490
+ id: refId,
491
+ fromTable: `table-${fromTable}`,
492
+ fromColumn: fromColumn,
493
+ toTable: `table-${toTable}`,
494
+ toColumn: toColumn,
495
+ type: 'ai-inferred',
496
+ swapEdge: attrs.swap_edge,
497
+ leadingComments: refComments,
498
+ });
499
+ }
500
+ return refs;
501
+ }
462
502
  function parseComments(airDmlText) {
463
503
  const commentMap = new Map();
464
504
  const lines = airDmlText.split('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAmCpC,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,SAAkB;IAEhE,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAG7C,MAAM,eAAe,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAGjE,MAAM,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAGzD,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAGnD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,IAAI,kBAAkB,CAAC;IACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,YAAY,CAAC;IAG3D,MAAM,MAAM,GAAY,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAE7D,MAAM,OAAO,GAAa,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACvD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAE/E,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,QAAQ,CAAC,KAAK;gBAC3B,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjD,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnF,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK;gBACrB,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,KAAK;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;gBAC7B,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;gBAChC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK;gBAC/B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;gBACnC,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,SAAS,SAAS,CAAC,IAAI,EAAE;YAC7B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,WAAW,EAAE,UAAU,CAAC,KAAK;YAC7B,OAAO;YACP,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,GAAG,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;gBACnE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE;gBAC9C,CAAC,CAAC,SAAS;YACb,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC,IAAI,EAAE,CAAC;SAC3D,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAGF,MAAM,UAAU,GAAgB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACjJ,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAGvD,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QAC3D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CACjD,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAGD,IAAI,WAAiC,CAAC;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAEhC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrE,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/E,WAAW,GAAG,QAAQ,CAAC;oBACvB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,WAAW;YACtB,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1C,OAAO,EAAE,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;YAC9C,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACxC,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;YACnC,QAAQ,EAAE,QAAQ,CAAC,SAAS;YAC5B,eAAe,EAAE,WAAW;SAC7B,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAGF,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,KAAK,GAAW,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxD,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QAGpC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,CAAC,MAAgB,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAChD,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBACrD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9C,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,aAAa,GAAG,sBAAsB,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAGrE,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAGnD,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAGnE,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE,CAC5D,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CACxD,CAAC;QAGF,MAAM,QAAQ,GAAG,UAAU;aACxB,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACrD,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAa,CAAC;QAE/B,OAAO;YACL,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,GAAG,EAAE,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS;gBACjE,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE;gBAC5C,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,eAAe,EAAE,SAAS,CAAC,gBAA2D;YACtF,aAAa,EAAE,SAAS,CAAC,cAAyD;YAClF,YAAY;YACZ,IAAI;YACJ,aAAa;YACb,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,SAAS,IAAI,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE;QACxC,IAAI,EAAE,OAAO;QACb,OAAO;QACP,QAAQ,EAAE,YAAY;QACtB,MAAM;QACN,UAAU;QACV,KAAK;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;IAGhB,MAAM,cAAc,GAAG,CAAC,QAAmB,EAAU,EAAE;QACrD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAClD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IAGF,MAAM,IAAI,MAAM,OAAO,CAAC,IAAI,IAAI,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IAClE,MAAM,IAAI,WAAW,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC;IACzD,MAAM,IAAI,qBAAqB,OAAO,CAAC,QAAQ,IAAI,YAAY,KAAK,CAAC;IACrE,MAAM,IAAI,oCAAoC,CAAC;IAC/C,MAAM,IAAI,OAAO,CAAC;IAGlB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAE/B,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,SAAS,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,MAAM,CAAC;QAGhE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,EAAE;gBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,EAAE;gBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,MAAM;gBAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,OAAO;gBAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,SAAS;gBAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,OAAO;gBAAE,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,WAAW,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,CAAC,UAAU,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU;gBAC/B,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG;gBACxC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAEhB,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnF,MAAM,IAAI,KAAK,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,aAAa,IAAI,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,cAAc,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,OAAO,CAAC;IACpB,CAAC,CAAC,CAAC;IAGH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAEjC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvE,MAAM,IAAI,QAAQ,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,IAAI,CAAC;QACxL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,IAAI,CAAC;IAGf,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAE7B,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAE/C,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9E,MAAM,UAAU,GAAG,YAAY;iBAC5B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC1C,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAa,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvC,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,SAAS,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,SAAS,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC5D,CAAC;gBAGD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,MAAM,IAAI,QAAQ,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,MAAM,CAAC;gBAE9D,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1B,MAAM,IAAI,KAAK,IAAI,IAAI,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBAGH,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,IAAI,uBAAuB,IAAI,CAAC,YAAY,KAAK,CAAC;gBAC1D,CAAC;gBAGD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxD,MAAM,IAAI,wBAAwB,CAAC;oBACnC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBACpC,MAAM,WAAW,GAAa,EAAE,CAAC;wBACjC,IAAI,MAAM,CAAC,EAAE;4BAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtC,IAAI,MAAM,CAAC,EAAE;4BAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtC,IAAI,MAAM,CAAC,MAAM;4BAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC9C,IAAI,MAAM,CAAC,OAAO;4BAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACjD,IAAI,MAAM,CAAC,SAAS;4BAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACpD,IAAI,MAAM,CAAC,OAAO;4BAAE,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;wBAEnE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;4BACvB,WAAW,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;wBACnE,CAAC;wBAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU;4BAC/B,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG;4BACxC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;wBAEhB,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAEnF,MAAM,IAAI,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,aAAa,IAAI,CAAC;oBAChF,CAAC,CAAC,CAAC;oBACH,MAAM,IAAI,OAAO,CAAC;gBACpB,CAAC;gBAGD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;gBACpF,CAAC;gBAED,MAAM,IAAI,OAAO,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAQD,SAAS,wBAAwB,CAAC,UAAkB;IAClD,IAAI,OAAO,GAAG,UAAU,CAAC;IAGzB,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,wCAAwC,EACxC,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;QAElC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aACnC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACzD,OAAO,QAAQ,KAAK,aAAa,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEL,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC,CACF,CAAC;IAGF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,2DAA2D,EAC3D,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAEjD,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aACnC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAEjC,OAAO,CACL,KAAK,KAAK,IAAI;gBACd,KAAK,KAAK,QAAQ;gBAClB,KAAK,KAAK,UAAU;gBACpB,KAAK,KAAK,WAAW;gBACrB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC3B,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;gBACxB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CACxB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC,CACF,CAAC;IAGF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,kCAAkC,EAClC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aACnC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACxD,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEL,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,QAAQ,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,QAAQ,MAAM,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAOF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,uCAAuC,EACvC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAE1B,OAAO,cAAc,KAAK,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;IAClD,CAAC,CACF,CAAC;IAGF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,6BAA6B,EAC7B,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC1B,OAAO,cAAc,KAAK,GAAG,QAAQ,GAAG,KAAK,IAAI,CAAC;IACpD,CAAC,CACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,MAAM,UAAU,GAAG,wCAAwC,CAAC;IAE5D,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkB;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEjD,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC7E,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,yDAAyD,CAAC;QAC9E,IAAI,QAAQ,CAAC;QAEb,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEnD,MAAM,SAAS,GAAG,uCAAuC,CAAC;IAE1D,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAkB,EAAE,QAAgB;IAClE,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,mBAAmB,QAAQ,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,kBAAkB,GAAG,iCAAiC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEhE,IAAI,CAAC,kBAAkB;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvH,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAE9F,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5C,MAAM,MAAM,GAAW;YACrB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;YACrC,UAAU;YACV,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YACjC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YACjC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;YACzC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC;YAC9C,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;SAChD,CAAC;QAEF,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACrE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,UAAkB,EAAE,QAAgB;IACzD,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,mBAAmB,QAAQ,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,oBAAoB,CAAC;IACvC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE9C,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkB,EAAE,QAAgB;IACjE,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,mBAAmB,QAAQ,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,iBAAiB,GAAG,oCAAoC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE9D,OAAO,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAkB;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,MAAM,QAAQ,GAAG,sGAAsG,CAAC;IAExH,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD,SAAS,aAAa,CAAC,UAAkB;IACvC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,mBAAmB,GAAa,EAAE,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAG7B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,YAAY,EAAE,CAAC;YACjB,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QAGD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,UAAU,GAAkB,IAAI,CAAC;YAGrC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAChD,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,CAAC;YAGD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAClD,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,GAAG,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,CAAC;YAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBAEb,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClC,UAAU,GAAG,OAAO,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;gBACrD,mBAAmB,GAAG,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3D,IAAI,UAAU;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAClE,IAAI,SAAS;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAClE,IAAI,SAAS;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnE,IAAI,UAAU;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACrE,IAAI,WAAW;QAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3D,IAAI,UAAU;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC1E,IAAI,iBAAiB;QAAE,KAAK,CAAC,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAElE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAChF,IAAI,oBAAoB;QAAE,KAAK,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAE3E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC5E,IAAI,kBAAkB;QAAE,KAAK,CAAC,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAKrE,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAClF,IAAI,aAAa;QAAE,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IAEjE,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;IAE7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,OAAO,GAA6B;QACxC,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,WAAW;QACtB,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;KACf,CAAC;IAEF,OAAQ,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAc,IAAI,MAAM,CAAC;AACjE,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,aAAa,CAAC;IAC1C,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,aAAa,CAAC;IAC1C,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IACzC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC;IAChE,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,aAAa,CAAC;IAC1C,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA0B;IACvD,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,GAAG,CAAC;IACzC,IAAI,OAAO,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC;IAClC,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,GAAG,CAAC;IAC1C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,GAAuB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAmCpC,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,SAAkB;IAEhE,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAG7C,MAAM,eAAe,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAGjE,MAAM,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAGzD,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAGnD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,IAAI,kBAAkB,CAAC;IACpD,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,YAAY,CAAC;IAG3D,MAAM,MAAM,GAAY,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAE7D,MAAM,OAAO,GAAa,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACvD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAE/E,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,QAAQ,CAAC,KAAK;gBAC3B,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjD,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnF,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,KAAK;gBACrB,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,KAAK;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;gBAC7B,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;gBAChC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK;gBAC/B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;gBACnC,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,SAAS,SAAS,CAAC,IAAI,EAAE;YAC7B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,WAAW,EAAE,UAAU,CAAC,KAAK;YAC7B,OAAO;YACP,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,GAAG,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;gBACnE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE;gBAC9C,CAAC,CAAC,SAAS;YACb,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,SAAS,CAAC,IAAI,EAAE,CAAC;SAC3D,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAGF,MAAM,UAAU,GAAgB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACjJ,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAGvD,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QAC3D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CACjD,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAGD,IAAI,WAAiC,CAAC;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAEhC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrE,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtF,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/E,WAAW,GAAG,QAAQ,CAAC;oBACvB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,WAAW;YACtB,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1C,OAAO,EAAE,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;YAC9C,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACxC,IAAI,EAAE,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;YACnC,QAAQ,EAAE,QAAQ,CAAC,SAAS;YAC5B,eAAe,EAAE,WAAW;SAC7B,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAIF,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnE,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IAGnC,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,KAAK,GAAW,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CACxD,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QAGpC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,CAAC,MAAgB,CAAC,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;gBAChD,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBACrD,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9C,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,aAAa,GAAG,sBAAsB,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAGrE,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAGnD,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAGnE,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAa,EAAE,EAAE,CAC5D,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CACxD,CAAC;QAGF,MAAM,QAAQ,GAAG,UAAU;aACxB,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YACrD,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAa,CAAC;QAE/B,OAAO;YACL,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,GAAG,EAAE,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS;gBACjE,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE;gBAC5C,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,eAAe,EAAE,SAAS,CAAC,gBAA2D;YACtF,aAAa,EAAE,SAAS,CAAC,cAAyD;YAClF,YAAY;YACZ,IAAI;YACJ,aAAa;YACb,eAAe,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,SAAS,IAAI,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE;QACxC,IAAI,EAAE,OAAO;QACb,OAAO;QACP,QAAQ,EAAE,YAAY;QACtB,MAAM;QACN,UAAU;QACV,KAAK;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;IAGhB,MAAM,cAAc,GAAG,CAAC,QAAmB,EAAU,EAAE;QACrD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAClD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IAGF,MAAM,IAAI,MAAM,OAAO,CAAC,IAAI,IAAI,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IAClE,MAAM,IAAI,WAAW,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC;IACzD,MAAM,IAAI,qBAAqB,OAAO,CAAC,QAAQ,IAAI,YAAY,KAAK,CAAC;IACrE,MAAM,IAAI,oCAAoC,CAAC;IAC/C,MAAM,IAAI,OAAO,CAAC;IAGlB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAE/B,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,SAAS,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,MAAM,CAAC;QAGhE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,EAAE;gBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,EAAE;gBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,MAAM;gBAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,OAAO;gBAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,SAAS;gBAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,MAAM,CAAC,OAAO;gBAAE,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,WAAW,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,CAAC,UAAU,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU;gBAC/B,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG;gBACxC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YAEhB,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnF,MAAM,IAAI,KAAK,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,aAAa,IAAI,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,cAAc,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,OAAO,CAAC;IACpB,CAAC,CAAC,CAAC;IAGH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAEjC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvE,MAAM,IAAI,QAAQ,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,IAAI,CAAC;QACxL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,IAAI,CAAC;IAGf,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAE7B,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAE/C,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9E,MAAM,UAAU,GAAG,YAAY;iBAC5B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBAC1C,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAa,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvC,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,SAAS,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC3C,CAAC;gBACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,SAAS,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,SAAS,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC5D,CAAC;gBAGD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,MAAM,IAAI,QAAQ,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,MAAM,CAAC;gBAE9D,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC1B,MAAM,IAAI,KAAK,IAAI,IAAI,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBAGH,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,IAAI,uBAAuB,IAAI,CAAC,YAAY,KAAK,CAAC;gBAC1D,CAAC;gBAGD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxD,MAAM,IAAI,wBAAwB,CAAC;oBACnC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBACpC,MAAM,WAAW,GAAa,EAAE,CAAC;wBACjC,IAAI,MAAM,CAAC,EAAE;4BAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtC,IAAI,MAAM,CAAC,EAAE;4BAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACtC,IAAI,MAAM,CAAC,MAAM;4BAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC9C,IAAI,MAAM,CAAC,OAAO;4BAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACjD,IAAI,MAAM,CAAC,SAAS;4BAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACpD,IAAI,MAAM,CAAC,OAAO;4BAAE,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;wBAEnE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;4BACvB,WAAW,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;wBACnE,CAAC;wBAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU;4BAC/B,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,GAAG;4BACxC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;wBAEhB,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAEnF,MAAM,IAAI,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,aAAa,IAAI,CAAC;oBAChF,CAAC,CAAC,CAAC;oBACH,MAAM,IAAI,OAAO,CAAC;gBACpB,CAAC;gBAGD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;gBACpF,CAAC;gBAED,MAAM,IAAI,OAAO,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAQD,SAAS,wBAAwB,CAAC,UAAkB;IAClD,IAAI,OAAO,GAAG,UAAU,CAAC;IAGzB,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,wCAAwC,EACxC,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;QAElC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aACnC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACzD,OAAO,QAAQ,KAAK,aAAa,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEL,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC,CACF,CAAC;IAGF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,2DAA2D,EAC3D,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAEjD,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aACnC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAEjC,OAAO,CACL,KAAK,KAAK,IAAI;gBACd,KAAK,KAAK,QAAQ;gBAClB,KAAK,KAAK,UAAU;gBACpB,KAAK,KAAK,WAAW;gBACrB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;gBAC3B,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;gBACxB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CACxB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC,CACF,CAAC;IAGF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,kCAAkC,EAClC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QACxB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aACnC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACxD,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEL,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,QAAQ,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,QAAQ,MAAM,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAIF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,0BAA0B,EAC1B,EAAE,CACH,CAAC;IAOF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,uCAAuC,EACvC,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAE1B,OAAO,cAAc,KAAK,GAAG,QAAQ,GAAG,KAAK,EAAE,CAAC;IAClD,CAAC,CACF,CAAC;IAGF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,6BAA6B,EAC7B,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC1B,OAAO,cAAc,KAAK,GAAG,QAAQ,GAAG,KAAK,IAAI,CAAC;IACpD,CAAC,CACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,MAAM,UAAU,GAAG,wCAAwC,CAAC;IAE5D,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkB;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEjD,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC7E,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,yDAAyD,CAAC;QAC9E,IAAI,QAAQ,CAAC;QAEb,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEnD,MAAM,SAAS,GAAG,uCAAuC,CAAC;IAE1D,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAkB,EAAE,QAAgB;IAClE,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,mBAAmB,QAAQ,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,kBAAkB,GAAG,iCAAiC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEhE,IAAI,CAAC,kBAAkB;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvH,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAE9F,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5C,MAAM,MAAM,GAAW;YACrB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,qBAAqB,CAAC,QAAQ,CAAC;YACrC,UAAU;YACV,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YACjC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YACjC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;YACzC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC;YAC9C,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC;SAChD,CAAC;QAEF,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACrE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,UAAkB,EAAE,QAAgB;IACzD,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,mBAAmB,QAAQ,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,oBAAoB,CAAC;IACvC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE9C,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkB,EAAE,QAAgB;IACjE,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,mBAAmB,QAAQ,4CAA4C,EAAE,GAAG,CAAC,CAAC;IAChH,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,iBAAiB,GAAG,oCAAoC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE9D,OAAO,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAkB;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,MAAM,QAAQ,GAAG,sGAAsG,CAAC;IAExH,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAMD,SAAS,mBAAmB,CAAC,UAAkB,EAAE,UAAiC;IAChF,MAAM,IAAI,GAAgB,EAAE,CAAC;IAE7B,MAAM,QAAQ,GAAG,oGAAoG,CAAC;IAEtH,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG,OAAO,SAAS,IAAI,UAAU,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QAGtE,IAAI,WAAiC,CAAC;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACzD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,WAAW,GAAG,QAAQ,CAAC;oBACvB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACR,EAAE,EAAE,KAAK;YACT,SAAS,EAAE,SAAS,SAAS,EAAE;YAC/B,UAAU,EAAE,UAAU;YACtB,OAAO,EAAE,SAAS,OAAO,EAAE;YAC3B,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,KAAK,CAAC,SAAS;YACzB,eAAe,EAAE,WAAW;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,SAAS,aAAa,CAAC,UAAkB;IACvC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,mBAAmB,GAAa,EAAE,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAG7B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,YAAY,EAAE,CAAC;YACjB,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QAGD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,UAAU,GAAkB,IAAI,CAAC;YAGrC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAChD,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,GAAG,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,CAAC;YAGD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAClD,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,GAAG,QAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,CAAC;YAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBAEb,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClC,UAAU,GAAG,OAAO,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;gBACrD,mBAAmB,GAAG,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3D,IAAI,UAAU;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAClE,IAAI,SAAS;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAClE,IAAI,SAAS;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnE,IAAI,UAAU;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACrE,IAAI,WAAW;QAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3D,IAAI,UAAU;QAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC1E,IAAI,iBAAiB;QAAE,KAAK,CAAC,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAElE,MAAM,oBAAoB,GAAG,QAAQ,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAChF,IAAI,oBAAoB;QAAE,KAAK,CAAC,gBAAgB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAE3E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC5E,IAAI,kBAAkB;QAAE,KAAK,CAAC,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAKrE,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAClF,IAAI,aAAa;QAAE,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IAEjE,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC;IAE7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,OAAO,GAA6B;QACxC,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,WAAW;QACtB,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;KACf,CAAC;IAEF,OAAQ,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAc,IAAI,MAAM,CAAC;AACjE,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,aAAa,CAAC;IAC1C,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,aAAa,CAAC;IAC1C,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IACzC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC;IAChE,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,aAAa,CAAC;IAC1C,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,qBAAqB,CAAC,OAA0B;IACvD,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,GAAG,CAAC;IACzC,IAAI,OAAO,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC;IAClC,IAAI,OAAO,KAAK,aAAa;QAAE,OAAO,GAAG,CAAC;IAC1C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,GAAuB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "air-dml",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "AI-Ready Data Modeling Language - Extended DBML parser for AI-driven development",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",