typescript-ds-lib 0.3.1 → 0.3.6

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 (49) hide show
  1. package/README.md +10 -8
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +3 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/base-collection.d.ts +14 -0
  6. package/dist/lib/base-collection.js +7 -0
  7. package/dist/lib/base-collection.js.map +1 -0
  8. package/dist/lib/binary-search-tree.d.ts +14 -3
  9. package/dist/lib/binary-search-tree.js +11 -2
  10. package/dist/lib/binary-search-tree.js.map +1 -1
  11. package/dist/lib/deque.d.ts +14 -4
  12. package/dist/lib/deque.js +3 -1
  13. package/dist/lib/deque.js.map +1 -1
  14. package/dist/lib/hash-table.d.ts +6 -4
  15. package/dist/lib/hash-table.js +21 -10
  16. package/dist/lib/hash-table.js.map +1 -1
  17. package/dist/lib/hash-utils.d.ts +7 -0
  18. package/dist/lib/{hash-table-utils.js → hash-utils.js} +37 -30
  19. package/dist/lib/hash-utils.js.map +1 -0
  20. package/dist/lib/heap.d.ts +32 -0
  21. package/dist/lib/heap.js +101 -0
  22. package/dist/lib/heap.js.map +1 -0
  23. package/dist/lib/linked-list.d.ts +14 -4
  24. package/dist/lib/linked-list.js +5 -3
  25. package/dist/lib/linked-list.js.map +1 -1
  26. package/dist/lib/map.d.ts +5 -4
  27. package/dist/lib/map.js +3 -1
  28. package/dist/lib/map.js.map +1 -1
  29. package/dist/lib/matrix.d.ts +14 -4
  30. package/dist/lib/matrix.js +3 -1
  31. package/dist/lib/matrix.js.map +1 -1
  32. package/dist/lib/priority-queue.d.ts +15 -4
  33. package/dist/lib/priority-queue.js +14 -20
  34. package/dist/lib/priority-queue.js.map +1 -1
  35. package/dist/lib/queue.d.ts +14 -4
  36. package/dist/lib/queue.js +3 -1
  37. package/dist/lib/queue.js.map +1 -1
  38. package/dist/lib/red-black-tree.d.ts +5 -4
  39. package/dist/lib/red-black-tree.js +5 -3
  40. package/dist/lib/red-black-tree.js.map +1 -1
  41. package/dist/lib/set.d.ts +19 -7
  42. package/dist/lib/set.js +92 -23
  43. package/dist/lib/set.js.map +1 -1
  44. package/dist/lib/stack.d.ts +14 -4
  45. package/dist/lib/stack.js +12 -9
  46. package/dist/lib/stack.js.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/lib/hash-table-utils.d.ts +0 -7
  49. package/dist/lib/hash-table-utils.js.map +0 -1
package/dist/lib/set.js CHANGED
@@ -1,22 +1,55 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Set = void 0;
4
- const binary_search_tree_1 = require("./binary-search-tree");
5
- class Set {
6
- bst;
7
- constructor(comparator = (a, b) => a < b) {
8
- this.bst = new binary_search_tree_1.BinarySearchTree(comparator);
4
+ const base_collection_1 = require("./base-collection");
5
+ const hash_utils_1 = require("./hash-utils");
6
+ class Node {
7
+ value;
8
+ next;
9
+ constructor(value) {
10
+ this.value = value;
11
+ this.next = null;
12
+ }
13
+ }
14
+ class Set extends base_collection_1.BaseCollection {
15
+ table;
16
+ count;
17
+ capacity;
18
+ constructor(capacity = 81920) {
19
+ super();
20
+ this.capacity = capacity <= 0 ? 81920 : capacity;
21
+ this.table = new Array(this.capacity).fill(null);
22
+ this.count = 0;
9
23
  }
10
24
  /**
11
- * Adds a value to the set if it's not already present
25
+ * Adds a value to the set if it's not already present.
26
+ *
27
+ * TODO: Dinamically resize the table if the collision factor is too high.
12
28
  */
13
29
  insert(value) {
14
- if (!this.find(value)) {
15
- this.bst.insert(value);
30
+ const index = hash_utils_1.HashUtils.hash(value, this.capacity);
31
+ // Handle empty bucket case.
32
+ if (!this.table[index]) {
33
+ this.table[index] = new Node(value);
34
+ this.count++;
35
+ return;
36
+ }
37
+ // Check first node for value match. If it matches, do nothing.
38
+ if (hash_utils_1.HashUtils.equals(this.table[index].value, value))
39
+ return;
40
+ // Traverse chain to find value or last node. If it matches, do nothing.
41
+ let current = this.table[index];
42
+ while (current?.next) {
43
+ if (hash_utils_1.HashUtils.equals(current.next.value, value))
44
+ return;
45
+ current = current.next;
16
46
  }
47
+ // Value not found, append new node.
48
+ current.next = new Node(value);
49
+ this.count++;
17
50
  }
18
51
  /**
19
- * Adds multiple values to the set if they're not already present
52
+ * Adds multiple values to the set if they're not already present.
20
53
  */
21
54
  insertList(values) {
22
55
  for (const value of values) {
@@ -24,40 +57,76 @@ class Set {
24
57
  }
25
58
  }
26
59
  /**
27
- * Checks if a value exists in the set
60
+ * Checks if a value exists in the set.
28
61
  */
29
62
  find(value) {
30
- return this.bst.find(value);
63
+ const index = hash_utils_1.HashUtils.hash(value, this.capacity);
64
+ let current = this.table[index];
65
+ while (current) {
66
+ if (hash_utils_1.HashUtils.equals(current.value, value))
67
+ return true;
68
+ current = current.next;
69
+ }
70
+ return false;
71
+ }
72
+ has(value) {
73
+ return this.find(value);
31
74
  }
32
75
  /**
33
- * Removes a value from the set
76
+ * Removes a value from the set.
34
77
  */
35
78
  remove(value) {
36
- this.bst.remove(value);
79
+ const index = hash_utils_1.HashUtils.hash(value, this.capacity);
80
+ // Handle empty bucket case
81
+ if (!this.table[index])
82
+ return false;
83
+ // Handle first node case
84
+ if (hash_utils_1.HashUtils.equals(this.table[index].value, value)) {
85
+ this.table[index] = this.table[index].next;
86
+ this.count--;
87
+ return true;
88
+ }
89
+ // Handle remaining nodes
90
+ let current = this.table[index].next;
91
+ let prev = this.table[index];
92
+ while (current) {
93
+ if (hash_utils_1.HashUtils.equals(current.value, value)) {
94
+ prev.next = current.next;
95
+ this.count--;
96
+ return true;
97
+ }
98
+ prev = current;
99
+ current = current.next;
100
+ }
101
+ return false;
37
102
  }
38
- /**
39
- * Executes a callback function for each element in the set
40
- */
41
103
  forEach(callback) {
42
- this.bst.forEach(callback);
104
+ for (const node of this.table) {
105
+ let current = node;
106
+ while (current) {
107
+ callback(current.value);
108
+ current = current.next;
109
+ }
110
+ }
43
111
  }
44
112
  /**
45
- * Removes all elements from the set
113
+ * Removes all elements from the set.
46
114
  */
47
115
  clear() {
48
- this.bst = new binary_search_tree_1.BinarySearchTree();
116
+ this.table = new Array(this.capacity).fill(null);
117
+ this.count = 0;
49
118
  }
50
119
  /**
51
- * Returns true if the set contains no elements
120
+ * Returns true if the set contains no elements.
52
121
  */
53
122
  isEmpty() {
54
- return this.bst.isEmpty();
123
+ return this.count === 0;
55
124
  }
56
125
  /**
57
- * Returns the number of elements in the set
126
+ * Returns the number of elements in the set.
58
127
  */
59
128
  size() {
60
- return this.bst.count();
129
+ return this.count;
61
130
  }
62
131
  }
63
132
  exports.Set = Set;
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../lib/set.ts"],"names":[],"mappings":";;;AACA,6DAAwD;AAexD,MAAa,GAAG;IACN,GAAG,CAAsB;IAEjC,YAAY,aAA4B,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,IAAI,CAAC,GAAG,GAAG,IAAI,qCAAgB,CAAI,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAQ;QACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAW;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAQ;QACb,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,QAA8B;QACpC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,GAAG,GAAG,IAAI,qCAAgB,EAAK,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF;AAlED,kBAkEC"}
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../lib/set.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,22 @@
1
+ import { BaseCollection } from "./base-collection";
1
2
  export interface Stack<T> {
2
3
  push(element: T): void;
3
4
  pop(): T | undefined;
4
5
  top(): T | undefined;
6
+ }
7
+ export declare class Stack<T> extends BaseCollection<T> implements Stack<T> {
8
+ private llData;
9
+ constructor();
10
+ /**
11
+ * Checks if the stack is empty. Returns true if the stack is empty, false otherwise.
12
+ */
5
13
  isEmpty(): boolean;
14
+ /**
15
+ * Returns the number of elements in the stack. The size of the stack
16
+ */
6
17
  size(): number;
18
+ /**
19
+ * Removes all elements from the stack.
20
+ */
7
21
  clear(): void;
8
22
  }
9
- export declare class Stack<T> implements Stack<T> {
10
- private items;
11
- constructor();
12
- }
package/dist/lib/stack.js CHANGED
@@ -1,46 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Stack = void 0;
4
- class Stack {
5
- items;
4
+ const base_collection_1 = require("./base-collection");
5
+ const linked_list_1 = require("./linked-list");
6
+ class Stack extends base_collection_1.BaseCollection {
7
+ llData;
6
8
  constructor() {
7
- this.items = [];
9
+ super();
10
+ this.llData = new linked_list_1.LinkedList();
8
11
  }
9
12
  /**
10
13
  * Adds an element to the top of the stack.
11
14
  */
12
15
  push(element) {
13
- this.items.push(element);
16
+ this.llData.pushFront(element);
14
17
  }
15
18
  /**
16
19
  * Removes and returns the top element from the stack, or undefined if stack is empty.
17
20
  */
18
21
  pop() {
19
- return this.items.pop();
22
+ return this.llData.popFront();
20
23
  }
21
24
  /**
22
25
  * Returns the top element of the stack without removing it, or undefined if stack is empty.
23
26
  */
24
27
  top() {
25
- return this.items[this.items.length - 1];
28
+ return this.llData.front();
26
29
  }
27
30
  /**
28
31
  * Checks if the stack is empty. Returns true if the stack is empty, false otherwise.
29
32
  */
30
33
  isEmpty() {
31
- return this.items.length === 0;
34
+ return this.llData.isEmpty();
32
35
  }
33
36
  /**
34
37
  * Returns the number of elements in the stack. The size of the stack
35
38
  */
36
39
  size() {
37
- return this.items.length;
40
+ return this.llData.size();
38
41
  }
39
42
  /**
40
43
  * Removes all elements from the stack.
41
44
  */
42
45
  clear() {
43
- this.items = [];
46
+ this.llData.clear();
44
47
  }
45
48
  }
46
49
  exports.Stack = Stack;
@@ -1 +1 @@
1
- {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../lib/stack.ts"],"names":[],"mappings":";;;AAUA,MAAa,KAAK;IACR,KAAK,CAAM;IAEnB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;CACF;AAhDD,sBAgDC"}
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../lib/stack.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,+CAA2C;AAU3C,MAAa,KAAS,SAAQ,gCAAiB;IACrC,MAAM,CAAgB;IAE9B;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAU,EAAK,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAU;QACb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAjDD,sBAiDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typescript-ds-lib",
3
- "version": "0.3.1",
3
+ "version": "0.3.6",
4
4
  "description": "A collection of TypeScript data structure implementations",
5
5
  "author": "Artiom Baloian <artiom.baloian@gmail.com>",
6
6
  "license": "MIT",
@@ -1,7 +0,0 @@
1
- export declare class HashTableUtils {
2
- private static valueToString;
3
- static wangHash32(key: number): number;
4
- static hashFunction(str: string): number;
5
- static hash<K>(key: K, capacity: number): number;
6
- static keysEqual<K>(key1: K, key2: K): boolean;
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash-table-utils.js","sourceRoot":"","sources":["../../lib/hash-table-utils.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IACjB,MAAM,CAAC,aAAa,CAAI,KAAQ;QACtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACzD,IAAI,SAAiB,CAAC;QACtB,QAAQ,OAAO,KAAK,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,OAAQ,KAAa,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAClD,SAAS,GAAI,KAAa,CAAC,QAAQ,EAAE,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM;YACR,KAAK,QAAQ;gBACX,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACR,KAAK,UAAU;gBACb,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM;YACR,KAAK,QAAQ;gBACX,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC7B,MAAM;YACR;gBACE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,UAAU,CAAC,GAAW;QAC3B,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;QAChB,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACzB,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACzB,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACvB,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACxB,yCAAyC;QACzC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACzB,OAAO,GAAG,KAAK,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,GAAW;QAC7B,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,6EAA6E;QAC7E,OAAO,IAAI,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,IAAI,CAAI,GAAM,EAAE,QAAgB;QACrC,IAAI,GAAG,IAAI,OAAQ,GAAW,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACvD,OAAQ,GAAW,CAAC,QAAQ,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QACnD,CAAC;QACD,MAAM,SAAS,GAAW,IAAI,CAAC,aAAa,CAAI,GAAG,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,IAAO,EAAE,IAAO;QAClC,IAAI,IAAI,IAAI,IAAI,IAAI,OAAQ,IAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/D,OAAQ,IAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACpG,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,KAAK,IAAI,CAAC;QAC/E,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YACjD,uBAAuB;YACvB,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;YAChE,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,IAAI,YAAY,MAAM,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;gBAChC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC1D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAE7F,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;gBAClC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,cAAc,CAAC,SAAS,CAAE,IAAY,CAAC,CAAC,CAAC,EAAG,IAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAlGD,wCAkGC"}