data-structure-typed 1.47.4 → 1.47.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/benchmark/report.html +2 -2
  3. package/benchmark/report.json +12 -18
  4. package/dist/cjs/data-structures/hash/hash-map.d.ts +3 -3
  5. package/dist/cjs/data-structures/hash/hash-map.js +10 -4
  6. package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
  7. package/dist/cjs/data-structures/hash/hash-table.d.ts +9 -4
  8. package/dist/cjs/data-structures/hash/hash-table.js +50 -5
  9. package/dist/cjs/data-structures/hash/hash-table.js.map +1 -1
  10. package/dist/cjs/data-structures/heap/heap.d.ts +6 -1
  11. package/dist/cjs/data-structures/heap/heap.js +51 -9
  12. package/dist/cjs/data-structures/heap/heap.js.map +1 -1
  13. package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +56 -56
  14. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +117 -119
  15. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
  16. package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +36 -36
  17. package/dist/cjs/data-structures/linked-list/singly-linked-list.js +58 -60
  18. package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
  19. package/dist/cjs/data-structures/queue/deque.d.ts +49 -49
  20. package/dist/cjs/data-structures/queue/deque.js +79 -72
  21. package/dist/cjs/data-structures/queue/deque.js.map +1 -1
  22. package/dist/cjs/data-structures/queue/queue.d.ts +45 -0
  23. package/dist/cjs/data-structures/queue/queue.js +77 -0
  24. package/dist/cjs/data-structures/queue/queue.js.map +1 -1
  25. package/dist/cjs/data-structures/stack/stack.d.ts +18 -5
  26. package/dist/cjs/data-structures/stack/stack.js +56 -7
  27. package/dist/cjs/data-structures/stack/stack.js.map +1 -1
  28. package/dist/cjs/data-structures/trie/trie.d.ts +5 -0
  29. package/dist/cjs/data-structures/trie/trie.js +47 -0
  30. package/dist/cjs/data-structures/trie/trie.js.map +1 -1
  31. package/dist/mjs/data-structures/hash/hash-map.d.ts +3 -3
  32. package/dist/mjs/data-structures/hash/hash-map.js +10 -4
  33. package/dist/mjs/data-structures/hash/hash-table.d.ts +9 -4
  34. package/dist/mjs/data-structures/hash/hash-table.js +50 -5
  35. package/dist/mjs/data-structures/heap/heap.d.ts +6 -1
  36. package/dist/mjs/data-structures/heap/heap.js +51 -9
  37. package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +56 -56
  38. package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +117 -119
  39. package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +36 -36
  40. package/dist/mjs/data-structures/linked-list/singly-linked-list.js +58 -60
  41. package/dist/mjs/data-structures/queue/deque.d.ts +49 -49
  42. package/dist/mjs/data-structures/queue/deque.js +79 -72
  43. package/dist/mjs/data-structures/queue/queue.d.ts +45 -0
  44. package/dist/mjs/data-structures/queue/queue.js +77 -0
  45. package/dist/mjs/data-structures/stack/stack.d.ts +18 -5
  46. package/dist/mjs/data-structures/stack/stack.js +56 -7
  47. package/dist/mjs/data-structures/trie/trie.d.ts +5 -0
  48. package/dist/mjs/data-structures/trie/trie.js +47 -0
  49. package/dist/umd/data-structure-typed.js +545 -276
  50. package/dist/umd/data-structure-typed.min.js +2 -2
  51. package/dist/umd/data-structure-typed.min.js.map +1 -1
  52. package/package.json +1 -1
  53. package/src/data-structures/hash/hash-map.ts +13 -7
  54. package/src/data-structures/hash/hash-table.ts +59 -9
  55. package/src/data-structures/heap/heap.ts +60 -9
  56. package/src/data-structures/linked-list/doubly-linked-list.ts +129 -129
  57. package/src/data-structures/linked-list/singly-linked-list.ts +65 -65
  58. package/src/data-structures/queue/deque.ts +84 -77
  59. package/src/data-structures/queue/queue.ts +84 -0
  60. package/src/data-structures/stack/stack.ts +64 -8
  61. package/src/data-structures/trie/trie.ts +53 -0
  62. package/test/integration/conversion.test.ts +0 -0
  63. package/test/performance/data-structures/heap/heap.test.ts +13 -4
  64. package/test/unit/data-structures/hash/hash-table.test.ts +58 -2
  65. package/test/unit/data-structures/heap/min-heap.test.ts +48 -0
  66. package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +2 -2
  67. package/test/unit/data-structures/queue/queue.test.ts +37 -0
  68. package/test/unit/data-structures/stack/stack.test.ts +55 -5
  69. package/test/unit/data-structures/trie/trie.test.ts +33 -0
package/CHANGELOG.md CHANGED
@@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file.
8
8
  - [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
9
9
  - [`auto-changelog`](https://github.com/CookPete/auto-changelog)
10
10
 
11
- ## [v1.47.4](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
11
+ ## [v1.47.5](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
12
12
 
13
13
  ### Changes
14
14
 
@@ -42,8 +42,8 @@
42
42
  </head>
43
43
  <body>
44
44
  <div id="json-to-html"><div class="json-to-html-collapse clearfix 0">
45
- <div class='collapsible level0' ><span class='json-to-html-label'>rb-tree</span></div>
46
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>77.77</td><td>12.86</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>210.72</td><td>4.75</td><td>0.01</td></tr><tr><td>100,000 getNode</td><td>68.17</td><td>14.67</td><td>0.00</td></tr><tr><td>100,000 add && iterator</td><td>113.76</td><td>8.79</td><td>0.01</td></tr></table></div>
45
+ <div class='collapsible level0' ><span class='json-to-html-label'>heap</span></div>
46
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 add & pop</td><td>24.45</td><td>40.90</td><td>0.00</td></tr><tr><td>100,000 add & dfs</td><td>32.55</td><td>30.72</td><td>6.11e-4</td></tr><tr><td>10,000 fib add & pop</td><td>347.99</td><td>2.87</td><td>0.00</td></tr></table></div>
47
47
  </div>
48
48
 
49
49
  </div>
@@ -1,31 +1,25 @@
1
1
  {
2
- "rb-tree": {
2
+ "heap": {
3
3
  "benchmarks": [
4
4
  {
5
- "test name": "100,000 add",
6
- "time taken (ms)": "77.77",
7
- "executions per sec": "12.86",
5
+ "test name": "100,000 add & pop",
6
+ "time taken (ms)": "24.45",
7
+ "executions per sec": "40.90",
8
8
  "sample deviation": "0.00"
9
9
  },
10
10
  {
11
- "test name": "100,000 add & delete randomly",
12
- "time taken (ms)": "210.72",
13
- "executions per sec": "4.75",
14
- "sample deviation": "0.01"
11
+ "test name": "100,000 add & dfs",
12
+ "time taken (ms)": "32.55",
13
+ "executions per sec": "30.72",
14
+ "sample deviation": "6.11e-4"
15
15
  },
16
16
  {
17
- "test name": "100,000 getNode",
18
- "time taken (ms)": "68.17",
19
- "executions per sec": "14.67",
17
+ "test name": "10,000 fib add & pop",
18
+ "time taken (ms)": "347.99",
19
+ "executions per sec": "2.87",
20
20
  "sample deviation": "0.00"
21
- },
22
- {
23
- "test name": "100,000 add && iterator",
24
- "time taken (ms)": "113.76",
25
- "executions per sec": "8.79",
26
- "sample deviation": "0.01"
27
21
  }
28
22
  ],
29
- "testName": "rb-tree"
23
+ "testName": "heap"
30
24
  }
31
25
  }
@@ -143,7 +143,7 @@ export declare class HashMap<K = any, V = any> {
143
143
  * @returns a new HashMap object that contains the key-value pairs from the original HashMap that
144
144
  * satisfy the given predicate function.
145
145
  */
146
- filter(predicate: (element: [K, V], map: HashMap<K, V>) => boolean): HashMap<K, V>;
146
+ filter(predicate: (element: [K, V], index: number, map: HashMap<K, V>) => boolean): HashMap<K, V>;
147
147
  /**
148
148
  * The `map` function takes a callback function and returns a new HashMap with the values transformed
149
149
  * by the callback.
@@ -151,7 +151,7 @@ export declare class HashMap<K = any, V = any> {
151
151
  * `map`.
152
152
  * @returns a new HashMap object with the values mapped according to the provided callback function.
153
153
  */
154
- map<NV>(callback: (element: [K, V], map: HashMap<K, V>) => NV): HashMap<K, NV>;
154
+ map<NV>(callback: (element: [K, V], index: number, map: HashMap<K, V>) => NV): HashMap<K, NV>;
155
155
  /**
156
156
  * The `reduce` function iterates over the elements of a HashMap and applies a callback function to
157
157
  * each element, accumulating a single value.
@@ -164,7 +164,7 @@ export declare class HashMap<K = any, V = any> {
164
164
  * @returns The `reduce` function is returning the final value of the accumulator after iterating
165
165
  * over all the elements in the HashMap and applying the callback function to each element.
166
166
  */
167
- reduce<A>(callback: (accumulator: A, element: [K, V], map: HashMap<K, V>) => A, initialValue: A): A;
167
+ reduce<A>(callback: (accumulator: A, element: [K, V], index: number, map: HashMap<K, V>) => A, initialValue: A): A;
168
168
  /**
169
169
  * Time Complexity: O(n), where n is the number of elements in the HashMap.
170
170
  * Space Complexity: O(1)
@@ -287,10 +287,12 @@ class HashMap {
287
287
  */
288
288
  filter(predicate) {
289
289
  const filteredMap = new HashMap();
290
+ let index = 0;
290
291
  for (const [key, value] of this) {
291
- if (predicate([key, value], this)) {
292
+ if (predicate([key, value], index, this)) {
292
293
  filteredMap.set(key, value);
293
294
  }
295
+ index++;
294
296
  }
295
297
  return filteredMap;
296
298
  }
@@ -303,9 +305,11 @@ class HashMap {
303
305
  */
304
306
  map(callback) {
305
307
  const mappedMap = new HashMap();
308
+ let index = 0;
306
309
  for (const [key, value] of this) {
307
- const newValue = callback([key, value], this);
310
+ const newValue = callback([key, value], index, this);
308
311
  mappedMap.set(key, newValue);
312
+ index++;
309
313
  }
310
314
  return mappedMap;
311
315
  }
@@ -323,8 +327,10 @@ class HashMap {
323
327
  */
324
328
  reduce(callback, initialValue) {
325
329
  let accumulator = initialValue;
326
- for (const element of this) {
327
- accumulator = callback(accumulator, element, this);
330
+ let index = 0;
331
+ for (const entry of this) {
332
+ accumulator = callback(accumulator, entry, index, this);
333
+ index++;
328
334
  }
329
335
  return accumulator;
330
336
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hash-map.js","sourceRoot":"","sources":["../../../../src/data-structures/hash/hash-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hash-map.js","sourceRoot":"","sources":["../../../../src/data-structures/hash/hash-map.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,11 @@
8
8
  export declare class HashTableNode<K, V> {
9
9
  key: K;
10
10
  value: V;
11
- next: HashTableNode<K, V> | null;
11
+ next: HashTableNode<K, V> | undefined;
12
12
  constructor(key: K, value: V);
13
13
  }
14
14
  import { HashFunction } from '../../types';
15
- export declare class HashTable<K, V> {
15
+ export declare class HashTable<K = any, V = any> {
16
16
  protected static readonly DEFAULT_CAPACITY = 16;
17
17
  protected static readonly LOAD_FACTOR = 0.75;
18
18
  constructor(capacity?: number, hashFn?: HashFunction<K>);
@@ -20,8 +20,8 @@ export declare class HashTable<K, V> {
20
20
  get capacity(): number;
21
21
  protected _size: number;
22
22
  get size(): number;
23
- protected _buckets: Array<HashTableNode<K, V> | null>;
24
- get buckets(): Array<HashTableNode<K, V> | null>;
23
+ protected _buckets: Array<HashTableNode<K, V> | undefined>;
24
+ get buckets(): Array<HashTableNode<K, V> | undefined>;
25
25
  protected _hashFn: HashFunction<K>;
26
26
  get hashFn(): HashFunction<K>;
27
27
  /**
@@ -50,6 +50,11 @@ export declare class HashTable<K, V> {
50
50
  * any value.
51
51
  */
52
52
  delete(key: K): void;
53
+ [Symbol.iterator](): Generator<[K, V], void, undefined>;
54
+ forEach(callback: (entry: [K, V], index: number, table: HashTable<K, V>) => void): void;
55
+ filter(predicate: (entry: [K, V], index: number, table: HashTable<K, V>) => boolean): HashTable<K, V>;
56
+ map<T>(callback: (entry: [K, V], index: number, table: HashTable<K, V>) => T): HashTable<K, T>;
57
+ reduce<T>(callback: (accumulator: T, entry: [K, V], index: number, table: HashTable<K, V>) => T, initialValue: T): T;
53
58
  /**
54
59
  * The function `_defaultHashFn` calculates the hash value of a given key and returns the remainder when divided by the
55
60
  * capacity of the data structure.
@@ -12,7 +12,7 @@ class HashTableNode {
12
12
  constructor(key, value) {
13
13
  this.key = key;
14
14
  this.value = value;
15
- this.next = null;
15
+ this.next = undefined;
16
16
  }
17
17
  }
18
18
  exports.HashTableNode = HashTableNode;
@@ -21,7 +21,7 @@ class HashTable {
21
21
  this._hashFn = hashFn || this._defaultHashFn;
22
22
  this._capacity = Math.max(capacity, HashTable.DEFAULT_CAPACITY);
23
23
  this._size = 0;
24
- this._buckets = new Array(this._capacity).fill(null);
24
+ this._buckets = new Array(this._capacity).fill(undefined);
25
25
  }
26
26
  get capacity() {
27
27
  return this._capacity;
@@ -101,7 +101,7 @@ class HashTable {
101
101
  delete(key) {
102
102
  const index = this._hash(key);
103
103
  let currentNode = this._buckets[index];
104
- let prevNode = null;
104
+ let prevNode = undefined;
105
105
  while (currentNode) {
106
106
  if (currentNode.key === key) {
107
107
  if (prevNode) {
@@ -111,13 +111,58 @@ class HashTable {
111
111
  this._buckets[index] = currentNode.next;
112
112
  }
113
113
  this._size--;
114
- currentNode.next = null; // Release memory
114
+ currentNode.next = undefined; // Release memory
115
115
  return;
116
116
  }
117
117
  prevNode = currentNode;
118
118
  currentNode = currentNode.next;
119
119
  }
120
120
  }
121
+ *[Symbol.iterator]() {
122
+ for (const bucket of this._buckets) {
123
+ let currentNode = bucket;
124
+ while (currentNode) {
125
+ yield [currentNode.key, currentNode.value];
126
+ currentNode = currentNode.next;
127
+ }
128
+ }
129
+ }
130
+ forEach(callback) {
131
+ let index = 0;
132
+ for (const entry of this) {
133
+ callback(entry, index, this);
134
+ index++;
135
+ }
136
+ }
137
+ filter(predicate) {
138
+ const newTable = new HashTable();
139
+ let index = 0;
140
+ for (const [key, value] of this) {
141
+ if (predicate([key, value], index, this)) {
142
+ newTable.set(key, value);
143
+ }
144
+ index++;
145
+ }
146
+ return newTable;
147
+ }
148
+ map(callback) {
149
+ const newTable = new HashTable();
150
+ let index = 0;
151
+ for (const [key, value] of this) {
152
+ newTable.set(key, callback([key, value], index, this));
153
+ index++;
154
+ }
155
+ return newTable;
156
+ }
157
+ reduce(callback, initialValue) {
158
+ let accumulator = initialValue;
159
+ let index = 0;
160
+ for (const entry of this) {
161
+ accumulator = callback(accumulator, entry, index, this);
162
+ index++;
163
+ }
164
+ return accumulator;
165
+ }
121
166
  /**
122
167
  * The function `_defaultHashFn` calculates the hash value of a given key and returns the remainder when divided by the
123
168
  * capacity of the data structure.
@@ -208,7 +253,7 @@ class HashTable {
208
253
  */
209
254
  _expand() {
210
255
  const newCapacity = this._capacity * 2;
211
- const newBuckets = new Array(newCapacity).fill(null);
256
+ const newBuckets = new Array(newCapacity).fill(undefined);
212
257
  for (const bucket of this._buckets) {
213
258
  let currentNode = bucket;
214
259
  while (currentNode) {
@@ -1 +1 @@
1
- {"version":3,"file":"hash-table.js","sourceRoot":"","sources":["../../../../src/data-structures/hash/hash-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hash-table.js","sourceRoot":"","sources":["../../../../src/data-structures/hash/hash-table.ts"],"names":[],"mappings":"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"}
@@ -147,7 +147,7 @@ export declare class Heap<E = any> {
147
147
  * @param order - Traverse order parameter: 'in' (in-order), 'pre' (pre-order) or 'post' (post-order).
148
148
  * @returns An array containing elements traversed in the specified order.
149
149
  */
150
- dfs(order: DFSOrderPattern): E[];
150
+ dfs(order?: DFSOrderPattern): E[];
151
151
  /**
152
152
  * Time Complexity: O(n)
153
153
  * Space Complexity: O(n)
@@ -195,6 +195,11 @@ export declare class Heap<E = any> {
195
195
  * Fix the entire heap to maintain heap properties.
196
196
  */
197
197
  fix(): void;
198
+ [Symbol.iterator](): Generator<E, void, unknown>;
199
+ forEach(callback: (element: E, index: number, heap: this) => void): void;
200
+ filter(predicate: (element: E, index: number, heap: Heap<E>) => boolean): Heap<E>;
201
+ map<T>(callback: (element: E, index: number, heap: Heap<E>) => T, comparator: Comparator<T>): Heap<T>;
202
+ reduce<T>(callback: (accumulator: T, currentValue: E, currentIndex: number, heap: Heap<E>) => T, initialValue: T): T;
198
203
  /**
199
204
  * Time Complexity: O(log n)
200
205
  * Space Complexity: O(1)
@@ -204,29 +204,30 @@ class Heap {
204
204
  * @param order - Traverse order parameter: 'in' (in-order), 'pre' (pre-order) or 'post' (post-order).
205
205
  * @returns An array containing elements traversed in the specified order.
206
206
  */
207
- dfs(order) {
207
+ dfs(order = 'pre') {
208
208
  const result = [];
209
209
  // Auxiliary recursive function, traverses the binary heap according to the traversal order
210
- const dfsHelper = (index) => {
210
+ const _dfs = (index) => {
211
+ const left = 2 * index + 1, right = left + 1;
211
212
  if (index < this.size) {
212
213
  if (order === 'in') {
213
- dfsHelper(2 * index + 1);
214
+ _dfs(left);
214
215
  result.push(this.elements[index]);
215
- dfsHelper(2 * index + 2);
216
+ _dfs(right);
216
217
  }
217
218
  else if (order === 'pre') {
218
219
  result.push(this.elements[index]);
219
- dfsHelper(2 * index + 1);
220
- dfsHelper(2 * index + 2);
220
+ _dfs(left);
221
+ _dfs(right);
221
222
  }
222
223
  else if (order === 'post') {
223
- dfsHelper(2 * index + 1);
224
- dfsHelper(2 * index + 2);
224
+ _dfs(left);
225
+ _dfs(right);
225
226
  result.push(this.elements[index]);
226
227
  }
227
228
  }
228
229
  };
229
- dfsHelper(0); // Traverse starting from the root node
230
+ _dfs(0); // Traverse starting from the root node
230
231
  return result;
231
232
  }
232
233
  /**
@@ -294,6 +295,47 @@ class Heap {
294
295
  for (let i = Math.floor(this.size / 2); i >= 0; i--)
295
296
  this._sinkDown(i, this.elements.length >> 1);
296
297
  }
298
+ *[Symbol.iterator]() {
299
+ for (const element of this.elements) {
300
+ yield element;
301
+ }
302
+ }
303
+ forEach(callback) {
304
+ let index = 0;
305
+ for (const el of this) {
306
+ callback(el, index, this);
307
+ index++;
308
+ }
309
+ }
310
+ filter(predicate) {
311
+ const filteredHeap = new Heap({ comparator: this.comparator });
312
+ let index = 0;
313
+ for (const el of this) {
314
+ if (predicate(el, index, this)) {
315
+ filteredHeap.push(el);
316
+ }
317
+ index++;
318
+ }
319
+ return filteredHeap;
320
+ }
321
+ map(callback, comparator) {
322
+ const mappedHeap = new Heap({ comparator: comparator });
323
+ let index = 0;
324
+ for (const el of this) {
325
+ mappedHeap.add(callback(el, index, this));
326
+ index++;
327
+ }
328
+ return mappedHeap;
329
+ }
330
+ reduce(callback, initialValue) {
331
+ let accumulator = initialValue;
332
+ let index = 0;
333
+ for (const el of this) {
334
+ accumulator = callback(accumulator, el, index, this);
335
+ index++;
336
+ }
337
+ return accumulator;
338
+ }
297
339
  /**
298
340
  * Time Complexity: O(log n)
299
341
  * Space Complexity: O(1)
@@ -1 +1 @@
1
- {"version":3,"file":"heap.js","sourceRoot":"","sources":["../../../../src/data-structures/heap/heap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heap.js","sourceRoot":"","sources":["../../../../src/data-structures/heap/heap.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,MAAa,IAAI;IACf,YAAY,OAAsD;QAQxD,cAAS,GAAQ,EAAE,CAAC;QAP5B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;IACH,CAAC;IAID,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAID,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,IAAI,IAAI;;QACN,OAAO,MAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,mCAAI,SAAS,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAI,OAAqD;QACrE,OAAO,IAAI,IAAI,CAAI,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,GAAG,CAAC,OAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAG,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,MAAM,CAAC,QAAa;QAClB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,GAAG,CAAC,OAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IAEH;;;;;;;;;;OAUG;IACH,MAAM,CAAC,OAAU;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;aAAM,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SACrB;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAG,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;SAClD;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,GAAG,CAAC,QAAyB,KAAK;QAChC,MAAM,MAAM,GAAQ,EAAE,CAAC;QAEvB,2FAA2F;QAC3F,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;YAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE;gBACrB,IAAI,KAAK,KAAK,IAAI,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACb;qBAAM,IAAI,KAAK,KAAK,KAAK,EAAE;oBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,CAAC;iBACb;qBAAM,IAAI,KAAK,KAAK,MAAM,EAAE;oBAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,CAAC;oBACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;iBACnC;aACF;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;QAEhD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,KAAK;QACH,MAAM,UAAU,GAAG,IAAI,IAAI,CAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAChE,UAAU,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,IAAI;QACF,MAAM,WAAW,GAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;YACxB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,GAAG;gBAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IAEH;;;;;OAKG;IACH,GAAG;QACD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,MAAM,OAAO,CAAC;SACf;IACH,CAAC;IAED,OAAO,CAAC,QAAyD;QAC/D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;YACrB,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1B,KAAK,EAAE,CAAC;SACT;IACH,CAAC;IAED,MAAM,CAAC,SAAgE;QACrE,MAAM,YAAY,GAAY,IAAI,IAAI,CAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3E,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;YACrB,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;gBAC9B,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACvB;YACD,KAAK,EAAE,CAAC;SACT;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,GAAG,CAAI,QAAyD,EAAE,UAAyB;QAEzF,MAAM,UAAU,GAAY,IAAI,IAAI,CAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;YACrB,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1C,KAAK,EAAE,CAAC;SACT;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,CACJ,QAAqF,EACrF,YAAe;QAEf,IAAI,WAAW,GAAM,YAAY,CAAC;QAClC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;YACrB,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACrD,KAAK,EAAE,CAAC;SACT;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACO,SAAS,CAAC,KAAa;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC;gBAAE,MAAM;YACtD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;YAClC,KAAK,GAAG,MAAM,CAAC;SAChB;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACjC,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACO,SAAS,CAAC,KAAa,EAAE,UAAkB;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,KAAK,GAAG,UAAU,EAAE;YACzB,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;YACvB,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,IACE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EACnD;gBACA,IAAI,GAAG,KAAK,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAChC;YACD,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;gBAAE,MAAM;YACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAC/B,KAAK,GAAG,IAAI,CAAC;SACd;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACjC,CAAC;CACF;AAxaD,oBAwaC;AAED,MAAa,iBAAiB;IAS5B,YAAY,OAAU,EAAE,MAAM,GAAG,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;CACF;AAdD,8CAcC;AAED,MAAa,aAAa;IACxB,YAAY,UAA0B;QAe5B,UAAK,GAAG,CAAC,CAAC;QAdlB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC;QAExD,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;SACtF;IACH,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAID,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAID,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,GAAG,CAAC,OAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,IAAI,CAAC,OAAU;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACjD,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACH,iBAAiB,CAAC,IAA2B;QAC3C,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,QAAQ,CAAC;QAE3B,IAAI,IAAI,GAAqC,IAAI,CAAC;QAClD,IAAI,IAAI,GAAG,KAAK,CAAC;QAEjB,OAAO,IAAI,EAAE;YACX,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;gBAAE,MAAM;iBAC5B,IAAI,IAAI,KAAK,IAAI;gBAAE,IAAI,GAAG,IAAI,CAAC;YAEpC,IAAI,IAAI,EAAE;gBACR,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;aACnB;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,MAA4B,EAAE,IAA0B;QACrE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,KAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;SAC3B;IACH,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,GAAG;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAEtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAI,CAAC;QACpB,IAAI,CAAC,CAAC,KAAK,EAAE;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;gBAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;aACzB;SACF;QAED,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;YACjB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SACxB;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACH,KAAK,CAAC,WAA6B;QACjC,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;YAC1B,OAAO,CAAC,mBAAmB;SAC5B;QAED,wCAAwC;QACxC,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;YAEnC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAM,CAAC;YACtC,MAAM,aAAa,GAAG,SAAS,CAAC,IAAK,CAAC;YAEtC,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;YAC3B,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;YAE1B,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC;YACnC,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC;SACrC;QAED,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;YACpG,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;SAC7B;QAED,kBAAkB;QAClB,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC;QAE/B,iCAAiC;QACjC,WAAW,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACO,iBAAiB,CAAC,CAAI,EAAE,CAAI;QACpC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;OAIG;IACO,UAAU,CAAC,OAAU;QAC7B,OAAO,IAAI,iBAAiB,CAAI,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACO,aAAa,CAAC,IAA0B;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACxB;IACH,CAAC;IAED;;;OAGG;IAEH;;;;;;;OAOG;IACO,cAAc,CAAC,IAA0B;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAChD,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED;;;OAGG;IAEH;;;;;;;;OAQG;IACO,IAAI,CAAC,CAAuB,EAAE,CAAuB;QAC7D,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACX,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACZ,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACf,CAAC;IAED;;;OAGG;IAEH;;;;;;OAMG;IACO,WAAW;QACnB,MAAM,CAAC,GAAyC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAmC,EACrC,CAAmC,EACnC,CAAS,EACT,CAAmC,CAAC;QAEtC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YAEb,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBACX,CAAC,GAAG,CAAC,CAAC,CAAC,CAAyB,CAAC;gBAEjC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAC7C,CAAC,GAAG,CAAC,CAAC;oBACN,CAAC,GAAG,CAAC,CAAC;oBACN,CAAC,GAAG,CAAC,CAAC;iBACP;gBAED,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACjB,CAAC,EAAE,CAAC;aACL;YAED,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACV;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,IAAI,CAAC,GAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAClE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;aACnB;SACF;IACH,CAAC;CACF;AArYD,sCAqYC"}