@dseict/psc-interpreter 0.0.1 → 0.0.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.
@@ -0,0 +1,9 @@
1
+ import { CharStream, Lexer, Token } from "antlr4";
2
+ export default class PSCLexerBase extends Lexer {
3
+ #private;
4
+ indents: number[];
5
+ pendingTokens: Token[];
6
+ constructor(input: CharStream);
7
+ nextToken(): Token;
8
+ }
9
+ //# sourceMappingURL=PSCLexerBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PSCLexerBase.d.ts","sourceRoot":"","sources":["../src/PSCLexerBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAe,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAI/D,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAM;IACvB,aAAa,EAAE,KAAK,EAAE,CAAM;gBAEhB,KAAK,EAAE,UAAU;IAIpB,SAAS,IAAI,KAAK;CA4E5B"}
@@ -0,0 +1,92 @@
1
+ import { CharStream, CommonToken, Lexer, Token } from "antlr4";
2
+ import PSCLexer from "./_antlr/PSCLexer";
3
+ import { PSCSyntaxError } from "./error";
4
+ export default class PSCLexerBase extends Lexer {
5
+ indents = [];
6
+ pendingTokens = [];
7
+ constructor(input) {
8
+ super(input);
9
+ }
10
+ nextToken() {
11
+ const t = this.pendingTokens.shift() ?? super.nextToken();
12
+ if (this.#onToken(t)) {
13
+ // console.log(`token: ${PSCLexer.symbolicNames[t.type]} '${t.text}'\n--`);
14
+ return t;
15
+ }
16
+ else {
17
+ return this.nextToken();
18
+ }
19
+ }
20
+ // Return true if the token should be emitted, false if it should be skipped
21
+ #onToken(token) {
22
+ switch (token.type) {
23
+ case PSCLexer.NEWLINE: {
24
+ // NEWLINE token is followed by indentation spacings
25
+ // Get the indentation level of the NEWLINE token
26
+ const indent = this.text.replace(/\r?\n/g, "");
27
+ const indentLevel = calculateIndentation(token.line, token.column, indent);
28
+ const lastIndentLevel = this.indents[this.indents.length - 1] ?? 0; // if stack is empty, indent level = 0
29
+ if (indentLevel > lastIndentLevel) {
30
+ // Only allow indenting by one level at a time
31
+ if (indentLevel - lastIndentLevel != 1) {
32
+ throw new PSCSyntaxError(token.line, token.column, `indentation level changed by more than one: ${lastIndentLevel} -> ${indentLevel}`);
33
+ }
34
+ // Emits an INDENT token and push the new indentation level onto the stack
35
+ this.indents.push(indentLevel);
36
+ this.pendingTokens.push(this.#makeToken(PSCLexer.INDENT));
37
+ }
38
+ else if (indentLevel < lastIndentLevel) {
39
+ // Dedent as many times as needed to return to the original indentation level
40
+ for (let i = 0; i < lastIndentLevel - indentLevel; i++) {
41
+ this.pendingTokens.push(this.#makeToken(PSCLexer.DEDENT));
42
+ this.indents.pop();
43
+ }
44
+ // Create a NEWLINE token to be emitted after the DEDENT tokens
45
+ this.pendingTokens.push(this.#makeToken(PSCLexer.NEWLINE));
46
+ // and skip the current NEWLINE token
47
+ return false;
48
+ }
49
+ return true;
50
+ }
51
+ case PSCLexer.EOF: {
52
+ // If no more dedent needed, EOF gracefully
53
+ if (this.indents.length == 0) {
54
+ return true;
55
+ }
56
+ // Otherwise, dedent as many times as needed
57
+ while (this.indents.pop() !== undefined) {
58
+ this.pendingTokens.push(this.#makeToken(PSCLexer.DEDENT));
59
+ }
60
+ this.pendingTokens.push(token); // Push the EOF token to the pending tokens
61
+ return false; // Skip the current EOF token
62
+ }
63
+ }
64
+ return true;
65
+ }
66
+ #makeToken(type) {
67
+ const text = `<${PSCLexer.symbolicNames[type] ?? "UNKNOWN"}>`;
68
+ const token = new CommonToken([this, this._input], type, Token.DEFAULT_CHANNEL, this._tokenStartCharIndex, this._tokenStartCharIndex + text.length - 1);
69
+ token.text = text;
70
+ return token;
71
+ }
72
+ }
73
+ function calculateIndentation(line, column, whitespace) {
74
+ let level = 0;
75
+ for (let i = 0; i < whitespace.length; i++) {
76
+ switch (whitespace[i]) {
77
+ case " ":
78
+ if (whitespace[i + 1] === " ") {
79
+ i++;
80
+ level++;
81
+ }
82
+ else {
83
+ throw new PSCSyntaxError(line, column + i, `expected two consecutive spaces for indentation, but found one at index ${i}`);
84
+ }
85
+ break;
86
+ default:
87
+ throw new PSCSyntaxError(line, column, `indentation invalid`);
88
+ }
89
+ }
90
+ return level;
91
+ }
92
+ //# sourceMappingURL=PSCLexerBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PSCLexerBase.js","sourceRoot":"","sources":["../src/PSCLexerBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { ATN, CharStream, DFA } from "antlr4";
2
+ import PSCLexerBase from '../PSCLexerBase.js';
3
+ export default class PSCLexer extends PSCLexerBase {
4
+ static readonly INDENT = 1;
5
+ static readonly DEDENT = 2;
6
+ static readonly WHITESPACE = 3;
7
+ static readonly NEWLINE = 4;
8
+ static readonly COMMENT = 5;
9
+ static readonly COMMA = 6;
10
+ static readonly LPAREN = 7;
11
+ static readonly RPAREN = 8;
12
+ static readonly LSQUARE = 9;
13
+ static readonly RSQUARE = 10;
14
+ static readonly SQUOTE = 11;
15
+ static readonly DQUOTE = 12;
16
+ static readonly STRING = 13;
17
+ static readonly NULL = 14;
18
+ static readonly INTEGER = 15;
19
+ static readonly FLOAT = 16;
20
+ static readonly BOOLEAN = 17;
21
+ static readonly PLUS = 18;
22
+ static readonly MINUS = 19;
23
+ static readonly MULTIPLY = 20;
24
+ static readonly DIVIDE = 21;
25
+ static readonly MODULO = 22;
26
+ static readonly EXPONENT = 23;
27
+ static readonly AND = 24;
28
+ static readonly OR = 25;
29
+ static readonly NOT = 26;
30
+ static readonly EQUAL = 27;
31
+ static readonly NEQUAL = 28;
32
+ static readonly GT = 29;
33
+ static readonly LT = 30;
34
+ static readonly GTEQ = 31;
35
+ static readonly LTEQ = 32;
36
+ static readonly IF = 33;
37
+ static readonly ELSE = 34;
38
+ static readonly WHILE = 35;
39
+ static readonly DO = 36;
40
+ static readonly REPEAT = 37;
41
+ static readonly UNTIL = 38;
42
+ static readonly FOR = 39;
43
+ static readonly FROM = 40;
44
+ static readonly DOWN = 41;
45
+ static readonly TO = 42;
46
+ static readonly ASSIGN = 43;
47
+ static readonly INPUT = 44;
48
+ static readonly OUTPUT = 45;
49
+ static readonly SUBPROGRAM = 46;
50
+ static readonly RETURN = 47;
51
+ static readonly ID = 48;
52
+ static readonly EOF: number;
53
+ static readonly channelNames: string[];
54
+ static readonly literalNames: (string | null)[];
55
+ static readonly symbolicNames: (string | null)[];
56
+ static readonly modeNames: string[];
57
+ static readonly ruleNames: string[];
58
+ constructor(input: CharStream);
59
+ get grammarFileName(): string;
60
+ get literalNames(): (string | null)[];
61
+ get symbolicNames(): (string | null)[];
62
+ get ruleNames(): string[];
63
+ get serializedATN(): number[];
64
+ get channelNames(): string[];
65
+ get modeNames(): string[];
66
+ static readonly _serializedATN: number[];
67
+ private static __ATN;
68
+ static get _ATN(): ATN;
69
+ static DecisionsToDFA: DFA[];
70
+ }
71
+ //# sourceMappingURL=PSCLexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PSCLexer.d.ts","sourceRoot":"","sources":["../../src/_antlr/PSCLexer.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,GAAG,EAEH,UAAU,EACK,GAAG,EAMlB,MAAM,QAAQ,CAAC;AAChB,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,YAAY;IACjD,gBAAuB,MAAM,KAAK;IAClC,gBAAuB,MAAM,KAAK;IAClC,gBAAuB,UAAU,KAAK;IACtC,gBAAuB,OAAO,KAAK;IACnC,gBAAuB,OAAO,KAAK;IACnC,gBAAuB,KAAK,KAAK;IACjC,gBAAuB,MAAM,KAAK;IAClC,gBAAuB,MAAM,KAAK;IAClC,gBAAuB,OAAO,KAAK;IACnC,gBAAuB,OAAO,MAAM;IACpC,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,IAAI,MAAM;IACjC,gBAAuB,OAAO,MAAM;IACpC,gBAAuB,KAAK,MAAM;IAClC,gBAAuB,OAAO,MAAM;IACpC,gBAAuB,IAAI,MAAM;IACjC,gBAAuB,KAAK,MAAM;IAClC,gBAAuB,QAAQ,MAAM;IACrC,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,QAAQ,MAAM;IACrC,gBAAuB,GAAG,MAAM;IAChC,gBAAuB,EAAE,MAAM;IAC/B,gBAAuB,GAAG,MAAM;IAChC,gBAAuB,KAAK,MAAM;IAClC,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,EAAE,MAAM;IAC/B,gBAAuB,EAAE,MAAM;IAC/B,gBAAuB,IAAI,MAAM;IACjC,gBAAuB,IAAI,MAAM;IACjC,gBAAuB,EAAE,MAAM;IAC/B,gBAAuB,IAAI,MAAM;IACjC,gBAAuB,KAAK,MAAM;IAClC,gBAAuB,EAAE,MAAM;IAC/B,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,KAAK,MAAM;IAClC,gBAAuB,GAAG,MAAM;IAChC,gBAAuB,IAAI,MAAM;IACjC,gBAAuB,IAAI,MAAM;IACjC,gBAAuB,EAAE,MAAM;IAC/B,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,KAAK,MAAM;IAClC,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,UAAU,MAAM;IACvC,gBAAuB,MAAM,MAAM;IACnC,gBAAuB,EAAE,MAAM;IAC/B,gBAAuB,GAAG,SAAa;IAEvC,gBAAuB,YAAY,EAAE,MAAM,EAAE,CAAyC;IACtF,gBAAuB,YAAY,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAuBwB;IAC9E,gBAAuB,aAAa,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CA2BsB;IAC7E,gBAAuB,SAAS,EAAE,MAAM,EAAE,CAAuB;IAEjE,gBAAuB,SAAS,EAAE,MAAM,EAAE,CAOxC;gBAGU,KAAK,EAAE,UAAU;IAK7B,IAAW,eAAe,IAAI,MAAM,CAA0B;IAE9D,IAAW,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAkC;IAC9E,IAAW,aAAa,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAmC;IAChF,IAAW,SAAS,IAAI,MAAM,EAAE,CAA+B;IAE/D,IAAW,aAAa,IAAI,MAAM,EAAE,CAAoC;IAExE,IAAW,YAAY,IAAI,MAAM,EAAE,CAAkC;IAErE,IAAW,SAAS,IAAI,MAAM,EAAE,CAA+B;IAE/D,gBAAuB,cAAc,EAAE,MAAM,EAAE,CAmHsB;IAErE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAM;IAC1B,WAAkB,IAAI,IAAI,GAAG,CAM5B;IAGD,MAAM,CAAC,cAAc,QAAiG;CACtH"}
@@ -0,0 +1,253 @@
1
+ // Generated from ./PSCLexer.g4 by ANTLR 4.13.2
2
+ // noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols
3
+ import { ATN, ATNDeserializer, CharStream, DecisionState, DFA, Lexer, LexerATNSimulator, RuleContext, PredictionContextCache, Token } from "antlr4";
4
+ import PSCLexerBase from '../PSCLexerBase.js';
5
+ export default class PSCLexer extends PSCLexerBase {
6
+ static INDENT = 1;
7
+ static DEDENT = 2;
8
+ static WHITESPACE = 3;
9
+ static NEWLINE = 4;
10
+ static COMMENT = 5;
11
+ static COMMA = 6;
12
+ static LPAREN = 7;
13
+ static RPAREN = 8;
14
+ static LSQUARE = 9;
15
+ static RSQUARE = 10;
16
+ static SQUOTE = 11;
17
+ static DQUOTE = 12;
18
+ static STRING = 13;
19
+ static NULL = 14;
20
+ static INTEGER = 15;
21
+ static FLOAT = 16;
22
+ static BOOLEAN = 17;
23
+ static PLUS = 18;
24
+ static MINUS = 19;
25
+ static MULTIPLY = 20;
26
+ static DIVIDE = 21;
27
+ static MODULO = 22;
28
+ static EXPONENT = 23;
29
+ static AND = 24;
30
+ static OR = 25;
31
+ static NOT = 26;
32
+ static EQUAL = 27;
33
+ static NEQUAL = 28;
34
+ static GT = 29;
35
+ static LT = 30;
36
+ static GTEQ = 31;
37
+ static LTEQ = 32;
38
+ static IF = 33;
39
+ static ELSE = 34;
40
+ static WHILE = 35;
41
+ static DO = 36;
42
+ static REPEAT = 37;
43
+ static UNTIL = 38;
44
+ static FOR = 39;
45
+ static FROM = 40;
46
+ static DOWN = 41;
47
+ static TO = 42;
48
+ static ASSIGN = 43;
49
+ static INPUT = 44;
50
+ static OUTPUT = 45;
51
+ static SUBPROGRAM = 46;
52
+ static RETURN = 47;
53
+ static ID = 48;
54
+ static EOF = Token.EOF;
55
+ static channelNames = ["DEFAULT_TOKEN_CHANNEL", "HIDDEN"];
56
+ static literalNames = [null, null,
57
+ null, null,
58
+ null, null,
59
+ "','", "'('",
60
+ "')'", "'['",
61
+ "']'", "'''",
62
+ "'\"'", null,
63
+ "'null'", null,
64
+ null, null,
65
+ "'+'", "'-'",
66
+ "'*'", "'/'",
67
+ null, null,
68
+ "'and'", "'or'",
69
+ "'not'", "'='",
70
+ "'<>'", "'>'",
71
+ "'<'", "'>='",
72
+ "'<='", "'if'",
73
+ "'else'", "'while'",
74
+ "'do'", "'repeat'",
75
+ "'until'", "'for'",
76
+ "'from'", "'down'",
77
+ "'to'", "'<-'",
78
+ "'input'", "'output'",
79
+ null, "'return'"];
80
+ static symbolicNames = [null, "INDENT",
81
+ "DEDENT", "WHITESPACE",
82
+ "NEWLINE",
83
+ "COMMENT",
84
+ "COMMA", "LPAREN",
85
+ "RPAREN", "LSQUARE",
86
+ "RSQUARE",
87
+ "SQUOTE", "DQUOTE",
88
+ "STRING", "NULL",
89
+ "INTEGER",
90
+ "FLOAT", "BOOLEAN",
91
+ "PLUS", "MINUS",
92
+ "MULTIPLY",
93
+ "DIVIDE", "MODULO",
94
+ "EXPONENT",
95
+ "AND", "OR",
96
+ "NOT", "EQUAL",
97
+ "NEQUAL", "GT",
98
+ "LT", "GTEQ",
99
+ "LTEQ", "IF",
100
+ "ELSE", "WHILE",
101
+ "DO", "REPEAT",
102
+ "UNTIL", "FOR",
103
+ "FROM", "DOWN",
104
+ "TO", "ASSIGN",
105
+ "INPUT", "OUTPUT",
106
+ "SUBPROGRAM",
107
+ "RETURN", "ID"];
108
+ static modeNames = ["DEFAULT_MODE",];
109
+ static ruleNames = [
110
+ "WHITESPACE", "NEWLINE", "COMMENT", "COMMA", "LPAREN", "RPAREN", "LSQUARE",
111
+ "RSQUARE", "SQUOTE", "DQUOTE", "STRING", "NULL", "DIGIT", "INTEGER", "FLOAT",
112
+ "BOOLEAN", "PLUS", "MINUS", "MULTIPLY", "DIVIDE", "MODULO", "EXPONENT",
113
+ "AND", "OR", "NOT", "EQUAL", "NEQUAL", "GT", "LT", "GTEQ", "LTEQ", "IF",
114
+ "ELSE", "WHILE", "DO", "REPEAT", "UNTIL", "FOR", "FROM", "DOWN", "TO",
115
+ "ASSIGN", "INPUT", "OUTPUT", "SUBPROGRAM", "RETURN", "ID",
116
+ ];
117
+ constructor(input) {
118
+ super(input);
119
+ this._interp = new LexerATNSimulator(this, PSCLexer._ATN, PSCLexer.DecisionsToDFA, new PredictionContextCache());
120
+ }
121
+ get grammarFileName() { return "PSCLexer.g4"; }
122
+ get literalNames() { return PSCLexer.literalNames; }
123
+ get symbolicNames() { return PSCLexer.symbolicNames; }
124
+ get ruleNames() { return PSCLexer.ruleNames; }
125
+ get serializedATN() { return PSCLexer._serializedATN; }
126
+ get channelNames() { return PSCLexer.channelNames; }
127
+ get modeNames() { return PSCLexer.modeNames; }
128
+ static _serializedATN = [4, 0, 48, 348, 6, -1, 2, 0,
129
+ 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9,
130
+ 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7,
131
+ 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23,
132
+ 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2,
133
+ 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38,
134
+ 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7,
135
+ 45, 2, 46, 7, 46, 1, 0, 4, 0, 97, 8, 0, 11, 0, 12, 0, 98, 1, 0, 1, 0, 1, 1, 3, 1, 104, 8, 1, 1, 1, 1,
136
+ 1, 5, 1, 108, 8, 1, 10, 1, 12, 1, 111, 9, 1, 1, 2, 1, 2, 1, 2, 3, 2, 116, 8, 2, 1, 2, 5, 2, 119, 8, 2,
137
+ 10, 2, 12, 2, 122, 9, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1,
138
+ 8, 1, 9, 1, 9, 1, 10, 1, 10, 5, 10, 142, 8, 10, 10, 10, 12, 10, 145, 9, 10, 1, 10, 1, 10, 1, 10, 1,
139
+ 10, 5, 10, 151, 8, 10, 10, 10, 12, 10, 154, 9, 10, 1, 10, 1, 10, 3, 10, 158, 8, 10, 1, 11, 1, 11,
140
+ 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 4, 13, 168, 8, 13, 11, 13, 12, 13, 169, 1, 14, 4, 14, 173,
141
+ 8, 14, 11, 14, 12, 14, 174, 1, 14, 1, 14, 5, 14, 179, 8, 14, 10, 14, 12, 14, 182, 9, 14, 1, 14,
142
+ 5, 14, 185, 8, 14, 10, 14, 12, 14, 188, 9, 14, 1, 14, 1, 14, 4, 14, 192, 8, 14, 11, 14, 12, 14,
143
+ 193, 3, 14, 196, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 207,
144
+ 8, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 221,
145
+ 8, 20, 1, 21, 1, 21, 1, 21, 3, 21, 226, 8, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1,
146
+ 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 28, 1, 28, 1, 29, 1, 29,
147
+ 1, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1,
148
+ 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36,
149
+ 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1,
150
+ 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42,
151
+ 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1,
152
+ 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 333, 8, 44, 1, 45,
153
+ 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 5, 46, 344, 8, 46, 10, 46, 12, 46, 347, 9,
154
+ 46, 2, 143, 152, 0, 47, 1, 3, 3, 4, 5, 5, 7, 6, 9, 7, 11, 8, 13, 9, 15, 10, 17, 11, 19, 12, 21, 13,
155
+ 23, 14, 25, 0, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24,
156
+ 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36,
157
+ 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48,
158
+ 1, 0, 23, 2, 0, 9, 9, 32, 32, 2, 0, 10, 10, 13, 13, 2, 0, 78, 78, 110, 110, 2, 0, 85, 85, 117, 117,
159
+ 2, 0, 76, 76, 108, 108, 1, 0, 48, 57, 2, 0, 84, 84, 116, 116, 2, 0, 82, 82, 114, 114, 2, 0, 69,
160
+ 69, 101, 101, 2, 0, 70, 70, 102, 102, 2, 0, 65, 65, 97, 97, 2, 0, 83, 83, 115, 115, 2, 0, 77, 77,
161
+ 109, 109, 2, 0, 79, 79, 111, 111, 2, 0, 68, 68, 100, 100, 2, 0, 73, 73, 105, 105, 2, 0, 87, 87,
162
+ 119, 119, 2, 0, 72, 72, 104, 104, 2, 0, 80, 80, 112, 112, 2, 0, 66, 66, 98, 98, 2, 0, 71, 71, 103,
163
+ 103, 3, 0, 65, 90, 95, 95, 97, 122, 4, 0, 48, 57, 65, 90, 95, 95, 97, 122, 365, 0, 1, 1, 0, 0, 0,
164
+ 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0,
165
+ 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 27,
166
+ 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0,
167
+ 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49,
168
+ 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0,
169
+ 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71,
170
+ 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0,
171
+ 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93,
172
+ 1, 0, 0, 0, 1, 96, 1, 0, 0, 0, 3, 103, 1, 0, 0, 0, 5, 115, 1, 0, 0, 0, 7, 125, 1, 0, 0, 0, 9, 127, 1,
173
+ 0, 0, 0, 11, 129, 1, 0, 0, 0, 13, 131, 1, 0, 0, 0, 15, 133, 1, 0, 0, 0, 17, 135, 1, 0, 0, 0, 19, 137,
174
+ 1, 0, 0, 0, 21, 157, 1, 0, 0, 0, 23, 159, 1, 0, 0, 0, 25, 164, 1, 0, 0, 0, 27, 167, 1, 0, 0, 0, 29,
175
+ 195, 1, 0, 0, 0, 31, 206, 1, 0, 0, 0, 33, 208, 1, 0, 0, 0, 35, 210, 1, 0, 0, 0, 37, 212, 1, 0, 0, 0,
176
+ 39, 214, 1, 0, 0, 0, 41, 220, 1, 0, 0, 0, 43, 225, 1, 0, 0, 0, 45, 227, 1, 0, 0, 0, 47, 231, 1, 0,
177
+ 0, 0, 49, 234, 1, 0, 0, 0, 51, 238, 1, 0, 0, 0, 53, 240, 1, 0, 0, 0, 55, 243, 1, 0, 0, 0, 57, 245,
178
+ 1, 0, 0, 0, 59, 247, 1, 0, 0, 0, 61, 250, 1, 0, 0, 0, 63, 253, 1, 0, 0, 0, 65, 256, 1, 0, 0, 0, 67,
179
+ 261, 1, 0, 0, 0, 69, 267, 1, 0, 0, 0, 71, 270, 1, 0, 0, 0, 73, 277, 1, 0, 0, 0, 75, 283, 1, 0, 0, 0,
180
+ 77, 287, 1, 0, 0, 0, 79, 292, 1, 0, 0, 0, 81, 297, 1, 0, 0, 0, 83, 300, 1, 0, 0, 0, 85, 303, 1, 0,
181
+ 0, 0, 87, 309, 1, 0, 0, 0, 89, 332, 1, 0, 0, 0, 91, 334, 1, 0, 0, 0, 93, 341, 1, 0, 0, 0, 95, 97, 7,
182
+ 0, 0, 0, 96, 95, 1, 0, 0, 0, 97, 98, 1, 0, 0, 0, 98, 96, 1, 0, 0, 0, 98, 99, 1, 0, 0, 0, 99, 100, 1,
183
+ 0, 0, 0, 100, 101, 6, 0, 0, 0, 101, 2, 1, 0, 0, 0, 102, 104, 5, 13, 0, 0, 103, 102, 1, 0, 0, 0, 103,
184
+ 104, 1, 0, 0, 0, 104, 105, 1, 0, 0, 0, 105, 109, 5, 10, 0, 0, 106, 108, 5, 32, 0, 0, 107, 106, 1,
185
+ 0, 0, 0, 108, 111, 1, 0, 0, 0, 109, 107, 1, 0, 0, 0, 109, 110, 1, 0, 0, 0, 110, 4, 1, 0, 0, 0, 111,
186
+ 109, 1, 0, 0, 0, 112, 116, 5, 35, 0, 0, 113, 114, 5, 47, 0, 0, 114, 116, 5, 47, 0, 0, 115, 112,
187
+ 1, 0, 0, 0, 115, 113, 1, 0, 0, 0, 116, 120, 1, 0, 0, 0, 117, 119, 8, 1, 0, 0, 118, 117, 1, 0, 0, 0,
188
+ 119, 122, 1, 0, 0, 0, 120, 118, 1, 0, 0, 0, 120, 121, 1, 0, 0, 0, 121, 123, 1, 0, 0, 0, 122, 120,
189
+ 1, 0, 0, 0, 123, 124, 6, 2, 0, 0, 124, 6, 1, 0, 0, 0, 125, 126, 5, 44, 0, 0, 126, 8, 1, 0, 0, 0, 127,
190
+ 128, 5, 40, 0, 0, 128, 10, 1, 0, 0, 0, 129, 130, 5, 41, 0, 0, 130, 12, 1, 0, 0, 0, 131, 132, 5, 91,
191
+ 0, 0, 132, 14, 1, 0, 0, 0, 133, 134, 5, 93, 0, 0, 134, 16, 1, 0, 0, 0, 135, 136, 5, 39, 0, 0, 136,
192
+ 18, 1, 0, 0, 0, 137, 138, 5, 34, 0, 0, 138, 20, 1, 0, 0, 0, 139, 143, 3, 17, 8, 0, 140, 142, 9, 0,
193
+ 0, 0, 141, 140, 1, 0, 0, 0, 142, 145, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 143, 141, 1, 0, 0, 0, 144,
194
+ 146, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 146, 147, 3, 17, 8, 0, 147, 158, 1, 0, 0, 0, 148, 152, 3,
195
+ 19, 9, 0, 149, 151, 9, 0, 0, 0, 150, 149, 1, 0, 0, 0, 151, 154, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0,
196
+ 152, 150, 1, 0, 0, 0, 153, 155, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 155, 156, 3, 19, 9, 0, 156, 158,
197
+ 1, 0, 0, 0, 157, 139, 1, 0, 0, 0, 157, 148, 1, 0, 0, 0, 158, 22, 1, 0, 0, 0, 159, 160, 7, 2, 0, 0,
198
+ 160, 161, 7, 3, 0, 0, 161, 162, 7, 4, 0, 0, 162, 163, 7, 4, 0, 0, 163, 24, 1, 0, 0, 0, 164, 165,
199
+ 7, 5, 0, 0, 165, 26, 1, 0, 0, 0, 166, 168, 3, 25, 12, 0, 167, 166, 1, 0, 0, 0, 168, 169, 1, 0, 0,
200
+ 0, 169, 167, 1, 0, 0, 0, 169, 170, 1, 0, 0, 0, 170, 28, 1, 0, 0, 0, 171, 173, 3, 25, 12, 0, 172,
201
+ 171, 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 172, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175, 176, 1, 0,
202
+ 0, 0, 176, 180, 5, 46, 0, 0, 177, 179, 3, 25, 12, 0, 178, 177, 1, 0, 0, 0, 179, 182, 1, 0, 0, 0,
203
+ 180, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 196, 1, 0, 0, 0, 182, 180, 1, 0, 0, 0, 183, 185,
204
+ 3, 25, 12, 0, 184, 183, 1, 0, 0, 0, 185, 188, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0,
205
+ 0, 187, 189, 1, 0, 0, 0, 188, 186, 1, 0, 0, 0, 189, 191, 5, 46, 0, 0, 190, 192, 3, 25, 12, 0, 191,
206
+ 190, 1, 0, 0, 0, 192, 193, 1, 0, 0, 0, 193, 191, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 196, 1, 0,
207
+ 0, 0, 195, 172, 1, 0, 0, 0, 195, 186, 1, 0, 0, 0, 196, 30, 1, 0, 0, 0, 197, 198, 7, 6, 0, 0, 198,
208
+ 199, 7, 7, 0, 0, 199, 200, 7, 3, 0, 0, 200, 207, 7, 8, 0, 0, 201, 202, 7, 9, 0, 0, 202, 203, 7, 10,
209
+ 0, 0, 203, 204, 7, 4, 0, 0, 204, 205, 7, 11, 0, 0, 205, 207, 7, 8, 0, 0, 206, 197, 1, 0, 0, 0, 206,
210
+ 201, 1, 0, 0, 0, 207, 32, 1, 0, 0, 0, 208, 209, 5, 43, 0, 0, 209, 34, 1, 0, 0, 0, 210, 211, 5, 45,
211
+ 0, 0, 211, 36, 1, 0, 0, 0, 212, 213, 5, 42, 0, 0, 213, 38, 1, 0, 0, 0, 214, 215, 5, 47, 0, 0, 215,
212
+ 40, 1, 0, 0, 0, 216, 221, 5, 37, 0, 0, 217, 218, 7, 12, 0, 0, 218, 219, 7, 13, 0, 0, 219, 221, 7,
213
+ 14, 0, 0, 220, 216, 1, 0, 0, 0, 220, 217, 1, 0, 0, 0, 221, 42, 1, 0, 0, 0, 222, 226, 5, 94, 0, 0,
214
+ 223, 224, 5, 42, 0, 0, 224, 226, 5, 42, 0, 0, 225, 222, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 44,
215
+ 1, 0, 0, 0, 227, 228, 7, 10, 0, 0, 228, 229, 7, 2, 0, 0, 229, 230, 7, 14, 0, 0, 230, 46, 1, 0, 0,
216
+ 0, 231, 232, 7, 13, 0, 0, 232, 233, 7, 7, 0, 0, 233, 48, 1, 0, 0, 0, 234, 235, 7, 2, 0, 0, 235, 236,
217
+ 7, 13, 0, 0, 236, 237, 7, 6, 0, 0, 237, 50, 1, 0, 0, 0, 238, 239, 5, 61, 0, 0, 239, 52, 1, 0, 0, 0,
218
+ 240, 241, 5, 60, 0, 0, 241, 242, 5, 62, 0, 0, 242, 54, 1, 0, 0, 0, 243, 244, 5, 62, 0, 0, 244, 56,
219
+ 1, 0, 0, 0, 245, 246, 5, 60, 0, 0, 246, 58, 1, 0, 0, 0, 247, 248, 5, 62, 0, 0, 248, 249, 5, 61, 0,
220
+ 0, 249, 60, 1, 0, 0, 0, 250, 251, 5, 60, 0, 0, 251, 252, 5, 61, 0, 0, 252, 62, 1, 0, 0, 0, 253, 254,
221
+ 7, 15, 0, 0, 254, 255, 7, 9, 0, 0, 255, 64, 1, 0, 0, 0, 256, 257, 7, 8, 0, 0, 257, 258, 7, 4, 0, 0,
222
+ 258, 259, 7, 11, 0, 0, 259, 260, 7, 8, 0, 0, 260, 66, 1, 0, 0, 0, 261, 262, 7, 16, 0, 0, 262, 263,
223
+ 7, 17, 0, 0, 263, 264, 7, 15, 0, 0, 264, 265, 7, 4, 0, 0, 265, 266, 7, 8, 0, 0, 266, 68, 1, 0, 0,
224
+ 0, 267, 268, 7, 14, 0, 0, 268, 269, 7, 13, 0, 0, 269, 70, 1, 0, 0, 0, 270, 271, 7, 7, 0, 0, 271,
225
+ 272, 7, 8, 0, 0, 272, 273, 7, 18, 0, 0, 273, 274, 7, 8, 0, 0, 274, 275, 7, 10, 0, 0, 275, 276, 7,
226
+ 6, 0, 0, 276, 72, 1, 0, 0, 0, 277, 278, 7, 3, 0, 0, 278, 279, 7, 2, 0, 0, 279, 280, 7, 6, 0, 0, 280,
227
+ 281, 7, 15, 0, 0, 281, 282, 7, 4, 0, 0, 282, 74, 1, 0, 0, 0, 283, 284, 7, 9, 0, 0, 284, 285, 7, 13,
228
+ 0, 0, 285, 286, 7, 7, 0, 0, 286, 76, 1, 0, 0, 0, 287, 288, 7, 9, 0, 0, 288, 289, 7, 7, 0, 0, 289,
229
+ 290, 7, 13, 0, 0, 290, 291, 7, 12, 0, 0, 291, 78, 1, 0, 0, 0, 292, 293, 7, 14, 0, 0, 293, 294, 7,
230
+ 13, 0, 0, 294, 295, 7, 16, 0, 0, 295, 296, 7, 2, 0, 0, 296, 80, 1, 0, 0, 0, 297, 298, 7, 6, 0, 0,
231
+ 298, 299, 7, 13, 0, 0, 299, 82, 1, 0, 0, 0, 300, 301, 5, 60, 0, 0, 301, 302, 5, 45, 0, 0, 302, 84,
232
+ 1, 0, 0, 0, 303, 304, 7, 15, 0, 0, 304, 305, 7, 2, 0, 0, 305, 306, 7, 18, 0, 0, 306, 307, 7, 3, 0,
233
+ 0, 307, 308, 7, 6, 0, 0, 308, 86, 1, 0, 0, 0, 309, 310, 7, 13, 0, 0, 310, 311, 7, 3, 0, 0, 311, 312,
234
+ 7, 6, 0, 0, 312, 313, 7, 18, 0, 0, 313, 314, 7, 3, 0, 0, 314, 315, 7, 6, 0, 0, 315, 88, 1, 0, 0, 0,
235
+ 316, 317, 7, 11, 0, 0, 317, 318, 7, 3, 0, 0, 318, 319, 7, 19, 0, 0, 319, 320, 7, 18, 0, 0, 320,
236
+ 321, 7, 7, 0, 0, 321, 322, 7, 13, 0, 0, 322, 323, 7, 20, 0, 0, 323, 324, 7, 7, 0, 0, 324, 325, 7,
237
+ 10, 0, 0, 325, 333, 7, 12, 0, 0, 326, 327, 7, 12, 0, 0, 327, 328, 7, 13, 0, 0, 328, 329, 7, 14,
238
+ 0, 0, 329, 330, 7, 3, 0, 0, 330, 331, 7, 4, 0, 0, 331, 333, 7, 8, 0, 0, 332, 316, 1, 0, 0, 0, 332,
239
+ 326, 1, 0, 0, 0, 333, 90, 1, 0, 0, 0, 334, 335, 7, 7, 0, 0, 335, 336, 7, 8, 0, 0, 336, 337, 7, 6,
240
+ 0, 0, 337, 338, 7, 3, 0, 0, 338, 339, 7, 7, 0, 0, 339, 340, 7, 2, 0, 0, 340, 92, 1, 0, 0, 0, 341,
241
+ 345, 7, 21, 0, 0, 342, 344, 7, 22, 0, 0, 343, 342, 1, 0, 0, 0, 344, 347, 1, 0, 0, 0, 345, 343, 1,
242
+ 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 94, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 20, 0, 98, 103, 109, 115,
243
+ 120, 143, 152, 157, 169, 174, 180, 186, 193, 195, 206, 220, 225, 332, 345, 1, 6, 0, 0];
244
+ static __ATN;
245
+ static get _ATN() {
246
+ if (!PSCLexer.__ATN) {
247
+ PSCLexer.__ATN = new ATNDeserializer().deserialize(PSCLexer._serializedATN);
248
+ }
249
+ return PSCLexer.__ATN;
250
+ }
251
+ static DecisionsToDFA = PSCLexer._ATN.decisionToState.map((ds, index) => new DFA(ds, index));
252
+ }
253
+ //# sourceMappingURL=PSCLexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PSCLexer.js","sourceRoot":"","sources":["../../src/_antlr/PSCLexer.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,2EAA2E;AAC3E,OAAO,EACN,GAAG,EACH,eAAe,EACf,UAAU,EACV,aAAa,EAAE,GAAG,EAClB,KAAK,EACL,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,KAAK,EACL,MAAM,QAAQ,CAAC;AAChB,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,YAAY;IAC1C,MAAM,CAAU,MAAM,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAU,MAAM,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAU,UAAU,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAU,OAAO,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAU,OAAO,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAU,KAAK,GAAG,CAAC,CAAC;IAC1B,MAAM,CAAU,MAAM,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAU,MAAM,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAU,OAAO,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAU,OAAO,GAAG,EAAE,CAAC;IAC7B,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,IAAI,GAAG,EAAE,CAAC;IAC1B,MAAM,CAAU,OAAO,GAAG,EAAE,CAAC;IAC7B,MAAM,CAAU,KAAK,GAAG,EAAE,CAAC;IAC3B,MAAM,CAAU,OAAO,GAAG,EAAE,CAAC;IAC7B,MAAM,CAAU,IAAI,GAAG,EAAE,CAAC;IAC1B,MAAM,CAAU,KAAK,GAAG,EAAE,CAAC;IAC3B,MAAM,CAAU,QAAQ,GAAG,EAAE,CAAC;IAC9B,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,QAAQ,GAAG,EAAE,CAAC;IAC9B,MAAM,CAAU,GAAG,GAAG,EAAE,CAAC;IACzB,MAAM,CAAU,EAAE,GAAG,EAAE,CAAC;IACxB,MAAM,CAAU,GAAG,GAAG,EAAE,CAAC;IACzB,MAAM,CAAU,KAAK,GAAG,EAAE,CAAC;IAC3B,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,EAAE,GAAG,EAAE,CAAC;IACxB,MAAM,CAAU,EAAE,GAAG,EAAE,CAAC;IACxB,MAAM,CAAU,IAAI,GAAG,EAAE,CAAC;IAC1B,MAAM,CAAU,IAAI,GAAG,EAAE,CAAC;IAC1B,MAAM,CAAU,EAAE,GAAG,EAAE,CAAC;IACxB,MAAM,CAAU,IAAI,GAAG,EAAE,CAAC;IAC1B,MAAM,CAAU,KAAK,GAAG,EAAE,CAAC;IAC3B,MAAM,CAAU,EAAE,GAAG,EAAE,CAAC;IACxB,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,KAAK,GAAG,EAAE,CAAC;IAC3B,MAAM,CAAU,GAAG,GAAG,EAAE,CAAC;IACzB,MAAM,CAAU,IAAI,GAAG,EAAE,CAAC;IAC1B,MAAM,CAAU,IAAI,GAAG,EAAE,CAAC;IAC1B,MAAM,CAAU,EAAE,GAAG,EAAE,CAAC;IACxB,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,KAAK,GAAG,EAAE,CAAC;IAC3B,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,UAAU,GAAG,EAAE,CAAC;IAChC,MAAM,CAAU,MAAM,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAU,EAAE,GAAG,EAAE,CAAC;IACxB,MAAM,CAAU,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IAEhC,MAAM,CAAU,YAAY,GAAa,CAAE,uBAAuB,EAAE,QAAQ,CAAE,CAAC;IAC/E,MAAM,CAAU,YAAY,GAAsB,CAAE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,OAAO;QAClB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,UAAU;QACrB,IAAI,EAAE,UAAU,CAAE,CAAC;IACvE,MAAM,CAAU,aAAa,GAAsB,CAAE,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,YAAY;QACtB,SAAS;QACT,SAAS;QACT,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,SAAS;QACnB,SAAS;QACT,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,MAAM;QAChB,SAAS;QACT,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,OAAO;QACf,UAAU;QACV,QAAQ,EAAE,QAAQ;QAClB,UAAU;QACV,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,QAAQ;QACjB,YAAY;QACZ,QAAQ,EAAE,IAAI,CAAE,CAAC;IACtE,MAAM,CAAU,SAAS,GAAa,CAAE,cAAc,EAAG,CAAC;IAE1D,MAAM,CAAU,SAAS,GAAa;QAC5C,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;QAC1E,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;QAC5E,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU;QACtE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;QACvE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;QACrE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI;KACzD,CAAC;IAGF,YAAY,KAAiB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,EAAE,IAAI,sBAAsB,EAAE,CAAC,CAAC;IAClH,CAAC;IAED,IAAW,eAAe,KAAa,OAAO,aAAa,CAAC,CAAC,CAAC;IAE9D,IAAW,YAAY,KAAwB,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9E,IAAW,aAAa,KAAwB,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IAChF,IAAW,SAAS,KAAe,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAE/D,IAAW,aAAa,KAAe,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IAExE,IAAW,YAAY,KAAe,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAErE,IAAW,SAAS,KAAe,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAExD,MAAM,CAAU,cAAc,GAAa,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACtE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;QACxE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;QACxE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;QACvE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG;QACzE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;QACtE,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;QACtE,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG;QACvE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG;QACzE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACtE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;QACxE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;QACxE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;QACxE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE;QACvE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;QACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;QACtE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;QACvE,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE;QACvE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG;QACxE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;QACtE,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;QACxE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE;QACvE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG;QACzE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG;QACxE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;QACtE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG;QACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE;QACtE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACxE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACvE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;QACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACxE,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE;QACxE,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACvE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACvE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC;QACtE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;QACxE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;QACtE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG;QACtE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;QACvE,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG;QACxE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACtE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE;QACxE,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACxE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE;QACvE,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACvE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC;QACtE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE;QACxE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;QACzE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE;QACxE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC;QACvE,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;QACzE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;QACxE,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACtE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACxE,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE;QACxE,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACtE,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACtE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE;QACxE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG;QACzE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;QACvE,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACtE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC;QACvE,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE;QACtE,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACvE,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACtE,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG;QACtE,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC;QACvE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;QACxE,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAE7D,MAAM,CAAC,KAAK,CAAM;IACnB,MAAM,KAAK,IAAI;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACrB,QAAQ,CAAC,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC;IACvB,CAAC;IAGD,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAE,CAAC,EAAiB,EAAE,KAAa,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAE,CAAC"}