@designliquido/mapler 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/analisador-semantico/analisador-semantico-mapler.d.ts +30 -0
- package/analisador-semantico/analisador-semantico-mapler.d.ts.map +1 -0
- package/analisador-semantico/analisador-semantico-mapler.js +104 -0
- package/analisador-semantico/analisador-semantico-mapler.js.map +1 -0
- package/analisador-semantico/index.d.ts +2 -0
- package/analisador-semantico/index.d.ts.map +1 -0
- package/analisador-semantico/index.js +18 -0
- package/analisador-semantico/index.js.map +1 -0
- package/avaliador-sintatico/avaliador-sintatico-mapler.d.ts +62 -0
- package/avaliador-sintatico/avaliador-sintatico-mapler.d.ts.map +1 -0
- package/avaliador-sintatico/avaliador-sintatico-mapler.js +486 -0
- package/avaliador-sintatico/avaliador-sintatico-mapler.js.map +1 -0
- package/avaliador-sintatico/index.d.ts +2 -0
- package/avaliador-sintatico/index.d.ts.map +1 -0
- package/avaliador-sintatico/index.js +18 -0
- package/avaliador-sintatico/index.js.map +1 -0
- package/index.d.ts +4 -0
- package/index.d.ts.map +1 -0
- package/index.js +20 -0
- package/index.js.map +1 -0
- package/interpretador/comum.d.ts +11 -0
- package/interpretador/comum.d.ts.map +1 -0
- package/interpretador/comum.js +138 -0
- package/interpretador/comum.js.map +1 -0
- package/interpretador/index.d.ts +3 -0
- package/interpretador/index.d.ts.map +1 -0
- package/interpretador/index.js +19 -0
- package/interpretador/index.js.map +1 -0
- package/interpretador/interpretador-mapler-com-depuracao.d.ts +48 -0
- package/interpretador/interpretador-mapler-com-depuracao.d.ts.map +1 -0
- package/interpretador/interpretador-mapler-com-depuracao.js +152 -0
- package/interpretador/interpretador-mapler-com-depuracao.js.map +1 -0
- package/interpretador/interpretador-mapler.d.ts +47 -0
- package/interpretador/interpretador-mapler.d.ts.map +1 -0
- package/interpretador/interpretador-mapler.js +136 -0
- package/interpretador/interpretador-mapler.js.map +1 -0
- package/lexador/index.d.ts +2 -0
- package/lexador/index.d.ts.map +1 -0
- package/lexador/index.js +18 -0
- package/lexador/index.js.map +1 -0
- package/lexador/lexador-mapler.d.ts +11 -0
- package/lexador/lexador-mapler.d.ts.map +1 -0
- package/lexador/lexador-mapler.js +205 -0
- package/lexador/lexador-mapler.js.map +1 -0
- package/lexador/palavras-reservadas.d.ts +31 -0
- package/lexador/palavras-reservadas.d.ts.map +1 -0
- package/lexador/palavras-reservadas.js +38 -0
- package/lexador/palavras-reservadas.js.map +1 -0
- package/package.json +43 -0
- package/tipos-de-simbolos/lexico-regular.d.ts +56 -0
- package/tipos-de-simbolos/lexico-regular.d.ts.map +1 -0
- package/tipos-de-simbolos/lexico-regular.js +57 -0
- package/tipos-de-simbolos/lexico-regular.js.map +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Atribuir } from '@designliquido/delegua/construtos';
|
|
2
|
+
import { Declaracao, Expressao, Retorna, Var } from '@designliquido/delegua/declaracoes';
|
|
3
|
+
import { SimboloInterface } from '@designliquido/delegua/interfaces';
|
|
4
|
+
import { DiagnosticoAnalisadorSemantico } from '@designliquido/delegua/interfaces/erros';
|
|
5
|
+
import { FuncaoHipoteticaInterface } from '@designliquido/delegua/interfaces/funcao-hipotetica-interface';
|
|
6
|
+
import { RetornoAnalisadorSemantico } from '@designliquido/delegua/interfaces/retornos/retorno-analisador-semantico';
|
|
7
|
+
import { VariavelHipoteticaInterface } from '@designliquido/delegua/interfaces/variavel-hipotetica-interface';
|
|
8
|
+
import { RetornoQuebra } from '@designliquido/delegua/quebras';
|
|
9
|
+
import { AnalisadorSemanticoBase } from '@designliquido/delegua/analisador-semantico/analisador-semantico-base';
|
|
10
|
+
import { PilhaVariaveis } from '@designliquido/delegua/analisador-semantico/pilha-variaveis';
|
|
11
|
+
export declare class AnalisadorSemanticoMapler extends AnalisadorSemanticoBase {
|
|
12
|
+
pilhaVariaveis: PilhaVariaveis;
|
|
13
|
+
variaveis: {
|
|
14
|
+
[nomeVariavel: string]: VariavelHipoteticaInterface;
|
|
15
|
+
};
|
|
16
|
+
funcoes: {
|
|
17
|
+
[nomeFuncao: string]: FuncaoHipoteticaInterface;
|
|
18
|
+
};
|
|
19
|
+
atual: number;
|
|
20
|
+
diagnosticos: DiagnosticoAnalisadorSemantico[];
|
|
21
|
+
constructor();
|
|
22
|
+
erro(simbolo: SimboloInterface, mensagem: string): void;
|
|
23
|
+
aviso(simbolo: SimboloInterface, mensagem: string): void;
|
|
24
|
+
visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<void>;
|
|
25
|
+
visitarDeclaracaoDeExpressao(declaracao: Expressao): any;
|
|
26
|
+
visitarDeclaracaoVar(declaracao: Var): Promise<any>;
|
|
27
|
+
visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
|
|
28
|
+
analisar(declaracoes: Declaracao[]): RetornoAnalisadorSemantico;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=analisador-semantico-mapler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analisador-semantico-mapler.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-mapler.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EAGX,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,UAAU,EACV,SAAS,EACT,OAAO,EACP,GAAG,EACN,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAyB,MAAM,yCAAyC,CAAC;AAChH,OAAO,EAAE,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC1G,OAAO,EAAE,0BAA0B,EAAE,MAAM,yEAAyE,CAAC;AACrH,OAAO,EAAE,2BAA2B,EAAE,MAAM,iEAAiE,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uEAAuE,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAE7F,qBAAa,yBAA0B,SAAQ,uBAAuB;IAClE,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,2BAA2B,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE;QAAE,CAAC,UAAU,EAAE,MAAM,GAAG,yBAAyB,CAAA;KAAE,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,8BAA8B,EAAE,CAAC;;IAW/C,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUvD,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAUxD,4BAA4B,CAAC,SAAS,EAAE,QAAQ;IA6ChD,4BAA4B,CAAC,UAAU,EAAE,SAAS;IAIlD,oBAAoB,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAenD,wBAAwB,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAIrE,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,0BAA0B;CAclE"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AnalisadorSemanticoMapler = void 0;
|
|
4
|
+
const construtos_1 = require("@designliquido/delegua/construtos");
|
|
5
|
+
const erros_1 = require("@designliquido/delegua/interfaces/erros");
|
|
6
|
+
const analisador_semantico_base_1 = require("@designliquido/delegua/analisador-semantico/analisador-semantico-base");
|
|
7
|
+
const pilha_variaveis_1 = require("@designliquido/delegua/analisador-semantico/pilha-variaveis");
|
|
8
|
+
class AnalisadorSemanticoMapler extends analisador_semantico_base_1.AnalisadorSemanticoBase {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.pilhaVariaveis = new pilha_variaveis_1.PilhaVariaveis();
|
|
12
|
+
this.variaveis = {};
|
|
13
|
+
this.funcoes = {};
|
|
14
|
+
this.atual = 0;
|
|
15
|
+
this.diagnosticos = [];
|
|
16
|
+
}
|
|
17
|
+
erro(simbolo, mensagem) {
|
|
18
|
+
this.diagnosticos.push({
|
|
19
|
+
simbolo: simbolo,
|
|
20
|
+
mensagem: mensagem,
|
|
21
|
+
hashArquivo: simbolo.hashArquivo,
|
|
22
|
+
linha: simbolo.linha,
|
|
23
|
+
severidade: erros_1.DiagnosticoSeveridade.ERRO,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
aviso(simbolo, mensagem) {
|
|
27
|
+
this.diagnosticos.push({
|
|
28
|
+
simbolo: simbolo,
|
|
29
|
+
mensagem: mensagem,
|
|
30
|
+
hashArquivo: simbolo.hashArquivo,
|
|
31
|
+
linha: simbolo.linha,
|
|
32
|
+
severidade: erros_1.DiagnosticoSeveridade.AVISO,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
visitarExpressaoDeAtribuicao(expressao) {
|
|
36
|
+
let valor = this.variaveis[expressao.simbolo.lexema];
|
|
37
|
+
if (!valor) {
|
|
38
|
+
this.erro(expressao.simbolo, `Variável ${expressao.simbolo.lexema} ainda não foi declarada até este ponto.`);
|
|
39
|
+
return Promise.resolve();
|
|
40
|
+
}
|
|
41
|
+
if (valor.tipo) {
|
|
42
|
+
if (expressao.valor instanceof construtos_1.Literal && valor.tipo.includes('[]')) {
|
|
43
|
+
this.erro(expressao.simbolo, `Atribuição inválida, esperado tipo '${valor.tipo}' na atribuição.`);
|
|
44
|
+
return Promise.resolve();
|
|
45
|
+
}
|
|
46
|
+
if (expressao.valor instanceof construtos_1.Vetor && !valor.tipo.includes('[]')) {
|
|
47
|
+
this.erro(expressao.simbolo, `Atribuição inválida, esperado tipo '${valor.tipo}' na atribuição.`);
|
|
48
|
+
return Promise.resolve();
|
|
49
|
+
}
|
|
50
|
+
if (expressao.valor instanceof construtos_1.Literal) {
|
|
51
|
+
let valorLiteral = typeof expressao.valor.valor;
|
|
52
|
+
if (!['qualquer'].includes(valor.tipo)) {
|
|
53
|
+
if (valorLiteral === 'string') {
|
|
54
|
+
if (valor.tipo != 'texto') {
|
|
55
|
+
this.erro(expressao.simbolo, `Esperado tipo '${valor.tipo}' na atribuição.`);
|
|
56
|
+
return Promise.resolve();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (valorLiteral === 'number') {
|
|
60
|
+
if (!['inteiro', 'real'].includes(valor.tipo)) {
|
|
61
|
+
this.erro(expressao.simbolo, `Esperado tipo '${valor.tipo}' na atribuição.`);
|
|
62
|
+
return Promise.resolve();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (this.variaveis[expressao.simbolo.lexema]) {
|
|
69
|
+
this.variaveis[expressao.simbolo.lexema].valor = expressao.valor;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
visitarDeclaracaoDeExpressao(declaracao) {
|
|
73
|
+
return declaracao.expressao.aceitar(this);
|
|
74
|
+
}
|
|
75
|
+
visitarDeclaracaoVar(declaracao) {
|
|
76
|
+
this.variaveis[declaracao.simbolo.lexema] = {
|
|
77
|
+
imutavel: false,
|
|
78
|
+
tipo: declaracao.tipo,
|
|
79
|
+
valor: declaracao.inicializador !== null
|
|
80
|
+
? declaracao.inicializador.valor !== undefined
|
|
81
|
+
? declaracao.inicializador.valor
|
|
82
|
+
: declaracao.inicializador
|
|
83
|
+
: undefined,
|
|
84
|
+
};
|
|
85
|
+
return Promise.resolve();
|
|
86
|
+
}
|
|
87
|
+
visitarExpressaoRetornar(declaracao) {
|
|
88
|
+
return Promise.resolve(null);
|
|
89
|
+
}
|
|
90
|
+
analisar(declaracoes) {
|
|
91
|
+
this.variaveis = {};
|
|
92
|
+
this.atual = 0;
|
|
93
|
+
this.diagnosticos = [];
|
|
94
|
+
while (this.atual < declaracoes.length) {
|
|
95
|
+
declaracoes[this.atual].aceitar(this);
|
|
96
|
+
this.atual++;
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
diagnosticos: this.diagnosticos,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.AnalisadorSemanticoMapler = AnalisadorSemanticoMapler;
|
|
104
|
+
//# sourceMappingURL=analisador-semantico-mapler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analisador-semantico-mapler.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-mapler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./analisador-semantico-mapler"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { RetornoLexador, RetornoAvaliadorSintatico } from '@designliquido/delegua/interfaces/retornos';
|
|
2
|
+
import { AvaliadorSintaticoBase } from '@designliquido/delegua/avaliador-sintatico/avaliador-sintatico-base';
|
|
3
|
+
import { Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Fazer, Leia, Para, Se } from '@designliquido/delegua/declaracoes';
|
|
4
|
+
import { Construto, FuncaoConstruto } from '@designliquido/delegua/construtos';
|
|
5
|
+
import { SimboloInterface } from '@designliquido/delegua/interfaces';
|
|
6
|
+
export declare class AvaliadorSintaticoMapler extends AvaliadorSintaticoBase {
|
|
7
|
+
private criarVetorNDimensional;
|
|
8
|
+
private validarDimensoesVetor;
|
|
9
|
+
private logicaComumParametroMapler;
|
|
10
|
+
/**
|
|
11
|
+
* Validação do segmento de declaração de variáveis (opcional).
|
|
12
|
+
* @returns Vetor de Construtos para inicialização de variáveis.
|
|
13
|
+
*/
|
|
14
|
+
private validarSegmentoVariaveis;
|
|
15
|
+
estaNoFinal(): boolean;
|
|
16
|
+
primario(): Construto;
|
|
17
|
+
comparacaoIgualdade(): Construto;
|
|
18
|
+
ou(): Construto;
|
|
19
|
+
/**
|
|
20
|
+
* Método que resolve atribuições.
|
|
21
|
+
* @returns Um construto do tipo `Atribuir`, `Conjunto` ou `AtribuicaoPorIndice`.
|
|
22
|
+
*/
|
|
23
|
+
atribuir(): Construto;
|
|
24
|
+
expressao(): Construto;
|
|
25
|
+
blocoEscopo(): any[];
|
|
26
|
+
chamar(): Construto;
|
|
27
|
+
corpoDaFuncao(tipo: any): FuncaoConstruto;
|
|
28
|
+
declaracaoEnquanto(): Enquanto;
|
|
29
|
+
declaracaoEscolha(): Escolha;
|
|
30
|
+
private logicaComumEscreva;
|
|
31
|
+
declaracaoEscreva(): Escreva;
|
|
32
|
+
declaracaoEscrevaMesmaLinha(): EscrevaMesmaLinha;
|
|
33
|
+
/**
|
|
34
|
+
* Criação de declaração "repita".
|
|
35
|
+
* @returns Um construto do tipo Fazer
|
|
36
|
+
*/
|
|
37
|
+
declaracaoFazer(): Fazer;
|
|
38
|
+
/**
|
|
39
|
+
* Criação de declaração "interrompa".
|
|
40
|
+
* Em Mapler, "sustar" é chamada de "interrompa".
|
|
41
|
+
* @returns Uma declaração do tipo Sustar.
|
|
42
|
+
*/
|
|
43
|
+
private declaracaoInterrompa;
|
|
44
|
+
/**
|
|
45
|
+
* Análise de uma declaração `leia()`. No Mapler, `leia()` aceita 1..N argumentos.
|
|
46
|
+
* @returns Uma declaração `Leia`.
|
|
47
|
+
*/
|
|
48
|
+
declaracaoLeia(): Leia;
|
|
49
|
+
declaracaoPara(): Para;
|
|
50
|
+
/**
|
|
51
|
+
* Procedimentos nada mais são do que funções que não retornam valor.
|
|
52
|
+
*/
|
|
53
|
+
declaracaoSe(): Se;
|
|
54
|
+
resolverDeclaracaoForaDeBloco(): Declaracao | Declaracao[] | Construto | Construto[] | any;
|
|
55
|
+
/**
|
|
56
|
+
* No Mapler, há uma determinada cadência de validação de símbolos.
|
|
57
|
+
* @param retornoLexador Os símbolos entendidos pelo Lexador.
|
|
58
|
+
* @param hashArquivo Obrigatório por interface mas não usado aqui.
|
|
59
|
+
*/
|
|
60
|
+
analisar(retornoLexador: RetornoLexador<SimboloInterface>, hashArquivo: number): RetornoAvaliadorSintatico<Declaracao>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=avaliador-sintatico-mapler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico-mapler.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-mapler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,qEAAqE,CAAC;AAC7G,OAAO,EAEH,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,EAAE,EAGL,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAOH,SAAS,EAET,eAAe,EAIlB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAIrE,qBAAa,wBAAyB,SAAQ,sBAAsB;IAChE,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,0BAA0B;IAmClC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAkGhC,WAAW,IAAI,OAAO;IAItB,QAAQ,IAAI,SAAS;IAsCrB,mBAAmB,IAAI,SAAS;IAYhC,EAAE,IAAI,SAAS;IAYf;;;OAGG;IACH,QAAQ,IAAI,SAAS;IA0BrB,SAAS,IAAI,SAAS;IAKtB,WAAW,IAAI,GAAG,EAAE;IAiBpB,MAAM,IAAI,SAAS;IA0BnB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,eAAe;IAazC,kBAAkB,IAAI,QAAQ;IA2C9B,iBAAiB,IAAI,OAAO;IAI5B,OAAO,CAAC,kBAAkB;IAkB1B,iBAAiB,IAAI,OAAO;IAI5B,2BAA2B,IAAI,iBAAiB;IAQhD;;;OAGG;IACH,eAAe,IAAI,KAAK;IAkCxB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;IACH,cAAc,IAAI,IAAI;IAoBtB,cAAc,IAAI,IAAI;IAwGtB;;OAEG;IAyBH,YAAY,IAAI,EAAE;IA2DlB,6BAA6B,IAAI,UAAU,GAAG,UAAU,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,GAAG;IA4B1F;;;;OAIG;IACH,QAAQ,CACJ,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAChD,WAAW,EAAE,MAAM,GACpB,yBAAyB,CAAC,UAAU,CAAC;CAsB3C"}
|