json-as 1.1.1 → 1.1.2

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/.prettierignore CHANGED
@@ -3,4 +3,7 @@ build/
3
3
  transform/lib
4
4
 
5
5
  # Tables
6
- assembly/globals/tables.ts
6
+ assembly/globals/tables.ts
7
+
8
+ # Markdown
9
+ *.md
package/CHANGELOG.md CHANGED
@@ -1,12 +1,16 @@
1
1
  # Change Log
2
2
 
3
+ ## 2025-05-22 - 1.1.2
4
+
5
+ - fix: correct small typos in string value deserialization port
6
+
3
7
  ## 2025-05-22 - 1.1.1
4
8
 
5
9
  - fix: remove random logs
6
10
 
7
11
  ## 2025-05-22 - 1.1.0
8
12
 
9
- - fix: change __DESERIALIZE<T> to __JSON_T to avoid populating local scope
13
+ - fix: change _DESERIALIZE<T> to _JSON_T to avoid populating local scope
10
14
 
11
15
  ## 2025-05-22 - 1.0.9
12
16
 
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
7
7
  █████ ███████ ██████ ██ ████ ██ ██ ███████
8
8
  </span>
9
- AssemblyScript - v1.1.1
9
+ AssemblyScript - v1.1.2
10
10
  </pre>
11
11
  </h6>
12
12
 
@@ -2,26 +2,32 @@ import { OBJECT, TOTAL_OVERHEAD } from "rt/common";
2
2
  import { JSON } from "..";
3
3
  import { describe, expect } from "./lib";
4
4
 
5
+
5
6
  @json
6
7
  class Foo {
7
8
  a: i32 = 0;
8
9
  }
9
10
 
11
+
10
12
  @json
11
13
  class Bar extends Foo {
12
14
  b: i32 = 0;
13
15
 
16
+
14
17
  @serializer
15
18
  serialize(self: Bar): string {
16
19
  return `"bar"`;
17
20
  }
18
21
 
22
+
19
23
  @deserializer
20
24
  deserialize(data: string): Bar {
21
- return data == "\"bar\"" ? {
22
- a: 1,
23
- b: 2,
24
- } : new Bar();
25
+ return data == '"bar"'
26
+ ? {
27
+ a: 1,
28
+ b: 2,
29
+ }
30
+ : new Bar();
25
31
  }
26
32
  }
27
33
 
package/assembly/index.ts CHANGED
@@ -588,7 +588,7 @@ export namespace JSON {
588
588
  let type: nonnull<T> = changetype<nonnull<T>>(0);
589
589
  // @ts-ignore: Defined by transform
590
590
  if (isDefined(type.__DESERIALIZE)) {
591
- const out = changetype<nonnull<T>>(dst || __new(offsetof<nonnull<T>>(), idof<nonnull<T>>()))
591
+ const out = changetype<nonnull<T>>(dst || __new(offsetof<nonnull<T>>(), idof<nonnull<T>>()));
592
592
  // @ts-ignore: Defined by transform
593
593
  return out.__DESERIALIZE(srcStart, srcEnd, out);
594
594
  } else if (type instanceof Map) {
package/assembly/test.ts CHANGED
@@ -1,172 +1,181 @@
1
1
  import { JSON } from ".";
2
2
  import { bytes } from "./util";
3
3
 
4
- @json
5
- class Obj {
6
- public a: string = "hello";
7
- public b: string = "world";
8
- public c: string = '"\t\f\u0000\u0001';
9
- }
4
+ // @json
5
+ // class Obj {
6
+ // public a: string = "hello";
7
+ // public b: string = "world";
8
+ // public c: string = '"\t\f\u0000\u0001';
9
+ // }
10
+
11
+ // @json
12
+ // class Vec3 {
13
+ // x: f32 = 0.0;
14
+ // y: f32 = 0.0;
15
+ // z: f32 = 0.0;
16
+ // }
17
+
18
+ // @json
19
+ // class Player {
20
+ // @alias("first name")
21
+ // firstName!: string;
22
+ // lastName!: string;
23
+ // lastActive!: i32[];
24
+ // // Drop in a code block, function, or expression that evaluates to a boolean
25
+ // @omitif((self: Player) => self.age < 18)
26
+ // age!: i32;
27
+
28
+ // @omitnull()
29
+ // pos!: Vec3 | null;
30
+ // isVerified!: boolean;
31
+ // }
32
+
33
+ // @json
34
+ // class Point {}
35
+
36
+ // @json
37
+ // class NewPoint {
38
+ // x: f64 = 0.0;
39
+ // y: f64 = 0.0;
40
+ // constructor(x: f64, y: f64) {
41
+ // this.x = x;
42
+ // this.y = y;
43
+ // }
10
44
 
11
- @json
12
- class Vec3 {
13
- x: f32 = 0.0;
14
- y: f32 = 0.0;
15
- z: f32 = 0.0;
16
- }
45
+ // @serializer
46
+ // serializer(self: NewPoint): string {
47
+ // return `x=${self.x},y=${self.y}`;
48
+ // }
17
49
 
18
- @json
19
- class Player {
20
- @alias("first name")
21
- firstName!: string;
22
- lastName!: string;
23
- lastActive!: i32[];
24
- // Drop in a code block, function, or expression that evaluates to a boolean
25
- @omitif((self: Player) => self.age < 18)
26
- age!: i32;
27
-
28
-
29
- @omitnull()
30
- pos!: Vec3 | null;
31
- isVerified!: boolean;
32
- }
50
+ // @deserializer
51
+ // deserializer(data: string): NewPoint {
52
+ // const dataSize = bytes(data);
33
53
 
34
- @json
35
- class Point {}
54
+ // const c = data.indexOf(",");
55
+ // const x = data.slice(2, c);
56
+ // const y = data.slice(c + 3);
36
57
 
37
- @json
38
- class NewPoint {
39
- x: f64 = 0.0;
40
- y: f64 = 0.0;
41
- constructor(x: f64, y: f64) {
42
- this.x = x;
43
- this.y = y;
44
- }
45
-
46
- @serializer
47
- serializer(self: NewPoint): string {
48
- return `x=${self.x},y=${self.y}`;
49
- }
50
-
51
- @deserializer
52
- deserializer(data: string): NewPoint {
53
- const dataSize = bytes(data);
54
-
55
- const c = data.indexOf(",");
56
- const x = data.slice(2, c);
57
- const y = data.slice(c + 3);
58
-
59
- return new NewPoint(f64.parse(x), f64.parse(y));
60
- }
61
- }
58
+ // return new NewPoint(f64.parse(x), f64.parse(y));
59
+ // }
60
+ // }
62
61
 
63
- @json
64
- class InnerObj<T> {
65
- obj: T = instantiate<T>();
66
- }
62
+ // @json
63
+ // class InnerObj<T> {
64
+ // obj: T = instantiate<T>();
65
+ // }
67
66
 
67
+ // @json
68
+ // class ObjWithBracketString {
69
+ // data: string = "";
70
+ // }
68
71
 
69
- @json
70
- class ObjWithBracketString {
71
- data: string = "";
72
- }
72
+ // const player: Player = {
73
+ // firstName: "Jairus",
74
+ // lastName: "Tanaka",
75
+ // lastActive: [2, 7, 2025],
76
+ // age: 18,
77
+ // pos: {
78
+ // x: 3.4,
79
+ // y: 1.2,
80
+ // z: 8.3,
81
+ // },
82
+ // isVerified: true,
83
+ // };
73
84
 
74
- const player: Player = {
75
- firstName: "Jairus",
76
- lastName: "Tanaka",
77
- lastActive: [2, 7, 2025],
78
- age: 18,
79
- pos: {
80
- x: 3.4,
81
- y: 1.2,
82
- z: 8.3,
83
- },
84
- isVerified: true,
85
- };
85
+ // const a1 = JSON.stringify("\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000a\u000b\u000c\u000d\u000e\u000f\u000f\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f");
86
+ // // console.log("Bytes " + bytes(a1).toString());
87
+ // console.log("a1: " + a1);
86
88
 
87
- const a1 = JSON.stringify("\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\u000a\u000b\u000c\u000d\u000e\u000f\u000f\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f");
88
- // console.log("Bytes " + bytes(a1).toString());
89
- console.log("a1: " + a1);
89
+ // const obj = new Obj();
90
+ // const a2 = JSON.stringify(obj);
91
+ // // console.log("Bytes " + bytes(a2).toString());
92
+ // console.log("a2: " + a2);
90
93
 
91
- const obj = new Obj();
92
- const a2 = JSON.stringify(obj);
93
- // console.log("Bytes " + bytes(a2).toString());
94
- console.log("a2: " + a2);
94
+ // const a3 = JSON.stringify(player);
95
+ // // console.log("Bytes " + bytes(a3).toString());
96
+ // console.log("a3: " + a3);
95
97
 
96
- const a3 = JSON.stringify(player);
97
- // console.log("Bytes " + bytes(a3).toString());
98
- console.log("a3: " + a3);
98
+ // const a4 = new JSON.Obj();
99
99
 
100
- const a4 = new JSON.Obj();
100
+ // a4.set("x", 1.5);
101
+ // a4.set("y", 5.4);
102
+ // a4.set("z", 9.8);
103
+ // a4.set("obj", obj);
104
+ // a4.set<boolean>("bool", false);
101
105
 
102
- a4.set("x", 1.5);
103
- a4.set("y", 5.4);
104
- a4.set("z", 9.8);
105
- a4.set("obj", obj);
106
- a4.set<boolean>("bool", false);
106
+ // console.log("a4: " + JSON.stringify(a4));
107
107
 
108
- console.log("a4: " + JSON.stringify(a4));
108
+ // const a5 = JSON.parse<JSON.Obj>('{"foo":"bar"}');
109
109
 
110
- const a5 = JSON.parse<JSON.Obj>('{"foo":"bar"}');
110
+ // console.log("a5: " + JSON.stringify(a5));
111
111
 
112
- console.log("a5: " + JSON.stringify(a5));
112
+ // const a6 = JSON.parse<JSON.Obj>('{"x":1.5,"y":5.4,"z":9.8,"obj":{"foo":"bar"}}');
113
113
 
114
- const a6 = JSON.parse<JSON.Obj>('{"x":1.5,"y":5.4,"z":9.8,"obj":{"foo":"bar"}}');
114
+ // console.log("a6: " + JSON.stringify(a6));
115
115
 
116
- console.log("a6: " + JSON.stringify(a6));
116
+ // const a7 = JSON.parse<JSON.Value[]>('["string",true,3.14,{"x":1.0,"y":2.0,"z":3.0},[1,2,3,true]]');
117
117
 
118
- const a7 = JSON.parse<JSON.Value[]>('["string",true,3.14,{"x":1.0,"y":2.0,"z":3.0},[1,2,3,true]]');
118
+ // console.log("a7: " + JSON.stringify(a7));
119
119
 
120
- console.log("a7: " + JSON.stringify(a7));
120
+ // const a8 = JSON.stringify(["hello", JSON.stringify("world"), "working?"]);
121
121
 
122
- const a8 = JSON.stringify(["hello", JSON.stringify("world"), "working?"]);
122
+ // console.log("a8: " + a8);
123
123
 
124
- console.log("a8: " + a8);
124
+ // const a9 = JSON.stringify<JSON.Raw>(JSON.Raw.from('"hello world"'));
125
125
 
126
- const a9 = JSON.stringify<JSON.Raw>(JSON.Raw.from('"hello world"'));
126
+ // console.log("a9: " + a9);
127
127
 
128
- console.log("a9: " + a9);
128
+ // const m10 = new Map<string, JSON.Raw>();
129
+ // m10.set("hello", new JSON.Raw('"world"'));
130
+ // m10.set("pos", new JSON.Raw('{"x":1.0,"y":2.0,"z":3.0}'));
129
131
 
130
- const m10 = new Map<string, JSON.Raw>();
131
- m10.set("hello", new JSON.Raw('"world"'));
132
- m10.set("pos", new JSON.Raw('{"x":1.0,"y":2.0,"z":3.0}'));
132
+ // const a10 = JSON.stringify(m10);
133
133
 
134
- const a10 = JSON.stringify(m10);
134
+ // console.log("a10: " + a10);
135
135
 
136
- console.log("a10: " + a10);
136
+ // const a11 = JSON.parse<JSON.Obj>(' { "x" : 3.4 , "y" : 1.2 , "z" : 8.3 } ');
137
137
 
138
- const a11 = JSON.parse<JSON.Obj>(' { "x" : 3.4 , "y" : 1.2 , "z" : 8.3 } ');
138
+ // console.log("a11: " + JSON.stringify(a11));
139
139
 
140
- console.log("a11: " + JSON.stringify(a11));
140
+ // const a12 = JSON.parse<InnerObj<ObjWithBracketString>>('{"obj":{"data":"hello} world"}}');
141
141
 
142
- const a12 = JSON.parse<InnerObj<ObjWithBracketString>>('{"obj":{"data":"hello} world"}}');
142
+ // console.log("a12: " + JSON.stringify(a12));
143
143
 
144
- console.log("a12: " + JSON.stringify(a12));
144
+ // const a13 = JSON.stringify<JSON.Obj>(new JSON.Obj());
145
145
 
146
- const a13 = JSON.stringify<JSON.Obj>(new JSON.Obj());
146
+ // console.log("a13: " + a13);
147
147
 
148
- console.log("a13: " + a13);
148
+ // const a14 = JSON.stringify(new Point());
149
+ // console.log("a14: " + a14);
149
150
 
150
- const a14 = JSON.stringify(new Point());
151
- console.log("a14: " + a14);
151
+ // const a15 = JSON.parse<Point>(a14);
152
+ // console.log("a15: " + JSON.stringify(a15));
152
153
 
153
- const a15 = JSON.parse<Point>(a14);
154
- console.log("a15: " + JSON.stringify(a15));
154
+ // const a16 = JSON.stringify(new NewPoint(1.0, 2.0));
155
+ // console.log("a16: " + a16);
155
156
 
156
- const a16 = JSON.stringify(new NewPoint(1.0, 2.0));
157
- console.log("a16: " + a16);
157
+ // const a17 = JSON.parse<NewPoint>(a16);
158
+ // console.log("a17: " + JSON.stringify(a17));
158
159
 
159
- const a17 = JSON.parse<NewPoint>(a16);
160
- console.log("a17: " + JSON.stringify(a17));
160
+ // const a18 = JSON.parse<JSON.Obj[]>('[{"x":1.0,"y":2.0,"z":3.0},{"x":4.0,"y":5.0,"z":6.0},{"x":7.0,"y":8.0,"z":9.0}]');
161
+ // console.log("a18: " + JSON.stringify(a18));
161
162
 
162
- const a18 = JSON.parse<JSON.Obj[]>('[{"x":1.0,"y":2.0,"z":3.0},{"x":4.0,"y":5.0,"z":6.0},{"x":7.0,"y":8.0,"z":9.0}]');
163
- console.log("a18: " + JSON.stringify(a18));
163
+ // const a19 = JSON.stringify<JSON.Obj[]>(a18);
164
+ // console.log("a19: " + a19);
164
165
 
165
- const a19 = JSON.stringify<JSON.Obj[]>(a18);
166
- console.log("a19: " + a19);
166
+ // const a20 = JSON.parse<JSON.Box<f64>[]>("[1.3,4.7,9.5]");
167
+ // console.log("a20: " + JSON.stringify(a20));
167
168
 
168
- const a20 = JSON.parse<JSON.Box<f64>[]>("[1.3,4.7,9.5]");
169
- console.log("a20: " + JSON.stringify(a20));
169
+ // const a21 = JSON.stringify<JSON.Box<f64>[]>(a20);
170
+ // console.log("a21: " + a21);
170
171
 
171
- const a21 = JSON.stringify<JSON.Box<f64>[]>(a20);
172
- console.log("a21: " + a21);
172
+ const a22 = JSON.parse<Foo>('{"id":"0xb8","firstName":"Jairus","lastName":"Tanaka"}');
173
+ console.log("a22: " + JSON.stringify(a22));
174
+
175
+
176
+ @json
177
+ class Foo {
178
+ id: string = "";
179
+ firstName: string = "";
180
+ lastName: string = "";
181
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-as",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "author": "Jairus Tanaka",
5
5
  "description": "The only JSON library you'll need for AssemblyScript. SIMD enabled",
6
6
  "types": "assembly/index.ts",
@@ -18,7 +18,7 @@
18
18
  "test": "bash ./run-tests.sh",
19
19
  "bench:as": "bash ./run-bench.as.sh",
20
20
  "bench:js": "bash ./run-bench.js.sh",
21
- "build:test": "rm -rf ./build/ && JSON_DEBUG=true asc assembly/test.ts --transform ./transform -o ./build/test.wasm --textFile ./build/test.wat --debug --config ./node_modules/@assemblyscript/wasi-shim/asconfig.json",
21
+ "build:test": "rm -rf ./build/ && JSON_STRICT=true JSON_DEBUG=true asc assembly/test.ts --transform ./transform -o ./build/test.wasm --textFile ./build/test.wat --debug --config ./node_modules/@assemblyscript/wasi-shim/asconfig.json",
22
22
  "build:test:simd": "rm -rf ./build/ && JSON_DEBUG=true asc assembly/test.ts --transform ./transform -o ./build/test.wasm --textFile ./build/test.wat --optimizeLevel 3 --shrinkLevel 0 --enable simd --config ./node_modules/@assemblyscript/wasi-shim/asconfig.json",
23
23
  "test:wasmtime": "wasmtime ./build/test.wasm",
24
24
  "test:wasmer": "wasmer ./build/test.wasm",
@@ -8,6 +8,7 @@ import { Property, PropertyFlags, Schema } from "./types.js";
8
8
  import { getClasses, getImportedClass } from "./linker.js";
9
9
  let indent = " ";
10
10
  const DEBUG = process.env["JSON_DEBUG"];
11
+ const STRICT = process.env["JSON_STRICT"] && process.env["JSON_STRICT"] == "false";
11
12
  class JSONTransform extends Visitor {
12
13
  static SN = new JSONTransform();
13
14
  program;
@@ -370,8 +371,10 @@ class JSONTransform extends Visitor {
370
371
  const complex = isStruct(members[0].type) || members[0].type != "JSON.Obj" || isArray(members[0].type);
371
372
  const firstMemberName = members[0].alias || members[0].name;
372
373
  DESERIALIZE += indent + " if (" + getComparision(firstMemberName) + ") { // " + firstMemberName + "\n";
373
- DESERIALIZE += indent + " store<" + members[0].type + ">(changetype<usize>(out), JSON.__deserialize<" + members[0].type + ">(lastIndex, srcStart), offsetof<this>(" + JSON.stringify(firstMemberName) + "));\n";
374
- if (!complex)
374
+ DESERIALIZE += indent + " store<" + members[0].type + ">(changetype<usize>(out), JSON.__deserialize<" + members[0].type + ">(lastIndex, srcStart" + (isString(members[0].type) ? " + 2" : "") + "), offsetof<this>(" + JSON.stringify(firstMemberName) + "));\n";
375
+ if (isString(members[0].type))
376
+ DESERIALIZE += indent + " srcStart += 4;\n";
377
+ else if (!complex)
375
378
  DESERIALIZE += indent + " srcStart += 2;\n";
376
379
  DESERIALIZE += indent + " keyStart = 0;\n";
377
380
  DESERIALIZE += indent + " break;\n";
@@ -380,7 +383,7 @@ class JSONTransform extends Visitor {
380
383
  const member = members[i];
381
384
  const memberName = member.alias || member.name;
382
385
  DESERIALIZE += indent + " else if (" + getComparision(memberName) + ") { // " + memberName + "\n";
383
- DESERIALIZE += indent + " store<" + members[0].type + ">(changetype<usize>(out), JSON.__deserialize<" + members[0].type + ">(lastIndex, srcStart), offsetof<this>(" + JSON.stringify(memberName) + "));\n";
386
+ DESERIALIZE += indent + " store<" + members[0].type + ">(changetype<usize>(out), JSON.__deserialize<" + members[0].type + ">(lastIndex, srcStart" + (isString(members[0].type) ? " + 2" : "") + "), offsetof<this>(" + JSON.stringify(memberName) + "));\n";
384
387
  if (isString(members[0].type))
385
388
  DESERIALIZE += indent + " srcStart += 4;\n";
386
389
  else if (!complex)
@@ -389,9 +392,11 @@ class JSONTransform extends Visitor {
389
392
  DESERIALIZE += indent + " break;\n";
390
393
  DESERIALIZE += indent + " }";
391
394
  }
392
- DESERIALIZE += " else {\n";
393
- DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
394
- DESERIALIZE += indent + " }\n";
395
+ if (STRICT) {
396
+ DESERIALIZE += " else {\n";
397
+ DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
398
+ DESERIALIZE += indent + " }\n";
399
+ }
395
400
  };
396
401
  let mbElse = " ";
397
402
  if (sortedMembers.string.length) {
@@ -401,7 +406,6 @@ class JSONTransform extends Visitor {
401
406
  DESERIALIZE += " while (srcStart < srcEnd) {\n";
402
407
  DESERIALIZE += " const code = load<u16>(srcStart);\n";
403
408
  DESERIALIZE += " if (code == 34 && load<u16>(srcStart - 2) !== 92) {\n";
404
- DESERIALIZE += " srcStart += 2;\n";
405
409
  generateComparisions(sortedMembers.string);
406
410
  DESERIALIZE += " }\n";
407
411
  DESERIALIZE += " srcStart += 2;\n";
@@ -505,9 +509,11 @@ class JSONTransform extends Visitor {
505
509
  DESERIALIZE += indent + " break;\n";
506
510
  DESERIALIZE += indent + " }";
507
511
  }
508
- DESERIALIZE += " else {\n";
509
- DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
510
- DESERIALIZE += indent + " }\n";
512
+ if (STRICT) {
513
+ DESERIALIZE += " else {\n";
514
+ DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
515
+ DESERIALIZE += indent + " }\n";
516
+ }
511
517
  DESERIALIZE += " }";
512
518
  mbElse = " else ";
513
519
  DESERIALIZE += " else if (load<u64>(srcStart, 2) == 28429466576093281) {\n";
@@ -528,9 +534,11 @@ class JSONTransform extends Visitor {
528
534
  DESERIALIZE += indent + " break;\n";
529
535
  DESERIALIZE += indent + " }";
530
536
  }
531
- DESERIALIZE += " else {\n";
532
- DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
533
- DESERIALIZE += indent + " }\n";
537
+ if (STRICT) {
538
+ DESERIALIZE += " else {\n";
539
+ DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
540
+ DESERIALIZE += indent + " }\n";
541
+ }
534
542
  DESERIALIZE += " }\n";
535
543
  DESERIALIZE += " }";
536
544
  }
@@ -570,9 +578,11 @@ class JSONTransform extends Visitor {
570
578
  DESERIALIZE += indent + " break;\n";
571
579
  DESERIALIZE += indent + " }";
572
580
  }
573
- DESERIALIZE += " else {\n";
574
- DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
575
- DESERIALIZE += indent + " }\n";
581
+ if (STRICT) {
582
+ DESERIALIZE += " else {\n";
583
+ DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
584
+ DESERIALIZE += indent + " }\n";
585
+ }
576
586
  DESERIALIZE += " }";
577
587
  DESERIALIZE += "\n }";
578
588
  mbElse = " else ";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoH,IAAI,EAAiI,MAAM,uCAAuC,CAAC;AAC9S,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE3D,IAAI,MAAM,GAAG,IAAI,CAAC;AAElB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACxC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;AAEnF,MAAM,aAAc,SAAQ,OAAO;IACjC,MAAM,CAAC,EAAE,GAAkB,IAAI,aAAa,EAAE,CAAC;IAExC,OAAO,CAAW;IAClB,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,OAAO,GAAa,EAAE,CAAC;IACvB,MAAM,CAAU;IAChB,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5B,OAAO,GAAsB,EAAE,CAAC;IAEhC,aAAa,GAAgB,EAAE,CAAC;IAChC,cAAc,GAAa,EAAE,CAAC;IAErC,qBAAqB,CAAC,IAAsB;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM;YAAE,OAAO;QAErC,IACE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAClC,MAAM,IAAI,GAA0B,SAAS,CAAC,IAAK,CAAC,IAAI,CAAC;YACzD,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,cAAc,CAAC;QACpD,CAAC,CAAC;YAEF,OAAO;QAET,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAElC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,SAAS,GAAG,mCAAmC,CAAC;QACpD,IAAI,UAAU,GAAG,kCAAkC,CAAC;QACpD,IAAI,WAAW,GAAG,sFAAsF,CAAC;QACzG,IAAI,kBAAkB,GAAG,EAAE,CAAC;QAC5B,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAE1B,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE/G,MAAM,OAAO,GAAuB,CAAC,GAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAA8B,IAAI,CAAC,CAAC,KAAK,OAAuB,IAAI,CAAC,CAAC,KAAK,QAAwB,IAAI,CAAC,CAAC,KAAK,SAA0B,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAwB,SAAS,CAAC,IAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAwB,CAAC,CAAC;QAC1U,MAAM,WAAW,GAAwB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAA+B,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAwB,CAAC,CAAC,IAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,CAAC,CAAwB,CAAC;QACvP,MAAM,aAAa,GAAwB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAA+B,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAwB,CAAC,CAAC,IAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC,CAAwB,CAAC;QAE3P,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,UAAU,CAAC,0CAA0C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,4CAA4C,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzK,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;YAAE,UAAU,CAAC,4CAA4C,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,8CAA8C,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEjL,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YAC1B,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAElC,IAAI,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,CAAC,qDAAqD,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,2DAA2D,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACvQ,IAAI,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAoB,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAoB,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,MAAM;gBAAE,UAAU,CAAC,oGAAoG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACva,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,IAAI,CAAiB,UAAU,CAAC,SAAS,CAAC,UAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,UAAU,CAAC,qDAAqD,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,uDAAuD,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEzT,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAwB,CAAC,CAAC,IAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;gBACxF,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACxI,CAAC;YACD,gBAAgB,IAAI,qCAAqC,CAAC;YAC1D,gBAAgB,IAAI,wBAAwB,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;YAC5I,gBAAgB,IAAI,0CAA0C,CAAC;YAC/D,gBAAgB,IAAI,kEAAkE,CAAC;YACvF,gBAAgB,IAAI,8BAA8B,CAAC;YACnD,gBAAgB,IAAI,OAAO,CAAC;QAC9B,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YAC1B,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM;gBAAE,UAAU,CAAC,2DAA2D,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,4EAA4E,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YACzQ,IAAI,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,UAAU,CAAC,uDAAuD,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,qEAAqE,EAAE,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7P,IAAoB,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,QAAQ;gBAAE,UAAU,CAAC,+EAA+E,EAAE,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9O,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAiB,YAAY,CAAC,SAAS,CAAC,UAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAoB,YAAY,CAAC,SAAS,CAAC,UAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAAE,UAAU,CAAC,uDAAuD,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,kCAAkC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,2BAA2B,EAAE,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEnc,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAwB,CAAC,CAAC,IAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;gBAC1F,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9I,CAAC;YAED,kBAAkB,IAAI,wFAAwF,CAAC;YAC/G,kBAAkB,IAAI,gCAAgC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;YACvH,kBAAkB,IAAI,OAAO,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW,CAAkB,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC;gBAC7F,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,KAAK;wBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC;oBAC/D,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;oBAC3C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrF,IAAI,cAAc,EAAE,CAAC;oBACnB,IAAI,KAAK;wBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC;oBAC/D,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;oBAC3C,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAChC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAChG,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,UAAU,CAAC,+BAA+B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAIxE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS;YAE1D,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAChB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;YAClB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;YAClB,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEhC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC;YAErC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBAC1C,MAAM,aAAa,GAAI,SAAS,CAAC,IAA6B,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;oBACzF,QAAQ,aAAa,EAAE,CAAC;wBACtB,KAAK,OAAO,CAAC,CAAC,CAAC;4BACb,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAC9B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,MAAoB;gCAAE,UAAU,CAAC,uDAAuD,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;4BAE5H,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;4BACjC,MAAM;wBACR,CAAC;wBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;4BACd,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM;gCAAE,UAAU,CAAC,sEAAsE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC9H,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;4BACzC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;4BAC3B,MAAM;wBACR,CAAC;wBACD,KAAK,UAAU,CAAC,CAAC,CAAC;4BAChB,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gCACtB,UAAU,CAAC,8CAA8C,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC3E,CAAC;iCAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gCACnC,UAAU,CAAC,iDAAiD,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC9E,CAAC;4BACD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;4BAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;4BAC3B,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhF,MAAM,GAAG,IAAI,CAAC;QAEd,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACzE,SAAS,IAAI,MAAM,GAAG,yBAAyB,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC1B,SAAS,IAAI,MAAM,GAAG,uCAAuC,CAAC;YAC9D,SAAS,IAAI,MAAM,GAAG,mBAAmB,CAAC;QAC5C,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC;gBAC/D,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC,IAAI,SAAS,GAAG,MAAM,CAAC;QACvB,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAC7B,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,UAAU,IAAI,UAAU,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,KAAK,CAAC;YAC7D,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,UAAU,IAAI,UAAU,MAAM,CAAC,IAAI,yBAAyB,MAAM,CAAC,IAAI,6BAA6B,MAAM,CAAC,IAAI,sBAAsB,MAAM,CAAC,IAAI,0BAA0B,CAAC;YAC7K,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9E,UAAU,IAAI,UAAU,MAAM,CAAC,IAAI,UAAU,CAAC;YAChD,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC9D,UAAU,IAAI,UAAU,MAAM,CAAC,IAAI,UAAU,CAAC;YAChD,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAc,CAAC;YACnE,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAAE,SAAS,GAAG,IAAI,CAAC;YACzH,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC;gBACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;gBAC5C,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;qBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;qBAC7B,IAAI,CAAC,EAAE,CAAC,CAAC;gBACZ,SAAS,IAAI,MAAM,GAAG,oBAAoB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,IAAI,yBAAyB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACpI,IAAI,OAAO;oBAAE,OAAO,GAAG,KAAK,CAAC;YAC/B,CAAC;iBAAM,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;gBAC5C,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;qBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;qBAC7B,IAAI,CAAC,EAAE,CAAC,CAAC;gBACZ,SAAS,IAAI,MAAM,GAAG,oBAAoB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,IAAI,yBAAyB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACpI,IAAI,OAAO;oBAAE,OAAO,GAAG,KAAK,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7C,SAAS,IAAI,MAAM,GAAG,gDAAgD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBAC/G,SAAS,EAAE,CAAC;oBACZ,MAAM,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;oBAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;oBAC5C,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;yBAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;yBAC7B,IAAI,CAAC,EAAE,CAAC,CAAC;oBACZ,SAAS,IAAI,MAAM,GAAG,oBAAoB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,IAAI,yBAAyB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAEpI,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;wBAC1B,SAAS,IAAI,MAAM,GAAG,sCAAsC,CAAC;wBAC7D,SAAS,IAAI,MAAM,GAAG,mBAAmB,CAAC;oBAC5C,CAAC;oBAED,SAAS,EAAE,CAAC;oBACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAC1B,SAAS,IAAI,MAAM,GAAG,KAAK,CAAC;gBAC9B,CAAC;qBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClD,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,MAAqB,EAAE,CAAC;wBACrE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAuB,CAAC;wBAEzE,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;wBAE5I,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAClI,SAAS,IAAI,MAAM,GAAG,SAAS,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC;oBAChG,CAAC;yBAAM,CAAC;wBACN,SAAS,IAAI,MAAM,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;oBACvF,CAAC;oBACD,SAAS,EAAE,CAAC;oBACZ,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,GAAG,EAAE,YAAY,CAAC;yBACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;yBAC7B,IAAI,CAAC,EAAE,CAAC,CAAC;oBACZ,SAAS,IAAI,MAAM,GAAG,oBAAoB,MAAM,CAAC,IAAI,UAAU,MAAM,CAAC,IAAI,yBAAyB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAEpI,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;wBAC1B,SAAS,IAAI,MAAM,GAAG,sCAAsC,CAAC;wBAC7D,SAAS,IAAI,MAAM,GAAG,mBAAmB,CAAC;oBAC5C,CAAC;oBAED,SAAS,EAAE,CAAC;oBACZ,SAAS,IAAI,MAAM,GAAG,KAAK,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAOf;YACF,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACX,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrE,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU;gBAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACrF,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;gBAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC1G,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACvG,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;gBAC3D,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,GAAG,EAAE,CAAC;QACZ,IAAI,WAAW,GAAG,KAAK,CAAC;QAGxB,WAAW,IAAI,MAAM,GAAG,8BAA8B,CAAC;QACvD,IAAI,WAAW,IAAI,KAAK;YAAE,WAAW,IAAI,MAAM,GAAG,4BAA4B,CAAC;QAC/E,WAAW,IAAI,MAAM,GAAG,wBAAwB,CAAC;QACjD,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM;YAAE,WAAW,IAAI,MAAM,GAAG,yBAAyB,CAAC;QACjH,WAAW,IAAI,MAAM,GAAG,iCAAiC,CAAC;QAE1D,WAAW,IAAI,MAAM,GAAG,wFAAwF,CAAC;QACjH,WAAW,IAAI,MAAM,GAAG,wFAAwF,CAAC;QACjH,WAAW,IAAI,MAAM,GAAG,wGAAwG,CAAC;QACjI,WAAW,IAAI,MAAM,GAAG,yIAAyI,CAAC;QAClK,WAAW,IAAI,MAAM,GAAG,yIAAyI,CAAC;QAClK,WAAW,IAAI,MAAM,GAAG,sBAAsB,CAAC;QAE/C,WAAW,IAAI,MAAM,GAAG,iCAAiC,CAAC;QAC1D,WAAW,IAAI,MAAM,GAAG,uCAAuC,CAAC;QAChE,WAAW,IAAI,MAAM,GAAG,wEAAwE,CAAC;QACjG,WAAW,IAAI,MAAM,GAAG,4BAA4B,CAAC;QACrD,WAAW,IAAI,MAAM,GAAG,6DAA6D,CAAC;QACtF,WAAW,IAAI,MAAM,GAAG,wBAAwB,CAAC;QACjD,WAAW,IAAI,MAAM,GAAG,mCAAmC,CAAC;QAC5D,IAAI,WAAW,IAAI,KAAK;YAAE,WAAW,IAAI,MAAM,GAAG,gCAAgC,CAAC;QACnF,WAAW,IAAI,MAAM,GAAG,+EAA+E,CAAC;QACxG,WAAW,IAAI,MAAM,GAAG,yHAAyH,CAAC;QAClJ,WAAW,IAAI,MAAM,GAAG,4BAA4B,CAAC;QACrD,WAAW,IAAI,MAAM,GAAG,oBAAoB,CAAC;QAC7C,WAAW,IAAI,MAAM,GAAG,2BAA2B,CAAC;QACpD,WAAW,IAAI,MAAM,GAAG,uCAAuC,CAAC;QAChE,WAAW,IAAI,MAAM,GAAG,aAAa,CAAC;QACtC,WAAW,IAAI,MAAM,GAAG,WAAW,CAAC;QACpC,WAAW,IAAI,MAAM,GAAG,wBAAwB,CAAC;QACjD,WAAW,IAAI,MAAM,GAAG,gBAAgB,CAAC;QAGzC,MAAM,YAAY,GAAG,CAAC,OAAmB,EAAE,EAAE;YAC3C,IAAI,MAAM,GAAiB,EAAE,CAAC;YAE9B,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;YACb,OAAO;iBACJ,KAAK,EAAE;iBACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACvF,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC/D,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;oBACxB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBACtB,GAAG,GAAG,WAAW,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CAAC;YAEL,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,oBAAoB,GAAG,CAAC,OAAmB,EAAE,EAAE;YACnD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC9D,WAAW,IAAI,mDAAmD,CAAC;YACrE,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC9D,WAAW,IAAI,mDAAmD,CAAC;YACrE,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC9D,WAAW,IAAI,wEAAwE,CAAC;YAC1F,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC9D,WAAW,IAAI,mDAAmD,CAAC;YACrE,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7D,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YAC9G,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvG,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,WAAW,IAAI,MAAM,GAAG,kBAAkB,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAAC;YAClH,WAAW,IAAI,MAAM,GAAG,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,+CAA+C,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,uBAAuB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC;YAC9Q,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,WAAW,IAAI,MAAM,GAAG,gCAAgC,CAAC;iBACnF,IAAI,CAAC,OAAO;gBAAE,WAAW,IAAI,MAAM,GAAG,gCAAgC,CAAC;YAC5E,WAAW,IAAI,MAAM,GAAG,+BAA+B,CAAC;YACxD,WAAW,IAAI,MAAM,GAAG,wBAAwB,CAAC;YACjD,WAAW,IAAI,MAAM,GAAG,eAAe,CAAC;YAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;gBAC/C,WAAW,IAAI,MAAM,GAAG,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;gBAClG,WAAW,IAAI,MAAM,GAAG,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,+CAA+C,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,uBAAuB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;gBACzQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAAE,WAAW,IAAI,MAAM,GAAG,gCAAgC,CAAC;qBACnF,IAAI,CAAC,OAAO;oBAAE,WAAW,IAAI,MAAM,GAAG,gCAAgC,CAAC;gBAC5E,WAAW,IAAI,MAAM,GAAG,+BAA+B,CAAC;gBACxD,WAAW,IAAI,MAAM,GAAG,wBAAwB,CAAC;gBACjD,WAAW,IAAI,MAAM,GAAG,eAAe,CAAC;YAC1C,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,IAAI,WAAW,CAAC;gBAC3B,WAAW,IAAI,MAAM,GAAG,sKAAsK,CAAC;gBAC/L,WAAW,IAAI,MAAM,GAAG,iBAAiB,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,MAAM,GAAG,QAAQ,CAAC;QACtB,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,WAAW,IAAI,MAAM,GAAG,qBAAqB,CAAC;YAC9C,WAAW,IAAI,mCAAmC,CAAC;YACnD,WAAW,IAAI,4BAA4B,CAAC;YAC5C,WAAW,IAAI,yCAAyC,CAAC;YACzD,WAAW,IAAI,iDAAiD,CAAC;YACjE,WAAW,IAAI,mEAAmE,CAAC;YAEnF,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC3C,WAAW,IAAI,eAAe,CAAC;YAC/B,WAAW,IAAI,4BAA4B,CAAC;YAC5C,WAAW,IAAI,aAAa,CAAC;YAC7B,WAAW,IAAI,WAAW,CAAC;YAC3B,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,WAAW,IAAI,MAAM,GAAG,uCAAuC,CAAC;YAChE,WAAW,IAAI,iCAAiC,CAAC;YACjD,WAAW,IAAI,0BAA0B,CAAC;YAC1C,WAAW,IAAI,uCAAuC,CAAC;YACvD,WAAW,IAAI,+CAA+C,CAAC;YAC/D,WAAW,IAAI,yEAAyE,CAAC;YAGzF,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC3C,WAAW,IAAI,eAAe,CAAC;YAC/B,WAAW,IAAI,4BAA4B,CAAC;YAC5C,WAAW,IAAI,aAAa,CAAC;YAC7B,WAAW,IAAI,SAAS,CAAC;YACzB,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,WAAW,IAAI,MAAM,GAAG,sBAAsB,CAAC;YAC/C,WAAW,IAAI,iCAAiC,CAAC;YACjD,WAAW,IAAI,oBAAoB,CAAC;YACpC,WAAW,IAAI,0BAA0B,CAAC;YAC1C,WAAW,IAAI,uCAAuC,CAAC;YACvD,WAAW,IAAI,+CAA+C,CAAC;YAC/D,WAAW,IAAI,+BAA+B,CAAC;YAC/C,WAAW,IAAI,8BAA8B,CAAC;YAC9C,WAAW,IAAI,oGAAoG,CAAC;YACpH,WAAW,IAAI,uCAAuC,CAAC;YACvD,WAAW,IAAI,mCAAmC,CAAC;YACnD,WAAW,IAAI,gCAAgC,CAAC;YAEhD,MAAM,GAAG,IAAI,CAAC;YACd,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,GAAG,EAAE,CAAC;YAEZ,WAAW,IAAI,iBAAiB,CAAC;YACjC,WAAW,IAAI,8CAA8C,CAAC;YAC9D,WAAW,IAAI,4BAA4B,CAAC;YAC5C,WAAW,IAAI,aAAa,CAAC;YAC7B,WAAW,IAAI,SAAS,CAAC;YACzB,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;QACD,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,WAAW,IAAI,MAAM,GAAG,qBAAqB,CAAC;YAC9C,WAAW,IAAI,iCAAiC,CAAC;YACjD,WAAW,IAAI,oBAAoB,CAAC;YACpC,WAAW,IAAI,0BAA0B,CAAC;YAC1C,WAAW,IAAI,uCAAuC,CAAC;YACvD,WAAW,IAAI,+CAA+C,CAAC;YAC/D,WAAW,IAAI,+BAA+B,CAAC;YAC/C,WAAW,IAAI,8BAA8B,CAAC;YAC9C,WAAW,IAAI,oGAAoG,CAAC;YACpH,WAAW,IAAI,sCAAsC,CAAC;YACtD,WAAW,IAAI,mCAAmC,CAAC;YACnD,WAAW,IAAI,gCAAgC,CAAC;YAGhD,MAAM,GAAG,IAAI,CAAC;YACd,oBAAoB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,GAAG,EAAE,CAAC;YAEZ,WAAW,IAAI,iBAAiB,CAAC;YACjC,WAAW,IAAI,6CAA6C,CAAC;YAC7D,WAAW,IAAI,4BAA4B,CAAC;YAC5C,WAAW,IAAI,aAAa,CAAC;YAC7B,WAAW,IAAI,SAAS,CAAC;YACzB,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,WAAW,IAAI,MAAM,GAAG,sBAAsB,CAAC;YAC/C,WAAW,IAAI,2DAA2D,CAAC;YAC3E,WAAW,IAAI,4BAA4B,CAAC;YAC5C,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC5E,WAAW,IAAI,mDAAmD,CAAC;YACrE,CAAC;YACD,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC5E,WAAW,IAAI,mDAAmD,CAAC;YACrE,CAAC;YACD,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC5E,WAAW,IAAI,wEAAwE,CAAC;YAC1F,CAAC;YACD,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC5E,WAAW,IAAI,mDAAmD,CAAC;YACrE,CAAC;YACD,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC3E,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YAC5H,CAAC;YACD,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxF,WAAW,IAAI,MAAM,GAAG,kBAAkB,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAAC;YAClH,WAAW,IAAI,MAAM,GAAG,sBAAsB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iDAAiD,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;YAC7L,WAAW,IAAI,MAAM,GAAG,gCAAgC,CAAC;YACzD,WAAW,IAAI,MAAM,GAAG,+BAA+B,CAAC;YACxD,WAAW,IAAI,MAAM,GAAG,wBAAwB,CAAC;YACjD,WAAW,IAAI,MAAM,GAAG,eAAe,CAAC;YAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;gBAC/C,WAAW,IAAI,MAAM,GAAG,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;gBAClG,WAAW,IAAI,MAAM,GAAG,oBAAoB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iDAAiD,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC3L,WAAW,IAAI,MAAM,GAAG,8BAA8B,CAAC;gBACvD,WAAW,IAAI,MAAM,GAAG,6BAA6B,CAAC;gBACtD,WAAW,IAAI,MAAM,GAAG,sBAAsB,CAAC;gBAC/C,WAAW,IAAI,MAAM,GAAG,aAAa,CAAC;YACxC,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,IAAI,WAAW,CAAC;gBAC3B,WAAW,IAAI,MAAM,GAAG,oKAAoK,CAAC;gBAC7L,WAAW,IAAI,MAAM,GAAG,eAAe,CAAC;YAC1C,CAAC;YAED,WAAW,IAAI,WAAW,CAAC;YAC3B,MAAM,GAAG,QAAQ,CAAC;YAClB,WAAW,IAAI,4DAA4D,CAAC;YAC5E,WAAW,IAAI,6BAA6B,CAAC;YAE7C,WAAW,IAAI,MAAM,GAAG,gBAAgB,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAAC;YAChH,WAAW,IAAI,MAAM,GAAG,oBAAoB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,kDAAkD,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;YAC5L,WAAW,IAAI,MAAM,GAAG,8BAA8B,CAAC;YACvD,WAAW,IAAI,MAAM,GAAG,6BAA6B,CAAC;YACtD,WAAW,IAAI,MAAM,GAAG,sBAAsB,CAAC;YAC/C,WAAW,IAAI,MAAM,GAAG,aAAa,CAAC;YAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;gBAC/C,WAAW,IAAI,MAAM,GAAG,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;gBAClG,WAAW,IAAI,MAAM,GAAG,oBAAoB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,kDAAkD,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBAC5L,WAAW,IAAI,MAAM,GAAG,8BAA8B,CAAC;gBACvD,WAAW,IAAI,MAAM,GAAG,6BAA6B,CAAC;gBACtD,WAAW,IAAI,MAAM,GAAG,sBAAsB,CAAC;gBAC/C,WAAW,IAAI,MAAM,GAAG,aAAa,CAAC;YACxC,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,IAAI,WAAW,CAAC;gBAC3B,WAAW,IAAI,MAAM,GAAG,oKAAoK,CAAC;gBAC7L,WAAW,IAAI,MAAM,GAAG,eAAe,CAAC;YAC1C,CAAC;YAED,WAAW,IAAI,aAAa,CAAC;YAC7B,WAAW,IAAI,SAAS,CAAC;QAC3B,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,WAAW,IAAI,MAAM,GAAG,sBAAsB,CAAC;YAE/C,WAAW,IAAI,2DAA2D,CAAC;YAC3E,WAAW,IAAI,4BAA4B,CAAC;YAE5C,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACzE,WAAW,IAAI,mDAAmD,CAAC;YACrE,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACzE,WAAW,IAAI,mDAAmD,CAAC;YACrE,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACzE,WAAW,IAAI,wEAAwE,CAAC;YAC1F,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACzE,WAAW,IAAI,mDAAmD,CAAC;YACrE,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxE,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YACzH,CAAC;YAED,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClF,WAAW,IAAI,MAAM,GAAG,gBAAgB,GAAG,cAAc,CAAC,eAAe,CAAC,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAAC;YAChH,WAAW,IAAI,MAAM,GAAG,oBAAoB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iDAAiD,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;YACrL,WAAW,IAAI,MAAM,GAAG,8BAA8B,CAAC;YACvD,WAAW,IAAI,MAAM,GAAG,6BAA6B,CAAC;YACtD,WAAW,IAAI,MAAM,GAAG,sBAAsB,CAAC;YAC/C,WAAW,IAAI,MAAM,GAAG,aAAa,CAAC;YAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC;gBAC/C,WAAW,IAAI,MAAM,GAAG,YAAY,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC;gBAClG,WAAW,IAAI,MAAM,GAAG,oBAAoB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iDAAiD,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBACrL,WAAW,IAAI,MAAM,GAAG,8BAA8B,CAAC;gBACvD,WAAW,IAAI,MAAM,GAAG,6BAA6B,CAAC;gBACtD,WAAW,IAAI,MAAM,GAAG,sBAAsB,CAAC;gBAC/C,WAAW,IAAI,MAAM,GAAG,aAAa,CAAC;YACxC,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,IAAI,WAAW,CAAC;gBAC3B,WAAW,IAAI,MAAM,GAAG,oKAAoK,CAAC;gBAC7L,WAAW,IAAI,MAAM,GAAG,eAAe,CAAC;YAC1C,CAAC;YAED,WAAW,IAAI,WAAW,CAAC;YAC3B,WAAW,IAAI,WAAW,CAAC;YAE3B,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;QAED,WAAW,IAAI,WAAW,CAAC;QAC3B,WAAW,IAAI,qBAAqB,CAAC;QACrC,WAAW,IAAI,KAAK,CAAC;QACrB,WAAW,IAAI,WAAW,CAAC;QAE3B,SAAS,EAAE,CAAC;QACZ,WAAW,IAAI,OAAO,CAAC;QACvB,SAAS,EAAE,CAAC;QACZ,WAAW,IAAI,oBAAoB,CAAC;QAEpC,MAAM,GAAG,IAAI,CAAC;QAEd,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QAC1B,SAAS,IAAI,MAAM,GAAG,uCAAuC,CAAC;QAC9D,SAAS,IAAI,MAAM,GAAG,mBAAmB,CAAC;QAC1C,SAAS,IAAI,GAAG,CAAC;QAEjB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAEtH,UAAU,IAAI,kBAAkB,CAAC;QACjC,UAAU,IAAI,GAAG,CAAC;QAKlB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,SAAS,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,IAAI,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5F,MAAM,iBAAiB,GAAG,YAAY,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1E,MAAM,kBAAkB,GAAG,YAAY,CAAC,gBAAgB,CAAC,kBAAkB,IAAI,WAAW,EAAE,IAAI,CAAC,CAAC;QAElG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrG,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,oBAAoB,CAAC,IAAsB;QACzC,IAAI,eAAe,GAAG,wHAAwH,CAAC;QAC/I,IAAI,gBAAgB,GAAG,mDAAmD,CAAC;QAC3E,IAAI,iBAAiB,GAAG,+GAA+G,CAAC;QAExI,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,sBAAsB,GAAG,YAAY,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACpF,MAAM,uBAAuB,GAAG,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACtF,MAAM,wBAAwB,GAAG,YAAY,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAExF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACzG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC7G,CAAC;IA0BD,oBAAoB,CAAC,IAAqB;QACxC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,WAAW,CAAC,IAAY;QACtB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,kBAAkB,CAAC,IAAY;QAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;QAC1H,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC;QAEhI,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;QAE1K,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;QAEpL,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,GAAG,mBAAmB,CAAC;YAC/B,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/N,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,QAAQ,GAAG,2BAA2B,CAAC;YACzC,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAC5C,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAC5G,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EACxD,IAAI,CAAC,KAAK,CACX,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,OAAgB,KAAK;QAC3C,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBAE3B,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACxE,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,IAAI,MAAM,GAAG,GAAG,CAAC;oBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC;gBAC3H,GAAG,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnH,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YACD,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBAClB,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjH,MAAM,IAAI,CAAC,CAAC;YACd,CAAC;iBAAM,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjH,MAAM,IAAI,CAAC,CAAC;YACd,CAAC;iBAAM,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjH,MAAM,IAAI,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC;QACzC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,WAAW,CAAC,IAAY,EAAE,IAAsB;QAC9C,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9N,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAE7D,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnH,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACrE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACxK,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;;AAGH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,SAAS;IAChD,UAAU,CAAC,MAAc;QACvB,MAAM,WAAW,GAAG,aAAa,CAAC,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;aAC3B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACjB,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;YAC9B,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC9H,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;iBAAM,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,CAAC,UAAU,MAAyB,EAAE,CAAC;gBAC1C,OAAO,CAAC,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7D,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;YACzB,WAAW,CAAC,aAAa,GAAG,MAAM,CAAC;YACnC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE1B,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;gBACxD,WAAW,CAAC,aAAa,GAAG,EAAE,CAAC;YACjC,CAAC;YACD,IAAI,WAAW,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBACtC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,cAAc;oBAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;YACtH,CAAC;YACD,WAAW,CAAC,cAAc,GAAG,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAClE,IAAI,CAAC,MAAM;oBAAE,UAAU,CAAC,SAAS,MAAM,CAAC,IAAI,6BAA6B,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,uDAAuD,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjM,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,WAAW,CAAC,OAAmB;IACtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEvF,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,SAAiB,CAAC;IAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,SAAiB,CAAC;IAC7C,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,SAAiB,CAAC;IAC7C,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxJ,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,SAAiB,CAAC;IAC7C,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvM,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,MAAc;IAC3C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,GAAG,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,IAAI,CAAC,CAAC,0BAA0B,MAAM,MAAM,CAAC;QACjF,MAAM,IAAI,CAAC,CAAC;QACZ,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,GAAG,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,IAAI,CAAC,CAAC,0BAA0B,MAAM,MAAM,CAAC;QACjF,MAAM,IAAI,CAAC,CAAC;QACZ,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,IAAI,CAAC,IAAI,CAAC;QAAE,GAAG,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,IAAI,CAAC,CAAC,0BAA0B,MAAM,MAAM,CAAC;IAE7F,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACzB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,GAAG,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,CAAC,CAAC;QACZ,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,GAAG,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,CAAC,CAAC;QACZ,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,IAAI,CAAC,IAAI,CAAC;QAAE,GAAG,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;IAE7E,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,OAAgB,KAAK,EAAE,SAAiB,CAAC;IACvE,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAEpB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACpU,MAAM,IAAI,CAAC,CAAC;QACZ,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/L,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,CAAC;QACZ,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChF,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,CAAC;QACZ,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,KAAY;IAC/C,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IACxB,GAAG,CAAC,KAAK,GAAG,GAAG,OAAO,UAAU,KAAK,CAAC,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;IAC/H,MAAM,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,IAAI,IAAI,CAAC;AACjB,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,IAAI,IAAI,IAAI,IAAI;QACd,OAAO,CAAC,CAAC;SACN,IAAI,IAAI,IAAI,IAAI;QACnB,OAAO,CAAC,CAAC;SACN,IAAI,IAAI,IAAI,KAAK;QACpB,OAAO,EAAE,CAAC;SACP,IAAI,IAAI,IAAI,KAAK;QACpB,OAAO,EAAE,CAAC;SACP,IAAI,IAAI,IAAI,KAAK;QACpB,OAAO,EAAE,CAAC;SACP,IAAI,IAAI,IAAI,KAAK;QACpB,OAAO,EAAE,CAAC;SACP,IAAI,IAAI,IAAI,KAAK;QACpB,OAAO,EAAE,CAAC;SACP,IAAI,IAAI,IAAI,KAAK;QACpB,OAAO,EAAE,CAAC;SACP,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,SAAS;QAAE,OAAO,EAAE,CAAC;;QACnD,OAAO,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/G,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,SAAS,CAAC;AAC7C,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;AACtG,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;AACpE,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,OAAO,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,OAAO,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,OAAO,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,OAAO,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -10,6 +10,7 @@ import { getClasses, getImportedClass } from "./linker.js";
10
10
  let indent = " ";
11
11
 
12
12
  const DEBUG = process.env["JSON_DEBUG"];
13
+ const STRICT = process.env["JSON_STRICT"] && process.env["JSON_STRICT"] == "false";
13
14
 
14
15
  class JSONTransform extends Visitor {
15
16
  static SN: JSONTransform = new JSONTransform();
@@ -399,8 +400,9 @@ class JSONTransform extends Visitor {
399
400
  const complex = isStruct(members[0].type) || members[0].type != "JSON.Obj" || isArray(members[0].type);
400
401
  const firstMemberName = members[0].alias || members[0].name;
401
402
  DESERIALIZE += indent + " if (" + getComparision(firstMemberName) + ") { // " + firstMemberName + "\n";
402
- DESERIALIZE += indent + " store<" + members[0].type + ">(changetype<usize>(out), JSON.__deserialize<" + members[0].type + ">(lastIndex, srcStart), offsetof<this>(" + JSON.stringify(firstMemberName) + "));\n";
403
- if (!complex) DESERIALIZE += indent + " srcStart += 2;\n";
403
+ DESERIALIZE += indent + " store<" + members[0].type + ">(changetype<usize>(out), JSON.__deserialize<" + members[0].type + ">(lastIndex, srcStart" + (isString(members[0].type) ? " + 2" : "") + "), offsetof<this>(" + JSON.stringify(firstMemberName) + "));\n";
404
+ if (isString(members[0].type)) DESERIALIZE += indent + " srcStart += 4;\n";
405
+ else if (!complex) DESERIALIZE += indent + " srcStart += 2;\n";
404
406
  DESERIALIZE += indent + " keyStart = 0;\n";
405
407
  DESERIALIZE += indent + " break;\n";
406
408
  DESERIALIZE += indent + " }";
@@ -409,7 +411,7 @@ class JSONTransform extends Visitor {
409
411
  const member = members[i];
410
412
  const memberName = member.alias || member.name;
411
413
  DESERIALIZE += indent + " else if (" + getComparision(memberName) + ") { // " + memberName + "\n";
412
- DESERIALIZE += indent + " store<" + members[0].type + ">(changetype<usize>(out), JSON.__deserialize<" + members[0].type + ">(lastIndex, srcStart), offsetof<this>(" + JSON.stringify(memberName) + "));\n";
414
+ DESERIALIZE += indent + " store<" + members[0].type + ">(changetype<usize>(out), JSON.__deserialize<" + members[0].type + ">(lastIndex, srcStart" + (isString(members[0].type) ? " + 2" : "") + "), offsetof<this>(" + JSON.stringify(memberName) + "));\n";
413
415
  if (isString(members[0].type)) DESERIALIZE += indent + " srcStart += 4;\n";
414
416
  else if (!complex) DESERIALIZE += indent + " srcStart += 2;\n";
415
417
  DESERIALIZE += indent + " keyStart = 0;\n";
@@ -417,9 +419,11 @@ class JSONTransform extends Visitor {
417
419
  DESERIALIZE += indent + " }";
418
420
  }
419
421
 
420
- DESERIALIZE += " else {\n";
421
- DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
422
- DESERIALIZE += indent + " }\n";
422
+ if (STRICT) {
423
+ DESERIALIZE += " else {\n";
424
+ DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
425
+ DESERIALIZE += indent + " }\n";
426
+ }
423
427
  };
424
428
 
425
429
  let mbElse = " ";
@@ -430,7 +434,6 @@ class JSONTransform extends Visitor {
430
434
  DESERIALIZE += " while (srcStart < srcEnd) {\n";
431
435
  DESERIALIZE += " const code = load<u16>(srcStart);\n";
432
436
  DESERIALIZE += " if (code == 34 && load<u16>(srcStart - 2) !== 92) {\n";
433
- DESERIALIZE += " srcStart += 2;\n";
434
437
  // DESERIALIZE += " console.log(JSON.Util.ptrToStr(keyStart,keyEnd) + \" = \" + load<u16>(keyStart).toString() + \" val \" + JSON.Util.ptrToStr(lastIndex, srcStart));\n";
435
438
  generateComparisions(sortedMembers.string);
436
439
  DESERIALIZE += " }\n"; // Close break char check
@@ -547,9 +550,11 @@ class JSONTransform extends Visitor {
547
550
  DESERIALIZE += indent + " }";
548
551
  }
549
552
 
550
- DESERIALIZE += " else {\n";
551
- DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
552
- DESERIALIZE += indent + " }\n";
553
+ if (STRICT) {
554
+ DESERIALIZE += " else {\n";
555
+ DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
556
+ DESERIALIZE += indent + " }\n";
557
+ }
553
558
 
554
559
  DESERIALIZE += " }"; // Close first char check
555
560
  mbElse = " else ";
@@ -574,9 +579,11 @@ class JSONTransform extends Visitor {
574
579
  DESERIALIZE += indent + " }";
575
580
  }
576
581
 
577
- DESERIALIZE += " else {\n";
578
- DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
579
- DESERIALIZE += indent + " }\n";
582
+ if (STRICT) {
583
+ DESERIALIZE += " else {\n";
584
+ DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
585
+ DESERIALIZE += indent + " }\n";
586
+ }
580
587
 
581
588
  DESERIALIZE += " }\n"; // Close first char check
582
589
  DESERIALIZE += " }"; // Close first char check
@@ -623,9 +630,11 @@ class JSONTransform extends Visitor {
623
630
  DESERIALIZE += indent + " }";
624
631
  }
625
632
 
626
- DESERIALIZE += " else {\n";
627
- DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
628
- DESERIALIZE += indent + " }\n";
633
+ if (STRICT) {
634
+ DESERIALIZE += " else {\n";
635
+ DESERIALIZE += indent + ' throw new Error("Unexpected key in JSON object \'" + String.fromCharCode(load<u16>(srcStart)) + "\' at position " + (srcEnd - srcStart).toString());\n';
636
+ DESERIALIZE += indent + " }\n";
637
+ }
629
638
 
630
639
  DESERIALIZE += " }"; // Close first char check
631
640
  DESERIALIZE += "\n }"; // Close first char check