erosolar-cli 1.5.13 → 1.5.15
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/dist/capabilities/frontendTestingCapability.d.ts +13 -0
- package/dist/capabilities/frontendTestingCapability.d.ts.map +1 -0
- package/dist/capabilities/frontendTestingCapability.js +28 -0
- package/dist/capabilities/frontendTestingCapability.js.map +1 -0
- package/dist/capabilities/index.d.ts +1 -0
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +1 -0
- package/dist/capabilities/index.js.map +1 -1
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts +3 -0
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts.map +1 -0
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js +14 -0
- package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js.map +1 -0
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
- package/dist/plugins/tools/nodeDefaults.js +2 -0
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +1 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +34 -1
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/tools/frontendTestingTools.d.ts +35 -0
- package/dist/tools/frontendTestingTools.d.ts.map +1 -0
- package/dist/tools/frontendTestingTools.js +1254 -0
- package/dist/tools/frontendTestingTools.js.map +1 -0
- package/dist/ui/persistentPrompt.d.ts +172 -0
- package/dist/ui/persistentPrompt.d.ts.map +1 -1
- package/dist/ui/persistentPrompt.js +397 -0
- package/dist/ui/persistentPrompt.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontendTestingTools.js","sourceRoot":"","sources":["../../src/tools/frontendTestingTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAc7B,MAAM,cAAc,GAAiC;IACnD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,SAAS;QACrB,cAAc,EAAE,wBAAwB;QACxC,UAAU,EAAE,mBAAmB;QAC/B,UAAU,EAAE,iBAAiB;QAC7B,YAAY,EAAE,YAAY;KAC3B;IACD,UAAU,EAAE;QACV,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,YAAY;QACxB,cAAc,EAAE,2DAA2D;QAC3E,UAAU,EAAE,sBAAsB;QAClC,UAAU,EAAE,qBAAqB;QACjC,YAAY,EAAE,gBAAgB;KAC/B;IACD,SAAS,EAAE;QACT,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,WAAW;QACvB,cAAc,EAAE,0BAA0B;QAC1C,UAAU,EAAE,qBAAqB;QACjC,UAAU,EAAE,4CAA4C;QACxD,YAAY,EAAE,EAAE;KACjB;CACF,CAAC;AAUF,MAAM,aAAa,GAAgC;IACjD,KAAK,EAAE;QACL,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;KAC5C;IACD,MAAM,EAAE;QACN,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KACrC;IACD,OAAO,EAAE;QACP,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC;KAC1D;IACD,GAAG,EAAE;QACH,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;KAC9B;IACD,MAAM,EAAE;QACN,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,CAAC,MAAM,CAAC;KACzB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,YAAY;QACvB,cAAc,EAAE,CAAC,QAAQ,CAAC;KAC3B;CACF,CAAC;AAEF,KAAK,UAAU,UAAU,CACvB,OAAe,EACf,GAAW,EACX,OAAO,GAAG,MAAM;IAEhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YACzC,GAAG;YACH,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,+CAA+C;YAC/C,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC;oBACN,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;oBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,0CAA0C;oBAClE,QAAQ,EAAE,IAAI,IAAI,CAAC;oBACnB,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAI,OAAe,EAAE,MAAc;IACvD,IAAI,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO;YACL,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,mBAAmB,MAAM,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,uBAAuB,OAAO,MAAM;SACzH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC;IACzE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,MAAM,CAAC,QAAQ,wCAAwC,EAAE,CAAC;QAC/G,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,GAAG,GAAG,EAAE,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB,EAAE,OAAe;IACzD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oEAAoE,EAAE,CAAC;IACvG,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc,EAAE,SAAiB,EAAE,KAAa;IACtE,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,KAAK,gBAAgB,MAAM,CAAC,MAAM,GAAG,SAAS,6BAA6B,CAAC;AAC1H,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE9D,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CACjC,OAAO,EACP,cAAc,CACf,CAAC;QAEF,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAE7D,IAAI,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,QAAQ,CAAC;YAClC,IAAI,IAAI,CAAC,eAAe,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC5C,IAAI,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC;gBAAE,OAAO,QAAQ,CAAC;YACpC,IAAI,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC;YAChC,IAAI,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE9D,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CACjC,OAAO,EACP,cAAc,CACf,CAAC;QAEF,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YAE7D,IAAI,IAAI,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;YACtC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;gBAAE,OAAO,YAAY,CAAC;YACxE,IAAI,IAAI,CAAC,WAAW,CAAC;gBAAE,OAAO,WAAW,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QACzD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC,EACzD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;QAC5D,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC,EAC5D,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,OAAO,GAAG,KAAK;IAClD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,EAAE,YAAY,EAAE,+BAA+B,EAAE;SAC3D,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,SAAS,GAAG,SAAS,CAAC;QAC1B,IAAI,iBAAiB,GAAG,YAAY,CAAC;QAErC,mCAAmC;QACnC,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/E,SAAS,GAAG,aAAa,CAAC;YAC1B,iBAAiB,GAAG,6EAA6E,CAAC;QACpG,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACjD,SAAS,GAAG,oBAAoB,CAAC;YACjC,iBAAiB,GAAG,6CAA6C,CAAC;QACpE,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtH,SAAS,GAAG,SAAS,CAAC;YACtB,iBAAiB,GAAG,2BAA2B,OAAO,wCAAwC,CAAC;QACjG,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACjD,SAAS,GAAG,kBAAkB,CAAC;YAC/B,iBAAiB,GAAG,kDAAkD,CAAC;QACzE,CAAC;aAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChH,SAAS,GAAG,WAAW,CAAC;YACxB,iBAAiB,GAAG,sEAAsE,CAAC;QAC7F,CAAC;QAED,OAAO;YACL,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,iBAAiB;YACxB,SAAS;SACV,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAOhC,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,EAAsC;KAC9C,CAAC;IAEF,SAAS,IAAI,CAAC,UAAkB;QAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO;QAEvC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAEnD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjB,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1B,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAEnD,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;gBACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEhE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;gBACxB,CAAC;qBAAM,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7D,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;gBACzB,CAAC;qBAAM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrF,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,0BAA0B;IAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,GAAG,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,aAAqB,OAAO,CAAC,GAAG,EAAE;IAC3E,OAAO;QACL;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE;;;;;;;;;;;;;uCAaoB;YACjC,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC;wBACpD,WAAW,EAAE,6CAA6C;qBAC3D;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,sCAAsC;qBACpD;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;wBAC7D,WAAW,EAAE,4BAA4B;qBAC1C;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,0CAA0C;qBACxD;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yCAAyC;qBACvD;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2CAA2C;qBACzD;iBACF;aACF;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,IAAI,WAAW,GAAI,IAAI,CAAC,WAAW,CAAY,IAAI,MAAM,CAAC;gBAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;gBAChD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAuB,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;gBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAuB,CAAC;gBACtD,MAAM,OAAO,GAAI,IAAI,CAAC,SAAS,CAAY,IAAI,MAAM,CAAC;gBAEtD,wBAAwB;gBACxB,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;oBAC3B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,OAAO,wCAAwC,UAAU;;;;;;0BAM3C,CAAC;oBACjB,CAAC;oBACD,WAAW,GAAG,QAAQ,CAAC;gBACzB,CAAC;gBAED,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,0BAA0B,WAAW,+CAA+C,CAAC;gBAC9F,CAAC;gBAED,gBAAgB;gBAChB,IAAI,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC;gBAEnC,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,OAAO,IAAI,YAAY,IAAI,GAAG,CAAC;oBACjC,CAAC;yBAAM,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;wBACxC,OAAO,IAAI,KAAK,IAAI,GAAG,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,OAAO,IAAI,cAAc,OAAO,EAAE,CAAC;oBACrC,CAAC;yBAAM,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;wBACxC,OAAO,IAAI,cAAc,OAAO,EAAE,CAAC;oBACrC,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;oBACtC,OAAO,IAAI,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC1C,CAAC;qBAAM,IAAI,MAAM,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;oBAClD,OAAO,IAAI,WAAW,CAAC;gBACzB,CAAC;gBAED,IAAI,OAAO,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBACzC,OAAO,IAAI,qBAAqB,OAAO,EAAE,CAAC;gBAC5C,CAAC;gBAED,MAAM,OAAO,GAAa,CAAC,cAAc,SAAS,CAAC,IAAI,cAAc,CAAC,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,CAAC;gBAEtC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gBAE9D,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,kCAAkC,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;gBACvE,CAAC;gBAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/E,CAAC;gBAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC9E,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;SACF;QACD;YACE,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE;;;;;;;;;;uDAUoC;YACjD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yDAAyD;qBACvE;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;wBACrE,WAAW,EAAE,2CAA2C;qBACzD;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,mDAAmD;qBACjE;oBACD,cAAc,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2DAA2D;qBACzE;iBACF;aACF;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,IAAI,WAAW,GAAI,IAAI,CAAC,WAAW,CAAY,IAAI,MAAM,CAAC;gBAC1D,MAAM,aAAa,GAAI,IAAI,CAAC,eAAe,CAAY,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;gBAClF,MAAM,cAAc,GAAI,IAAI,CAAC,gBAAgB,CAAY,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,QAAQ;gBAEjF,wBAAwB;gBACxB,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;oBAC3B,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,OAAO,CAAE,CAAC;gBACrE,MAAM,QAAQ,GAAI,IAAI,CAAC,UAAU,CAAY,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEzF,MAAM,OAAO,GAAa,CAAC,gCAAgC,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,IAAI,CAAC,CAAC;gBAE/C,kCAAkC;gBAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,OAAO,gCAAgC,QAAQ;;;;;;;sBAOnC,CAAC;gBACf,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAE3C,uCAAuC;gBACvC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;oBACxD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC;oBAC9C,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,YAAY,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;gBAED,4BAA4B;gBAC5B,MAAM,aAAa,GAAa,EAAE,CAAC;gBACnC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC9B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;gBAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,+BAA+B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC1E,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;gBAChD,CAAC;gBAED,iBAAiB;gBACjB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAEzC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,QAAQ,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAE3D,0BAA0B;gBAC1B,IAAI,QAAQ,CAAC,SAAS,GAAG,aAAa,EAAE,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,kCAAkC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAChF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC/C,CAAC;gBAED,sBAAsB;gBACtB,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC;gBACzE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,+BAA+B,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBAC7E,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxD,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,uBAAuB;gBACvB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACpC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC3C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;gBAEH,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;SACF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE;;;;;;;;;;kEAU+C;YAC5D,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yCAAyC;qBACvD;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,uDAAuD;qBACrE;oBACD,eAAe,EAAE;wBACf,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2CAA2C;qBACzD;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,qBAAqB;qBACnC;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,kDAAkD;qBAChE;iBACF;gBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;aAClB;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAW,CAAC;gBACrC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC;gBAClD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAuB,CAAC;gBACtE,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAuB,CAAC;gBAClE,MAAM,OAAO,GAAI,IAAI,CAAC,SAAS,CAAY,IAAI,KAAK,CAAC;gBAErD,eAAe;gBACf,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;oBACzB,OAAO,kBAAkB,aAAa,CAAC,KAAK,EAAE,CAAC;gBACjD,CAAC;gBACD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAW,CAAC;gBAEtC,MAAM,OAAO,GAAa,CAAC,8BAA8B,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;gBAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAE5C,OAAO,CAAC,IAAI,CAAC,qBAAqB,YAAY,IAAI,CAAC,CAAC;gBAEpD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,4BAA4B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC3D,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;wBACvB,OAAO,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;oBACpD,CAAC;oBACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAED,yCAAyC;gBACzC,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,IAAI,aAAa,GAAG,EAAE,CAAC;oBACvB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;wBAAE,aAAa,GAAG,oCAAoC,CAAC;yBAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;wBAAE,aAAa,GAAG,+CAA+C,CAAC;yBAC7F,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;wBAAE,aAAa,GAAG,qCAAqC,CAAC;yBACnF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;wBAAE,aAAa,GAAG,wCAAwC,CAAC;yBACtF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;wBAAE,aAAa,GAAG,mDAAmD,CAAC;oBACtG,OAAO,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC,CAAC;gBACpE,CAAC;gBAED,YAAY;gBACZ,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACrC,CAAC;gBAED,iBAAiB;gBACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAE3B,yBAAyB;gBACzB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAClD,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,CAAC;gBAED,6BAA6B;gBAC7B,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;wBACnC,OAAO,CAAC,IAAI,CAAC,8BAA8B,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;oBACjF,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,kCAAkC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;oBACrF,CAAC;gBACH,CAAC;gBAED,cAAc;gBACd,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC1D,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE1C,IAAI,aAAa,EAAE,CAAC;oBAClB,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;wBACxC,OAAO,CAAC,IAAI,CAAC,qBAAqB,WAAW,GAAG,CAAC,CAAC;oBACpD,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,gCAAgC,aAAa,YAAY,WAAW,GAAG,CAAC,CAAC;oBACxF,CAAC;gBACH,CAAC;qBAAM,IAAI,WAAW,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,mBAAmB,WAAW,GAAG,CAAC,CAAC;gBAClD,CAAC;gBAED,kCAAkC;gBAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC5F,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;gBAC7C,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;oBAEzC,gBAAgB;oBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;oBAC9D,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAEpF,iBAAiB;oBACjB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;oBACjE,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAEvF,OAAO,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAC;oBAC3D,OAAO,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;oBAErD,yBAAyB;oBACzB,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAExE,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;wBACtC,IAAI,CAAC,SAAS;4BAAE,SAAS;wBAEzB,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAE/F,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACrD,IAAI,aAAa,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;4BACjC,OAAO,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;wBACnD,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC;wBACpG,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,UAAU;gBACV,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC9B,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,YAAY,GAAG,IAAI,EAAE,CAAC;oBAC3E,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC/C,CAAC;qBAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBAC3D,OAAO,CAAC,IAAI,CAAC,mCAAmC,YAAY,KAAK,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAC/C,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;SACF;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE;;;;;;;;;;wDAUqC;YAClD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uCAAuC;qBACrD;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,gDAAgD;qBAC9D;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC;wBAC/D,WAAW,EAAE,iDAAiD;qBAC/D;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,0CAA0C;qBACxD;iBACF;aACF;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAuB,CAAC;gBACjD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAuB,CAAC;gBAC3D,MAAM,KAAK,GAAI,IAAI,CAAC,OAAO,CAAY,IAAI,SAAS,CAAC;gBACrD,MAAM,OAAO,GAAI,IAAI,CAAC,SAAS,CAAY,IAAI,KAAK,CAAC;gBAErD,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC5B,OAAO;;;;gCAIe,CAAC;gBACzB,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,YAAgC,CAAC;gBACrC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;oBAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;wBACzB,OAAO,kBAAkB,aAAa,CAAC,KAAK,EAAE,CAAC;oBACjD,CAAC;oBACD,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC;gBAC1C,CAAC;gBAED,kEAAkE;gBAClE,IAAI,iBAAqC,CAAC;gBAC1C,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;oBACjE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;wBAC1B,OAAO,wBAAwB,cAAc,CAAC,KAAK,EAAE,CAAC;oBACxD,CAAC;oBACD,iBAAiB,GAAG,cAAc,CAAC,QAAQ,CAAC;gBAC9C,CAAC;gBAED,gCAAgC;gBAChC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBAC9D,IAAI,MAAM,GAAG,KAAK,CAAC;gBAEnB,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;oBAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,CACjC,OAAO,EACP,cAAc,CACf,CAAC;oBACF,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;wBAC7D,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAC/F,CAAC;gBACH,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,0BAA0B,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;gBAErC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;oBACvB,OAAO;;;;;;;;;;;;;yCAawB,CAAC;gBAClC,CAAC;gBAED,MAAM,MAAM,GAAG,YAAY,IAAI,iBAAiB,CAAC;gBACjD,MAAM,OAAO,GAAa,CAAC,2BAA2B,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;gBAElC,kBAAkB;gBAClB,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,OAAO,GAAG,UAAU,MAAM,gBAAgB,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,uBAAuB,CAAC;oBAEzJ,IAAI,YAAY,EAAE,CAAC;wBACjB,OAAO,GAAG,UAAU,YAAY,0CAA0C,CAAC;oBAC7E,CAAC;oBAED,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;oBAElE,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACvE,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBACzD,CAAC;yBAAM,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAChD,OAAO,CAAC,IAAI,CAAC,2BAA2B,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC9F,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;wBAChD,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAClE,CAAC;oBAED,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;wBACpE,OAAO,CAAC,IAAI,CAAC,gBAAgB,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;oBACtF,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,kCAAkC;oBAClC,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;oBAEtF,IAAI,iBAAiB,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;wBAC1D,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;wBAEzD,eAAe;wBACf,MAAM,MAAM,GAAa,EAAE,CAAC;wBAE5B,+BAA+B;wBAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;wBAChE,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC;4BAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,MAAM,iCAAiC,CAAC,CAAC;wBAC1E,CAAC;wBAED,kCAAkC;wBAClC,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;wBACnE,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;4BAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,MAAM,4CAA4C,CAAC,CAAC;wBACvF,CAAC;wBAED,2BAA2B;wBAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC5B,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;wBAC5D,CAAC;wBAED,qBAAqB;wBACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC/B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;wBAC7C,CAAC;wBAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACtB,OAAO,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,yBAAyB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACnF,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;wBAC3D,CAAC;oBACH,CAAC;yBAAM,IAAI,YAAY,EAAE,CAAC;wBACxB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;wBAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;4BAC5B,iCAAiC;4BACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;4BAC3B,MAAM,MAAM,GAAa,EAAE,CAAC;4BAE5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gCAC5B,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;4BAC1C,CAAC;4BAED,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;4BAChE,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC;gCAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,MAAM,iCAAiC,CAAC,CAAC;4BAC1E,CAAC;4BAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACtB,OAAO,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,yBAAyB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BACnF,CAAC;iCAAM,CAAC;gCACN,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;4BAC3D,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;SACF;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE;;;;;;;;;2CASwB;YACrC,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yBAAyB;qBACvC;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,WAAW,EAAE,2EAA2E;qBACzF;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;wBAC7B,WAAW,EAAE,+BAA+B;qBAC7C;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,gCAAgC;qBAC9C;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;wBAC3B,WAAW,EAAE,oCAAoC;qBAClD;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,2CAA2C;qBACzD;iBACF;gBACD,QAAQ,EAAE,CAAC,KAAK,CAAC;aAClB;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAW,CAAC;gBACrC,MAAM,UAAU,GAAI,IAAI,CAAC,YAAY,CAAc,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;gBACjH,MAAM,MAAM,GAAI,IAAI,CAAC,QAAQ,CAAY,IAAI,MAAM,CAAC;gBACpD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAuB,CAAC;gBAC/D,MAAM,MAAM,GAAI,IAAI,CAAC,QAAQ,CAAY,IAAI,QAAQ,CAAC;gBACtD,MAAM,OAAO,GAAI,IAAI,CAAC,SAAS,CAAY,IAAI,MAAM,CAAC;gBAEtD,eAAe;gBACf,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;oBACzB,OAAO,kBAAkB,aAAa,CAAC,KAAK,EAAE,CAAC;gBACjD,CAAC;gBACD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAW,CAAC;gBAEtC,oEAAoE;gBACpE,IAAI,UAA8B,CAAC;gBACnC,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,cAAc,GAAG,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;oBACnE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;wBAC1B,OAAO,0BAA0B,cAAc,CAAC,KAAK,EAAE,CAAC;oBAC1D,CAAC;oBACD,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC;gBACvC,CAAC;gBAED,uBAAuB;gBACvB,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,kBAAkB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBAE3E,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO;;;;;2DAK0C,CAAC;gBACpD,CAAC;gBAED,MAAM,OAAO,GAAa,CAAC,uBAAuB,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvD,gBAAgB;gBAChB,IAAI,OAAO,GAAG,eAAe,GAAG,cAAc,MAAM,UAAU,CAAC;gBAC/D,OAAO,IAAI,sBAAsB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,OAAO,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,OAAO,IAAI,2CAA2C,CAAC;gBAEvD,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,IAAI,mBAAmB,UAAU,GAAG,CAAC;gBAC9C,CAAC;gBAED,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gBAEnE,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC,+BAA+B,cAAc,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;oBAC9H,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAED,oBAAoB;gBACpB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,CACvD,WAAW,CAAC,MAAM,EAClB,mBAAmB,CACpB,CAAC;oBAEF,IAAI,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC1B,OAAO,CAAC,IAAI,CAAC,0CAA0C,UAAU,EAAE,CAAC,CAAC;wBACrE,OAAO,CAAC,IAAI,CAAC,gBAAgB,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;wBACnF,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;oBAED,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;oBAErC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAE7B,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAmD,EAAE,CAAC;wBACnG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;wBACjD,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC7D,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,CAAC;oBACtD,CAAC;oBAED,gCAAgC;oBAChC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC9B,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;wBAElC,MAAM,UAAU,GAAG;4BACjB,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,wBAAwB,EAAE;4BACjE,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,0BAA0B,EAAE;4BACrE,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAE;4BAC3D,EAAE,EAAE,EAAE,yBAAyB,EAAE,KAAK,EAAE,yBAAyB,EAAE;4BACnE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;yBAC5C,CAAC;wBAEF,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;4BAChC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACjC,IAAI,KAAK,EAAE,CAAC;gCACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gCACnD,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;gCAC3D,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,IAAI,KAAK,EAAE,CAAC,CAAC;4BAC3E,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACnC,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;SACF;QACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE;;;;;;;;;4DASyC;YACtD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,0CAA0C;qBACxD;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,kCAAkC;qBAChD;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,iCAAiC;qBAC/C;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,2CAA2C;qBACzD;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,mDAAmD;qBACjE;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yDAAyD;qBACvE;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oDAAoD;qBAClE;iBACF;aACF;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;gBAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;gBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;gBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;gBAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;gBACxD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAuB,CAAC;gBACzD,MAAM,OAAO,GAAI,IAAI,CAAC,SAAS,CAAY,IAAI,MAAM,CAAC;gBAEtD,+BAA+B;gBAC/B,IAAI,OAA2B,CAAC;gBAChC,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;oBAC9C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;wBACzB,OAAO,sBAAsB,aAAa,CAAC,KAAK,EAAE,CAAC;oBACrD,CAAC;oBACD,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC;gBACrC,CAAC;gBAED,MAAM,OAAO,GAAa,CAAC,gCAAgC,CAAC,CAAC;gBAC7D,MAAM,OAAO,GAAqD,EAAE,CAAC;gBAErE,6BAA6B;gBAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;oBACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE7B,kBAAkB;oBAClB,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;oBAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAEzC,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;wBAC/B,OAAO,CAAC,IAAI,CAAC,sBAAsB,SAAS,OAAO,CAAC,CAAC;wBACrD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;wBAEjE,gBAAgB;wBAChB,MAAM,iBAAiB,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;wBACtD,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC,OAAO,CAAE,CAAC;wBAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;wBAE9D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;4BACzC,OAAO,CAAC,IAAI,CAAC,gBAAgB,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAClE,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,mBAAmB,cAAc,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;wBAClH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;gBAED,qBAAqB;gBACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;oBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE7B,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,gDAAgD,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;oBAC3G,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAExC,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;wBAC9B,OAAO,CAAC,IAAI,CAAC,wBAAwB,QAAQ,OAAO,CAAC,CAAC;wBACtD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACvE,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,wBAAwB,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;wBAC/F,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACvE,CAAC;gBACH,CAAC;gBAED,oBAAoB;gBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;oBAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE7B,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBAEpD,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAE,CAAC;wBAChD,IAAI,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC;wBAEnC,IAAI,OAAO,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;4BAC1C,OAAO,IAAI,qBAAqB,OAAO,EAAE,CAAC;wBAC5C,CAAC;wBAED,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBACjE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBAEvC,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;4BAC7B,OAAO,CAAC,IAAI,CAAC,uBAAuB,OAAO,OAAO,CAAC,CAAC;4BACpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;wBACrE,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,uBAAuB,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;4BACjG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;wBACrE,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;wBACvD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;gBAED,8BAA8B;gBAC9B,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;oBACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE7B,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,OAAO,qDAAqD,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC/H,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAExC,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBACtD,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;wBACrE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBACnE,CAAC;yBAAM,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;wBACrC,OAAO,CAAC,IAAI,CAAC,kCAAkC,QAAQ,OAAO,CAAC,CAAC;wBAChE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC1E,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,kCAAkC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAAC;wBAClH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;oBACvE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnE,CAAC;gBAED,gCAAgC;gBAChC,IAAI,gBAAgB,IAAI,OAAO,EAAE,CAAC;oBAChC,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;oBACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAE7B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,eAAe,OAAO,wIAAwI,EAC9J,UAAU,EACV,MAAM,CACP,CAAC;oBACF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAEtC,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;wBACzD,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;wBACxE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBACjE,CAAC;yBAAM,CAAC;wBACN,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CACpC,QAAQ,CAAC,MAAM,EACf,mBAAmB,CACpB,CAAC;wBAEF,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;4BACjF,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;4BAErE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,uBAAuB,SAAS,SAAS,MAAM,KAAK,CAAC,CAAC;4BAC3E,OAAO,CAAC,IAAI,CAAC;gCACX,IAAI,EAAE,aAAa;gCACnB,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gCACpE,IAAI,EAAE,MAAM;6BACb,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;4BACtD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;wBACtE,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,UAAU;gBACV,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;gBACjE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;gBACjE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;gBACjE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;gBAClE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAE9D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBACpB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC9G,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnD,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC,iBAAiB,MAAM,YAAY,MAAM,YAAY,MAAM,cAAc,OAAO,UAAU,CAAC,CAAC;gBACzG,OAAO,CAAC,IAAI,CAAC,kBAAkB,SAAS,IAAI,CAAC,CAAC;gBAE9C,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACtC,CAAC;qBAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACtC,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -110,4 +110,176 @@ export declare class SimpleInputBox {
|
|
|
110
110
|
*/
|
|
111
111
|
close(): void;
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Queued command entry
|
|
115
|
+
*/
|
|
116
|
+
export interface QueuedCommand {
|
|
117
|
+
id: string;
|
|
118
|
+
text: string;
|
|
119
|
+
type: 'request' | 'continuous' | 'slash';
|
|
120
|
+
timestamp: number;
|
|
121
|
+
preview: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Pinned chat box state
|
|
125
|
+
*/
|
|
126
|
+
export interface PinnedChatBoxState {
|
|
127
|
+
isProcessing: boolean;
|
|
128
|
+
queuedCommands: QueuedCommand[];
|
|
129
|
+
currentInput: string;
|
|
130
|
+
contextUsage: number;
|
|
131
|
+
statusMessage: string | null;
|
|
132
|
+
isVisible: boolean;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* PinnedChatBox - Persistent input box pinned to bottom of terminal
|
|
136
|
+
*
|
|
137
|
+
* Features:
|
|
138
|
+
* - Always visible at bottom of terminal
|
|
139
|
+
* - Accepts input while AI is processing (queues commands)
|
|
140
|
+
* - Shows queue status and context usage
|
|
141
|
+
* - Non-blocking - doesn't interfere with output scroll
|
|
142
|
+
*/
|
|
143
|
+
export declare class PinnedChatBox {
|
|
144
|
+
private writeStream;
|
|
145
|
+
private state;
|
|
146
|
+
private promptText;
|
|
147
|
+
private reservedLines;
|
|
148
|
+
private _lastRenderedHeight;
|
|
149
|
+
private inputBuffer;
|
|
150
|
+
private cursorPosition;
|
|
151
|
+
private commandIdCounter;
|
|
152
|
+
private onCommandQueued?;
|
|
153
|
+
private onInputSubmit?;
|
|
154
|
+
private renderScheduled;
|
|
155
|
+
private isEnabled;
|
|
156
|
+
constructor(writeStream: NodeJS.WriteStream, promptText?: string, options?: {
|
|
157
|
+
onCommandQueued?: (cmd: QueuedCommand) => void;
|
|
158
|
+
onInputSubmit?: (input: string) => void;
|
|
159
|
+
});
|
|
160
|
+
/**
|
|
161
|
+
* Enable or disable the pinned chat box
|
|
162
|
+
*/
|
|
163
|
+
setEnabled(enabled: boolean): void;
|
|
164
|
+
/**
|
|
165
|
+
* Set processing state
|
|
166
|
+
*/
|
|
167
|
+
setProcessing(isProcessing: boolean): void;
|
|
168
|
+
/**
|
|
169
|
+
* Update context usage percentage
|
|
170
|
+
*/
|
|
171
|
+
setContextUsage(percentage: number): void;
|
|
172
|
+
/**
|
|
173
|
+
* Set status message
|
|
174
|
+
*/
|
|
175
|
+
setStatusMessage(message: string | null): void;
|
|
176
|
+
/**
|
|
177
|
+
* Set prompt text
|
|
178
|
+
*/
|
|
179
|
+
setPromptText(text: string): void;
|
|
180
|
+
/**
|
|
181
|
+
* Queue a command for execution
|
|
182
|
+
*/
|
|
183
|
+
queueCommand(text: string, type?: 'request' | 'continuous' | 'slash'): QueuedCommand;
|
|
184
|
+
/**
|
|
185
|
+
* Remove a command from the queue
|
|
186
|
+
*/
|
|
187
|
+
dequeueCommand(): QueuedCommand | undefined;
|
|
188
|
+
/**
|
|
189
|
+
* Clear the entire queue
|
|
190
|
+
*/
|
|
191
|
+
clearQueue(): void;
|
|
192
|
+
/**
|
|
193
|
+
* Get current queue
|
|
194
|
+
*/
|
|
195
|
+
getQueue(): QueuedCommand[];
|
|
196
|
+
/**
|
|
197
|
+
* Get queue length
|
|
198
|
+
*/
|
|
199
|
+
getQueueLength(): number;
|
|
200
|
+
/**
|
|
201
|
+
* Handle character input
|
|
202
|
+
*/
|
|
203
|
+
handleInput(char: string): void;
|
|
204
|
+
/**
|
|
205
|
+
* Handle backspace
|
|
206
|
+
*/
|
|
207
|
+
handleBackspace(): void;
|
|
208
|
+
/**
|
|
209
|
+
* Handle delete key
|
|
210
|
+
*/
|
|
211
|
+
handleDelete(): void;
|
|
212
|
+
/**
|
|
213
|
+
* Handle cursor left
|
|
214
|
+
*/
|
|
215
|
+
handleCursorLeft(): void;
|
|
216
|
+
/**
|
|
217
|
+
* Handle cursor right
|
|
218
|
+
*/
|
|
219
|
+
handleCursorRight(): void;
|
|
220
|
+
/**
|
|
221
|
+
* Handle home key
|
|
222
|
+
*/
|
|
223
|
+
handleHome(): void;
|
|
224
|
+
/**
|
|
225
|
+
* Handle end key
|
|
226
|
+
*/
|
|
227
|
+
handleEnd(): void;
|
|
228
|
+
/**
|
|
229
|
+
* Handle enter/submit
|
|
230
|
+
*/
|
|
231
|
+
handleSubmit(): string | null;
|
|
232
|
+
/**
|
|
233
|
+
* Clear input buffer
|
|
234
|
+
*/
|
|
235
|
+
clearInput(): void;
|
|
236
|
+
/**
|
|
237
|
+
* Set input text (for history navigation etc)
|
|
238
|
+
*/
|
|
239
|
+
setInput(text: string): void;
|
|
240
|
+
/**
|
|
241
|
+
* Get current input
|
|
242
|
+
*/
|
|
243
|
+
getInput(): string;
|
|
244
|
+
/**
|
|
245
|
+
* Schedule a render on next tick (debounced)
|
|
246
|
+
*/
|
|
247
|
+
private scheduleRender;
|
|
248
|
+
/**
|
|
249
|
+
* Render the pinned chat box
|
|
250
|
+
*/
|
|
251
|
+
render(): void;
|
|
252
|
+
/**
|
|
253
|
+
* Clear the pinned area
|
|
254
|
+
*/
|
|
255
|
+
clear(): void;
|
|
256
|
+
/**
|
|
257
|
+
* Show the chat box
|
|
258
|
+
*/
|
|
259
|
+
show(): void;
|
|
260
|
+
/**
|
|
261
|
+
* Hide the chat box
|
|
262
|
+
*/
|
|
263
|
+
hide(): void;
|
|
264
|
+
/**
|
|
265
|
+
* Get current state
|
|
266
|
+
*/
|
|
267
|
+
getState(): PinnedChatBoxState;
|
|
268
|
+
/**
|
|
269
|
+
* Handle terminal resize
|
|
270
|
+
*/
|
|
271
|
+
handleResize(): void;
|
|
272
|
+
/**
|
|
273
|
+
* Get number of reserved lines at bottom
|
|
274
|
+
*/
|
|
275
|
+
getReservedLines(): number;
|
|
276
|
+
/**
|
|
277
|
+
* Get last rendered height (for layout calculations)
|
|
278
|
+
*/
|
|
279
|
+
getLastRenderedHeight(): number;
|
|
280
|
+
/**
|
|
281
|
+
* Dispose and cleanup
|
|
282
|
+
*/
|
|
283
|
+
dispose(): void;
|
|
284
|
+
}
|
|
113
285
|
//# sourceMappingURL=persistentPrompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistentPrompt.d.ts","sourceRoot":"","sources":["../../src/ui/persistentPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAG1C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,GAAE,MAAa;IAWtE;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKnD;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAIrD;;OAEG;IACH,UAAU,IAAI,IAAI;IASlB;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAc;gBAEpB,UAAU,GAAE,MAAa;IAIrC;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,SAAS;IAU9E;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO7B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI;IAYtC;;OAEG;IACH,YAAY,IAAI,QAAQ,CAAC,SAAS,GAAG,IAAI;IAIzC;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd"}
|
|
1
|
+
{"version":3,"file":"persistentPrompt.d.ts","sourceRoot":"","sources":["../../src/ui/persistentPrompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -186,4 +186,401 @@ export class SimpleInputBox {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* ANSI escape codes for terminal control
|
|
191
|
+
*/
|
|
192
|
+
const ANSI = {
|
|
193
|
+
SAVE_CURSOR: '\u001b7',
|
|
194
|
+
RESTORE_CURSOR: '\u001b8',
|
|
195
|
+
CURSOR_TO_BOTTOM: (rows) => `\u001b[${rows};1H`,
|
|
196
|
+
CLEAR_LINE: '\u001b[2K',
|
|
197
|
+
CLEAR_TO_END: '\u001b[0J',
|
|
198
|
+
MOVE_UP: (n) => `\u001b[${n}A`,
|
|
199
|
+
MOVE_DOWN: (n) => `\u001b[${n}B`,
|
|
200
|
+
MOVE_TO_COL: (col) => `\u001b[${col}G`,
|
|
201
|
+
HIDE_CURSOR: '\u001b[?25l',
|
|
202
|
+
SHOW_CURSOR: '\u001b[?25h',
|
|
203
|
+
// Scroll region
|
|
204
|
+
SET_SCROLL_REGION: (top, bottom) => `\u001b[${top};${bottom}r`,
|
|
205
|
+
RESET_SCROLL_REGION: '\u001b[r',
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* PinnedChatBox - Persistent input box pinned to bottom of terminal
|
|
209
|
+
*
|
|
210
|
+
* Features:
|
|
211
|
+
* - Always visible at bottom of terminal
|
|
212
|
+
* - Accepts input while AI is processing (queues commands)
|
|
213
|
+
* - Shows queue status and context usage
|
|
214
|
+
* - Non-blocking - doesn't interfere with output scroll
|
|
215
|
+
*/
|
|
216
|
+
export class PinnedChatBox {
|
|
217
|
+
writeStream;
|
|
218
|
+
state;
|
|
219
|
+
promptText;
|
|
220
|
+
reservedLines = 3; // Lines reserved at bottom for chat box
|
|
221
|
+
_lastRenderedHeight = 0;
|
|
222
|
+
inputBuffer = '';
|
|
223
|
+
cursorPosition = 0;
|
|
224
|
+
commandIdCounter = 0;
|
|
225
|
+
onCommandQueued;
|
|
226
|
+
onInputSubmit;
|
|
227
|
+
renderScheduled = false;
|
|
228
|
+
isEnabled = true;
|
|
229
|
+
constructor(writeStream, promptText = '> ', options = {}) {
|
|
230
|
+
this.writeStream = writeStream;
|
|
231
|
+
this.promptText = promptText;
|
|
232
|
+
this.onCommandQueued = options.onCommandQueued;
|
|
233
|
+
this.onInputSubmit = options.onInputSubmit;
|
|
234
|
+
this.state = {
|
|
235
|
+
isProcessing: false,
|
|
236
|
+
queuedCommands: [],
|
|
237
|
+
currentInput: '',
|
|
238
|
+
contextUsage: 0,
|
|
239
|
+
statusMessage: null,
|
|
240
|
+
isVisible: true,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Enable or disable the pinned chat box
|
|
245
|
+
*/
|
|
246
|
+
setEnabled(enabled) {
|
|
247
|
+
this.isEnabled = enabled;
|
|
248
|
+
if (!enabled) {
|
|
249
|
+
this.clear();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Set processing state
|
|
254
|
+
*/
|
|
255
|
+
setProcessing(isProcessing) {
|
|
256
|
+
this.state.isProcessing = isProcessing;
|
|
257
|
+
this.scheduleRender();
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Update context usage percentage
|
|
261
|
+
*/
|
|
262
|
+
setContextUsage(percentage) {
|
|
263
|
+
this.state.contextUsage = Math.max(0, Math.min(100, percentage));
|
|
264
|
+
this.scheduleRender();
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Set status message
|
|
268
|
+
*/
|
|
269
|
+
setStatusMessage(message) {
|
|
270
|
+
this.state.statusMessage = message;
|
|
271
|
+
this.scheduleRender();
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Set prompt text
|
|
275
|
+
*/
|
|
276
|
+
setPromptText(text) {
|
|
277
|
+
this.promptText = text;
|
|
278
|
+
this.scheduleRender();
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Queue a command for execution
|
|
282
|
+
*/
|
|
283
|
+
queueCommand(text, type = 'request') {
|
|
284
|
+
const preview = text.length > 60 ? text.slice(0, 57) + '...' : text;
|
|
285
|
+
const cmd = {
|
|
286
|
+
id: `cmd-${++this.commandIdCounter}`,
|
|
287
|
+
text,
|
|
288
|
+
type,
|
|
289
|
+
timestamp: Date.now(),
|
|
290
|
+
preview,
|
|
291
|
+
};
|
|
292
|
+
this.state.queuedCommands.push(cmd);
|
|
293
|
+
this.scheduleRender();
|
|
294
|
+
if (this.onCommandQueued) {
|
|
295
|
+
this.onCommandQueued(cmd);
|
|
296
|
+
}
|
|
297
|
+
return cmd;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Remove a command from the queue
|
|
301
|
+
*/
|
|
302
|
+
dequeueCommand() {
|
|
303
|
+
const cmd = this.state.queuedCommands.shift();
|
|
304
|
+
this.scheduleRender();
|
|
305
|
+
return cmd;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Clear the entire queue
|
|
309
|
+
*/
|
|
310
|
+
clearQueue() {
|
|
311
|
+
this.state.queuedCommands = [];
|
|
312
|
+
this.scheduleRender();
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Get current queue
|
|
316
|
+
*/
|
|
317
|
+
getQueue() {
|
|
318
|
+
return [...this.state.queuedCommands];
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Get queue length
|
|
322
|
+
*/
|
|
323
|
+
getQueueLength() {
|
|
324
|
+
return this.state.queuedCommands.length;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Handle character input
|
|
328
|
+
*/
|
|
329
|
+
handleInput(char) {
|
|
330
|
+
if (!this.isEnabled)
|
|
331
|
+
return;
|
|
332
|
+
// Insert character at cursor position
|
|
333
|
+
this.inputBuffer =
|
|
334
|
+
this.inputBuffer.slice(0, this.cursorPosition) +
|
|
335
|
+
char +
|
|
336
|
+
this.inputBuffer.slice(this.cursorPosition);
|
|
337
|
+
this.cursorPosition++;
|
|
338
|
+
this.state.currentInput = this.inputBuffer;
|
|
339
|
+
this.scheduleRender();
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Handle backspace
|
|
343
|
+
*/
|
|
344
|
+
handleBackspace() {
|
|
345
|
+
if (!this.isEnabled || this.cursorPosition === 0)
|
|
346
|
+
return;
|
|
347
|
+
this.inputBuffer =
|
|
348
|
+
this.inputBuffer.slice(0, this.cursorPosition - 1) +
|
|
349
|
+
this.inputBuffer.slice(this.cursorPosition);
|
|
350
|
+
this.cursorPosition--;
|
|
351
|
+
this.state.currentInput = this.inputBuffer;
|
|
352
|
+
this.scheduleRender();
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Handle delete key
|
|
356
|
+
*/
|
|
357
|
+
handleDelete() {
|
|
358
|
+
if (!this.isEnabled || this.cursorPosition >= this.inputBuffer.length)
|
|
359
|
+
return;
|
|
360
|
+
this.inputBuffer =
|
|
361
|
+
this.inputBuffer.slice(0, this.cursorPosition) +
|
|
362
|
+
this.inputBuffer.slice(this.cursorPosition + 1);
|
|
363
|
+
this.state.currentInput = this.inputBuffer;
|
|
364
|
+
this.scheduleRender();
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Handle cursor left
|
|
368
|
+
*/
|
|
369
|
+
handleCursorLeft() {
|
|
370
|
+
if (this.cursorPosition > 0) {
|
|
371
|
+
this.cursorPosition--;
|
|
372
|
+
this.scheduleRender();
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Handle cursor right
|
|
377
|
+
*/
|
|
378
|
+
handleCursorRight() {
|
|
379
|
+
if (this.cursorPosition < this.inputBuffer.length) {
|
|
380
|
+
this.cursorPosition++;
|
|
381
|
+
this.scheduleRender();
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Handle home key
|
|
386
|
+
*/
|
|
387
|
+
handleHome() {
|
|
388
|
+
this.cursorPosition = 0;
|
|
389
|
+
this.scheduleRender();
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Handle end key
|
|
393
|
+
*/
|
|
394
|
+
handleEnd() {
|
|
395
|
+
this.cursorPosition = this.inputBuffer.length;
|
|
396
|
+
this.scheduleRender();
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Handle enter/submit
|
|
400
|
+
*/
|
|
401
|
+
handleSubmit() {
|
|
402
|
+
if (!this.isEnabled)
|
|
403
|
+
return null;
|
|
404
|
+
const input = this.inputBuffer.trim();
|
|
405
|
+
if (!input)
|
|
406
|
+
return null;
|
|
407
|
+
// If processing, queue the command instead of submitting
|
|
408
|
+
if (this.state.isProcessing) {
|
|
409
|
+
const type = input.startsWith('/') ? 'slash' : 'request';
|
|
410
|
+
this.queueCommand(input, type);
|
|
411
|
+
this.clearInput();
|
|
412
|
+
return null;
|
|
413
|
+
}
|
|
414
|
+
// Clear input and notify
|
|
415
|
+
this.clearInput();
|
|
416
|
+
if (this.onInputSubmit) {
|
|
417
|
+
this.onInputSubmit(input);
|
|
418
|
+
}
|
|
419
|
+
return input;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Clear input buffer
|
|
423
|
+
*/
|
|
424
|
+
clearInput() {
|
|
425
|
+
this.inputBuffer = '';
|
|
426
|
+
this.cursorPosition = 0;
|
|
427
|
+
this.state.currentInput = '';
|
|
428
|
+
this.scheduleRender();
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Set input text (for history navigation etc)
|
|
432
|
+
*/
|
|
433
|
+
setInput(text) {
|
|
434
|
+
this.inputBuffer = text;
|
|
435
|
+
this.cursorPosition = text.length;
|
|
436
|
+
this.state.currentInput = text;
|
|
437
|
+
this.scheduleRender();
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Get current input
|
|
441
|
+
*/
|
|
442
|
+
getInput() {
|
|
443
|
+
return this.inputBuffer;
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Schedule a render on next tick (debounced)
|
|
447
|
+
*/
|
|
448
|
+
scheduleRender() {
|
|
449
|
+
if (this.renderScheduled)
|
|
450
|
+
return;
|
|
451
|
+
this.renderScheduled = true;
|
|
452
|
+
queueMicrotask(() => {
|
|
453
|
+
this.renderScheduled = false;
|
|
454
|
+
this.render();
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Render the pinned chat box
|
|
459
|
+
*/
|
|
460
|
+
render() {
|
|
461
|
+
if (!this.isEnabled || !this.state.isVisible)
|
|
462
|
+
return;
|
|
463
|
+
const rows = this.writeStream.rows || 24;
|
|
464
|
+
const cols = this.writeStream.columns || 80;
|
|
465
|
+
// Build the chat box content
|
|
466
|
+
const lines = [];
|
|
467
|
+
// Line 1: Status bar (queue count, context usage, status message)
|
|
468
|
+
const statusParts = [];
|
|
469
|
+
if (this.state.queuedCommands.length > 0) {
|
|
470
|
+
const count = this.state.queuedCommands.length;
|
|
471
|
+
statusParts.push(theme.warning(`📋 ${count} queued`));
|
|
472
|
+
}
|
|
473
|
+
if (this.state.contextUsage > 0) {
|
|
474
|
+
const remaining = 100 - this.state.contextUsage;
|
|
475
|
+
const color = remaining < 10 ? theme.error : remaining < 30 ? theme.warning : theme.ui.muted;
|
|
476
|
+
statusParts.push(color(`${remaining}% context`));
|
|
477
|
+
}
|
|
478
|
+
if (this.state.statusMessage) {
|
|
479
|
+
statusParts.push(theme.ui.muted(this.state.statusMessage));
|
|
480
|
+
}
|
|
481
|
+
if (this.state.isProcessing) {
|
|
482
|
+
statusParts.push(theme.info('⏳ Processing...'));
|
|
483
|
+
}
|
|
484
|
+
const statusLine = statusParts.length > 0
|
|
485
|
+
? statusParts.join(' │ ')
|
|
486
|
+
: theme.ui.muted('Ready');
|
|
487
|
+
lines.push(statusLine);
|
|
488
|
+
// Line 2: Separator
|
|
489
|
+
lines.push(theme.ui.border('─'.repeat(Math.min(cols - 2, 80))));
|
|
490
|
+
// Line 3: Input prompt with current input
|
|
491
|
+
const promptPrefix = this.state.isProcessing
|
|
492
|
+
? theme.warning('⏸ ')
|
|
493
|
+
: theme.success('▶ ');
|
|
494
|
+
const displayInput = this.inputBuffer || '';
|
|
495
|
+
const inputLine = `${promptPrefix}${this.promptText}${displayInput}`;
|
|
496
|
+
lines.push(inputLine);
|
|
497
|
+
// Calculate cursor position for proper placement
|
|
498
|
+
const cursorCol = promptPrefix.replace(/\u001b\[[0-9;]*m/g, '').length +
|
|
499
|
+
this.promptText.length +
|
|
500
|
+
this.cursorPosition + 1;
|
|
501
|
+
// Save cursor, render at bottom, restore cursor
|
|
502
|
+
let output = ANSI.SAVE_CURSOR;
|
|
503
|
+
// Move to bottom area
|
|
504
|
+
const startRow = rows - this.reservedLines;
|
|
505
|
+
output += ANSI.CURSOR_TO_BOTTOM(startRow);
|
|
506
|
+
// Render each line
|
|
507
|
+
for (let i = 0; i < lines.length; i++) {
|
|
508
|
+
output += ANSI.CLEAR_LINE + lines[i];
|
|
509
|
+
if (i < lines.length - 1) {
|
|
510
|
+
output += '\n';
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
// Position cursor in input field
|
|
514
|
+
output += ANSI.MOVE_TO_COL(cursorCol);
|
|
515
|
+
// Don't restore cursor - keep it in the input field for typing
|
|
516
|
+
// output += ANSI.RESTORE_CURSOR;
|
|
517
|
+
this.writeStream.write(output);
|
|
518
|
+
this._lastRenderedHeight = lines.length;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Clear the pinned area
|
|
522
|
+
*/
|
|
523
|
+
clear() {
|
|
524
|
+
if (!this.writeStream.rows)
|
|
525
|
+
return;
|
|
526
|
+
const rows = this.writeStream.rows;
|
|
527
|
+
let output = ANSI.SAVE_CURSOR;
|
|
528
|
+
// Move to pinned area and clear
|
|
529
|
+
const startRow = rows - this.reservedLines;
|
|
530
|
+
output += ANSI.CURSOR_TO_BOTTOM(startRow);
|
|
531
|
+
for (let i = 0; i < this.reservedLines; i++) {
|
|
532
|
+
output += ANSI.CLEAR_LINE;
|
|
533
|
+
if (i < this.reservedLines - 1) {
|
|
534
|
+
output += '\n';
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
output += ANSI.RESTORE_CURSOR;
|
|
538
|
+
this.writeStream.write(output);
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Show the chat box
|
|
542
|
+
*/
|
|
543
|
+
show() {
|
|
544
|
+
this.state.isVisible = true;
|
|
545
|
+
this.render();
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* Hide the chat box
|
|
549
|
+
*/
|
|
550
|
+
hide() {
|
|
551
|
+
this.state.isVisible = false;
|
|
552
|
+
this.clear();
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* Get current state
|
|
556
|
+
*/
|
|
557
|
+
getState() {
|
|
558
|
+
return { ...this.state };
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* Handle terminal resize
|
|
562
|
+
*/
|
|
563
|
+
handleResize() {
|
|
564
|
+
this.scheduleRender();
|
|
565
|
+
}
|
|
566
|
+
/**
|
|
567
|
+
* Get number of reserved lines at bottom
|
|
568
|
+
*/
|
|
569
|
+
getReservedLines() {
|
|
570
|
+
return this.reservedLines;
|
|
571
|
+
}
|
|
572
|
+
/**
|
|
573
|
+
* Get last rendered height (for layout calculations)
|
|
574
|
+
*/
|
|
575
|
+
getLastRenderedHeight() {
|
|
576
|
+
return this._lastRenderedHeight;
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* Dispose and cleanup
|
|
580
|
+
*/
|
|
581
|
+
dispose() {
|
|
582
|
+
this.clear();
|
|
583
|
+
this.isEnabled = false;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
189
586
|
//# sourceMappingURL=persistentPrompt.js.map
|