@ariacode/cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +404 -0
  3. package/dist/actions.d.ts +271 -0
  4. package/dist/actions.js +1809 -0
  5. package/dist/actions.js.map +1 -0
  6. package/dist/agent.d.ts +26 -0
  7. package/dist/agent.js +182 -0
  8. package/dist/agent.js.map +1 -0
  9. package/dist/app.d.ts +14 -0
  10. package/dist/app.js +83 -0
  11. package/dist/app.js.map +1 -0
  12. package/dist/cli.d.ts +12 -0
  13. package/dist/cli.js +157 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/config.d.ts +170 -0
  16. package/dist/config.js +291 -0
  17. package/dist/config.js.map +1 -0
  18. package/dist/context.d.ts +58 -0
  19. package/dist/context.js +44 -0
  20. package/dist/context.js.map +1 -0
  21. package/dist/parser.d.ts +39 -0
  22. package/dist/parser.js +323 -0
  23. package/dist/parser.js.map +1 -0
  24. package/dist/prompts/ask.md +20 -0
  25. package/dist/prompts/explore.md +38 -0
  26. package/dist/prompts/patch.md +27 -0
  27. package/dist/prompts/plan.md +41 -0
  28. package/dist/prompts/prompts/ask.md +20 -0
  29. package/dist/prompts/prompts/explore.md +38 -0
  30. package/dist/prompts/prompts/patch.md +27 -0
  31. package/dist/prompts/prompts/plan.md +41 -0
  32. package/dist/prompts/prompts/review.md +33 -0
  33. package/dist/prompts/review.md +33 -0
  34. package/dist/provider.d.ts +148 -0
  35. package/dist/provider.js +486 -0
  36. package/dist/provider.js.map +1 -0
  37. package/dist/repo.d.ts +22 -0
  38. package/dist/repo.js +154 -0
  39. package/dist/repo.js.map +1 -0
  40. package/dist/safety.d.ts +48 -0
  41. package/dist/safety.js +140 -0
  42. package/dist/safety.js.map +1 -0
  43. package/dist/storage.d.ts +133 -0
  44. package/dist/storage.js +300 -0
  45. package/dist/storage.js.map +1 -0
  46. package/dist/tools.d.ts +70 -0
  47. package/dist/tools.js +654 -0
  48. package/dist/tools.js.map +1 -0
  49. package/dist/ui.d.ts +203 -0
  50. package/dist/ui.js +410 -0
  51. package/dist/ui.js.map +1 -0
  52. package/package.json +73 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,MAAM,EACN,IAAI,EACJ,KAAK,EACL,KAAK,IAAI,OAAO,EAChB,IAAI,EACJ,MAAM,EACN,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,EACH,WAAW,EACX,qBAAqB,EACrB,OAAO,EACP,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAK5E,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,iBAAiB,GAAkC;IACvD,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE,oBAAoB;IAChC,MAAM,EAAE,IAAI;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAA2B;IAC7C,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,6BAA6B;CAC1C,CAAC;AAEF;;GAEG;AACH,SAAS,eAAe,CAAC,YAAoB;IAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,yBAAyB;IAC3D,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,eAAe,CAAC,MAAc;IAC3C,uCAAuC;IACvC,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,OAAO,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,+DAA+D;IAC/D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC/D,IAAI,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,OAAO;YAAE,SAAS;QAC/C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,oCAAoC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAsC,CAAC;YACjE,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,MAAM,eAAe,GAAG;QACtB,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,4BAA4B,EAAE;QAC9F,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;QAClF,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,6BAA6B,EAAE;QACxF,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;KAC7F,CAAC;IAEF,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,MAAM,OAAO,CAAC;QACnD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,eAAe;KACzB,EAAE;QACD,QAAQ,EAAE,GAAG,EAAE;YACb,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACpC,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,qBAAqB,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEnD,yCAAyC;IACzC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;YAChC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,wBAAwB;SACjE,EAAE;YACD,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,qBAAqB,EAAE,CAAC,CAAC,CAAC;SACvD,CAAC,CAAC;QAEH,IAAI,OAAO,IAAI,OAAO,KAAK,wBAAwB,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;QACnC,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;QAC9C,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,qCAAqC;IACrC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QAC/B,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,cAAc,MAAM,EAAE;KAChC,EAAE;QACD,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,qBAAqB,EAAE,CAAC,CAAC,CAAC;KACvD,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,aAAa,CAAC,GAAG,MAAM,oBAAoB,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC7F,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAE7B,gBAAgB;IAChB,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,gBAAkD,CAAC;IAC7E,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;IAElF,qCAAqC;IACrC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3B,yCAAyC;IACzC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;QAChC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ,MAAM,mCAAmC;QAC1D,OAAO,EAAE,IAAI;KACd,EAAE;QACD,QAAQ,EAAE,GAAG,EAAE,GAA8B,CAAC;KAC/C,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,YAAY,MAAM,KAAK,MAAM,KAAK,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,WAAW,MAAM,cAAc,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,wCAAwC,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,oCAAoC,MAAM,YAAY,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,gBAAgB,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACxC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAChD,0CAA0C;YAC1C,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,sBAAsB,EACtB,cAAc,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,CACzC,CAAC;YACF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,oBAAoB,EACpB,YAAY,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,CACrC,CAAC;YACF,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,GAAG,CAAC,8CAA8C,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,eAAe,GAAW;IAC9B,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,oBAAoB;CACrB,CAAC;AAEF,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E;;GAEG;AACH,MAAM,kBAAkB,GAA2B;IACjD,GAAG,EAAE;QACH,qEAAqE;QACrE,EAAE;QACF,0BAA0B;QAC1B,8BAA8B;QAC9B,2BAA2B;QAC3B,EAAE;QACF,sEAAsE;QACtE,iEAAiE;KAClE,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE;QACJ,uEAAuE;QACvE,EAAE;QACF,0BAA0B;QAC1B,8BAA8B;QAC9B,2BAA2B;QAC3B,EAAE;QACF,sEAAsE;QACtE,gEAAgE;QAChE,0EAA0E;KAC3E,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,KAAK,EAAE;QACL,iEAAiE;QACjE,EAAE;QACF,0BAA0B;QAC1B,8BAA8B;QAC9B,2BAA2B;QAC3B,EAAE;QACF,oEAAoE;QACpE,oEAAoE;QACpE,yDAAyD;KAC1D,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,MAAM,EAAE;QACN,0EAA0E;QAC1E,EAAE;QACF,0BAA0B;QAC1B,8BAA8B;QAC9B,2BAA2B;QAC3B,EAAE;QACF,sFAAsF;QACtF,EAAE;QACF,uCAAuC;QACvC,EAAE;QACF,eAAe;QACf,EAAE;QACF,YAAY;QACZ,wCAAwC;QACxC,EAAE;QACF,WAAW;QACX,qEAAqE;QACrE,yEAAyE;QACzE,qDAAqD;QACrD,EAAE;QACF,gBAAgB;QAChB,2DAA2D;KAC5D,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,OAAO,EAAE;QACP,wDAAwD;QACxD,EAAE;QACF,0BAA0B;QAC1B,EAAE;QACF,0EAA0E;QAC1E,iCAAiC;QACjC,EAAE;QACF,oCAAoC;QACpC,iEAAiE;QACjE,sDAAsD;QACtD,+DAA+D;QAC/D,sDAAsD;QACtD,2DAA2D;QAC3D,EAAE;QACF,gEAAgE;QAChE,yEAAyE;KAC1E,CAAC,IAAI,CAAC,IAAI,CAAC;CACb,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CACxB,YAAoB,EACpB,GAAqB,EACrB,YAAoC,EAAE;IAEtC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;IAC3E,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEnD,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS;QACrC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1K,CAAC,CAAC,MAAM,CAAC;IAEX,IAAI,MAAM,GAAG,QAAQ;SAClB,OAAO,CAAC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC;SAC7C,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,WAAW,CAAC;SAChD,OAAO,CAAC,wBAAwB,EAAE,aAAa,CAAC;SAChD,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEnE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAsBD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAmB;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,kCAAkC;IAClC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEzC,8EAA8E;IAC9E,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/B,uEAAuE;IACvE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAEhC,IAAI,SAAiB,CAAC;IACtB,IAAI,eAAe,GAAsE,EAAE,CAAC;IAE5F,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,oCAAoC;QACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,sBAAsB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAEtC,qCAAqC;QACrC,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN,iFAAiF,CAClF;aACA,GAAG,CAAC,SAAS,CAAsE,CAAC;QACvF,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,+BAA+B;QAC/B,SAAS,GAAG,UAAU,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE,EAAE;YAChB,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,KAAK;YACd,WAAW;YACX,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;YACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACjC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yDAAyD;IACzD,MAAM,GAAG,GAAqB;QAC5B,WAAW;QACX,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;QAC5B,IAAI,EAAE,MAAM,EAAW,0BAA0B;QACjD,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;QACzC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;KAC5C,CAAC;IAEF,0CAA0C;IAC1C,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,wDAAwD;IACxD,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEnD,wCAAwC;IACxC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAElD,sEAAsE;IACtE,uEAAuE;IACvE,yEAAyE;IACzE,6EAA6E;IAC7E,IAAI,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAEnC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,sDAAsD;QACtD,MAAM,YAAY,GAAG,eAAe;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;aACvC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChB,WAAW,GAAG,8BAA8B,YAAY,uBAAuB,OAAO,CAAC,QAAQ,EAAE,CAAC;IACpG,CAAC;IAED,uCAAuC;IACvC,mEAAmE;IACnE,IAAI,CAAC;QACH,MAAM,SAAS,CACb,GAAG,EACH,WAAW,EACX,eAAe,EACf,QAAQ,EACR,MAAM,EACN,KAAK,EACL,EAAE,EACF,YAAY,CACb,CAAC;QAEF,yCAAyC;QACzC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAsBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,mCAAmC;IACnC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEzC,+EAA+E;IAC/E,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/B,oEAAoE;IACpE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAEhC,IAAI,SAAiB,CAAC;IACtB,IAAI,eAAe,GAAsE,EAAE,CAAC;IAE5F,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,qCAAqC;QACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,sBAAsB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAEtC,qCAAqC;QACrC,MAAM,IAAI,GAAG,EAAE;aACZ,OAAO,CACN,iFAAiF,CAClF;aACA,GAAG,CAAC,SAAS,CAAsE,CAAC;QACvF,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,gCAAgC;QAChC,SAAS,GAAG,UAAU,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE,EAAE;YAChB,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,MAAM;YACf,WAAW;YACX,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;YACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACjC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0DAA0D;IAC1D,MAAM,GAAG,GAAqB;QAC5B,WAAW;QACX,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;QAC5B,IAAI,EAAE,MAAM,EAAW,2BAA2B;QAClD,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;QACzC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;KAC5C,CAAC;IAEF,0DAA0D;IAC1D,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEhF,wCAAwC;IACxC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAElD,sEAAsE;IACtE,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/B,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,sDAAsD;QACtD,MAAM,YAAY,GAAG,eAAe;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;aACvC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChB,WAAW,GAAG,8BAA8B,YAAY,mBAAmB,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5F,CAAC;IAED,sEAAsE;IACtE,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,SAAS,CACjC,GAAG,EACH,WAAW,EACX,eAAe,EACf,QAAQ,EACR,MAAM,EACN,MAAM,EACN,EAAE,EACF,YAAY,CACb,CAAC;QAEF,uDAAuD;QACvD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE3C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;YAED,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,iBAAiB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,0CAA0C;QAC1C,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAwBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAqB;IAClD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,mCAAmC;IACnC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,iCAAiC;IACjC,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,0CAA0C;IAE3F,qCAAqC;IACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,oDAAoD;IACpD,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/B,wDAAwD;IACxD,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAEhC,IAAI,SAAiB,CAAC;IAEtB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,sBAAsB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,UAAU,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE,EAAE;YAChB,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,OAAO;YAChB,WAAW;YACX,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;YACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACjC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uEAAuE;IACvE,MAAM,GAAG,GAAqB;QAC5B,WAAW;QACX,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;QAC5B,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;QAC/B,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;QACzC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;KAC5C,CAAC;IAEF,2DAA2D;IAC3D,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAElD,qDAAqD;IACrD,MAAM,UAAU,GAAW;QACzB,YAAY;QACZ,iBAAiB;QACjB,cAAc;QACd,mBAAmB;QACnB,oBAAoB;QACpB,eAAe;QACf,aAAa;KACd,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,wEAAwE;IACxE,0BAA0B;IAC1B,sEAAsE;IACtE,mEAAmE;IACnE,mEAAmE;IACnE,kEAAkE;IAClE,IAAI,CAAC;QACH,MAAM,SAAS,CACb,GAAG,EACH,OAAO,CAAC,WAAW,EACnB,UAAU,EACV,QAAQ,EACR,MAAM,EACN,OAAO,EACP,EAAE,EACF,YAAY,CACb,CAAC;QAEF,4EAA4E;QAC5E,yEAAyE;QACzE,2DAA2D;QAC3D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,4CAA4C;QAC5C,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEjE,qDAAqD;QACrD,IAAI,GAAG,YAAY,kBAAkB,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YAC9E,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACrC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AA+BD;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,OAAsB,EAAE,WAAmB;IAC9D,IAAI,CAAC;QACH,IAAI,IAAc,CAAC;QAEnB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,sDAAsD;YACtD,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,8BAA8B;YAC9B,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;YACvC,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,WAAW;YAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ;SACtC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,MAAM,GAAiB;QAC3B,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,0BAA0B;IAC1B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAChF,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9E,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAClF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAClE,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAA+B;oBACrE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBACrC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,qDAAqD;gBACrD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACxF,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,eAAe;aACpC,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACzC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAAoB;IACxC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;IAChD,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,aAAa,GACjB,KAAK,CAAC,QAAQ,KAAK,MAAM;gBACvB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACf,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;oBAC7B,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;oBACpB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,IAAI,CAAC,OAAO,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,mCAAmC;IACnC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,uDAAuD;IACvD,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/B,wDAAwD;IACxD,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAE/B,aAAa,CAAC,EAAE,EAAE;QAChB,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,QAAQ;QACjB,WAAW;QACX,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;KAC7B,CAAC,CAAC;IAEH,iDAAiD;IACjD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACjC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uDAAuD;IACvD,MAAM,GAAG,GAAqB;QAC5B,WAAW;QACX,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;QAC5B,IAAI,EAAE,MAAM,EAAI,6BAA6B;QAC7C,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;QACzC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;KAC5C,CAAC;IAEF,0CAA0C;IAC1C,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;YAC/B,CAAC,CAAC,uBAAuB,OAAO,CAAC,MAAM,EAAE;YACzC,CAAC,CAAC,OAAO,CAAC,QAAQ;gBAClB,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,gBAAgB,CAAC;QACrB,IAAI,CAAC,MAAM,UAAU,4BAA4B,CAAC,CAAC;QACnD,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtD,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAElD,2DAA2D;IAC3D,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;QAC/B,CAAC,CAAC,2BAA2B,OAAO,CAAC,MAAM,GAAG;QAC9C,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,gBAAgB,CAAC;IAErB,MAAM,WAAW,GAAG;QAClB,yCAAyC,UAAU,IAAI;QACvD,EAAE;QACF,iBAAiB,OAAO,CAAC,IAAI,EAAE;QAC/B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;QACjE,eAAe,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QACjD,EAAE;QACF,SAAS;QACT,IAAI;QACJ,KAAK;KACN;SACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SACzB,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,yEAAyE;IACzE,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,SAAS,CACnC,GAAG,EACH,WAAW,EACX,eAAe,EACf,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,EAAE,EACF,YAAY,CACb,CAAC;QAEF,wCAAwC;QACxC,MAAM,MAAM,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAElD,gDAAgD;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,mCAAmC;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,kEAAkE;YAClE,+CAA+C;YAC/C,YAAY,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,4CAA4C;QAC5C,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEjE,2CAA2C;QAC3C,IAAI,GAAG,YAAY,kBAAkB,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YAC9E,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACrC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAoBD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAuB;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,mCAAmC;IACnC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,oDAAoD;IACpD,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/C,wDAAwD;IACxD,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAE/B,aAAa,CAAC,EAAE,EAAE;QAChB,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,SAAS;QAClB,WAAW;QACX,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;KAC7B,CAAC,CAAC;IAEH,oDAAoD;IACpD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACjC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0DAA0D;IAC1D,MAAM,GAAG,GAAqB;QAC5B,WAAW;QACX,SAAS;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;QACjC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;QAC5B,IAAI,EAAE,MAAM,EAAI,8BAA8B;QAC9C,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;QACzC,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;KAC5C,CAAC;IAEF,kEAAkE;IAClE,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAElD,uEAAuE;IACvE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS;QACrC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1K,CAAC,CAAC,MAAM,CAAC;IAEX,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS;QAClD,CAAC,CAAC,mDAAmD,OAAO,CAAC,KAAK,GAAG;QACrE,CAAC,CAAC,0DAA0D,CAAC;IAE/D,MAAM,WAAW,GAAG;QAClB,gBAAgB,OAAO,CAAC,IAAI,+CAA+C;QAC3E,EAAE;QACF,iBAAiB,WAAW,EAAE;QAC9B,iBAAiB,OAAO,CAAC,IAAI,EAAE;QAC/B,cAAc,aAAa,EAAE;QAC7B,eAAe,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QACjD,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI;QAC5E,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,+EAA+E;QAC/E,mFAAmF;QACnF,sFAAsF;KACvF;SACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;SACzB,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,sEAAsE;IACtE,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,SAAS,CACpC,GAAG,EACH,WAAW,EACX,eAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,EACT,EAAE,EACF,YAAY,CACb,CAAC;QAEF,mEAAmE;QACnE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAElD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,CAAC;YAED,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACxD,CAAC;QAED,2CAA2C;QAC3C,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEjE,IAAI,GAAG,YAAY,kBAAkB,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;YAC9E,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACrC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC;QACjB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAsBD;;;;;GAKG;AACH,SAAS,eAAe,CAAC,SAAiB;IACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE1C,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,UAAU,CAAC;IACpC,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,GAAG,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QACtC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC7C,CAAC;IACD,oDAAoD;IACpD,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACxC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;KACf,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;QACvB,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QACrB,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CACrB,EAAqC,EACrC,SAAiB;IAEjB,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CACN;;;+BAGyB,CAC1B;SACA,GAAG,CAAC,SAAS,CAMZ,CAAC;IAEL,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;QAEnG,oCAAoC;QACpC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAA4B,CAAC;YACnE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;iBAC1C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;iBACzD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,KAAK,WAAW,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,WAAW,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK,WAAW,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,KAAK,WAAW,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAuB;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,uCAAuC;IACvC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,sBAAsB;IACtB,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAEhC,8EAA8E;IAC9E,4DAA4D;IAC5D,8EAA8E;IAC9E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,sBAAsB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,gBAAgB,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,gBAAgB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,gBAAgB,OAAO,CAAC,QAAQ,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,EAAE,CAAC,CAAC;QAET,eAAe;QACf,MAAM,QAAQ,GAAG,EAAE;aAChB,OAAO,CACN;;;iCAGyB,CAC1B;aACA,GAAG,CAAC,OAAO,CAAC,OAAO,CAIlB,CAAC;QAEL,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACxB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,SAAS,GACb,GAAG,CAAC,IAAI,KAAK,MAAM;oBACjB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAChB,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW;wBAC1B,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;wBACtB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACtB,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC;gBACpC,8CAA8C;gBAC9C,MAAM,OAAO,GACX,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG;oBACtB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;oBACtC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;gBAClB,uBAAuB;gBACvB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;oBACpD,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBACtB,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,MAAM,SAAS,GACb,EAAE;aACC,OAAO,CACN,oEAAoE,CACrE;aACA,GAAG,CAAC,OAAO,CAAC,OAAO,CACvB,CAAC,KAAK,CAAC;QAER,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,oBAAoB,SAAS,IAAI,CAAC,CAAC,CAAC;YAE9C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,4BAA4B;gBAC5B,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,MAAM,UAAU,GAAG,EAAE;qBAClB,OAAO,CACN;;;qCAGyB,CAC1B;qBACA,GAAG,CAAC,OAAO,CAAC,OAAO,CAMlB,CAAC;gBAEL,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC;QAED,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;IAEzC,oDAAoD;IACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,gEAAgE,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,8BAA8B;IAC9B,MAAM,IAAI,GAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAW,iBAAiB;QACjD,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACf,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,EAAI,sCAAsC;QACtE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;KACzB,CAAC,CAAC;IAEH,gDAAgD;IAChD,MAAM,KAAK,GAAG,WAAW,CACvB;QACE,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC;QACzC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;KAC5B,EACD,IAAI,CACL,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,CAAC;IAEZ,+DAA+D;IAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,qDAAqD,CAAC,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AA0BD;;;GAGG;AACH,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,MAAc,EAAE,GAAW;IACjD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAY,MAAM,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACtE,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,GAA4B,EAC5B,GAAW,EACX,KAAc;IAEd,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC1B,IAAI,OAAO,GAAG,MAAM,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAA4B,IAAI,EAAE,CAAC,EAAE,CAAC;QACxE,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IACnD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,WAAmB,EACnB,MAAc;IAEd,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACvE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAE/D,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,wBAAwB,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IACpI,IAAI,CAAC,GAAG,CAAC,wBAAwB,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9H,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACtB,IAAI,CAAC,uBAAuB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,uBAAuB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,uBAAuB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,iCAAiC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,iCAAiC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAClG,IAAI,CAAC,iCAAiC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC,iCAAiC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAsB;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,uCAAuC;IACvC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACvE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAE/D,8EAA8E;IAC9E,4DAA4D;IAC5D,8EAA8E;IAC9E,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,sBAAsB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,+DAA+D;IAC/D,8EAA8E;IAC9E,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,qBAAqB,cAAc,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,qBAAqB,iBAAiB,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,qDAAqD;IACrD,8EAA8E;IAC9E,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAI,CAAC;QACzB,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,wEAAwE;IACxE,8EAA8E;IAC9E,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAI,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAM,CAAC;QAEhC,0CAA0C;QAC1C,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE/C,uEAAuE;QACvE,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,cAAc,CAClC,aAAwC,EACxC,GAAG,EACH,WAAW,CACZ,CAAC;QAEF,IAAI,eAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,eAAe,GAAG,cAAc,CAAC,aAA6B,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CACL,qBAAqB,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAChF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,2DAA2D;QAC3D,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,CAAC;YAC3C,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC;YACvC,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAE1D,oCAAoC;QACpC,MAAM,UAAU,GAAG,qBAAqB,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACjF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,UAAU,CAAC,CAAC;QAEjB,gDAAgD;QAChD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,IAAI,SAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,cAAc,GAAG,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,aAAa,CAAC,cAAc,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,KAAK,CAAC,gBAAgB,cAAc,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,kEAAkE;IAClE,8EAA8E;IAC9E,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAClC,kCAAkC;QAClC,MAAM,aAAa,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAE5D,kBAAkB;QAClB,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC;YAC9C,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC;YAC1C,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,qBAAqB,CAAC,iBAAiB,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEjB,gDAAgD;QAChD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,IAAI,SAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,iBAAiB,GAAG,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,qBAAqB,EAAE,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,aAAa,CAAC,iBAAiB,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,aAAa,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;AACH,CAAC;AAyBD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAAyB,EAAE;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,mFAAmF;IACnF,IAAI,MAAM,GAAwC,IAAI,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,4EAA4E;IAC5E,iDAAiD;IACjD,4EAA4E;IAC5E,CAAC;QACC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,kBAAkB;QACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,WAAW,oBAAoB;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,6CAA6C;IAC7C,4EAA4E;IAC5E,CAAC;QACC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9G,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,sDAAsD;IACtD,4EAA4E;IAC5E,CAAC;QACC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5H,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,0DAA0D,EAAE,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,oEAAoE;IACpE,4EAA4E;IAC5E,CAAC;QACC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAE/D,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;QACrG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC3B,MAAM,KAAK,GAAG;oBACZ,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI;oBACzD,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;iBACpD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,GAAG,EAAE,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBAC1D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,uEAAuE;IACvE,4EAA4E;IAC5E,CAAC;QACC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAChC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,yBAAyB;YAC3F,MAAM,OAAO,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,OAAO,GAAG,EAAE,CAAC,CAAC;QAClG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,iEAAiE;IACjE,4EAA4E;IAC5E,CAAC;QACC,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC,OAAO,IAAI,WAAW,CAAC;QACzD,MAAM,MAAM,GAA2B;YACrC,SAAS,EAAE,mBAAmB;YAC9B,MAAM,EAAE,gBAAgB;YACxB,UAAU,EAAE,oBAAoB;YAChC,MAAM,EAAE,EAAE,EAAE,gBAAgB;SAC7B,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,+BAA+B;YAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,wBAAwB,EAAE,CAAC,CAAC;QAClG,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,KAAK,MAAM,WAAW,EAAE,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,QAAQ,KAAK,MAAM,WAAW;aAC3C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,uCAAuC;IACvC,4EAA4E;IAC5E,CAAC;QACC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS;gBACtC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG;gBACxG,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,cAAc,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,2DAA2D;IAC3D,4EAA4E;IAC5E,CAAC;QACC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,IAAI,OAAO,CAAC,gBAAgB,IAAI,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACrE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACtG,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC,CAAC;gBACrH,CAAC;YACH,CAAC;YACD,yCAAyC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,CAAC;QACC,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC,OAAO,IAAI,WAAW,CAAC;QACzD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,wBAAwB,CAAC;YAC3E,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnE,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,UAAU,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YAC9G,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,UAAU,EAAE,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAC5E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CACxD,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,0BAA0B;QAC1B,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACtD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,0BAA0B;QAC1B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;QAET,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,CAAC;QAET,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { ExecutionContext } from "./context.js";
2
+ import type { Tool } from "./tools.js";
3
+ import type { Provider } from "./provider.js";
4
+ import type { Config } from "./config.js";
5
+ import type { Database } from "better-sqlite3";
6
+ /**
7
+ * User cancellation error — maps to exit code 130
8
+ */
9
+ export declare class UserCancelledError extends Error {
10
+ constructor();
11
+ }
12
+ /**
13
+ * Max iterations exceeded error
14
+ */
15
+ export declare class MaxIterationsError extends Error {
16
+ constructor(max: number);
17
+ }
18
+ /**
19
+ * Core agent loop.
20
+ *
21
+ * Sends the user request to the provider, executes tool calls, and iterates
22
+ * until the provider signals end_turn or max_iterations is reached.
23
+ *
24
+ * Requirements: 9.1–9.6, 7.5, 7.6, 11.8, 11.9, 17.5, 17.6, 22.4
25
+ */
26
+ export declare function agentLoop(ctx: ExecutionContext, userRequest: string, tools: Tool[], provider: Provider, config: Config, _command: string, db?: Database | null, systemPrompt?: string): Promise<string>;
package/dist/agent.js ADDED
@@ -0,0 +1,182 @@
1
+ import { logMessage, logToolExecution, logMutation } from "./storage.js";
2
+ import { confirm, ConfirmCancelledError } from "./ui.js";
3
+ /**
4
+ * User cancellation error — maps to exit code 130
5
+ */
6
+ export class UserCancelledError extends Error {
7
+ constructor() {
8
+ super("Operation cancelled by user");
9
+ this.name = "UserCancelledError";
10
+ }
11
+ }
12
+ /**
13
+ * Max iterations exceeded error
14
+ */
15
+ export class MaxIterationsError extends Error {
16
+ constructor(max) {
17
+ super(`Agent reached maximum iterations (${max}) without completing`);
18
+ this.name = "MaxIterationsError";
19
+ }
20
+ }
21
+ /**
22
+ * Execute a single tool call, enforcing mode and mutation rules.
23
+ * Returns the ToolResult and whether the call was skipped (dry-run).
24
+ */
25
+ async function executeToolCall(toolCall, tools, ctx, config, db) {
26
+ const tool = tools.find((t) => t.name === toolCall.name);
27
+ if (!tool) {
28
+ return {
29
+ result: {
30
+ success: false,
31
+ error: `Unknown tool: ${toolCall.name}`,
32
+ },
33
+ skipped: false,
34
+ };
35
+ }
36
+ // Validate input against schema
37
+ const parsed = tool.inputSchema.safeParse(toolCall.input);
38
+ if (!parsed.success) {
39
+ return {
40
+ result: {
41
+ success: false,
42
+ error: `Invalid input for tool ${toolCall.name}: ${parsed.error.message}`,
43
+ },
44
+ skipped: false,
45
+ };
46
+ }
47
+ // Enforce mutation rules
48
+ if (tool.isMutation) {
49
+ // Block all mutations in plan mode
50
+ if (ctx.mode === "plan") {
51
+ return {
52
+ result: {
53
+ success: false,
54
+ error: `Tool '${toolCall.name}' is a mutation and cannot be used in plan mode`,
55
+ },
56
+ skipped: false,
57
+ };
58
+ }
59
+ // Skip apply_diff in dry-run mode
60
+ if (ctx.dryRun && toolCall.name === "apply_diff") {
61
+ return {
62
+ result: {
63
+ success: true,
64
+ data: { skipped: true, reason: "dry-run mode — changes not applied" },
65
+ },
66
+ skipped: true,
67
+ };
68
+ }
69
+ // Prompt for confirmation before apply_diff (unless --yes)
70
+ if (!ctx.assumeYes && toolCall.name === "apply_diff") {
71
+ try {
72
+ const confirmed = await confirm("Apply the proposed changes to the filesystem?");
73
+ if (!confirmed) {
74
+ throw new UserCancelledError();
75
+ }
76
+ }
77
+ catch (err) {
78
+ if (err instanceof ConfirmCancelledError) {
79
+ throw new UserCancelledError();
80
+ }
81
+ throw err;
82
+ }
83
+ }
84
+ }
85
+ // Execute the tool
86
+ const result = await tool.execute(parsed.data, ctx, config);
87
+ // Log tool execution to database
88
+ if (db) {
89
+ logToolExecution(db, ctx.sessionId, toolCall.name, toolCall.input, result);
90
+ // Log mutation if this was apply_diff and it succeeded
91
+ if (toolCall.name === "apply_diff" &&
92
+ result.success &&
93
+ result.data &&
94
+ typeof result.data === "object") {
95
+ const data = result.data;
96
+ logMutation(db, ctx.sessionId, {
97
+ action: "apply_diff",
98
+ affectedFiles: data.affectedFiles ?? [],
99
+ riskLevel: "low",
100
+ reversible: true,
101
+ rollbackHints: data.rollbackHints,
102
+ });
103
+ }
104
+ }
105
+ return { result, skipped: false };
106
+ }
107
+ /**
108
+ * Core agent loop.
109
+ *
110
+ * Sends the user request to the provider, executes tool calls, and iterates
111
+ * until the provider signals end_turn or max_iterations is reached.
112
+ *
113
+ * Requirements: 9.1–9.6, 7.5, 7.6, 11.8, 11.9, 17.5, 17.6, 22.4
114
+ */
115
+ export async function agentLoop(ctx, userRequest, tools, provider, config, _command, db = null, systemPrompt) {
116
+ const messages = [];
117
+ if (systemPrompt) {
118
+ messages.push({ role: "system", content: systemPrompt });
119
+ }
120
+ messages.push({ role: "user", content: userRequest });
121
+ // Log initial user message
122
+ if (db) {
123
+ logMessage(db, ctx.sessionId, "user", userRequest);
124
+ }
125
+ let iterations = 0;
126
+ let lastContent = "";
127
+ while (iterations < ctx.maxIterations) {
128
+ const response = await provider.chat(messages, tools, {
129
+ model: ctx.model,
130
+ maxTokens: config.provider.maxTokens,
131
+ });
132
+ // Stream assistant content to terminal as it arrives (Req 22.4)
133
+ if (response.content) {
134
+ process.stdout.write(response.content);
135
+ lastContent = response.content;
136
+ }
137
+ // Log assistant message
138
+ if (db && response.content) {
139
+ logMessage(db, ctx.sessionId, "assistant", response.content);
140
+ }
141
+ messages.push({
142
+ role: "assistant",
143
+ content: response.content,
144
+ });
145
+ // Done — no more tool calls
146
+ if (response.stopReason === "end_turn" || response.toolCalls.length === 0) {
147
+ if (response.content) {
148
+ process.stdout.write("\n");
149
+ }
150
+ return lastContent;
151
+ }
152
+ // Execute each tool call
153
+ const toolResultParts = [];
154
+ for (const toolCall of response.toolCalls) {
155
+ const { result, skipped } = await executeToolCall(toolCall, tools, ctx, config, db);
156
+ if (!skipped && !ctx.assumeYes && result.success && result.data) {
157
+ // For non-mutation tools, show a brief indicator
158
+ const isMutation = tools.find((t) => t.name === toolCall.name)?.isMutation;
159
+ if (!isMutation) {
160
+ process.stderr.write(` [tool] ${toolCall.name}\n`);
161
+ }
162
+ }
163
+ toolResultParts.push(JSON.stringify({
164
+ tool_use_id: toolCall.id,
165
+ type: "tool_result",
166
+ content: result,
167
+ }));
168
+ }
169
+ // Add tool results as a user message (standard agentic pattern)
170
+ const toolResultMessage = toolResultParts.join("\n");
171
+ messages.push({
172
+ role: "user",
173
+ content: toolResultMessage,
174
+ });
175
+ if (db) {
176
+ logMessage(db, ctx.sessionId, "user", toolResultMessage);
177
+ }
178
+ iterations++;
179
+ }
180
+ throw new MaxIterationsError(ctx.maxIterations);
181
+ }
182
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/app.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Resolve the ~/.aria directory path
3
+ */
4
+ export declare function getAriaHomeDir(): string;
5
+ /**
6
+ * Initialize the ~/.aria home directory on first run.
7
+ *
8
+ * Steps:
9
+ * 1. Create ~/.aria directory if it does not exist (Requirements 1.4)
10
+ * 2. Initialize history.db with versioned schema (Requirement 1.5)
11
+ * 3. Set history.db file permissions to 0o600 (Requirement 23.7)
12
+ * 4. Create default ~/.aria/config.toml if it does not exist
13
+ */
14
+ export declare function initializeAriaHome(): void;
package/dist/app.js ADDED
@@ -0,0 +1,83 @@
1
+ import * as fs from "node:fs";
2
+ import * as path from "node:path";
3
+ import * as os from "node:os";
4
+ import { stringify as stringifyToml } from "smol-toml";
5
+ import { initializeDatabase, closeDatabase } from "./storage.js";
6
+ import { validateConfig } from "./config.js";
7
+ /**
8
+ * Resolve the ~/.aria directory path
9
+ */
10
+ export function getAriaHomeDir() {
11
+ return path.join(os.homedir(), ".aria");
12
+ }
13
+ /**
14
+ * Build the default config as a plain object suitable for TOML serialization.
15
+ * We derive defaults by validating an empty config source.
16
+ */
17
+ function buildDefaultConfigObject() {
18
+ const defaults = validateConfig({});
19
+ return {
20
+ provider: {
21
+ default: defaults.provider.default,
22
+ model: defaults.provider.model,
23
+ max_tokens: defaults.provider.maxTokens,
24
+ },
25
+ agent: {
26
+ max_iterations: defaults.agent.maxIterations,
27
+ mode: defaults.agent.mode,
28
+ timeout_seconds: defaults.agent.timeoutSeconds,
29
+ },
30
+ safety: {
31
+ require_confirm_for_shell: defaults.safety.requireConfirmForShell,
32
+ allowed_shell_commands: defaults.safety.allowedShellCommands,
33
+ max_file_size_kb: defaults.safety.maxFileSizeKb,
34
+ max_files_per_patch: defaults.safety.maxFilesPerPatch,
35
+ },
36
+ ui: {
37
+ color: defaults.ui.color,
38
+ quiet: defaults.ui.quiet,
39
+ },
40
+ history: {
41
+ retain_days: defaults.history.retainDays,
42
+ },
43
+ };
44
+ }
45
+ /**
46
+ * Initialize the ~/.aria home directory on first run.
47
+ *
48
+ * Steps:
49
+ * 1. Create ~/.aria directory if it does not exist (Requirements 1.4)
50
+ * 2. Initialize history.db with versioned schema (Requirement 1.5)
51
+ * 3. Set history.db file permissions to 0o600 (Requirement 23.7)
52
+ * 4. Create default ~/.aria/config.toml if it does not exist
53
+ */
54
+ export function initializeAriaHome() {
55
+ const ariaDir = getAriaHomeDir();
56
+ // 1. Create ~/.aria directory if it doesn't exist
57
+ if (!fs.existsSync(ariaDir)) {
58
+ fs.mkdirSync(ariaDir, { recursive: true, mode: 0o700 });
59
+ }
60
+ // 2. Initialize history.db with versioned schema (also sets chmod 600 internally)
61
+ initializeDatabase();
62
+ // 3. Ensure history.db permissions are 0o600 (belt-and-suspenders)
63
+ const dbPath = path.join(ariaDir, "history.db");
64
+ if (fs.existsSync(dbPath)) {
65
+ try {
66
+ fs.chmodSync(dbPath, 0o600);
67
+ }
68
+ catch {
69
+ // Non-fatal: warn but continue (e.g. on some CI environments)
70
+ }
71
+ }
72
+ // 4. Create default ~/.aria/config.toml if it doesn't exist
73
+ const configPath = path.join(ariaDir, "config.toml");
74
+ if (!fs.existsSync(configPath)) {
75
+ const defaultConfig = buildDefaultConfigObject();
76
+ const tomlContent = stringifyToml(defaultConfig);
77
+ fs.writeFileSync(configPath, tomlContent, { encoding: "utf-8", mode: 0o600 });
78
+ }
79
+ // Close the db connection opened during initialization so callers get a
80
+ // fresh connection when they actually need it.
81
+ closeDatabase();
82
+ }
83
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ export type { ParsedArgs } from './parser.js';
3
+ export { parseCLI, validateArgs } from './parser.js';
4
+ /**
5
+ * Central error handler. Writes to stderr and exits with the correct code.
6
+ * Shows stack trace only when DEBUG env var is set (Requirement 19.8).
7
+ */
8
+ export declare function handleError(err: unknown): never;
9
+ /**
10
+ * Parse, validate, and route to the appropriate command handler.
11
+ */
12
+ export declare function run(): void;
package/dist/cli.js ADDED
@@ -0,0 +1,157 @@
1
+ #!/usr/bin/env node
2
+ import pc from 'picocolors';
3
+ import { readFileSync } from 'node:fs';
4
+ import { join, dirname } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { runAsk, runPlan, runPatch, runReview, runExplore, runHistory, runConfig, runDoctor } from './actions.js';
7
+ import { initializeAriaHome } from './app.js';
8
+ import { parseCLI, validateArgs, GLOBAL_USAGE } from './parser.js';
9
+ import { ConfigError } from './config.js';
10
+ import { ProviderError } from './provider.js';
11
+ import { UserCancelledError } from './agent.js';
12
+ import { ConfirmCancelledError } from './ui.js';
13
+ export { parseCLI, validateArgs } from './parser.js';
14
+ // ---------------------------------------------------------------------------
15
+ // Error handling
16
+ // ---------------------------------------------------------------------------
17
+ /**
18
+ * Maps a thrown error to the appropriate exit code per Requirements 19.1–19.7:
19
+ * 0 – success (never thrown)
20
+ * 1 – generic error
21
+ * 2 – invalid arguments
22
+ * 3 – configuration error
23
+ * 4 – provider error
24
+ * 5 – project detection error
25
+ * 130 – user cancelled
26
+ */
27
+ function exitCodeFor(err) {
28
+ if (err instanceof UserCancelledError || err instanceof ConfirmCancelledError)
29
+ return 130;
30
+ if (err instanceof ConfigError)
31
+ return 3;
32
+ if (err instanceof ProviderError)
33
+ return 4;
34
+ if (err instanceof Error) {
35
+ // Project detection errors surface with a specific message pattern
36
+ if (err.message.includes('project detection') || err.message.includes('No package.json'))
37
+ return 5;
38
+ }
39
+ return 1;
40
+ }
41
+ /**
42
+ * Central error handler. Writes to stderr and exits with the correct code.
43
+ * Shows stack trace only when DEBUG env var is set (Requirement 19.8).
44
+ */
45
+ export function handleError(err) {
46
+ const debug = Boolean(process.env['DEBUG']);
47
+ const message = err instanceof Error ? err.message : String(err);
48
+ // Requirement 19.9: error messages go to stderr
49
+ process.stderr.write(pc.red('Error: ') + message + '\n');
50
+ if (debug && err instanceof Error && err.stack) {
51
+ process.stderr.write('\n' + err.stack + '\n');
52
+ }
53
+ else if (!debug) {
54
+ process.stderr.write(pc.dim('Run with DEBUG=1 for stack trace') + '\n');
55
+ }
56
+ process.exit(exitCodeFor(err));
57
+ }
58
+ const __dirname = dirname(fileURLToPath(import.meta.url));
59
+ const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
60
+ const VERSION = pkg.version;
61
+ // ---------------------------------------------------------------------------
62
+ // Main entry point
63
+ // ---------------------------------------------------------------------------
64
+ /**
65
+ * Parse, validate, and route to the appropriate command handler.
66
+ */
67
+ export function run() {
68
+ const args = parseCLI();
69
+ // Handle --help / --version before validation
70
+ if (args.command === '--help' || args.command === null) {
71
+ console.log(GLOBAL_USAGE + `\n${pc.bold('VERSION:')}\n ${VERSION}\n`);
72
+ process.exit(0);
73
+ }
74
+ if (args.command === '--version') {
75
+ console.log(VERSION);
76
+ process.exit(0);
77
+ }
78
+ validateArgs(args);
79
+ // First-run initialization: create ~/.aria dir, history.db, and default config
80
+ try {
81
+ initializeAriaHome();
82
+ }
83
+ catch {
84
+ // Non-fatal: continue even if initialization fails
85
+ }
86
+ switch (args.command) {
87
+ case 'doctor':
88
+ runDoctor({
89
+ format: args.format,
90
+ }).catch(handleError);
91
+ break;
92
+ case 'ask':
93
+ runAsk({
94
+ question: args.question,
95
+ session: args.session,
96
+ maxTokens: args.maxTokens,
97
+ quiet: args.quiet,
98
+ }).catch(handleError);
99
+ break;
100
+ case 'plan':
101
+ runPlan({
102
+ goal: args.goal,
103
+ session: args.session,
104
+ output: args.output,
105
+ quiet: args.quiet,
106
+ }).catch(handleError);
107
+ break;
108
+ case 'patch':
109
+ runPatch({
110
+ description: args.description,
111
+ dryRun: args.dryRun,
112
+ yes: args.assumeYes,
113
+ session: args.session,
114
+ quiet: args.quiet,
115
+ }).catch(handleError);
116
+ break;
117
+ case 'review':
118
+ runReview({
119
+ unstaged: args.unstaged,
120
+ branch: args.branch,
121
+ format: args.format,
122
+ quiet: args.quiet,
123
+ }).catch(handleError);
124
+ break;
125
+ case 'config':
126
+ runConfig({
127
+ subcommand: args.configSubcommand,
128
+ key: args.configKey,
129
+ value: args.configValue,
130
+ dryRun: args.dryRun,
131
+ yes: args.assumeYes,
132
+ quiet: args.quiet,
133
+ }).catch(handleError);
134
+ break;
135
+ case 'history':
136
+ runHistory({
137
+ limit: args.limit,
138
+ session: args.session,
139
+ tree: args.tree,
140
+ quiet: args.quiet,
141
+ }).catch(handleError);
142
+ break;
143
+ case 'explore':
144
+ runExplore({
145
+ depth: args.depth,
146
+ save: args.save,
147
+ quiet: args.quiet,
148
+ }).catch(handleError);
149
+ break;
150
+ default:
151
+ console.error(pc.red(`Unknown command: "${args.command}"`));
152
+ console.error(GLOBAL_USAGE);
153
+ process.exit(2);
154
+ }
155
+ }
156
+ run();
157
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}