@semacode/cli 1.5.16 → 1.5.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/AGENTS.md +272 -0
  2. package/LICENSE +22 -0
  3. package/README.md +104 -112
  4. package/SEMA_BRIEF.curto.txt +9 -0
  5. package/SEMA_BRIEF.md +63 -0
  6. package/SEMA_BRIEF.micro.txt +7 -0
  7. package/SEMA_INDEX.json +783 -0
  8. package/dist/angular-consumer-standalone.d.ts +6 -0
  9. package/dist/angular-consumer-standalone.js.map +1 -0
  10. package/dist/cpp-symbols.d.ts +10 -0
  11. package/dist/cpp-symbols.js.map +1 -0
  12. package/dist/docs.d.ts +56 -0
  13. package/dist/docs.js.map +1 -0
  14. package/dist/dotnet-http.d.ts +23 -0
  15. package/dist/dotnet-http.js.map +1 -0
  16. package/dist/drift.d.ts +225 -0
  17. package/dist/drift.js +5 -111
  18. package/dist/drift.js.map +1 -0
  19. package/dist/go-http.d.ts +23 -0
  20. package/dist/go-http.js.map +1 -0
  21. package/dist/importador.d.ts +31 -0
  22. package/dist/importador.js +1 -200
  23. package/dist/importador.js.map +1 -0
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.js +59 -479
  26. package/dist/index.js.map +1 -0
  27. package/dist/java-http.d.ts +23 -0
  28. package/dist/java-http.js.map +1 -0
  29. package/dist/lua-symbols.d.ts +10 -0
  30. package/dist/lua-symbols.js.map +1 -0
  31. package/dist/php-symbols.d.ts +24 -0
  32. package/dist/php-symbols.js.map +1 -0
  33. package/dist/projeto.d.ts +53 -0
  34. package/dist/projeto.js +0 -20
  35. package/dist/projeto.js.map +1 -0
  36. package/dist/python-http.d.ts +23 -0
  37. package/dist/python-http.js.map +1 -0
  38. package/dist/rust-http.d.ts +23 -0
  39. package/dist/rust-http.js.map +1 -0
  40. package/dist/tipos.d.ts +3 -0
  41. package/dist/tipos.js.map +1 -0
  42. package/dist/typescript-http.d.ts +35 -0
  43. package/dist/typescript-http.js.map +1 -0
  44. package/docs/AGENT_STARTER.md +103 -0
  45. package/docs/cli.md +106 -0
  46. package/docs/como-ensinar-a-sema-para-ia.md +149 -0
  47. package/docs/deploy.md +70 -0
  48. package/docs/documentacao.md +63 -0
  49. package/docs/env.md +56 -0
  50. package/docs/extensao-vscode.md +45 -0
  51. package/docs/fluxo-pratico-ia-sema.md +181 -0
  52. package/docs/instalacao-e-primeiro-uso.md +112 -0
  53. package/docs/integracao-com-ia.md +103 -0
  54. package/docs/mcp.md +51 -0
  55. package/docs/pagamento-ponta-a-ponta.md +165 -0
  56. package/docs/persistencia-vendor-first.md +145 -0
  57. package/docs/prompt-base-ia-sema.md +105 -0
  58. package/docs/rollback.md +47 -0
  59. package/docs/sintaxe.md +212 -0
  60. package/exemplos/agendamento.sema +105 -0
  61. package/exemplos/assinatura.sema +133 -0
  62. package/exemplos/auditoria.sema +89 -0
  63. package/exemplos/autenticacao.sema +125 -0
  64. package/exemplos/automacao.sema +107 -0
  65. package/exemplos/cadastro_usuario.sema +54 -0
  66. package/exemplos/calculadora.sema +78 -0
  67. package/exemplos/crud_simples.sema +89 -0
  68. package/exemplos/estoque.sema +127 -0
  69. package/exemplos/exportacao.sema +94 -0
  70. package/exemplos/fila.sema +130 -0
  71. package/exemplos/integracao_externa.sema +94 -0
  72. package/exemplos/multi_tenant.sema +140 -0
  73. package/exemplos/notificacao.sema +149 -0
  74. package/exemplos/operacao_estrategia.sema +633 -0
  75. package/exemplos/pagamento.sema +434 -0
  76. package/exemplos/pagamento_dominio.sema +35 -0
  77. package/exemplos/pedido.sema +255 -0
  78. package/exemplos/permissao.sema +121 -0
  79. package/exemplos/persistencia_vendor_first.sema +86 -0
  80. package/exemplos/relatorio.sema +93 -0
  81. package/exemplos/replica_analitica_erp.sema +160 -0
  82. package/exemplos/testes_embutidos.sema +45 -0
  83. package/exemplos/tratamento_erro.sema +157 -0
  84. package/exemplos/upload_arquivo.sema +93 -0
  85. package/exemplos/webhook.sema +94 -0
  86. package/llms-full.txt +34 -0
  87. package/llms.txt +17 -0
  88. package/node_modules/@sema/gerador-css/dist/index.d.ts +3 -0
  89. package/node_modules/@sema/gerador-css/dist/index.js +592 -0
  90. package/node_modules/@sema/gerador-css/dist/index.js.map +1 -0
  91. package/node_modules/@sema/gerador-css/package.json +7 -0
  92. package/node_modules/@sema/gerador-dart/dist/index.d.ts +3 -0
  93. package/node_modules/@sema/gerador-dart/dist/index.js +44 -0
  94. package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -0
  95. package/node_modules/@sema/gerador-dart/package.json +7 -0
  96. package/node_modules/@sema/gerador-html/dist/index.d.ts +3 -0
  97. package/node_modules/@sema/gerador-html/dist/index.js +163 -0
  98. package/node_modules/@sema/gerador-html/dist/index.js.map +1 -0
  99. package/node_modules/@sema/gerador-html/package.json +7 -0
  100. package/node_modules/@sema/gerador-javascript/dist/index.d.ts +3 -0
  101. package/node_modules/@sema/gerador-javascript/dist/index.js +421 -0
  102. package/node_modules/@sema/gerador-javascript/dist/index.js.map +1 -0
  103. package/node_modules/@sema/gerador-javascript/package.json +7 -0
  104. package/node_modules/@sema/gerador-lua/dist/index.d.ts +3 -0
  105. package/node_modules/@sema/gerador-lua/dist/index.js +328 -0
  106. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -0
  107. package/node_modules/@sema/gerador-lua/package.json +7 -0
  108. package/node_modules/@sema/gerador-python/dist/index.d.ts +6 -0
  109. package/node_modules/@sema/gerador-python/dist/index.js +729 -0
  110. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -0
  111. package/node_modules/@sema/gerador-python/package.json +7 -0
  112. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +6 -0
  113. package/node_modules/@sema/gerador-typescript/dist/index.js +793 -0
  114. package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -0
  115. package/node_modules/@sema/gerador-typescript/package.json +7 -0
  116. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +123 -0
  117. package/node_modules/@sema/nucleo/dist/ast/tipos.js +2 -0
  118. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +1 -0
  119. package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +21 -0
  120. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +12 -0
  121. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +1 -0
  122. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +9 -0
  123. package/node_modules/@sema/nucleo/dist/formatador/index.js +460 -0
  124. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -0
  125. package/node_modules/@sema/nucleo/dist/index.d.ts +35 -0
  126. package/node_modules/@sema/nucleo/dist/index.js +96 -0
  127. package/node_modules/@sema/nucleo/dist/index.js.map +1 -0
  128. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +5 -0
  129. package/node_modules/@sema/nucleo/dist/ir/conversor.js +877 -0
  130. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -0
  131. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +345 -0
  132. package/node_modules/@sema/nucleo/dist/ir/modelos.js +2 -0
  133. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +1 -0
  134. package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +7 -0
  135. package/node_modules/@sema/nucleo/dist/lexer/lexer.js +122 -0
  136. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +1 -0
  137. package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +8 -0
  138. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +61 -0
  139. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -0
  140. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +9 -0
  141. package/node_modules/@sema/nucleo/dist/parser/parser.js +767 -0
  142. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -0
  143. package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +39 -0
  144. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +294 -0
  145. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -0
  146. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +59 -0
  147. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1681 -0
  148. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -0
  149. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +106 -0
  150. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +475 -0
  151. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -0
  152. package/node_modules/@sema/nucleo/dist/semantico/seguranca.d.ts +91 -0
  153. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js +258 -0
  154. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +1 -0
  155. package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +2 -0
  156. package/node_modules/@sema/nucleo/dist/util/arquivos.js +25 -0
  157. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +1 -0
  158. package/node_modules/@sema/nucleo/package.json +7 -0
  159. package/node_modules/@sema/padroes/dist/index.d.ts +25 -0
  160. package/node_modules/@sema/padroes/dist/index.js +316 -0
  161. package/node_modules/@sema/padroes/dist/index.js.map +1 -0
  162. package/node_modules/@sema/padroes/package.json +7 -0
  163. package/package.json +32 -23
  164. package/semacode-cli-1.3.1.tgz +0 -0
  165. package/src/angular-consumer-standalone.ts +0 -312
  166. package/src/cpp-symbols.ts +0 -82
  167. package/src/docs.ts +0 -535
  168. package/src/dotnet-http.ts +0 -355
  169. package/src/drift.ts +0 -4933
  170. package/src/go-http.ts +0 -118
  171. package/src/importador.ts +0 -3891
  172. package/src/index.ts +0 -5641
  173. package/src/java-http.ts +0 -247
  174. package/src/lua-symbols.ts +0 -114
  175. package/src/php-symbols.ts +0 -462
  176. package/src/projeto.ts +0 -862
  177. package/src/python-http.ts +0 -258
  178. package/src/rust-http.ts +0 -125
  179. package/src/tipos.ts +0 -24
  180. package/src/typescript-http.ts +0 -1076
  181. package/tsconfig.json +0 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversor.js","sourceRoot":"","sources":["../../src/ir/conversor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,EAC1B,iCAAiC,EACjC,2BAA2B,EAC3B,kCAAkC,EAClC,kCAAkC,EAClC,qBAAqB,EACrB,oCAAoC,EACpC,qCAAqC,EACrC,2BAA2B,EAC3B,0BAA0B,GAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAkCzI,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,OAAO;IACP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,UAAU;IACV,MAAM;IACN,UAAU;IACV,WAAW;IACX,IAAI;IACJ,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,OAAO;CACR,CAAC,CAAC;AAEH,SAAS,iBAAiB,CAAC,KAAuB,EAAE,YAAoB;IACtE,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAgC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,IAAI,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;AACrJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAmC,EAAE,GAAG,KAAe;IAC7E,OAAO,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;AAC7E,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,IAAI;SACR,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC;SACvC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,SAAiB;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAE,CAAC;QACjC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,mBAAmB,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,GAAG,CAAC,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,oBAAoB,IAAI,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,IAAI,mBAAmB,KAAK,CAAC,IAAI,oBAAoB,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;YACnG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;YACzC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,aAAuB;IAC9D,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,yBAAyB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3F,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACtH,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEhI,IAAI,QAAQ,GAAG,YAAY,CAAC;IAC5B,IAAI,aAAa,GAA6B,UAAU,CAAC;IACzD,IAAI,iBAAiB,GAAa,EAAE,CAAC;IACrC,IAAI,QAA4B,CAAC;IACjC,IAAI,SAA6B,CAAC;IAClC,IAAI,SAA6B,CAAC;IAClC,IAAI,QAAQ,GAAG,sBAAsB,CAAC;IAEtC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,QAAQ,GAAG,IAAI,CAAC;QAChB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,QAAQ,GAAG,IAAI,CAAC;QAChB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,aAAa,GAAG,OAAO,CAAC;QACxB,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACvD,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC9C,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,aAAa,GAAG,OAAO,CAAC;QACxB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC;SAAM,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,aAAa,GAAG,MAAM,CAAC;QACvB,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/E,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,QAAQ,GAAG,SAAS,IAAI,QAAQ,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,aAAa,EAAE,yBAAyB;QACxC,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,iBAAiB;QACjB,QAAQ;QACR,SAAS;QACT,SAAS;QACT,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAe;IACrC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAwB;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO;QACL,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;QAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC1D,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,QAAQ,EAAgC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC;aACtF,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,YAAY;YAC5C,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;SACnC,CAAC,CAAC;KACN,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAuB;IAC5C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QACvD,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAmC,EAAE,IAAY;IAClF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAuB;IAC9D,MAAM,SAAS,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;IACzF,IAAI,SAAS,IAAI,0BAA0B,CAAC,GAAG,CAAC,SAAoC,CAAC,EAAE,CAAC;QACtF,OAAO,SAAoC,CAAC;IAC9C,CAAC;IACD,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,oCAAoC,CAC3C,gBAAsE;IAEtE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAyB;IAC7D,MAAM,YAAY,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvF,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,YAAY;QAClC,YAAY;QACZ,MAAM,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzE,UAAU,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACjF,KAAK,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvE,WAAW,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;eAClH,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3E,UAAU,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;eAChH,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC1E,gBAAgB,EAAE,qCAAqC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;eAChI,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACjF,UAAU,EAAE,oCAAoC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;eACnH,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3E,IAAI;QACJ,SAAS;QACT,QAAQ,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7E,GAAG,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnE,SAAS,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/E,IAAI,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,EAAE,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjE,OAAO,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3E,OAAO,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3E,QAAQ,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1G,YAAY,EAAE,yBAAyB,CAAC,OAAO,EAAE,cAAc,CAAC;QAChE,UAAU,EAAE,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC;QAC5D,QAAQ,EAAE,yBAAyB,CAAC,OAAO,EAAE,UAAU,CAAC;QACxD,UAAU,EAAE,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC;QAC5D,WAAW,EAAE,yBAAyB,CAAC,OAAO,EAAE,aAAa,CAAC;QAC9D,KAAK,EAAE,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpD,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;QAC9B,eAAe,EAAE,oCAAoC,CAAC,iCAAiC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KAC5H,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA0B;IACnD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,UAAU;QACjC,MAAM,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjG,MAAM,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1E,QAAQ,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9E,WAAW,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;eACnH,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC5E,UAAU,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;eACjH,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC3E,gBAAgB,EAAE,qCAAqC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;eACjI,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAClF,UAAU,EAAE,oCAAoC,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;eACpH,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC5E,QAAQ,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3G,OAAO,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5E,YAAY,EAAE,yBAAyB,CAAC,QAAQ,EAAE,cAAc,CAAC;QACjE,UAAU,EAAE,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC7D,QAAQ,EAAE,yBAAyB,CAAC,QAAQ,EAAE,UAAU,CAAC;QACzD,UAAU,EAAE,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC7D,WAAW,EAAE,yBAAyB,CAAC,QAAQ,EAAE,aAAa,CAAC;QAC/D,KAAK,EAAE,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnD,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC;QACjC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrD,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC;QAC/B,SAAS,EAAE,QAAQ,CAAC,MAAM;aACvB,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC;aAC7E,GAAG,CAAC,4BAA4B,CAAC;aACjC,MAAM,CAAC,CAAC,IAAI,EAAiC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAwB;IACvD,MAAM,cAAc,GAA0B,EAAE,CAAC;IACjD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC/C,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3C,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACxH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClE,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACxH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3C,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACzC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACxH,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAChF,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK;YACL,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACrD,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACrD,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACnG,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACxJ,eAAe,EAAE,gBAAyB;SAC3C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,IAAI,IAAI,cAAc;YAC5B,KAAK;YACL,eAAe,EAAE,gBAAyB;SAC3C,CAAC;IACJ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM;SAC3B,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC;SAC1E,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI,EAAE,IAAI,CAAC,YAAY,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY;QAC9F,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY;QACrC,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAClG,UAAU,EAAE,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjH,eAAe,EAAE,gBAAyB;KAC3C,CAAC,CAAC,CAAC;IAEN,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB;IACjD,MAAM,YAAY,GAAG,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAC/E,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAEpG,OAAO;QACL,YAAY,EAAE,YAAY,KAAK,YAAY,IAAI,YAAY,KAAK,MAAM;QACtE,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,IAAI,QAAQ;QACzE,KAAK,EAAE,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,QAAQ;QACrE,WAAW,EAAE,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,IAAI,SAAS;QAClF,sBAAsB,EAAE,CACtB,sBAAsB,KAAK,OAAO;eAC/B,sBAAsB,KAAK,MAAM;eACjC,sBAAsB,KAAK,SAAS,CACxC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO;QACpC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC7C,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB;IACjD,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAwB;IAClD,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAwB,EAAE,QAA8B;IAClF,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEnD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QACxC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YACpB,MAAM,EAAE,KAAK,CAAC,IAAI;YAClB,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACvC,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC;QACtD,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YACzC,SAAS;QACX,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YAChB,MAAM;YACN,QAAQ,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,IAAI,qBAAqB,MAAM,IAAI;YACrG,SAAS,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACpE,gBAAgB,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAClF,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAC3E,aAAa,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,KAAK,YAAY;YAC9F,iBAAiB,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,KAAK,YAAY;SACvG,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB,EAAE,SAAgC,SAAS;IACxF,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IACrG,IACE,MAAM,KAAK,SAAS;WACjB,MAAM,KAAK,SAAS;WACpB,MAAM,KAAK,cAAc;WACzB,MAAM,KAAK,QAAQ;WACnB,MAAM,KAAK,WAAW,EACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,SAAS,CAAC;IACzB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,OAAiB;IACxC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,aAAa,CAAC,MAatB;IACC,MAAM,iBAAiB,GAAG,eAAe,CAAC;QACxC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7F,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9F,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;KACvD,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,eAAe,CACvC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAC7E,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,cAAc,CAAC,EAAE,CAAC;QACjF,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,MAAM,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,EAAE,CAAC;QAC/G,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,sBAAsB,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,sBAAsB,KAAK,SAAS,EAAE,CAAC;QAChH,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;QACnB,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;QACnB,iBAAiB;QACjB,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/E,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAgB;IACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,YAAY,CACnB,GAA8B;IAE9B,OAAO,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAuB,EAAE,UAAmB;IACxE,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IACE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS;WAClB,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC;WACrC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,KAAK,cAAc,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,EAClJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAsB,EACtB,UAA4B;IAE5B,MAAM,KAAK,GAAG,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,eAAe,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;SACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,aAAa,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,kBAAkB,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9E,MAAM,qBAAqB,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,aAAa,CAAC;QACjC,KAAK;QACL,MAAM;QACN,OAAO,EAAE,OAAO;QAChB,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,SAAS;QACT,iBAAiB,EAAE,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;KAC1G,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,IAAI;QAC7B,MAAM,EAAE,eAAe,CAAC,UAAU,CAAC;QACnC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxD,IAAI,EAAE,IAAI,IAAI,SAAS;QACvB,KAAK;QACL,MAAM;QACN,OAAO;QACP,sBAAsB,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtF,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,SAAS;QACT,qBAAqB;QACrB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,YAA2B,EAAE,QAA4B;IAC1G,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEpI,MAAM,KAAK,GAAa,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;QAChF,WAAW,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACzE,CAAC,CAAC,CAAC;IAEJ,MAAM,QAAQ,GAAe,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5D,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClE,WAAW,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACvE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACzE,CAAC,CAAC,CAAC;IAEJ,MAAM,iBAAiB,GAAG,QAAQ,EAAE,iBAAiB,IAAI,IAAI,GAAG,EAAE,CAAC;IACnE,MAAM,KAAK,GAAa,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;aACzC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;QACjF,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACjG,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,aAAa,CAAC;YACjC,KAAK;YACL,MAAM;YACN,OAAO,EAAE,OAAO;YAChB,QAAQ;YACR,QAAQ;YACR,IAAI;YACJ,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK;YACL,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC9D,kBAAkB,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;iBAC3C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YAClE,mBAAmB,EAAE,OAAO;YAC5B,sBAAsB,EAAE,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,QAAQ;YACR,QAAQ;YACR,IAAI;YACJ,KAAK;YACL,KAAK;YACL,KAAK;YACL,QAAQ;YACR,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YACxE,qBAAqB,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC;iBACnD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvF,eAAe;YACf,qBAAqB;YACrB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK;gBAC1H,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACxD,UAAU,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;qBACpF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;qBACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACzE,CAAC,CAAC,CAAC,SAAS;YACb,YAAY;YACZ,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAA8B,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;SAChI,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAAC,CAAC;IAEhF,MAAM,KAAK,GAAa,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM;YACN,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YACxD,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;iBAClC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;iBACnE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAC9B,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;iBAClC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAChD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YAChG,mBAAmB,EAAE,OAAO;YAC5B,QAAQ;YACR,qBAAqB;YACrB,YAAY,EAAE,aAAa,CAAC;gBAC1B,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,OAAO;gBAChB,QAAQ;aACT,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAc,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;QACpC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzD,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK;QAC1E,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACtF,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK;QACjG,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;QACjB,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC3C,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACvE,SAAS,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1E,qBAAqB,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC;QAC5D,wBAAwB,EAAE,EAAE;QAC5B,YAAY,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,iBAAiB,EAAE,EAAE;YACrB,mBAAmB,EAAE,EAAE;YACvB,iBAAiB,EAAE,EAAE;SACtB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,gBAAgB,EAAE,EAAE;SACrB;KACF,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAE,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,MAAM,qBAAqB,GAAG,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1F,MAAM,sBAAsB,GAAG,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5F,MAAM,eAAe,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAChH,MAAM,yBAAyB,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aAC3F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC;YAC5D,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,CAAC,eAAe,EAAE,KAAK,IAAI,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,KAA8D,EAAE,EAAE,CAAC,CAAC;gBAC5H,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,YAAY,EAAE,KAAK,CAAC,IAAI;gBACxB,QAAQ,EAAE,KAAK,CAAC,IAAI;gBACpB,aAAa,EAAE,UAAmB;gBAClC,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,EAAE;aACjB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACb,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,MAAM,GAAG,CAAC;YAC9D,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,CAAC,eAAe,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,KAA8D,EAAE,EAAE,CAAC,CAAC;gBAC9H,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,YAAY,EAAE,KAAK,CAAC,IAAI;gBACxB,QAAQ,EAAE,KAAK,CAAC,IAAI;gBACpB,aAAa,EAAE,UAAmB;gBAClC,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,EAAE;gBACrB,YAAY,EAAE,EAAE;aACjB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACb,MAAM,uBAAuB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;YACxD,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC,eAAe,EAAE,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAA0C,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAuB,EAAE,EAAE,CAC9M,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,MAAM,wBAAwB,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,eAAe,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE;YAC9H,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC3H,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAY;YAC9B,GAAG,KAAK;YACR,YAAY,EAAE,qBAAqB;YACnC,aAAa,EAAE,sBAAsB;YACrC,aAAa,EAAE,uBAAuB;YACtC,eAAe,EAAE,yBAAyB;YAC1C,wBAAwB;YACxB,YAAY,EAAE,aAAa,CAAC;gBAC1B,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,sBAAsB;gBAC9B,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,iBAAiB,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,GAAG,EAAE;aACpE,CAAC;YACF,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,sBAAsB;gBAC9B,MAAM,EAAE,uBAAuB;gBAC/B,OAAO,EAAE,yBAAyB;gBAClC,gBAAgB,EAAE,wBAAwB;gBAC1C,iBAAiB,EAAE,OAAO;gBAC1B,cAAc,EAAE,OAAO;gBACvB,oBAAoB,EAAE,EAAE;aACzB;SACF,CAAC;QAEF,cAAc,CAAC,OAAO,CAAC,iBAAiB,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;QACpF,cAAc,CAAC,OAAO,CAAC,cAAc,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC7E,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAmB;QAClC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACtE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KACtE,CAAC;IAEF,MAAM,MAAM,GAAc,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;QAChF,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzD,WAAW,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACtE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACzD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxE,UAAU,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;aACtE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aACtD,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACzE,CAAC,CAAC,CAAC;IAEJ,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAE1D,MAAM,kBAAkB,GAAG,aAAa,CAAC;QACvC,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,OAAO,EAAE;YACP,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACpD,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC;YACnD,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;SAC3D;QACD,QAAQ,EAAE;YACR,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;YACrC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YACzC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC5C,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;SAC5D;KACF,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,QAAQ,EAAE,iBAAiB,CAAC,MAAM;YACtC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;QAChF,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM;SAC/B,CAAC,CAAC;QACH,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI;aACjG,MAAM,CAAC,YAAY,CAAC;aACpB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5C,qBAAqB,EAAE,YAAY;QACnC,KAAK;QACL,QAAQ;QACR,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,KAAK;QACL,KAAK;QACL,MAAM;QACN,WAAW;QACX,MAAM;QACN,SAAS;QACT,YAAY,EAAE;YACZ,GAAG,kBAAkB;YACrB,mBAAmB,EAAE,eAAe,CAAC;gBACnC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACjF,GAAG,WAAW;qBACX,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,qBAAqB,KAAK,SAAS,CAAC;qBACtE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;aAChE,CAAC;SACH;QACD,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,345 @@
1
+ import type { Diagnostico } from "../diagnosticos/index.js";
2
+ import type { ContratoErroRouteSemantico, EfeitoSemantico, EtapaFlowSemantica, ExpressaoSemantica, TransicaoEstadoSemantica } from "../semantico/estruturas.js";
3
+ import type { CompatibilidadePersistencia, ConsistenciaPersistencia, DurabilidadePersistencia, EngineBanco, ModeloConsultaPersistencia, ModeloTransacaoPersistencia, StatusCompatibilidadePersistencia, TipoRecursoPersistencia } from "../persistencia/contratos.js";
4
+ import type { ClassificacaoDadoSemantico, ModoAuthSemantico, MotivoAuditSemantico, OrigemAuthSemantica, PrincipalAuthSemantico, RedacaoLogSemantica, TenantAuthzSemantico } from "../semantico/seguranca.js";
5
+ export type PerfilCompatibilidade = "publico" | "interno" | "experimental" | "legado" | "deprecado";
6
+ export type StatusResolucaoSemantica = "nao_verificado" | "resolvido" | "parcial" | "inferido" | "quebrado" | "nao_encontrado";
7
+ export type NivelConfiancaSemantica = "alta" | "media" | "baixa";
8
+ export type NivelRiscoSemantico = "baixo" | "medio" | "alto";
9
+ export type TipoSuperficieIr = "worker" | "evento" | "fila" | "cron" | "webhook" | "cache" | "storage" | "policy";
10
+ export interface IrCampo {
11
+ nome: string;
12
+ tipo: string;
13
+ modificadores: string[];
14
+ tipoOriginal: string;
15
+ tipoBase: string;
16
+ cardinalidade: "unitario" | "lista" | "mapa" | "uniao";
17
+ opcional: boolean;
18
+ tiposAlternativos: string[];
19
+ tipoItem?: string;
20
+ chaveMapa?: string;
21
+ valorMapa?: string;
22
+ refinamentos: string[];
23
+ }
24
+ export interface IrImplementacaoTask {
25
+ origem: "ts" | "py" | "dart" | "cs" | "java" | "go" | "rust" | "cpp";
26
+ caminho: string;
27
+ origemArquivo?: string;
28
+ origemSimbolo?: string;
29
+ resolucaoImpl?: string;
30
+ statusImpl?: StatusResolucaoSemantica;
31
+ }
32
+ export interface IrVinculo {
33
+ tipo: string;
34
+ valor: string;
35
+ arquivo?: string;
36
+ simbolo?: string;
37
+ recurso?: string;
38
+ superficie?: string;
39
+ statusResolucao?: StatusResolucaoSemantica;
40
+ confianca?: NivelConfiancaSemantica;
41
+ }
42
+ export interface IrExecucao {
43
+ idempotencia: boolean;
44
+ timeout: string;
45
+ retry: string;
46
+ compensacao: string;
47
+ criticidadeOperacional: "baixa" | "media" | "alta" | "critica";
48
+ explicita: boolean;
49
+ }
50
+ export interface IrAuth {
51
+ explicita: boolean;
52
+ modo?: ModoAuthSemantico | string;
53
+ estrategia?: string;
54
+ principal?: PrincipalAuthSemantico | string;
55
+ origem?: OrigemAuthSemantica | string;
56
+ }
57
+ export interface IrAuthz {
58
+ explicita: boolean;
59
+ papeis: string[];
60
+ escopos: string[];
61
+ politica?: string;
62
+ tenant?: TenantAuthzSemantico | string;
63
+ }
64
+ export interface IrCampoDadoClassificado {
65
+ origem: string;
66
+ campo: string;
67
+ classificacao: ClassificacaoDadoSemantico | string;
68
+ }
69
+ export interface IrDados {
70
+ explicita: boolean;
71
+ classificacaoPadrao?: ClassificacaoDadoSemantico | string;
72
+ redacaoLog?: RedacaoLogSemantica | string;
73
+ retencao?: string;
74
+ campos: IrCampoDadoClassificado[];
75
+ }
76
+ export interface IrAudit {
77
+ explicita: boolean;
78
+ evento?: string;
79
+ ator?: string;
80
+ correlacao?: string;
81
+ retencao?: string;
82
+ motivo?: MotivoAuditSemantico | string;
83
+ }
84
+ export interface IrSegredo {
85
+ nome: string;
86
+ origem?: string;
87
+ escopo?: string;
88
+ acesso?: string;
89
+ rotacao?: string;
90
+ naoLogar?: boolean;
91
+ naoRetornar?: boolean;
92
+ mascarar?: boolean;
93
+ }
94
+ export interface IrSegredos {
95
+ explicita: boolean;
96
+ itens: IrSegredo[];
97
+ }
98
+ export interface IrForbidden {
99
+ explicita: boolean;
100
+ regras: string[];
101
+ }
102
+ export interface IrBlocoDeclarativo {
103
+ campos: IrCampo[];
104
+ linhas: string[];
105
+ blocos: IrBlocoDeclarativoAninhado[];
106
+ }
107
+ export interface IrBlocoDeclarativoAninhado {
108
+ nome: string;
109
+ conteudo: IrBlocoDeclarativo;
110
+ }
111
+ export interface IrCasoTeste {
112
+ nome: string;
113
+ given: IrBlocoDeclarativo;
114
+ when?: IrBlocoDeclarativo;
115
+ expect: IrBlocoDeclarativo;
116
+ error?: IrBlocoDeclarativo;
117
+ }
118
+ export interface IrResumoAgente {
119
+ riscos: string[];
120
+ checks: string[];
121
+ entidadesAfetadas: string[];
122
+ superficiesPublicas: string[];
123
+ mutacoesPrevistas: string[];
124
+ }
125
+ export interface IrType {
126
+ nome: string;
127
+ definicao: IrBlocoDeclarativo;
128
+ invariantes: ExpressaoSemantica[];
129
+ }
130
+ export interface IrEntity {
131
+ nome: string;
132
+ campos: IrCampo[];
133
+ invariantes: ExpressaoSemantica[];
134
+ }
135
+ export interface IrEnum {
136
+ nome: string;
137
+ valores: string[];
138
+ }
139
+ export interface IrUse {
140
+ origem: "sema" | "ts" | "py" | "dart" | "cs" | "java" | "go" | "rust" | "cpp";
141
+ caminho: string;
142
+ externo: boolean;
143
+ }
144
+ export interface IrInteropExterno {
145
+ origem: "ts" | "py" | "dart" | "cs" | "java" | "go" | "rust" | "cpp";
146
+ caminho: string;
147
+ }
148
+ export interface IrErroOperacional {
149
+ codigo: string;
150
+ mensagem: string;
151
+ categoria?: string;
152
+ recuperabilidade?: string;
153
+ acaoChamador?: string;
154
+ impactaEstado?: boolean;
155
+ requerCompensacao?: boolean;
156
+ origemTask?: string;
157
+ }
158
+ export interface IrTask {
159
+ nome: string;
160
+ input: IrCampo[];
161
+ output: IrCampo[];
162
+ rules: string[];
163
+ regrasEstruturadas: ExpressaoSemantica[];
164
+ effects: string[];
165
+ efeitosEstruturados: EfeitoSemantico[];
166
+ implementacoesExternas: IrImplementacaoTask[];
167
+ vinculos: IrVinculo[];
168
+ execucao: IrExecucao;
169
+ auth: IrAuth;
170
+ authz: IrAuthz;
171
+ dados: IrDados;
172
+ audit: IrAudit;
173
+ segredos: IrSegredos;
174
+ forbidden: IrForbidden;
175
+ guarantees: string[];
176
+ garantiasEstruturadas: ExpressaoSemantica[];
177
+ errors: Record<string, string>;
178
+ errosDetalhados: IrErroOperacional[];
179
+ perfilCompatibilidade: PerfilCompatibilidade;
180
+ stateContract?: IrTaskStateContract;
181
+ resumoAgente: IrResumoAgente;
182
+ tests: IrCasoTeste[];
183
+ }
184
+ export interface IrErroPublico extends IrErroOperacional {
185
+ nome: string;
186
+ }
187
+ export interface IrRoutePublica {
188
+ metodo?: string;
189
+ caminho?: string;
190
+ task?: string;
191
+ input: IrCampo[];
192
+ output: IrCampo[];
193
+ errors: IrErroPublico[];
194
+ effects: EfeitoSemantico[];
195
+ garantiasMinimas: string[];
196
+ confiancaContrato?: NivelConfiancaSemantica;
197
+ riscoRegressao?: NivelRiscoSemantico;
198
+ divergenciasPublicas?: string[];
199
+ }
200
+ export interface IrTaskStateContract {
201
+ nomeEstado?: string;
202
+ campos: IrCampo[];
203
+ linhas: string[];
204
+ transicoes: TransicaoEstadoSemantica[];
205
+ }
206
+ export interface IrFlow {
207
+ nome: string;
208
+ campos: IrCampo[];
209
+ linhas: string[];
210
+ tasksReferenciadas: string[];
211
+ etapasEstruturadas: EtapaFlowSemantica[];
212
+ effects: string[];
213
+ efeitosEstruturados: EfeitoSemantico[];
214
+ vinculos: IrVinculo[];
215
+ perfilCompatibilidade: PerfilCompatibilidade;
216
+ resumoAgente: IrResumoAgente;
217
+ }
218
+ export interface IrRoute {
219
+ nome: string;
220
+ campos: IrCampo[];
221
+ linhas: string[];
222
+ metodo?: string;
223
+ caminho?: string;
224
+ task?: string;
225
+ inputPublico: IrCampo[];
226
+ outputPublico: IrCampo[];
227
+ errosPublicos: ContratoErroRouteSemantico[];
228
+ efeitosPublicos: EfeitoSemantico[];
229
+ vinculos: IrVinculo[];
230
+ auth: IrAuth;
231
+ authz: IrAuthz;
232
+ dados: IrDados;
233
+ audit: IrAudit;
234
+ segredos: IrSegredos;
235
+ forbidden: IrForbidden;
236
+ perfilCompatibilidade: PerfilCompatibilidade;
237
+ garantiasPublicasMinimas: string[];
238
+ resumoAgente: IrResumoAgente;
239
+ publico: IrRoutePublica;
240
+ }
241
+ export interface IrSuperficie {
242
+ tipo: TipoSuperficieIr;
243
+ nome: string;
244
+ campos: IrCampo[];
245
+ linhas: string[];
246
+ task?: string;
247
+ input: IrCampo[];
248
+ output: IrCampo[];
249
+ effects: EfeitoSemantico[];
250
+ implementacoesExternas: IrImplementacaoTask[];
251
+ vinculos: IrVinculo[];
252
+ execucao: IrExecucao;
253
+ auth: IrAuth;
254
+ authz: IrAuthz;
255
+ dados: IrDados;
256
+ audit: IrAudit;
257
+ segredos: IrSegredos;
258
+ forbidden: IrForbidden;
259
+ perfilCompatibilidade: PerfilCompatibilidade;
260
+ resumoAgente: IrResumoAgente;
261
+ }
262
+ export interface IrState {
263
+ nome?: string;
264
+ campos: IrCampo[];
265
+ linhas: string[];
266
+ invariantes: ExpressaoSemantica[];
267
+ transicoes: TransicaoEstadoSemantica[];
268
+ }
269
+ export interface IrCompatibilidadePersistencia extends CompatibilidadePersistencia {
270
+ engine: EngineBanco;
271
+ status: StatusCompatibilidadePersistencia;
272
+ }
273
+ export interface IrRecursoPersistencia {
274
+ nome: string;
275
+ resourceKind: TipoRecursoPersistencia;
276
+ entity?: string;
277
+ collection?: string;
278
+ table?: string;
279
+ consistency?: ConsistenciaPersistencia | string;
280
+ durability?: DurabilidadePersistencia | string;
281
+ transactionModel?: ModeloTransacaoPersistencia | string;
282
+ queryModel?: ModeloConsultaPersistencia | string;
283
+ mode?: string;
284
+ isolation?: string;
285
+ strategy?: string;
286
+ ttl?: string;
287
+ retention?: string;
288
+ path?: string;
289
+ from?: string;
290
+ to?: string;
291
+ surface?: string;
292
+ adapter?: string;
293
+ portavel?: boolean;
294
+ capabilities: string[];
295
+ operations: string[];
296
+ indexing: string[];
297
+ guarantees: string[];
298
+ diagnostics: string[];
299
+ risks: string[];
300
+ fields: IrCampo[];
301
+ lines: string[];
302
+ block: IrBlocoDeclarativo;
303
+ compatibilidade: IrCompatibilidadePersistencia[];
304
+ }
305
+ export interface IrBancoDados {
306
+ nome: string;
307
+ engine?: EngineBanco;
308
+ schema?: string;
309
+ database?: string;
310
+ consistency?: ConsistenciaPersistencia | string;
311
+ durability?: DurabilidadePersistencia | string;
312
+ transactionModel?: ModeloTransacaoPersistencia | string;
313
+ queryModel?: ModeloConsultaPersistencia | string;
314
+ portavel?: boolean;
315
+ adapter?: string;
316
+ capabilities: string[];
317
+ operations: string[];
318
+ indexing: string[];
319
+ guarantees: string[];
320
+ diagnostics: string[];
321
+ risks: string[];
322
+ fields: IrCampo[];
323
+ lines: string[];
324
+ block: IrBlocoDeclarativo;
325
+ resources: IrRecursoPersistencia[];
326
+ }
327
+ export interface IrModulo {
328
+ nome: string;
329
+ uses: string[];
330
+ imports: IrUse[];
331
+ interoperabilidades: IrInteropExterno[];
332
+ vinculos: IrVinculo[];
333
+ perfilCompatibilidade: PerfilCompatibilidade;
334
+ types: IrType[];
335
+ entities: IrEntity[];
336
+ enums: IrEnum[];
337
+ tasks: IrTask[];
338
+ flows: IrFlow[];
339
+ routes: IrRoute[];
340
+ superficies: IrSuperficie[];
341
+ states: IrState[];
342
+ databases: IrBancoDados[];
343
+ resumoAgente: IrResumoAgente;
344
+ diagnosticos: Diagnostico[];
345
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=modelos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelos.js","sourceRoot":"","sources":["../../src/ir/modelos.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { type Diagnostico } from "../diagnosticos/index.js";
2
+ import { type Token } from "./tokens.js";
3
+ export interface ResultadoLexer {
4
+ tokens: Token[];
5
+ diagnosticos: Diagnostico[];
6
+ }
7
+ export declare function tokenizar(codigo: string, arquivo?: string): ResultadoLexer;
@@ -0,0 +1,122 @@
1
+ import { criarDiagnostico } from "../diagnosticos/index.js";
2
+ import { PALAVRAS_CHAVE } from "./tokens.js";
3
+ function avancar(posicao, caractere) {
4
+ if (caractere === "\n") {
5
+ return { indice: posicao.indice + 1, linha: posicao.linha + 1, coluna: 1 };
6
+ }
7
+ return { indice: posicao.indice + 1, linha: posicao.linha, coluna: posicao.coluna + 1 };
8
+ }
9
+ function criarToken(tipo, valor, inicio, fim, arquivo) {
10
+ return {
11
+ tipo,
12
+ valor,
13
+ intervalo: { inicio, fim, arquivo },
14
+ };
15
+ }
16
+ export function tokenizar(codigo, arquivo) {
17
+ const tokens = [];
18
+ const diagnosticos = [];
19
+ let posicao = { indice: 0, linha: 1, coluna: 1 };
20
+ while (posicao.indice < codigo.length) {
21
+ const inicio = { ...posicao };
22
+ const atual = codigo[posicao.indice];
23
+ if (atual === " " || atual === "\t" || atual === "\r") {
24
+ posicao = avancar(posicao, atual);
25
+ continue;
26
+ }
27
+ if (atual === "\n") {
28
+ posicao = avancar(posicao, atual);
29
+ tokens.push(criarToken("nova_linha", "\n", inicio, { ...posicao }, arquivo));
30
+ continue;
31
+ }
32
+ if (atual === "/" && codigo[posicao.indice + 1] === "/") {
33
+ let texto = "";
34
+ let cursor = { ...posicao };
35
+ while (cursor.indice < codigo.length && codigo[cursor.indice] !== "\n") {
36
+ texto += codigo[cursor.indice];
37
+ cursor = avancar(cursor, codigo[cursor.indice]);
38
+ }
39
+ tokens.push(criarToken("comentario", texto, inicio, cursor, arquivo));
40
+ posicao = cursor;
41
+ continue;
42
+ }
43
+ if (atual === "\"") {
44
+ let texto = "";
45
+ let cursor = avancar(posicao, atual);
46
+ let fechado = false;
47
+ while (cursor.indice < codigo.length) {
48
+ const caractere = codigo[cursor.indice];
49
+ if (caractere === "\\") {
50
+ const proximo = codigo[cursor.indice + 1];
51
+ if (proximo) {
52
+ texto += caractere + proximo;
53
+ cursor = avancar(avancar(cursor, caractere), proximo);
54
+ continue;
55
+ }
56
+ }
57
+ if (caractere === "\"") {
58
+ fechado = true;
59
+ cursor = avancar(cursor, caractere);
60
+ break;
61
+ }
62
+ texto += caractere;
63
+ cursor = avancar(cursor, caractere);
64
+ }
65
+ if (!fechado) {
66
+ diagnosticos.push(criarDiagnostico("LEX001", "Texto nao foi fechado com aspas.", "erro", { inicio, fim: cursor, arquivo }, "Feche a string com aspas duplas."));
67
+ posicao = cursor;
68
+ continue;
69
+ }
70
+ tokens.push(criarToken("texto", texto, inicio, cursor, arquivo));
71
+ posicao = cursor;
72
+ continue;
73
+ }
74
+ if (/[0-9]/.test(atual)) {
75
+ let texto = "";
76
+ let cursor = { ...posicao };
77
+ while (cursor.indice < codigo.length && /[0-9.]/.test(codigo[cursor.indice])) {
78
+ texto += codigo[cursor.indice];
79
+ cursor = avancar(cursor, codigo[cursor.indice]);
80
+ }
81
+ tokens.push(criarToken("numero", texto, inicio, cursor, arquivo));
82
+ posicao = cursor;
83
+ continue;
84
+ }
85
+ if (/[A-Za-z_]/.test(atual)) {
86
+ let texto = "";
87
+ let cursor = { ...posicao };
88
+ while (cursor.indice < codigo.length && /[A-Za-z0-9_.-]/.test(codigo[cursor.indice])) {
89
+ texto += codigo[cursor.indice];
90
+ cursor = avancar(cursor, codigo[cursor.indice]);
91
+ }
92
+ const tipo = PALAVRAS_CHAVE.has(texto) ? "palavra_chave" : "identificador";
93
+ tokens.push(criarToken(tipo, texto, inicio, cursor, arquivo));
94
+ posicao = cursor;
95
+ continue;
96
+ }
97
+ const doisCaracteres = codigo.slice(posicao.indice, posicao.indice + 2);
98
+ if (["==", "!=", ">=", "<=", "->"].includes(doisCaracteres)) {
99
+ const cursor = avancar(avancar(posicao, doisCaracteres[0]), doisCaracteres[1]);
100
+ tokens.push(criarToken("operador", doisCaracteres, inicio, cursor, arquivo));
101
+ posicao = cursor;
102
+ continue;
103
+ }
104
+ if ("{}[]():,.".includes(atual)) {
105
+ const cursor = avancar(posicao, atual);
106
+ tokens.push(criarToken("pontuacao", atual, inicio, cursor, arquivo));
107
+ posicao = cursor;
108
+ continue;
109
+ }
110
+ if ("=><+-*/|?".includes(atual)) {
111
+ const cursor = avancar(posicao, atual);
112
+ tokens.push(criarToken("operador", atual, inicio, cursor, arquivo));
113
+ posicao = cursor;
114
+ continue;
115
+ }
116
+ diagnosticos.push(criarDiagnostico("LEX002", `Caractere inesperado encontrado: "${atual}".`, "erro", { inicio, fim: avancar(posicao, atual), arquivo }, "Remova o caractere ou adicione suporte no lexer."));
117
+ posicao = avancar(posicao, atual);
118
+ }
119
+ tokens.push(criarToken("fim_arquivo", "", { ...posicao }, { ...posicao }, arquivo));
120
+ return { tokens, diagnosticos };
121
+ }
122
+ //# sourceMappingURL=lexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { IntervaloFonte } from "../diagnosticos/index.js";
2
+ export type TipoToken = "palavra_chave" | "identificador" | "texto" | "numero" | "pontuacao" | "operador" | "nova_linha" | "comentario" | "fim_arquivo";
3
+ export interface Token {
4
+ tipo: TipoToken;
5
+ valor: string;
6
+ intervalo: IntervaloFonte;
7
+ }
8
+ export declare const PALAVRAS_CHAVE: Set<string>;
@@ -0,0 +1,61 @@
1
+ export const PALAVRAS_CHAVE = new Set([
2
+ "module",
3
+ "use",
4
+ "database",
5
+ "type",
6
+ "entity",
7
+ "enum",
8
+ "task",
9
+ "worker",
10
+ "evento",
11
+ "fila",
12
+ "cron",
13
+ "webhook",
14
+ "cache",
15
+ "storage",
16
+ "policy",
17
+ "input",
18
+ "output",
19
+ "rules",
20
+ "effects",
21
+ "impl",
22
+ "vinculos",
23
+ "execucao",
24
+ "auth",
25
+ "authz",
26
+ "dados",
27
+ "audit",
28
+ "segredos",
29
+ "forbidden",
30
+ "guarantees",
31
+ "state",
32
+ "flow",
33
+ "route",
34
+ "tests",
35
+ "error",
36
+ "docs",
37
+ "comments",
38
+ "table",
39
+ "view",
40
+ "query",
41
+ "transaction",
42
+ "index",
43
+ "constraint",
44
+ "relationship",
45
+ "collection",
46
+ "document",
47
+ "keyspace",
48
+ "stream",
49
+ "lock",
50
+ "retention",
51
+ "replication",
52
+ "fields",
53
+ "invariants",
54
+ "transitions",
55
+ "given",
56
+ "when",
57
+ "expect",
58
+ "caso",
59
+ "required",
60
+ ]);
61
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/lexer/tokens.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IACpC,QAAQ;IACR,KAAK;IACL,UAAU;IACV,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;IACT,MAAM;IACN,UAAU;IACV,UAAU;IACV,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,WAAW;IACX,YAAY;IACZ,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,aAAa;IACb,OAAO;IACP,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,MAAM;IACN,WAAW;IACX,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,UAAU;CACX,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type Diagnostico } from "../diagnosticos/index.js";
2
+ import type { ModuloAst } from "../ast/tipos.js";
3
+ import type { Token } from "../lexer/tokens.js";
4
+ interface ResultadoParser {
5
+ modulo?: ModuloAst;
6
+ diagnosticos: Diagnostico[];
7
+ }
8
+ export declare function parsear(tokens: Token[]): ResultadoParser;
9
+ export {};