brighterscript 1.0.0-alpha.19 → 1.0.0-alpha.21
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/CHANGELOG.md +62 -0
- package/bsconfig.schema.json +12 -0
- package/dist/Cache.d.ts +5 -1
- package/dist/Cache.js +6 -0
- package/dist/Cache.js.map +1 -1
- package/dist/DiagnosticMessages.d.ts +21 -1
- package/dist/DiagnosticMessages.js +27 -4
- package/dist/DiagnosticMessages.js.map +1 -1
- package/dist/PluginInterface.d.ts +4 -0
- package/dist/PluginInterface.js +6 -0
- package/dist/PluginInterface.js.map +1 -1
- package/dist/Program.d.ts +1 -2
- package/dist/Program.js +44 -21
- package/dist/Program.js.map +1 -1
- package/dist/Scope.d.ts +45 -20
- package/dist/Scope.js +64 -18
- package/dist/Scope.js.map +1 -1
- package/dist/SymbolTable.js +15 -0
- package/dist/SymbolTable.js.map +1 -1
- package/dist/XmlScope.d.ts +3 -3
- package/dist/astUtils/reflection.d.ts +3 -0
- package/dist/astUtils/reflection.js +9 -1
- package/dist/astUtils/reflection.js.map +1 -1
- package/dist/astUtils/visitors.d.ts +15 -5
- package/dist/astUtils/visitors.js +1 -1
- package/dist/astUtils/visitors.js.map +1 -1
- package/dist/bscPlugin/BscPlugin.d.ts +3 -1
- package/dist/bscPlugin/BscPlugin.js +6 -1
- package/dist/bscPlugin/BscPlugin.js.map +1 -1
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js +25 -13
- package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.js.map +1 -1
- package/dist/bscPlugin/validation/ScopeValidator.d.ts +22 -4
- package/dist/bscPlugin/validation/ScopeValidator.js +102 -13
- package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
- package/dist/cli.js +0 -1
- package/dist/cli.js.map +1 -1
- package/dist/files/BrsFile.js +5 -3
- package/dist/files/BrsFile.js.map +1 -1
- package/dist/files/BrsFile.spec.js +145 -12
- package/dist/files/BrsFile.spec.js.map +1 -1
- package/dist/files/XmlFile.d.ts +5 -5
- package/dist/files/XmlFile.spec.js +21 -3
- package/dist/files/XmlFile.spec.js.map +1 -1
- package/dist/files/tests/optionalChaning.spec.d.ts +1 -0
- package/dist/files/tests/optionalChaning.spec.js +88 -0
- package/dist/files/tests/optionalChaning.spec.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +9 -1
- package/dist/lexer/Lexer.d.ts +5 -0
- package/dist/lexer/Lexer.js +37 -0
- package/dist/lexer/Lexer.js.map +1 -1
- package/dist/lexer/Lexer.spec.js +62 -4
- package/dist/lexer/Lexer.spec.js.map +1 -1
- package/dist/lexer/TokenKind.d.ts +4 -0
- package/dist/lexer/TokenKind.js +4 -0
- package/dist/lexer/TokenKind.js.map +1 -1
- package/dist/parser/Expression.d.ts +37 -8
- package/dist/parser/Expression.js +26 -28
- package/dist/parser/Expression.js.map +1 -1
- package/dist/parser/Parser.d.ts +18 -1
- package/dist/parser/Parser.js +144 -107
- package/dist/parser/Parser.js.map +1 -1
- package/dist/parser/Parser.spec.js +83 -0
- package/dist/parser/Parser.spec.js.map +1 -1
- package/dist/parser/SGParser.js.map +1 -1
- package/dist/parser/SGParser.spec.js +1 -1
- package/dist/parser/SGParser.spec.js.map +1 -1
- package/dist/parser/Statement.d.ts +8 -4
- package/dist/parser/Statement.js +31 -20
- package/dist/parser/Statement.js.map +1 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +1 -1
- package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +1 -1
- package/dist/parser/tests/expression/TemplateStringExpression.spec.js +9 -9
- package/dist/parser/tests/expression/TernaryExpression.spec.js +1 -1
- package/dist/parser/tests/statement/Enum.spec.js +66 -0
- package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
- package/dist/parser/tests/statement/PrintStatement.spec.js +6 -6
- package/dist/preprocessor/Manifest.d.ts +5 -5
- package/dist/preprocessor/Manifest.js +14 -35
- package/dist/preprocessor/Manifest.js.map +1 -1
- package/dist/preprocessor/Manifest.spec.d.ts +1 -0
- package/dist/preprocessor/Manifest.spec.js +78 -103
- package/dist/preprocessor/Manifest.spec.js.map +1 -1
- package/dist/roku-types/data.json +21891 -0
- package/dist/roku-types/index.d.ts +6776 -0
- package/dist/roku-types/index.js +11 -0
- package/dist/roku-types/index.js.map +1 -0
- package/dist/types/EnumType.d.ts +22 -0
- package/dist/types/EnumType.js +55 -0
- package/dist/types/EnumType.js.map +1 -0
- package/dist/util.d.ts +4 -0
- package/dist/util.js +7 -0
- package/dist/util.js.map +1 -1
- package/package.json +13 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../src/parser/Expression.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../src/parser/Expression.ts"],"names":[],"mappings":";;;AAEA,kDAA+C;AAG/C,kCAAgD;AAEhD,qCAA+D;AAC/D,oCAAoC;AAEpC,mDAA8D;AAC9D,uDAAwY;AAExY,gDAA6C;AAC7C,sDAAmD;AAEnD,gDAA6C;AAC7C,kEAA+D;AAC/D,oDAAiD;AACjD,kDAA+C;AAI/C,gCAAgC;AAChC,MAAsB,UAAU;IAAhC;QAOI;;WAEG;QACI,cAAS,GAAG,2BAAgB,CAAC,gBAAgB,CAAC;IAGzD,CAAC;CAAA;AAbD,gCAaC;AAED,MAAa,gBAAiB,SAAQ,UAAU;IAC5C,YACW,IAAgB,EAChB,QAAe,EACf,KAAiB;QAExB,KAAK,EAAE,CAAC;QAJD,SAAI,GAAJ,IAAI,CAAY;QAChB,aAAQ,GAAR,QAAQ,CAAO;QACf,UAAK,GAAL,KAAK,CAAY;QAGxB,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACvD,GAAG;YACH,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnC,GAAG;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC5D,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACrC,IAAA,eAAI,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACzC;IACL,CAAC;CACJ;AA5BD,4CA4BC;AAED,MAAa,cAAe,SAAQ,UAAU;IAG1C,YACa,MAAkB;IAC3B;;OAEG;IACM,YAAmB,EACnB,YAAmB,EACnB,IAAkB;IAC3B;;OAEG;IACM,aAA+C;QAExD,KAAK,EAAE,CAAC;QAZC,WAAM,GAAN,MAAM,CAAY;QAIlB,iBAAY,GAAZ,YAAY,CAAO;QACnB,iBAAY,GAAZ,YAAY,CAAO;QACnB,SAAI,GAAJ,IAAI,CAAc;QAIlB,kBAAa,GAAb,aAAa,CAAkC;QAGxD,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC;IAID,SAAS,CAAC,KAAwB,EAAE,YAAqB;QACrD,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,oBAAoB;QACpB,IAAI,YAAY,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;SAC5D;aAAM;YACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SAChD;QAED,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAC1C,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,wBAAwB;YACxB,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;YACD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACxC;QACD,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAC1C,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAA,eAAI,EAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aAC9C;SACJ;IACL,CAAC;;AAxDL,wCAyDC;AAxDU,+BAAgB,GAAG,sBAAe,CAAC;AA0D9C,MAAa,kBAAmB,SAAQ,UAAU;IAC9C,YACa,UAAyC,EAC3C,IAAW,EACT,YAA0B,EAC5B,GAAU,EACR,SAAgB,EAChB,UAAiB,EACjB,OAAe,EACf,UAA2B;IACpC;;OAEG;IACM,cAAmC,EACnC,aAAgD,EAChD,iBAA+B;QAExC,KAAK,EAAE,CAAC;QAfC,eAAU,GAAV,UAAU,CAA+B;QAC3C,SAAI,GAAJ,IAAI,CAAO;QACT,iBAAY,GAAZ,YAAY,CAAc;QAC5B,QAAG,GAAH,GAAG,CAAO;QACR,cAAS,GAAT,SAAS,CAAO;QAChB,eAAU,GAAV,UAAU,CAAO;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,eAAU,GAAV,UAAU,CAAiB;QAI3B,mBAAc,GAAd,cAAc,CAAqB;QACnC,kBAAa,GAAb,aAAa,CAAmC;QAChD,sBAAiB,GAAjB,iBAAiB,CAAc;QA0CrC,oBAAe,GAAG,EAAsB,CAAC;QAWhD;;;WAGG;QACI,oBAAe,GAAG,EAAsB,CAAC;QAOhD;;WAEG;QACI,6BAAwB,GAAG,EAA0B,CAAC;QAhEzD,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;SAC3C;aAAM,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;YACvD,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAQ,EAAE,CAAC;SACrC;aAAM;YACH,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;SACxC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,iBAAiB,CAAC,CAAC;QACtD,KAAK,IAAI,KAAK,IAAI,UAAU,EAAE;YAC1B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SAClF;IACL,CAAC;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,UAAU;;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,cAAI,CAAC,mBAAmB,CAClC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,SAAS,EACd,GAAG,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,EAAE,CAAC,EAC1B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,CACX,CAAC;SACL;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IASD;;OAEG;IACI,aAAa;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAkBD;;;MAGE;IACF,IAAW,wBAAwB;;QAC/B,OAAO,cAAI,CAAC,mBAAmB,CAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,SAAS,EACd,GAAG,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,EAAE,CAAC,EAC1B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,CAClB,CAAC;IACN,CAAC;IAED,SAAS,CAAC,KAAwB,EAAE,IAAiB,EAAE,WAAW,GAAG,IAAI;QACrE,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,kBAAkB;QAClB,OAAO,CAAC,IAAI,CACR,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAC1C,CAAC;QACF,eAAe;QACf,IAAI,IAAI,EAAE;YACN,OAAO,CAAC,IAAI,CACR,GAAG,EACH,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAC7B,CAAC;SACL;QACD,WAAW;QACX,OAAO,CAAC,IAAI,CACR,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CACvC,CAAC;QACF,YAAY;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,YAAY;YACZ,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtB;YACD,eAAe;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACxC;QACD,aAAa;QACb,OAAO,CAAC,IAAI,CACR,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CACxC,CAAC;QACF,WAAW;QACX,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAO,CAAC,IAAI,CACR,GAAG;YACH,IAAI;YACJ,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAClC,GAAG;YACH,aAAa;YACb,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAC1F,CAAC;SACL;QACD,IAAI,WAAW,EAAE;YACb,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;SACzB;QACD,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,0BAA0B;YAC1B,OAAO,CAAC,IAAI,CACR,KAAK,CAAC,MAAM,EAAE,EACd,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CACjC,CAAC;SACL;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,KAAwB,EAAE,IAAiB;QAClD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAA,eAAI,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aACpD;YAED,oFAAoF;YACpF,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,qBAAqB,EAAE;gBAC3D,IAAA,eAAI,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC3C,IAAA,eAAI,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aAExC;SACJ;IACL,CAAC;IAED,eAAe;QACX,IAAI,YAAY,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/D,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,KAAK,CAAC;QACtD,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;YAC/B,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;SACjF;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AAzLD,gDAyLC;AAED,MAAa,2BAA4B,SAAQ,UAAU;IACvD,YACW,IAAgB,EACf,aAAsB,EACvB,WAAmB,EACnB,YAAyB,EACzB,OAAe,EACf,IAAqB,EACnB,aAAgD;QAEzD,KAAK,EAAE,CAAC;QARD,SAAI,GAAJ,IAAI,CAAY;QACf,kBAAa,GAAb,aAAa,CAAS;QACvB,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAa;QACzB,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAiB;QACnB,kBAAa,GAAb,aAAa,CAAmC;QAGzD,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnH,CAAC;IAIM,OAAO;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAEM,SAAS,CAAC,KAAwB;QACrC,IAAI,MAAM,GAAG;YACT,MAAM;YACN,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;SACzB,CAAC;QACX,eAAe;QACf,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACnD;QACD,kBAAkB;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAC5F;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,sCAAsC;QACtC,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YAC1E,IAAA,eAAI,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAA,eAAI,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACxC;IACL,CAAC;IAED,IAAI,UAAU;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IAC/B,CAAC;CACJ;AApDD,kEAoDC;AAED,MAAa,gCAAiC,SAAQ,UAAU;IAC5D;IACI,wFAAwF;IAC/E,UAAoD;QAE7D,KAAK,EAAE,CAAC;QAFC,eAAU,GAAV,UAAU,CAA0C;QAG7D,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAClC,CAAC;IAGD,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC,CAAC;SAC/D,CAAC;IACN,CAAC;IAEM,YAAY;QACf,IAAI,KAAK,GAAG,EAAc,CAAC;QAC3B,IAAI,IAAA,iCAAoB,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzC;aAAM;YACH,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YAE3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3B,OAAO,IAAA,iCAAoB,EAAC,IAAI,CAAC,KAAK,KAAK,EAAE;gBACzC,IAAI,GAAG,IAAI,CAAC,GAA0B,CAAC;gBACvC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjC;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,YAAuB,kBAAS,CAAC,cAAc;QACnD,IAAI,SAAS,KAAK,kBAAS,CAAC,cAAc,EAAE;YACxC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxC;aAAM;YACH,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxC;IACL,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC9C;IACL,CAAC;CACJ;AA9CD,4EA8CC;AAED,MAAa,mBAAoB,SAAQ,UAAU;IAC/C,YACa,GAAe,EACf,IAAgB;IACzB;;OAEG;IACM,GAAU;QAEnB,KAAK,EAAE,CAAC;QAPC,QAAG,GAAH,GAAG,CAAY;QACf,SAAI,GAAJ,IAAI,CAAY;QAIhB,QAAG,GAAH,GAAG,CAAO;QAGnB,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,gEAAgE;QAChE,IAAI,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO,IAAI,gCAAgC,CAAC,IAAgD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAClH;aAAM;YACH,OAAO;gBACH,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC9B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;aAClC,CAAC;SACL;IACL,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACvC;IACL,CAAC;CACJ;AAjCD,kDAiCC;AAED,MAAa,yBAA0B,SAAQ,UAAU;IACrD,YACa,GAAe,EACf,IAAgB;IACzB;;OAEG;IACM,EAAS;QAElB,KAAK,EAAE,CAAC;QAPC,QAAG,GAAH,GAAG,CAAY;QACf,SAAI,GAAJ,IAAI,CAAY;QAIhB,OAAE,GAAF,EAAE,CAAO;QAGlB,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;YAC5B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;SAClC,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACvC;IACL,CAAC;CACJ;AA5BD,8DA4BC;AAED,MAAa,oBAAqB,SAAQ,UAAU;IAChD,YACW,GAAe,EACf,KAAiB;IACxB;;OAEG;IACI,aAAoB,EACpB,aAAoB,EACpB,gBAAwB,CAAC,WAAW;;QAE3C,KAAK,EAAE,CAAC;QATD,QAAG,GAAH,GAAG,CAAY;QACf,UAAK,GAAL,KAAK,CAAY;QAIjB,kBAAa,GAAb,aAAa,CAAO;QACpB,kBAAa,GAAb,aAAa,CAAO;QACpB,qBAAgB,GAAhB,gBAAgB,CAAQ;QAG/B,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACnJ,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE;YACxE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;YACxC,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;SAC3C,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACpC,IAAA,eAAI,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACzC;IACL,CAAC;CACJ;AAjCD,oDAiCC;AAED,MAAa,kBAAmB,SAAQ,UAAU;IAC9C,YACa,MAGR,EACM,UAAsB;QAE7B,KAAK,EAAE,CAAC;QANC,WAAM,GAAN,MAAM,CAGd;QACM,eAAU,GAAV,UAAU,CAAY;QAG7B,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;YACnC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SAC1C,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC9C;IACL,CAAC;CACJ;AA3BD,gDA2BC;AAED,MAAa,iBAAkB,SAAQ,UAAU;IAC7C,YACW,KAAY;QAEnB,KAAK,EAAE,CAAC;QAFD,UAAK,GAAL,KAAK,CAAO;QAGnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,cAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IASD,SAAS,CAAC,KAAwB;QAC9B,IAAI,IAAY,CAAC;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,mBAAmB,EAAE;YACnD,uDAAuD;YACvD,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;SAErD;aAAM,IAAI,IAAA,yBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACvB,+FAA+F;YAC/F,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;gBAC9B,IAAI,IAAI,GAAG,CAAC;aACf;SACJ;aAAM;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1B;QAED,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;SAC/B,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;CACJ;AAxCD,8CAwCC;AAED;;;GAGG;AACH,MAAa,gCAAiC,SAAQ,UAAU;IAC5D,YACa,KAAmC;QAE5C,KAAK,EAAE,CAAC;QAFC,UAAK,GAAL,KAAK,CAA8B;QAG5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC7B,CAAC;IAGD,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;SACxD,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;CACJ;AAlBD,4EAkBC;AAED,MAAa,sBAAuB,SAAQ,UAAU;IAClD,YACa,QAA8C,EAC9C,IAAW,EACX,KAAY,EACZ,YAAY,KAAK;;QAE1B,KAAK,EAAE,CAAC;QALC,aAAQ,GAAR,QAAQ,CAAsC;QAC9C,SAAI,GAAJ,IAAI,CAAO;QACX,UAAK,GAAL,KAAK,CAAO;QACZ,cAAS,GAAT,SAAS,CAAQ;QAG1B,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3F,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAClC,CAAC;QACF,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,KAAK,CAAC,UAAU,EAAE,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,IAAA,+BAAkB,EAAC,OAAO,CAAC,EAAE;gBAC7B,+FAA+F;gBAC/F,IAAI,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,cAAI,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE;oBAClF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpB;qBAAM;oBACH,MAAM,CAAC,IAAI,CACP,IAAI,EACJ,KAAK,CAAC,MAAM,EAAE,CACjB,CAAC;iBACL;gBACD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;aACzB;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElB,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,MAAM,EAAE,EACd,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAC9B,CAAC;aACL;SACJ;QACD,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,4DAA4D;QAC5D,IAAI,WAAW,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/B;QAED,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CACnC,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAA,eAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aAClD;SACJ;IACL,CAAC;CACJ;AAnED,wDAmEC;AAED,MAAa,kBAAmB,SAAQ,UAAU;IAC9C,YACW,QAAe,EACf,UAAiB;IACxB,wEAAwE;IACjE,KAAiB,EACjB,IAAa;QAEpB,KAAK,EAAE,CAAC;QAND,aAAQ,GAAR,QAAQ,CAAO;QACf,eAAU,GAAV,UAAU,CAAO;QAEjB,UAAK,GAAL,KAAK,CAAY;QACjB,SAAI,GAAJ,IAAI,CAAS;QAGpB,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IAKD,SAAS,CAAC,KAAwB;QAC9B,sEAAsE;QACtE,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAA,eAAI,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CAEJ;AAxBD,gDAwBC;AAED,MAAa,mBAAoB,SAAQ,UAAU;IAC/C,YACa,QAAsD,EACtD,IAAW,EACX,KAAY,EACZ,kBAAsC;;QAE/C,KAAK,EAAE,CAAC;QALC,aAAQ,GAAR,QAAQ,CAA8C;QACtD,SAAI,GAAJ,IAAI,CAAO;QACX,UAAK,GAAL,KAAK,CAAO;QACZ,uBAAkB,GAAlB,kBAAkB,CAAoB;QAS1C,gBAAW,GAAgB,IAAI,yBAAW,EAAE,CAAC;QAC7C,gBAAW,GAAgB,IAAI,yBAAW,EAAE,CAAC;QAPlD,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvF,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAOM,gBAAgB;QACnB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,uBAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACzI,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,IAAI,IAAA,iCAAoB,EAAC,OAAO,CAAC,EAAE;gBAC/B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAA,iCAAwB,EAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;aAC/I;SACJ;IACL,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,YAAY;QACZ,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAClC,CAAC;QACF,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,uHAAuH;QACvH,IAAI,WAAW,IAAI,CAAC,IAAA,+BAAkB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;YAClH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEvC,sCAAsC;YACtC,IAAI,IAAA,+BAAkB,EAAC,OAAc,CAAC;gBAClC,CAAC,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,cAAI,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,EACpF;gBACE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEjB,aAAa;aAChB;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/B;YAED,iBAAiB;YACjB,IAAI,IAAA,+BAAkB,EAAC,OAAO,CAAC,EAAE;gBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5C;iBAAM;gBACH,KAAK;gBACL,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CACzC,CAAC;gBACF,OAAO;gBACP,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,EACxC,GAAG,CACN,CAAC;gBAEF,OAAO;gBACP,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aAClD;YAGD,0DAA0D;YAC1D,IAAI,WAAW,IAAI,IAAA,+BAAkB,EAAC,WAAW,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;gBAE7G,kCAAkC;aACrC;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;SACJ;QACD,KAAK,CAAC,UAAU,EAAE,CAAC;QAEnB,mDAAmD;QACnD,IAAI,WAAW,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/B;QACD,aAAa;QACb,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CACnC,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,IAAA,+BAAkB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;oBACtC,IAAA,eAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBAClD;qBAAM;oBACH,IAAA,eAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBAClD;aACJ;SACJ;IACL,CAAC;CACJ;AA1GD,kDA0GC;AAED,MAAa,eAAgB,SAAQ,UAAU;IAC3C,YACW,QAAe,EACf,KAAiB;QAExB,KAAK,EAAE,CAAC;QAHD,aAAQ,GAAR,QAAQ,CAAO;QACf,UAAK,GAAL,KAAK,CAAY;QAGxB,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnC,GAAG;YACH,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;SACjC,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACzC;IACL,CAAC;CACJ;AAxBD,0CAwBC;AAED,MAAa,kBAAmB,SAAQ,UAAU;IAC9C,YACW,IAAgB,EAChB,aAA+C;QAEtD,KAAK,EAAE,CAAC;QAHD,SAAI,GAAJ,IAAI,CAAY;QAChB,kBAAa,GAAb,aAAa,CAAkC;QAGtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACjC,CAAC;IAIM,OAAO,CAAC,SAAoB;QAC/B,OAAO,SAAS,KAAK,kBAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAClF,CAAC;IAED,SAAS,CAAC,KAAwB;;QAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,yDAAyD;QACzD,IAAI,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,EAAE,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC,EAAE;YACxG,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC;gBAClD,GAAG;gBACH,IAAI,CAAC,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC;aACvC,CAAC,CACL,CAAC;YAEF,qBAAqB;SACxB;aAAM;YACH,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAClC,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;CACJ;AAvCD,gDAuCC;AAED,MAAa,uBAAwB,SAAQ,UAAU;IACnD,YACa,KAAY;QAErB,KAAK,EAAE,CAAC;QAFC,UAAK,GAAL,KAAK,CAAO;QAGrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC7B,CAAC;IAIO,eAAe,CAAC,KAAwB,EAAE,SAAoB;QAClE,IAAI,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5F,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,OAAO,kBAAkB,CAAC,cAAc,EAAE;YACtC,IAAI,KAAK,GAAG,kBAAkB,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACnG,SAAS,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YAClC,kBAAkB,GAAG,kBAAkB,CAAC,cAAc,CAAC;SAC1D;QACD,8CAA8C;QAC9C,SAAS,CAAC,OAAO,CACb,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAC1D,CAAC;QACF,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,IAAI,IAAY,CAAC;QACjB,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACrB,KAAK,qBAAS,CAAC,qBAAqB;gBAChC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvC,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClE,MAAM;YACV,KAAK,qBAAS,CAAC,oBAAoB;gBAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM;YACV,KAAK,qBAAS,CAAC,mBAAmB;gBAC9B,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAS,CAAC,YAAY,CAAC,GAAG,CAAC;gBAClE,MAAM;YACV,KAAK,qBAAS,CAAC,yBAAyB;gBACpC,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAS,CAAC,cAAc,CAAC,GAAG,CAAC;gBACpE,MAAM;YACV,KAAK,qBAAS,CAAC,qBAAqB;gBAChC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;gBAC7G,MAAM;YACV,KAAK,qBAAS,CAAC,cAAc;gBACzB,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;gBAC3D,MAAM;YACV,KAAK,qBAAS,CAAC,kBAAkB;gBAC7B,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC;gBAC5E,MAAM;YACV,KAAK,qBAAS,CAAC,cAAc,CAAC;YAC9B;gBACI,0DAA0D;gBAC1D,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACvB,MAAM;SAEb;QACD,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;SAC/B,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;CACJ;AAlED,0DAkEC;AAED;;;;GAIG;AACH,MAAa,aAAc,SAAQ,UAAU;IACzC,YACa,UAAiB,EACjB,IAAoB;QAE7B,KAAK,EAAE,CAAC;QAHC,eAAU,GAAV,UAAU,CAAO;QACjB,SAAI,GAAJ,IAAI,CAAgB;QAG7B,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAID;;OAEG;IACH,IAAW,SAAS;QAChB,2EAA2E;QAC3E,oCAAoC;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,MAA0C,CAAC;IAChE,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACnC,CAAC;IAEM,SAAS,CAAC,KAAwB;;QACrC,MAAM,GAAG,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,gBAAgB,CACnC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,EAChD,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CACxD,0CAAE,IAAI,CAAC;QACR,qHAAqH;QACrH,6GAA6G;QAC7G,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACxC;IACL,CAAC;CACJ;AAvCD,sCAuCC;AAED,MAAa,kBAAmB,SAAQ,UAAU;IAC9C,YACa,MAAkB,EAClB,QAAe,EACf,UAAsB,EACtB,YAAmB,EACnB,IAAkB,EAClB,YAAmB;;QAE5B,KAAK,EAAE,CAAC;QAPC,WAAM,GAAN,MAAM,CAAY;QAClB,aAAQ,GAAR,QAAQ,CAAO;QACf,eAAU,GAAV,UAAU,CAAY;QACtB,iBAAY,GAAZ,YAAY,CAAO;QACnB,SAAI,GAAJ,IAAI,CAAc;QAClB,iBAAY,GAAZ,YAAY,CAAO;QAG5B,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACnJ,CAAC;IAIM,SAAS,CAAC,KAAwB;QACrC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CACP,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAC5C,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,0BAA0B;QAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EACnE,IAAI,CACP,CAAC;QACF,gBAAgB;QAChB,wGAAwG;QACxG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1B;aAAM;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,wBAAwB;gBACxB,IAAI,CAAC,GAAG,CAAC,EAAE;oBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrB;gBACD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aACxC;SACJ;QACD,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAC1C,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAA,eAAI,EAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aAC9C;SACJ;IACL,CAAC;CACJ;AArDD,gDAqDC;AAED;;;GAGG;AACH,MAAa,6BAA8B,SAAQ,UAAU;IACzD,YACa,WAAwE;;QAEjF,KAAK,EAAE,CAAC;QAFC,gBAAW,GAAX,WAAW,CAA6D;QAGjF,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAID,SAAS,CAAC,KAAwB,EAAE,gBAAgB,GAAG,IAAI;QACvD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACrC,oBAAoB;YACpB,8DAA8D;YAC9D,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,IAAI,gBAAgB,KAAK,IAAI,EAAE;gBAC3D,SAAS;aACZ;YACD,MAAM,CAAC,IAAI,CACP,IAAI,EACJ,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CACjC,CAAC;YACF,IAAI,GAAG,KAAK,CAAC;SAChB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAA,eAAI,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aACrD;SACJ;IACL,CAAC;CACJ;AAnCD,sEAmCC;AAED,MAAa,wBAAyB,SAAQ,UAAU;IACpD,YACa,eAAsB,EACtB,MAAuC,EACvC,WAAyB,EACzB,eAAsB;;QAE/B,KAAK,EAAE,CAAC;QALC,oBAAe,GAAf,eAAe,CAAO;QACtB,WAAM,GAAN,MAAM,CAAiC;QACvC,gBAAW,GAAX,WAAW,CAAc;QACzB,oBAAe,GAAf,eAAe,CAAO;QAG/B,2GAA2G;QAC3G,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9G,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC1C;QACD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,wDAAwD;QACxD,SAAS,GAAG,CAAC,GAAG,KAAK;YACjB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,CAAC,IAAI,CACP,IAAI,EACJ,GAAG,KAAK,CACX,CAAC;aACL;YACD,yEAAyE;YACzE,IAAI,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,IAAI,GAAG,KAAK,CAAC;aAChB;QACL,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAErC,GAAG,CACC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAC5B,CAAC;YACF,IAAI,UAAU,EAAE;gBACZ,sDAAsD;gBACtD,IACI,IAAA,+CAAkC,EAAC,UAAU,CAAC;oBAC9C,CAAC,IAAA,gCAAmB,EAAC,UAAU,CAAC,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EACpE;oBACE,GAAG,CACC,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CACjC,CAAC;oBAEF,+FAA+F;iBAClG;qBAAM;oBACH,GAAG,CACC,KAAK,CAAC,WAAW,GAAG,YAAY,EAChC,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAC9B,GAAG,CACN,CAAC;iBACL;aACJ;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,wDAAwD;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAA,eAAI,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAE7C,4FAA4F;gBAC5F,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACrB,IAAA,eAAI,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBACrD;aACJ;SACJ;IACL,CAAC;CACJ;AA9ED,4DA8EC;AAED,MAAa,8BAA+B,SAAQ,UAAU;IAC1D,YACa,OAAmB,EACnB,eAAsB,EACtB,MAAuC,EACvC,WAAyB,EACzB,eAAsB;;QAE/B,KAAK,EAAE,CAAC;QANC,YAAO,GAAP,OAAO,CAAY;QACnB,oBAAe,GAAf,eAAe,CAAO;QACtB,WAAM,GAAN,MAAM,CAAiC;QACvC,gBAAW,GAAX,WAAW,CAAc;QACzB,oBAAe,GAAf,eAAe,CAAO;QAG/B,2GAA2G;QAC3G,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5H,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAClC,IAAI,CACP,CAAC;QAEF,+BAA+B;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,6BAA6B;YAC7B,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,MAAM,CAAC,IAAI,CACP,IAAI,CACP,CAAC;aACL;YACD,MAAM,CAAC,IAAI,CACP,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CACnC,CAAC;SACL;QACD,MAAM,CAAC,IAAI,CACP,MAAM,CACT,CAAC;QAEF,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,MAAM,CAAC,IAAI,CACP,IAAI,CACP,CAAC;aACL;YACD,MAAM,CAAC,IAAI,CACP,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CACjC,CAAC;SACL;QACD,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAC/C,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,wDAAwD;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAA,eAAI,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAE7C,4FAA4F;gBAC5F,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACrB,IAAA,eAAI,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBACrD;aACJ;SACJ;IACL,CAAC;CACJ;AAtED,wEAsEC;AAED,MAAa,oBAAqB,SAAQ,UAAU;IAChD,YACa,OAAc,EACd,SAAgB;QAEzB,KAAK,EAAE,CAAC;QAHC,YAAO,GAAP,OAAO,CAAO;QACd,cAAS,GAAT,SAAS,CAAO;QAGzB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,MAAM,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACnF;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAMD;;;OAGG;IACH,YAAY,CAAC,MAAM,GAAG,IAAI;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,EAAE,CAAC;SACb;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;IACD,UAAU,CAAC,KAAwB;;QAC/B,OAAO;YACH,GAAG;YACH,IAAI,CAAC,IAAI;YACT,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC;SACzC,CAAC;IACN,CAAC;CACJ;AAjDD,oDAiDC;AAED,MAAa,iBAAkB,SAAQ,UAAU;IAC7C,YACa,IAAgB,EAChB,iBAAwB,EACxB,UAAuB,EACvB,UAAkB,EAClB,SAAsB;QAE/B,KAAK,EAAE,CAAC;QANC,SAAI,GAAJ,IAAI,CAAY;QAChB,sBAAiB,GAAjB,iBAAiB,CAAO;QACxB,eAAU,GAAV,UAAU,CAAa;QACvB,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAa;QAG/B,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/H,CAAC;IAID,SAAS,CAAC,KAAwB;;QAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,cAAc,GAAG,cAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,aAAa,GAAG,cAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3D,8HAA8H;QAC9H,IAAI,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,cAAc,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjH,IAAI,mBAAmB,GAAG;YACtB,GAAG,cAAc,CAAC,WAAW;YAC7B,GAAG,aAAa,CAAC,WAAW;SAC/B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,cAAc,IAAI,CAAC,YAAY,kBAAkB,IAAI,CAAC,YAAY,mBAAmB,CAAC,CAAC;QAElH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,UAAU,CACZ,IAAI,CAAC,iBAAiB;YACtB,8CAA8C;YAC9C,oDAAoD;YACpD,4BAA4B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC9D,EACD,KAAK,CAAC,OAAO;YACb,2EAA2E;YAC3E,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,EACpD,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,KAAK,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,EACtE,GAAG,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,EAC7F,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,KAAK,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACnE,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,KAAK,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,EACtE,GAAG,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,EAC/G,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAClD,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAC1D,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAC7B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CACjF,CAAC;YACF,KAAK,CAAC,UAAU,EAAE,CAAC;SACtB;aAAM;YACH,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,EAC5D,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAC7B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EACjC,GAAG,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,CAAC,SAAS,CAAC,EACnD,IAAI,EACJ,GAAG,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,CAAC,SAAS,CAAC,EAClD,GAAG,CACN,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAClD,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACrC,IAAA,eAAI,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAA,eAAI,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7C;IACL,CAAC;CACJ;AAhFD,8CAgFC;AAED,MAAa,wBAAyB,SAAQ,UAAU;IACpD,YACW,UAAsB,EACtB,qBAA4B,EAC5B,SAAqB;QAE5B,KAAK,EAAE,CAAC;QAJD,eAAU,GAAV,UAAU,CAAY;QACtB,0BAAqB,GAArB,qBAAqB,CAAO;QAC5B,cAAS,GAAT,SAAS,CAAY;QAG5B,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACvG,CAAC;IAID,SAAS,CAAC,KAAwB;QAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,cAAc,GAAG,cAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,aAAa,GAAG,cAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3D,8HAA8H;QAC9H,IAAI,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,cAAc,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjH,IAAI,qBAAqB,GAAG;YACxB,GAAG,cAAc,CAAC,WAAW;YAC7B,GAAG,aAAa,CAAC,WAAW;SAC/B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,6BAAgB,EAAC,CAAC,CAAC,IAAI,IAAA,iCAAoB,EAAC,CAAC,CAAC,IAAI,IAAA,kCAAqB,EAAC,CAAC,CAAC,CAAC,CAAC;QAExF,IAAI,qBAAqB,EAAE;YACvB,MAAM,CAAC,IAAI,CACP,YAAY;YACZ,8CAA8C;YAC9C,oDAAoD;YACpD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,GAAG,EACH,KAAK,CAAC,OAAO;YACb,2EAA2E;YAC3E,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACf,kFAAkF;YAClF,mBAAmB,EACnB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EACnC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,EAAE,EACd,mCAAmC,EACnC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,uBAAuB,EACvB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,MAAM,EACN,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,SAAS,EACT,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAClC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,QAAQ,EACR,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,gBAAgB,EAChB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,GAAG,CACN,CAAC;YACF,KAAK,CAAC,UAAU,EAAE,CAAC;SACtB;aAAM;YACH,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,WAAW,GAAG,YAAY,EAChC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EACnC,IAAI,EACJ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAClC,GAAG,CACN,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAClD,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAA,eAAI,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7C;IACL,CAAC;CACJ;AA9ED,4DA8EC;AAED,MAAa,sBAAuB,SAAQ,UAAU;IAClD,YACW,MAEN;QAED,KAAK,EAAE,CAAC;QAJD,WAAM,GAAN,MAAM,CAEZ;QAGD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;IAChD,CAAC;IAIM,SAAS,CAAC,KAAwB;;QACrC,IAAI,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,0CAAE,IAAI,mCAAI,EAAE,CAAC;QAChD,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,4BAA4B;QAC5B,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE;YACX,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9C,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,IAAI,OAAO,GAAG,IAAI;YACd,qCAAqC;aACpC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,mBAAmB;aAClB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAExC,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACvC,0BAA0B;gBAC1B,IAAI,OAAO,KAAK;gBAChB,IAAI,KAAK,GAAG;gBACZ,GAAG;aACN,CAAC;SACL,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;CACJ;AAxCD,wDAwCC;AAED,MAAa,cAAe,SAAQ,UAAU;IAC1C,YACY,MAEP,EACM,aAAgD;QAEvD,KAAK,EAAE,CAAC;QALA,WAAM,GAAN,MAAM,CAEb;QACM,kBAAa,GAAb,aAAa,CAAmC;QAGvD,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAID;;OAEG;IACH,IAAW,IAAI;QACX,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC;SACrB;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,YAAuB,kBAAS,CAAC,cAAc;QACnD,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;YAC3B,CAAC,CAAC,cAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,KAAK,kBAAS,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC;YACnG,CAAC,CAAC,IAAI,yBAAW,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,YAAuB,kBAAS,CAAC,cAAc;QACvD,OAAO,CAAC,CAAC,cAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,KAAK,kBAAS,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/G,CAAC;IAED;;;OAGG;IACH,OAAO;QACH,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,SAAS,CAAC,KAAwB;QACrC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,kBAAkB;QAClB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChG,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;CACJ;AA9DD,wCA8DC;AAED,MAAa,mBAAoB,SAAQ,cAAc;IACnD,YACW,UAA4B,EAAE,qEAAqE;IAClG,aAGP,EACM,aAAgD;QAEvD,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAPlB,eAAU,GAAV,UAAU,CAAkB;QAC3B,kBAAa,GAAb,aAAa,CAGpB;QACM,kBAAa,GAAb,aAAa,CAAmC;QAGvD,IAAI,CAAC,KAAK,GAAG,cAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/H,CAAC;IAGD;;MAEE;IACF,IAAY,qBAAqB;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD;;;OAGG;IACH,OAAO,CAAC,YAAuB,kBAAS,CAAC,cAAc;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAI,qBAAS,CAAC,GAAG,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,YAAuB,kBAAS,CAAC,cAAc;QACvD,IAAI,SAAS,KAAK,kBAAS,CAAC,cAAc,EAAE;YACxC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE;gBACpD,OAAO,UAAU,IAAI,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC1D,CAAC,EAAE,IAAI,CAAC,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,OAAO;QACH,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAA,eAAI,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aACpD;SACJ;IACL,CAAC;CACJ;AAxDD,kDAwDC;AAKD,SAAS,iBAAiB,CAAC,IAAgB,EAAE,MAAe;IACxD,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,IAAI,CAAC;KACf;IACD,IAAI,IAAA,8BAAiB,EAAC,IAAI,CAAC,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACxD,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAClE;IACD,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,EAAE;QACvB,oCAAoC;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KAC9D;IACD,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,EAAE;QACvB,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;KACxC;IAED,IAAI,IAAA,6BAAgB,EAAC,IAAI,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;KACnD;IACD,IAAI,IAAA,qCAAwB,EAAC,IAAI,CAAC,EAAE;QAChC,OAAO,IAAI,CAAC,QAAQ;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAA,+BAAkB,EAAC,CAAC,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;KAC/C;IACD,IAAI,IAAA,kCAAqB,EAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,IAAA,+BAAkB,EAAC,CAAC,CAAC,EAAE;gBACxB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aAC7D;YACD,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;KACV;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAuB,EAAE,QAAQ,GAAG,EAAE;IACnE,IAAI,IAAA,0BAAa,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAA,8BAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC1D,OAAO,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC/C;SAAM;QACH,OAAO,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACjD;AACL,CAAC"}
|
package/dist/parser/Parser.d.ts
CHANGED
|
@@ -229,6 +229,8 @@ export declare class Parser {
|
|
|
229
229
|
*/
|
|
230
230
|
private typeExpression;
|
|
231
231
|
private primary;
|
|
232
|
+
private arrayLiteral;
|
|
233
|
+
private aaLiteral;
|
|
232
234
|
/**
|
|
233
235
|
* Pop token if we encounter specified token
|
|
234
236
|
*/
|
|
@@ -238,6 +240,11 @@ export declare class Parser {
|
|
|
238
240
|
* @param tokenKinds
|
|
239
241
|
*/
|
|
240
242
|
private matchAny;
|
|
243
|
+
/**
|
|
244
|
+
* If the next series of tokens matches the given set of tokens, pop them all
|
|
245
|
+
* @param tokenKinds
|
|
246
|
+
*/
|
|
247
|
+
private matchSequence;
|
|
241
248
|
/**
|
|
242
249
|
* Get next token matching a specified list, or fail with an error
|
|
243
250
|
*/
|
|
@@ -260,6 +267,16 @@ export declare class Parser {
|
|
|
260
267
|
private peekNext;
|
|
261
268
|
private peek;
|
|
262
269
|
private previous;
|
|
270
|
+
/**
|
|
271
|
+
* Get the token that is {offset} indexes away from {this.current}
|
|
272
|
+
* @param offset the number of index steps away from current index to fetch
|
|
273
|
+
* @param tokenKinds the desired token must match one of these
|
|
274
|
+
* @example
|
|
275
|
+
* getToken(-1); //returns the previous token.
|
|
276
|
+
* getToken(0); //returns current token.
|
|
277
|
+
* getToken(1); //returns next token
|
|
278
|
+
*/
|
|
279
|
+
private getMatchingTokenAtOffset;
|
|
263
280
|
private synchronize;
|
|
264
281
|
/**
|
|
265
282
|
* Get the token at the specified position
|
|
@@ -341,7 +358,7 @@ export declare class References {
|
|
|
341
358
|
get interfaceStatementLookup(): Map<string, InterfaceStatement>;
|
|
342
359
|
private _interfaceStatementLookup;
|
|
343
360
|
enumStatements: EnumStatement[];
|
|
344
|
-
get enumStatementLookup():
|
|
361
|
+
get enumStatementLookup(): Map<string, EnumStatement>;
|
|
345
362
|
/**
|
|
346
363
|
* A collection of full expressions. This excludes intermediary expressions.
|
|
347
364
|
*
|
package/dist/parser/Parser.js
CHANGED
|
@@ -373,6 +373,9 @@ class Parser {
|
|
|
373
373
|
//consume the final `end interface` token
|
|
374
374
|
tokens.endEnum = this.consumeToken(TokenKind_1.TokenKind.EndEnum);
|
|
375
375
|
const result = new Statement_1.EnumStatement(tokens, body, this.currentNamespaceName);
|
|
376
|
+
if (tokens.name) {
|
|
377
|
+
this.currentSymbolTable.addSymbol(tokens.name.text, tokens.name.range, result.getThisBscType());
|
|
378
|
+
}
|
|
376
379
|
this._references.enumStatements.push(result);
|
|
377
380
|
this.exitAnnotationBlock(parentAnnotations);
|
|
378
381
|
return result;
|
|
@@ -1668,17 +1671,18 @@ class Parser {
|
|
|
1668
1671
|
}
|
|
1669
1672
|
indexedGet(expr) {
|
|
1670
1673
|
let openingSquare = this.previous();
|
|
1674
|
+
let questionDotToken = this.getMatchingTokenAtOffset(-2, TokenKind_1.TokenKind.QuestionDot);
|
|
1671
1675
|
while (this.match(TokenKind_1.TokenKind.Newline)) { }
|
|
1672
1676
|
let index = this.expression();
|
|
1673
1677
|
while (this.match(TokenKind_1.TokenKind.Newline)) { }
|
|
1674
1678
|
let closingSquare = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedRightSquareBraceAfterArrayOrObjectIndex(), TokenKind_1.TokenKind.RightSquareBracket);
|
|
1675
|
-
return new Expression_1.IndexedGetExpression(expr, index, openingSquare, closingSquare);
|
|
1679
|
+
return new Expression_1.IndexedGetExpression(expr, index, openingSquare, closingSquare, questionDotToken);
|
|
1676
1680
|
}
|
|
1677
1681
|
newExpression() {
|
|
1678
1682
|
this.warnIfNotBrighterScriptMode(`using 'new' keyword to construct a class`);
|
|
1679
1683
|
let newToken = this.advance();
|
|
1680
1684
|
let nameExpr = this.getNamespacedVariableNameExpression();
|
|
1681
|
-
let leftParen = this.consume(DiagnosticMessages_1.DiagnosticMessages.unexpectedToken(this.peek().text), TokenKind_1.TokenKind.LeftParen);
|
|
1685
|
+
let leftParen = this.consume(DiagnosticMessages_1.DiagnosticMessages.unexpectedToken(this.peek().text), TokenKind_1.TokenKind.LeftParen, TokenKind_1.TokenKind.QuestionLeftParen);
|
|
1682
1686
|
let call = this.finishCall(leftParen, nameExpr);
|
|
1683
1687
|
//pop the call from the callExpressions list because this is technically something else
|
|
1684
1688
|
this.callExpressions.pop();
|
|
@@ -1707,12 +1711,12 @@ class Parser {
|
|
|
1707
1711
|
//an expression to keep for _references
|
|
1708
1712
|
let referenceCallExpression;
|
|
1709
1713
|
while (true) {
|
|
1710
|
-
if (this.
|
|
1714
|
+
if (this.matchAny(TokenKind_1.TokenKind.LeftParen, TokenKind_1.TokenKind.QuestionLeftParen)) {
|
|
1711
1715
|
expr = this.finishCall(this.previous(), expr);
|
|
1712
1716
|
//store this call expression in references
|
|
1713
1717
|
referenceCallExpression = expr;
|
|
1714
1718
|
}
|
|
1715
|
-
else if (this.
|
|
1719
|
+
else if (this.matchAny(TokenKind_1.TokenKind.LeftSquareBracket, TokenKind_1.TokenKind.QuestionLeftSquare) || this.matchSequence(TokenKind_1.TokenKind.QuestionDot, TokenKind_1.TokenKind.LeftSquareBracket)) {
|
|
1716
1720
|
expr = this.indexedGet(expr);
|
|
1717
1721
|
}
|
|
1718
1722
|
else if (this.match(TokenKind_1.TokenKind.Callfunc)) {
|
|
@@ -1720,7 +1724,7 @@ class Parser {
|
|
|
1720
1724
|
//store this callfunc expression in references
|
|
1721
1725
|
referenceCallExpression = expr;
|
|
1722
1726
|
}
|
|
1723
|
-
else if (this.
|
|
1727
|
+
else if (this.matchAny(TokenKind_1.TokenKind.Dot, TokenKind_1.TokenKind.QuestionDot)) {
|
|
1724
1728
|
if (this.match(TokenKind_1.TokenKind.LeftSquareBracket)) {
|
|
1725
1729
|
expr = this.indexedGet(expr);
|
|
1726
1730
|
}
|
|
@@ -1733,7 +1737,7 @@ class Parser {
|
|
|
1733
1737
|
this.addPropertyHints(name);
|
|
1734
1738
|
}
|
|
1735
1739
|
}
|
|
1736
|
-
else if (this.
|
|
1740
|
+
else if (this.checkAny(TokenKind_1.TokenKind.At, TokenKind_1.TokenKind.QuestionAt)) {
|
|
1737
1741
|
let dot = this.advance();
|
|
1738
1742
|
let name = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedAttributeNameAfterAtSymbol(), TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties);
|
|
1739
1743
|
// force it into an identifier so the AST makes some sense
|
|
@@ -1754,8 +1758,7 @@ class Parser {
|
|
|
1754
1758
|
}
|
|
1755
1759
|
finishCall(openingParen, callee, addToCallExpressionList = true) {
|
|
1756
1760
|
let args = [];
|
|
1757
|
-
while (this.match(TokenKind_1.TokenKind.Newline)) {
|
|
1758
|
-
}
|
|
1761
|
+
while (this.match(TokenKind_1.TokenKind.Newline)) { }
|
|
1759
1762
|
if (!this.check(TokenKind_1.TokenKind.RightParen)) {
|
|
1760
1763
|
do {
|
|
1761
1764
|
while (this.match(TokenKind_1.TokenKind.Newline)) { }
|
|
@@ -1838,106 +1841,10 @@ class Parser {
|
|
|
1838
1841
|
let expr = this.expression();
|
|
1839
1842
|
let right = this.consume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftParenAfterExpression(), TokenKind_1.TokenKind.RightParen);
|
|
1840
1843
|
return new Expression_1.GroupingExpression({ left: left, right: right }, expr);
|
|
1841
|
-
case this.
|
|
1842
|
-
|
|
1843
|
-
let openingSquare = this.previous();
|
|
1844
|
-
//add any comment found right after the opening square
|
|
1845
|
-
if (this.check(TokenKind_1.TokenKind.Comment)) {
|
|
1846
|
-
elements.push(new Statement_1.CommentStatement([this.advance()]));
|
|
1847
|
-
}
|
|
1848
|
-
while (this.match(TokenKind_1.TokenKind.Newline)) {
|
|
1849
|
-
}
|
|
1850
|
-
if (!this.match(TokenKind_1.TokenKind.RightSquareBracket)) {
|
|
1851
|
-
elements.push(this.expression());
|
|
1852
|
-
while (this.matchAny(TokenKind_1.TokenKind.Comma, TokenKind_1.TokenKind.Newline, TokenKind_1.TokenKind.Comment)) {
|
|
1853
|
-
if (this.checkPrevious(TokenKind_1.TokenKind.Comment) || this.check(TokenKind_1.TokenKind.Comment)) {
|
|
1854
|
-
let comment = this.check(TokenKind_1.TokenKind.Comment) ? this.advance() : this.previous();
|
|
1855
|
-
elements.push(new Statement_1.CommentStatement([comment]));
|
|
1856
|
-
}
|
|
1857
|
-
while (this.match(TokenKind_1.TokenKind.Newline)) {
|
|
1858
|
-
}
|
|
1859
|
-
if (this.check(TokenKind_1.TokenKind.RightSquareBracket)) {
|
|
1860
|
-
break;
|
|
1861
|
-
}
|
|
1862
|
-
elements.push(this.expression());
|
|
1863
|
-
}
|
|
1864
|
-
this.consume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftSquareBraceAfterArrayLiteral(), TokenKind_1.TokenKind.RightSquareBracket);
|
|
1865
|
-
}
|
|
1866
|
-
let closingSquare = this.previous();
|
|
1867
|
-
//this.consume("Expected newline or ':' after array literal", TokenKind.Newline, TokenKind.Colon, TokenKind.Eof);
|
|
1868
|
-
return new Expression_1.ArrayLiteralExpression(elements, openingSquare, closingSquare);
|
|
1844
|
+
case this.matchAny(TokenKind_1.TokenKind.LeftSquareBracket):
|
|
1845
|
+
return this.arrayLiteral();
|
|
1869
1846
|
case this.match(TokenKind_1.TokenKind.LeftCurlyBrace):
|
|
1870
|
-
|
|
1871
|
-
let members = [];
|
|
1872
|
-
let key = () => {
|
|
1873
|
-
let result = {
|
|
1874
|
-
colonToken: null,
|
|
1875
|
-
keyToken: null,
|
|
1876
|
-
range: null
|
|
1877
|
-
};
|
|
1878
|
-
if (this.checkAny(TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties)) {
|
|
1879
|
-
result.keyToken = this.advance();
|
|
1880
|
-
}
|
|
1881
|
-
else if (this.check(TokenKind_1.TokenKind.StringLiteral)) {
|
|
1882
|
-
result.keyToken = this.advance();
|
|
1883
|
-
}
|
|
1884
|
-
else {
|
|
1885
|
-
this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unexpectedAAKey()), { range: this.peek().range }));
|
|
1886
|
-
throw this.lastDiagnosticAsError();
|
|
1887
|
-
}
|
|
1888
|
-
result.colonToken = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedColonBetweenAAKeyAndvalue(), TokenKind_1.TokenKind.Colon);
|
|
1889
|
-
result.range = util_1.util.getRange(result.keyToken, result.colonToken);
|
|
1890
|
-
return result;
|
|
1891
|
-
};
|
|
1892
|
-
while (this.match(TokenKind_1.TokenKind.Newline)) {
|
|
1893
|
-
}
|
|
1894
|
-
if (!this.match(TokenKind_1.TokenKind.RightCurlyBrace)) {
|
|
1895
|
-
let lastAAMember;
|
|
1896
|
-
if (this.check(TokenKind_1.TokenKind.Comment)) {
|
|
1897
|
-
lastAAMember = null;
|
|
1898
|
-
members.push(new Statement_1.CommentStatement([this.advance()]));
|
|
1899
|
-
}
|
|
1900
|
-
else {
|
|
1901
|
-
let k = key();
|
|
1902
|
-
let expr = this.expression();
|
|
1903
|
-
lastAAMember = new Expression_1.AAMemberExpression(k.keyToken, k.colonToken, expr, getBscTypeFromExpression(expr, this.currentFunctionExpression));
|
|
1904
|
-
members.push(lastAAMember);
|
|
1905
|
-
}
|
|
1906
|
-
while (this.matchAny(TokenKind_1.TokenKind.Comma, TokenKind_1.TokenKind.Newline, TokenKind_1.TokenKind.Colon, TokenKind_1.TokenKind.Comment)) {
|
|
1907
|
-
// collect comma at end of expression
|
|
1908
|
-
if (lastAAMember && this.checkPrevious(TokenKind_1.TokenKind.Comma)) {
|
|
1909
|
-
lastAAMember.commaToken = this.previous();
|
|
1910
|
-
}
|
|
1911
|
-
//check for comment at the end of the current line
|
|
1912
|
-
if (this.check(TokenKind_1.TokenKind.Comment) || this.checkPrevious(TokenKind_1.TokenKind.Comment)) {
|
|
1913
|
-
let token = this.checkPrevious(TokenKind_1.TokenKind.Comment) ? this.previous() : this.advance();
|
|
1914
|
-
members.push(new Statement_1.CommentStatement([token]));
|
|
1915
|
-
}
|
|
1916
|
-
else {
|
|
1917
|
-
this.consumeStatementSeparators(true);
|
|
1918
|
-
//check for a comment on its own line
|
|
1919
|
-
if (this.check(TokenKind_1.TokenKind.Comment) || this.checkPrevious(TokenKind_1.TokenKind.Comment)) {
|
|
1920
|
-
let token = this.checkPrevious(TokenKind_1.TokenKind.Comment) ? this.previous() : this.advance();
|
|
1921
|
-
lastAAMember = null;
|
|
1922
|
-
members.push(new Statement_1.CommentStatement([token]));
|
|
1923
|
-
continue;
|
|
1924
|
-
}
|
|
1925
|
-
if (this.check(TokenKind_1.TokenKind.RightCurlyBrace)) {
|
|
1926
|
-
break;
|
|
1927
|
-
}
|
|
1928
|
-
let k = key();
|
|
1929
|
-
let expr = this.expression();
|
|
1930
|
-
lastAAMember = new Expression_1.AAMemberExpression(k.keyToken, k.colonToken, expr, getBscTypeFromExpression(expr, this.currentFunctionExpression));
|
|
1931
|
-
members.push(lastAAMember);
|
|
1932
|
-
}
|
|
1933
|
-
}
|
|
1934
|
-
this.consume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftCurlyAfterAALiteral(), TokenKind_1.TokenKind.RightCurlyBrace);
|
|
1935
|
-
}
|
|
1936
|
-
let closingBrace = this.previous();
|
|
1937
|
-
const aaExpr = new Expression_1.AALiteralExpression(members, openingBrace, closingBrace, this.currentFunctionExpression);
|
|
1938
|
-
this._references.aaLiterals.push(aaExpr);
|
|
1939
|
-
this.addPropertyHints(aaExpr);
|
|
1940
|
-
return aaExpr;
|
|
1847
|
+
return this.aaLiteral();
|
|
1941
1848
|
case this.matchAny(TokenKind_1.TokenKind.Pos, TokenKind_1.TokenKind.Tab):
|
|
1942
1849
|
let token = Object.assign(this.previous(), {
|
|
1943
1850
|
kind: TokenKind_1.TokenKind.Identifier
|
|
@@ -1961,6 +1868,106 @@ class Parser {
|
|
|
1961
1868
|
}
|
|
1962
1869
|
}
|
|
1963
1870
|
}
|
|
1871
|
+
arrayLiteral() {
|
|
1872
|
+
let elements = [];
|
|
1873
|
+
let openingSquare = this.previous();
|
|
1874
|
+
//add any comment found right after the opening square
|
|
1875
|
+
if (this.check(TokenKind_1.TokenKind.Comment)) {
|
|
1876
|
+
elements.push(new Statement_1.CommentStatement([this.advance()]));
|
|
1877
|
+
}
|
|
1878
|
+
while (this.match(TokenKind_1.TokenKind.Newline)) {
|
|
1879
|
+
}
|
|
1880
|
+
if (!this.match(TokenKind_1.TokenKind.RightSquareBracket)) {
|
|
1881
|
+
elements.push(this.expression());
|
|
1882
|
+
while (this.matchAny(TokenKind_1.TokenKind.Comma, TokenKind_1.TokenKind.Newline, TokenKind_1.TokenKind.Comment)) {
|
|
1883
|
+
if (this.checkPrevious(TokenKind_1.TokenKind.Comment) || this.check(TokenKind_1.TokenKind.Comment)) {
|
|
1884
|
+
let comment = this.check(TokenKind_1.TokenKind.Comment) ? this.advance() : this.previous();
|
|
1885
|
+
elements.push(new Statement_1.CommentStatement([comment]));
|
|
1886
|
+
}
|
|
1887
|
+
while (this.match(TokenKind_1.TokenKind.Newline)) {
|
|
1888
|
+
}
|
|
1889
|
+
if (this.check(TokenKind_1.TokenKind.RightSquareBracket)) {
|
|
1890
|
+
break;
|
|
1891
|
+
}
|
|
1892
|
+
elements.push(this.expression());
|
|
1893
|
+
}
|
|
1894
|
+
this.consume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftSquareBraceAfterArrayLiteral(), TokenKind_1.TokenKind.RightSquareBracket);
|
|
1895
|
+
}
|
|
1896
|
+
let closingSquare = this.previous();
|
|
1897
|
+
//this.consume("Expected newline or ':' after array literal", TokenKind.Newline, TokenKind.Colon, TokenKind.Eof);
|
|
1898
|
+
return new Expression_1.ArrayLiteralExpression(elements, openingSquare, closingSquare);
|
|
1899
|
+
}
|
|
1900
|
+
aaLiteral() {
|
|
1901
|
+
let openingBrace = this.previous();
|
|
1902
|
+
let members = [];
|
|
1903
|
+
let key = () => {
|
|
1904
|
+
let result = {
|
|
1905
|
+
colonToken: null,
|
|
1906
|
+
keyToken: null,
|
|
1907
|
+
range: null
|
|
1908
|
+
};
|
|
1909
|
+
if (this.checkAny(TokenKind_1.TokenKind.Identifier, ...TokenKind_1.AllowedProperties)) {
|
|
1910
|
+
result.keyToken = this.advance();
|
|
1911
|
+
}
|
|
1912
|
+
else if (this.check(TokenKind_1.TokenKind.StringLiteral)) {
|
|
1913
|
+
result.keyToken = this.advance();
|
|
1914
|
+
}
|
|
1915
|
+
else {
|
|
1916
|
+
this.diagnostics.push(Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.unexpectedAAKey()), { range: this.peek().range }));
|
|
1917
|
+
throw this.lastDiagnosticAsError();
|
|
1918
|
+
}
|
|
1919
|
+
result.colonToken = this.consume(DiagnosticMessages_1.DiagnosticMessages.expectedColonBetweenAAKeyAndvalue(), TokenKind_1.TokenKind.Colon);
|
|
1920
|
+
result.range = util_1.util.getRange(result.keyToken, result.colonToken);
|
|
1921
|
+
return result;
|
|
1922
|
+
};
|
|
1923
|
+
while (this.match(TokenKind_1.TokenKind.Newline)) { }
|
|
1924
|
+
if (!this.match(TokenKind_1.TokenKind.RightCurlyBrace)) {
|
|
1925
|
+
let lastAAMember;
|
|
1926
|
+
if (this.check(TokenKind_1.TokenKind.Comment)) {
|
|
1927
|
+
lastAAMember = null;
|
|
1928
|
+
members.push(new Statement_1.CommentStatement([this.advance()]));
|
|
1929
|
+
}
|
|
1930
|
+
else {
|
|
1931
|
+
let k = key();
|
|
1932
|
+
let expr = this.expression();
|
|
1933
|
+
lastAAMember = new Expression_1.AAMemberExpression(k.keyToken, k.colonToken, expr, getBscTypeFromExpression(expr, this.currentFunctionExpression));
|
|
1934
|
+
members.push(lastAAMember);
|
|
1935
|
+
}
|
|
1936
|
+
while (this.matchAny(TokenKind_1.TokenKind.Comma, TokenKind_1.TokenKind.Newline, TokenKind_1.TokenKind.Colon, TokenKind_1.TokenKind.Comment)) {
|
|
1937
|
+
// collect comma at end of expression
|
|
1938
|
+
if (lastAAMember && this.checkPrevious(TokenKind_1.TokenKind.Comma)) {
|
|
1939
|
+
lastAAMember.commaToken = this.previous();
|
|
1940
|
+
}
|
|
1941
|
+
//check for comment at the end of the current line
|
|
1942
|
+
if (this.check(TokenKind_1.TokenKind.Comment) || this.checkPrevious(TokenKind_1.TokenKind.Comment)) {
|
|
1943
|
+
let token = this.checkPrevious(TokenKind_1.TokenKind.Comment) ? this.previous() : this.advance();
|
|
1944
|
+
members.push(new Statement_1.CommentStatement([token]));
|
|
1945
|
+
}
|
|
1946
|
+
else {
|
|
1947
|
+
this.consumeStatementSeparators(true);
|
|
1948
|
+
//check for a comment on its own line
|
|
1949
|
+
if (this.check(TokenKind_1.TokenKind.Comment) || this.checkPrevious(TokenKind_1.TokenKind.Comment)) {
|
|
1950
|
+
let token = this.checkPrevious(TokenKind_1.TokenKind.Comment) ? this.previous() : this.advance();
|
|
1951
|
+
lastAAMember = null;
|
|
1952
|
+
members.push(new Statement_1.CommentStatement([token]));
|
|
1953
|
+
continue;
|
|
1954
|
+
}
|
|
1955
|
+
if (this.check(TokenKind_1.TokenKind.RightCurlyBrace)) {
|
|
1956
|
+
break;
|
|
1957
|
+
}
|
|
1958
|
+
let k = key();
|
|
1959
|
+
let expr = this.expression();
|
|
1960
|
+
lastAAMember = new Expression_1.AAMemberExpression(k.keyToken, k.colonToken, expr, getBscTypeFromExpression(expr, this.currentFunctionExpression));
|
|
1961
|
+
members.push(lastAAMember);
|
|
1962
|
+
}
|
|
1963
|
+
}
|
|
1964
|
+
this.consume(DiagnosticMessages_1.DiagnosticMessages.unmatchedLeftCurlyAfterAALiteral(), TokenKind_1.TokenKind.RightCurlyBrace);
|
|
1965
|
+
}
|
|
1966
|
+
let closingBrace = this.previous();
|
|
1967
|
+
const aaExpr = new Expression_1.AALiteralExpression(members, openingBrace, closingBrace, this.currentFunctionExpression);
|
|
1968
|
+
this.addPropertyHints(aaExpr);
|
|
1969
|
+
return aaExpr;
|
|
1970
|
+
}
|
|
1964
1971
|
/**
|
|
1965
1972
|
* Pop token if we encounter specified token
|
|
1966
1973
|
*/
|
|
@@ -1984,6 +1991,21 @@ class Parser {
|
|
|
1984
1991
|
}
|
|
1985
1992
|
return false;
|
|
1986
1993
|
}
|
|
1994
|
+
/**
|
|
1995
|
+
* If the next series of tokens matches the given set of tokens, pop them all
|
|
1996
|
+
* @param tokenKinds
|
|
1997
|
+
*/
|
|
1998
|
+
matchSequence(...tokenKinds) {
|
|
1999
|
+
var _a;
|
|
2000
|
+
const endIndex = this.current + tokenKinds.length;
|
|
2001
|
+
for (let i = 0; i < tokenKinds.length; i++) {
|
|
2002
|
+
if (tokenKinds[i] !== ((_a = this.tokens[this.current + i]) === null || _a === void 0 ? void 0 : _a.kind)) {
|
|
2003
|
+
return false;
|
|
2004
|
+
}
|
|
2005
|
+
}
|
|
2006
|
+
this.current = endIndex;
|
|
2007
|
+
return true;
|
|
2008
|
+
}
|
|
1987
2009
|
/**
|
|
1988
2010
|
* Get next token matching a specified list, or fail with an error
|
|
1989
2011
|
*/
|
|
@@ -2086,6 +2108,21 @@ class Parser {
|
|
|
2086
2108
|
previous() {
|
|
2087
2109
|
return this.tokens[this.current - 1];
|
|
2088
2110
|
}
|
|
2111
|
+
/**
|
|
2112
|
+
* Get the token that is {offset} indexes away from {this.current}
|
|
2113
|
+
* @param offset the number of index steps away from current index to fetch
|
|
2114
|
+
* @param tokenKinds the desired token must match one of these
|
|
2115
|
+
* @example
|
|
2116
|
+
* getToken(-1); //returns the previous token.
|
|
2117
|
+
* getToken(0); //returns current token.
|
|
2118
|
+
* getToken(1); //returns next token
|
|
2119
|
+
*/
|
|
2120
|
+
getMatchingTokenAtOffset(offset, ...tokenKinds) {
|
|
2121
|
+
const token = this.tokens[this.current + offset];
|
|
2122
|
+
if (tokenKinds.includes(token.kind)) {
|
|
2123
|
+
return token;
|
|
2124
|
+
}
|
|
2125
|
+
}
|
|
2089
2126
|
synchronize() {
|
|
2090
2127
|
this.advance(); // skip the erroneous token
|
|
2091
2128
|
while (!this.isAtEnd()) {
|