polfan-server-js-client 0.4.3 → 0.4.4
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/.idea/workspace.xml +22 -16
- package/README.md +20 -0
- package/build/index.cjs.js +172 -51
- package/build/index.cjs.js.map +1 -1
- package/build/index.umd.js +1 -1
- package/build/index.umd.js.map +1 -1
- package/build/types/WebSocketChatClient.d.ts +34 -2
- package/package.json +1 -1
- package/src/WebSocketChatClient.ts +157 -26
- package/tests/websocket-reconnect.test.ts +408 -0
package/build/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","mappings":";;UAAA;UACA;;;;;WCDA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiBO,IAAMA,WAAW;EAAA,SAAAA,YAAA;IAAAC,eAAA,OAAAD,WAAA;IAAAE,eAAA,iBACY,IAAIC,GAAG,CAA8B,CAAC;IAAAD,eAAA,qBAClC,IAAIC,GAAG,CAA8B,CAAC;EAAA;EAAA,OAAAC,YAAA,CAAAJ,WAAA;IAAAK,GAAA;IAAAC,KAAA,EAI1E,SAAOC,EAAEA,CAACC,SAAiB,EAAEC,OAA0B,EAAQ;MAC3D,IAAI,CAACC,UAAU,CAAC,IAAI,CAACC,MAAM,EAAEH,SAAS,EAAEC,OAAO,CAAC;MAChD,OAAO,IAAI;IACf;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAID,SAAOM,IAAIA,CAACJ,SAAiB,EAAEC,OAA0B,EAAQ;MAC7D,IAAI,CAACC,UAAU,CAAC,IAAI,CAACG,UAAU,EAAEL,SAAS,EAAEC,OAAO,CAAC;MACpD,OAAO,IAAI;IACf;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAID,SAAOQ,GAAGA,CAACN,SAAiB,EAAEC,OAA0B,EAAQ;MAAA,IAAAM,gBAAA,EAAAC,iBAAA;MAC5D,IAAMC,KAAK,IAAAF,gBAAA,GAAG,IAAI,CAACJ,MAAM,CAACO,GAAG,CAACV,SAAS,CAAC,cAAAO,gBAAA,uBAA1BA,gBAAA,CAA4BI,OAAO,CAACV,OAAO,CAAC;MAC1D,IAAIQ,KAAK,KAAKG,SAAS,IAAIH,KAAK,GAAG,CAAC,EAAE;QAClC,OAAO,IAAI;MACf;MACA,CAAAD,iBAAA,OAAI,CAACL,MAAM,CAACO,GAAG,CAACV,SAAS,CAAC,cAAAQ,iBAAA,eAA1BA,iBAAA,CAA4BK,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC;MAC5C,OAAO,IAAI;IACf;EAAC;IAAAZ,GAAA;IAAAC,KAAA,EAID,SAAOgB,IAAIA,CAACd,SAAiB,EAAEe,KAAW,EAAQ;MAC9C,IAAI,CAACC,YAAY,CAAC,IAAI,CAACb,MAAM,EAAEH,SAAS,EAAEe,KAAK,CAAC;MAChD,IAAI,CAACC,YAAY,CAAC,IAAI,CAACX,UAAU,EAAEL,SAAS,EAAEe,KAAK,CAAC;MACpD,IAAI,CAACV,UAAU,UAAO,CAACL,SAAS,CAAC;MACjC,OAAO,IAAI;IACf;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAQI,UAAUA,CAACe,GAAgB,EAAEjB,SAAiB,EAAEC,OAA0B,EAAQ;MAAA,IAAAiB,QAAA;MACtF,IAAMC,QAAQ,IAAAD,QAAA,GAAGD,GAAG,CAACP,GAAG,CAACV,SAAS,CAAC,cAAAkB,QAAA,cAAAA,QAAA,GAAI,EAAE;MACzCC,QAAQ,CAACC,IAAI,CAACnB,OAAO,CAAC;MACtBgB,GAAG,CAACI,GAAG,CAACrB,SAAS,EAAEmB,QAAQ,CAAC;IAChC;EAAC;IAAAtB,GAAA;IAAAC,KAAA,EAED,SAAQkB,YAAYA,CAACC,GAAgB,EAAEjB,SAAiB,EAAEe,KAAc,EAAQ;MAAA,IAAAO,SAAA;MAC5E,CAAAA,SAAA,GAAAL,GAAG,CAACP,GAAG,CAACV,SAAS,CAAC,cAAAsB,SAAA,eAAlBA,SAAA,CAAoBC,OAAO,CAAC,UAAAC,QAAQ;QAAA,OAAIA,QAAQ,CAACT,KAAK,CAAC;MAAA,EAAC;IAC5D;EAAC;AAAA,I;;;;;;;;;;;;;;;;;;;;;;AC8DqC;AAUnC,IAAeU,kBAAkB,0BAAAC,YAAA;EAAA,SAAAD,mBAAA;IAAA,IAAAE,KAAA;IAAAlC,iCAAA,OAAAgC,kBAAA;IAAA,SAAAG,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAN,KAAA,GAAAO,UAAA,OAAAT,kBAAA,KAAAU,MAAA,CAAAJ,IAAA;IAAArC,iCAAA,CAAAiC,KAAA,sBACgC,IAAIhC,GAAG,CAAkC,CAAC;IAAAD,iCAAA,CAAAiC,KAAA,iBAC7E,CAAC;IAAA,OAAAA,KAAA;EAAA;EAAAS,SAAA,CAAAX,kBAAA,EAAAC,YAAA;EAAA,OAAA9B,8BAAA,CAAA6B,kBAAA;IAAA5B,GAAA;IAAAC,KAAA,EAKlC,SAAUuC,cAAcA,CAAWC,IAAY,EAAEC,IAAc,EAAsB;MACjF,OAAO;QACHD,IAAI,EAAJA,IAAI;QAAEC,IAAI,EAAJA,IAAI;QAAEC,GAAG,EAAE,CAAC,EAAE,IAAI,CAACC,WAAW,EAAEC,QAAQ,CAAC;MACnD,CAAC;IACL;EAAC;IAAA7C,GAAA;IAAAC,KAAA,EAED,SAAU6C,gCAAgCA,CACDC,QAA4C,EAC/B;MAAA,IAAAC,MAAA;MAClD,OAAO,IAAIC,OAAO,CAAC;QAAA,SAAAC,KAAA,GAAAlB,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAe,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;UAAJjB,IAAI,CAAAiB,KAAA,IAAAnB,SAAA,CAAAmB,KAAA;QAAA;QAAA,OACtBH,MAAI,CAACI,gBAAgB,CAAC5B,GAAG,CAACuB,QAAQ,CAACJ,GAAG,EAAYT,IAAI,CAAC;MAAA,EAAC;IACjE;EAAC;IAAAlC,GAAA;IAAAC,KAAA,EAED,SAAUoD,sBAAsBA,CAACN,QAAkB,EAAQ;MACvD,IAAI,CAAC,IAAI,CAACK,gBAAgB,CAACE,GAAG,CAACP,QAAQ,CAACJ,GAAG,CAAC,EAAE;QAC1C;MACJ;MACA,IAAMY,OAAO,GAAGR,QAAQ,CAACN,IAAI,KAAK,OAAO;MACzC,IAAI,CAACW,gBAAgB,CAACvC,GAAG,CAACkC,QAAQ,CAACJ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvCD,IAAI,EAAEa,OAAO,GAAG,IAAI,GAAGR,QAAQ,CAACL,IAAI;QACpCc,KAAK,EAAED,OAAO,GAAGR,QAAQ,CAACL,IAAI,GAAG;MACrC,CAAuB,CAAC;MACxB,IAAI,CAACU,gBAAgB,UAAO,CAACL,QAAQ,CAACJ,GAAG,CAAC;IAC9C;EAAC;IAAA3C,GAAA;IAAAC,KAAA,EAED,SAAUwD,uBAAuBA,CAACV,QAAkB,EAAES,KAAU,EAAQ;MACpE,IAAI,CAAC,IAAI,CAACJ,gBAAgB,CAACE,GAAG,CAACP,QAAQ,CAACJ,GAAG,CAAC,EAAE;QAC1C;MACJ;MACA,IAAI,CAACS,gBAAgB,CAACvC,GAAG,CAACkC,QAAQ,CAACJ,GAAG,CAAC,CAAC,CAAC,CAAC,CAACa,KAAK,CAAC;MACjD,IAAI,CAACJ,gBAAgB,UAAO,CAACL,QAAQ,CAACJ,GAAG,CAAC;IAC9C;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA3C,GAAA;IAAAC,KAAA,EAKA,SAAUyD,qBAAqBA,CAACF,KAAU,EAAQ;MAC9C,IAAI,CAAE,IAAI,CAACJ,gBAAgB,CAACO,IAAI,EAAE;QAC9B;MACJ;MAEA,IAAMC,OAAO,GAAGzB,KAAK,CAAC0B,IAAI,CAAC,IAAI,CAACT,gBAAgB,CAACU,MAAM,CAAC,CAAC,CAAC;MAC1D,IAAI,CAACV,gBAAgB,CAACW,KAAK,CAAC,CAAC;MAE7B,SAAAC,EAAA,MAAAC,QAAA,GAAyBL,OAAO,EAAAI,EAAA,GAAAC,QAAA,CAAAhC,MAAA,EAAA+B,EAAA,IAAE;QAA7B,IAAAE,WAAA,GAAAC,cAAA,CAAAF,QAAA,CAAAD,EAAA;UAASI,MAAM,GAAAF,WAAA;QAChBE,MAAM,CAACZ,KAAK,CAAC;MACjB;IACJ;EAAC;AAAA,EAxDyF7D,WAAW;;AA+DxG;AACD;AACA;;AAsEA;AACA;AACA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtR6E;AAEtE,IAAM0E,iBAAiB;EAG1B,SAAAA,kBAAA,EAA6D;IAAA,IAA1CC,KAAmC,GAAAtC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAjB,SAAA,GAAAiB,SAAA,MAAG,EAAE;IAAApC,sCAAA,OAAAyE,iBAAA;IAAAxE,sCAAA,iBAFrB,IAAIC,GAAG,CAAC,CAAC;IAG3C,IAAI,CAAC0B,GAAG,CAAA+C,KAAA,CAAR,IAAI,EAAAC,kBAAA,CAAQF,KAAK,EAAC;EACtB;EAAC,OAAAvE,mCAAA,CAAAsE,iBAAA;IAAArE,GAAA;IAAAa,GAAA,EAED,SAAAA,IAAA,EAAsC;MAClC,OAAO,IAAI,CAAC4D,MAAM;IACtB;EAAC;IAAAzE,GAAA;IAAAa,GAAA,EAED,SAAAA,IAAA,EAA4B;MACxB,OAAO,IAAI,CAAC4D,MAAM,CAACd,IAAI;IAC3B;EAAC;IAAA3D,GAAA;IAAAC,KAAA,EAED,SAAOuB,GAAGA,CAAA,EAAmC;MAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAA/BqC,KAAK,OAAAnC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAALkC,KAAK,CAAAlC,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACf,SAAA4B,EAAA,MAAAS,MAAA,GAAmBH,KAAK,EAAAN,EAAA,GAAAS,MAAA,CAAAxC,MAAA,EAAA+B,EAAA,IAAE;QAArB,IAAMU,IAAI,GAAAD,MAAA,CAAAT,EAAA;QACX,IAAI,CAACS,MAAM,CAACjD,GAAG,CAACkD,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC;MACrC;IACJ;EAAC;IAAA1E,GAAA;IAAAC,KAAA,EAED,SAAOY,GAAGA,CAAC8D,EAAQ,EAAsB;MACrC,OAAO,IAAI,CAACL,KAAK,CAACzD,GAAG,CAAC8D,EAAE,CAAC;IAC7B;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAOqD,GAAGA,CAACqB,EAAQ,EAAW;MAC1B,OAAO,IAAI,CAACL,KAAK,CAAChB,GAAG,CAACqB,EAAE,CAAC;IAC7B;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAO2E,OAAMA,CAAA,EAAuB;MAAA,SAAA1B,KAAA,GAAAlB,SAAA,CAAAC,MAAA,EAAnB4C,GAAG,OAAA1C,KAAA,CAAAe,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAH0B,GAAG,CAAA1B,KAAA,IAAAnB,SAAA,CAAAmB,KAAA;MAAA;MAChB,SAAA2B,GAAA,MAAAC,IAAA,GAAiBF,GAAG,EAAAC,GAAA,GAAAC,IAAA,CAAA9C,MAAA,EAAA6C,GAAA,IAAE;QAAjB,IAAMH,GAAE,GAAAI,IAAA,CAAAD,GAAA;QACT,IAAI,CAACR,KAAK,UAAO,CAACK,GAAE,CAAC;MACzB;IACJ;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAO+E,SAASA,CAAA,EAAS;MACrB,IAAI,CAACV,KAAK,CAACP,KAAK,CAAC,CAAC;IACtB;EAAC;IAAA/D,GAAA;IAAAC,KAAA,EAED,SAAOgF,MAAMA,CAACC,KAAmB,EAAEC,WAAgB,EAA6D;MAAA,IAA3DC,KAAa,GAAApD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAjB,SAAA,GAAAiB,SAAA,MAAGqD,QAAQ;MACzE,IAAMC,MAAM,GAAG,IAAIjB,iBAAiB,CAAe,CAAC;MAAC,IAAAkB,SAAA,GAAAC,0BAAA,CAC1B,IAAI,CAAClB,KAAK,CAACmB,OAAO,CAAC,CAAC;QAAAC,KAAA;MAAA;QAA/C,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAiD;UAAA,IAAAC,WAAA,GAAA3B,qCAAA,CAAAuB,KAAA,CAAAzF,KAAA;YAArCD,GAAG,GAAA8F,WAAA;YAAE7F,KAAK,GAAA6F,WAAA;UAClB,IAAIR,MAAM,CAACrD,MAAM,IAAImD,KAAK,EAAE;YACxB;UACJ;UACA,IAAInF,KAAK,CAACiF,KAAK,CAAC,KAAKC,WAAW,EAAE;YAC9BG,MAAM,CAAC9D,GAAG,CAAC,CAACxB,GAAG,EAAEC,KAAK,CAAC,CAAC;UAC5B;QACJ;MAAC,SAAA8F,GAAA;QAAAR,SAAA,CAAAS,CAAA,CAAAD,GAAA;MAAA;QAAAR,SAAA,CAAAU,CAAA;MAAA;MACD,OAAOX,MAAM;IACjB;EAAC;IAAAtF,GAAA;IAAAC,KAAA,EAED,SAAOiG,YAAYA,CAAA,EAAoC;MACnD,IAAMC,IAAI,GAAG,IAAI9B,iBAAiB,CAAe,CAAC;MAClD8B,IAAI,CAAC1B,MAAM,GAAG,IAAI,CAACA,MAAM;MACzB,OAAO0B,IAAI;IACf;EAAC;AAAA;AAGE,IAAMC,uBAAuB;EAGhC,SAAAA,wBACoBzB,EAAgC,EAElD;IAAA,IADEL,KAAU,GAAAtC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAjB,SAAA,GAAAiB,SAAA,MAAG,EAAE;IAAApC,sCAAA,OAAAwG,uBAAA;IAAAvG,sCAAA;IAAA,KADC8E,EAAgC,GAAhCA,EAAgC;IAGhD,IAAI,CAACF,MAAM,GAAG,IAAIJ,iBAAiB,CAAY,CAAC;IAChD,IAAI,CAAC7C,GAAG,CAAA+C,KAAA,CAAR,IAAI,EAAAC,kBAAA,CAAQF,KAAK,EAAC;EACtB;EAAC,OAAAvE,mCAAA,CAAAqG,uBAAA;IAAApG,GAAA;IAAAa,GAAA,EAED,SAAAA,IAAA,EAAwB;MACpB,OAAOsB,KAAK,CAAC0B,IAAI,CAAC,IAAI,CAACY,MAAM,CAACH,KAAK,CAACR,MAAM,CAAC,CAAC,CAAC;IACjD;EAAC;IAAA9D,GAAA;IAAAa,GAAA,EAED,SAAAA,IAAA,EAA4B;MACxB,OAAO,IAAI,CAAC4D,MAAM,CAACxC,MAAM;IAC7B;EAAC;IAAAjC,GAAA;IAAAC,KAAA,EAED,SAAOuB,GAAGA,CAAA,EAAsB;MAAA,IAAA6E,YAAA;QAAAvE,KAAA;MAAA,SAAAwE,KAAA,GAAAtE,SAAA,CAAAC,MAAA,EAAlBqC,KAAK,OAAAnC,KAAA,CAAAmE,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAALjC,KAAK,CAAAiC,KAAA,IAAAvE,SAAA,CAAAuE,KAAA;MAAA;MACf,CAAAF,YAAA,OAAI,CAAC5B,MAAM,EAACjD,GAAG,CAAA+C,KAAA,CAAA8B,YAAA,EAAA7B,kBAAA,CAAKF,KAAK,CAAClD,GAAG,CAAC,UAAAsD,IAAI;QAAA,OAAI,CAAC5C,KAAI,CAAC0E,KAAK,CAAC9B,IAAI,CAAC,EAAEA,IAAI,CAAC;MAAA,CAAe,CAAC,CAAC,CAAC;IACpF;EAAC;IAAA1E,GAAA;IAAAC,KAAA,EAED,SAAOY,GAAGA,CAAC8D,EAAO,EAAiB;MAC/B,OAAO,IAAI,CAACF,MAAM,CAAC5D,GAAG,CAAC8D,EAAE,CAAC;IAC9B;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAOwG,KAAKA,CAAC7F,KAAa,EAAiB;MACvC,OAAO,IAAI,CAAC0D,KAAK,CAAC1D,KAAK,CAAC;IAC5B;EAAC;IAAAZ,GAAA;IAAAC,KAAA,EAED,SAAOqD,GAAGA,CAACqB,EAAO,EAAW;MACzB,OAAO,IAAI,CAACF,MAAM,CAACnB,GAAG,CAACqB,EAAE,CAAC;IAC9B;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAO2E,OAAMA,CAAA,EAAsB;MAAA,IAAA8B,aAAA;MAC/B,CAAAA,aAAA,OAAI,CAACjC,MAAM,WAAO,CAAAF,KAAA,CAAAmC,aAAA,EAAA1E,SAAO,CAAC;IAC9B;EAAC;IAAAhC,GAAA;IAAAC,KAAA,EAED,SAAO+E,SAASA,CAAA,EAAS;MACrB,IAAI,CAACP,MAAM,CAACO,SAAS,CAAC,CAAC;IAC3B;EAAC;IAAAhF,GAAA;IAAAC,KAAA,EAED,SAAOgF,MAAMA,CAACC,KAAc,EAAEC,WAAgB,EAAoD;MAAA,IAAlDC,KAAa,GAAApD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAjB,SAAA,GAAAiB,SAAA,MAAG,IAAI;MAChE,IAAMsD,MAAM,GAAG,IAAIc,uBAAuB,CAAI,IAAI,CAACzB,EAAE,CAAC;MAAC,IAAAgC,UAAA,GAAAnB,0BAAA,CACnC,IAAI,CAAClB,KAAK;QAAAsC,MAAA;MAAA;QAA9B,KAAAD,UAAA,CAAAhB,CAAA,MAAAiB,MAAA,GAAAD,UAAA,CAAAf,CAAA,IAAAC,IAAA,GAAgC;UAAA,IAArB5F,KAAK,GAAA2G,MAAA,CAAA3G,KAAA;UACZ,IAAImF,KAAK,IAAIE,MAAM,CAACrD,MAAM,KAAKmD,KAAK,EAAE;YAClC;UACJ;UACA,IAAInF,KAAK,CAACiF,KAAK,CAAC,KAAKC,WAAW,EAAE;YAC9BG,MAAM,CAAC9D,GAAG,CAACvB,KAAK,CAAC;UACrB;QACJ;MAAC,SAAA8F,GAAA;QAAAY,UAAA,CAAAX,CAAA,CAAAD,GAAA;MAAA;QAAAY,UAAA,CAAAV,CAAA;MAAA;MACD,OAAOX,MAAM;IACjB;EAAC;IAAAtF,GAAA;IAAAC,KAAA,EAED,SAAOiG,YAAYA,CAAA,EAA+B;MAC9C,IAAMC,IAAI,GAAG,IAAIC,uBAAuB,CAAI,IAAI,CAACzB,EAAE,CAAC;MACpDwB,IAAI,CAAC1B,MAAM,GAAG,IAAI,CAACA,MAAM;MACzB,OAAO0B,IAAI;IACf;EAAC;IAAAnG,GAAA;IAAAC,KAAA,EAED,SAAUuG,KAAKA,CAAC9B,IAAO,EAAO;MAC1B,OAAO,OAAO,IAAI,CAACC,EAAE,KAAK,UAAU,GAAG,IAAI,CAACA,EAAE,CAACD,IAAI,CAAC,GAAGA,IAAI,CAAC,IAAI,CAACC,EAAE,CAAC;IACxE;EAAC;AAAA;AAOE,IAAMkC,2BAA2B,0BAAAC,mBAAA;EAQpC,SAAAD,4BAAA,EAA6D;IAAA,IAAAE,MAAA;IAAA,IAAA/D,MAAA;IAAA,IAA1CsB,KAAmC,GAAAtC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAjB,SAAA,GAAAiB,SAAA,MAAG,EAAE;IAAApC,sCAAA,OAAAiH,2BAAA;IACvD7D,MAAA,GAAAX,iCAAA,OAAAwE,2BAAA;IAAQhH,sCAAA,CAAAmD,MAAA;IACRA,MAAA,CAAKgE,WAAW,GAAG,IAAIrH,WAAW,CAAY,CAAC;IAC/C,CAAAoH,MAAA,GAAA/D,MAAA,EAAKxB,GAAG,CAAA+C,KAAA,CAAAwC,MAAA,EAAAvC,kBAAA,CAAIF,KAAK,EAAC;IAAC,OAAAtB,MAAA;EACvB;EAACT,gCAAA,CAAAsE,2BAAA,EAAAC,mBAAA;EAAA,OAAA/G,mCAAA,CAAA8G,2BAAA;IAAA7G,GAAA;IAAAC,KAAA,EAED,SAAOuB,GAAGA,CAAA,EAA6B;MAAA,SAAAyF,KAAA,GAAAjF,SAAA,CAAAC,MAAA,EAAzBqC,KAAK,OAAAnC,KAAA,CAAA8E,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAL5C,KAAK,CAAA4C,KAAA,IAAAlF,SAAA,CAAAkF,KAAA;MAAA;MACf,IAAI5C,KAAK,CAACrC,MAAM,EAAE;QACdkF,aAAA,CAAAN,2BAAA,kBAAavC,KAAK;QAClB,IAAI,CAAC0C,WAAW,CAAC/F,IAAI,CAAC,QAAQ,EAAE;UAAEmG,QAAQ,EAAE9C,KAAK,CAAClD,GAAG,CAAC,UAAAsD,IAAI;YAAA,OAAIA,IAAI,CAAC,CAAC,CAAC;UAAA;QAAE,CAAC,CAAC;MAC7E;IACJ;EAAC;IAAA1E,GAAA;IAAAC,KAAA,EAED,SAAO2E,OAAMA,CAAA,EAAiB;MAAA,SAAAyC,KAAA,GAAArF,SAAA,CAAAC,MAAA,EAAb4C,GAAG,OAAA1C,KAAA,CAAAkF,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAHzC,GAAG,CAAAyC,KAAA,IAAAtF,SAAA,CAAAsF,KAAA;MAAA;MAChB,IAAIzC,GAAG,CAAC5C,MAAM,EAAE;QACZkF,aAAA,CAAAN,2BAAA,qBAAgBhC,GAAG;QACnB,IAAI,CAACmC,WAAW,CAAC/F,IAAI,CAAC,QAAQ,EAAE;UAAEsG,YAAY,EAAE1C;QAAI,CAAC,CAAC;MAC1D;IACJ;EAAC;IAAA7E,GAAA;IAAAC,KAAA,EAED,SAAO+E,SAASA,CAAA,EAAG;MACf,IAAI,IAAI,CAAC/C,MAAM,EAAE;QACb,IAAM4C,GAAG,GAAG1C,KAAK,CAAC0B,IAAI,CAAC,IAAI,CAACY,MAAM,CAAC+C,IAAI,CAAC,CAAC,CAAC;QAC1CL,aAAA,CAAAN,2BAAA;QACA,IAAI,CAACG,WAAW,CAAC/F,IAAI,CAAC,QAAQ,EAAE;UAAEsG,YAAY,EAAEpF,KAAK,CAAC0B,IAAI,CAACgB,GAAG;QAAE,CAAC,CAAC;MACtE;IACJ;EAAC;IAAA7E,GAAA;IAAAC,KAAA,EAED,SAAOiG,YAAYA,CAAA,EAAyD;MACxE,IAAMC,IAAI,GAAG,IAAIU,2BAA2B,CAA0B,CAAC;MACvEV,IAAI,CAACa,WAAW,GAAG,IAAI,CAACA,WAAW;MACnCb,IAAI,CAAC1B,MAAM,GAAG,IAAI,CAACA,MAAM;MACzB,OAAO0B,IAAI;IACf;EAAC;IAAAnG,GAAA;IAAAC,KAAA,EAED,SAAOC,EAAEA,CAAqCC,SAAY,EAAEC,OAAmC,EAAQ;MACnG,IAAI,CAAC4G,WAAW,CAAC9G,EAAE,CAACC,SAAS,EAAEC,OAAO,CAAC;MACvC,OAAO,IAAI;IACf;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAOM,IAAIA,CAAqCJ,SAAY,EAAEC,OAAmC,EAAQ;MACrG,IAAI,CAAC4G,WAAW,CAACzG,IAAI,CAACJ,SAAS,EAAEC,OAAO,CAAC;MACzC,OAAO,IAAI;IACf;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAOQ,GAAGA,CAAqCN,SAAY,EAAEC,OAAmC,EAAQ;MACpG,IAAI,CAAC4G,WAAW,CAACvG,GAAG,CAACN,SAAS,EAAEC,OAAO,CAAC;MACxC,OAAO,IAAI;IACf;EAAC;AAAA,EApDKiE,iBAAiB;AAuDpB,IAAMoD,iCAAiC,0BAAAC,qBAAA;EAM1C,SAAAD,kCACI9C,EAA2C,EAE7C;IAAA,IAAAgD,MAAA;IAAA,IAAAC,MAAA;IAAA,IADEtD,KAAc,GAAAtC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAjB,SAAA,GAAAiB,SAAA,MAAG,EAAE;IAAApC,sCAAA,OAAA6H,iCAAA;IAEnBG,MAAA,GAAAvF,iCAAA,OAAAoF,iCAAA,GAAM9C,EAAE;IAAE9E,sCAAA,CAAA+H,MAAA;IACVA,MAAA,CAAKZ,WAAW,GAAG,IAAIrH,WAAW,CAAY,CAAC;IAC/C,CAAAgI,MAAA,GAAAC,MAAA,EAAKpG,GAAG,CAAA+C,KAAA,CAAAoD,MAAA,EAAAnD,kBAAA,CAAIF,KAAK,EAAC;IAAC,OAAAsD,MAAA;EACvB;EAACrF,gCAAA,CAAAkF,iCAAA,EAAAC,qBAAA;EAAA,OAAA3H,mCAAA,CAAA0H,iCAAA;IAAAzH,GAAA;IAAAC,KAAA,EAED,SAAOuB,GAAGA,CAAA,EAAoB;MAAA,IAAAqG,MAAA;MAAA,SAAAC,KAAA,GAAA9F,SAAA,CAAAC,MAAA,EAAhBqC,KAAK,OAAAnC,KAAA,CAAA2F,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAALzD,KAAK,CAAAyD,KAAA,IAAA/F,SAAA,CAAA+F,KAAA;MAAA;MACf,IAAIzD,KAAK,CAACrC,MAAM,EAAE;QACdkF,aAAA,CAAAM,iCAAA,kBAAanD,KAAK;QAClB,IAAI,CAAC0C,WAAW,CAAC/F,IAAI,CAAC,QAAQ,EAAE;UAAEmG,QAAQ,EAAE9C,KAAK,CAAClD,GAAG,CAAC,UAAAsD,IAAI;YAAA,OAAImD,MAAI,CAACrB,KAAK,CAAC9B,IAAI,CAAC;UAAA;QAAE,CAAC,CAAC;MACtF;IACJ;EAAC;IAAA1E,GAAA;IAAAC,KAAA,EAED,SAAO2E,OAAMA,CAAA,EAAmB;MAAA,SAAAoD,KAAA,GAAAhG,SAAA,CAAAC,MAAA,EAAf4C,GAAG,OAAA1C,KAAA,CAAA6F,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAHpD,GAAG,CAAAoD,KAAA,IAAAjG,SAAA,CAAAiG,KAAA;MAAA;MAChB,IAAIpD,GAAG,CAAC5C,MAAM,EAAE;QACZkF,aAAA,CAAAM,iCAAA,qBAAgB5C,GAAG;QACnB,IAAI,CAACmC,WAAW,CAAC/F,IAAI,CAAC,QAAQ,EAAE;UAAEsG,YAAY,EAAE1C;QAAI,CAAC,CAAC;MAC1D;IACJ;EAAC;IAAA7E,GAAA;IAAAC,KAAA,EAED,SAAO+E,SAASA,CAAA,EAAG;MAAA,IAAAkD,MAAA;MACf,IAAI,IAAI,CAACjG,MAAM,EAAE;QACb,IAAM4C,GAAG,GAAG,IAAI,CAACP,KAAK,CAAClD,GAAG,CAAC,UAAAsD,IAAI;UAAA,OAAIwD,MAAI,CAAC1B,KAAK,CAAC9B,IAAI,CAAC;QAAA,EAAC;QACpDyC,aAAA,CAAAM,iCAAA;QACA,IAAI,CAACT,WAAW,CAAC/F,IAAI,CAAC,QAAQ,EAAE;UAAEsG,YAAY,EAAE1C;QAAI,CAAC,CAAC;MAC1D;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAA7E,GAAA;IAAAC,KAAA,EAOA,SAAOkI,SAASA,CAAA,EAAoB;MAAA,IAAAC,MAAA;QAAAC,aAAA;MAAA,SAAAC,KAAA,GAAAtG,SAAA,CAAAC,MAAA,EAAhBqC,KAAK,OAAAnC,KAAA,CAAAmG,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAALjE,KAAK,CAAAiE,KAAA,IAAAvG,SAAA,CAAAuG,KAAA;MAAA;MACrB,IAAMC,WAAW,GAAG,IAAIC,GAAG,CAACnE,KAAK,CAAClD,GAAG,CAAC,UAAAsD,IAAI;QAAA,OAAI0D,MAAI,CAAC5B,KAAK,CAAC9B,IAAI,CAAC;MAAA,EAAC,CAAC;MAChE,IAAM6C,YAAsB,GAAG,EAAE;MAAC,IAAAmB,UAAA,GAAAlD,0BAAA,CAEX,IAAI,CAAClB,KAAK;QAAAqE,MAAA;MAAA;QAAjC,KAAAD,UAAA,CAAA/C,CAAA,MAAAgD,MAAA,GAAAD,UAAA,CAAA9C,CAAA,IAAAC,IAAA,GAAmC;UAAA,IAAxB+C,QAAQ,GAAAD,MAAA,CAAA1I,KAAA;UACf,IAAM0E,IAAE,GAAG,IAAI,CAAC6B,KAAK,CAACoC,QAAQ,CAAC;UAC/B,IAAI,CAAEJ,WAAW,CAAClF,GAAG,CAACqB,IAAE,CAAC,EAAE;YACvB4C,YAAY,CAAChG,IAAI,CAACoD,IAAE,CAAC;UACzB;QACJ;MAAC,SAAAoB,GAAA;QAAA2C,UAAA,CAAA1C,CAAA,CAAAD,GAAA;MAAA;QAAA2C,UAAA,CAAAzC,CAAA;MAAA;MAED,IAAI,CAAE3B,KAAK,CAACrC,MAAM,IAAI,CAAEsF,YAAY,CAACtF,MAAM,EAAE;QACzC;MACJ;MAEA,CAAAoG,aAAA,OAAI,CAAC5D,MAAM,WAAO,CAAAF,KAAA,CAAA8D,aAAA,EAAId,YAAY,CAAC;MACnCJ,aAAA,CAAAM,iCAAA,kBAAanD,KAAK;MAElB,IAAI,CAAC0C,WAAW,CAAC/F,IAAI,CAAC,QAAQ,EAAE;QAC5BmG,QAAQ,EAAE9C,KAAK,CAAClD,GAAG,CAAC,UAAAsD,IAAI;UAAA,OAAI0D,MAAI,CAAC5B,KAAK,CAAC9B,IAAI,CAAC;QAAA,EAAC;QAC7C6C,YAAY,EAAZA;MACJ,CAAC,CAAC;IACN;EAAC;IAAAvH,GAAA;IAAAC,KAAA,EAED,SAAOiG,YAAYA,CAAA,EAAwD;MACvE,IAAMC,IAAI,GAAG,IAAIsB,iCAAiC,CAAmB,IAAI,CAAC9C,EAAE,CAAC;MAC7EwB,IAAI,CAACa,WAAW,GAAG,IAAI,CAACA,WAAW;MACnCb,IAAI,CAAC1B,MAAM,GAAG,IAAI,CAACA,MAAM;MACzB,OAAO0B,IAAI;IACf;EAAC;IAAAnG,GAAA;IAAAC,KAAA,EAED,SAAOC,EAAEA,CACLC,SAAoB,EACpBC,OAA2C,EACvC;MACJ,IAAI,CAAC4G,WAAW,CAAC9G,EAAE,CAACC,SAAS,EAAEC,OAAO,CAAC;MACvC,OAAO,IAAI;IACf;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAOM,IAAIA,CACPJ,SAAoB,EACpBC,OAA2C,EACvC;MACJ,IAAI,CAAC4G,WAAW,CAACzG,IAAI,CAACJ,SAAS,EAAEC,OAAO,CAAC;MACzC,OAAO,IAAI;IACf;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAED,SAAOQ,GAAGA,CACNN,SAAoB,EACpBC,OAA2C,EACvC;MACJ,IAAI,CAAC4G,WAAW,CAACvG,GAAG,CAACN,SAAS,EAAEC,OAAO,CAAC;MACxC,OAAO,IAAI;IACf;EAAC;AAAA,EA9FKgG,uBAAuB,E;;;;;;;;;AClM4B;AAEtD,IAAMyC,YAAY,gBAAA9I,sBAAA,CAIrB,SAAA8I,aAAA,EAAqB;EAAA,IAAA/G,KAAA;EAAAlC,yBAAA,OAAAiJ,YAAA;EAAAhJ,yBAAA;EAAAA,yBAAA;EACjB,IAAI,CAACiJ,OAAO,GAAG,IAAI7F,OAAO,CAAO,UAAC8F,OAAO;IAAA,OAAKjH,KAAI,CAACiH,OAAO,GAAGA,OAAO;EAAA,EAAC;AACzE,CAAC;AAGE,IAAMC,eAAe;EAAA,SAAAA,gBAAA;IAAApJ,yBAAA,OAAAoJ,eAAA;IAAAnJ,yBAAA,mBACL,IAAIwE,iBAAiB,CAAuB,CAAC;EAAA;EAAA,OAAAtE,sBAAA,CAAAiJ,eAAA;IAAAhJ,GAAA;IAAAC,KAAA,EAEhE,SAAOgJ,QAAQA,CAAUH,OAAmB,EAAE9I,GAAW,EAAQ;MAAA,IAAAgD,MAAA;MAC7D,IAAI,CAACkG,QAAQ,CAAC1H,GAAG,CAAC,CAACxB,GAAG,EAAE8I,OAAO,CAAC,CAAC;MAEjCA,OAAO,SAAM,CAAC,YAAM;QAChB,IAAI9F,MAAI,CAACkG,QAAQ,CAACrI,GAAG,CAACb,GAAG,CAAC,KAAK8I,OAAO,EAAE;UACpC9F,MAAI,CAACkG,QAAQ,UAAO,CAAClJ,GAAG,CAAC;QAC7B;MACJ,CAAC,CAAC;IACN;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAOkJ,kBAAkBA,CAACC,EAAsB,EAAEpJ,GAAW,EAAQ;MACjE,IAAI,CAACiJ,QAAQ,CAACG,EAAE,CAAC,CAAC,EAAEpJ,GAAG,CAAC;IAC5B;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAOY,GAAGA,CAAUb,GAAW,EAA0B;MACrD,OAAO,IAAI,CAACkJ,QAAQ,CAACrI,GAAG,CAACb,GAAG,CAAC;IACjC;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAOqD,GAAGA,CAACtD,GAAW,EAAW;MAC7B,OAAO,IAAI,CAACkJ,QAAQ,CAAC5F,GAAG,CAACtD,GAAG,CAAC;IACjC;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAOoJ,QAAQA,CAACrJ,GAAW,EAAW;MAClC,OAAO,CAAE,IAAI,CAACsD,GAAG,CAACtD,GAAG,CAAC;IAC1B;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAED,SAAOqJ,MAAMA,CAAA,EAA0B;MAAA,IAAAC,cAAA;MACnC,CAAAA,cAAA,OAAI,CAACL,QAAQ,WAAO,CAAA3E,KAAA,CAAAgF,cAAA,EAAAvH,SAAQ,CAAC;IACjC;EAAC;IAAAhC,GAAA;IAAAC,KAAA,EAED,SAAOuJ,SAASA,CAAA,EAAS;MACrB,IAAI,CAACN,QAAQ,CAAClE,SAAS,CAAC,CAAC;IAC7B;EAAC;AAAA,I;;;;;;;;;;;;;;;0BC7CL,uKAAAgB,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,mBAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,mBAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,mBAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,mBAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,mBAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,mBAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,mBAAA,CAAAH,CAAA,GAAAG,mBAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,mBAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,mBAAA,CAAAH,CAAA,8DAAAoB,YAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,oBAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,mBAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,mBAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,mBAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,mBAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,kBAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,kBAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,kBAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,iCAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,mCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,gCAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,8BAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,mCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,mCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAA3D,4BAAAA,CAAAoH,CAAA,EAAAI,CAAA,EAAA7D,CAAA,WAAA6D,CAAA,GAAA0C,iCAAA,CAAA1C,CAAA,GAAA2C,4CAAA,CAAA/C,CAAA,EAAAgD,2CAAA,KAAAC,OAAA,CAAAC,SAAA,CAAA9C,CAAA,EAAA7D,CAAA,QAAAuG,iCAAA,CAAA9C,CAAA,EAAAmD,WAAA,IAAA/C,CAAA,CAAAtF,KAAA,CAAAkF,CAAA,EAAAzD,CAAA;AAAA,SAAAwG,4CAAAA,CAAA/C,CAAA,EAAAzD,CAAA,QAAAA,CAAA,iBAAA6G,yBAAA,CAAA7G,CAAA,0BAAAA,CAAA,UAAAA,CAAA,iBAAAA,CAAA,YAAA+E,SAAA,qEAAA+B,wCAAA,CAAArD,CAAA;AAAA,SAAAqD,wCAAAA,CAAA9G,CAAA,mBAAAA,CAAA,YAAA+G,cAAA,sEAAA/G,CAAA;AAAA,SAAAyG,2CAAAA,CAAA,cAAAhD,CAAA,IAAAuD,OAAA,CAAA/C,SAAA,CAAAgD,OAAA,CAAAjC,IAAA,CAAA0B,OAAA,CAAAC,SAAA,CAAAK,OAAA,iCAAAvD,CAAA,aAAAgD,2CAAA,YAAAA,0BAAA,aAAAhD,CAAA;AAAA,SAAA8C,iCAAAA,CAAA9C,CAAA,WAAA8C,iCAAA,GAAAnC,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAe,cAAA,CAAAN,IAAA,eAAApB,CAAA,WAAAA,CAAA,CAAA4B,SAAA,IAAAjB,MAAA,CAAAe,cAAA,CAAA1B,CAAA,MAAA8C,iCAAA,CAAA9C,CAAA;AAAA,SAAAlH,2BAAAA,CAAAkH,CAAA,EAAAzD,CAAA,6BAAAA,CAAA,aAAAA,CAAA,YAAA+E,SAAA,wDAAAtB,CAAA,CAAAQ,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAArE,CAAA,IAAAA,CAAA,CAAAiE,SAAA,IAAA2C,WAAA,IAAA3M,KAAA,EAAAwJ,CAAA,EAAAsC,QAAA,MAAAD,YAAA,WAAA1B,MAAA,CAAAsB,cAAA,CAAAjC,CAAA,iBAAAsC,QAAA,SAAA/F,CAAA,IAAAkH,iCAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAkH,iCAAAA,CAAAzD,CAAA,EAAAzD,CAAA,WAAAkH,iCAAA,GAAA9C,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAAP,IAAA,eAAApB,CAAA,EAAAzD,CAAA,WAAAyD,CAAA,CAAA4B,SAAA,GAAArF,CAAA,EAAAyD,CAAA,KAAAyD,iCAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAnG,iCAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,gCAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,gCAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,8BAAA,CAAA1D,CAAA,gCAAAoD,yBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,8BAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,yBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,yBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAWiG;AAE1F,IAAK8D,WAAW,0BAAXA,WAAW;EACnB;AACJ;AACA;EAHYA,WAAW,CAAXA,WAAW;EAMnB;AACJ;AACA;EARYA,WAAW,CAAXA,WAAW;EAWnB;AACJ;AACA;AACA;EAdYA,WAAW,CAAXA,WAAW;EAiBnB;AACJ;AACA;AACA;EApBYA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAwBhB,IAAeC,2BAA2B,0BAAAC,qBAAA;EAAA,SAAAD,4BAAA;IAAA,IAAA1L,KAAA;IAAAlC,iCAAA,OAAA4N,2BAAA;IAAA,SAAAzL,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAN,KAAA,GAAAO,4BAAA,OAAAmL,2BAAA,KAAAlL,MAAA,CAAAJ,IAAA;IAAArC,iCAAA,CAAAiC,KAAA,mBAmBzC;MACA4L,OAAO,EAAEH,WAAW,CAACI,IAAI;MACzBC,OAAO,EAAE7M,SAAS;MAClBqE,KAAK,EAAE,IAAI;MACXyI,WAAW,EAAE,CAAC;MACdC,UAAU,EAAE,EAAE;MACdC,cAAc,EAAE,CAAC;MACjBC,QAAQ,EAAE;IACd,CAAC;IAAA,OAAAlM,KAAA;EAAA;EAAAS,2BAAA,CAAAiL,2BAAA,EAAAC,qBAAA;EAAA,OAAA1N,8BAAA,CAAAyN,2BAAA;IAAAxN,GAAA;IAAAa,GAAA;IAvBD;AACJ;AACA;IACI,SAAAA,IAAA,EAAgC;MAC5B,OAAO,IAAI,CAACoN,aAAa,CAACP,OAAO;IACrC;EAAC;IAAA1N,GAAA;IAAAa,GAAA;IAoBD;AACJ;AACA;IACI,SAAAA,IAAA,EAAgC;MAC5B,OAAO,IAAI,CAACoN,aAAa,CAACH,UAAU;IACxC;;IAEA;AACJ;AACA,OAFI;IAAAtM,GAAA,EAGA,SAAAA,IAAsBvB,KAAa,EAAE;MACjC,IAAI,CAACgO,aAAa,CAACH,UAAU,GAAG7N,KAAK;IACzC;;IAEA;AACJ;AACA;AACA;EAHI;IAAAD,GAAA;IAAAa,GAAA,EAIA,SAAAA,IAAA,EAAkC;MAC9B,OAAO,IAAI,CAACoN,aAAa,CAAC7I,KAAK;IACnC;;IAEA;AACJ;AACA;AACA,OAHI;IAAA5D,GAAA,EAIA,SAAAA,IAAiBvB,KAAoB,EAAE;MACnC,IAAI,CAACgO,aAAa,CAAC7I,KAAK,GAAGnF,KAAK;IACpC;;IAEA;AACJ;AACA;EAFI;IAAAD,GAAA;IAAAa,GAAA,EAGA,SAAAA,IAAA,EAAiC;MAC7B,OAAO,IAAI,CAACoN,aAAa,CAACJ,WAAW;IACzC;;IAEA;AACJ;AACA,OAFI;IAAArM,GAAA,EAGA,SAAAA,IAAuBvB,KAAa,EAAE;MAClC,IAAI,CAACgO,aAAa,CAACJ,WAAW,GAAG5N,KAAK;IAC1C;EAAC;IAAAD,GAAA;IAAAa,GAAA,EAED,SAAAA,IAAA,EAAgC;MAC5B,OAAO,CAAC0M,WAAW,CAACW,MAAM,EAAEX,WAAW,CAACI,IAAI,CAAC,CAACQ,QAAQ,CAAC,IAAI,CAACC,KAAK,CAAC;IACtE;EAAC;IAAApO,GAAA;IAAAa,GAAA,EAED,SAAAA,IAAA,EAAgC;MAC5B,OAAO,IAAI,CAACuN,KAAK,KAAKb,WAAW,CAACc,MAAM,IACjC,IAAI,CAACD,KAAK,KAAKb,WAAW,CAACW,MAAM,IAAI,IAAI,CAACjM,MAAM,GAAG,IAAI,CAAC6L,UAAU,IAClE,IAAI,CAACG,aAAa,CAACD,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC1K,GAAG,CAAC,IAAI,CAAC2K,aAAa,CAACD,QAAQ,CAAC;IACxF;EAAC;IAAAhO,GAAA;IAAAC,KAAA;MAAA,IAAAqO,cAAA,GAAApC,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAID,SAAA8C,QAAA;QAAA,IAAAC,KAAA;UAAAlJ,MAAA;UAAAmJ,aAAA;UAAAC,KAAA,GAAA1M,SAAA;QAAA,OAAAuJ,YAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAApE,CAAA,GAAAoE,QAAA,CAAA/I,CAAA;YAAA;cAA2B4I,KAAc,GAAAE,KAAA,CAAAzM,MAAA,QAAAyM,KAAA,QAAA3N,SAAA,GAAA2N,KAAA,MAAG,KAAK;cAAA,MACzC,IAAI,CAACT,aAAa,CAACL,OAAO,IAAK,CAAEY,KAAK,IAAI,IAAI,CAACP,aAAa,CAACP,OAAO,KAAKH,WAAW,CAACW,MAAO;gBAAAS,QAAA,CAAA/I,CAAA;gBAAA;cAAA;cAAA,OAAA+I,QAAA,CAAAhE,CAAA;YAAA;cAK1F8D,aAAa,GAAG,IAAI,CAACL,KAAK;cAChC,IAAI,CAACH,aAAa,CAACL,OAAO,GAAGL,WAAW,CAACW,MAAM;cAACS,QAAA,CAAApE,CAAA;cAAAoE,QAAA,CAAA/I,CAAA;cAAA,OAG7B,IAAI,CAACgJ,gBAAgB,CAAC,CAAC;YAAA;cAAtCtJ,MAAM,GAAAqJ,QAAA,CAAAjE,CAAA;cACN,IAAI,CAACuD,aAAa,CAACF,cAAc,GAAGzI,MAAM,CAACrD,MAAM;YAAC;cAAA0M,QAAA,CAAApE,CAAA;cAElD,IAAI,CAAC0D,aAAa,CAACL,OAAO,GAAG7M,SAAS;cAAC,OAAA4N,QAAA,CAAA1I,CAAA;YAAA;cAG3C,IAAI,CAACxB,MAAM,CAACO,SAAS,CAAC,CAAC,CAAC,CAAC;cACzB,IAAI,CAAC6J,QAAQ,CAACvJ,MAAM,EAAE,MAAM,CAAC;cAC7B,IAAI,CAAC2I,aAAa,CAACP,OAAO,GAAGH,WAAW,CAACW,MAAM;cAC/C,IAAI,CAACY,kBAAkB,CAAC,IAAI,EAAEL,aAAa,CAAC;YAAC;cAAA,OAAAE,QAAA,CAAAhE,CAAA;UAAA;QAAA,GAAA4D,OAAA;MAAA,CAChD;MAAA,SApBYQ,aAAaA,CAAA;QAAA,OAAAT,cAAA,CAAA/J,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAb+M,aAAa;IAAA;EAAA;IAAA/O,GAAA;IAAAC,KAAA;MAAA,IAAA+O,cAAA,GAAA9C,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAsB1B,SAAAwD,SAAA;QAAA,IAAA3J,MAAA,EAAAmJ,aAAA,EAAAS,SAAA;QAAA,OAAA3D,YAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAA5E,CAAA,GAAA4E,SAAA,CAAAvJ,CAAA;YAAA;cAAA,MACQ,IAAI,CAACqI,aAAa,CAACL,OAAO,IAAI,IAAI,CAACwB,SAAS;gBAAAD,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAA,OAAAuJ,SAAA,CAAAxE,CAAA;YAAA;cAK1C8D,aAAa,GAAG,IAAI,CAACL,KAAK;cAChC,IAAI,CAACH,aAAa,CAACL,OAAO,GAAGL,WAAW,CAAC8B,IAAI;cAACF,SAAA,CAAA5E,CAAA;cAAA4E,SAAA,CAAAvJ,CAAA;cAAA,OAG3B,IAAI,CAAC0J,gBAAgB,CAAC,CAAC;YAAA;cAAtChK,MAAM,GAAA6J,SAAA,CAAAzE,CAAA;cACN,IAAI,CAACuD,aAAa,CAACF,cAAc,GAAGzI,MAAM,GAAGA,MAAM,CAACrD,MAAM,GAAG,CAAC;YAAC;cAAAkN,SAAA,CAAA5E,CAAA;cAE/D,IAAI,CAAC0D,aAAa,CAACL,OAAO,GAAG7M,SAAS;cAAC,OAAAoO,SAAA,CAAAlJ,CAAA;YAAA;cAAA,IAGrCX,MAAM;gBAAA6J,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAA,OAAAuJ,SAAA,CAAAxE,CAAA,IACD,IAAI,CAACoE,aAAa,CAAC,CAAC;YAAA;cAAA,IAGzBzJ,MAAM,CAACrD,MAAM;gBAAAkN,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cACTsJ,SAAS,GAAG,IAAI,CAACzI,KAAK,CAAC,CAAC,CAAC;cAC/B,IAAI,CAACwH,aAAa,CAACD,QAAQ,GAAGkB,SAAS,GAAG,IAAI,CAAC1I,KAAK,CAAC0I,SAAS,CAAC,GAAG,IAAI;cAACC,SAAA,CAAAvJ,CAAA;cAAA,OAEjE,IAAI,CAAC2J,mBAAmB,CAAC,CAAC;YAAA;cAEhC;cACA,IAAI,IAAI,CAACtB,aAAa,CAACP,OAAO,KAAKH,WAAW,CAAC8B,IAAI,EAAE;gBACjD,IAAI,CAACpB,aAAa,CAACP,OAAO,GAAGH,WAAW,CAACc,MAAM;cACnD;cAEA,IAAI,CAACS,kBAAkB,CAAC,KAAK,EAAEL,aAAa,CAAC;cAAC,OAAAU,SAAA,CAAAxE,CAAA;YAAA;cAIlD,IAAI,CAACkE,QAAQ,CAACvJ,MAAM,EAAE,MAAM,CAAC;cAAC6J,SAAA,CAAAvJ,CAAA;cAAA,OACxB,IAAI,CAAC2J,mBAAmB,CAAC,CAAC;YAAA;cAChC,IAAI,CAACT,kBAAkB,CAAC,IAAI,EAAEL,aAAa,CAAC;YAAC;cAAA,OAAAU,SAAA,CAAAxE,CAAA;UAAA;QAAA,GAAAsE,QAAA;MAAA,CAChD;MAAA,SAtCYO,aAAaA,CAAA;QAAA,OAAAR,cAAA,CAAAzK,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAbwN,aAAa;IAAA;EAAA;IAAAxP,GAAA;IAAAC,KAAA;MAAA,IAAAwP,UAAA,GAAAvD,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAwC1B,SAAAiE,SAAA;QAAA,IAAApK,MAAA,EAAAmJ,aAAA;QAAA,OAAAlD,YAAA,GAAAC,CAAA,WAAAmE,SAAA;UAAA,kBAAAA,SAAA,CAAApF,CAAA,GAAAoF,SAAA,CAAA/J,CAAA;YAAA;cAAA,MACQ,IAAI,CAACqI,aAAa,CAACL,OAAO,IAAI,IAAI,CAACgC,SAAS;gBAAAD,SAAA,CAAA/J,CAAA;gBAAA;cAAA;cAAA,OAAA+J,SAAA,CAAAhF,CAAA;YAAA;cAK1C8D,aAAa,GAAG,IAAI,CAACL,KAAK;cAChC,IAAI,CAACH,aAAa,CAACL,OAAO,GAAGL,WAAW,CAAC8B,IAAI;cAACM,SAAA,CAAApF,CAAA;cAAAoF,SAAA,CAAA/J,CAAA;cAAA,OAG3B,IAAI,CAACiK,eAAe,CAAC,CAAC;YAAA;cAArCvK,MAAM,GAAAqK,SAAA,CAAAjF,CAAA;cACN,IAAI,CAACuD,aAAa,CAACF,cAAc,GAAGzI,MAAM,GAAGA,MAAM,CAACrD,MAAM,GAAG,CAAC;YAAC;cAAA0N,SAAA,CAAApF,CAAA;cAE/D,IAAI,CAAC0D,aAAa,CAACL,OAAO,GAAG7M,SAAS;cAAC,OAAA4O,SAAA,CAAA1J,CAAA;YAAA;cAAA,IAGrCX,MAAM;gBAAAqK,SAAA,CAAA/J,CAAA;gBAAA;cAAA;cAAA+J,SAAA,CAAA/J,CAAA;cAAA,OACF,IAAI,CAACmJ,aAAa,CAAC,CAAC;YAAA;cAAA,OAAAY,SAAA,CAAAhF,CAAA;YAAA;cAAA,KAI1BrF,MAAM,CAACrD,MAAM;gBAAA0N,SAAA,CAAA/J,CAAA;gBAAA;cAAA;cACb,IAAI,CAACiJ,QAAQ,CAACvJ,MAAM,EAAE,MAAM,CAAC;cAACqK,SAAA,CAAA/J,CAAA;cAAA,OACxB,IAAI,CAAC2J,mBAAmB,CAAC,CAAC;YAAA;cAChC,IAAI,CAACT,kBAAkB,CAAC,IAAI,EAAEL,aAAa,CAAC;cAAC,OAAAkB,SAAA,CAAAhF,CAAA;YAAA;cAAA,OAAAgF,SAAA,CAAAhF,CAAA;UAAA;QAAA,GAAA+E,QAAA;MAAA,CAGpD;MAAA,SA3BYI,SAASA,CAAA;QAAA,OAAAL,UAAA,CAAAlL,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAT8N,SAAS;IAAA;EAAA;IAAA9P,GAAA;IAAAC,KAAA;MAAA,IAAA8P,OAAA,GAAA7D,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CA6BtB,SAAAuE,SAAoBrL,EAAU;QAAA,IAAAW,MAAA,EAAAmJ,aAAA;QAAA,OAAAlD,YAAA,GAAAC,CAAA,WAAAyE,SAAA;UAAA,kBAAAA,SAAA,CAAA1F,CAAA,GAAA0F,SAAA,CAAArK,CAAA;YAAA;cAAA,MACtB,IAAI,CAACqI,aAAa,CAACL,OAAO,IAAK,IAAI,CAACQ,KAAK,KAAKb,WAAW,CAACI,IAAI,IAAI,IAAI,CAAClJ,MAAM,CAACnB,GAAG,CAACqB,EAAE,CAAE;gBAAAsL,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAAA,OAAAqK,SAAA,CAAAtF,CAAA;YAAA;cAKpF8D,aAAa,GAAG,IAAI,CAACL,KAAK;cAChC,IAAI,CAACH,aAAa,CAACL,OAAO,GAAGL,WAAW,CAAC8B,IAAI;cAACY,SAAA,CAAA1F,CAAA;cAAA0F,SAAA,CAAArK,CAAA;cAAA,OAG3B,IAAI,CAACsK,gBAAgB,CAACvL,EAAE,CAAC;YAAA;cAAxCW,MAAM,GAAA2K,SAAA,CAAAvF,CAAA;cACN,IAAI,CAACuD,aAAa,CAACF,cAAc,GAAGzI,MAAM,GAAGA,MAAM,CAACrD,MAAM,GAAG,CAAC;cAAC,KAE3DqD,MAAM;gBAAA2K,SAAA,CAAArK,CAAA;gBAAA;cAAA;cACN,IAAI,CAACnB,MAAM,CAACO,SAAS,CAAC,CAAC,CAAC,CAAC;cACzB,IAAI,CAAC6J,QAAQ,CAACvJ,MAAM,EAAE,MAAM,CAAC;cAAC2K,SAAA,CAAArK,CAAA;cAAA,OACxB,IAAI,CAAC2J,mBAAmB,CAAC,CAAC;YAAA;cAAAU,SAAA,CAAA1F,CAAA;cAGpC,IAAI,CAAC0D,aAAa,CAACL,OAAO,GAAG7M,SAAS;cAAC,OAAAkP,SAAA,CAAAhK,CAAA;YAAA;cAG3C,IAAI,CAAC6I,kBAAkB,CAAC,CAAC,CAACxJ,MAAM,EAAEmJ,aAAa,CAAC;YAAC;cAAA,OAAAwB,SAAA,CAAAtF,CAAA;UAAA;QAAA,GAAAqF,QAAA;MAAA,CACpD;MAAA,SAvBYG,MAAMA,CAAAC,EAAA;QAAA,OAAAL,OAAA,CAAAxL,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAANmO,MAAM;IAAA;EAAA;IAAAnQ,GAAA;IAAAC,KAAA;MAAA,IAAAoQ,oBAAA,GAAAnE,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAmCnB,SAAA6E,SAAA;QAAA,IAAAC,EAAA;QAAA,OAAAhF,YAAA,GAAAC,CAAA,WAAAgF,SAAA;UAAA,kBAAAA,SAAA,CAAA5K,CAAA;YAAA;cAAA4K,SAAA,CAAA5K,CAAA;cAAA,OACwC,IAAI,CAAC6K,kBAAkB,CAAC,CAAC;YAAA;cAAA,KAAAD,SAAA,CAAA9F,CAAA;gBAAA8F,SAAA,CAAA5K,CAAA;gBAAA;cAAA;cAAA2K,EAAA,GAAIhD,WAAW,CAACW,MAAM;cAAAsC,SAAA,CAAA5K,CAAA;cAAA;YAAA;cAAA2K,EAAA,GAAGhD,WAAW,CAAC8B,IAAI;YAAA;cAAtG,IAAI,CAACpB,aAAa,CAACP,OAAO,GAAA6C,EAAA;YAAA;cAAA,OAAAC,SAAA,CAAA7F,CAAA;UAAA;QAAA,GAAA2F,QAAA;MAAA,CAC7B;MAAA,SAFef,mBAAmBA,CAAA;QAAA,OAAAc,oBAAA,CAAA9L,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAnBuN,mBAAmB;IAAA;EAAA;IAAAvP,GAAA;IAAAC,KAAA,EAInC,SAAU4O,QAAQA,CAAC6B,QAAiB,EAAEC,EAAmB,EAAQ;MAAA,IAAAtK,YAAA;QAAArD,MAAA;MAC7D,IAAIsC,MAAM;MAEV,IAAIqL,EAAE,KAAK,MAAM,EAAE;QACfrL,MAAM,GAAG,IAAI,CAACsL,qBAAqB,IAAAtO,MAAA,CAAAkC,oCAAA,CAAKkM,QAAQ,GAAAlM,oCAAA,CAAK,IAAI,CAACF,KAAK,IAAG,MAAM,CAAC;MAC7E;MAEA,IAAIqM,EAAE,KAAK,MAAM,EAAE;QACfrL,MAAM,GAAG,IAAI,CAACsL,qBAAqB,IAAAtO,MAAA,CAAAkC,oCAAA,CAAK,IAAI,CAACF,KAAK,GAAAE,oCAAA,CAAKkM,QAAQ,IAAG,MAAM,CAAC;MAC7E;;MAEA;MACA,IAAI,CAACjM,MAAM,CAACO,SAAS,CAAC,CAAC;MACvB,CAAAqB,YAAA,OAAI,CAAC5B,MAAM,EAACjD,GAAG,CAAA+C,KAAA,CAAA8B,YAAA,EAAA7B,oCAAA,CAAKc,MAAM,CAAClE,GAAG,CAAC,UAAAsD,IAAI;QAAA,OAAI,CAAC1B,MAAI,CAACwD,KAAK,CAAC9B,IAAI,CAAC,EAAEA,IAAI,CAAC;MAAA,CAAmB,CAAC,CAAC,CAAC;IACzF;EAAC;IAAA1E,GAAA;IAAAC,KAAA,EAED,SAAU6O,kBAAkBA,CAAC+B,WAAoB,EAAEpC,aAA0B,EAAQ;MACjF,IAAIoC,WAAW,IAAIpC,aAAa,KAAK,IAAI,CAACL,KAAK,EAAE;QAC7C,IAAI,CAACpH,WAAW,CAAC/F,IAAI,CAAC,QAAQ,EAAE;UAAEmG,QAAQ,EAAEjF,KAAK,CAAC0B,IAAI,CAAC,IAAI,CAACY,MAAM,CAACH,KAAK,CAACkD,IAAI,CAAC,CAAC;QAAE,CAAC,CAAC;MACvF;IACJ;;IAEA;AACJ;AACA;EAFI;IAAAxH,GAAA;IAAAC,KAAA,EAGA,SAAQ2Q,qBAAqBA,CAACtM,KAAc,EAAET,IAAqB,EAAW;MAC1E,IAAMiN,aAAa,GAAG,IAAI,CAAC1L,KAAK;MAEhC,IAAI0L,aAAa,KAAK,IAAI,IAAIxM,KAAK,CAACrC,MAAM,IAAI6O,aAAa,EAAE;QACzD,OAAOxM,KAAK;MAChB;MAEA,IAAMyM,YAAY,GAAGC,IAAI,CAACC,KAAK,CAACH,aAAa,GAAG,IAAI,CAAC7C,aAAa,CAACJ,WAAW,CAAC;MAE/E,IAAIhK,IAAI,KAAK,MAAM,EAAE;QACjB,OAAOS,KAAK,CAAC4M,KAAK,CAAC,CAACH,YAAY,CAAC;MACrC;MAEA,IAAIlN,IAAI,KAAK,MAAM,EAAE;QACjB,OAAOS,KAAK,CAAC4M,KAAK,CAAC,CAAC,EAAEH,YAAY,CAAC;MACvC;MAEA,OAAOzM,KAAK;IAChB;EAAC;AAAA,EA/PKmD,iCAAiC;AAsQpC,IAAM0J,kBAAkB,0BAAAC,qBAAA;EAe3B,SAAAD,mBACYE,MAAc,EACdC,OAAe,EACfC,OAAyB,EAEnC;IAAA,IAAAxK,MAAA;IAAA,IADEyK,UAAmB,GAAAxP,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAjB,SAAA,GAAAiB,SAAA,MAAG,IAAI;IAAApC,iCAAA,OAAAuR,kBAAA;IAE1BpK,MAAA,GAAA1E,4BAAA,OAAA8O,kBAAA,GAAM,IAAI;IAjBd;AACJ;AACA;IAFItR,iCAAA,CAAAkH,MAAA,iBAGkDwG,WAAW;IAAAxG,MAAA,CASjDsK,MAAc,GAAdA,MAAc;IAAAtK,MAAA,CACduK,OAAe,GAAfA,OAAe;IAAAvK,MAAA,CACfwK,OAAyB,GAAzBA,OAAyB;IAKjCxK,MAAA,CAAKkH,aAAa,CAACwD,YAAY,GAAG,KAAK;IACvC1K,MAAA,CAAKkH,aAAa,CAACyD,kBAAkB,GAAG,IAAI;IAC5C3K,MAAA,CAAKkH,aAAa,CAAC0D,WAAW,GAAG,CAAC,CAAC;IAEnC,IAAIH,UAAU,EAAE;MACZzK,MAAA,CAAKwK,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,YAAY,EAAE,UAAA2R,EAAE;QAAA,OAAI9K,MAAA,CAAK+K,gBAAgB,CAACD,EAAE,CAAC;MAAA,EAAC;MACrE9K,MAAA,CAAKwK,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,kBAAkB,EAAE,UAAA2R,EAAE;QAAA,OAAI9K,MAAA,CAAKgL,sBAAsB,CAACF,EAAE,CAAC;MAAA,EAAC;MACjF9K,MAAA,CAAKwK,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,iBAAiB,EAAE,UAAA2R,EAAE;QAAA,OAAI9K,MAAA,CAAKiL,qBAAqB,CAACH,EAAE,CAAC;MAAA,EAAC;MAC/E9K,MAAA,CAAKwK,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAA2R,EAAE;QAAA,OAAI9K,MAAA,CAAKkL,aAAa,CAACJ,EAAE,CAAC;MAAA,EAAC;IACnE;IAAC,OAAA9K,MAAA;EACL;EAACxE,2BAAA,CAAA4O,kBAAA,EAAAC,qBAAA;EAAA,OAAArR,8BAAA,CAAAoR,kBAAA;IAAAnR,GAAA;IAAAC,KAAA,EAED,SAAOiG,YAAYA,CAAA,EAAuB;MACtC,IAAMC,IAAI,GAAG,IAAIgL,kBAAkB,CAAC,IAAI,CAACE,MAAM,EAAE,IAAI,CAACC,OAAO,EAAE,IAAI,CAACC,OAAO,EAAE,KAAK,CAAC;MACnFpL,IAAI,CAACa,WAAW,GAAG,IAAI,CAACA,WAAW;MACnCb,IAAI,CAAC1B,MAAM,GAAG,IAAI,CAACA,MAAM;MACzB0B,IAAI,CAAC8H,aAAa,GAAG,IAAI,CAACA,aAAa;MACvC,OAAO9H,IAAI;IACf;EAAC;IAAAnG,GAAA;IAAAa,GAAA,EAED,SAAAA,IAAA,EAAuC;MACnC,OAAO,IAAI,CAACoN,aAAa,CAACwD,YAAY;IAC1C;;IAEA;AACJ;AACA;AACA;EAHI;IAAAzR,GAAA;IAAAa,GAAA,EAIA,SAAAA,IAAA,EAAmE;MAC/D,OAAO,IAAI,CAACoN,aAAa,CAAC0D,WAAW;IACzC;;IAEA;AACJ;AACA;AACA;EAHI;IAAA3R,GAAA;IAAAa,GAAA,EAIA,SAAAA,IAAA,EAAyC;MACrC,OAAO,IAAI,CAACoN,aAAa,CAACyD,kBAAkB;IAChD,CAAC;IAAAlQ,GAAA,EAED,SAAAA,IAA8BvB,KAAc,EAAE;MAC1C,IAAI,CAACgO,aAAa,CAACyD,kBAAkB,GAAGzR,KAAK;IACjD;EAAC;IAAAD,GAAA;IAAAC,KAAA;MAAA,IAAAiS,gBAAA,GAAAhG,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAED,SAAA0G,SAA6BC,IAAa;QAAA,OAAA7G,YAAA,GAAAC,CAAA,WAAA6G,SAAA;UAAA,kBAAAA,SAAA,CAAAzM,CAAA;YAAA;cACtC,IAAI,CAACqI,aAAa,CAACwD,YAAY,GAAGW,IAAI;cAAC,MAEnCA,IAAI,IAAK,IAAI,CAAChE,KAAK,KAAKb,WAAW,CAACI,IAAI,IAAI,IAAI,CAACS,KAAK,KAAKb,WAAW,CAACW,MAAO;gBAAAmE,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAAyM,SAAA,CAAAzM,CAAA;cAAA,OAAAuB,+BAAA,CAAAgK,kBAAA;YAAA;cAAA,OAAAkB,SAAA,CAAA1H,CAAA;UAAA;QAAA,GAAAwH,QAAA;MAAA,CAGrF;MAAA,SANYG,eAAeA,CAAAC,GAAA;QAAA,OAAAL,gBAAA,CAAA3N,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAfsQ,eAAe;IAAA;EAAA;IAAAtS,GAAA;IAAAC,KAAA;MAAA,IAAAuS,eAAA,GAAAtG,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAQ5B,SAAAgH,SAAA;QAAA,IAAAjE,KAAA;UAAAkE,MAAA,GAAA1Q,SAAA;QAAA,OAAAuJ,YAAA,GAAAC,CAAA,WAAAmH,SAAA;UAAA,kBAAAA,SAAA,CAAA/M,CAAA;YAAA;cAA2B4I,KAAc,GAAAkE,MAAA,CAAAzQ,MAAA,QAAAyQ,MAAA,QAAA3R,SAAA,GAAA2R,MAAA,MAAG,KAAK;cAAA,KACzC,IAAI,CAACzE,aAAa,CAACwD,YAAY;gBAAAkB,SAAA,CAAA/M,CAAA;gBAAA;cAAA;cAAA,OAAA+M,SAAA,CAAAhI,CAAA;YAAA;cAAA,OAAAgI,SAAA,CAAAhI,CAAA,IAAAxD,+BAAA,CAAAgK,kBAAA,6BAGR3C,KAAK;UAAA;QAAA,GAAAiE,QAAA;MAAA,CACnC;MAAA,SALY1D,aAAaA,CAAA;QAAA,OAAAyD,eAAA,CAAAjO,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAb+M,aAAa;IAAA;EAAA;IAAA/O,GAAA;IAAAC,KAAA;MAAA,IAAA2S,WAAA,GAAA1G,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAO1B,SAAAoH,SAAA;QAAA,OAAAtH,YAAA,GAAAC,CAAA,WAAAsH,SAAA;UAAA,kBAAAA,SAAA,CAAAlN,CAAA;YAAA;cAAA,KACQ,IAAI,CAACqI,aAAa,CAACwD,YAAY;gBAAAqB,SAAA,CAAAlN,CAAA;gBAAA;cAAA;cAAA,OAAAkN,SAAA,CAAAnI,CAAA;YAAA;cAAA,OAAAmI,SAAA,CAAAnI,CAAA,IAAAxD,+BAAA,CAAAgK,kBAAA;UAAA;QAAA,GAAA0B,QAAA;MAAA,CAItC;MAAA,SALY/C,SAASA,CAAA;QAAA,OAAA8C,WAAA,CAAArO,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAT8N,SAAS;IAAA;EAAA;IAAA9P,GAAA;IAAAC,KAAA;MAAA,IAAA8S,eAAA,GAAA7G,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAOtB,SAAAuH,SAAA;QAAA,OAAAzH,YAAA,GAAAC,CAAA,WAAAyH,SAAA;UAAA,kBAAAA,SAAA,CAAArN,CAAA;YAAA;cAAA,KACQ,IAAI,CAACqI,aAAa,CAACwD,YAAY;gBAAAwB,SAAA,CAAArN,CAAA;gBAAA;cAAA;cAAA,OAAAqN,SAAA,CAAAtI,CAAA;YAAA;cAAA,OAAAsI,SAAA,CAAAtI,CAAA,IAAAxD,+BAAA,CAAAgK,kBAAA;UAAA;QAAA,GAAA6B,QAAA;MAAA,CAItC;MAAA,SALYxD,aAAaA,CAAA;QAAA,OAAAuD,eAAA,CAAAxO,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAbwN,aAAa;IAAA;EAAA;IAAAxP,GAAA;IAAAC,KAAA;MAAA,IAAAiT,QAAA,GAAAhH,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAO1B,SAAA0H,SAAoBxO,EAAU;QAAA,OAAA4G,YAAA,GAAAC,CAAA,WAAA4H,SAAA;UAAA,kBAAAA,SAAA,CAAAxN,CAAA;YAAA;cAAA,KACtB,IAAI,CAACqI,aAAa,CAACwD,YAAY;gBAAA2B,SAAA,CAAAxN,CAAA;gBAAA;cAAA;cAAA,OAAAwN,SAAA,CAAAzI,CAAA;YAAA;cAAA,OAAAyI,SAAA,CAAAzI,CAAA,IAAAxD,+BAAA,CAAAgK,kBAAA,sBAGfxM,EAAE;UAAA;QAAA,GAAAwO,QAAA;MAAA,CACzB;MAAA,SALYhD,MAAMA,CAAAkD,GAAA;QAAA,OAAAH,QAAA,CAAA3O,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAANmO,MAAM;IAAA;IAOnB;AACJ;AACA;AACA;EAHI;IAAAnQ,GAAA;IAAAC,KAAA,EAIA,SAAOqT,uBAAuBA,CAACC,QAAe,EAAQ;MAClD,IAAMC,UAAU,GAAG,IAAI,CAAC3S,GAAG,CAAC0S,QAAQ,CAACC,UAAU,CAAC7O,EAAE,CAAC;MAEnD,IAAI6O,UAAU,EAAE;QACZ;QACA,IAAI,CAAChS,GAAG,CAAAiS,aAAA,CAAAA,aAAA,KAAKD,UAAU;UAAEE,QAAQ,EAAEH,QAAQ,CAAC5O;QAAE,EAAC,CAAC;MACpD;IACJ;EAAC;IAAA3E,GAAA;IAAAC,KAAA;MAAA,IAAA0T,gBAAA,GAAAzH,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAED,SAAAmI,SAAA;QAAA,IAAAC,WAAA;QAAA,IAAAC,OAAA;QAAA,OAAAvI,YAAA,GAAAC,CAAA,WAAAuI,SAAA;UAAA,kBAAAA,SAAA,CAAAnO,CAAA;YAAA;cACUkO,OAAO,IAAAD,WAAA,GAAG,IAAI,CAACpN,KAAK,CAAC,IAAI,CAACxE,MAAM,GAAG,CAAC,CAAC,cAAA4R,WAAA,uBAA3BA,WAAA,CAA6BlP,EAAE,EAE/C;cAAA,OAAAoP,SAAA,CAAApJ,CAAA,IACOmJ,OAAO,GAAG,IAAI,CAACE,aAAa,CAAC;gBAACC,KAAK,EAAEH;cAAO,CAAC,CAAC,GAAG,IAAI;UAAA;QAAA,GAAAF,QAAA;MAAA,CAC/D;MAAA,SALe/D,eAAeA,CAAA;QAAA,OAAA8D,gBAAA,CAAApP,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAf6N,eAAe;IAAA;EAAA;IAAA7P,GAAA;IAAAC,KAAA;MAAA,IAAAiU,iBAAA,GAAAhI,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAO/B,SAAA0I,UAAiCxP,EAAU;QAAA,OAAA4G,YAAA,GAAAC,CAAA,WAAA4I,UAAA;UAAA,kBAAAA,UAAA,CAAAxO,CAAA;YAAA;cAAA,OAAAwO,UAAA,CAAAzJ,CAAA,IAChC,IAAI,CAACqJ,aAAa,CAAC;gBAACK,MAAM,EAAE1P;cAAE,CAAC,CAAC;UAAA;QAAA,GAAAwP,SAAA;MAAA,CAC1C;MAAA,SAFejE,gBAAgBA,CAAAoE,GAAA;QAAA,OAAAJ,iBAAA,CAAA3P,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAhBkO,gBAAgB;IAAA;EAAA;IAAAlQ,GAAA;IAAAC,KAAA;MAAA,IAAAsU,iBAAA,GAAArI,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAIhC,SAAA+I,UAAA;QAAA,IAAAC,YAAA;QAAA,IAAAC,QAAA;QAAA,OAAAnJ,YAAA,GAAAC,CAAA,WAAAmJ,UAAA;UAAA,kBAAAA,UAAA,CAAA/O,CAAA;YAAA;cACU8O,QAAQ,IAAAD,YAAA,GAAG,IAAI,CAAChO,KAAK,CAAC,CAAC,CAAC,cAAAgO,YAAA,uBAAbA,YAAA,CAAe9P,EAAE,EAElC;cAAA,OAAAgQ,UAAA,CAAAhK,CAAA,IACO+J,QAAQ,GAAG,IAAI,CAACV,aAAa,CAAC;gBAACY,MAAM,EAAEF;cAAQ,CAAC,CAAC,GAAG,IAAI;UAAA;QAAA,GAAAF,SAAA;MAAA,CAClE;MAAA,SALelF,gBAAgBA,CAAA;QAAA,OAAAiF,iBAAA,CAAAhQ,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAhBsN,gBAAgB;IAAA;EAAA;IAAAtP,GAAA;IAAAC,KAAA;MAAA,IAAA4U,iBAAA,GAAA3I,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAOhC,SAAAqJ,UAAA;QAAA,OAAAvJ,YAAA,GAAAC,CAAA,WAAAuJ,UAAA;UAAA,kBAAAA,UAAA,CAAAnP,CAAA;YAAA;cAAA,OAAAmP,UAAA,CAAApK,CAAA,IACW,IAAI,CAACqJ,aAAa,CAAC,CAAC,CAAC,CAAC;UAAA;QAAA,GAAAc,SAAA;MAAA,CAChC;MAAA,SAFelG,gBAAgBA,CAAA;QAAA,OAAAiG,iBAAA,CAAAtQ,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAhB4M,gBAAgB;IAAA;EAAA;IAAA5O,GAAA;IAAAC,KAAA;MAAA,IAAA+U,cAAA,GAAA9I,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAIhC,SAAAwJ,UAA4BC,QAA8B;QAAA,IAAA5P,MAAA;QAAA,OAAAiG,YAAA,GAAAC,CAAA,WAAA2J,UAAA;UAAA,kBAAAA,UAAA,CAAAvP,CAAA;YAAA;cAAAuP,UAAA,CAAAvP,CAAA;cAAA,OACjC,IAAI,CAAC2L,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,aAAa,EAAA3B,aAAA;gBACvD4B,QAAQ,EAAE;kBAAChE,MAAM,EAAE,IAAI,CAACA,MAAM;kBAAEC,OAAO,EAAE,IAAI,CAACA;gBAAO,CAAC;gBACtDlM,KAAK,EAAE,IAAI,CAAC6I,aAAa,CAACH,UAAU;gBACpC4D,kBAAkB,EAAE,IAAI,CAACzD,aAAa,CAACyD;cAAkB,GACtDwD,QAAQ,CACd,CAAC;YAAA;cALI5P,MAAM,GAAA6P,UAAA,CAAAzK,CAAA;cAAA,KAORpF,MAAM,CAAC9B,KAAK;gBAAA2R,UAAA,CAAAvP,CAAA;gBAAA;cAAA;cAAA,MACN,IAAI0P,KAAK,2BAAAhT,MAAA,CAA2BgD,MAAM,CAAC9B,KAAK,CAAC+R,OAAO,CAAE,CAAC;YAAA;cAGrE,IAAI,CAACC,gBAAgB,CAAClQ,MAAM,CAAC5C,IAAI,CAAC+S,QAAQ,EAAEnQ,MAAM,CAAC5C,IAAI,CAACiP,WAAW,CAAC;cAAC,OAAAwD,UAAA,CAAAxK,CAAA,IAE9DrF,MAAM,CAAC5C,IAAI,CAAC+S,QAAQ;UAAA;QAAA,GAAAR,SAAA;MAAA,CAC9B;MAAA,SAfajB,aAAaA,CAAA0B,GAAA;QAAA,OAAAV,cAAA,CAAAzQ,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAbgS,aAAa;IAAA;IAiB3B;AACJ;AACA;AACA;EAHI;IAAAhU,GAAA;IAAAC,KAAA,EAIA,SAAQuV,gBAAgBA,CAACC,QAAmB,EAAE9D,WAA4C,EAAQ;MAC9F,IAAI,CAAE,IAAI,CAAC1D,aAAa,CAACyD,kBAAkB,EAAE;QACzC;MACJ;MAAC,IAAAnM,SAAA,GAAAC,4CAAA,CAEqBiQ,QAAQ;QAAA/P,KAAA;MAAA;QAA9B,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAgC;UAAA,IAArB0P,OAAO,GAAA7P,KAAA,CAAAzF,KAAA;UACd,IAAM0V,GAAG,GAAGhE,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAG4D,OAAO,CAAC5Q,EAAE,CAAC;UAErC,IAAIgR,GAAG,aAAHA,GAAG,eAAHA,GAAG,CAAE1T,MAAM,EAAE;YACb,IAAI,CAACgM,aAAa,CAAC0D,WAAW,CAAC4D,OAAO,CAAC5Q,EAAE,CAAC,GAAGgR,GAAG;UACpD,CAAC,MAAM;YACH,OAAO,IAAI,CAAC1H,aAAa,CAAC0D,WAAW,CAAC4D,OAAO,CAAC5Q,EAAE,CAAC;UACrD;QACJ;MAAC,SAAAoB,GAAA;QAAAR,SAAA,CAAAS,CAAA,CAAAD,GAAA;MAAA;QAAAR,SAAA,CAAAU,CAAA;MAAA;IACL;EAAC;IAAAjG,GAAA;IAAAC,KAAA;MAAA,IAAA2V,SAAA,GAAA1J,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAED,SAAAoK,UAAA;QAAA,OAAAtK,YAAA,GAAAC,CAAA,WAAAsK,UAAA;UAAA,kBAAAA,UAAA,CAAAlQ,CAAA;YAAA;cAAAkQ,UAAA,CAAAlQ,CAAA;cAAA,OACkB,IAAI,CAAC2L,OAAO,CAACwE,KAAK,CAACC,SAAS,CAAC,IAAI,CAAC3E,MAAM,EAAE,CAAC,IAAI,CAACC,OAAO,CAAC,CAAC;YAAA;cAAA,OAAAwE,UAAA,CAAAnL,CAAA,IAAAmL,UAAA,CAAApL,CAAA,CAAE7J,GAAG,CAAC,IAAI,CAACyQ,OAAO;UAAA;QAAA,GAAAuE,SAAA;MAAA,CAC5F;MAAA,SAFaI,QAAQA,CAAA;QAAA,OAAAL,SAAA,CAAArR,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAARiU,QAAQ;IAAA;EAAA;IAAAjW,GAAA;IAAAC,KAAA;MAAA,IAAAiW,mBAAA,GAAAhK,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAItB,SAAA0K,UAAA;QAAA,IAAAC,oBAAA;QAAA,IAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAjL,YAAA,GAAAC,CAAA,WAAAiL,UAAA;UAAA,kBAAAA,UAAA,CAAA7Q,CAAA;YAAA;cAAA6Q,UAAA,CAAA7Q,CAAA;cAAA,OACkB,IAAI,CAACqQ,QAAQ,CAAC,CAAC;YAAA;cAAAM,GAAA,GAAAH,oBAAA,GAAAK,UAAA,CAAA/L,CAAA;cAAA4L,GAAA,GAAAC,GAAA;cAAA,IAAAD,GAAA;gBAAAG,UAAA,CAAA7Q,CAAA;gBAAA;cAAA;cAAA0Q,GAAA,GAAAF,oBAAA;YAAA;cAAAC,GAAA,GAAAC,GAAA;cAAA,IAAAD,GAAA;gBAAAI,UAAA,CAAA7Q,CAAA;gBAAA;cAAA;cAAAyQ,GAAA,IAAAD,oBAAA,GAAtBA,oBAAA,CAAyBM,WAAW,cAAAN,oBAAA;YAAA;cAAA,KAAAC,GAAA;gBAAAI,UAAA,CAAA7Q,CAAA;gBAAA;cAAA;cAAA4Q,GAAA;cAAAC,UAAA,CAAA7Q,CAAA;cAAA;YAAA;cAAA4Q,GAAA,GAApCJ,oBAAA,CAAsCzR,EAAE;YAAA;cAAA,OAAA8R,UAAA,CAAA9L,CAAA,IAAA6L,GAAA;UAAA;QAAA,GAAAL,SAAA;MAAA,CAClD;MAAA,SAFaQ,kBAAkBA,CAAA;QAAA,OAAAT,mBAAA,CAAA3R,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAlB2U,kBAAkB;IAAA;EAAA;IAAA3W,GAAA;IAAAC,KAAA;MAAA,IAAA2W,mBAAA,GAAA1K,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAIhC,SAAAoL,UAAA;QAAA,IAAAC,aAAA;QAAA,OAAAvL,YAAA,GAAAC,CAAA,WAAAuL,UAAA;UAAA,kBAAAA,UAAA,CAAAnR,CAAA;YAAA;cAAAmR,UAAA,CAAAnR,CAAA;cAAA,OACgC,IAAI,CAAC+Q,kBAAkB,CAAC,CAAC;YAAA;cAA/CG,aAAa,GAAAC,UAAA,CAAArM,CAAA;cAAA,OAAAqM,UAAA,CAAApM,CAAA,IACZmM,aAAa,GAAG,IAAI,CAACxT,GAAG,CAACwT,aAAa,CAAC,GAAG,IAAI;UAAA;QAAA,GAAAD,SAAA;MAAA,CACxD;MAAA,SAHepG,kBAAkBA,CAAA;QAAA,OAAAmG,mBAAA,CAAArS,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAlByO,kBAAkB;IAAA;EAAA;IAAAzQ,GAAA;IAAAC,KAAA;MAAA,IAAA+W,iBAAA,GAAA9K,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAKlC,SAAAwL,UAA+BpF,EAAc;QAAA,IAAApD,aAAA;QAAA,OAAAlD,YAAA,GAAAC,CAAA,WAAA0L,UAAA;UAAA,kBAAAA,UAAA,CAAAtR,CAAA;YAAA;cACzC,IACI,CAAC2H,WAAW,CAACW,MAAM,EAAEX,WAAW,CAACI,IAAI,CAAC,CAACQ,QAAQ,CAAC,IAAI,CAACC,KAAK,CAAC,IACxDyD,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAChE,MAAM,KAAK,IAAI,CAACA,MAAM,IAC1CQ,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAC/D,OAAO,KAAK,IAAI,CAACA,OAAO,EACjD;gBACQ7C,aAAa,GAAG,IAAI,CAACL,KAAK;gBAChC,IAAI,CAACS,QAAQ,CAAC,CAACgD,EAAE,CAAC0D,OAAO,CAAC,EAAE,MAAM,CAAC;gBACnC,IAAI,CAACzG,kBAAkB,CAAC,IAAI,EAAEL,aAAa,CAAC;cAChD;YAAC;cAAA,OAAAyI,UAAA,CAAAvM,CAAA;UAAA;QAAA,GAAAsM,SAAA;MAAA,CACJ;MAAA,SAVanF,gBAAgBA,CAAAqF,GAAA;QAAA,OAAAH,iBAAA,CAAAzS,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAhB8P,gBAAgB;IAAA;IAY9B;AACJ;AACA;AACA;EAHI;IAAA9R,GAAA;IAAAC,KAAA,EAIA,SAAQ+R,qBAAqBA,CAACH,EAAmB,EAAQ;MACrD,IAAM0D,OAAO,GAAG,IAAI,CAAC1U,GAAG,CAACgR,EAAE,CAACuF,SAAS,CAAC;MAEtC,IAAI,CAAE7B,OAAO,EAAE;QACX;MACJ;MAEA,IAAM3U,KAAK,GAAG2U,OAAO,CAAC8B,SAAS,CAACC,SAAS,CACrC,UAAAC,QAAQ;QAAA,OAAIA,QAAQ,CAAC9U,IAAI,KAAKoP,EAAE,CAAC0F,QAAQ,CAAC9U,IAAI,IAAI8U,QAAQ,CAACtX,KAAK,KAAK4R,EAAE,CAAC0F,QAAQ,CAACtX,KAAK;MAAA,EAAC;MAE3F,IAAIW,KAAK,KAAK,CAAC,CAAC,IAAI,CAAEiR,EAAE,CAAC0F,QAAQ,CAACC,KAAK,EAAE;QACrC;MACJ;MAEA,IAAMH,SAA4B,GAAA7S,oCAAA,CAAO+Q,OAAO,CAAC8B,SAAS,CAAC;MAE3D,IAAIzW,KAAK,KAAK,CAAC,CAAC,EAAE;QACdyW,SAAS,CAAC9V,IAAI,CAACsQ,EAAE,CAAC0F,QAAQ,CAAC;MAC/B,CAAC,MAAM,IAAI1F,EAAE,CAAC0F,QAAQ,CAACC,KAAK,EAAE;QAC1BH,SAAS,CAACzW,KAAK,CAAC,GAAGiR,EAAE,CAAC0F,QAAQ,CAAC,CAAC;MACpC,CAAC,MAAM;QACHF,SAAS,CAACrW,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC;MAC9B;MAEA,IAAI,CAACY,GAAG,CAAAiS,aAAA,CAAAA,aAAA,KAAK8B,OAAO;QAAE8B,SAAS,EAATA;MAAS,EAAC,CAAC;IACrC;EAAC;IAAArX,GAAA;IAAAC,KAAA,EAED,SAAQgS,aAAaA,CAACJ,EAAW,EAAQ;MAAA,IAAA4F,qBAAA;MACrC,IAAI,CAAE,IAAI,CAACnU,GAAG,CAACuO,EAAE,CAACuF,SAAS,CAAC,EAAE;QAC1B;MACJ;MAEA,IAAAM,YAAA,GAA+B7F,EAAE,CAAC0F,QAAQ;QAAnC9U,IAAI,GAAAiV,YAAA,CAAJjV,IAAI;QAAExC,KAAK,GAAAyX,YAAA,CAALzX,KAAK;QAAE0X,OAAO,GAAAD,YAAA,CAAPC,OAAO;MAC3B,IAAMhC,GAAG,GAAG,EAAA8B,qBAAA,GAAC,IAAI,CAACxJ,aAAa,CAAC0D,WAAW,CAACE,EAAE,CAACuF,SAAS,CAAC,cAAAK,qBAAA,cAAAA,qBAAA,GAAI,EAAE,EAC1DG,MAAM,CAAC,UAAAL,QAAQ;QAAA,OAAIA,QAAQ,CAAC9U,IAAI,KAAKA,IAAI,IAAI8U,QAAQ,CAACtX,KAAK,KAAKA,KAAK;MAAA,EAAC;MAE3E,IAAI0X,OAAO,EAAE;QACThC,GAAG,CAACpU,IAAI,CAAC;UAACkB,IAAI,EAAJA,IAAI;UAAExC,KAAK,EAALA;QAAK,CAAC,CAAC;MAC3B;MAEA,IAAI0V,GAAG,CAAC1T,MAAM,EAAE;QACZ,IAAI,CAACgM,aAAa,CAAC0D,WAAW,CAACE,EAAE,CAACuF,SAAS,CAAC,GAAGzB,GAAG;MACtD,CAAC,MAAM;QACH,OAAO,IAAI,CAAC1H,aAAa,CAAC0D,WAAW,CAACE,EAAE,CAACuF,SAAS,CAAC;MACvD;MAEA,IAAI,CAACpQ,WAAW,CAAC/F,IAAI,CAAC,QAAQ,EAAE;QAACmG,QAAQ,EAAE,CAACyK,EAAE,CAACuF,SAAS;MAAC,CAAC,CAAC;IAC/D;EAAC;IAAApX,GAAA;IAAAC,KAAA;MAAA,IAAA4X,uBAAA,GAAA3L,iBAAA,cAAAX,YAAA,GAAAE,CAAA,CAED,SAAAqM,UAAqCjG,EAAoB;QAAA,IAAAkG,WAAA;QAAA,OAAAxM,YAAA,GAAAC,CAAA,WAAAwM,UAAA;UAAA,kBAAAA,UAAA,CAAApS,CAAA;YAAA;cAAA,MACjDiM,EAAE,CAACwD,QAAQ,CAAC/D,OAAO,KAAK,IAAI,CAACA,OAAO,IAAIO,EAAE,CAACwD,QAAQ,CAAChE,MAAM,KAAK,IAAI,CAACA,MAAM;gBAAA2G,UAAA,CAAApS,CAAA;gBAAA;cAAA;cAAA,OAAAoS,UAAA,CAAArN,CAAA;YAAA;cAIxEoN,WAAW,GAAG,IAAI,CAACzT,KAAK,CACzBsT,MAAM,CAAC,UAAAK,GAAG;gBAAA,OAAIA,GAAG,CAACvE,QAAQ,IAAI7B,EAAE,CAAChN,GAAG,CAACsJ,QAAQ,CAAC8J,GAAG,CAACtT,EAAE,CAAC;cAAA,EAAC,CACtDvD,GAAG,CAAC,UAAA6W,GAAG;gBAAA,OAAIA,GAAG,CAACvE,QAAQ;cAAA,CAAU,CAAC;cAEvC,IAAI,UAAO,CAAAnP,KAAA,CAAX,IAAI,EAAAC,oCAAA,CAAWqN,EAAE,CAAChN,GAAG,EAAC;cAAC,MAEnB,IAAI,CAAC5C,MAAM,KAAK,CAAC;gBAAA+V,UAAA,CAAApS,CAAA;gBAAA;cAAA;cAAAoS,UAAA,CAAApS,CAAA;cAAA,OACX,IAAI,CAACmJ,aAAa,CAAC,CAAC;YAAA;cAG9B,IAAIgJ,WAAW,CAAC9V,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,CAAC+E,WAAW,CAAC/F,IAAI,CAAC,kBAAkB,EAAE8W,WAAW,CAAC;cAC1D;YAAC;cAAA,OAAAC,UAAA,CAAArN,CAAA;UAAA;QAAA,GAAAmN,SAAA;MAAA,CACJ;MAAA,SAlBa/F,sBAAsBA,CAAAmG,GAAA;QAAA,OAAAL,uBAAA,CAAAtT,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAtB+P,sBAAsB;IAAA;EAAA;AAAA,EA7PAvE,2BAA2B,E;;;;;;;;;;;;;;6CC9SnE,uKAAAxH,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,sCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,sCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,sCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,sCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,sCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,sCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,sCAAA,CAAAH,CAAA,GAAAG,sCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,sCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,sCAAA,CAAAH,CAAA,8DAAAoB,+BAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,sCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,sCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,sCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,sCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,sCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,oCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,sCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,sCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,kCAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,oCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,iCAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,+BAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,oCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,oCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAAnG,kCAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,iCAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,iCAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,+BAAA,CAAA1D,CAAA,gCAAAoD,0BAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,+BAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,0BAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,0BAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAC8D;AACO;AAE9D,IAAM0O,mBAAmB;EAI5B,SAAAA,oBACYC,IAAU,EACV7G,OAAyB,EACnC;IAAA,IAAAzP,KAAA;IAAAlC,kCAAA,OAAAuY,mBAAA;IAAAtY,kCAAA,yBANuB,IAAIwE,iBAAiB,CAA6B,CAAC;IAAAxE,kCAAA,uBAC5C,KAAK;IAAA,KAGzBuY,IAAU,GAAVA,IAAU;IAAA,KACV7G,OAAyB,GAAzBA,OAAyB;IAEjC,IAAI,CAACA,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACuW,iBAAiB,CAACxG,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,UAAU,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACwW,cAAc,CAACzG,EAAE,CAAC;IAAA,EAAC;IACjE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACyW,kBAAkB,CAAC1G,EAAE,CAAC;IAAA,EAAC;IAEzE,IAAI,CAAC2G,kBAAkB,CAAC,IAAI,CAACJ,IAAI,CAAC;IAElC,IAAI,IAAI,CAACA,IAAI,CAACK,YAAY,EAAE;MACxB,IAAI,CAACC,2BAA2B,CAAC,IAAI,CAACN,IAAI,CAACK,YAAY,CAAC;IAC5D;EACJ;;EAEA;AACJ;AACA;AACA;AACA;EAJI,OAAA1Y,+BAAA,CAAAoY,mBAAA;IAAAnY,GAAA;IAAAC,KAAA;MAAA,IAAA0Y,kBAAA,GAAAzM,oCAAA,cAAAX,+BAAA,GAAAE,CAAA,CAKA,SAAA8C,QAA+B+C,OAAe;QAAA,IAAAsH,IAAA;UAAAC,KAAA;UAAAnK,KAAA,GAAA1M,SAAA;QAAA,OAAAuJ,+BAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAA/I,CAAA;YAAA;cAAEgT,IAAa,GAAAlK,KAAA,CAAAzM,MAAA,QAAAyM,KAAA,QAAA3N,SAAA,GAAA2N,KAAA,MAAG,KAAK;cAAA,MAC7D,CAAC,IAAI,CAACoK,cAAc,CAACxV,GAAG,CAACgO,OAAO,CAAC,IAAI,CAACsH,IAAI;gBAAAjK,QAAA,CAAA/I,CAAA;gBAAA;cAAA;cAAA+I,QAAA,CAAA/I,CAAA;cAAA,OACrB,IAAI,CAAC2L,OAAO,CAACwE,KAAK,CAACC,SAAS,CAAC,IAAI,CAACoC,IAAI,CAACzT,EAAE,EAAE,CAAC2M,OAAO,CAAC,CAAC;YAAA;cAApEuH,KAAK,GAAAlK,QAAA,CAAAjE,CAAA,CAAiE7J,GAAG,CAACyQ,OAAO;cAEvF,IAAIuH,KAAK,EAAE;gBACP,IAAI,CAACH,2BAA2B,CAACG,KAAK,CAAC;cAC3C;YAAC;cAAA,OAAAlK,QAAA,CAAAhE,CAAA,IAGE,IAAI,CAACmO,cAAc,CAACjY,GAAG,CAACyQ,OAAO,CAAC;UAAA;QAAA,GAAA/C,OAAA;MAAA,CAC1C;MAAA,SAVYwK,iBAAiBA,CAAA3I,EAAA;QAAA,OAAAuI,kBAAA,CAAApU,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAjB+W,iBAAiB;IAAA;IAY9B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAVI;EAAA;IAAA/Y,GAAA;IAAAC,KAAA;MAAA,IAAA+Y,OAAA,GAAA9M,oCAAA,cAAAX,+BAAA,GAAAE,CAAA,CAWA,SAAAwD,SAAoBmJ,IAAU;QAAA,IAAApU,EAAA,EAAAiV,WAAA,EAAAC,cAAA,EAAAC,MAAA,EAAA5I,EAAA;QAAA,OAAAhF,+BAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAA5E,CAAA,GAAA4E,SAAA,CAAAvJ,CAAA;YAAA;cAC1B,IAAI,CAACwS,IAAI,GAAGA,IAAI;cAChB,IAAI,CAACI,kBAAkB,CAACJ,IAAI,CAAC;cAE7B,IAAI,IAAI,CAACA,IAAI,CAACK,YAAY,EAAE;gBACxB,IAAI,CAACC,2BAA2B,CAAC,IAAI,CAACN,IAAI,CAACK,YAAY,CAAC;cAC5D;cAACzU,EAAA,MAAAiV,WAAA,GAEwB9W,KAAK,CAAC0B,IAAI,CAAC,IAAI,CAACiV,cAAc,CAACxU,KAAK,CAAC;YAAA;cAAA,MAAAN,EAAA,GAAAiV,WAAA,CAAAhX,MAAA;gBAAAkN,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAAsT,cAAA,GAAA/U,iCAAA,CAAA8U,WAAA,CAAAjV,EAAA,OAAhDmV,MAAM,GAAAD,cAAA;cAAA/J,SAAA,CAAA5E,CAAA;cAAA4E,SAAA,CAAAvJ,CAAA;cAAA,OAENuT,MAAM,CAAC7G,eAAe,CAAC,IAAI,CAACb,YAAY,CAAC;YAAA;cAAA,KAI3C,IAAI,CAACA,YAAY;gBAAAtC,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAA,OAAAuJ,SAAA,CAAAxE,CAAA;YAAA;cAAA,MAIjBwO,MAAM,CAAC/K,KAAK,KAAKb,WAAW,CAACW,MAAM;gBAAAiB,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAAuJ,SAAA,CAAAvJ,CAAA;cAAA,OAC7BuT,MAAM,CAACpK,aAAa,CAAC,IAAI,CAAC;YAAA;cAAAI,SAAA,CAAAvJ,CAAA;cAAA;YAAA;cAAAuJ,SAAA,CAAA5E,CAAA;cAAAgG,EAAA,GAAApB,SAAA,CAAAzE,CAAA;YAAA;cAAA1G,EAAA;cAAAmL,SAAA,CAAAvJ,CAAA;cAAA;YAAA;cAAA,OAAAuJ,SAAA,CAAAxE,CAAA;UAAA;QAAA,GAAAsE,QAAA;MAAA,CAQ/C;MAAA,SA3BYmK,MAAMA,CAAA7G,GAAA;QAAA,OAAAyG,OAAA,CAAAzU,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAANoX,MAAM;IAAA;EAAA;IAAApZ,GAAA;IAAAC,KAAA;MAAA,IAAAoZ,kBAAA,GAAAnN,oCAAA,cAAAX,+BAAA,GAAAE,CAAA,CA6BnB,SAAAiE,SAAgCmC,EAAe;QAAA,IAAA/M,GAAA,EAAAwU,YAAA,EAAAC,eAAA,EAAAJ,MAAA;QAAA,OAAA5N,+BAAA,GAAAC,CAAA,WAAAmE,SAAA;UAAA,kBAAAA,SAAA,CAAA/J,CAAA;YAAA;cAAA,MACvC,IAAI,CAACwS,IAAI,CAACzT,EAAE,KAAKkN,EAAE,CAACuG,IAAI,CAACzT,EAAE;gBAAAgL,SAAA,CAAA/J,CAAA;gBAAA;cAAA;cAC3B,IAAI,CAACwS,IAAI,GAAGvG,EAAE,CAACuG,IAAI;cAEnB,IAAI,CAACI,kBAAkB,CAAC3G,EAAE,CAACuG,IAAI,CAAC;cAEhC,IAAIvG,EAAE,CAACuG,IAAI,CAACK,YAAY,EAAE;gBACtB,IAAI,CAACC,2BAA2B,CAAC7G,EAAE,CAACuG,IAAI,CAACK,YAAY,CAAC;cAC1D;cAAC3T,GAAA,MAAAwU,YAAA,GAEwBnX,KAAK,CAAC0B,IAAI,CAAC,IAAI,CAACiV,cAAc,CAACxU,KAAK,CAAC;YAAA;cAAA,MAAAQ,GAAA,GAAAwU,YAAA,CAAArX,MAAA;gBAAA0N,SAAA,CAAA/J,CAAA;gBAAA;cAAA;cAAA2T,eAAA,GAAApV,iCAAA,CAAAmV,YAAA,CAAAxU,GAAA,OAAhDqU,MAAM,GAAAI,eAAA;cAAA5J,SAAA,CAAA/J,CAAA;cAAA,OACVuT,MAAM,CAAC7G,eAAe,CAAC,IAAI,CAACb,YAAY,CAAC;YAAA;cAAA3M,GAAA;cAAA6K,SAAA,CAAA/J,CAAA;cAAA;YAAA;cAAA,OAAA+J,SAAA,CAAAhF,CAAA;UAAA;QAAA,GAAA+E,QAAA;MAAA,CAG1D;MAAA,SAda2I,iBAAiBA,CAAAhF,GAAA;QAAA,OAAAgG,kBAAA,CAAA9U,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAjBqW,iBAAiB;IAAA;EAAA;IAAArY,GAAA;IAAAC,KAAA,EAgB/B,SAAQqY,cAAcA,CAACzG,EAAY,EAAQ;MACvC,IAAI,IAAI,CAACuG,IAAI,CAACzT,EAAE,KAAKkN,EAAE,CAACR,MAAM,EAAE;QAC5B,IAAI,CAACqH,2BAA2B,CAAC7G,EAAE,CAACgH,KAAK,CAAC;MAC9C;IACJ;EAAC;IAAA7Y,GAAA;IAAAC,KAAA,EAED,SAAQsY,kBAAkBA,CAAC1G,EAAgB,EAAQ;MAC/C,IAAI,IAAI,CAACuG,IAAI,CAACzT,EAAE,KAAKkN,EAAE,CAACwD,QAAQ,CAAChE,MAAM,EAAE;QACrC,IAAI,CAACyH,cAAc,UAAO,CAACjH,EAAE,CAACwD,QAAQ,CAAC/D,OAAO,CAAC;MACnD;IACJ;EAAC;IAAAtR,GAAA;IAAAC,KAAA,EAED,SAAQyY,2BAA2BA,CAACG,KAAY,EAAQ;MAAA,IAAA7V,MAAA;MACpD,IAAI,IAAI,CAAC8V,cAAc,CAACxV,GAAG,CAACuV,KAAK,CAAClU,EAAE,CAAC,EAAE;QACnC;MACJ;MAEA,IAAM6U,aAAa,GAAG,IAAIrI,kBAAkB,CAAC,IAAI,CAACiH,IAAI,CAACzT,EAAE,EAAEkU,KAAK,CAAClU,EAAE,EAAE,IAAI,CAAC4M,OAAO,CAAC;MAElF,KAAKiI,aAAa,CAAClH,eAAe,CAAC,IAAI,CAACb,YAAY,CAAC;MAErD,IAAI,CAACqH,cAAc,CAACtX,GAAG,CAAC,CAACqX,KAAK,CAAClU,EAAE,EAAE6U,aAAa,CAAC,CAAC;;MAElD;MACA;MACAA,aAAa,CAACtZ,EAAE,CAAC,kBAAkB,EAAE,UAACuZ,eAAyB,EAAK;QAAA,IAAAC,oBAAA;QAAA,IAAAnU,SAAA,GAAAC,6CAAA,CAC1CiU,eAAe;UAAA/T,KAAA;QAAA;UAArC,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAuC;YAAA,IAA5ByL,OAAO,GAAA5L,KAAA,CAAAzF,KAAA;YACd+C,MAAI,CAAC8V,cAAc,UAAO,CAACxH,OAAO,CAAC;UACvC;QAAC,SAAAvL,GAAA;UAAAR,SAAA,CAAAS,CAAA,CAAAD,GAAA;QAAA;UAAAR,SAAA,CAAAU,CAAA;QAAA;QACD,CAAAyT,oBAAA,GAAA1W,MAAI,CAACuO,OAAO,CAACwE,KAAK,EAAC4D,qBAAqB,CAAApV,KAAA,CAAAmV,oBAAA,GAAC1W,MAAI,CAACoV,IAAI,CAACzT,EAAE,EAAArC,MAAA,CAAAkC,qCAAA,CAAKiV,eAAe,GAAC;MAC9E,CAAC,CAAC;;MAEF;MACA,IAAIZ,KAAK,CAACrF,UAAU,EAAE;QAClB,IAAMoG,gBAAgB,GAAG,IAAI,CAACd,cAAc,CAACjY,GAAG,CAACgY,KAAK,CAACrF,UAAU,CAAC6B,QAAQ,CAAC/D,OAAO,CAAC;QACnFsI,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAEtG,uBAAuB,CAACuF,KAAK,CAAC;MACpD;IACJ;EAAC;IAAA7Y,GAAA;IAAAC,KAAA,EAED,SAAQuY,kBAAkBA,CAACJ,IAAU,EAAQ;MACzC,IAAI,CAAC3G,YAAY,GAAG2G,IAAI,CAACyB,OAAO,CAACC,IAAI,KAAK,WAAW;IACzD;EAAC;AAAA,I;;;;;;yCCzIL,uKAAA9T,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,kCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,kCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,kCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,kCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,kCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,kCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,kCAAA,CAAAH,CAAA,GAAAG,kCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,kCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,kCAAA,CAAAH,CAAA,8DAAAoB,2BAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,kCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,kCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,kCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,kCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,kCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,gCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,kCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,kCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,8BAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,gCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,6BAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,2BAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,gCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,gCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAAnG,8BAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,6BAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,6BAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,2BAAA,CAAA1D,CAAA,gCAAAoD,sBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,2BAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,sBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,sBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAQ6D;AACnB;AACgB;AAEnD,IAAMsQ,eAAe;EAIxB,SAAAA,gBAA2BxI,OAAyB,EAAE;IAAA,IAAAzP,KAAA;IAAAlC,8BAAA,OAAAma,eAAA;IAAAla,8BAAA,wBAHrB,IAAIwE,iBAAiB,CAA8B,CAAC;IAAAxE,8BAAA,0BAClD,IAAIgJ,YAAY,CAAC,CAAC;IAAA,KAE1B0I,OAAyB,GAAzBA,OAAyB;IAChD,IAAI,CAACA,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACkY,aAAa,CAACnI,EAAE,CAAC;IAAA,EAAC;IAC/D,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,YAAY,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACmY,cAAc,CAACpI,EAAE,CAAC;IAAA,EAAC;IACnE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACoY,iBAAiB,CAACrI,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,UAAU,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACqY,cAAc,CAACtI,EAAE,CAAC;IAAA,EAAC;EACrE;;EAEA;AACJ;AACA;EAFI,OAAA9R,2BAAA,CAAAga,eAAA;IAAA/Z,GAAA;IAAAC,KAAA;MAAA,IAAAma,eAAA,GAAAlO,gCAAA,cAAAX,2BAAA,GAAAE,CAAA,CAGA,SAAA8C,QAA4B8C,MAAc;QAAA,OAAA9F,2BAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAA/I,CAAA;YAAA;cAAA+I,QAAA,CAAA/I,CAAA;cAAA,OAChC,IAAI,CAACyU,eAAe,CAACvR,OAAO;YAAA;cAAA,OAAA6F,QAAA,CAAAhE,CAAA,IAC3B,IAAI,CAAC2P,aAAa,CAACzZ,GAAG,CAACwQ,MAAM,CAAC;UAAA;QAAA,GAAA9C,OAAA;MAAA,CACxC;MAAA,SAHYgM,cAAcA,CAAAnK,EAAA;QAAA,OAAAgK,eAAA,CAAA7V,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAduY,cAAc;IAAA;IAK3B;AACJ;AACA;AACA;IAHI;EAAA;IAAAva,GAAA;IAAAC,KAAA;MAAA,IAAAua,oBAAA,GAAAtO,gCAAA,cAAAX,2BAAA,GAAAE,CAAA,CAIA,SAAAwD,SAAiCoG,QAAsB;QAAA,IAAAE,OAAA,EAAAkF,YAAA,EAAAnV,MAAA;QAAA,OAAAiG,2BAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cAAAuJ,SAAA,CAAAvJ,CAAA;cAAA,OAEtB,IAAI,CAAC2U,cAAc,CAAClF,QAAQ,CAAChE,MAAM,CAAC,CAC5DpF,IAAI,CAAC,UAAAyO,WAAW;gBAAA,OAAIA,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE3B,iBAAiB,CAAC1D,QAAQ,CAAC/D,OAAO,EAAE,IAAI,CAAC;cAAA,EAAC,CAC3ErF,IAAI,CACD,UAAAuN,aAAa;gBAAA,OACT,CAAAA,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE5J,SAAS,KAAI4J,aAAa,CAAC/S,KAAK,CAAC+S,aAAa,CAACvX,MAAM,GAAG,CAAC,CAAC;cAAA,CACjF,CAAC;YAAA;cALDsT,OAAgB,GAAApG,SAAA,CAAAzE,CAAA;cAAA,IAOf6K,OAAO;gBAAApG,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAAuJ,SAAA,CAAAvJ,CAAA;cAAA,OACa,IAAI,CAAC2L,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,aAAa,EAAE;gBACzDC,QAAQ,EAARA,QAAQ;gBACRjQ,KAAK,EAAE;cACX,CAAC,CAAC;YAAA;cAHIE,MAAM,GAAA6J,SAAA,CAAAzE,CAAA;cAIZ6K,OAAO,IAAAkF,YAAA,GAAGnV,MAAM,CAAC5C,IAAI,cAAA+X,YAAA,uBAAXA,YAAA,CAAahF,QAAQ,CAAC,CAAC,CAAC;YAAC;cAAA,OAAAtG,SAAA,CAAAxE,CAAA,IAGhC4K,OAAO,IAAI,IAAI;UAAA;QAAA,GAAAtG,QAAA;MAAA,CACzB;MAAA,SAlBY0L,mBAAmBA,CAAApI,GAAA;QAAA,OAAAiI,oBAAA,CAAAjW,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAnB2Y,mBAAmB;IAAA;EAAA;IAAA3a,GAAA;IAAAC,KAAA,EAoBhC,SAAQ2a,uBAAuBA,CAACxC,IAAU,EAAQ;MAC9C,IAAI,CAACkC,aAAa,CAAC9Y,GAAG,CAAC,CAAC4W,IAAI,CAACzT,EAAE,EAAE,IAAIwT,mBAAmB,CAACC,IAAI,EAAE,IAAI,CAAC7G,OAAO,CAAC,CAAC,CAAC;IAClF;EAAC;IAAAvR,GAAA;IAAAC,KAAA,EAED,SAAQia,iBAAiBA,CAACrI,EAAe,EAAQ;MAC7C,IAAI,CAACyI,aAAa,UAAO,CAACzI,EAAE,CAAClN,EAAE,CAAC;IACpC;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQga,cAAcA,CAACpI,EAAc,EAAQ;MACzC,IAAI,CAAC+I,uBAAuB,CAAC/I,EAAE,CAACuG,IAAI,CAAC;IACzC;EAAC;IAAApY,GAAA;IAAAC,KAAA,EAED,SAAQka,cAAcA,CAACtI,EAAY,EAAQ;MACvC,IAAI,CAACyI,aAAa,UAAO,CAACzI,EAAE,CAAClN,EAAE,CAAC;IACpC;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQ+Z,aAAaA,CAACnI,EAAW,EAAQ;MACrC,IAAMgJ,YAAY,GAAG,IAAIpS,GAAG,CAACoJ,EAAE,CAACzD,KAAK,CAAC2H,KAAK,CAAC3U,GAAG,CAAC,UAAAgX,IAAI;QAAA,OAAIA,IAAI,CAACzT,EAAE;MAAA,EAAC,CAAC;;MAEjE;MACA,SAAAX,EAAA,MAAAiV,WAAA,GAAqB9W,KAAK,CAAC0B,IAAI,CAAC,IAAI,CAACyW,aAAa,CAAChW,KAAK,CAACkD,IAAI,CAAC,CAAC,CAAC,EAAAxD,EAAA,GAAAiV,WAAA,CAAAhX,MAAA,EAAA+B,EAAA,IAAE;QAA7D,IAAMqN,MAAM,GAAA4H,WAAA,CAAAjV,EAAA;QACb,IAAI,CAAE6W,YAAY,CAACvX,GAAG,CAAC+N,MAAM,CAAC,EAAE;UAC5B,IAAI,CAACiJ,aAAa,UAAO,CAACjJ,MAAM,CAAC;QACrC;MACJ;;MAEA;MACA;MACA;MAAA,IAAA9L,SAAA,GAAAC,yCAAA,CACmBqM,EAAE,CAACzD,KAAK,CAAC2H,KAAK;QAAArQ,KAAA;MAAA;QAAjC,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAmC;UAAA,IAAxBuS,IAAI,GAAA1S,KAAA,CAAAzF,KAAA;UACX,IAAM4Z,OAAO,GAAG,IAAI,CAACS,aAAa,CAACzZ,GAAG,CAACuX,IAAI,CAACzT,EAAE,CAAC;UAC/C,IAAIkV,OAAO,EAAE;YACT,KAAKA,OAAO,CAACT,MAAM,CAAChB,IAAI,CAAC;UAC7B,CAAC,MAAM;YACH,IAAI,CAACwC,uBAAuB,CAACxC,IAAI,CAAC;UACtC;QACJ;MAAC,SAAArS,GAAA;QAAAR,SAAA,CAAAS,CAAA,CAAAD,GAAA;MAAA;QAAAR,SAAA,CAAAU,CAAA;MAAA;MAED,IAAI,CAACoU,eAAe,CAACtR,OAAO,CAAC,CAAC;IAClC;EAAC;AAAA,I;;;;;;;;;;;;+CC9FL,uKAAA/C,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,wCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,wCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,wCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,wCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,wCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,wCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,wCAAA,CAAAH,CAAA,GAAAG,wCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,wCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,wCAAA,CAAAH,CAAA,8DAAAoB,iCAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,wCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,wCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,wCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,wCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,wCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,sCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,wCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,wCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,oCAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,sCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,mCAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,iCAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,sCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,sCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAA3D,+BAAAA,CAAAoH,CAAA,EAAAI,CAAA,EAAA7D,CAAA,WAAA6D,CAAA,GAAA0C,oCAAA,CAAA1C,CAAA,GAAA2C,+CAAA,CAAA/C,CAAA,EAAAgD,8CAAA,KAAAC,OAAA,CAAAC,SAAA,CAAA9C,CAAA,EAAA7D,CAAA,QAAAuG,oCAAA,CAAA9C,CAAA,EAAAmD,WAAA,IAAA/C,CAAA,CAAAtF,KAAA,CAAAkF,CAAA,EAAAzD,CAAA;AAAA,SAAAwG,+CAAAA,CAAA/C,CAAA,EAAAzD,CAAA,QAAAA,CAAA,iBAAA6G,4BAAA,CAAA7G,CAAA,0BAAAA,CAAA,UAAAA,CAAA,iBAAAA,CAAA,YAAA+E,SAAA,qEAAA+B,2CAAA,CAAArD,CAAA;AAAA,SAAAqD,2CAAAA,CAAA9G,CAAA,mBAAAA,CAAA,YAAA+G,cAAA,sEAAA/G,CAAA;AAAA,SAAAyG,8CAAAA,CAAA,cAAAhD,CAAA,IAAAuD,OAAA,CAAA/C,SAAA,CAAAgD,OAAA,CAAAjC,IAAA,CAAA0B,OAAA,CAAAC,SAAA,CAAAK,OAAA,iCAAAvD,CAAA,aAAAgD,8CAAA,YAAAA,0BAAA,aAAAhD,CAAA;AAAA,SAAA8C,oCAAAA,CAAA9C,CAAA,WAAA8C,oCAAA,GAAAnC,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAe,cAAA,CAAAN,IAAA,eAAApB,CAAA,WAAAA,CAAA,CAAA4B,SAAA,IAAAjB,MAAA,CAAAe,cAAA,CAAA1B,CAAA,MAAA8C,oCAAA,CAAA9C,CAAA;AAAA,SAAAlH,8BAAAA,CAAAkH,CAAA,EAAAzD,CAAA,6BAAAA,CAAA,aAAAA,CAAA,YAAA+E,SAAA,wDAAAtB,CAAA,CAAAQ,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAArE,CAAA,IAAAA,CAAA,CAAAiE,SAAA,IAAA2C,WAAA,IAAA3M,KAAA,EAAAwJ,CAAA,EAAAsC,QAAA,MAAAD,YAAA,WAAA1B,MAAA,CAAAsB,cAAA,CAAAjC,CAAA,iBAAAsC,QAAA,SAAA/F,CAAA,IAAAkH,oCAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAkH,oCAAAA,CAAAzD,CAAA,EAAAzD,CAAA,WAAAkH,oCAAA,GAAA9C,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAAP,IAAA,eAAApB,CAAA,EAAAzD,CAAA,WAAAyD,CAAA,CAAA4B,SAAA,GAAArF,CAAA,EAAAyD,CAAA,KAAAyD,oCAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAnG,oCAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,mCAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,mCAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,iCAAA,CAAA1D,CAAA,gCAAAoD,4BAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,iCAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,4BAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,4BAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAD2C;AAEgB;AACqC;AAuBzF,IAAMqR,qBAAqB,0BAAAjZ,YAAA;EAY9B,SAAAiZ,sBAA2BvJ,OAAyB,EAAE;IAAA,IAAAzP,KAAA;IAAAlC,oCAAA,OAAAkb,qBAAA;IAClDhZ,KAAA,GAAAO,+BAAA,OAAAyY,qBAAA;IAAQjb,oCAAA,CAAAiC,KAAA,oBAZsB,IAAIuC,iBAAiB,CAA2D,CAAC;IAAAxE,oCAAA,CAAAiC,KAAA,4BACzE,IAAIkH,eAAe,CAAC,CAAC;IAAAnJ,oCAAA,CAAAiC,KAAA,qBAC5B,IAAI+G,YAAY,CAAC,CAAC;IAAAhJ,oCAAA,CAAAiC,KAAA,oBACnB,IAAIhC,GAAG,CAAwB,CAAC;IAElE;AACJ;AACA;AACA;IAHID,oCAAA,CAAAiC,KAAA,gBAI8B,IAAI2G,GAAG,CAAS,CAAC;IAAA3G,KAAA,CAEpByP,OAAyB,GAAzBA,OAAyB;IAGhDzP,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKkY,aAAa,CAACnI,EAAE,CAAC;IAAA,EAAC;IAC/D/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,YAAY,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKmY,cAAc,CAACpI,EAAE,CAAC;IAAA,EAAC;IACnE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,UAAU,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKwW,cAAc,CAACzG,EAAE,CAAC;IAAA,EAAC;IACjE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,sBAAsB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKiZ,0BAA0B,CAAClJ,EAAE,CAAC;IAAA,EAAC;IACzF/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,eAAe,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKkZ,mBAAmB,CAACnJ,EAAE,CAAC;IAAA,EAAC;IAC3E/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,iBAAiB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKmZ,qBAAqB,CAACpJ,EAAE,CAAC;IAAA,EAAC;IAC/E/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,YAAY,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKgQ,gBAAgB,CAACD,EAAE,CAAC;IAAA,EAAC;IACrE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKoY,iBAAiB,CAACrI,EAAE,CAAC;IAAA,EAAC;IACvE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,UAAU,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKqY,cAAc,CAACtI,EAAE,CAAC;IAAA,EAAC;IACjE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKyW,kBAAkB,CAAC1G,EAAE,CAAC;IAAA,EAAC;IAAC,OAAA/P,KAAA;EAC9E;;EAEA;AACJ;AACA;AACA;AACA;EAJIS,8BAAA,CAAAuY,qBAAA,EAAAjZ,YAAA;EAAA,OAAA9B,iCAAA,CAAA+a,qBAAA;IAAA9a,GAAA;IAAAC,KAAA;MAAA,IAAAib,cAAA,GAAAhP,sCAAA,cAAAX,iCAAA,GAAAE,CAAA,CAKA,SAAAwD,SAA2BkM,OAAsB;QAAA,IAAAnY,MAAA;QAAA,IAAA+S,KAAA,EAAAqF,OAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAA/K,EAAA;QAAA,OAAAhF,iCAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cAAA2K,EAAA,GACzC4K,OAAO;cAAA,KAAA5K,EAAA;gBAAApB,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAAuJ,SAAA,CAAAvJ,CAAA;cAAA,OAAa,IAAI,CAAC2L,OAAO,CAACgK,MAAM,CAAC1a,GAAG,CAAC,CAAC;YAAA;cAAA0P,EAAA,IAAApB,SAAA,CAAAzE,CAAA,CAAEpH,GAAG,CAAC6X,OAAO;YAAA;cAAA,KAAA5K,EAAA;gBAAApB,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAA,MACpD,IAAI0P,KAAK,yBAAAhT,MAAA,CAAyB6Y,OAAO,CAAE,CAAC;YAAA;cAAAhM,SAAA,CAAAvJ,CAAA;cAAA,OAGlC,IAAI,CAAC2L,OAAO,CAACwE,KAAK,CAAClV,GAAG,CAAC,CAAC;YAAA;cAAtCkV,KAAK,GAAA5G,SAAA,CAAAzE,CAAA;cACL0Q,OAAO,GAAGD,OAAO,GACjBpF,KAAK,CAAC9Q,MAAM,CAAC,SAAS,EAAEkW,OAAO,CAAC,CAAC7W,KAAK,CAAClD,GAAG,CAAC,UAAAsI,CAAC;gBAAA,OAAIA,CAAC,CAAC/E,EAAE;cAAA,EAAC,GACrDoR,KAAK,CAACzR,KAAK,CAACsT,MAAM,CAAC,UAAAlO,CAAC;gBAAA,OAAI,CAACA,CAAC,CAACyR,OAAO;cAAA,EAAC,CAAC/Z,GAAG,CAAC,UAAAsI,CAAC;gBAAA,OAAIA,CAAC,CAAC/E,EAAE;cAAA,EAAC;cAAA,IAEnDyW,OAAO,CAACnZ,MAAM;gBAAAkN,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAA,OAAAuJ,SAAA,CAAAxE,CAAA;YAAA;cAIb0Q,UAAU,GAAGD,OAAO,CAACI,IAAI,CAAC,UAAAnK,MAAM;gBAAA,OAAI,CAAErO,MAAI,CAACyY,cAAc,CAACnY,GAAG,CAAC+N,MAAM,CAAC,IAAIrO,MAAI,CAAC0Y,UAAU,CAACpY,GAAG,CAAC+N,MAAM,CAAC;cAAA,EAAC;cAAA,IACrGgK,UAAU;gBAAAlM,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAA,OAAAuJ,SAAA,CAAAxE,CAAA;YAAA;cAIV2Q,gBAAgB,kBAAAhZ,MAAA,CAAkB6Y,OAAO,IAAI,WAAW;cAE9D,IAAI,IAAI,CAACQ,sBAAsB,CAACtS,QAAQ,CAACiS,gBAAgB,CAAC,EAAE;gBACxD,IAAI,CAACK,sBAAsB,CAACxS,kBAAkB,cAAA+C,sCAAA,cAAAX,iCAAA,GAAAE,CAAA,CAAC,SAAA8C,QAAA;kBAAA,IAAAjJ,MAAA;kBAAA,OAAAiG,iCAAA,GAAAC,CAAA,WAAAmD,QAAA;oBAAA,kBAAAA,QAAA,CAAA/I,CAAA;sBAAA;wBAAA+I,QAAA,CAAA/I,CAAA;wBAAA,OACtB5C,MAAI,CAACuO,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,mBAAmB,EAAE;0BAACC,QAAQ,EAAE;4BAAC8F,OAAO,EAAPA;0BAAO;wBAAC,CAAC,CAAC;sBAAA;wBAAnF7V,MAAM,GAAAqJ,QAAA,CAAAjE,CAAA;wBAAA,KACRpF,MAAM,CAAC9B,KAAK;0BAAAmL,QAAA,CAAA/I,CAAA;0BAAA;wBAAA;wBAAA,MAAQN,MAAM,CAAC9B,KAAK;sBAAA;wBAEpCR,MAAI,CAAC4Y,4BAA4B,CAACR,OAAO,EAAE9V,MAAM,CAAC5C,IAAI,CAAC+Y,cAAc,CAAC;sBAAC;wBAAA,OAAA9M,QAAA,CAAAhE,CAAA;oBAAA;kBAAA,GAAA4D,OAAA;gBAAA,CAC1E,IAAE+M,gBAAgB,CAAC;cACxB;cAACnM,SAAA,CAAAvJ,CAAA;cAAA,OAEK,IAAI,CAAC+V,sBAAsB,CAAC9a,GAAG,CAACya,gBAAgB,CAAC;YAAA;cAAA,OAAAnM,SAAA,CAAAxE,CAAA;UAAA;QAAA,GAAAsE,QAAA;MAAA,CAC1D;MAAA,SA/BY4M,aAAaA,CAAAzL,EAAA;QAAA,OAAA8K,cAAA,CAAA3W,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAb6Z,aAAa;IAAA;IAiC1B;AACJ;AACA;AACA;IAHI;EAAA;IAAA7b,GAAA;IAAAC,KAAA;MAAA,IAAA6b,WAAA,GAAA5P,sCAAA,cAAAX,iCAAA,GAAAE,CAAA,CAIA,SAAAuE,SAAwBqB,MAAc;QAAA,IAAAtK,MAAA;QAAA,OAAAwE,iCAAA,GAAAC,CAAA,WAAAyE,SAAA;UAAA,kBAAAA,SAAA,CAAArK,CAAA;YAAA;cAAAqK,SAAA,CAAArK,CAAA;cAAA,OACrB,IAAI,CAAC2L,OAAO,CAACwE,KAAK,CAAClV,GAAG,CAAC,CAAC;YAAA;cAAA,IAAAoP,SAAA,CAAAvF,CAAA,CAAEpH,GAAG,CAAC+N,MAAM;gBAAApB,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAAA,OAAAqK,SAAA,CAAAtF,CAAA,IACtC5J,SAAS;YAAA;cAAA,MAGhB,CAAE,IAAI,CAAC0a,cAAc,CAACnY,GAAG,CAAC+N,MAAM,CAAC,IAAI,IAAI,CAACqK,UAAU,CAACpY,GAAG,CAAC+N,MAAM,CAAC;gBAAApB,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAChE,IAAI,IAAI,CAAC+V,sBAAsB,CAACtS,QAAQ,CAACgI,MAAM,CAAC,EAAE;gBAC9C,IAAI,CAACsK,sBAAsB,CAACxS,kBAAkB,cAAA+C,sCAAA,cAAAX,iCAAA,GAAAE,CAAA,CAAC,SAAAiE,SAAA;kBAAA,IAAApK,MAAA;kBAAA,OAAAiG,iCAAA,GAAAC,CAAA,WAAAmE,SAAA;oBAAA,kBAAAA,SAAA,CAAA/J,CAAA;sBAAA;wBAAA+J,SAAA,CAAA/J,CAAA;wBAAA,OACtBmB,MAAI,CAACwK,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,mBAAmB,EAAE;0BAACC,QAAQ,EAAE;4BAAChE,MAAM,EAANA;0BAAM;wBAAC,CAAC,CAAC;sBAAA;wBAAlF/L,MAAM,GAAAqK,SAAA,CAAAjF,CAAA;wBAAA,KAERpF,MAAM,CAAC9B,KAAK;0BAAAmM,SAAA,CAAA/J,CAAA;0BAAA;wBAAA;wBAAA,MACNN,MAAM,CAAC9B,KAAK;sBAAA;wBAGtBuD,MAAI,CAACgV,uBAAuB,CAAC1K,MAAM,EAAE/L,MAAM,CAAC5C,IAAI,CAAC+Y,cAAc,CAAC;wBAChE1U,MAAI,CAACiV,yBAAyB,CAAC3K,MAAM,CAAC;sBAAC;wBAAA,OAAA1B,SAAA,CAAAhF,CAAA;oBAAA;kBAAA,GAAA+E,QAAA;gBAAA,CAC1C,IAAE2B,MAAM,CAAC;cACd;cAACpB,SAAA,CAAArK,CAAA;cAAA,OAEK,IAAI,CAAC+V,sBAAsB,CAAC9a,GAAG,CAACwQ,MAAM,CAAC;YAAA;cAAA,OAAApB,SAAA,CAAAtF,CAAA,IAG1C,IAAI,CAAC8Q,cAAc,CAAC5a,GAAG,CAACwQ,MAAM,CAAC;UAAA;QAAA,GAAArB,QAAA;MAAA,CACzC;MAAA,SAvBYiM,UAAUA,CAAA1J,GAAA;QAAA,OAAAuJ,WAAA,CAAAvX,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAVia,UAAU;IAAA;IAyBvB;AACJ;AACA;IAFI;EAAA;IAAAjc,GAAA;IAAAC,KAAA;MAAA,IAAAic,QAAA,GAAAhQ,sCAAA,cAAAX,iCAAA,GAAAE,CAAA,CAGA,SAAA6E,SAAqBe,MAAc;QAAA,IAAA8K,UAAA,EAAA5W,SAAA,EAAAG,KAAA,EAAA0W,aAAA,EAAA/F,GAAA;QAAA,OAAA9K,iCAAA,GAAAC,CAAA,WAAAgF,SAAA;UAAA,kBAAAA,SAAA,CAAAjG,CAAA,GAAAiG,SAAA,CAAA5K,CAAA;YAAA;cAAA4K,SAAA,CAAA5K,CAAA;cAAA,OACN,IAAI,CAACqW,UAAU,CAAC5K,MAAM,CAAC;YAAA;cAA1C8K,UAAU,GAAA3L,SAAA,CAAA9F,CAAA;cAAA,IAEVyR,UAAU;gBAAA3L,SAAA,CAAA5K,CAAA;gBAAA;cAAA;cAAA,OAAA4K,SAAA,CAAA7F,CAAA;YAAA;cAAApF,SAAA,GAAAC,+CAAA,CAIY2W,UAAU,CAAC7X,KAAK;cAAAkM,SAAA,CAAAjG,CAAA;cAAAhF,SAAA,CAAAI,CAAA;YAAA;cAAA,KAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA;gBAAA2K,SAAA,CAAA5K,CAAA;gBAAA;cAAA;cAAjCwW,aAAa,GAAA1W,KAAA,CAAAzF,KAAA;cAAA,KAChBmc,aAAa,CAACC,QAAQ;gBAAA7L,SAAA,CAAA5K,CAAA;gBAAA;cAAA;cAAA4K,SAAA,CAAA5K,CAAA;cAAA,OAChB,IAAI,CAAC2L,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,KAAK,EAAE;gBAACC,QAAQ,EAAE+G,aAAa,CAAC/G;cAAQ,CAAC,CAAC;YAAA;cAAA7E,SAAA,CAAA5K,CAAA;cAAA;YAAA;cAAA4K,SAAA,CAAA5K,CAAA;cAAA;YAAA;cAAA4K,SAAA,CAAAjG,CAAA;cAAA8L,GAAA,GAAA7F,SAAA,CAAA9F,CAAA;cAAAnF,SAAA,CAAAS,CAAA,CAAAqQ,GAAA;YAAA;cAAA7F,SAAA,CAAAjG,CAAA;cAAAhF,SAAA,CAAAU,CAAA;cAAA,OAAAuK,SAAA,CAAAvK,CAAA;YAAA;cAAA,OAAAuK,SAAA,CAAA7F,CAAA;UAAA;QAAA,GAAA2F,QAAA;MAAA,CAGpF;MAAA,SAZYgM,OAAOA,CAAAjJ,GAAA;QAAA,OAAA6I,QAAA,CAAA3X,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAPsa,OAAO;IAAA;IAcpB;AACJ;AACA;AACA;AACA;AACA;IALI;EAAA;IAAAtc,GAAA;IAAAC,KAAA;MAAA,IAAAsc,UAAA,GAAArQ,sCAAA,cAAAX,iCAAA,GAAAE,CAAA,CAMA,SAAA0G,SAAuBkD,QAAsB;QAAA,IAAAmH,QAAA,EAAApB,OAAA,EAAAqB,aAAA,EAAA1G,KAAA,EAAA2G,YAAA,EAAAC,gBAAA,EAAAC,eAAA,EAAAjW,UAAA,EAAAC,MAAA,EAAAyK,MAAA,EAAA8K,UAAA,EAAAU,iBAAA,EAAAnU,UAAA,EAAAC,MAAA,EAAAmU,mBAAA,EAAAjE,KAAA,EAAAvT,MAAA,EAAAgR,GAAA,EAAAC,GAAA;QAAA,OAAAhL,iCAAA,GAAAC,CAAA,WAAA6G,SAAA;UAAA,kBAAAA,SAAA,CAAA9H,CAAA,GAAA8H,SAAA,CAAAzM,CAAA;YAAA;cACnC4W,QAAQ,GAAGnH,QAAQ,CAAC/D,OAAO,YAAAhP,MAAA,CAClB+S,QAAQ,CAAChE,MAAM,OAAA/O,MAAA,CAAI+S,QAAQ,CAAC/D,OAAO,IAC5C+D,QAAQ,CAAChE,MAAM,WAAA/O,MAAA,CACH+S,QAAQ,CAAChE,MAAM,IACvBgE,QAAQ,CAAC8F,OAAO,YAAA7Y,MAAA,CACH+S,QAAQ,CAAC8F,OAAO,IACzB,WAAW;cAAA,KAErB,IAAI,CAAC4B,cAAc,CAACzZ,GAAG,CAACkZ,QAAQ,CAAC;gBAAAnK,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAA,OAAAyM,SAAA,CAAA1H,CAAA,IAC1B,IAAI,CAACoS,cAAc,CAAClc,GAAG,CAAC2b,QAAQ,CAAC;YAAA;cAGxCpB,OAAiB,GAAG,EAAE;cAAA/I,SAAA,CAAAzM,CAAA;cAAA,OAEN,IAAI,CAAC2L,OAAO,CAACwE,KAAK,CAAClV,GAAG,CAAC,CAAC;YAAA;cAAtCkV,KAAK,GAAA1D,SAAA,CAAA3H,CAAA;cAAA,KAEP2K,QAAQ,CAAC/D,OAAO;gBAAAe,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAA,IACXyP,QAAQ,CAAChE,MAAM;gBAAAgB,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAA,MACV,IAAI0P,KAAK,CAAC,6CAA6C,CAAC;YAAA;cAElE8F,OAAO,GAAG,CAAC/F,QAAQ,CAAChE,MAAM,CAAC;cAC3BoL,aAAa,GAAGpH,QAAQ,CAAC/D,OAAO;cAACe,SAAA,CAAAzM,CAAA;cAAA;YAAA;cAAA,KAC1ByP,QAAQ,CAAChE,MAAM;gBAAAgB,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cACtBwV,OAAO,GAAG,CAAC/F,QAAQ,CAAChE,MAAM,CAAC;cAACgB,SAAA,CAAAzM,CAAA;cAAA;YAAA;cAAA,KACrByP,QAAQ,CAAC8F,OAAO;gBAAA9I,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAAyM,SAAA,CAAAzM,CAAA;cAAA,OACjB,IAAI,CAACiW,aAAa,CAACxG,QAAQ,CAAC8F,OAAO,CAAC;YAAA;cAC1CC,OAAO,GAAGrF,KAAK,CAAC9Q,MAAM,CAAC,SAAS,EAAEoQ,QAAQ,CAAC8F,OAAO,CAAC,CAAC7W,KAAK,CAAClD,GAAG,CAAC,UAAAsI,CAAC;gBAAA,OAAIA,CAAC,CAAC/E,EAAE;cAAA,EAAC;cAAC0N,SAAA,CAAAzM,CAAA;cAAA;YAAA;cAAAyM,SAAA,CAAAzM,CAAA;cAAA,OAEnE,IAAI,CAACiW,aAAa,CAAC,IAAI,CAAC;YAAA;cAC9BT,OAAO,GAAGrF,KAAK,CAACzR,KAAK,CAACsT,MAAM,CAAC,UAAAlO,CAAC;gBAAA,OAAI,CAACA,CAAC,CAACyR,OAAO;cAAA,EAAC,CAAC/Z,GAAG,CAAC,UAAAsI,CAAC;gBAAA,OAAIA,CAAC,CAAC/E,EAAE;cAAA,EAAC;YAAC;cAG7D+X,YAAY,GAAG,CAAC;cAChBC,gBAAgB,GAAG,CAAC;cACpBC,eAAe,GAAG,CAAC;cAAAjW,UAAA,GAAAnB,+CAAA,CAEF4V,OAAO;cAAA/I,SAAA,CAAA9H,CAAA;cAAA5D,UAAA,CAAAhB,CAAA;YAAA;cAAA,KAAAiB,MAAA,GAAAD,UAAA,CAAAf,CAAA,IAAAC,IAAA;gBAAAwM,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAjByL,MAAM,GAAAzK,MAAA,CAAA3G,KAAA;cAAAoS,SAAA,CAAAzM,CAAA;cAAA,OACY,IAAI,CAACqW,UAAU,CAAC5K,MAAM,CAAC;YAAA;cAA1C8K,UAAU,GAAA9J,SAAA,CAAA3H,CAAA;cAAA,IAEXyR,UAAU;gBAAA9J,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAA,OAAAyM,SAAA,CAAA1H,CAAA;YAAA;cAIXkS,iBAAiB,GAAG,KAAK;cAAAnU,UAAA,GAAAlD,+CAAA,CACT2W,UAAU,CAAC7X,KAAK;cAAA+N,SAAA,CAAA9H,CAAA;cAAA7B,UAAA,CAAA/C,CAAA;YAAA;cAAA,KAAAgD,MAAA,GAAAD,UAAA,CAAA9C,CAAA,IAAAC,IAAA;gBAAAwM,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAzBiT,KAAK,GAAAlQ,MAAA,CAAA1I,KAAA;cAAA,MACRwc,aAAa,IAAI5D,KAAK,CAACxD,QAAQ,CAAC/D,OAAO,KAAKmL,aAAa;gBAAApK,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAA,OAAAyM,SAAA,CAAA1H,CAAA;YAAA;cAI7D,IAAIkO,KAAK,CAACwD,QAAQ,EAAE;gBAChB,IAAI,CAACQ,iBAAiB,EAAE;kBACpBD,eAAe,EAAE;kBACjBC,iBAAiB,GAAG,IAAI;gBAC5B;gBACAF,gBAAgB,EAAE;cACtB;cAEAD,YAAY,KAAAI,mBAAA,GAAKjE,KAAK,CAAC6D,YAAY,cAAAI,mBAAA,cAAAA,mBAAA,GAAI,CAAE;YAAC;cAAAzK,SAAA,CAAAzM,CAAA;cAAA;YAAA;cAAAyM,SAAA,CAAAzM,CAAA;cAAA;YAAA;cAAAyM,SAAA,CAAA9H,CAAA;cAAA+L,GAAA,GAAAjE,SAAA,CAAA3H,CAAA;cAAAhC,UAAA,CAAA1C,CAAA,CAAAsQ,GAAA;YAAA;cAAAjE,SAAA,CAAA9H,CAAA;cAAA7B,UAAA,CAAAzC,CAAA;cAAA,OAAAoM,SAAA,CAAApM,CAAA;YAAA;cAAAoM,SAAA,CAAAzM,CAAA;cAAA;YAAA;cAAAyM,SAAA,CAAAzM,CAAA;cAAA;YAAA;cAAAyM,SAAA,CAAA9H,CAAA;cAAAgM,GAAA,GAAAlE,SAAA,CAAA3H,CAAA;cAAA/D,UAAA,CAAAX,CAAA,CAAAuQ,GAAA;YAAA;cAAAlE,SAAA,CAAA9H,CAAA;cAAA5D,UAAA,CAAAV,CAAA;cAAA,OAAAoM,SAAA,CAAApM,CAAA;YAAA;cAI5CX,MAAM,GAAG;gBAAEoX,YAAY,EAAZA,YAAY;gBAAEC,gBAAgB,EAAhBA,gBAAgB;gBAAEC,eAAe,EAAfA,eAAe;gBAAEP,QAAQ,EAAEM,gBAAgB,GAAG;cAAE,CAAC;cAClG,IAAI,CAACI,cAAc,CAACvb,GAAG,CAACgb,QAAQ,EAAElX,MAAM,CAAC;cAAC,OAAA+M,SAAA,CAAA1H,CAAA,IAEnCrF,MAAM;UAAA;QAAA,GAAA6M,QAAA;MAAA,CAChB;MAAA,SAlEY6K,SAASA,CAAA1I,GAAA;QAAA,OAAAiI,UAAA,CAAAhY,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAATgb,SAAS;IAAA;IAoEtB;AACJ;AACA;AACA;IAHI;EAAA;IAAAhd,GAAA;IAAAC,KAAA,EAIA,SAAOgd,iBAAiBA,CAAC5L,MAAc,EAA+B;MAAA,IAAA6L,qBAAA;QAAAtV,MAAA;MAAA,SAAA7F,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAA1Bkb,QAAQ,OAAAhb,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAR+a,QAAQ,CAAA/a,IAAA,QAAAJ,SAAA,CAAAI,IAAA;MAAA;MAChD,CAAA8a,qBAAA,OAAI,CAACzB,cAAc,CAAC5a,GAAG,CAACwQ,MAAM,CAAC,cAAA6L,qBAAA,eAA/BA,qBAAA,UAAuC,CAAA3Y,KAAA,CAAA2Y,qBAAA,EAAIC,QAAQ,CAAC;MACpDA,QAAQ,CAACzb,OAAO,CAAC,UAAA4P,OAAO;QAAA,OAAI1J,MAAI,CAACoU,yBAAyB,CAAC3K,MAAM,EAAEC,OAAO,CAAC;MAAA,EAAC;IAChF;EAAC;IAAAtR,GAAA;IAAAC,KAAA,EAED,SAAQ+Z,aAAaA,CAACnI,EAAW,EAAQ;MACrC;MACA;MACA;MACA;MAAA,IAAAuL,UAAA,GAAA5X,+CAAA,CACqB,IAAI,CAACiW,cAAc,CAACnX,KAAK,CAACkD,IAAI,CAAC,CAAC;QAAA6V,MAAA;MAAA;QAArD,KAAAD,UAAA,CAAAzX,CAAA,MAAA0X,MAAA,GAAAD,UAAA,CAAAxX,CAAA,IAAAC,IAAA,GAAuD;UAAA,IAA5CwL,MAAM,GAAAgM,MAAA,CAAApd,KAAA;UACb,IAAI,CAACyb,UAAU,CAAC4B,GAAG,CAACjM,MAAM,CAAC;QAC/B;MAAC,SAAAtL,GAAA;QAAAqX,UAAA,CAAApX,CAAA,CAAAD,GAAA;MAAA;QAAAqX,UAAA,CAAAnX,CAAA;MAAA;MACD,IAAI,CAAC0V,sBAAsB,CAACnS,SAAS,CAAC,CAAC;MACvC,IAAI,CAACwS,yBAAyB,CAAC,CAAC;MAChC,IAAI,CAAC3B,eAAe,CAACtR,OAAO,CAAC,CAAC;IAClC;EAAC;IAAA/I,GAAA;IAAAC,KAAA,EAED,SAAQ6R,gBAAgBA,CAACD,EAAc,EAAQ;MAC3C,KAAK,IAAI,CAAC0L,sCAAsC,CAAC1L,EAAE,CAAC;IACxD;EAAC;IAAA7R,GAAA;IAAAC,KAAA,EAED,SAAQ8a,0BAA0BA,CAAClJ,EAAwB,EAAQ;MAAA,IAAA2L,sBAAA;MAC/D,CAAAA,sBAAA,OAAI,CAAC/B,cAAc,CAAC5a,GAAG,CAACgR,EAAE,CAACuK,aAAa,CAAC/G,QAAQ,CAAChE,MAAM,CAAC,cAAAmM,sBAAA,eAAzDA,sBAAA,CAA2Dhc,GAAG,CAACqQ,EAAE,CAACuK,aAAa,CAAC;MAChF,IAAI,CAACJ,yBAAyB,CAACnK,EAAE,CAACuK,aAAa,CAAC/G,QAAQ,CAAChE,MAAM,EAAEQ,EAAE,CAACuK,aAAa,CAAC/G,QAAQ,CAAC/D,OAAO,CAAC;IACvG;EAAC;IAAAtR,GAAA;IAAAC,KAAA,EAED,SAAQ+a,mBAAmBA,CAACnJ,EAAiB,EAAQ;MACjD,IAAI,CAAC4L,sBAAsB,CAAC,CAAC5L,EAAE,CAACuK,aAAa,CAAC/G,QAAQ,CAAChE,MAAM,CAAC,EAAE,CAACQ,EAAE,CAACuK,aAAa,CAAC,CAAC;MACnF,IAAI,CAACJ,yBAAyB,CAACnK,EAAE,CAACuK,aAAa,CAAC/G,QAAQ,CAAChE,MAAM,EAAEQ,EAAE,CAACuK,aAAa,CAAC/G,QAAQ,CAAC/D,OAAO,CAAC;IACvG;EAAC;IAAAtR,GAAA;IAAAC,KAAA,EAED,SAAQgb,qBAAqBA,CAACpJ,EAAmB,EAAQ;MAAA,IAAA6L,sBAAA;MACrD,CAAAA,sBAAA,OAAI,CAACjC,cAAc,CAAC5a,GAAG,CAACgR,EAAE,CAACwD,QAAQ,CAAChE,MAAM,CAAC,cAAAqM,sBAAA,eAA3CA,sBAAA,UAAmD,CAAC7L,EAAE,CAACwD,QAAQ,CAAC/D,OAAO,CAAC;MACxE,IAAI,CAAC0K,yBAAyB,CAACnK,EAAE,CAACwD,QAAQ,CAAChE,MAAM,EAAEQ,EAAE,CAACwD,QAAQ,CAAC/D,OAAO,CAAC;IAC3E;EAAC;IAAAtR,GAAA;IAAAC,KAAA,EAED,SAAQia,iBAAiBA,CAACrI,EAAe,EAAQ;MAC7C,IAAI,CAAC8L,iCAAiC,CAAC9L,EAAE,CAAClN,EAAE,CAAC;IACjD;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQga,cAAcA,CAACpI,EAAc,EAAQ;MACzC,IAAI,CAAC8L,iCAAiC,CAAC9L,EAAE,CAACuG,IAAI,CAACzT,EAAE,CAAC;IACtD;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQka,cAAcA,CAACtI,EAAY,EAAQ;MACvC,IAAI,CAAC8L,iCAAiC,CAAC9L,EAAE,CAAClN,EAAE,CAAC;IACjD;EAAC;IAAA3E,GAAA;IAAAC,KAAA;MAAA,IAAA2d,eAAA,GAAA1R,sCAAA,cAAAX,iCAAA,GAAAE,CAAA,CAED,SAAAgH,SAA6BZ,EAAY;QAAA,IAAAvM,MAAA,EAAA8W,aAAA;QAAA,OAAA7Q,iCAAA,GAAAC,CAAA,WAAAmH,SAAA;UAAA,kBAAAA,SAAA,CAAA/M,CAAA;YAAA;cAAA,KACjC,IAAI,CAAC6V,cAAc,CAACnY,GAAG,CAACuO,EAAE,CAACR,MAAM,CAAC;gBAAAsB,SAAA,CAAA/M,CAAA;gBAAA;cAAA;cAAA+M,SAAA,CAAA/M,CAAA;cAAA,OAGb,IAAI,CAAC2L,OAAO,CAACK,MAAM,CAACwD,IAAI,CACzC,mBAAmB,EACnB;gBAACC,QAAQ,EAAE;kBAAChE,MAAM,EAAEQ,EAAE,CAACR,MAAM;kBAAEC,OAAO,EAAEO,EAAE,CAACgH,KAAK,CAAClU;gBAAE;cAAC,CACxD,CAAC;YAAA;cAHKW,MAAM,GAAAqN,SAAA,CAAAjI,CAAA;cAIN0R,aAAa,GAAG9W,MAAM,CAAC5C,IAAI,CAAC+Y,cAAc,CAAC,CAAC,CAAC;cACnD,IAAIW,aAAa,EAAE;gBACf,IAAI,CAACX,cAAc,CAAC5a,GAAG,CAACgR,EAAE,CAACR,MAAM,CAAC,CAAC7P,GAAG,CAAC4a,aAAa,CAAC;gBACrD,IAAI,CAACJ,yBAAyB,CAACnK,EAAE,CAACR,MAAM,EAAEQ,EAAE,CAACgH,KAAK,CAAClU,EAAE,CAAC;cAC1D;YAAC;cAAA,OAAAgO,SAAA,CAAAhI,CAAA;UAAA;QAAA,GAAA8H,QAAA;MAAA,CAER;MAAA,SAda6F,cAAcA,CAAA5C,GAAA;QAAA,OAAAkI,eAAA,CAAArZ,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAdsW,cAAc;IAAA;EAAA;IAAAtY,GAAA;IAAAC,KAAA,EAgB5B,SAAQsY,kBAAkBA,CAAC1G,EAAgB,EAAQ;MAAA,IAAAgM,sBAAA;MAC/C,CAAAA,sBAAA,OAAI,CAACpC,cAAc,CAAC5a,GAAG,CAACgR,EAAE,CAACwD,QAAQ,CAAChE,MAAM,CAAC,cAAAwM,sBAAA,eAA3CA,sBAAA,UAAmD,CAAChM,EAAE,CAACwD,QAAQ,CAAC/D,OAAO,CAAC;MACxE,IAAI,CAAC0K,yBAAyB,CAACnK,EAAE,CAACwD,QAAQ,CAAChE,MAAM,EAAEQ,EAAE,CAACwD,QAAQ,CAAC/D,OAAO,CAAC;IAC3E;;IAEA;AACJ;AACA;EAFI;IAAAtR,GAAA;IAAAC,KAAA,EAGA,SAAQ+b,yBAAyBA,CAAC3K,MAAe,EAAEC,OAAgB,EAAQ;MACvE,IAAID,MAAM,EAAE;QACR,IAAI,CAAC0L,cAAc,UAAO,SAAAza,MAAA,CAAS+O,MAAM,CAAE,CAAC;QAE5C,IAAIC,OAAO,EAAE;UACT,IAAI,CAACyL,cAAc,UAAO,UAAAza,MAAA,CAAU+O,MAAM,OAAA/O,MAAA,CAAIgP,OAAO,CAAE,CAAC;QAC5D,CAAC,MAAM;UAAA,IAAAwM,UAAA,GAAAtY,+CAAA,CACe,IAAI,CAACuX,cAAc,CAACvV,IAAI,CAAC,CAAC;YAAAuW,MAAA;UAAA;YAA5C,KAAAD,UAAA,CAAAnY,CAAA,MAAAoY,MAAA,GAAAD,UAAA,CAAAlY,CAAA,IAAAC,IAAA,GAA8C;cAAA,IAAnC7F,GAAG,GAAA+d,MAAA,CAAA9d,KAAA;cACV,IAAID,GAAG,CAACge,UAAU,UAAA1b,MAAA,CAAU+O,MAAM,MAAG,CAAC,EAAE;gBACpC,IAAI,CAAC0L,cAAc,UAAO,CAAC/c,GAAG,CAAC;cACnC;YACJ;UAAC,SAAA+F,GAAA;YAAA+X,UAAA,CAAA9X,CAAA,CAAAD,GAAA;UAAA;YAAA+X,UAAA,CAAA7X,CAAA;UAAA;QACL;QAAC,IAAAgY,UAAA,GAAAzY,+CAAA,CAEiB,IAAI,CAACuX,cAAc,CAACvV,IAAI,CAAC,CAAC;UAAA0W,MAAA;QAAA;UAA5C,KAAAD,UAAA,CAAAtY,CAAA,MAAAuY,MAAA,GAAAD,UAAA,CAAArY,CAAA,IAAAC,IAAA,GAA8C;YAAA,IAAnC7F,KAAG,GAAAke,MAAA,CAAAje,KAAA;YACV,IAAID,KAAG,CAACge,UAAU,CAAC,QAAQ,CAAC,IAAIhe,KAAG,KAAK,WAAW,EAAE;cACjD,IAAI,CAAC+c,cAAc,UAAO,CAAC/c,KAAG,CAAC;YACnC;UACJ;QAAC,SAAA+F,GAAA;UAAAkY,UAAA,CAAAjY,CAAA,CAAAD,GAAA;QAAA;UAAAkY,UAAA,CAAAhY,CAAA;QAAA;MACL,CAAC,MAAM;QACH,IAAI,CAAC8W,cAAc,CAAChZ,KAAK,CAAC,CAAC;MAC/B;MAEA,IAAI,CAAC9C,IAAI,CAAC,QAAQ,CAAC;IACvB;EAAC;IAAAjB,GAAA;IAAAC,KAAA,EAED,SAAQke,iCAAiCA,CAAC/C,OAAiB,EAAQ;MAAA,IAAAzT,MAAA;MAC/D,IAAMyW,UAAU,GAAG,IAAI3V,GAAG,CAAC2S,OAAO,CAAC;MACnCA,OAAO,CAAC1Z,OAAO,CAAC,UAAA2P,MAAM,EAAI;QACtB1J,MAAI,CAACoV,cAAc,UAAO,SAAAza,MAAA,CAAS+O,MAAM,CAAE,CAAC;MAChD,CAAC,CAAC;MAAC,IAAAgN,UAAA,GAAA7Y,+CAAA,CAEe,IAAI,CAACuX,cAAc,CAACvV,IAAI,CAAC,CAAC;QAAA8W,MAAA;MAAA;QAA5C,KAAAD,UAAA,CAAA1Y,CAAA,MAAA2Y,MAAA,GAAAD,UAAA,CAAAzY,CAAA,IAAAC,IAAA,GAA8C;UAAA,IAAnC7F,GAAG,GAAAse,MAAA,CAAAre,KAAA;UACV,IAAID,GAAG,CAACge,UAAU,CAAC,QAAQ,CAAC,IAAIhe,GAAG,KAAK,WAAW,EAAE;YACjD,IAAI,CAAC+c,cAAc,UAAO,CAAC/c,GAAG,CAAC;YAC/B;UACJ;UACA,IAAIA,GAAG,CAACge,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC1B,IAAMO,KAAK,GAAGve,GAAG,CAACwe,KAAK,CAAC,GAAG,CAAC;YAC5B,IAAID,KAAK,CAACtc,MAAM,IAAI,CAAC,IAAImc,UAAU,CAAC9a,GAAG,CAACib,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;cAC/C,IAAI,CAACxB,cAAc,UAAO,CAAC/c,GAAG,CAAC;YACnC;UACJ;QACJ;MAAC,SAAA+F,GAAA;QAAAsY,UAAA,CAAArY,CAAA,CAAAD,GAAA;MAAA;QAAAsY,UAAA,CAAApY,CAAA;MAAA;MAED,IAAI,CAAChF,IAAI,CAAC,QAAQ,CAAC;IACvB;EAAC;IAAAjB,GAAA;IAAAC,KAAA;MAAA,IAAAwe,uCAAA,GAAAvS,sCAAA,cAAAX,iCAAA,GAAAE,CAAA,CAED,SAAAoH,SAAqDhB,EAAc;QAAA,IAAA6M,kBAAA,EAAAtC,aAAA,EAAAuC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,aAAA,EAAAC,MAAA,EAAAC,OAAA,EAAAC,eAAA,EAAAC,aAAA;QAAA,OAAA7T,iCAAA,GAAAC,CAAA,WAAAsH,SAAA;UAAA,kBAAAA,SAAA,CAAAlN,CAAA;YAAA;cACzD8Y,kBAAkB,GAAG,IAAI,CAACjD,cAAc,CAAC5a,GAAG,CAACgR,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAChE,MAAM,CAAC;cACxE+K,aAAa,GAAGsC,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAE7d,GAAG,CAACgR,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAC/D,OAAO,CAAC;cAAA,MAEtE,CAACoN,kBAAkB,IAAI,CAACtC,aAAa,IAAIvK,EAAE,CAAC0D,OAAO,CAAC9S,IAAI,KAAK,WAAW;gBAAAqQ,SAAA,CAAAlN,CAAA;gBAAA;cAAA;cAAA,OAAAkN,SAAA,CAAAnI,CAAA;YAAA;cAAAmI,SAAA,CAAAlN,CAAA;cAAA,OAK3D,IAAI,CAAC2L,OAAO,CAAC8N,KAAK,CAAC,CAAC;YAAA;cAA/BV,EAAE,GAAA7L,SAAA,CAAApI,CAAA;cACFkU,IAAI,GAAG/M,EAAE,CAAC0D,OAAO,CAAC+J,MAAM,CAACC,IAAI,CAAC5a,EAAE,KAAKga,EAAE,CAACha,EAAE;cAAA,KAG5Cia,IAAI;gBAAA9L,SAAA,CAAAlN,CAAA;gBAAA;cAAA;cACJ;cACAiZ,MAAM,GAAG;gBAACW,MAAM,EAAE,CAAC;gBAAEC,gBAAgB,EAAE5N,EAAE,CAAC0D,OAAO,CAAC5Q;cAAE,CAAC;cAACmO,SAAA,CAAAlN,CAAA;cAAA;YAAA;cAAA,MAC/CiM,EAAE,CAAC0D,OAAO,CAAC9S,IAAI,KAAK,MAAM;gBAAAqQ,SAAA,CAAAlN,CAAA;gBAAA;cAAA;cAAAkN,SAAA,CAAAlN,CAAA;cAAA,OAEZ,IAAI,CAAC2L,OAAO,CAACwE,KAAK,CAACsJ,KAAK,CAACxN,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAChE,MAAM,CAAC;YAAA;cAAnE4N,MAAM,GAAAnM,SAAA,CAAApI,CAAA;cACNwU,OAAO,MAAA5c,MAAA,CAAAkC,uCAAA,EAAAsa,qBAAA,IAAAC,mBAAA,GAAQE,MAAM,CAACS,WAAW,cAAAX,mBAAA,uBAAlBA,mBAAA,CAAoBY,KAAK,cAAAb,qBAAA,cAAAA,qBAAA,GAAI,EAAE,GAAAta,uCAAA,EAAAwa,aAAA,GAAOC,MAAM,CAACU,KAAK,cAAAX,aAAA,cAAAA,aAAA,GAAI,EAAE;cACvEG,eAAe,MAAA7c,MAAA,CAAAkC,uCAAA,CACd0a,OAAO,CAAC9d,GAAG,CAAC,UAAAuD,EAAE;gBAAA,aAAArC,MAAA,CAAUqC,EAAE;cAAA,CAAG,CAAC,SAAArC,MAAA,CAC5Bqc,EAAE,CAACha,EAAE;cAERya,aAAa,GAAGD,eAAe,CAAC3D,IAAI,CAAC,UAAApb,OAAO;gBAAA,OAAIyR,EAAE,CAAC0D,OAAO,CAACqK,OAAO,CAACzR,QAAQ,CAAC/N,OAAO,CAAC;cAAA,EAAC;cAE3Fye,MAAM,GAAG;gBACLW,MAAM,EAAEpD,aAAa,CAACoD,MAAM,KAAK,IAAI,GAAG,IAAI,GAAGpD,aAAa,CAACoD,MAAM,GAAG,CAAC;gBACvEnD,QAAQ,EAAE,IAAI;gBACdK,YAAY,EAAEN,aAAa,CAACM,YAAY,IAAI0C,aAAa,GAAG,CAAC,GAAG,CAAC;cACrE,CAAC;cAACtM,SAAA,CAAAlN,CAAA;cAAA;YAAA;cAEF;cACAiZ,MAAM,GAAG;gBACLW,MAAM,EAAEpD,aAAa,CAACoD,MAAM,KAAK,IAAI,GAAG,IAAI,GAAGpD,aAAa,CAACoD,MAAM,GAAG,CAAC;gBACvEnD,QAAQ,EAAE;cACd,CAAC;YAAC;cAGNqC,kBAAkB,CAACld,GAAG,CAAAiS,kCAAA,CAAAA,kCAAA,KAAK2I,aAAa,GAAKyC,MAAM,CAAC,CAAC;cACrD,IAAI,CAAC7C,yBAAyB,CAACnK,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAChE,MAAM,EAAEQ,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAC/D,OAAO,CAAC;YAAC;cAAA,OAAAwB,SAAA,CAAAnI,CAAA;UAAA;QAAA,GAAAkI,QAAA;MAAA,CAC3F;MAAA,SAzCa0K,sCAAsCA,CAAApG,GAAA;QAAA,OAAAsH,uCAAA,CAAAla,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAtCub,sCAAsC;IAAA;IA2CpD;AACJ;AACA;AACA;AACA;AACA;EALI;IAAAvd,GAAA;IAAAC,KAAA,EAMA,SAAQ8b,uBAAuBA,CAAC1K,MAAc,EAAEoK,cAA+B,EAAQ;MAAA,IAAAoE,sBAAA;MACnF,IAAI,CAAE,IAAI,CAACpE,cAAc,CAACnY,GAAG,CAAC+N,MAAM,CAAC,EAAE;QACnC,IAAI,CAACoK,cAAc,CAACja,GAAG,CAAC,CAAC6P,MAAM,EAAE,IAAI5J,iCAAiC,CAClE,UAAA2U,aAAa;UAAA,OAAIA,aAAa,CAAC/G,QAAQ,CAAC/D,OAAO;QAAA,CACnD,CAAC,CAAC,CAAC;MACP;MAEA,CAAAuO,sBAAA,OAAI,CAACpE,cAAc,CAAC5a,GAAG,CAACwQ,MAAM,CAAC,EAAClJ,SAAS,CAAA5D,KAAA,CAAAsb,sBAAA,EAAArb,uCAAA,CAAIiX,cAAc,EAAC;MAC5D,IAAI,CAACC,UAAU,UAAO,CAACrK,MAAM,CAAC;IAClC;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAArR,GAAA;IAAAC,KAAA,EAKA,SAAQ2b,4BAA4BA,CAACR,OAAiB,EAAEK,cAA+B,EAAQ;MAAA,IAAA5T,MAAA;MAC3F,IAAMiY,YAAiD,GAAG,CAAC,CAAC;MAE5DrE,cAAc,CAAC/Z,OAAO,CAAC,UAAA0a,aAAa,EAAI;QAAA,IAAA2D,qBAAA,EAAAC,qBAAA;QACpC,EAAAA,qBAAA,GAACF,YAAY,CAAAC,qBAAA,GAAC3D,aAAa,CAAC/G,QAAQ,CAAChE,MAAM,CAAC,cAAA2O,qBAAA,cAAAA,qBAAA,GAA3CF,YAAY,CAAAC,qBAAA,CAA+B,GAAK,EAAE,EAAExe,IAAI,CAAC6a,aAAa,CAAC;MAC5E,CAAC,CAAC;MAEFhB,OAAO,CAAC1Z,OAAO,CAAC,UAAA2P,MAAM;QAAA,IAAA4O,oBAAA;QAAA,OAAIpY,MAAI,CAACkU,uBAAuB,CAAC1K,MAAM,GAAA4O,oBAAA,GAAEH,YAAY,CAACzO,MAAM,CAAC,cAAA4O,oBAAA,cAAAA,oBAAA,GAAI,EAAE,CAAC;MAAA,EAAC;MAE3F,IAAI,CAAC9B,iCAAiC,CAAC/C,OAAO,CAAC;IACnD;EAAC;IAAApb,GAAA;IAAAC,KAAA,EAED,SAAQwd,sBAAsBA,CAACrC,OAAiB,EAAEK,cAA+B,EAAQ;MAAA,IAAAvT,MAAA;MACrF,IAAM4X,YAAiD,GAAG,CAAC,CAAC;;MAE5D;MACArE,cAAc,CAAC/Z,OAAO,CAAC,UAAA0a,aAAa,EAAI;QAAA,IAAA8D,sBAAA,EAAAC,sBAAA;QACpC,CAAAA,sBAAA,GAAAL,YAAY,CAAAI,sBAAA,GAAC9D,aAAa,CAAC/G,QAAQ,CAAChE,MAAM,CAAC,cAAA8O,sBAAA,cAAAA,sBAAA,GAA3CL,YAAY,CAAAI,sBAAA,CAA+B,GAAK,EAAE;QAClDJ,YAAY,CAAC1D,aAAa,CAAC/G,QAAQ,CAAChE,MAAM,CAAC,CAAC9P,IAAI,CAAC6a,aAAa,CAAC;MACnE,CAAC,CAAC;MAEFhB,OAAO,CAAC1Z,OAAO,CAAC,UAAA2P,MAAM,EAAI;QACtB,IAAI,CAAEnJ,MAAI,CAACuT,cAAc,CAACnY,GAAG,CAAC+N,MAAM,CAAC,EAAE;UACnCnJ,MAAI,CAACuT,cAAc,CAACja,GAAG,CAAC,CAAC6P,MAAM,EAAE,IAAI5J,iCAAiC,CAClE,UAAA2U,aAAa;YAAA,OAAIA,aAAa,CAAC/G,QAAQ,CAAC/D,OAAO;UAAA,CACnD,CAAC,CAAC,CAAC;QACP;QAEA,IAAIwO,YAAY,CAACzO,MAAM,CAAC,EAAE;UAAA,IAAA+O,qBAAA;UACtB,CAAAA,qBAAA,GAAAlY,MAAI,CAACuT,cAAc,CAAC5a,GAAG,CAACwQ,MAAM,CAAC,EAAC7P,GAAG,CAAA+C,KAAA,CAAA6b,qBAAA,EAAA5b,uCAAA,CAAIsb,YAAY,CAACzO,MAAM,CAAC,EAAC;QAChE;MACJ,CAAC,CAAC;MAEF,IAAI,CAAC8M,iCAAiC,CAAC/C,OAAO,CAAC;IACnD;EAAC;IAAApb,GAAA;IAAAC,KAAA,EAED,SAAQ0d,iCAAiCA,CAACtM,MAAc,EAAQ;MAC5D,IAAI,CAACoK,cAAc,UAAO,CAACpK,MAAM,CAAC;MAClC,IAAI,CAACsK,sBAAsB,CAACrS,MAAM,CAAC+H,MAAM,CAAC;MAC1C,IAAI,CAACqK,UAAU,UAAO,CAACrK,MAAM,CAAC;MAC9B,IAAI,CAAC2K,yBAAyB,CAAC3K,MAAM,CAAC;IAC1C;EAAC;AAAA,EAhasC1R,WAAW,E;;;;;;;;;;;;sCCzBtD,uKAAAqG,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,+BAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,+BAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,+BAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,+BAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,+BAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,+BAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,+BAAA,CAAAH,CAAA,GAAAG,+BAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,+BAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,+BAAA,CAAAH,CAAA,8DAAAoB,wBAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,+BAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,+BAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,+BAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,+BAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,+BAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,6BAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,+BAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,+BAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,2BAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,6BAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,0BAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,wBAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,6BAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,6BAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAAnG,2BAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,0BAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,0BAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,wBAAA,CAAA1D,CAAA,gCAAAoD,mBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,wBAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,mBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,mBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AADgG;AAgBrC;AACT;AACY;AAEvD,IAAM4W,YAAY;EAWrB,SAAAA,aAA2B9O,OAAyB,EAAE;IAAA,IAAAzP,KAAA;IAAAlC,2BAAA,OAAAygB,YAAA;IAAAxgB,2BAAA;IAAAA,2BAAA;IAAAA,2BAAA,eAP9B,IAAI4H,iCAAiC,CAAO,IAAI,CAAC;IAAA5H,2BAAA,iBAC/C,IAAIwE,iBAAiB,CAAmD,CAAC;IAAAxE,2BAAA,kBACxE,IAAIwE,iBAAiB,CAAwD,CAAC;IAAAxE,2BAAA,0BACtE,IAAIgJ,YAAY,CAAC,CAAC;IAAAhJ,2BAAA,0BAClB,IAAImJ,eAAe,CAAC,CAAC;IAAAnJ,2BAAA,yBACtB,IAAImJ,eAAe,CAAC,CAAC;IAAA,KAE5BuI,OAAyB,GAAzBA,OAAyB;IAChD,IAAI,CAACkE,QAAQ,GAAG,IAAIsE,eAAe,CAACxI,OAAO,CAAC;IAC5C,IAAI,CAACkK,cAAc,GAAG,IAAIX,qBAAqB,CAACvJ,OAAO,CAAC;IAExD,IAAI,CAACA,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,YAAY,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACgQ,gBAAgB,CAACD,EAAE,CAAC;IAAA,EAAC;IACrE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,kBAAkB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACiQ,sBAAsB,CAACF,EAAE,CAAC;IAAA,EAAC;IACjF,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,UAAU,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACwW,cAAc,CAACzG,EAAE,CAAC;IAAA,EAAC;IACjE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACyW,kBAAkB,CAAC1G,EAAE,CAAC;IAAA,EAAC;IACzE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,YAAY,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACwe,gBAAgB,CAACzO,EAAE,CAAC;IAAA,EAAC;IACrE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,UAAU,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACqY,cAAc,CAACtI,EAAE,CAAC;IAAA,EAAC;IACjE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACuW,iBAAiB,CAACxG,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACoY,iBAAiB,CAACrI,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACye,kBAAkB,CAAC1O,EAAE,CAAC;IAAA,EAAC;IACzE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,mBAAmB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC0e,uBAAuB,CAAC3O,EAAE,CAAC;IAAA,EAAC;IACnF,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,gBAAgB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC2e,oBAAoB,CAAC5O,EAAE,CAAC;IAAA,EAAC;IAC7E,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC4e,iBAAiB,CAAC7O,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,mBAAmB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC6e,uBAAuB,CAAC9O,EAAE,CAAC;IAAA,EAAC;IACnF,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,iBAAiB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC8e,qBAAqB,CAAC/O,EAAE,CAAC;IAAA,EAAC;IAC/E,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,oBAAoB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC+e,wBAAwB,CAAChP,EAAE,CAAC;IAAA,EAAC;IACrF,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACgf,kBAAkB,CAACjP,EAAE,CAAC;IAAA,EAAC;IACzE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,WAAW,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACgf,kBAAkB,CAACjP,EAAE,CAAC;IAAA,EAAC;IACtE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACif,iBAAiB,CAAClP,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACkY,aAAa,CAACnI,EAAE,CAAC;IAAA,EAAC;EACnE;;EAEA;AACJ;AACA;EAFI,OAAA9R,wBAAA,CAAAsgB,YAAA;IAAArgB,GAAA;IAAAC,KAAA;MAAA,IAAA+gB,WAAA,GAAA9U,6BAAA,cAAAX,wBAAA,GAAAE,CAAA,CAGA,SAAAwD,SAAwBoC,MAAc;QAAA,IAAArO,MAAA;QAAA,OAAAuI,wBAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cAClC,IAAI,IAAI,CAACqb,eAAe,CAAC5X,QAAQ,CAACgI,MAAM,CAAC,EAAE;gBACvC,IAAI,CAAC4P,eAAe,CAAC9X,kBAAkB,cAAA+C,6BAAA,cAAAX,wBAAA,GAAAE,CAAA,CAAC,SAAA8C,QAAA;kBAAA,IAAAjJ,MAAA;kBAAA,OAAAiG,wBAAA,GAAAC,CAAA,WAAAmD,QAAA;oBAAA,kBAAAA,QAAA,CAAA/I,CAAA;sBAAA;wBAAA+I,QAAA,CAAA/I,CAAA;wBAAA,OACf5C,MAAI,CAACuO,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,gBAAgB,EAAE;0BAACzQ,EAAE,EAAE0M;wBAAM,CAAC,CAAC;sBAAA;wBAAvE/L,MAAM,GAAAqJ,QAAA,CAAAjE,CAAA;wBAAA,KACRpF,MAAM,CAAC9B,KAAK;0BAAAmL,QAAA,CAAA/I,CAAA;0BAAA;wBAAA;wBAAA,MACNN,MAAM,CAAC9B,KAAK;sBAAA;wBAEtBR,MAAI,CAAC0d,iBAAiB,CAACpb,MAAM,CAAC5C,IAAI,CAAC;sBAAC;wBAAA,OAAAiM,QAAA,CAAAhE,CAAA;oBAAA;kBAAA,GAAA4D,OAAA;gBAAA,CACvC,IAAE8C,MAAM,CAAC;cACd;cAAClC,SAAA,CAAAvJ,CAAA;cAAA,OAEK,IAAI,CAACqb,eAAe,CAACpgB,GAAG,CAACwQ,MAAM,CAAC;YAAA;cAAA,OAAAlC,SAAA,CAAAxE,CAAA,IAC/B,IAAI,CAACuW,OAAO,CAACrgB,GAAG,CAACwQ,MAAM,CAAC;UAAA;QAAA,GAAApC,QAAA;MAAA,CAClC;MAAA,SAbYkS,UAAUA,CAAA/Q,EAAA;QAAA,OAAA4Q,WAAA,CAAAzc,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAVmf,UAAU;IAAA;IAevB;AACJ;AACA;IAFI;EAAA;IAAAnhB,GAAA;IAAAC,KAAA;MAAA,IAAAmhB,MAAA,GAAAlV,6BAAA,cAAAX,wBAAA,GAAAE,CAAA,CAGA,SAAAiE,SAAmB2B,MAAc;QAAA,IAAAgQ,MAAA,EAAAH,OAAA;QAAA,OAAA3V,wBAAA,GAAAC,CAAA,WAAAmE,SAAA;UAAA,kBAAAA,SAAA,CAAA/J,CAAA;YAAA;cAAA+J,SAAA,CAAA/J,CAAA;cAAA,OACP,IAAI,CAAC2L,OAAO,CAAC8N,KAAK,CAAC,CAAC;YAAA;cAApCgC,MAAM,GAAA1R,SAAA,CAAAjF,CAAA,CAAgC/F,EAAE;cAAA,IAExC,IAAI,CAAC2c,IAAI,CAAChe,GAAG,CAAC+N,MAAM,CAAC;gBAAA1B,SAAA,CAAA/J,CAAA;gBAAA;cAAA;cAAA,OAAA+J,SAAA,CAAAhF,CAAA,IAEhB5J,SAAS;YAAA;cAAA4O,SAAA,CAAA/J,CAAA;cAAA,OAGE,IAAI,CAACub,UAAU,CAAC9P,MAAM,CAAC;YAAA;cAAvC6P,OAAO,GAAAvR,SAAA,CAAAjF,CAAA;cAAA,OAAAiF,SAAA,CAAAhF,CAAA,IACNuW,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE5c,KAAK,CAACid,IAAI,CAAC,UAAAtC,MAAM;gBAAA,IAAAuC,eAAA,EAAAC,YAAA;gBAAA,OAAI,EAAAD,eAAA,IAAAC,YAAA,GAACxC,MAAM,CAACM,IAAI,cAAAkC,YAAA,uBAAXA,YAAA,CAAa9c,EAAE,cAAA6c,eAAA,cAAAA,eAAA,GAAIvC,MAAM,CAACS,WAAW,CAACH,IAAI,CAAC5a,EAAE,MAAM0c,MAAM;cAAA,EAAC;UAAA;QAAA,GAAA3R,QAAA;MAAA,CACnG;MAAA,SAVY2P,KAAKA,CAAA9M,GAAA;QAAA,OAAA6O,MAAA,CAAA7c,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAALqd,KAAK;IAAA;IAYlB;AACJ;AACA;IAFI;EAAA;IAAArf,GAAA;IAAAC,KAAA;MAAA,IAAAyhB,IAAA,GAAAxV,6BAAA,cAAAX,wBAAA,GAAAE,CAAA,CAGA,SAAAuE,SAAA;QAAA,OAAAzE,wBAAA,GAAAC,CAAA,WAAAyE,SAAA;UAAA,kBAAAA,SAAA,CAAArK,CAAA;YAAA;cAAAqK,SAAA,CAAArK,CAAA;cAAA,OACU,IAAI,CAACyU,eAAe,CAACvR,OAAO;YAAA;cAAA,OAAAmH,SAAA,CAAAtF,CAAA,IAC3B,IAAI,CAAC2W,IAAI;UAAA;QAAA,GAAAtR,QAAA;MAAA,CACnB;MAAA,SAHYnP,GAAGA,CAAA;QAAA,OAAA6gB,IAAA,CAAAnd,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAHnB,GAAG;IAAA;IAKhB;AACJ;AACA;AACA;IAHI;EAAA;IAAAb,GAAA;IAAAC,KAAA;MAAA,IAAA0hB,UAAA,GAAAzV,6BAAA,cAAAX,wBAAA,GAAAE,CAAA,CAIA,SAAA6E,SAAuBe,MAAc,EAAEuQ,kBAA6B;QAAA,IAAA7a,MAAA;QAAA,IAAA8a,QAAA,EAAAC,UAAA,EAAAhZ,OAAA,EAAAvD,SAAA,EAAAG,KAAA,EAAA4L,OAAA,EAAAf,EAAA;QAAA,OAAAhF,wBAAA,GAAAC,CAAA,WAAAgF,SAAA;UAAA,kBAAAA,SAAA,CAAAjG,CAAA,GAAAiG,SAAA,CAAA5K,CAAA;YAAA;cAAA4K,SAAA,CAAA5K,CAAA;cAAA,OAC1D,IAAI,CAACyU,eAAe,CAACvR,OAAO;YAAA;cAAA,MAE9B8Y,kBAAkB,aAAlBA,kBAAkB,eAAlBA,kBAAkB,CAAE3f,MAAM;gBAAAuO,SAAA,CAAA5K,CAAA;gBAAA;cAAA;cAC1B;cACMic,QAAQ,GAAG,SAAXA,QAAQA,CAAIvQ,OAAe;gBAAA,IAAAyQ,iBAAA;gBAAA,OAAK,GAAAA,iBAAA,GAAEhb,MAAI,CAACib,MAAM,CAACnhB,GAAG,CAACwQ,MAAM,CAAC,cAAA0Q,iBAAA,eAAvBA,iBAAA,CAAyBze,GAAG,CAACgO,OAAO,CAAC,KAAI,CAAEvK,MAAI,CAACkb,cAAc,CAAC3e,GAAG,CAAC+N,MAAM,GAAGC,OAAO,CAAC;cAAA;cACtHwQ,UAAU,GAAGF,kBAAkB,CAAChK,MAAM,CAACiK,QAAQ,CAAC;cAEtD,IAAIC,UAAU,CAAC7f,MAAM,EAAE;gBACb6G,OAAO,GAAG,IAAI,CAACyI,OAAO,CACvBK,MAAM,CACNwD,IAAI,CAAC,WAAW,EAAE;kBAAC/D,MAAM,EAANA,MAAM;kBAAE8L,QAAQ,EAAE2E;gBAAU,CAAC,CAAC,CACjD7V,IAAI,CAAC,UAAA3G,MAAM;kBAAA,IAAA4c,kBAAA;kBAAA,QAAAA,kBAAA,GAAInb,MAAI,CAACib,MAAM,CAACnhB,GAAG,CAACyE,MAAM,CAAC5C,IAAI,CAAC2S,QAAQ,CAAChE,MAAM,CAAC,cAAA6Q,kBAAA,uBAA5CA,kBAAA,CAA8C1gB,GAAG,CAAA+C,KAAA,CAAA2d,kBAAA,EAAA1d,8BAAA,CAAIc,MAAM,CAAC5C,IAAI,CAACsf,MAAM,EAAC;gBAAA,EAAC;gBAE7FF,UAAU,CAACpgB,OAAO,CAAC,UAAA4P,OAAO;kBAAA,OAAIvK,MAAI,CAACkb,cAAc,CAAChZ,QAAQ,CAACH,OAAO,EAAEuI,MAAM,GAAGC,OAAO,CAAC;gBAAA,EAAC;cAC1F;cAAC/L,SAAA,GAAAC,sCAAA,CAEqBoc,kBAAkB;cAAApR,SAAA,CAAAjG,CAAA;cAAAhF,SAAA,CAAAI,CAAA;YAAA;cAAA,KAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA;gBAAA2K,SAAA,CAAA5K,CAAA;gBAAA;cAAA;cAA7B0L,OAAO,GAAA5L,KAAA,CAAAzF,KAAA;cAAAuQ,SAAA,CAAA5K,CAAA;cAAA,OACR,IAAI,CAACqc,cAAc,CAACphB,GAAG,CAACwQ,MAAM,GAAGC,OAAO,CAAC;YAAA;cAAAd,SAAA,CAAA5K,CAAA;cAAA;YAAA;cAAA4K,SAAA,CAAA5K,CAAA;cAAA;YAAA;cAAA4K,SAAA,CAAAjG,CAAA;cAAAgG,EAAA,GAAAC,SAAA,CAAA9F,CAAA;cAAAnF,SAAA,CAAAS,CAAA,CAAAuK,EAAA;YAAA;cAAAC,SAAA,CAAAjG,CAAA;cAAAhF,SAAA,CAAAU,CAAA;cAAA,OAAAuK,SAAA,CAAAvK,CAAA;YAAA;cAAA,OAAAuK,SAAA,CAAA7F,CAAA,IAIhD,IAAI,CAACqX,MAAM,CAACnhB,GAAG,CAACwQ,MAAM,CAAC;UAAA;QAAA,GAAAf,QAAA;MAAA,CACjC;MAAA,SAvBY0F,SAASA,CAAA3C,GAAA,EAAAiB,GAAA;QAAA,OAAAqN,UAAA,CAAApd,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAATgU,SAAS;IAAA;IAyBtB;AACJ;AACA;AACA;IAHI;EAAA;IAAAhW,GAAA;IAAAC,KAAA,EAIA,SAAO0Z,qBAAqBA,CAACtI,MAAc,EAA+B;MAAA,IAAA8Q,gBAAA;MAAA,SAAApgB,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAA1Bkb,QAAQ,OAAAhb,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAR+a,QAAQ,CAAA/a,IAAA,QAAAJ,SAAA,CAAAI,IAAA;MAAA;MACpD,CAAA+f,gBAAA,OAAI,CAACH,MAAM,CAACnhB,GAAG,CAACwQ,MAAM,CAAC,cAAA8Q,gBAAA,eAAvBA,gBAAA,UAA+B,CAAA5d,KAAA,CAAA4d,gBAAA,EAAIhF,QAAQ,CAAC;IAChD;EAAC;IAAAnd,GAAA;IAAAC,KAAA,EAED,SAAQmiB,UAAUA,CAAA,EAA6B;MAAA,IAAAC,UAAA,EAAAC,aAAA,EAAAC,qBAAA,EAAAC,YAAA;MAAA,SAAAtf,KAAA,GAAAlB,SAAA,CAAAC,MAAA,EAAzBmZ,OAAO,OAAAjZ,KAAA,CAAAe,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAPiY,OAAO,CAAAjY,KAAA,IAAAnB,SAAA,CAAAmB,KAAA;MAAA;MACzB,CAAAkf,UAAA,OAAI,CAACf,IAAI,WAAO,CAAA/c,KAAA,CAAA8d,UAAA,EAAIjH,OAAO,CAAC;MAC5B,CAAAkH,aAAA,OAAI,CAACpB,OAAO,WAAO,CAAA3c,KAAA,CAAA+d,aAAA,EAAIlH,OAAO,CAAC;MAC/B,CAAAmH,qBAAA,OAAI,CAACtB,eAAe,EAAC3X,MAAM,CAAA/E,KAAA,CAAAge,qBAAA,EAAInH,OAAO,CAAC;MAEvC,SAAApX,EAAA,MAAAye,QAAA,GAAqBrH,OAAO,EAAApX,EAAA,GAAAye,QAAA,CAAAxgB,MAAA,EAAA+B,EAAA,IAAE;QAAA,IAAA0e,qBAAA,EAAAC,iBAAA,EAAAC,oBAAA;QAAzB,IAAMvR,MAAM,GAAAoR,QAAA,CAAAze,EAAA;QACb,IAAMmZ,QAAkB,IAAAuF,qBAAA,IAAAC,iBAAA,GAAG,IAAI,CAACX,MAAM,CAACnhB,GAAG,CAACwQ,MAAM,CAAC,cAAAsR,iBAAA,uBAAvBA,iBAAA,CAAyBre,KAAK,CAAClD,GAAG,CAAC,UAAAyX,KAAK;UAAA,OAAIA,KAAK,CAAClU,EAAE;QAAA,EAAC,cAAA+d,qBAAA,cAAAA,qBAAA,GAAI,EAAE;QACtF,CAAAE,oBAAA,OAAI,CAACnH,cAAc,EAACwB,iBAAiB,CAAA1Y,KAAA,CAAAqe,oBAAA,GAACvR,MAAM,EAAA/O,MAAA,CAAAkC,8BAAA,CAAK2Y,QAAQ,GAAC;MAC9D;MAEA,CAAAqF,YAAA,OAAI,CAACR,MAAM,WAAO,CAAAzd,KAAA,CAAAie,YAAA,EAAIpH,OAAO,CAAC;IAClC;EAAC;IAAApb,GAAA;IAAAC,KAAA,EAED,SAAQ4iB,oBAAoBA,CAAC1H,OAAe,EAAQ;MAChD,IAAI,CAACiH,UAAU,CAAA7d,KAAA,CAAf,IAAI,EAAAC,8BAAA,CACG,IAAI,CAAC8c,IAAI,CAACrc,MAAM,CAAC,SAAS,EAAEkW,OAAO,CAAC,CAAC7W,KAAK,CAAClD,GAAG,CAAC,UAAAgX,IAAI;QAAA,OAAIA,IAAI,CAACzT,EAAE;MAAA,EAAC,CACtE,CAAC;IACL;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQ4gB,wBAAwBA,CAAChP,EAAsB,EAAQ;MAC3D;MAAA,IAAAlL,UAAA,GAAAnB,sCAAA,CACmB,IAAI,CAAC8b,IAAI,CAACrc,MAAM,CAAC,SAAS,EAAE4M,EAAE,CAACsJ,OAAO,CAAC,CAAC7W,KAAK;QAAAsC,MAAA;MAAA;QAAhE,KAAAD,UAAA,CAAAhB,CAAA,MAAAiB,MAAA,GAAAD,UAAA,CAAAf,CAAA,IAAAC,IAAA,GAAkE;UAAA,IAAvDuS,IAAI,GAAAxR,MAAA,CAAA3G,KAAA;UACX,IAAM6iB,WAAW,GAAG,IAAI,CAAC5B,OAAO,CAACrgB,GAAG,CAACuX,IAAI,CAACzT,EAAE,CAAC;UAE7C,IAAI,CAACme,WAAW,IAAI,CAACA,WAAW,CAACxf,GAAG,CAACuO,EAAE,CAACwP,MAAM,CAAC,EAAE;YAC7C;YACA;YACA;UACJ;;UAEA;UACA,IAAM0B,UAAU,GAAGD,WAAW,CAACjiB,GAAG,CAACgR,EAAE,CAACwP,MAAM,CAAC;UAC7C,IAAM3B,WAAW,GAAG7N,EAAE,CAACoN,MAAM;UAC7BS,WAAW,CAACH,IAAI,GAAGwD,UAAU,CAACrD,WAAW,CAACH,IAAI;UAC9CuD,WAAW,CAACthB,GAAG,CAAAiS,yBAAA,CAAAA,yBAAA,KAAMsP,UAAU;YAAErD,WAAW,EAAXA;UAAW,EAAE,CAAC;QACnD;MAAC,SAAA3Z,GAAA;QAAAY,UAAA,CAAAX,CAAA,CAAAD,GAAA;MAAA;QAAAY,UAAA,CAAAV,CAAA;MAAA;IACL;EAAC;IAAAjG,GAAA;IAAAC,KAAA,EAED,SAAQ2gB,qBAAqBA,CAAC/O,EAAmB,EAAQ;MAAA,IAAAjK,MAAA;MACrD,IAAI,CAAC0Z,IAAI,CACJrc,MAAM,CAAC,SAAS,EAAE4M,EAAE,CAACsJ,OAAO,CAAC,CAAC7W,KAAK,CACnC5C,OAAO,CAAC,UAAA0W,IAAI;QAAA,IAAA4K,kBAAA;QAAA,QAAAA,kBAAA,GAAIpb,MAAI,CAACsZ,OAAO,CAACrgB,GAAG,CAACuX,IAAI,CAACzT,EAAE,CAAC,cAAAqe,kBAAA,uBAAzBA,kBAAA,UAAiC,CAACnR,EAAE,CAACwP,MAAM,CAAC;MAAA,EAAC;IACtE;EAAC;IAAArhB,GAAA;IAAAC,KAAA,EAED,SAAQ0gB,uBAAuBA,CAAC9O,EAAqB,EAAQ;MAAA,IAAAoR,qBAAA,EAAAlE,mBAAA;MACzD,IAAI,CAAE,IAAI,CAACmC,OAAO,CAAC5d,GAAG,CAACuO,EAAE,CAACR,MAAM,CAAC,EAAE;QAC/B;QACA;MACJ;MAEA,IAAM6P,OAAO,GAAG,IAAI,CAACA,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAACR,MAAM,CAAC;MAC3C,IAAM4N,MAAM,GAAGiC,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAACwP,MAAM,CAAC;MACrC,IAAM6B,SAAS,GAAGrR,EAAE,CAACoN,MAAM;MAC3B,IAAMM,IAAI,IAAA0D,qBAAA,IAAAlE,mBAAA,GAAGE,MAAM,CAACS,WAAW,cAAAX,mBAAA,uBAAlBA,mBAAA,CAAoBQ,IAAI,cAAA0D,qBAAA,cAAAA,qBAAA,GAAIhE,MAAM,CAACM,IAAI;;MAEpD;MACA,IAAI2D,SAAS,CAACxD,WAAW,EAAE;QACvBwD,SAAS,CAACxD,WAAW,CAACH,IAAI,GAAGA,IAAI;MACrC,CAAC,MAAM;QACH2D,SAAS,CAAC3D,IAAI,GAAGA,IAAI;MACzB;MAEA2B,OAAO,CAAC1f,GAAG,CAAC0hB,SAAS,CAAC;IAC1B;EAAC;IAAAljB,GAAA;IAAAC,KAAA,EAED,SAAQ6gB,kBAAkBA,CAACjP,EAA4B,EAAQ;MAC3D,IAAI,CAACgR,oBAAoB,CAAChR,EAAE,CAAClN,EAAE,CAAC;IACpC;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQsY,kBAAkBA,CAAC1G,EAAgB,EAAQ;MAAA,IAAAsR,kBAAA;MAC/C,IAAMhH,UAAU,GAAG,IAAI,CAAC6F,MAAM,CAACnhB,GAAG,CAACgR,EAAE,CAACwD,QAAQ,CAAChE,MAAM,CAAC;MACtD8K,UAAU,UAAO,CAACtK,EAAE,CAACwD,QAAQ,CAAC/D,OAAO,CAAC;MAEtC,IAAM8G,IAAI,GAAG,IAAI,CAACkJ,IAAI,CAACzgB,GAAG,CAACgR,EAAE,CAACwD,QAAQ,CAAChE,MAAM,CAAC;MAC9C,IAAI,EAAA8R,kBAAA,GAAA/K,IAAI,CAACK,YAAY,cAAA0K,kBAAA,uBAAjBA,kBAAA,CAAmBxe,EAAE,MAAKkN,EAAE,CAACwD,QAAQ,CAAC/D,OAAO,EAAE;QAC/C,IAAI,CAACgQ,IAAI,CAAC9f,GAAG,CAAAiS,yBAAA,CAAAA,yBAAA,KAAK2E,IAAI;UAAEK,YAAY,EAAE;QAAI,EAAC,CAAC;MAChD;IACJ;EAAC;IAAAzY,GAAA;IAAAC,KAAA,EAED,SAAQqY,cAAcA,CAACzG,EAAY,EAAQ;MACvC,IAAI,CAACuR,mBAAmB,CAACvR,EAAE,CAACR,MAAM,EAAEQ,EAAE,CAACgH,KAAK,CAAC;IACjD;EAAC;IAAA7Y,GAAA;IAAAC,KAAA,EAED,SAAQmjB,mBAAmBA,CAAC/R,MAAc,EAA4B;MAAA,SAAA/K,KAAA,GAAAtE,SAAA,CAAAC,MAAA,EAAvB+f,MAAM,OAAA7f,KAAA,CAAAmE,KAAA,OAAAA,KAAA,WAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAANyb,MAAM,CAAAzb,KAAA,QAAAvE,SAAA,CAAAuE,KAAA;MAAA;MACjD,IAAI,IAAI,CAACyb,MAAM,CAAC1e,GAAG,CAAC+N,MAAM,CAAC,EAAE;QAAA,IAAAgS,iBAAA;QACzB,CAAAA,iBAAA,OAAI,CAACrB,MAAM,CAACnhB,GAAG,CAACwQ,MAAM,CAAC,EAAC7P,GAAG,CAAA+C,KAAA,CAAA8e,iBAAA,EAAIrB,MAAM,CAAC;MAC1C,CAAC,MAAM;QACH,IAAI,CAACA,MAAM,CAACxgB,GAAG,CAAC,CAAC6P,MAAM,EAAE,IAAI5J,iCAAiC,CAAQ,IAAI,EAAEua,MAAM,CAAC,CAAC,CAAC;MACzF;IACJ;EAAC;IAAAhiB,GAAA;IAAAC,KAAA,EAED,SAAQqgB,gBAAgBA,CAACzO,EAAc,EAAQ;MAC3C,IAAI,CAACyR,cAAc,CAACzR,EAAE,CAACuG,IAAI,CAAC;IAChC;EAAC;IAAApY,GAAA;IAAAC,KAAA,EAED,SAAQoY,iBAAiBA,CAACxG,EAAe,EAAQ;MAC7C,IAAI,IAAI,CAACyP,IAAI,CAAChe,GAAG,CAACuO,EAAE,CAACuG,IAAI,CAACzT,EAAE,CAAC,EAAE;QAC3B,IAAI,CAAC2c,IAAI,CAAC9f,GAAG,CAACqQ,EAAE,CAACuG,IAAI,CAAC;MAC1B;IACJ;EAAC;IAAApY,GAAA;IAAAC,KAAA,EAED,SAAQia,iBAAiBA,CAACrI,EAAe,EAAQ;MAC7C,IAAI,CAACuQ,UAAU,CAACvQ,EAAE,CAAClN,EAAE,CAAC;IAC1B;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQsgB,kBAAkBA,CAAC1O,EAAgB,EAAQ;MAAA,IAAA0R,iBAAA;MAC/C,IAAMnL,IAAI,GAAG,IAAI,CAACkJ,IAAI,CAACzgB,GAAG,CAACgR,EAAE,CAACwD,QAAQ,CAAChE,MAAM,CAAC;MAE9C,KAAAkS,iBAAA,GAAI,IAAI,CAACvB,MAAM,CAACnhB,GAAG,CAACgR,EAAE,CAACwD,QAAQ,CAAChE,MAAM,CAAC,cAAAkS,iBAAA,eAAnCA,iBAAA,CAAqCjgB,GAAG,CAACuO,EAAE,CAACgH,KAAK,CAAClU,EAAE,CAAC,EAAE;QACvD,IAAI,CAACqd,MAAM,CAACnhB,GAAG,CAACgR,EAAE,CAACwD,QAAQ,CAAChE,MAAM,CAAC,CAAC7P,GAAG,CAACqQ,EAAE,CAACgH,KAAK,CAAC;MACrD;MAEA,IAAIT,IAAI,CAACK,YAAY,CAAC9T,EAAE,KAAKkN,EAAE,CAACgH,KAAK,CAAClU,EAAE,EAAE;QACtC,IAAM6e,OAAO,GAAA/P,yBAAA,KAAQ2E,IAAI,CAAE;QAC3BoL,OAAO,CAAC/K,YAAY,GAAG5G,EAAE,CAACgH,KAAK;QAC/B,IAAI,CAACyI,IAAI,CAAC9f,GAAG,CAACgiB,OAAO,CAAC;MAC1B;IACJ;EAAC;IAAAxjB,GAAA;IAAAC,KAAA,EAED,SAAQqjB,cAAcA,CAAA,EAAyB;MAAA,IAAAG,WAAA;MAAA,SAAAxc,KAAA,GAAAjF,SAAA,CAAAC,MAAA,EAArB8T,KAAK,OAAA5T,KAAA,CAAA8E,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;QAAL6O,KAAK,CAAA7O,KAAA,IAAAlF,SAAA,CAAAkF,KAAA;MAAA;MAC3B,SAAApC,GAAA,MAAA4e,MAAA,GAAmB3N,KAAK,EAAAjR,GAAA,GAAA4e,MAAA,CAAAzhB,MAAA,EAAA6C,GAAA,IAAE;QAArB,IAAMsT,IAAI,GAAAsL,MAAA,CAAA5e,GAAA;QACX,IAAIsT,IAAI,CAACK,YAAY,EAAE;UACnB,IAAI,CAAC2K,mBAAmB,CAAChL,IAAI,CAACzT,EAAE,EAAEyT,IAAI,CAACK,YAAY,CAAC;QACxD;QAEA,IAAIL,IAAI,CAAC3V,IAAI,KAAK,IAAI,IAAI2V,IAAI,CAACuL,UAAU,EAAE;UACvC;UACA;UACA;UACA,IAAI,CAACjD,iBAAiB,CAAC;YACnB/b,EAAE,EAAEyT,IAAI,CAACzT,EAAE;YACXuc,OAAO,EAAE9I,IAAI,CAACuL,UAAU,CAACviB,GAAG,CAAC,UAAAme,IAAI;cAAA,OAAK;gBAClCA,IAAI,EAAJA,IAAI;gBACJG,WAAW,EAAE,IAAI;gBACjBC,KAAK,EAAE,IAAI;gBACXiE,WAAW,EAAE,IAAI;gBACjBC,UAAU,EAAE,IAAI;gBAChBC,YAAY,EAAE,IAAI;gBAClBC,MAAM,EAAE;cACZ,CAAC;YAAA,CAAC;UACN,CAAC,CAAC;UACF,IAAI,CAAC9C,eAAe,CAAChY,QAAQ,CAAChG,OAAO,CAAC8F,OAAO,CAAC,CAAC,EAAEqP,IAAI,CAACzT,EAAE,CAAC;QAC7D;MACJ;MACA,CAAA8e,WAAA,OAAI,CAACnC,IAAI,EAAC9f,GAAG,CAAA+C,KAAA,CAAAkf,WAAA,EAAI1N,KAAK,CAAC;IAC3B;EAAC;IAAA/V,GAAA;IAAAC,KAAA,EAED,SAAQka,cAAcA,CAACtI,EAAY,EAAQ;MACvC,IAAI,CAACuQ,UAAU,CAACvQ,EAAE,CAAClN,EAAE,CAAC;IAC1B;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQugB,uBAAuBA,CAAC3O,EAAqB,EAAQ;MACzD,IAAI,IAAI,CAACqP,OAAO,CAAC5d,GAAG,CAACuO,EAAE,CAACR,MAAM,CAAC,EAAE;QAAA,IAAA2S,iBAAA;QAC7B,CAAAA,iBAAA,OAAI,CAAC9C,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAACR,MAAM,CAAC,EAAC7P,GAAG,CAAA+C,KAAA,CAAAyf,iBAAA,EAAAxf,8BAAA,CAAIqN,EAAE,CAACqP,OAAO,EAAC;MAClD;IACJ;EAAC;IAAAlhB,GAAA;IAAAC,KAAA,EAED,SAAQwgB,oBAAoBA,CAAC5O,EAAkB,EAAQ;MACnD,IAAI,IAAI,CAACqP,OAAO,CAAC5d,GAAG,CAACuO,EAAE,CAACR,MAAM,CAAC,EAAE;QAC7B,IAAI,CAAC6P,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAACR,MAAM,CAAC,UAAO,CAACQ,EAAE,CAACwP,MAAM,CAAC;MACjD;IACJ;EAAC;IAAArhB,GAAA;IAAAC,KAAA,EAED,SAAQygB,iBAAiBA,CAAC7O,EAAe,EAAQ;MAC7C,IAAI,CAAE,IAAI,CAACqP,OAAO,CAAC5d,GAAG,CAACuO,EAAE,CAAClN,EAAE,CAAC,EAAE;QAC3B,IAAI,CAACuc,OAAO,CAAC1f,GAAG,CAAC,CACbqQ,EAAE,CAAClN,EAAE,EACL,IAAI8C,iCAAiC,CACjC,UAAAwX,MAAM;UAAA,IAAAgF,gBAAA,EAAAC,aAAA;UAAA,QAAAD,gBAAA,IAAAC,aAAA,GAAIjF,MAAM,CAACM,IAAI,cAAA2E,aAAA,uBAAXA,aAAA,CAAavf,EAAE,cAAAsf,gBAAA,cAAAA,gBAAA,GAAIhF,MAAM,CAACS,WAAW,CAACH,IAAI,CAAC5a,EAAE;QAAA,GACvDkN,EAAE,CAACqP,OACP,CAAC,CACJ,CAAC;MACN,CAAC,MAAM;QAAA,IAAAiD,kBAAA;QACH;QACA;QACA,CAAAA,kBAAA,OAAI,CAACjD,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAAClN,EAAE,CAAC,EAACwD,SAAS,CAAA5D,KAAA,CAAA4f,kBAAA,EAAA3f,8BAAA,CAAIqN,EAAE,CAACqP,OAAO,EAAC;MACpD;IACJ;EAAC;IAAAlhB,GAAA;IAAAC,KAAA,EAED,SAAQ+Z,aAAaA,CAACnI,EAAW,EAAQ;MACrC,IAAMgJ,YAAY,GAAG,IAAIpS,GAAG,CAACoJ,EAAE,CAACzD,KAAK,CAAC2H,KAAK,CAAC3U,GAAG,CAAC,UAAAgX,IAAI;QAAA,OAAIA,IAAI,CAACzT,EAAE;MAAA,EAAC,CAAC;;MAEjE;MACA;MACA;MACA,IAAMyf,cAAc,GAAG,IAAI,CAAC9C,IAAI,CAAChd,KAAK,CACjCsT,MAAM,CAAC,UAAAQ,IAAI;QAAA,OAAI,CAAEyC,YAAY,CAACvX,GAAG,CAAC8U,IAAI,CAACzT,EAAE,CAAC;MAAA,EAAC,CAC3CvD,GAAG,CAAC,UAAAgX,IAAI;QAAA,OAAIA,IAAI,CAACzT,EAAE;MAAA,EAAC;MACzB,IAAIyf,cAAc,CAACniB,MAAM,EAAE;QACvB,IAAI,CAACmgB,UAAU,CAAA7d,KAAA,CAAf,IAAI,EAAAC,8BAAA,CAAe4f,cAAc,EAAC;MACtC;;MAEA;MACA;MACA;MACA,IAAI,CAACnD,eAAe,CAACzX,SAAS,CAAC,CAAC;MAChC,IAAI,CAACyY,cAAc,CAACzY,SAAS,CAAC,CAAC;;MAE/B;MACA,IAAI,CAAC8Z,cAAc,CAAA/e,KAAA,CAAnB,IAAI,EAAAC,8BAAA,CAAmBqN,EAAE,CAACzD,KAAK,CAAC2H,KAAK,EAAC;MAEtC,IAAI,CAACsE,eAAe,CAACtR,OAAO,CAAC,CAAC;IAClC;EAAC;IAAA/I,GAAA;IAAAC,KAAA,EAED,SAAQ8gB,iBAAiBA,CAAClP,EAAe,EAAQ;MAAA,IAAAwS,WAAA;MAC7C;MACA,IAAI,CAACnD,OAAO,CAAC5c,KAAK,CAAC5C,OAAO,CAAC,UAACwf,OAAO,EAAK;QACpC,IAAMjC,MAAM,GAAGiC,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAAC0N,IAAI,CAAC5a,EAAE,CAAC;QAEtC,IAAI,CAAEsa,MAAM,EAAE;UACV;UACA;QACJ;QAEA,IAAMiE,SAAqB,GAAAzP,yBAAA,KAAOwL,MAAM,CAAC;QAEzC,IAAIA,MAAM,CAACM,IAAI,EAAE;UACb2D,SAAS,CAAC3D,IAAI,GAAG1N,EAAE,CAAC0N,IAAI;QAC5B,CAAC,MAAM;UACH2D,SAAS,CAACxD,WAAW,CAACH,IAAI,GAAG1N,EAAE,CAAC0N,IAAI;QACxC;QAEA2B,OAAO,CAAC1f,GAAG,CAAC0hB,SAAS,CAAC;MAC1B,CAAC,CAAC;;MAEF;MACA,IAAMoB,QAAgB,GAAG,EAAE;MAC3B,IAAI,CAAChD,IAAI,CAAChd,KAAK,CAAC5C,OAAO,CAAC,UAAA0W,IAAI,EAAI;QAAA,IAAAmM,gBAAA;QAC5B,KAAAA,gBAAA,GAAInM,IAAI,CAACuL,UAAU,cAAAY,gBAAA,eAAfA,gBAAA,CAAiB/I,IAAI,CAAC,UAAA+D,IAAI;UAAA,OAAIA,IAAI,CAAC5a,EAAE,KAAKkN,EAAE,CAAC0N,IAAI,CAAC5a,EAAE;QAAA,EAAC,EAAE;UACvDyT,IAAI,CAACuL,UAAU,GAAGvL,IAAI,CAACuL,UAAU,CAACviB,GAAG,CAAC,UAAAme,IAAI;YAAA,OAAIA,IAAI,CAAC5a,EAAE,KAAKkN,EAAE,CAAC0N,IAAI,CAAC5a,EAAE,GAAGkN,EAAE,CAAC0N,IAAI,GAAGA,IAAI;UAAA,EAAC;UACtF+E,QAAQ,CAAC/iB,IAAI,CAAAkS,yBAAA,KAAK2E,IAAI,CAAC,CAAC;QAC5B;MACJ,CAAC,CAAC;MACF,CAAAiM,WAAA,OAAI,CAAC/C,IAAI,EAAC9f,GAAG,CAAA+C,KAAA,CAAA8f,WAAA,EAAIC,QAAQ,CAAC;IAC9B;EAAC;IAAAtkB,GAAA;IAAAC,KAAA,EAED,SAAQ6R,gBAAgBA,CAACD,EAAc,EAAQ;MAAA,IAAA2S,mBAAA;MAC3C,IAAMxC,MAAM,GAAG,IAAI,CAACA,MAAM,CAACnhB,GAAG,CAACgR,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAChE,MAAM,CAAC;MAC1D,IAAMwH,KAAK,GAAGmJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEnhB,GAAG,CAACgR,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAC/D,OAAO,CAAC;MAEtD,IAAI,CAACuH,KAAK,EAAE;QACR,OAAO,CAAC;MACZ;MAEA,IAAM4L,QAAQ,GAAAhR,yBAAA,CAAAA,yBAAA,KACPoF,KAAK;QACR6L,YAAY,EAAE7L,KAAK,CAAC6L,YAAY,GAAG,CAAC;QACpChO,WAAW,EAAE7E,EAAE,CAAC0D;MAAO,EAC1B;MAEDyM,MAAM,CAACxgB,GAAG,CAACijB,QAAQ,CAAC;MACpB,IAAMrM,IAAI,GAAG,IAAI,CAACkJ,IAAI,CAACzgB,GAAG,CAACgR,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAChE,MAAM,CAAC;MAEtD,IAAI,EAAAmT,mBAAA,GAAApM,IAAI,CAACK,YAAY,cAAA+L,mBAAA,uBAAjBA,mBAAA,CAAmB7f,EAAE,MAAKkN,EAAE,CAAC0D,OAAO,CAACF,QAAQ,CAAC/D,OAAO,EAAE;QACvD,IAAI,CAACgQ,IAAI,CAAC9f,GAAG,CAAAiS,yBAAA,CAAAA,yBAAA,KAAM2E,IAAI;UAAEK,YAAY,EAAEgM;QAAQ,EAAE,CAAC;MACtD;IACJ;EAAC;IAAAzkB,GAAA;IAAAC,KAAA;MAAA,IAAA4X,uBAAA,GAAA3L,6BAAA,cAAAX,wBAAA,GAAAE,CAAA,CAED,SAAA0G,SAAqCN,EAAoB;QAAA,IAAAmQ,MAAA,EAAAnJ,KAAA,EAAA6L,YAAA,EAAAhO,WAAA,EAAAL,GAAA;QAAA,OAAA9K,wBAAA,GAAAC,CAAA,WAAA6G,SAAA;UAAA,kBAAAA,SAAA,CAAAzM,CAAA;YAAA;cACrD;cACMoc,MAAM,GAAG,IAAI,CAACA,MAAM,CAACnhB,GAAG,CAACgR,EAAE,CAACwD,QAAQ,CAAChE,MAAM,CAAC;cAC5CwH,KAAK,GAAGmJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEnhB,GAAG,CAACgR,EAAE,CAACwD,QAAQ,CAAC/D,OAAO,CAAC;cAAA,KAC1CuH,KAAK;gBAAAxG,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cACC8e,YAAY,GAAG1T,IAAI,CAAC2T,GAAG,CAAC9L,KAAK,CAAC6L,YAAY,GAAG7S,EAAE,CAAChN,GAAG,CAAC5C,MAAM,EAAE,CAAC,CAAC;cAAA,MACvCyiB,YAAY,GAAG,CAAC;gBAAArS,SAAA,CAAAzM,CAAA;gBAAA;cAAA;cAAAyM,SAAA,CAAAzM,CAAA;cAAA,OAAS,IAAI,CAAC6P,QAAQ,CAACkF,mBAAmB,CAAC9I,EAAE,CAACwD,QAAQ,CAAC;YAAA;cAAAgB,GAAA,GAAAhE,SAAA,CAAA3H,CAAA;cAAA2H,SAAA,CAAAzM,CAAA;cAAA;YAAA;cAAAyQ,GAAA,GAAG,IAAI;YAAA;cAArGK,WAAoB,GAAAL,GAAA;cAC1B2L,MAAM,CAACxgB,GAAG,CAAAiS,yBAAA,CAAAA,yBAAA,KAAMoF,KAAK;gBAAE6L,YAAY,EAAZA,YAAY;gBAAEhO,WAAW,EAAXA;cAAW,EAAW,CAAC;YAAC;cAAA,OAAArE,SAAA,CAAA1H,CAAA;UAAA;QAAA,GAAAwH,QAAA;MAAA,CAEpE;MAAA,SATaJ,sBAAsBA,CAAA2D,GAAA;QAAA,OAAAmC,uBAAA,CAAAtT,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAtB+P,sBAAsB;IAAA;EAAA;AAAA,I;;ACtYjC,SAAS6S,4BAA4BA,CAACC,QAAgB,EAAEC,OAAa,EAAEC,WAAiB,EAAU;EACrG;EACA,IAAMC,SAAS,GAAID,WAAW,CAACE,QAAQ,GAAGH,OAAO,CAACG,QAAQ,GAAI,CAAC;EAC/D,IAAMC,SAAS,GAAG,CAAEF,SAAS;EAC7B,IAAMG,YAAoB,GAAG,EAAE;EAE/BN,QAAQ,CAACnjB,OAAO,CAAC,UAAA0jB,IAAI,EAAI;IACrB,IAAIA,IAAI,CAACzgB,EAAE,KAAKogB,WAAW,CAACpgB,EAAE,EAAE;MAC5B;MACA;IACJ;IACA,IAAIqgB,SAAS,IAAIF,OAAO,CAACG,QAAQ,IAAIG,IAAI,CAACH,QAAQ,EAAE;MAChDG,IAAI,CAACH,QAAQ,EAAE;MACfE,YAAY,CAAC5jB,IAAI,CAAC6jB,IAAI,CAAC;IAC3B;IACA,IAAIF,SAAS,IAAIH,WAAW,CAACE,QAAQ,IAAIG,IAAI,CAACH,QAAQ,EAAE;MACpDG,IAAI,CAACH,QAAQ,EAAE;MACfE,YAAY,CAAC5jB,IAAI,CAAC6jB,IAAI,CAAC;IAC3B;EACJ,CAAC,CAAC;EAEF,OAAOD,YAAY;AACvB;AAEO,SAASE,qBAAqBA,CAACpG,MAAgC,EAAe;EAAA,IAAAwC,YAAA,EAAA6D,YAAA;EACjF,QAAA7D,YAAA,GAAOxC,MAAM,CAACM,IAAI,cAAAkC,YAAA,cAAAA,YAAA,IAAA6D,YAAA,GAAKrG,MAAM,CAAgBS,WAAW,cAAA4F,YAAA,uBAAlCA,YAAA,CAAoC/F,IAAI;AAClE,C;;;;;;;;;;;;uCC3BA,uKAAAvZ,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,gCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,gCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,gCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,gCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,gCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,gCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,gCAAA,CAAAH,CAAA,GAAAG,gCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,gCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,gCAAA,CAAAH,CAAA,8DAAAoB,yBAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,gCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,gCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,gCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,gCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,gCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,8BAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,gCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,gCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,4BAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,8BAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,2BAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,yBAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,8BAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,8BAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAAnG,4BAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,2BAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,2BAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,yBAAA,CAAA1D,CAAA,gCAAAoD,oBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,yBAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,oBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,oBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAAgG;AAyBrC;AACF;AAElD,IAAM8b,aAAa;EAUtB,SAAAA,cAA2BhU,OAAyB,EAAE;IAAA,IAAAzP,KAAA;IAAAlC,4BAAA,OAAA2lB,aAAA;IAAA1lB,4BAAA,eAT9B,IAAI4H,iCAAiC,CAAQ,IAAI,CAAC;IAAA5H,4BAAA,gBACjD,IAAIwE,iBAAiB,CAAkD,CAAC;IAAAxE,4BAAA,gBACxE,IAAIwE,iBAAiB,CAAyD,CAAC;IAAAxE,4BAAA,0BACrE,IAAIwE,iBAAiB,CAAiB,CAAC;IAAAxE,4BAAA,kBAC/C,IAAIwE,iBAAiB,CAAyD,CAAC;IAAAxE,4BAAA,0BACvE,IAAIgJ,YAAY,CAAC,CAAC;IAAAhJ,4BAAA,wBACpB,IAAImJ,eAAe,CAAC,CAAC;IAAAnJ,4BAAA,0BACnB,IAAImJ,eAAe,CAAC,CAAC;IAAA,KAE7BuI,OAAyB,GAAzBA,OAAyB;IAChD,IAAI,CAACA,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC0jB,aAAa,CAAC3T,EAAE,CAAC;IAAA,EAAC;IAC/D,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACoY,iBAAiB,CAACrI,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACuW,iBAAiB,CAACxG,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACgf,kBAAkB,CAACjP,EAAE,CAAC;IAAA,EAAC;IACzE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC2jB,kBAAkB,CAAC5T,EAAE,CAAC;IAAA,EAAC;IACzE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC4jB,iBAAiB,CAAC7T,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,WAAW,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACgf,kBAAkB,CAACjP,EAAE,CAAC;IAAA,EAAC;IACtE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,mBAAmB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC6jB,uBAAuB,CAAC9T,EAAE,CAAC;IAAA,EAAC;IACnF,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,iBAAiB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC8e,qBAAqB,CAAC/O,EAAE,CAAC;IAAA,EAAC;IAC/E,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC8jB,kBAAkB,CAAC/T,EAAE,CAAC;IAAA,EAAC;IACzE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,YAAY,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC+jB,gBAAgB,CAAChU,EAAE,CAAC;IAAA,EAAC;IACrE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,oBAAoB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACgkB,wBAAwB,CAACjU,EAAE,CAAC;IAAA,EAAC;IACrF,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,oBAAoB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAAC+e,wBAAwB,CAAChP,EAAE,CAAC;IAAA,EAAC;IACrF,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACif,iBAAiB,CAAClP,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACikB,aAAa,CAAClU,EAAE,CAAC;IAAA,EAAC;IAC/D,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACkkB,iBAAiB,CAACnU,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACmkB,iBAAiB,CAACpU,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACkY,aAAa,CAACnI,EAAE,CAAC;IAAA,EAAC;EACnE;;EAEA;AACJ;AACA;EAFI,OAAA9R,yBAAA,CAAAwlB,aAAA;IAAAvlB,GAAA;IAAAC,KAAA;MAAA,IAAAyhB,IAAA,GAAAxV,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAGA,SAAA8C,QAAA;QAAA,OAAAhD,yBAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAA/I,CAAA;YAAA;cAAA+I,QAAA,CAAA/I,CAAA;cAAA,OACU,IAAI,CAACyU,eAAe,CAACvR,OAAO;YAAA;cAAA,OAAA6F,QAAA,CAAAhE,CAAA,IAC3B,IAAI,CAAC2W,IAAI;UAAA;QAAA,GAAA/S,OAAA;MAAA,CACnB;MAAA,SAHY1N,GAAGA,CAAA;QAAA,OAAA6gB,IAAA,CAAAnd,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAHnB,GAAG;IAAA;IAKhB;AACJ;AACA;IAFI;EAAA;IAAAb,GAAA;IAAAC,KAAA;MAAA,IAAAimB,SAAA,GAAAha,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAGA,SAAAwD,SAAsBkM,OAAe;QAAA,OAAA5P,yBAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cAAAuJ,SAAA,CAAAvJ,CAAA;cAAA,OAC3B,IAAI,CAACyU,eAAe,CAACvR,OAAO;YAAA;cAAA,OAAAqG,SAAA,CAAAxE,CAAA,IAC3B,IAAI,CAACgV,KAAK,CAAC9e,GAAG,CAACsa,OAAO,CAAC;UAAA;QAAA,GAAAlM,QAAA;MAAA,CACjC;MAAA,SAHYkX,QAAQA,CAAA/V,EAAA;QAAA,OAAA8V,SAAA,CAAA3hB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAARmkB,QAAQ;IAAA;IAKrB;AACJ;AACA;IAFI;EAAA;IAAAnmB,GAAA;IAAAC,KAAA;MAAA,IAAAmmB,SAAA,GAAAla,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAGA,SAAAuE,SAAsBmL,OAAe;QAAA,IAAAnY,MAAA;QAAA,OAAAuI,yBAAA,GAAAC,CAAA,WAAAyE,SAAA;UAAA,kBAAAA,SAAA,CAAArK,CAAA;YAAA;cACjC,IAAI,IAAI,CAACygB,aAAa,CAAChd,QAAQ,CAAC8R,OAAO,CAAC,EAAE;gBACtC,IAAI,CAACkL,aAAa,CAACld,kBAAkB,cAAA+C,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAAC,SAAAiE,SAAA;kBAAA,IAAApK,MAAA;kBAAA,OAAAiG,yBAAA,GAAAC,CAAA,WAAAmE,SAAA;oBAAA,kBAAAA,SAAA,CAAA/J,CAAA;sBAAA;wBAAA+J,SAAA,CAAA/J,CAAA;wBAAA,OACb5C,MAAI,CAACuO,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,eAAe,EAAE;0BAACzQ,EAAE,EAAEwW;wBAAO,CAAC,CAAC;sBAAA;wBAAvE7V,MAAM,GAAAqK,SAAA,CAAAjF,CAAA;wBAAA,KACRpF,MAAM,CAAC9B,KAAK;0BAAAmM,SAAA,CAAA/J,CAAA;0BAAA;wBAAA;wBAAA,MACNN,MAAM,CAAC9B,KAAK;sBAAA;wBAEtBR,MAAI,CAAC6iB,gBAAgB,CAACvgB,MAAM,CAAC5C,IAAI,CAAC;sBAAC;wBAAA,OAAAiN,SAAA,CAAAhF,CAAA;oBAAA;kBAAA,GAAA+E,QAAA;gBAAA,CACtC,IAAEyL,OAAO,CAAC;cACf;cAAClL,SAAA,CAAArK,CAAA;cAAA,OAEK,IAAI,CAACygB,aAAa,CAACxlB,GAAG,CAACsa,OAAO,CAAC;YAAA;cAAA,OAAAlL,SAAA,CAAAtF,CAAA,IAC9B,IAAI,CAACoL,KAAK,CAAClV,GAAG,CAACsa,OAAO,CAAC;UAAA;QAAA,GAAAnL,QAAA;MAAA,CACjC;MAAA,SAbYsW,QAAQA,CAAA/T,GAAA;QAAA,OAAA6T,SAAA,CAAA7hB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAARskB,QAAQ;IAAA;IAerB;AACJ;AACA;AACA;AACA;IAJI;EAAA;IAAAtmB,GAAA;IAAAC,KAAA;MAAA,IAAAsmB,aAAA,GAAAra,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAKA,SAAA6E,SAA0B6K,OAAe;QAAA,OAAA5P,yBAAA,GAAAC,CAAA,WAAAgF,SAAA;UAAA,kBAAAA,SAAA,CAAA5K,CAAA;YAAA;cACrC,IAAI,CAACygB,aAAa,CAAC/c,MAAM,CAAC6R,OAAO,CAAC;cAAC,OAAA3K,SAAA,CAAA7F,CAAA,IAC5B,IAAI,CAAC2b,QAAQ,CAACnL,OAAO,CAAC;UAAA;QAAA,GAAA7K,QAAA;MAAA,CAChC;MAAA,SAHYkW,YAAYA,CAAAnT,GAAA;QAAA,OAAAkT,aAAA,CAAAhiB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAZwkB,YAAY;IAAA;IAKzB;AACJ;AACA;IAFI;EAAA;IAAAxmB,GAAA;IAAAC,KAAA;MAAA,IAAA+gB,WAAA,GAAA9U,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAGA,SAAAgH,SAAwB0I,OAAe;QAAA,IAAApU,MAAA;QAAA,OAAAwE,yBAAA,GAAAC,CAAA,WAAAmH,SAAA;UAAA,kBAAAA,SAAA,CAAA/M,CAAA;YAAA;cACnC,IAAI,IAAI,CAACqb,eAAe,CAAC5X,QAAQ,CAAC8R,OAAO,CAAC,EAAE;gBACxC,IAAI,CAAC8F,eAAe,CAAC9X,kBAAkB,cAAA+C,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAAC,SAAA0G,SAAA;kBAAA,IAAA7M,MAAA;kBAAA,OAAAiG,yBAAA,GAAAC,CAAA,WAAA6G,SAAA;oBAAA,kBAAAA,SAAA,CAAAzM,CAAA;sBAAA;wBAAAyM,SAAA,CAAAzM,CAAA;wBAAA,OACfmB,MAAI,CAACwK,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,iBAAiB,EAAE;0BAACzQ,EAAE,EAAEwW;wBAAO,CAAC,CAAC;sBAAA;wBAAzE7V,MAAM,GAAA+M,SAAA,CAAA3H,CAAA;wBAAA,KACRpF,MAAM,CAAC9B,KAAK;0BAAA6O,SAAA,CAAAzM,CAAA;0BAAA;wBAAA;wBAAA,MACNN,MAAM,CAAC9B,KAAK;sBAAA;wBAEtBuD,MAAI,CAAC6e,kBAAkB,CAACtgB,MAAM,CAAC5C,IAAI,CAAC;sBAAC;wBAAA,OAAA2P,SAAA,CAAA1H,CAAA;oBAAA;kBAAA,GAAAwH,QAAA;gBAAA,CACxC,IAAEgJ,OAAO,CAAC;cACf;cAACxI,SAAA,CAAA/M,CAAA;cAAA,OAEK,IAAI,CAACqb,eAAe,CAACpgB,GAAG,CAACsa,OAAO,CAAC;YAAA;cAAA,OAAAxI,SAAA,CAAAhI,CAAA,IAChC,IAAI,CAACuW,OAAO,CAACrgB,GAAG,CAACsa,OAAO,CAAC;UAAA;QAAA,GAAA1I,QAAA;MAAA,CACnC;MAAA,SAbY0O,UAAUA,CAAA7M,GAAA;QAAA,OAAA0M,WAAA,CAAAzc,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAVmf,UAAU;IAAA;IAevB;AACJ;AACA;IAFI;EAAA;IAAAnhB,GAAA;IAAAC,KAAA;MAAA,IAAAmhB,MAAA,GAAAlV,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAGA,SAAAoH,SAAmBsI,OAAe;QAAA,IAAAkG,MAAA,EAAAH,OAAA;QAAA,OAAA3V,yBAAA,GAAAC,CAAA,WAAAsH,SAAA;UAAA,kBAAAA,SAAA,CAAAlN,CAAA;YAAA;cAAAkN,SAAA,CAAAlN,CAAA;cAAA,OACR,IAAI,CAAC2L,OAAO,CAAC8N,KAAK,CAAC,CAAC;YAAA;cAApCgC,MAAM,GAAAvO,SAAA,CAAApI,CAAA,CAAgC/F,EAAE;cAAA,IAExC,IAAI,CAAC2c,IAAI,CAAChe,GAAG,CAAC6X,OAAO,CAAC;gBAAArI,SAAA,CAAAlN,CAAA;gBAAA;cAAA;cAAA,OAAAkN,SAAA,CAAAnI,CAAA,IAEjB5J,SAAS;YAAA;cAAA+R,SAAA,CAAAlN,CAAA;cAAA,OAGE,IAAI,CAACub,UAAU,CAAChG,OAAO,CAAC;YAAA;cAAxC+F,OAAO,GAAApO,SAAA,CAAApI,CAAA;cAAA,OAAAoI,SAAA,CAAAnI,CAAA,IACNuW,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE5c,KAAK,CAACid,IAAI,CAAC,UAAAtC,MAAM;gBAAA,OAAIA,MAAM,CAACM,IAAI,CAAC5a,EAAE,KAAK0c,MAAM;cAAA,EAAC;UAAA;QAAA,GAAAxO,QAAA;MAAA,CAClE;MAAA,SAVYwM,KAAKA,CAAA3J,GAAA;QAAA,OAAA0L,MAAA,CAAA7c,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAALqd,KAAK;IAAA;EAAA;IAAArf,GAAA;IAAAC,KAAA,EAYlB,SAAQ8lB,aAAaA,CAAClU,EAAW,EAAQ;MACrC,IAAMsK,UAAU,GAAG,IAAI,CAACwD,KAAK,CAAC9e,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC;MAC7CgB,UAAU,CAAC3a,GAAG,CAACqQ,EAAE,CAACuT,IAAI,CAAC;MACvB,IAAI,CAAC9D,IAAI,CAACzgB,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC,CAACwE,KAAK,GAAGxD,UAAU,CAAC7X,KAAK;IACtD;EAAC;IAAAtE,GAAA;IAAAC,KAAA,EAED,SAAQulB,aAAaA,CAAC3T,EAAW,EAAQ;MAAA,IAAA4U,eAAA;MACrC,CAAAA,eAAA,OAAI,CAAC1Q,KAAK,CAAClV,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC,cAAAsL,eAAA,eAA1BA,eAAA,CAA4BjlB,GAAG,CAACqQ,EAAE,CAAC6U,OAAO,CAAC;MAC3C,IAAI,CAACC,eAAe,CAACnlB,GAAG,CAAC,CAACqQ,EAAE,CAAC6U,OAAO,CAAC/hB,EAAE,EAAEkN,EAAE,CAACsJ,OAAO,CAAC,CAAC;IACzD;EAAC;IAAAnb,GAAA;IAAAC,KAAA,EAED,SAAQoY,iBAAiBA,CAACxG,EAAe,EAAQ;MAC7C,IAAIA,EAAE,CAACuG,IAAI,CAAC+C,OAAO,IAAI,IAAI,CAACpF,KAAK,CAACzS,GAAG,CAACuO,EAAE,CAACuG,IAAI,CAAC+C,OAAO,CAAC,EAAE;QACpD,IAAMpF,KAAK,GAAG,IAAI,CAACA,KAAK,CAAClV,GAAG,CAACgR,EAAE,CAACuG,IAAI,CAAC+C,OAAO,CAAC;QAC7CpF,KAAK,CAACvU,GAAG,CAAAiS,0BAAA,CAAAA,0BAAA,KACFsC,KAAK,CAAClV,GAAG,CAACgR,EAAE,CAACuG,IAAI,CAACzT,EAAE,CAAC;UACxBiiB,IAAI,EAAE/U,EAAE,CAACuG,IAAI,CAACwO,IAAI;UAClBC,WAAW,EAAEhV,EAAE,CAACuG,IAAI,CAACyO;QAAW,EACpB,CAAC;MACrB;IACJ;EAAC;IAAA7mB,GAAA;IAAAC,KAAA;MAAA,IAAA6mB,kBAAA,GAAA5a,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAED,SAAAuH,SAAgCnB,EAAe;QAAA,IAAAkV,gBAAA;QAAA,IAAA5L,OAAA,EAAA6L,KAAA,EAAAC,YAAA;QAAA,OAAA1b,yBAAA,GAAAC,CAAA,WAAAyH,SAAA;UAAA,kBAAAA,SAAA,CAAArN,CAAA;YAAA;cACrCuV,OAAO,GAAG,IAAI,CAACwL,eAAe,CAAC9lB,GAAG,CAACgR,EAAE,CAAClN,EAAE,CAAC;cAC/C,IAAI,CAACgiB,eAAe,UAAO,CAAC9U,EAAE,CAAClN,EAAE,CAAC;cAAC,IAE7BwW,OAAO;gBAAAlI,SAAA,CAAArN,CAAA;gBAAA;cAAA;cAAA,OAAAqN,SAAA,CAAAtI,CAAA;YAAA;cAIPqc,KAAK,GAAG,IAAI,CAAC1F,IAAI,CAACzgB,GAAG,CAACsa,OAAO,CAAC;cAChC8L,YAAY,GAAG,KAAK;cAExB,CAAAF,gBAAA,OAAI,CAAChR,KAAK,CAAClV,GAAG,CAACsa,OAAO,CAAC,cAAA4L,gBAAA,eAAvBA,gBAAA,UAA+B,CAAClV,EAAE,CAAClN,EAAE,CAAC;cAEtC,IAAIqiB,KAAK,CAACE,UAAU,KAAKrV,EAAE,CAAClN,EAAE,EAAE;gBAC5BqiB,KAAK,CAACE,UAAU,GAAG,IAAI;gBACvBD,YAAY,GAAG,IAAI;cACvB;cAEA,IAAID,KAAK,CAACG,YAAY,CAAChZ,QAAQ,CAAC0D,EAAE,CAAClN,EAAE,CAAC,EAAE;gBACpCqiB,KAAK,CAACG,YAAY,GAAGH,KAAK,CAACG,YAAY,CAACvP,MAAM,CAAC,UAAAvG,MAAM;kBAAA,OAAIA,MAAM,KAAKQ,EAAE,CAAClN,EAAE;gBAAA,EAAC;gBAC1EsiB,YAAY,GAAG,IAAI;cACvB;cAEA,IAAIA,YAAY,EAAE;gBACd,IAAI,CAAC3F,IAAI,CAAC9f,GAAG,CAACwlB,KAAK,CAAC;cACxB;YAAC;cAAA,OAAA/T,SAAA,CAAAtI,CAAA;UAAA;QAAA,GAAAqI,QAAA;MAAA,CACJ;MAAA,SA1BakH,iBAAiBA,CAAA/C,GAAA;QAAA,OAAA2P,kBAAA,CAAAviB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAjBkY,iBAAiB;IAAA;EAAA;IAAAla,GAAA;IAAAC,KAAA,EA4B/B,SAAQ+lB,iBAAiBA,CAACnU,EAAe,EAAQ;MAC7C,IAAMsK,UAAU,GAAG,IAAI,CAACwD,KAAK,CAAC9e,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC;MAC7CgB,UAAU,UAAO,CAACtK,EAAE,CAAClN,EAAE,CAAC;MACxB,IAAI,CAAC2c,IAAI,CAACzgB,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC,CAACwE,KAAK,GAAGxD,UAAU,CAAC7X,KAAK;IACtD;EAAC;IAAAtE,GAAA;IAAAC,KAAA,EAED,SAAQwlB,kBAAkBA,CAAC5T,EAAgB,EAAQ;MAC/C,IAAI,CAACyP,IAAI,CAAC9f,GAAG,CAACqQ,EAAE,CAACmV,KAAK,CAAC;IAC3B;EAAC;IAAAhnB,GAAA;IAAAC,KAAA,EAED,SAAQ6gB,kBAAkBA,CAACjP,EAA4B,EAAQ;MAAA,IAAAuV,qBAAA,EAAAC,gBAAA,EAAAC,qBAAA;MAC3D,IAAMlM,OAAO,IAAAgM,qBAAA,IAAAC,gBAAA,GAAG,IAAI,CAACtR,KAAK,CAAClV,GAAG,CAACgR,EAAE,CAAClN,EAAE,CAAC,cAAA0iB,gBAAA,uBAArBA,gBAAA,CAAuB/iB,KAAK,CAAClD,GAAG,CAAC,UAAAsD,IAAI;QAAA,OAAIA,IAAI,CAACC,EAAE;MAAA,EAAC,cAAAyiB,qBAAA,cAAAA,qBAAA,GAAI,EAAE;MACvE,CAAAE,qBAAA,OAAI,CAACX,eAAe,WAAO,CAAApiB,KAAA,CAAA+iB,qBAAA,EAAA9iB,+BAAA,CAAI4W,OAAO,EAAC;MAEvC,IAAI,CAACuE,KAAK,UAAO,CAAC9N,EAAE,CAAClN,EAAE,CAAC;MACxB,IAAI,CAACuc,OAAO,UAAO,CAACrP,EAAE,CAAClN,EAAE,CAAC;MAC1B,IAAI,CAACsc,eAAe,CAAC3X,MAAM,CAACuI,EAAE,CAAClN,EAAE,CAAC;MAClC,IAAI,CAACoR,KAAK,UAAO,CAAClE,EAAE,CAAClN,EAAE,CAAC;MACxB,IAAI,CAAC0hB,aAAa,CAAC/c,MAAM,CAACuI,EAAE,CAAClN,EAAE,CAAC;MAChC,IAAI,CAAC2c,IAAI,UAAO,CAACzP,EAAE,CAAClN,EAAE,CAAC;IAC3B;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQylB,iBAAiBA,CAAC7T,EAAe,EAAQ;MAC7C,IAAI,CAAC0V,eAAe,CAAC1V,EAAE,CAACmV,KAAK,CAAC;IAClC;EAAC;IAAAhnB,GAAA;IAAAC,KAAA,EAED,SAAQsnB,eAAeA,CAAA,EAA2B;MAAA,IAAAC,WAAA,EAAAnF,UAAA;MAAA,SAAAtgB,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAvBsZ,MAAM,OAAApZ,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAANmZ,MAAM,CAAAnZ,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MAC7B,CAAAolB,WAAA,OAAI,CAAC7H,KAAK,EAACne,GAAG,CAAA+C,KAAA,CAAAijB,WAAA,EAAAhjB,+BAAA,CAAK+W,MAAM,CAACna,GAAG,CAAC,UAAA4lB,KAAK;QAAA,OAAI,CACnCA,KAAK,CAACriB,EAAE,EACR,IAAI8C,iCAAiC,CAAO,IAAI,EAAEuf,KAAK,CAACrH,KAAK,CAAC,CACjE;MAAA,EAAC,CAAwD,CAAC;MAC3D,CAAA0C,UAAA,OAAI,CAACf,IAAI,EAAC9f,GAAG,CAAA+C,KAAA,CAAA8d,UAAA,EAAI9G,MAAM,CAAC;IAC5B;EAAC;IAAAvb,GAAA;IAAAC,KAAA,EAED,SAAQ0lB,uBAAuBA,CAAC9T,EAAqB,EAAQ;MACzD,IAAI,IAAI,CAACqP,OAAO,CAAC5d,GAAG,CAACuO,EAAE,CAACsJ,OAAO,CAAC,EAAE;QAC9B,IAAI,CAAC+F,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC,CAAC3Z,GAAG,CAACqQ,EAAE,CAACoN,MAAM,CAAC;MAC/C;IACJ;EAAC;IAAAjf,GAAA;IAAAC,KAAA,EAED,SAAQ2gB,qBAAqBA,CAAC/O,EAAmB,EAAQ;MACrD,IAAI,IAAI,CAACqP,OAAO,CAAC5d,GAAG,CAACuO,EAAE,CAACsJ,OAAO,CAAC,EAAE;QAC9B,IAAI,CAAC+F,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC,UAAO,CAACtJ,EAAE,CAACwP,MAAM,CAAC;MAClD;IACJ;EAAC;IAAArhB,GAAA;IAAAC,KAAA,EAED,SAAQ2lB,kBAAkBA,CAAC/T,EAAgB,EAAQ;MAC/C,IAAI,CAAE,IAAI,CAACqP,OAAO,CAAC5d,GAAG,CAACuO,EAAE,CAAClN,EAAE,CAAC,EAAE;QAC3B,IAAI,CAACuc,OAAO,CAAC1f,GAAG,CAAC,CACbqQ,EAAE,CAAClN,EAAE,EACL,IAAI8C,iCAAiC,CAAC,UAAAwX,MAAM;UAAA,OAAIA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEM,IAAI,CAAC5a,EAAE;QAAA,GAAEkN,EAAE,CAACqP,OAAO,CAAC,CAC/E,CAAC;MACN,CAAC,MAAM;QAAA,IAAA8C,iBAAA;QACH;QACA;QACA,CAAAA,iBAAA,OAAI,CAAC9C,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAAClN,EAAE,CAAC,EAACwD,SAAS,CAAA5D,KAAA,CAAAyf,iBAAA,EAAAxf,+BAAA,CAAIqN,EAAE,CAACqP,OAAO,EAAC;MACpD;IACJ;EAAC;IAAAlhB,GAAA;IAAAC,KAAA,EAED,SAAQ4lB,gBAAgBA,CAAChU,EAAc,EAAQ;MAAA,IAAAjK,MAAA;MAC3C,IAAI,CAAE,IAAI,CAACmO,KAAK,CAACzS,GAAG,CAACuO,EAAE,CAAClN,EAAE,CAAC,EAAE;QACzB,IAAI,CAACoR,KAAK,CAACvU,GAAG,CAAC,CAACqQ,EAAE,CAAClN,EAAE,EAAE,IAAI8C,iCAAiC,CAAC,IAAI,EAAEoK,EAAE,CAAC4V,SAAS,CAAC,CAAC,CAAC;MACtF,CAAC,MAAM;QAAA,IAAAC,gBAAA;QACH,CAAAA,gBAAA,OAAI,CAAC3R,KAAK,CAAClV,GAAG,CAACgR,EAAE,CAAClN,EAAE,CAAC,EAACwD,SAAS,CAAA5D,KAAA,CAAAmjB,gBAAA,EAAAljB,+BAAA,CAAIqN,EAAE,CAAC4V,SAAS,EAAC;MACpD;MACA5V,EAAE,CAAC4V,SAAS,CAAC/lB,OAAO,CAAC,UAAAglB,OAAO;QAAA,OAAI9e,MAAI,CAAC+e,eAAe,CAACnlB,GAAG,CAAC,CAACklB,OAAO,CAAC/hB,EAAE,EAAEkN,EAAE,CAAClN,EAAE,CAAC,CAAC;MAAA,EAAC;IAClF;EAAC;IAAA3E,GAAA;IAAAC,KAAA;MAAA,IAAA0nB,yBAAA,GAAAzb,8BAAA,cAAAX,yBAAA,GAAAE,CAAA,CAED,SAAA0H,SAAuCtB,EAAsB;QAAA,IAAAsJ,OAAA,EAAAyM,gBAAA,EAAAH,SAAA,EAAAI,UAAA,EAAAC,UAAA;QAAA,OAAAvc,yBAAA,GAAAC,CAAA,WAAA4H,SAAA;UAAA,kBAAAA,SAAA,CAAAxN,CAAA;YAAA;cACnDuV,OAAO,GAAG,IAAI,CAACwL,eAAe,CAAC9lB,GAAG,CAACgR,EAAE,CAAC6U,OAAO,CAAC/hB,EAAE,CAAC;cACjDijB,gBAAgB,GAAG,IAAI,CAACvB,aAAa,CAACxlB,GAAG,CAACsa,OAAO,CAAC;cAExD;AACR;AACA;AACA;cAHQ,MAIIA,OAAO,IAAIyM,gBAAgB;gBAAAxU,SAAA,CAAAxN,CAAA;gBAAA;cAAA;cAAAwN,SAAA,CAAAxN,CAAA;cAAA,OACrBgiB,gBAAgB;YAAA;cAEhBH,SAAS,GAAG,IAAI,CAAC1R,KAAK,CAAClV,GAAG,CAACsa,OAAO,CAAC;cACnC0M,UAAU,GAAGJ,SAAS,CAAC5mB,GAAG,CAACgR,EAAE,CAAC6U,OAAO,CAAC/hB,EAAE,CAAC;cAG/C,IAAIkjB,UAAU,EAAE;gBACZC,UAAU,GAAArU,0BAAA,CAAAA,0BAAA,KAAOoU,UAAU,GAAKhW,EAAE,CAAC6U,OAAO,CAAC;cAC/C,CAAC,MAAM;gBACHoB,UAAU,GAAGjW,EAAE,CAAC6U,OAAO;cAC3B;cAEAe,SAAS,CAACjmB,GAAG,CAACsmB,UAAU,CAAC;YAAC;cAAA,OAAA1U,SAAA,CAAAzI,CAAA;UAAA;QAAA,GAAAwI,QAAA;MAAA,CAEjC;MAAA,SAvBa2S,wBAAwBA,CAAA5N,GAAA;QAAA,OAAAyP,yBAAA,CAAApjB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAxB8jB,wBAAwB;IAAA;EAAA;IAAA9lB,GAAA;IAAAC,KAAA,EAyBtC,SAAQ4gB,wBAAwBA,CAAChP,EAAsB,EAAQ;MAC3D,IAAI,IAAI,CAACqP,OAAO,CAAC5d,GAAG,CAACuO,EAAE,CAACsJ,OAAO,CAAC,EAAE;QAC9B,IAAM+F,OAAO,GAAG,IAAI,CAACA,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC;QAC5C,IAAM8D,MAAM,GAAGiC,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAACwP,MAAM,CAAC;QACrCH,OAAO,CAAC1f,GAAG,CAAAiS,0BAAA,CAAAA,0BAAA,KAAK5B,EAAE,CAACoN,MAAM;UAAEM,IAAI,EAAEN,MAAM,CAACM;QAAI,EAAC,CAAC;MAClD;IACJ;EAAC;IAAAvf,GAAA;IAAAC,KAAA,EAED,SAAQgmB,iBAAiBA,CAACpU,EAAe,EAAQ;MAAA,IAAAkW,eAAA;MAC7C,IAAMpI,KAAK,GAAG,IAAI,CAACA,KAAK,CAAC9e,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC;MACxC,IAAM2J,OAAO,GAAGnF,KAAK,CAAC9e,GAAG,CAACgR,EAAE,CAACuT,IAAI,CAACzgB,EAAE,CAAC;MACrC,IAAMqjB,OAAO,GAAGnW,EAAE,CAACuT,IAAI;MACvB,IAAM6C,aAAa,GAAG,CAACD,OAAO,CAAC;MAE/B,IAAIlD,OAAO,CAACG,QAAQ,KAAK+C,OAAO,CAAC/C,QAAQ,EAAE;QACvCgD,aAAa,CAAC1mB,IAAI,CAAAgD,KAAA,CAAlB0jB,aAAa,EAAAzjB,+BAAA,CACNogB,4BAA4B,CAACjF,KAAK,CAACrb,KAAK,EAAEwgB,OAAO,EAAEkD,OAAO,CAAC,CAClE,CAAC;MACL;MAEA,CAAAD,eAAA,OAAI,CAACpI,KAAK,CAAC9e,GAAG,CAACgR,EAAE,CAACsJ,OAAO,CAAC,EAAC3Z,GAAG,CAAA+C,KAAA,CAAAwjB,eAAA,EAAIE,aAAa,CAAC;IACpD;EAAC;IAAAjoB,GAAA;IAAAC,KAAA,EAED,SAAQ+Z,aAAaA,CAACnI,EAAW,EAAQ;MAAA,IAAA4R,WAAA;MACrC,IAAMyE,aAAa,GAAG,IAAIzf,GAAG,CAACoJ,EAAE,CAACzD,KAAK,CAACmN,MAAM,CAACna,GAAG,CAAC,UAAA4lB,KAAK;QAAA,OAAIA,KAAK,CAACriB,EAAE;MAAA,EAAC,CAAC;;MAErE;MACA;MACA,IAAMwjB,eAAe,GAAG,IAAI,CAAC7G,IAAI,CAAChd,KAAK,CAClCsT,MAAM,CAAC,UAAAoP,KAAK;QAAA,OAAI,CAAEkB,aAAa,CAAC5kB,GAAG,CAAC0jB,KAAK,CAACriB,EAAE,CAAC;MAAA,EAAC,CAC9CvD,GAAG,CAAC,UAAA4lB,KAAK;QAAA,OAAIA,KAAK,CAACriB,EAAE;MAAA,EAAC;MAAC,IAAAY,SAAA,GAAAC,uCAAA,CACN2iB,eAAe;QAAAziB,KAAA;MAAA;QAArC,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAuC;UAAA,IAA5BsV,OAAO,GAAAzV,KAAA,CAAAzF,KAAA;UACd,IAAI,CAAC6gB,kBAAkB,CAAC;YAAEnc,EAAE,EAAEwW;UAAQ,CAAiB,CAAC;QAC5D;;QAEA;QACA;MAAA,SAAApV,GAAA;QAAAR,SAAA,CAAAS,CAAA,CAAAD,GAAA;MAAA;QAAAR,SAAA,CAAAU,CAAA;MAAA;MACA,IAAI,CAACogB,aAAa,CAAC7c,SAAS,CAAC,CAAC;MAC9B,IAAI,CAACyX,eAAe,CAACzX,SAAS,CAAC,CAAC;;MAEhC;MACA;MAAA,IAAA7C,UAAA,GAAAnB,uCAAA,CACoBqM,EAAE,CAACzD,KAAK,CAACmN,MAAM;QAAA3U,MAAA;MAAA;QAAnC,KAAAD,UAAA,CAAAhB,CAAA,MAAAiB,MAAA,GAAAD,UAAA,CAAAf,CAAA,IAAAC,IAAA,GAAqC;UAAA,IAA1BmhB,KAAK,GAAApgB,MAAA,CAAA3G,KAAA;UACZ,IAAI,IAAI,CAAC0f,KAAK,CAACrc,GAAG,CAAC0jB,KAAK,CAACriB,EAAE,CAAC,EAAE;YAAA,IAAAyjB,gBAAA;YAC1B,CAAAA,gBAAA,OAAI,CAACzI,KAAK,CAAC9e,GAAG,CAACmmB,KAAK,CAACriB,EAAE,CAAC,EAACwD,SAAS,CAAA5D,KAAA,CAAA6jB,gBAAA,EAAA5jB,+BAAA,CAAIwiB,KAAK,CAACrH,KAAK,EAAC;UACtD,CAAC,MAAM;YACH,IAAI,CAACA,KAAK,CAACne,GAAG,CAAC,CACXwlB,KAAK,CAACriB,EAAE,EACR,IAAI8C,iCAAiC,CAAO,IAAI,EAAEuf,KAAK,CAACrH,KAAK,CAAC,CACjE,CAAC;UACN;QACJ;MAAC,SAAA5Z,GAAA;QAAAY,UAAA,CAAAX,CAAA,CAAAD,GAAA;MAAA;QAAAY,UAAA,CAAAV,CAAA;MAAA;MAED,CAAAwd,WAAA,OAAI,CAACnC,IAAI,EAAC9f,GAAG,CAAA+C,KAAA,CAAAkf,WAAA,EAAAjf,+BAAA,CAAIqN,EAAE,CAACzD,KAAK,CAACmN,MAAM,EAAC;MAEjC,IAAI,CAAClB,eAAe,CAACtR,OAAO,CAAC,CAAC;IAClC;EAAC;IAAA/I,GAAA;IAAAC,KAAA,EAED,SAAQ8gB,iBAAiBA,CAAClP,EAAe,EAAQ;MAC7C,IAAI,CAACqP,OAAO,CAAC5c,KAAK,CAAC5C,OAAO,CAAC,UAACwf,OAAO,EAAK;QACpC,IAAMjC,MAAM,GAAGiC,OAAO,CAACrgB,GAAG,CAACgR,EAAE,CAAC0N,IAAI,CAAC5a,EAAE,CAAC;QAEtC,IAAI,CAAEsa,MAAM,EAAE;UACV;UACA;QACJ;QAEAiC,OAAO,CAAC1f,GAAG,CAAAiS,0BAAA,CAAAA,0BAAA,KAAKwL,MAAM;UAAEM,IAAI,EAAE1N,EAAE,CAAC0N;QAAI,EAAC,CAAC;MAC3C,CAAC,CAAC;IACN;EAAC;AAAA,I;;;;;;;;;AC7VE,IAAK8I,KAAK,0BAALA,KAAK;EAALA,KAAK,CAALA,KAAK;EAALA,KAAK,CAALA,KAAK;EAALA,KAAK,CAALA,KAAK;EAALA,KAAK,CAALA,KAAK;EAAA,OAALA,KAAK;AAAA;AAOV,IAAMC,oBAAoB,gBAAAvoB,uBAAA,UAAAuoB,qBAAA;EAAA1oB,0BAAA,OAAA0oB,oBAAA;EAAAzoB,0BAAA;EAAAA,0BAAA;AAAA;AAK1B,IAAM0oB,WAAW;EAAA,SAAAA,YAAA;IAAA3oB,0BAAA,OAAA2oB,WAAA;EAAA;EAAA,OAAAxoB,uBAAA,CAAAwoB,WAAA;IAAAvoB,GAAA;IAAAC,KAAA,EA4BpB,SAAcuoB,QAAQA,CAAA,EAA+B;MACjD,OAAOpe,MAAM,CAAC5C,IAAI,CAAC,IAAI,CAAC8Z,IAAI,CAAC;IACjC;EAAC;IAAAthB,GAAA;IAAAC,KAAA,EAED,SAAcwoB,SAASA,CAAC7B,IAA4B,EAAoC;MACpF,OAAO,IAAI,CAACtF,IAAI,CAACsF,IAAI,CAAC;IAC1B;EAAC;IAAA5mB,GAAA;IAAAC,KAAA,EAED,SAAcyoB,mBAAmBA,CAACC,cAAsC,EAAEC,KAAY,EAAW;MAC7F,IAAMC,GAAG,GAAG,IAAI,CAACJ,SAAS,CAACE,cAAc,CAAC;MAE1C,IAAI,CAAEE,GAAG,EAAE;QACP,MAAM,IAAIvT,KAAK,6BAAAhT,MAAA,CAA6BqmB,cAAc,CAAE,CAAC;MACjE;MAEA,OAAOC,KAAK,IAAI,IAAI,CAACH,SAAS,CAACE,cAAc,CAAC,CAACG,QAAQ;IAC3D;EAAC;AAAA;AACJjpB,0BAAA,CA7CY0oB,WAAW,UACU;EAC1BQ,IAAI,EAAE;IAAC9oB,KAAK,EAAE,CAAC,IAAI,CAAC;IAAE6oB,QAAQ,EAAET,KAAK,CAACW;EAAI,CAAC;EAC3CC,YAAY,EAAE;IAAChpB,KAAK,EAAE,CAAC,IAAI,CAAC;IAAE6oB,QAAQ,EAAET,KAAK,CAACa;EAAM,CAAC;EACrDC,WAAW,EAAE;IAAClpB,KAAK,EAAE,CAAC,IAAI,CAAC;IAAE6oB,QAAQ,EAAET,KAAK,CAACe;EAAK,CAAC;EACnDC,WAAW,EAAE;IAACppB,KAAK,EAAE,CAAC,IAAI,CAAC;IAAE6oB,QAAQ,EAAET,KAAK,CAACe;EAAK,CAAC;EACnD;EACAE,YAAY,EAAE;IAACrpB,KAAK,EAAE,CAAC,IAAI,CAAC;IAAE6oB,QAAQ,EAAET,KAAK,CAACW;EAAI,CAAC;EACnDO,WAAW,EAAE;IAACtpB,KAAK,EAAE,CAAC,IAAI,CAAC;IAAE6oB,QAAQ,EAAET,KAAK,CAACmB;EAAK,CAAC;EACnDC,oBAAoB,EAAE;IAACxpB,KAAK,EAAE,CAAC,IAAI,CAAC;IAAE6oB,QAAQ,EAAET,KAAK,CAACe;EAAK,CAAC;EAC5DM,iBAAiB,EAAE;IAACzpB,KAAK,EAAE,CAAC,IAAI,CAAC;IAAE6oB,QAAQ,EAAET,KAAK,CAACW;EAAI,CAAC;EACxDW,cAAc,EAAE;IAAC1pB,KAAK,EAAE,CAAC,IAAI,CAAC;IAAE6oB,QAAQ,EAAET,KAAK,CAACmB;EAAK,CAAC;EACtDI,iBAAiB,EAAE;IAAC3pB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACmB;EAAK,CAAC;EAC1DK,WAAW,EAAE;IAAC5pB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACe;EAAK,CAAC;EACpDU,UAAU,EAAE;IAAC7pB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACW;EAAI,CAAC;EAClDe,eAAe,EAAE;IAAC9pB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACe;EAAK,CAAC;EACxDY,eAAe,EAAE;IAAC/pB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACe;EAAK,CAAC;EACxDa,UAAU,EAAE;IAAChqB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACW;EAAI,CAAC;EAClDkB,IAAI,EAAE;IAACjqB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACW;EAAI,CAAC;EAC5CmB,gBAAgB,EAAE;IAAClqB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACe;EAAK,CAAC;EACzDgB,cAAc,EAAE;IAACnqB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACW;EAAI,CAAC;EACtDqB,cAAc,EAAE;IAACpqB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACmB;EAAK,CAAC;EACvDc,UAAU,EAAE;IAACrqB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACe;EAAK,CAAC;EACnDmB,KAAK,EAAE;IAACtqB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACmB;EAAK,CAAC;EAC9CgB,WAAW,EAAE;IAACvqB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACmB;EAAK,CAAC;EACpDiB,eAAe,EAAE;IAACxqB,KAAK,EAAE,CAAC,IAAI,EAAE;IAAE6oB,QAAQ,EAAET,KAAK,CAACmB;EAAK;AAC3D,CAAC,E;;;;;;;;;;;;;;4CCrCL,uKAAAxjB,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,qCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,qCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,qCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,qCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,qCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,qCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,qCAAA,CAAAH,CAAA,GAAAG,qCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,qCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,qCAAA,CAAAH,CAAA,8DAAAoB,8BAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,qCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,qCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,qCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,qCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,qCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,mCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,qCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,qCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,iCAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,mCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,gCAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,8BAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,mCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,mCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAA3D,4BAAAA,CAAAoH,CAAA,EAAAI,CAAA,EAAA7D,CAAA,WAAA6D,CAAA,GAAA0C,iCAAA,CAAA1C,CAAA,GAAA2C,4CAAA,CAAA/C,CAAA,EAAAgD,2CAAA,KAAAC,OAAA,CAAAC,SAAA,CAAA9C,CAAA,EAAA7D,CAAA,QAAAuG,iCAAA,CAAA9C,CAAA,EAAAmD,WAAA,IAAA/C,CAAA,CAAAtF,KAAA,CAAAkF,CAAA,EAAAzD,CAAA;AAAA,SAAAwG,4CAAAA,CAAA/C,CAAA,EAAAzD,CAAA,QAAAA,CAAA,iBAAA6G,yBAAA,CAAA7G,CAAA,0BAAAA,CAAA,UAAAA,CAAA,iBAAAA,CAAA,YAAA+E,SAAA,qEAAA+B,wCAAA,CAAArD,CAAA;AAAA,SAAAqD,wCAAAA,CAAA9G,CAAA,mBAAAA,CAAA,YAAA+G,cAAA,sEAAA/G,CAAA;AAAA,SAAAyG,2CAAAA,CAAA,cAAAhD,CAAA,IAAAuD,OAAA,CAAA/C,SAAA,CAAAgD,OAAA,CAAAjC,IAAA,CAAA0B,OAAA,CAAAC,SAAA,CAAAK,OAAA,iCAAAvD,CAAA,aAAAgD,2CAAA,YAAAA,0BAAA,aAAAhD,CAAA;AAAA,SAAA8C,iCAAAA,CAAA9C,CAAA,WAAA8C,iCAAA,GAAAnC,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAe,cAAA,CAAAN,IAAA,eAAApB,CAAA,WAAAA,CAAA,CAAA4B,SAAA,IAAAjB,MAAA,CAAAe,cAAA,CAAA1B,CAAA,MAAA8C,iCAAA,CAAA9C,CAAA;AAAA,SAAAlH,2BAAAA,CAAAkH,CAAA,EAAAzD,CAAA,6BAAAA,CAAA,aAAAA,CAAA,YAAA+E,SAAA,wDAAAtB,CAAA,CAAAQ,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAArE,CAAA,IAAAA,CAAA,CAAAiE,SAAA,IAAA2C,WAAA,IAAA3M,KAAA,EAAAwJ,CAAA,EAAAsC,QAAA,MAAAD,YAAA,WAAA1B,MAAA,CAAAsB,cAAA,CAAAjC,CAAA,iBAAAsC,QAAA,SAAA/F,CAAA,IAAAkH,iCAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAkH,iCAAAA,CAAAzD,CAAA,EAAAzD,CAAA,WAAAkH,iCAAA,GAAA9C,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAAP,IAAA,eAAApB,CAAA,EAAAzD,CAAA,WAAAyD,CAAA,CAAA4B,SAAA,GAAArF,CAAA,EAAAyD,CAAA,KAAAyD,iCAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAnG,iCAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,gCAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,gCAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,8BAAA,CAAA1D,CAAA,gCAAAoD,yBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,8BAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,yBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,yBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAa2D;AACE;AAClB;AACE;AAE7C,IAAMihB,OAAO,GAAG,SAAVA,OAAOA,CACTrV,QAAsB,EACtBsV,MAAmC;EAAA,OAClC,CAACtV,QAAQ,CAAC8F,OAAO,EAAE9F,QAAQ,CAAChE,MAAM,EAAEgE,QAAQ,CAAC/D,OAAO,EAAEqZ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEloB,IAAI,EAAEkoB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEtJ,MAAM,EAAEsJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,MAAM,CAAC,CAAChT,MAAM,CAAC5K,OAAO,CAAC,CAAC6d,IAAI,CAAC,GAAG,CAAC;AAAA;AAElI,IAAMC,eAAe,GACf,SADAA,eAAeA,CACdC,UAA8D;EAAA,OAAaL,OAAO,CAACK,UAAU,CAAC1V,QAAQ,EAAE0V,UAAU,CAACJ,MAAM,CAAC;AAAA;AAc1H,IAAMK,kBAAkB,0BAAAnpB,YAAA;EAI3B,SAAAmpB,mBAA2BzZ,OAAyB,EAAE;IAAA,IAAAzP,KAAA;IAAAlC,iCAAA,OAAAorB,kBAAA;IAClDlpB,KAAA,GAAAO,4BAAA,OAAA2oB,kBAAA;IAAQnrB,iCAAA,CAAAiC,KAAA,gBAJkB,IAAIuC,iBAAiB,CAA+B,CAAC;IAAAxE,iCAAA,CAAAiC,KAAA,wBAC7C,IAAIkH,eAAe,CAAC,CAAC;IAAAlH,KAAA,CAEhCyP,OAAyB,GAAzBA,OAAyB;IAEhDzP,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,sBAAsB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKmpB,0BAA0B,CAACpZ,EAAE,CAAC;IAAA,EAAC;IACzF/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,6BAA6B,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKmpB,0BAA0B,CAACpZ,EAAE,CAAC;IAAA,EAAC;IAChG/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKgf,kBAAkB,CAACjP,EAAE,CAAC;IAAA,EAAC;IACzE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,WAAW,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKgf,kBAAkB,CAACjP,EAAE,CAAC;IAAA,EAAC;IACtE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKoY,iBAAiB,CAACrI,EAAE,CAAC;IAAA,EAAC;IACvE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,UAAU,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKoY,iBAAiB,CAACrI,EAAE,CAAC;IAAA,EAAC;IACpE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKyW,kBAAkB,CAAC1G,EAAE,CAAC;IAAA,EAAC;IACzE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKkkB,iBAAiB,CAACnU,EAAE,CAAC;IAAA,EAAC;IACvE/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,oBAAoB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAK+e,wBAAwB,CAAChP,EAAE,CAAC;IAAA,EAAC;IACrF/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,mBAAmB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAK6e,uBAAuB,CAAC9O,EAAE,CAAC;IAAA,EAAC;IACnF/P,KAAA,CAAKyP,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAA,CAAKkY,aAAa,CAACnI,EAAE,CAAC;IAAA,EAAC;IAAC,OAAA/P,KAAA;EACpE;EAACS,2BAAA,CAAAyoB,kBAAA,EAAAnpB,YAAA;EAAA,OAAA9B,8BAAA,CAAAirB,kBAAA;IAAAhrB,GAAA;IAAAC,KAAA;MAAA,IAAAirB,cAAA,GAAAhf,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAED,SAAAwD,SACIoG,QAAsB,EACtBsV,MAAkC;QAAA,IAAA3nB,MAAA;QAAA,IAAA2B,EAAA;QAAA,OAAA4G,8BAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cAElC,IAAI,CAACulB,gBAAgB,CAAC9V,QAAQ,CAAC;cAEzB1Q,EAAE,GAAG+lB,OAAO,CAACrV,QAAQ,EAAEsV,MAAM,CAAC;cAEpC,IAAI,IAAI,CAACS,kBAAkB,CAAC/hB,QAAQ,CAAC1E,EAAE,CAAC,EAAE;gBACtC,IAAI,CAACymB,kBAAkB,CAACjiB,kBAAkB,cAAA+C,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAAC,SAAA8C,QAAA;kBAAA,IAAAjJ,MAAA;kBAAA,OAAAiG,8BAAA,GAAAC,CAAA,WAAAmD,QAAA;oBAAA,kBAAAA,QAAA,CAAA/I,CAAA;sBAAA;wBAAA+I,QAAA,CAAA/I,CAAA;wBAAA,OAClB5C,MAAI,CAACuO,OAAO,CAACK,MAAM,CAACwD,IAAI,CACzC,yBAAyB,EACzB;0BAACC,QAAQ,EAARA,QAAQ;0BAAEsV,MAAM,EAANA;wBAAM,CACrB,CAAC;sBAAA;wBAHKrlB,MAAM,GAAAqJ,QAAA,CAAAjE,CAAA;wBAAA,KAIRpF,MAAM,CAAC9B,KAAK;0BAAAmL,QAAA,CAAA/I,CAAA;0BAAA;wBAAA;wBAAA,MACNN,MAAM,CAAC9B,KAAK;sBAAA;wBAEtBR,MAAI,CAACioB,0BAA0B,CAAC3lB,MAAM,CAAC5C,IAAI,CAAC;sBAAC;wBAAA,OAAAiM,QAAA,CAAAhE,CAAA;oBAAA;kBAAA,GAAA4D,OAAA;gBAAA,CAChD,IAAE5J,EAAE,CAAC;cACV;cAACwK,SAAA,CAAAvJ,CAAA;cAAA,OAEK,IAAI,CAACwlB,kBAAkB,CAACvqB,GAAG,CAAC8D,EAAE,CAAC;YAAA;cAAA,OAAAwK,SAAA,CAAAxE,CAAA,IAC9B,IAAI,CAACogB,UAAU,CAAClqB,GAAG,CAAC8D,EAAE,CAAC;UAAA;QAAA,GAAAsK,QAAA;MAAA,CACjC;MAAA,SAvBYoc,aAAaA,CAAAjb,EAAA,EAAAmC,GAAA;QAAA,OAAA2Y,cAAA,CAAA3mB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAbqpB,aAAa;IAAA;EAAA;IAAArrB,GAAA;IAAAC,KAAA;MAAA,IAAAqrB,MAAA,GAAApf,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAyB1B,SAAAiE,SACI6b,eAAkD,EAClDlW,QAAsB;QAAA,IAAAmW,gBAAA,EAAAC,OAAA;QAAA,OAAAlgB,8BAAA,GAAAC,CAAA,WAAAmE,SAAA;UAAA,kBAAAA,SAAA,CAAA/J,CAAA;YAAA;cAAA,IAEhB2lB,eAAe,CAACtpB,MAAM;gBAAA0N,SAAA,CAAA/J,CAAA;gBAAA;cAAA;cAAA,MAClB,IAAI0P,KAAK,CAAC,wCAAwC,CAAC;YAAA;cAAA3F,SAAA,CAAA/J,CAAA;cAAA,OAG9B,IAAI,CAAC8lB,oBAAoB,CAACrW,QAAQ,CAAC;YAAA;cAA5DmW,gBAAgB,GAAA7b,SAAA,CAAAjF,CAAA;cAChB+gB,OAAiB,GAAG,EAAE;cAE5BF,eAAe,CAAC7pB,OAAO,CAAC,UAAAklB,IAAI,EAAI;gBAC5B,IAAI,CAAE4E,gBAAgB,GAAGjD,WAAW,CAACE,SAAS,CAAC7B,IAAI,CAAC,CAAC3mB,KAAK,EAAE;kBACxDwrB,OAAO,CAAClqB,IAAI,CAACqlB,IAAc,CAAC;gBAChC;cACJ,CAAC,CAAC;cAAC,OAAAjX,SAAA,CAAAhF,CAAA,IAEI;gBACHghB,EAAE,EAAEF,OAAO,CAACxpB,MAAM,KAAK,CAAC;gBACxB2pB,MAAM,EAAEH,OAAO,CAACxpB,MAAM,KAAK,CAAC;gBAC5B4pB,MAAM,EAAEJ,OAAO,CAACxpB,MAAM,GAAGspB,eAAe,CAACtpB,MAAM;gBAC/CwpB,OAAO,EAAPA;cACJ,CAAC;UAAA;QAAA,GAAA/b,QAAA;MAAA,CACJ;MAAA,SAvBYoc,KAAKA,CAAAzY,GAAA,EAAAiB,GAAA;QAAA,OAAAgX,MAAA,CAAA/mB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAL8pB,KAAK;IAAA;EAAA;IAAA9rB,GAAA;IAAAC,KAAA;MAAA,IAAA8rB,qBAAA,GAAA7f,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAyBlB,SAAAuE,SAAkCqF,QAAsB;QAAA,IAAA2W,iBAAA,EAAAC,kBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,qBAAA;QAAA,IAAAhU,IAAA,EAAAiJ,MAAA,EAAAgL,qBAAA,EAAAC,sBAAA,EAAA5M,WAAA,EAAAqD,UAAA,EAAAwJ,SAAA,EAAArjB,QAAA,EAAAsjB,cAAA,EAAAC,eAAA,EAAAlc,EAAA,EAAA8F,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAkW,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAvhB,8BAAA,GAAAC,CAAA,WAAAyE,SAAA;UAAA,kBAAAA,SAAA,CAAArK,CAAA;YAAA;cAAA,KACvCyP,QAAQ,CAAChE,MAAM;gBAAApB,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAAAqK,SAAA,CAAArK,CAAA;cAAA,OAAU,IAAI,CAAC2L,OAAO,CAACwE,KAAK,CAAClV,GAAG,CAAC,CAAC;YAAA;cAAA0P,EAAA,GAAAN,SAAA,CAAAvF,CAAA,CAAE7J,GAAG,CAACwU,QAAQ,CAAChE,MAAM;cAAApB,SAAA,CAAArK,CAAA;cAAA;YAAA;cAAA2K,EAAA,GAAI,IAAI;YAAA;cAArF6H,IAAI,GAAA7H,EAAA;cACV8E,QAAQ,GAAG;gBACP8F,OAAO,GAAA6Q,iBAAA,GAAE3W,QAAQ,CAAC8F,OAAO,cAAA6Q,iBAAA,cAAAA,iBAAA,GAAI5T,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE+C,OAAO;gBAC1C9J,MAAM,EAAEgE,QAAQ,CAAChE,MAAM;gBACvBC,OAAO,EAAE+D,QAAQ,CAAC/D;cACtB,CAAC;cAED,IAAI,CAAC6Z,gBAAgB,CAAC9V,QAAQ,CAAC;cAACpF,SAAA,CAAArK,CAAA;cAAA,OAEV,IAAI,CAAC2L,OAAO,CAAC8N,KAAK,CAAC,CAAC;YAAA;cAApCgC,MAAM,GAAApR,SAAA,CAAAvF,CAAA,CAAgC/F,EAAE;cAAAsL,SAAA,CAAArK,CAAA;cAAA,OACN,IAAI,CAACmnB,kBAAkB,CAAC1X,QAAQ,CAAC;YAAA;cAAAgX,qBAAA,GAAApc,SAAA,CAAAvF,CAAA;cAAA4hB,sBAAA,GAAAnoB,gCAAA,CAAAkoB,qBAAA;cAAlE3M,WAAW,GAAA4M,sBAAA;cAAEvJ,UAAU,GAAAuJ,sBAAA;cACxBC,SAAmB,MAAAjqB,MAAA,CAAAkC,oCAAA,EAAAynB,kBAAA,GAAQvM,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEC,KAAK,cAAAsM,kBAAA,cAAAA,kBAAA,GAAI,EAAE,GAAAznB,oCAAA,EAAA0nB,iBAAA,GAAOnJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEpD,KAAK,cAAAuM,iBAAA,cAAAA,iBAAA,GAAI,EAAE;cACjFhjB,QAA8C,GAAG;cACnD;cACA,IAAI,CAACmiB,aAAa,CAAC,CAAC,CAAC,EAAE;gBAAE5oB,IAAI,EAAE,MAAM;gBAAE4e,MAAM,EAANA;cAAO,CAAC,CAAC,CAACpV,IAAI,CAAC,UAAAvB,CAAC;gBAAA,OAAIA,CAAC,CAACqgB,UAAU;cAAA,EAAC,CAC3E;cAAA1U,GAAA,GAEGhB,QAAQ,CAAC8F,OAAO;cAAA,KAAA9E,GAAA;gBAAApG,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAAAqK,SAAA,CAAArK,CAAA;cAAA,OAAW,IAAI,CAAC2L,OAAO,CAACgK,MAAM,CAAC1a,GAAG,CAAC,CAAC;YAAA;cAAA2V,GAAA,GAAA2V,qBAAA,GAAAlc,SAAA,CAAAvF,CAAA;cAAA6L,GAAA,GAAAC,GAAA;cAAA,KAAAD,GAAA;gBAAAtG,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAAA2Q,GAAA,GAAA4V,qBAAA;YAAA;cAAA7V,GAAA,GAAAC,GAAA;cAAA,KAAAD,GAAA;gBAAArG,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAAA0Q,GAAA,GAAhC6V,qBAAA,CAAmC7oB,GAAG,CAAC+R,QAAQ,CAAC8F,OAAO,CAAC;YAAA;cAAA9E,GAAA,GAAAC,GAAA;YAAA;cAAA,KAAAD,GAAA;gBAAApG,SAAA,CAAArK,CAAA;gBAAA;cAAA;cACtE4mB,cAA4B,GAAG;gBAACrR,OAAO,EAAE9F,QAAQ,CAAC8F;cAAO,CAAC;cAChEjS,QAAQ,CAAC3H,IAAI,CAAC,IAAI,CAACyrB,qBAAqB,CAACR,cAAc,EAAED,SAAS,CAAC,CAAC;cACpErjB,QAAQ,CAAC3H,IAAI,CAAC,IAAI,CAAC8pB,aAAa,CAACmB,cAAc,EAAE;gBAAE/pB,IAAI,EAAE,MAAM;gBAAE4e,MAAM,EAANA;cAAO,CAAC,CAAC,CAACpV,IAAI,CAAC,UAAAvB,CAAC;gBAAA,OAAIA,CAAC,CAACqgB,UAAU;cAAA,EAAC,CAAC;YAAC;cAGxG,IAAI3S,IAAI,EAAE;gBACAoU,eAA4B,GAAG;kBAACrR,OAAO,EAAE9F,QAAQ,CAAC8F,OAAO;kBAAE9J,MAAM,EAAEgE,QAAQ,CAAChE;gBAAM,CAAC;gBACzF,IAAIkb,SAAS,CAACtqB,MAAM,EAAE;kBAClBiH,QAAQ,CAAC3H,IAAI,CAAC,IAAI,CAACyrB,qBAAqB,CAACR,eAAc,EAAED,SAAS,CAAC,CAAC;gBACxE;gBACArjB,QAAQ,CAAC3H,IAAI,CAAC,IAAI,CAAC8pB,aAAa,CAACmB,eAAc,EAAE;kBAAE/pB,IAAI,EAAE,MAAM;kBAAE4e,MAAM,EAANA;gBAAO,CAAC,CAAC,CAACpV,IAAI,CAAC,UAAAvB,CAAC;kBAAA,OAAIA,CAAC,CAACqgB,UAAU;gBAAA,EAAC,CAAC;cACvG;cAAC2B,GAAA,GAEGrX,QAAQ,CAAC/D,OAAO;cAAA,KAAAob,GAAA;gBAAAzc,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAAAqK,SAAA,CAAArK,CAAA;cAAA,OAAW,IAAI,CAAC2L,OAAO,CAACwE,KAAK,CAACC,SAAS,CAACX,QAAQ,CAAChE,MAAM,CAAC;YAAA;cAAAwb,GAAA,GAAAT,qBAAA,GAAAnc,SAAA,CAAAvF,CAAA;cAAAkiB,GAAA,GAAAC,GAAA;cAAA,KAAAD,GAAA;gBAAA3c,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAAAgnB,GAAA,GAAAR,qBAAA;YAAA;cAAAO,GAAA,GAAAC,GAAA;cAAA,KAAAD,GAAA;gBAAA1c,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAAA+mB,GAAA,GAApDP,qBAAA,CAAuD9oB,GAAG,CAAC+R,QAAQ,CAAC/D,OAAO,CAAC;YAAA;cAAAob,GAAA,GAAAC,GAAA;YAAA;cAAA,KAAAD,GAAA;gBAAAzc,SAAA,CAAArK,CAAA;gBAAA;cAAA;cAChG,IAAI2mB,SAAS,CAACtqB,MAAM,EAAE;gBAClBiH,QAAQ,CAAC3H,IAAI,CAAC,IAAI,CAACyrB,qBAAqB,CAAC3X,QAAQ,EAAEkX,SAAS,CAAC,CAAC;cAClE;cACArjB,QAAQ,CAAC3H,IAAI,CAAC,IAAI,CAAC8pB,aAAa,CAAChW,QAAQ,EAAE;gBAAE5S,IAAI,EAAE,MAAM;gBAAE4e,MAAM,EAANA;cAAO,CAAC,CAAC,CAACpV,IAAI,CAAC,UAAAvB,CAAC;gBAAA,OAAIA,CAAC,CAACqgB,UAAU;cAAA,EAAC,CAAC;YAAC;cAAA+B,GAAA,GAG3F,IAAI;cAAA7c,SAAA,CAAArK,CAAA;cAAA,OAAkC3C,OAAO,CAACgqB,GAAG,CAAC/jB,QAAQ,CAAC;YAAA;cAAA,OAAA+G,SAAA,CAAAtF,CAAA,IAAAmiB,GAAA,CAAtDI,0BAA0B,CAAAliB,IAAA,CAAA8hB,GAAA,EAAA7c,SAAA,CAAAvF,CAAA;UAAA;QAAA,GAAAsF,QAAA;MAAA,CACzC;MAAA,SAxCY0b,oBAAoBA,CAAAhW,GAAA;QAAA,OAAAqW,qBAAA,CAAAxnB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAApB0pB,oBAAoB;IAAA;EAAA;IAAA1rB,GAAA;IAAAC,KAAA,EA0CjC,SAAQgrB,0BAA0BA,CAACpZ,EAAsD,EAAQ;MAC7F,IAAI,CAACkZ,UAAU,CAACvpB,GAAG,CAAC,CAACspB,eAAe,CAACjZ,EAAE,CAAC,EAAEA,EAAE,CAAC,CAAC;MAC9C,IAAI,CAAC5Q,IAAI,CAAC,QAAQ,CAAC;IACvB;EAAC;IAAAjB,GAAA;IAAAC,KAAA,EAED,SAAQ6gB,kBAAkBA,CAACjP,EAA4B,EAAQ;MAAA,IAAAsb,qBAAA;MAC3D,IAAMtoB,GAAG,GAAG,IAAI,CAACuoB,0BAA0B,CAAC1C,OAAO,CAAC;QAACvP,OAAO,EAAEtJ,EAAE,CAAClN;MAAE,CAAC,CAAC,CAAC;MACtE,CAAAwoB,qBAAA,OAAI,CAAC/B,kBAAkB,EAAC9hB,MAAM,CAAA/E,KAAA,CAAA4oB,qBAAA,EAAA3oB,oCAAA,CAAIK,GAAG,EAAC;IAC1C;EAAC;IAAA7E,GAAA;IAAAC,KAAA;MAAA,IAAA6mB,kBAAA,GAAA5a,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAED,SAAA6E,SAAgCuB,EAA0B;QAAA,IAAAuG,IAAA,EAAAiV,sBAAA,EAAAxoB,GAAA;QAAA,OAAA0G,8BAAA,GAAAC,CAAA,WAAAgF,SAAA;UAAA,kBAAAA,SAAA,CAAA5K,CAAA;YAAA;cAAA4K,SAAA,CAAA5K,CAAA;cAAA,OAClC,IAAI,CAAC2L,OAAO,CAACwE,KAAK,CAAClV,GAAG,CAAC,CAAC;YAAA;cAAtCuX,IAAI,GAAA5H,SAAA,CAAA9F,CAAA,CAAoC7J,GAAG,CAACgR,EAAE,CAAClN,EAAE;cACvD,IAAIyT,IAAI,EAAE;gBACAvT,GAAG,GAAG,IAAI,CAACuoB,0BAA0B,CAAC1C,OAAO,CAAC;kBAACvP,OAAO,EAAE/C,IAAI,CAAC+C,OAAO;kBAAE9J,MAAM,EAAE+G,IAAI,CAACzT;gBAAE,CAAC,CAAC,CAAC;gBAC9F,CAAA0oB,sBAAA,OAAI,CAACjC,kBAAkB,EAAC9hB,MAAM,CAAA/E,KAAA,CAAA8oB,sBAAA,EAAA7oB,oCAAA,CAAIK,GAAG,EAAC;cAC1C;YAAC;cAAA,OAAA2L,SAAA,CAAA7F,CAAA;UAAA;QAAA,GAAA2F,QAAA;MAAA,CACJ;MAAA,SANa4J,iBAAiBA,CAAA/C,GAAA;QAAA,OAAA2P,kBAAA,CAAAviB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAjBkY,iBAAiB;IAAA;EAAA;IAAAla,GAAA;IAAAC,KAAA,EAQ/B,SAAQsY,kBAAkBA,CAAC1G,EAAgB,EAAQ;MAAA,IAAAyb,sBAAA;MAC/C,IAAMzoB,GAAG,GAAG,IAAI,CAACuoB,0BAA0B,CAAC1C,OAAO,CAAC7Y,EAAE,CAACwD,QAAQ,CAAC,CAAC;MACjE,CAAAiY,sBAAA,OAAI,CAAClC,kBAAkB,EAAC9hB,MAAM,CAAA/E,KAAA,CAAA+oB,sBAAA,EAAA9oB,oCAAA,CAAIK,GAAG,EAAC;IAC1C;EAAC;IAAA7E,GAAA;IAAAC,KAAA,EAED,SAAQ+lB,iBAAiBA,CAACnU,EAAe,EAAQ;MAAA,IAAA0b,sBAAA;MAC7C,IAAM1oB,GAAG,GAAG,IAAI,CAACuoB,0BAA0B,CAAC1C,OAAO,CAAC;QAACvP,OAAO,EAAEtJ,EAAE,CAACsJ;MAAO,CAAC,EAAE;QAAE1Y,IAAI,EAAE,MAAM;QAAEmoB,MAAM,EAAE/Y,EAAE,CAAClN;MAAG,CAAC,CAAC,CAAC;MAC5G,CAAA4oB,sBAAA,OAAI,CAACnC,kBAAkB,EAAC9hB,MAAM,CAAA/E,KAAA,CAAAgpB,sBAAA,EAAA/oB,oCAAA,CAAIK,GAAG,EAAC;IAC1C;EAAC;IAAA7E,GAAA;IAAAC,KAAA,EAED,SAAQ4gB,wBAAwBA,CAAChP,EAAsB,EAAQ;MAAA,IAAA2b,gBAAA;MAC3D,IAAI3b,EAAE,CAACwP,MAAM,OAAAmM,gBAAA,GAAK,IAAI,CAACjc,OAAO,CAACoN,EAAE,cAAA6O,gBAAA,uBAAfA,gBAAA,CAAiB7oB,EAAE,GAAE;QACnC;QACA,IAAI,CAAC1D,IAAI,CAAC,QAAQ,CAAC;MACvB;IACJ;EAAC;IAAAjB,GAAA;IAAAC,KAAA,EAED,SAAQ0gB,uBAAuBA,CAAC9O,EAAqB,EAAQ;MAAA,IAAA4b,iBAAA;MACzD,IAAI5b,EAAE,CAACwP,MAAM,OAAAoM,iBAAA,GAAK,IAAI,CAAClc,OAAO,CAACoN,EAAE,cAAA8O,iBAAA,uBAAfA,iBAAA,CAAiB9oB,EAAE,GAAE;QACnC;QACA,IAAI,CAAC1D,IAAI,CAAC,QAAQ,CAAC;MACvB;IACJ;;IAEA;AACJ;AACA;EAFI;IAAAjB,GAAA;IAAAC,KAAA,EAGA,SAAQmtB,0BAA0BA,CAACM,MAAc,EAAY;MAAA,IAAA3mB,MAAA;MACzD,IAAMlC,GAAa,GAAG,EAAE;MACxB,IAAI,CAACkmB,UAAU,CAACzmB,KAAK,CAAC5C,OAAO,CAAC,UAACqpB,UAAU,EAAK;QAC1C,IAAMpmB,EAAE,GAAGmmB,eAAe,CAACC,UAAU,CAAC;QACtC,IAAIpmB,EAAE,CAACqZ,UAAU,CAAC0P,MAAM,CAAC,EAAE;UACvB7oB,GAAG,CAACtD,IAAI,CAACoD,EAAE,CAAC;UACZoC,MAAI,CAACgkB,UAAU,UAAO,CAACpmB,EAAE,CAAC;QAC9B;MACJ,CAAC,CAAC;MACF,OAAOE,GAAG;IACd;EAAC;IAAA7E,GAAA;IAAAC,KAAA;MAAA,IAAA0tB,sBAAA,GAAAzhB,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAED,SAAA0G,SACIkD,QAAsB,EACtBkX,SAAmB;QAAA,IAAA3kB,MAAA;QAAA,IAAAgmB,cAAA;QAAA,OAAAriB,8BAAA,GAAAC,CAAA,WAAA6G,SAAA;UAAA,kBAAAA,SAAA,CAAAzM,CAAA;YAAA;cAAAyM,SAAA,CAAAzM,CAAA;cAAA,OAEU3C,OAAO,CAACgqB,GAAG,CAACV,SAAS,CAACnrB,GAAG,CAClD,UAAAwpB,MAAM;gBAAA,OAAIhjB,MAAI,CAACyjB,aAAa,CAAChW,QAAQ,EAAE;kBAAE5S,IAAI,EAAE,MAAM;kBAAEmoB,MAAM,EAANA;gBAAO,CAAC,CAAC;cAAA,CACpE,CAAC,CAAC;YAAA;cAFIgD,cAAc,GAAAvb,SAAA,CAAA3H,CAAA;cAAA,OAAA2H,SAAA,CAAA1H,CAAA,IAIb,IAAI,CAACkjB,iCAAiC,CAACxY,QAAQ,CAAC8F,OAAO,EAAEyS,cAAc,CAAC;UAAA;QAAA,GAAAzb,QAAA;MAAA,CAClF;MAAA,SATa6a,qBAAqBA,CAAA9U,GAAA,EAAA4V,GAAA;QAAA,OAAAH,sBAAA,CAAAppB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAArBgrB,qBAAqB;IAAA;EAAA;IAAAhtB,GAAA;IAAAC,KAAA;MAAA,IAAA8tB,kCAAA,GAAA7hB,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAWnC,SAAAgH,SACI0I,OAAe,EACf4P,UAAkC;QAAA,IAAAiD,MAAA,EAAAC,MAAA,EAAAtO,KAAA,EAAAuO,gBAAA,EAAAC,iBAAA;QAAA,OAAA5iB,8BAAA,GAAAC,CAAA,WAAAmH,SAAA;UAAA,kBAAAA,SAAA,CAAA/M,CAAA;YAAA;cAE9BooB,MAAM,GAAG,CAAC,EAAEC,MAAM,GAAG,CAAC;cAAAtb,SAAA,CAAA/M,CAAA;cAAA,OACN,IAAI,CAAC2L,OAAO,CAACgK,MAAM,CAAC4K,QAAQ,CAAChL,OAAO,CAAC;YAAA;cAAnDwE,KAAK,GAAAhN,SAAA,CAAAjI,CAAA;cACLwjB,gBAAgB,GAAGnD,UAAU,CAACqD,IAAI,CACpC,UAACzjB,CAAC,EAAE0jB,CAAC;gBAAA,OACD1O,KAAK,CAAC9e,GAAG,CAAC8J,CAAC,CAACggB,MAAM,CAACC,MAAM,CAAC,CAAC3F,QAAQ,GAAGtF,KAAK,CAAC9e,GAAG,CAACwtB,CAAC,CAAC1D,MAAM,CAACC,MAAM,CAAC,CAAC3F,QAAQ;cAAA,CACjF,CAAC,EAED;cACMkJ,iBAAiB,GAAGpD,UAAU,CAACuD,MAAM,CACvC,UAACC,aAAqB,EAAEC,YAAkC;gBAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;gBAAA,OACtD5d,IAAI,CAAC2T,GAAG,CACJ4J,aAAa,GAAAE,qBAAA,IAAAC,sBAAA,GACbF,YAAY,CAACzD,UAAU,CAAC8D,KAAK,cAAAH,sBAAA,uBAA7BA,sBAAA,CAA+B7rB,QAAQ,CAAC,CAAC,CAAC,CAACZ,MAAM,cAAAwsB,qBAAA,cAAAA,qBAAA,GAAI,CAAC,GAAAE,sBAAA,IAAAC,sBAAA,GACtDJ,YAAY,CAACzD,UAAU,CAAC+D,IAAI,cAAAF,sBAAA,uBAA5BA,sBAAA,CAA8B/rB,QAAQ,CAAC,CAAC,CAAC,CAACZ,MAAM,cAAA0sB,sBAAA,cAAAA,sBAAA,GAAI,CACxD,CAAC;cAAA,GACL,CACJ,CAAC;cAEDT,gBAAgB,CAACxsB,OAAO,CAAC,UAAAqtB,cAAc,EAAI;gBAAA,IAAAC,qBAAA,EAAAC,gBAAA,EAAAC,qBAAA,EAAAC,iBAAA;gBACvC,IAAMpE,UAAU,GAAGgE,cAAc,CAAChE,UAAU;gBAC5C,IAAMqE,YAAY,IAAAJ,qBAAA,IAAAC,gBAAA,GAAGlE,UAAU,CAAC+D,IAAI,cAAAG,gBAAA,uBAAfA,gBAAA,CAAiBpsB,QAAQ,CAAC,CAAC,CAAC,CAAC2b,KAAK,CAAC,EAAE,CAAC,CAAC6Q,OAAO,CAAC,CAAC,CAACxE,IAAI,CAAC,EAAE,CAAC,cAAAmE,qBAAA,cAAAA,qBAAA,GAAI,EAAE;gBACpF,IAAMM,YAAY,IAAAJ,qBAAA,IAAAC,iBAAA,GAAGpE,UAAU,CAAC8D,KAAK,cAAAM,iBAAA,uBAAhBA,iBAAA,CAAkBtsB,QAAQ,CAAC,CAAC,CAAC,CAAC2b,KAAK,CAAC,EAAE,CAAC,CAAC6Q,OAAO,CAAC,CAAC,CAACxE,IAAI,CAAC,EAAE,CAAC,cAAAqE,qBAAA,cAAAA,qBAAA,GAAI,EAAE;gBAErF,KAAK,IAAInlB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGokB,iBAAiB,EAAEpkB,CAAC,EAAE,EAAE;kBAAA,IAAAwlB,eAAA,EAAAC,eAAA;kBACxC,IAAMV,IAAI,GAAGW,QAAQ,EAAAF,eAAA,GAACH,YAAY,CAACrlB,CAAC,CAAC,cAAAwlB,eAAA,cAAAA,eAAA,GAAI,GAAG,CAAC;kBAC7C,IAAMV,KAAK,GAAGY,QAAQ,EAAAD,eAAA,GAACF,YAAY,CAACvlB,CAAC,CAAC,cAAAylB,eAAA,cAAAA,eAAA,GAAI,GAAG,CAAC;kBAE9C,IAAIV,IAAI,EAAE;oBACNb,MAAM,IAAI,CAAC,IAAIlkB,CAAC;kBACpB;kBAEA,IAAI8kB,KAAK,EAAE;oBACPb,MAAM,IAAI,CAAC,IAAIjkB,CAAC;kBACpB;gBACJ;cACJ,CAAC,CAAC;cAAC,OAAA4I,SAAA,CAAAhI,CAAA,IAEI;gBAACkkB,KAAK,EAAEb,MAAM;gBAAEc,IAAI,EAAEb;cAAM,CAAC;UAAA;QAAA,GAAAxb,QAAA;MAAA,CACvC;MAAA,SA1Caob,iCAAiCA,CAAA6B,GAAA,EAAAC,GAAA;QAAA,OAAA5B,kCAAA,CAAAxpB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAjC6rB,iCAAiC;IAAA;EAAA;IAAA7tB,GAAA;IAAAC,KAAA,EA4C/C,SAAQitB,0BAA0BA,CAAC0C,0BAAuD,EAAU;MAChG,IAAItqB,MAAM,GAAG,CAAC;MAAC,IAAAC,SAAA,GAAAC,4CAAA,CAEKoqB,0BAA0B;QAAAlqB,KAAA;MAAA;QAA9C,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAgD;UAAA,IAArC5F,KAAK,GAAAyF,KAAA,CAAAzF,KAAA;UACZ,IAAIA,KAAK,CAAC4uB,KAAK,GAAGtG,WAAW,CAACE,SAAS,CAAC,MAAM,CAAC,CAACxoB,KAAK,EAAE;YACnD,OAAO,IAAI,CAAC4vB,kBAAkB,CAAC,CAAC;UACpC;UAEAvqB,MAAM,GAAIA,MAAM,GAAG,CAACrF,KAAK,CAAC6uB,IAAI,GAAI7uB,KAAK,CAAC4uB,KAAK;QACjD;MAAC,SAAA9oB,GAAA;QAAAR,SAAA,CAAAS,CAAA,CAAAD,GAAA;MAAA;QAAAR,SAAA,CAAAU,CAAA;MAAA;MAED,OAAOX,MAAM;IACjB;EAAC;IAAAtF,GAAA;IAAAC,KAAA,EAED,SAAQ4vB,kBAAkBA,CAAA,EAAW;MACjC,IAAIvqB,MAAM,GAAG,CAAC;MAAC,IAAAqB,UAAA,GAAAnB,4CAAA,CAEI+iB,WAAW,CAACC,QAAQ,CAAC,CAAC;QAAA5hB,MAAA;MAAA;QAAzC,KAAAD,UAAA,CAAAhB,CAAA,MAAAiB,MAAA,GAAAD,UAAA,CAAAf,CAAA,IAAAC,IAAA,GAA2C;UAAA,IAAhC+gB,IAAI,GAAAhgB,MAAA,CAAA3G,KAAA;UACXqF,MAAM,IAAIijB,WAAW,CAACE,SAAS,CAAC7B,IAAI,CAAC,CAAC3mB,KAAK;QAC/C;MAAC,SAAA8F,GAAA;QAAAY,UAAA,CAAAX,CAAA,CAAAD,GAAA;MAAA;QAAAY,UAAA,CAAAV,CAAA;MAAA;MAED,OAAOX,MAAM;IACjB;EAAC;IAAAtF,GAAA;IAAAC,KAAA;MAAA,IAAA6vB,mBAAA,GAAA5jB,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAED,SAAAoH,SAAiCwC,QAAsB;QAAA,IAAA0a,OAAA,EAAAC,SAAA,EAAAC,QAAA,EAAArH,KAAA;QAAA,OAAArd,8BAAA,GAAAC,CAAA,WAAAsH,SAAA;UAAA,kBAAAA,SAAA,CAAAlN,CAAA;YAAA;cAAAkN,SAAA,CAAAlN,CAAA;cAAA,OAC7B3C,OAAO,CAACgqB,GAAG,CAAC,CAC9B5X,QAAQ,CAAC8F,OAAO,GAAG,IAAI,CAAC5J,OAAO,CAACgK,MAAM,CAAC8D,KAAK,CAAChK,QAAQ,CAAC8F,OAAO,CAAC,GAAG,IAAI,EACrE9F,QAAQ,CAAChE,MAAM,GAAG,IAAI,CAACE,OAAO,CAACwE,KAAK,CAACsJ,KAAK,CAAChK,QAAQ,CAAChE,MAAM,CAAC,GAAG,IAAI,CACrE,CAAC;YAAA;cAHI0e,OAAO,GAAAjd,SAAA,CAAApI,CAAA;cAKPslB,SAAS,GAAG3a,QAAQ,CAAC8F,OAAO,IAAI,CAAE4U,OAAO,CAAC,CAAC,CAAC;cAC5CE,QAAQ,GAAG5a,QAAQ,CAAChE,MAAM,IAAI,CAAE0e,OAAO,CAAC,CAAC,CAAC;cAAA,MAE5CC,SAAS,IAAIC,QAAQ;gBAAAnd,SAAA,CAAAlN,CAAA;gBAAA;cAAA;cACfgjB,KAAK,GAAGoH,SAAS,aAAA1tB,MAAA,CAAa+S,QAAQ,CAAC8F,OAAO,kBAAA7Y,MAAA,CAAe+S,QAAQ,CAAChE,MAAM,MAAG;cAAA,MAC/E,IAAIiE,KAAK,8CAAAhT,MAAA,CAA8CsmB,KAAK,sCAAmC,CAAC;YAAA;cAAA,OAAA9V,SAAA,CAAAnI,CAAA,IAGnGolB,OAAO;UAAA;QAAA,GAAAld,QAAA;MAAA,CACjB;MAAA,SAfaka,kBAAkBA,CAAAmD,GAAA;QAAA,OAAAJ,mBAAA,CAAAvrB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAlB+qB,kBAAkB;IAAA;EAAA;IAAA/sB,GAAA;IAAAC,KAAA,EAiBhC,SAAQkrB,gBAAgBA,CAAC9V,QAAsB,EAAQ;MACnD,IAAIA,QAAQ,CAAC/D,OAAO,IAAI,CAAE+D,QAAQ,CAAChE,MAAM,EAAE;QACvC,MAAM,IAAIiE,KAAK,CAAC,+BAA+B,CAAC;MACpD;IACJ;EAAC;IAAAtV,GAAA;IAAAC,KAAA,EAED,SAAQ+Z,aAAaA,CAACnI,EAAW,EAAQ;MACrC;MACA;MACA;MACA;MACA,IAAI,CAACuZ,kBAAkB,CAAC5hB,SAAS,CAAC,CAAC;MACnC,IAAI,CAACvI,IAAI,CAAC,QAAQ,CAAC;IACvB;EAAC;AAAA,EArRmCtB,WAAW,E;;;;;;;;;0CCtCnD,uKAAAqG,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,mCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,mCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,mCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,mCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,mCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,mCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,mCAAA,CAAAH,CAAA,GAAAG,mCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,mCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,mCAAA,CAAAH,CAAA,8DAAAoB,4BAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,mCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,mCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,mCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,mCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,mCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,iCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,mCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,mCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,+BAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,iCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,8BAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,4BAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,iCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,iCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAAnG,+BAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,8BAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,8BAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,4BAAA,CAAA1D,CAAA,gCAAAoD,uBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,4BAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,uBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,uBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAGoC;AAES;AAE7C,IAAM0mB,UAAU,GAAG,QAAQ;AAEpB,IAAMC,gBAAgB;EAIzB,SAAAA,iBAA2B7e,OAAyB,EAAE;IAAA,IAAAzP,KAAA;IAAAlC,+BAAA,OAAAwwB,gBAAA;IAAAvwB,+BAAA,eAHiC,IAAIwE,iBAAiB,CAAC,CAAC;IAAAxE,+BAAA,4BAClF,IAAImJ,eAAe,CAAC,CAAC;IAAA,KAEtBuI,OAAyB,GAAzBA,OAAyB;IAChD,IAAI,CAACA,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,WAAW,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACuuB,eAAe,CAACxe,EAAE,CAAC;IAAA,EAAC;IACnE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACwuB,iBAAiB,CAACze,EAAE,CAAC;IAAA,EAAC;IACvE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,iBAAiB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACyuB,qBAAqB,CAAC1e,EAAE,CAAC;IAAA,EAAC;IAC/E,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACgf,kBAAkB,CAACjP,EAAE,CAAC;IAAA,EAAC;IACzE,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE;MAAA,OAAM4B,KAAI,CAACkY,aAAa,CAAC,CAAC;IAAA,EAAC;EACjE;EAAC,OAAAja,4BAAA,CAAAqwB,gBAAA;IAAApwB,GAAA;IAAAC,KAAA;MAAA,IAAAyhB,IAAA,GAAAxV,iCAAA,cAAAX,4BAAA,GAAAE,CAAA,CAED,SAAAwD,SAAiBkM,OAAgB;QAAA,IAAAnY,MAAA;QAAA,IAAAhD,GAAA;QAAA,OAAAuL,4BAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cACvB5F,GAAG,GAAGmb,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIgV,UAAU;cAEjC,IAAI,IAAI,CAACK,iBAAiB,CAACnnB,QAAQ,CAACrJ,GAAG,CAAC,EAAE;gBACtC,IAAI,CAACwwB,iBAAiB,CAACrnB,kBAAkB,cAAA+C,iCAAA,cAAAX,4BAAA,GAAAE,CAAA,CAAC,SAAA8C,QAAA;kBAAA,IAAAjJ,MAAA;kBAAA,OAAAiG,4BAAA,GAAAC,CAAA,WAAAmD,QAAA;oBAAA,kBAAAA,QAAA,CAAA/I,CAAA;sBAAA;wBAAA+I,QAAA,CAAA/I,CAAA;wBAAA,OACjB5C,MAAI,CAACuO,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,cAAc,EAAE;0BAAC+F,OAAO,EAAPA;wBAAO,CAAC,CAAC;sBAAA;wBAAlE7V,MAAM,GAAAqJ,QAAA,CAAAjE,CAAA;wBAAA,KACRpF,MAAM,CAAC9B,KAAK;0BAAAmL,QAAA,CAAA/I,CAAA;0BAAA;wBAAA;wBAAA,MACNN,MAAM,CAAC9B,KAAK;sBAAA;wBAEtBR,MAAI,CAACqtB,eAAe,CAAC/qB,MAAM,CAAC5C,IAAI,CAAC;sBAAC;wBAAA,OAAAiM,QAAA,CAAAhE,CAAA;oBAAA;kBAAA,GAAA4D,OAAA;gBAAA,CACrC,IAAEvO,GAAG,CAAC;cACX;cAACmP,SAAA,CAAAvJ,CAAA;cAAA,OAEK,IAAI,CAAC4qB,iBAAiB,CAAC3vB,GAAG,CAACb,GAAG,CAAC;YAAA;cAAA,OAAAmP,SAAA,CAAAxE,CAAA,IAC9B,IAAI,CAAC2W,IAAI,CAACzgB,GAAG,CAACb,GAAG,CAAC;UAAA;QAAA,GAAAiP,QAAA;MAAA,CAC5B;MAAA,SAfYpO,GAAGA,CAAAuP,EAAA;QAAA,OAAAsR,IAAA,CAAAnd,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAHnB,GAAG;IAAA;EAAA;IAAAb,GAAA;IAAAC,KAAA,EAiBhB,SAAQowB,eAAeA,CAACnvB,KAAgB,EAAQ;MAAA,IAAAuvB,qBAAA,EAAAC,cAAA;MAC5C,IAAMvV,OAAO,IAAAsV,qBAAA,GAAGvvB,KAAK,CAACmU,QAAQ,CAAC8F,OAAO,cAAAsV,qBAAA,cAAAA,qBAAA,GAAIN,UAAU;MAEpD,IAAI,CAAC,IAAI,CAAC7O,IAAI,CAAChe,GAAG,CAAC6X,OAAO,CAAC,EAAE;QACzB,IAAI,CAACmG,IAAI,CAAC9f,GAAG,CAAC,CAAC2Z,OAAO,EAAE,IAAI1T,iCAAiC,CAAW,IAAI,CAAC,CAAC,CAAC;MACnF;;MAEA;MACA;MACA;MACA,CAAAipB,cAAA,OAAI,CAACpP,IAAI,CAACzgB,GAAG,CAACsa,OAAO,CAAC,EAAChT,SAAS,CAAA5D,KAAA,CAAAmsB,cAAA,EAAAlsB,kCAAA,CAAItD,KAAK,CAACyvB,SAAS,EAAC;IACxD;EAAC;IAAA3wB,GAAA;IAAAC,KAAA,EAED,SAAQqwB,iBAAiBA,CAACze,EAAe,EAAQ;MAAA,IAAA+e,oBAAA;MAC7C,IAAMzU,UAAU,GAAG,IAAI,CAACmF,IAAI,CAACzgB,GAAG,EAAA+vB,oBAAA,GAAC/e,EAAE,CAACgf,QAAQ,CAAC1V,OAAO,cAAAyV,oBAAA,cAAAA,oBAAA,GAAIT,UAAU,CAAC;MACnEhU,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAE3a,GAAG,CAACqQ,EAAE,CAACgf,QAAQ,CAAC;IAChC;EAAC;IAAA7wB,GAAA;IAAAC,KAAA,EAED,SAAQswB,qBAAqBA,CAAC1e,EAAmB,EAAQ;MAAA,IAAAif,WAAA;MACrD,IAAM3U,UAAU,GAAG,IAAI,CAACmF,IAAI,CAACzgB,GAAG,EAAAiwB,WAAA,GAACjf,EAAE,CAACsJ,OAAO,cAAA2V,WAAA,cAAAA,WAAA,GAAIX,UAAU,CAAC;MAC1DhU,UAAU,aAAVA,UAAU,eAAVA,UAAU,UAAQ,CAACtK,EAAE,CAACkf,UAAU,CAAC;IACrC;EAAC;IAAA/wB,GAAA;IAAAC,KAAA,EAED,SAAQ6gB,kBAAkBA,CAAC5f,KAAmB,EAAQ;MAClD,IAAI,CAACogB,IAAI,UAAO,CAACpgB,KAAK,CAACyD,EAAE,CAAC;IAC9B;EAAC;IAAA3E,GAAA;IAAAC,KAAA,EAED,SAAQ+Z,aAAaA,CAAA,EAAS;MAC1B;MACA;MACA;MACA,IAAI,CAACwW,iBAAiB,CAAChnB,SAAS,CAAC,CAAC;IACtC;EAAC;AAAA,I;;;;;;;;;sCCtEL,uKAAAxD,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,+BAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,+BAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,+BAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,+BAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,+BAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,+BAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,+BAAA,CAAAH,CAAA,GAAAG,+BAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,+BAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,+BAAA,CAAAH,CAAA,8DAAAoB,wBAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,+BAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,+BAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,+BAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,+BAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,+BAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,6BAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,+BAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,+BAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,2BAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,6BAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,0BAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,wBAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,6BAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,6BAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAAnG,2BAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,0BAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,0BAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,wBAAA,CAAA1D,CAAA,gCAAAoD,mBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,wBAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,mBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,mBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAA6E;AAE3B;AACP;AAEpC,IAAMunB,YAAY;EAKrB,SAAAA,aAA2Bzf,OAAyB,EAAE;IAAA,IAAAzP,KAAA;IAAAlC,2BAAA,OAAAoxB,YAAA;IAAAnxB,2BAAA,uBAJvB,IAAIF,WAAW,CAAmB,CAAC;IAAAE,2BAAA,gBAEA,IAAI4H,iCAAiC,CAAC,IAAI,CAAC;IAAA,KAElF8J,OAAyB,GAAzBA,OAAyB;IAChD;IACAA,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAAgB,KAAK;MAAA,OAAIY,KAAI,CAACmvB,WAAW,CAAC,CAAC/vB,KAAK,CAACqe,IAAI,CAAC,CAAC;IAAA,EAAC;IACzEhO,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,mBAAmB,EAAE,UAAAgB,KAAK;MAAA,OAAIY,KAAI,CAACovB,aAAa,CAAChwB,KAAK,CAACggB,OAAO,CAAC;IAAA,EAAC;IAClF3P,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,mBAAmB,EAAE,UAAAgB,KAAK;MAAA,OAAIY,KAAI,CAACovB,aAAa,CAAC,CAAChwB,KAAK,CAAC+d,MAAM,CAAC,CAAC;IAAA,EAAC;IACnF1N,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,cAAc,EAAE,UAAAgB,KAAK;MAAA,OAAIY,KAAI,CAACovB,aAAa,CAAChwB,KAAK,CAACggB,OAAO,CAAC;IAAA,EAAC;IAC7E3P,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,aAAa,EAAE,UAAAgB,KAAK;MAAA,OAAIY,KAAI,CAACovB,aAAa,CAAChwB,KAAK,CAACggB,OAAO,CAAC;IAAA,EAAC;IAC5E3P,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,UAAU,EAAE,UAAAgB,KAAK;MAAA,OAAIY,KAAI,CAACmvB,WAAW,CAAC/vB,KAAK,CAACuU,QAAQ,CAACrU,GAAG,CAAC,UAAAmU,OAAO;QAAA,OAAIA,OAAO,CAAC+J,MAAM,CAACC,IAAI;MAAA,EAAC,CAAC;IAAA,EAAC;IAC5GhO,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,YAAY,EAAE,UAAAgB,KAAK;MAAA,OAAIY,KAAI,CAACmvB,WAAW,CAAC,CAAC/vB,KAAK,CAACqU,OAAO,CAAC+J,MAAM,CAACC,IAAI,CAAC,CAAC;IAAA,EAAC;IACvFhO,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAAgB,KAAK;MAAA,OAAIY,KAAI,CAACkY,aAAa,CAAC9Y,KAAK,CAAC;IAAA,EAAC;EACpE;;EAEA;AACJ;AACA;EAFI,OAAAnB,wBAAA,CAAAixB,YAAA;IAAAhxB,GAAA;IAAAC,KAAA;MAAA,IAAAkxB,aAAA,GAAAjlB,6BAAA,cAAAX,wBAAA,GAAAE,CAAA,CAGA,SAAA8C,QAAA;QAAA,OAAAhD,wBAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAA/I,CAAA;YAAA;cAAA,OAAA+I,QAAA,CAAAhE,CAAA,IACW,IAAI,CAACymB,KAAK;UAAA;QAAA,GAAA7iB,OAAA;MAAA,CACpB;MAAA,SAFY8iB,YAAYA,CAAA;QAAA,OAAAF,aAAA,CAAA5sB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAZqvB,YAAY;IAAA;EAAA;IAAArxB,GAAA;IAAAC,KAAA,EAIzB,SAAQixB,aAAaA,CAAChQ,OAAqC,EAAQ;MAC/D,IAAI,CAAC+P,WAAW,CAAC/P,OAAO,CAAC9f,GAAG,CAACikB,qBAAqB,CAAC,CAAC;IACxD;EAAC;IAAArlB,GAAA;IAAAC,KAAA,EAED,SAAQ+Z,aAAaA,CAACsX,OAAgB,EAAQ;MAC1C;MACA;MACA;MACA,IAAI,CAACL,WAAW,CAAC,CAACK,OAAO,CAAC/R,IAAI,CAAC,CAAC;IACpC;EAAC;IAAAvf,GAAA;IAAAC,KAAA,EAED,SAAQgxB,WAAWA,CAACG,KAAa,EAAQ;MAAA,IAAApuB,MAAA;QAAAuuB,WAAA;MACrCH,KAAK,CAAC1vB,OAAO,CAAC,UAAA8vB,OAAO,EAAI;QACrB,IAAMC,OAAO,GAAGzuB,MAAI,CAACouB,KAAK,CAACvwB,GAAG,CAAC2wB,OAAO,CAAC7sB,EAAE,CAAC;QAC1C,IAAI8sB,OAAO,IAAIA,OAAO,CAACC,MAAM,KAAKF,OAAO,CAACE,MAAM,EAAE;UAC9C1uB,MAAI,CAAC2uB,YAAY,CAAC1wB,IAAI,CAAC,QAAQ,EAAEuwB,OAAO,CAAC;QAC7C;MACJ,CAAC,CAAC;MAEF,CAAAD,WAAA,OAAI,CAACH,KAAK,EAAC5vB,GAAG,CAAA+C,KAAA,CAAAgtB,WAAA,EAAA/sB,8BAAA,CAAI4sB,KAAK,EAAC;IAC5B;EAAC;AAAA,I;;;;;;;;;8CCjDL,uKAAAprB,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,uCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,uCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,uCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,uCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,uCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,uCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,uCAAA,CAAAH,CAAA,GAAAG,uCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,uCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,uCAAA,CAAAH,CAAA,8DAAAoB,gCAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,uCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,uCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,uCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,uCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,uCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,qCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,uCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,uCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,mCAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,qCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,kCAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,gCAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,qCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,qCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAAnG,mCAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,kCAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,kCAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,gCAAA,CAAA1D,CAAA,gCAAAoD,2BAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,gCAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,2BAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,2BAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAD6E;AAQhC;AAG7C,IAAMjD,KAAK,GAAG,SAARA,KAAKA,CAAIorB,SAAiB,EAAEnvB,IAA0B;EAAA,UAAAH,MAAA,CAAgBsvB,SAAS,OAAAtvB,MAAA,CAAIG,IAAI;AAAA,CAAE;AAC/F,IAAMovB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,YAA8B;EAAA,OAAatrB,KAAK,CAACsrB,YAAY,CAACC,OAAO,CAACptB,EAAE,EAAEmtB,YAAY,CAACrvB,IAAI,CAAC;AAAA;AAEpH,IAAMuvB,oBAAoB;EAI7B,SAAAA,qBAA2BzgB,OAAyB,EAAE;IAAA,IAAAzP,KAAA;IAAAlC,mCAAA,OAAAoyB,oBAAA;IAAAnyB,mCAAA,wBAHuB,IAAI4H,iCAAiC,CAAmBoqB,qBAAqB,CAAC;IAAAhyB,mCAAA,mBACxI,IAAImJ,eAAe,CAAC,CAAC;IAAA,KAEbuI,OAAyB,GAAzBA,OAAyB;IAChD,IAAI,CAACA,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,eAAe,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACmwB,mBAAmB,CAACpgB,EAAE,CAAC;IAAA,EAAC;IAC3E,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,iBAAiB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACowB,qBAAqB,CAACrgB,EAAE,CAAC;IAAA,EAAC;IAC/E,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,qBAAqB,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACqwB,yBAAyB,CAACtgB,EAAE,CAAC;IAAA,EAAC;IACvF,IAAI,CAACN,OAAO,CAACK,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE;MAAA,OAAM4B,KAAI,CAACkY,aAAa,CAAC,CAAC;IAAA,EAAC;EACjE;EAAC,OAAAja,gCAAA,CAAAiyB,oBAAA;IAAAhyB,GAAA;IAAAC,KAAA;MAAA,IAAAyhB,IAAA,GAAAxV,qCAAA,cAAAX,gCAAA,GAAAE,CAAA,CAED,SAAAwD,SAAA;QAAA,IAAAjM,MAAA;QAAA,OAAAuI,gCAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cACI,IAAI,IAAI,CAACsD,QAAQ,CAACG,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC/B,IAAI,CAACH,QAAQ,CAACC,kBAAkB,cAAA+C,qCAAA,cAAAX,gCAAA,GAAAE,CAAA,CAAC,SAAA8C,QAAA;kBAAA,IAAAjJ,MAAA;kBAAA,OAAAiG,gCAAA,GAAAC,CAAA,WAAAmD,QAAA;oBAAA,kBAAAA,QAAA,CAAA/I,CAAA;sBAAA;wBAAA+I,QAAA,CAAA/I,CAAA;wBAAA,OACR5C,MAAI,CAACuO,OAAO,CAACK,MAAM,CAACwD,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;sBAAA;wBAA/D9P,MAAM,GAAAqJ,QAAA,CAAAjE,CAAA;wBAAA,KACRpF,MAAM,CAAC9B,KAAK;0BAAAmL,QAAA,CAAA/I,CAAA;0BAAA;wBAAA;wBAAA,MACNN,MAAM,CAAC9B,KAAK;sBAAA;wBAAA,OAAAmL,QAAA,CAAAhE,CAAA;oBAAA;kBAAA,GAAA4D,OAAA;gBAAA,CAEzB,IAAE,KAAK,CAAC;cACb;cAACY,SAAA,CAAAvJ,CAAA;cAAA,OAEK,IAAI,CAACsD,QAAQ,CAACrI,GAAG,CAAC,KAAK,CAAC;YAAA;cAAA,OAAAsO,SAAA,CAAAxE,CAAA,IACvB,IAAI,CAACynB,aAAa;UAAA;QAAA,GAAAnjB,QAAA;MAAA,CAC5B;MAAA,SAZYpO,GAAGA,CAAA;QAAA,OAAA6gB,IAAA,CAAAnd,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAHnB,GAAG;IAAA;EAAA;IAAAb,GAAA;IAAAC,KAAA;MAAA,IAAAoyB,OAAA,GAAAnmB,qCAAA,cAAAX,gCAAA,GAAAE,CAAA,CAchB,SAAAiE,SAAoBkiB,SAAiB,EAAEnvB,IAA0B;QAAA,OAAA8I,gCAAA,GAAAC,CAAA,WAAAmE,SAAA;UAAA,kBAAAA,SAAA,CAAA/J,CAAA;YAAA;cAAA+J,SAAA,CAAA/J,CAAA;cAAA,OACvD,IAAI,CAAC/E,GAAG,CAAC,CAAC;YAAA;cAAA,OAAA8O,SAAA,CAAAhF,CAAA,IACT,IAAI,CAACynB,aAAa,CAAC9uB,GAAG,CAACkD,KAAK,CAACorB,SAAS,EAAEnvB,IAAI,CAAC,CAAC;UAAA;QAAA,GAAAiN,QAAA;MAAA,CACxD;MAAA,SAHY4iB,MAAMA,CAAAliB,EAAA,EAAAmC,GAAA;QAAA,OAAA8f,OAAA,CAAA9tB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAANswB,MAAM;IAAA;EAAA;IAAAtyB,GAAA;IAAAC,KAAA,EAKnB,SAAQgyB,mBAAmBA,CAACpgB,EAAiB,EAAQ;MAAA,IAAA0gB,mBAAA;MACjD;MACA;MACA,CAAAA,mBAAA,OAAI,CAACH,aAAa,EAACjqB,SAAS,CAAA5D,KAAA,CAAAguB,mBAAA,EAAA/tB,sCAAA,CAAIqN,EAAE,CAACugB,aAAa,EAAC;IACrD;EAAC;IAAApyB,GAAA;IAAAC,KAAA,EAED,SAAQiyB,qBAAqBA,CAACrgB,EAAmB,EAAQ;MACrD,IAAI,IAAI,CAAC3I,QAAQ,CAAC5F,GAAG,CAAC,KAAK,CAAC,EAAE;QAC1B,IAAI,CAAC8uB,aAAa,CAAC5wB,GAAG,CAACqQ,EAAE,CAACigB,YAAY,CAAC;MAC3C;IACJ;EAAC;IAAA9xB,GAAA;IAAAC,KAAA,EAED,SAAQkyB,yBAAyBA,CAACtgB,EAAuB,EAAQ;MAC7D,IAAI,IAAI,CAAC3I,QAAQ,CAAC5F,GAAG,CAAC,KAAK,CAAC,EAAE;QAC1B,IAAI,CAAC8uB,aAAa,UAAO,CAACP,qBAAqB,CAAChgB,EAAE,CAACigB,YAAY,CAAC,CAAC;MACrE;IACJ;EAAC;IAAA9xB,GAAA;IAAAC,KAAA,EAED,SAAQ+Z,aAAaA,CAAA,EAAS;MAC1B;MACA;MACA,IAAI,CAAC9Q,QAAQ,CAACM,SAAS,CAAC,CAAC;IAC7B;EAAC;AAAA,I;;;0CCjEL,uKAAAxD,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,mCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,mCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,mCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,mCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,mCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,mCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,mCAAA,CAAAH,CAAA,GAAAG,mCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,mCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,mCAAA,CAAAH,CAAA,8DAAAoB,4BAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,mCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,mCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,mCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,mCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,mCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,iCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,mCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,mCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,+BAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,iCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,8BAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,4BAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,iCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,iCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAAnG,+BAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,8BAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,8BAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,4BAAA,CAAA1D,CAAA,gCAAAoD,uBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,4BAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,uBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,uBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAC4C;AACE;AACU;AACd;AACU;AACR;AACgB;AAErD,IAAM+oB,gBAAgB;EAoCzB,SAAAA,iBAAmB5gB,MAA2B,EAAE;IAAA,IAAA9P,KAAA;IAAAlC,+BAAA,OAAA4yB,gBAAA;IAAA3yB,+BAAA;IAjChD;AACJ;AACA;IAFIA,+BAAA;IAKA;AACJ;AACA;IAFIA,+BAAA;IAKA;AACJ;AACA;IAFIA,+BAAA;IAKA;AACJ;AACA;IAFIA,+BAAA;IAKA;AACJ;AACA;IAFIA,+BAAA;IAKA;AACJ;AACA;IAFIA,+BAAA;IAAAA,+BAAA,cAKoB,IAAI;IAAAA,+BAAA,0BACW,IAAIgJ,YAAY,CAAC,CAAC;IAGjD,IAAI,CAAC+I,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACA,MAAM,CAAC1R,EAAE,CAAC,SAAS,EAAE,UAAA2R,EAAE;MAAA,OAAI/P,KAAI,CAACkY,aAAa,CAACnI,EAAE,CAAC;IAAA,EAAC;IAEvD,IAAI,CAAC4gB,WAAW,GAAG,IAAIzH,kBAAkB,CAAC,IAAI,CAAC;IAC/C,IAAI,CAACjV,KAAK,GAAG,IAAIsK,YAAY,CAAC,IAAI,CAAC;IACnC,IAAI,CAAC9E,MAAM,GAAG,IAAIgK,aAAa,CAAC,IAAI,CAAC;IACrC,IAAI,CAACoL,SAAS,GAAG,IAAIP,gBAAgB,CAAC,IAAI,CAAC;IAC3C,IAAI,CAACgB,KAAK,GAAG,IAAIJ,YAAY,CAAC,IAAI,CAAC;IACnC,IAAI,CAACoB,aAAa,GAAG,IAAIJ,oBAAoB,CAAC,IAAI,CAAC;EACvD;EAAC,OAAAjyB,4BAAA,CAAAyyB,gBAAA;IAAAxyB,GAAA;IAAAa,GAAA,EAED,SAAAA,IAAA,EAA6B;MACzB,OAAO,IAAI,CAAC6xB,GAAG;IACnB;EAAC;IAAA1yB,GAAA;IAAAC,KAAA;MAAA,IAAAmhB,MAAA,GAAAlV,iCAAA,cAAAX,4BAAA,GAAAE,CAAA,CAED,SAAA8C,QAAA;QAAA,OAAAhD,4BAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAA/I,CAAA;YAAA;cAAA+I,QAAA,CAAA/I,CAAA;cAAA,OACU,IAAI,CAACyU,eAAe,CAACvR,OAAO;YAAA;cAAA,OAAA6F,QAAA,CAAAhE,CAAA,IAC3B,IAAI,CAAC+nB,GAAG;UAAA;QAAA,GAAAnkB,OAAA;MAAA,CAClB;MAAA,SAHY8Q,KAAKA,CAAA;QAAA,OAAA+B,MAAA,CAAA7c,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAALqd,KAAK;IAAA;EAAA;IAAArf,GAAA;IAAAC,KAAA,EAKlB,SAAQ+Z,aAAaA,CAACnI,EAAW,EAAQ;MACrC,IAAI,CAAC6gB,GAAG,GAAG7gB,EAAE,CAAC0N,IAAI;MAClB,IAAI,CAAClF,eAAe,CAACtR,OAAO,CAAC,CAAC;IAClC;EAAC;AAAA,I;;;;;;6CCrEL,uKAAA/C,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,sCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,sCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,sCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,sCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,sCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,sCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,sCAAA,CAAAH,CAAA,GAAAG,sCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,sCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,sCAAA,CAAAH,CAAA,8DAAAoB,+BAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,sCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,sCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,sCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,sCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,sCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,oCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,sCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,sCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,kCAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,oCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,iCAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,+BAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,oCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,oCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAA3D,6BAAAA,CAAAoH,CAAA,EAAAI,CAAA,EAAA7D,CAAA,WAAA6D,CAAA,GAAA0C,kCAAA,CAAA1C,CAAA,GAAA2C,6CAAA,CAAA/C,CAAA,EAAAgD,4CAAA,KAAAC,OAAA,CAAAC,SAAA,CAAA9C,CAAA,EAAA7D,CAAA,QAAAuG,kCAAA,CAAA9C,CAAA,EAAAmD,WAAA,IAAA/C,CAAA,CAAAtF,KAAA,CAAAkF,CAAA,EAAAzD,CAAA;AAAA,SAAAwG,6CAAAA,CAAA/C,CAAA,EAAAzD,CAAA,QAAAA,CAAA,iBAAA6G,0BAAA,CAAA7G,CAAA,0BAAAA,CAAA,UAAAA,CAAA,iBAAAA,CAAA,YAAA+E,SAAA,qEAAA+B,yCAAA,CAAArD,CAAA;AAAA,SAAAqD,yCAAAA,CAAA9G,CAAA,mBAAAA,CAAA,YAAA+G,cAAA,sEAAA/G,CAAA;AAAA,SAAAyG,4CAAAA,CAAA,cAAAhD,CAAA,IAAAuD,OAAA,CAAA/C,SAAA,CAAAgD,OAAA,CAAAjC,IAAA,CAAA0B,OAAA,CAAAC,SAAA,CAAAK,OAAA,iCAAAvD,CAAA,aAAAgD,4CAAA,YAAAA,0BAAA,aAAAhD,CAAA;AAAA,SAAA8C,kCAAAA,CAAA9C,CAAA,WAAA8C,kCAAA,GAAAnC,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAe,cAAA,CAAAN,IAAA,eAAApB,CAAA,WAAAA,CAAA,CAAA4B,SAAA,IAAAjB,MAAA,CAAAe,cAAA,CAAA1B,CAAA,MAAA8C,kCAAA,CAAA9C,CAAA;AAAA,SAAAlH,4BAAAA,CAAAkH,CAAA,EAAAzD,CAAA,6BAAAA,CAAA,aAAAA,CAAA,YAAA+E,SAAA,wDAAAtB,CAAA,CAAAQ,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAArE,CAAA,IAAAA,CAAA,CAAAiE,SAAA,IAAA2C,WAAA,IAAA3M,KAAA,EAAAwJ,CAAA,EAAAsC,QAAA,MAAAD,YAAA,WAAA1B,MAAA,CAAAsB,cAAA,CAAAjC,CAAA,iBAAAsC,QAAA,SAAA/F,CAAA,IAAAkH,kCAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAkH,kCAAAA,CAAAzD,CAAA,EAAAzD,CAAA,WAAAkH,kCAAA,GAAA9C,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAAP,IAAA,eAAApB,CAAA,EAAAzD,CAAA,WAAAyD,CAAA,CAAA4B,SAAA,GAAArF,CAAA,EAAAyD,CAAA,KAAAyD,kCAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAnG,kCAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,iCAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,iCAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,+BAAA,CAAA1D,CAAA,gCAAAoD,0BAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,+BAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,0BAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,0BAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAAgI;AAC9D;AAAA,IA0B7DkpB,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA,EAAxBA,wBAAwB;AActB,IAAMC,mBAAmB,0BAAAC,mBAAA;EAc5B,SAAAD,oBAAoCE,OAA+B,EAAE;IAAA,IAAAC,qBAAA,EAAAC,aAAA,EAAAC,cAAA,EAAAC,qBAAA,EAAAC,cAAA,EAAAC,qBAAA,EAAAC,cAAA,EAAAC,qBAAA;IAAA,IAAAxxB,KAAA;IAAAlC,kCAAA,OAAAgzB,mBAAA;IACjE9wB,KAAA,GAAAO,6BAAA,OAAAuwB,mBAAA;IAAQ/yB,kCAAA,CAAAiC,KAAA,WAdY6wB,wBAAwB;IAAA9yB,kCAAA,CAAAiC,KAAA;IAAAjC,kCAAA,CAAAiC,KAAA,QAGjB,IAAI;IAAAjC,kCAAA,CAAAiC,KAAA,eACD,EAAE;IAAAjC,kCAAA,CAAAiC,KAAA;IAAAjC,kCAAA,CAAAiC,KAAA;IAAAjC,kCAAA,CAAAiC,KAAA,4BAG4C,IAAI;IAAAjC,kCAAA,CAAAiC,KAAA,oBACnC,IAAI;IAAAjC,kCAAA,CAAAiC,KAAA;IAAAjC,kCAAA,CAAAiC,KAAA;IAAAjC,kCAAA,CAAAiC,KAAA;IAAAA,KAAA,CAKjBgxB,OAA+B,GAA/BA,OAA+B;IAE/D,KAAAC,qBAAA,GAAIjxB,KAAA,CAAKgxB,OAAO,CAACS,aAAa,cAAAR,qBAAA,cAAAA,qBAAA,GAAI,IAAI,EAAE;MACpCjxB,KAAA,CAAKsM,KAAK,GAAG,IAAIokB,gBAAgB,CAAA1wB,KAAK,CAAC;IAC3C;IAEA,CAAAkxB,aAAA,GAAAF,OAAO,CAACU,IAAI,cAAAR,aAAA,cAAAA,aAAA,GAAZF,OAAO,CAACU,IAAI,GAAK,CAAC,CAAC;IACnB,CAAAN,qBAAA,IAAAD,cAAA,GAAAH,OAAO,CAACU,IAAI,EAACC,OAAO,cAAAP,qBAAA,cAAAA,qBAAA,GAApBD,cAAA,CAAaQ,OAAO,GAAK,IAAI;IAC7B,CAAAL,qBAAA,IAAAD,cAAA,GAAAL,OAAO,CAACU,IAAI,EAACE,mBAAmB,cAAAN,qBAAA,cAAAA,qBAAA,GAAhCD,cAAA,CAAaO,mBAAmB,GAAK,KAAK;IAC1C,CAAAJ,qBAAA,IAAAD,cAAA,GAAAP,OAAO,CAACU,IAAI,EAACG,iBAAiB,cAAAL,qBAAA,cAAAA,qBAAA,GAA9BD,cAAA,CAAaM,iBAAiB,GAAK,IAAI;IAAC,OAAA7xB,KAAA;EAC5C;EAACS,4BAAA,CAAAqwB,mBAAA,EAAAC,mBAAA;EAAA,OAAA9yB,+BAAA,CAAA6yB,mBAAA;IAAA5yB,GAAA;IAAAC,KAAA;MAAA,IAAA2zB,QAAA,GAAA1nB,oCAAA,cAAAX,+BAAA,GAAAE,CAAA,CAED,SAAA8C,QAAA;QAAA,IAAAslB,qBAAA;UAAA7wB,MAAA;UAAA8wB,qBAAA;UAAAC,qBAAA;QAAA,IAAAC,oBAAA,EAAAC,MAAA;QAAA,OAAA1oB,+BAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAA/I,CAAA;YAAA;cAAA,MACQ,IAAI,CAACsuB,aAAa,CAAC,CAAC,IAAI,IAAI,CAACC,mBAAmB,CAAC,CAAC;gBAAAxlB,QAAA,CAAA/I,CAAA;gBAAA;cAAA;cAAA,OAAA+I,QAAA,CAAAhE,CAAA,KAAAqpB,oBAAA,GAC3C,IAAI,CAACI,cAAc,cAAAJ,oBAAA,cAAAA,oBAAA,GAAIjzB,SAAS;YAAA;cAG3C;cACA;cACA;cACA,CAAA8yB,qBAAA,OAAI,CAACO,cAAc,cAAAP,qBAAA,cAAAA,qBAAA,GAAnB,IAAI,CAACO,cAAc,GAAK,IAAInxB,OAAO,CAAO;gBAAA,SAAAlB,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;kBAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;gBAAA;gBAAA,OAAKY,MAAI,CAACqxB,sBAAsB,GAAGnyB,IAAI;cAAA,EAAC;cAEpF+xB,MAAM,GAAG,IAAIK,eAAe,EAAAR,qBAAA,GAAC,IAAI,CAAChB,OAAO,CAACyB,WAAW,cAAAT,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,CAAC;cAClEG,MAAM,CAACzyB,GAAG,CAAC,OAAO,EAAE,IAAI,CAACsxB,OAAO,CAAC0B,KAAK,CAAC;cAEvC,IAAI,CAACC,EAAE,GAAG,IAAIC,SAAS,IAAApyB,MAAA,CAAI,IAAI,CAACwwB,OAAO,CAAC6B,GAAG,OAAAryB,MAAA,CAAI2xB,MAAM,CAAE,CAAC;cACxD,IAAI,CAACQ,EAAE,CAACG,OAAO,GAAG,UAAA/iB,EAAE;gBAAA,OAAI7O,MAAI,CAAC6xB,OAAO,CAAChjB,EAAE,CAAC;cAAA;cACxC,IAAI,CAAC4iB,EAAE,CAACK,SAAS,GAAG,UAAAjjB,EAAE;gBAAA,OAAI7O,MAAI,CAAC+xB,SAAS,CAACljB,EAAE,CAAC;cAAA;cAC5C,IAAI,CAACmjB,mBAAmB,GAAGC,UAAU,CACjC;gBAAA,OAAMjyB,MAAI,CAACkyB,wBAAwB,CAAC,CAAC;cAAA,IAAAnB,qBAAA,GACrC,IAAI,CAACjB,OAAO,CAACqC,mBAAmB,cAAApB,qBAAA,cAAAA,qBAAA,GAAI,KACxC,CAAC;cACD,IAAI,CAACqB,aAAa,GAAG,KAAK;cAAC,OAAAzmB,QAAA,CAAAhE,CAAA,IAEpB,IAAI,CAACypB,cAAc;UAAA;QAAA,GAAA7lB,OAAA;MAAA,CAC7B;MAAA,SAvBY8mB,OAAOA,CAAA;QAAA,OAAAzB,QAAA,CAAArvB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAPqzB,OAAO;IAAA;EAAA;IAAAr1B,GAAA;IAAAC,KAAA,EAyBpB,SAAOq1B,UAAUA,CAAA,EAAS;MAAA,IAAAC,QAAA;MACtB,IAAI,CAACC,mBAAmB,CAAC,IAAIlgB,KAAK,CAAC,qDAAqD,CAAC,CAAC;MAC1F,CAAAigB,QAAA,OAAI,CAACd,EAAE,cAAAc,QAAA,eAAPA,QAAA,CAASE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;MACtB,IAAI,CAAChB,EAAE,GAAG,IAAI;IAClB;EAAC;IAAAz0B,GAAA;IAAAC,KAAA;MAAA,IAAAy1B,KAAA,GAAAxpB,oCAAA,cAAAX,+BAAA,GAAAE,CAAA,CAED,SAAAwD,SAAyD0mB,WAAwB,EAAEC,WAAwC;QAAA,IAAA7yB,QAAA,EAAA+F,OAAA;QAAA,OAAAyC,+BAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cAEjH7C,QAAQ,GAAG,IAAI,CAACP,cAAc,CAA8BmzB,WAAW,EAAEC,WAAW,CAAC;cACrF9sB,OAAO,GAAG,IAAI,CAAChG,gCAAgC,CAAcC,QAAQ,CAAC;cAAA,MAExE,IAAI,CAACoxB,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAACiB,aAAa,IAAI,IAAI,CAAClB,aAAa,CAAC,CAAC;gBAAA/kB,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cACzE,IAAI,CAACiwB,SAAS,CAACt0B,IAAI,CAACwB,QAAQ,CAAC;cAAC,OAAAoM,SAAA,CAAAxE,CAAA,IACvB7B,OAAO;YAAA;cAGlB,IAAI,CAACgtB,YAAY,CAAC/yB,QAAQ,CAAC;cAAC,OAAAoM,SAAA,CAAAxE,CAAA,IACrB7B,OAAO;UAAA;QAAA,GAAAmG,QAAA;MAAA,CACjB;MAAA,SAZYmG,IAAIA,CAAAhF,EAAA,EAAAmC,GAAA;QAAA,OAAAmjB,KAAA,CAAAnxB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAJoT,IAAI;IAAA;EAAA;IAAApV,GAAA;IAAAa,GAAA,EAcjB,SAAAA,IAAA,EAA8B;MAC1B,OAAO,IAAI,CAACqzB,aAAa,CAAC,CAAC,IAAI,IAAI,CAACkB,aAAa;IACrD;EAAC;IAAAp1B,GAAA;IAAAC,KAAA,EAED,SAAQ61B,YAAYA,CAAC/yB,QAAkB,EAAQ;MAAA,IAAAgzB,mBAAA,EAAAC,SAAA;MAC3C,IAAI,IAAI,CAACC,OAAO,EAAE;QACd,IAAI,CAACxB,EAAE,CAACrf,IAAI,CAAC8gB,IAAI,CAACC,SAAS,CAACpzB,QAAQ,CAAC,CAAC;QACtC;MACJ;MAEA,IAAI,CAACU,uBAAuB,CACxBV,QAAQ,EACR,IAAIuS,KAAK,6CAAAhT,MAAA,EAAAyzB,mBAAA,IAAAC,SAAA,GAA6C,IAAI,CAACvB,EAAE,cAAAuB,SAAA,uBAAPA,SAAA,CAASI,UAAU,cAAAL,mBAAA,cAAAA,mBAAA,GAAI,iBAAiB,sBAAAzzB,MAAA,CAAmB,IAAI,CAAC8yB,aAAa,MAAG,CAC1I,CAAC;IACL;EAAC;IAAAp1B,GAAA;IAAAC,KAAA,EAED,SAAQ80B,SAASA,CAAC7zB,KAAmB,EAAQ;MACzC,IAAI,CAACm1B,qBAAqB,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MACvC,IAAMxzB,QAAkB,GAAGmzB,IAAI,CAACM,KAAK,CAACt1B,KAAK,CAACwB,IAAI,CAAC;MACjD,IAAI,CAACW,sBAAsB,CAACN,QAAQ,CAAC;MACrC,IAAI,CAAC9B,IAAI,CAAC8B,QAAQ,CAACN,IAAI,EAAEM,QAAQ,CAACL,IAAI,CAAC;MACvC,IAAI,CAACzB,IAAI,CAAC,IAAI,CAACw1B,KAAK,CAAClhB,OAAO,EAAExS,QAAQ,CAAC;;MAEvC;MACA,IAAI,CAAC,IAAI,CAACqyB,aAAa,EAAE;QACrB,IAAMsB,eAAe,GAAG3zB,QAAQ,CAACN,IAAI,KAAK,KAAK;QAC/C,IAAI,CAAC2yB,aAAa,GAAGsB,eAAe;QACpC,IAAIA,eAAe,EAAE;UACjB,IAAI,CAACC,sBAAsB,CAAC,CAAC;UAC7B,IAAI,CAACC,aAAa,CAAC,CAAC;UACpB,IAAI,CAAC31B,IAAI,CAAC,IAAI,CAACw1B,KAAK,CAACpB,OAAO,CAAC;UAC7B,IAAI,CAACwB,aAAa,CAAC,CAAC;QACxB,CAAC,MAAM;UACH,IAAI,CAACD,aAAa,CAAC7zB,QAAQ,CAACL,IAAI,CAAC;QACrC;MACJ;IACJ;EAAC;IAAA1C,GAAA;IAAAC,KAAA,EAED,SAAQ40B,OAAOA,CAAC3zB,KAAiB,EAAQ;MACrC,IAAI,CAAC41B,qBAAqB,CAAC,CAAC;MAC5BC,YAAY,CAAC,IAAI,CAAC/B,mBAAmB,CAAC;MACtC,IAAMgC,SAAS,GAAG91B,KAAK,CAAC+1B,IAAI,KAAK,IAAI,CAAC,CAAC;;MAEvC;MACA;MACA,IAAI,CAACzB,mBAAmB,CAAC,IAAIlgB,KAAK,CAAC,mDAAmD,CAAC,CAAC;MAExF,IAAI0hB,SAAS,EAAE;QACX;QACA;QACA,KAAK,IAAI,CAAC3B,OAAO,CAAC,CAAC;MACvB,CAAC,MAAM;QACH,IAAI,CAACuB,aAAa,CAAC,IAAIthB,KAAK,CAAC,yCAAyC,CAAC,CAAC;MAC5E;MAEA,IAAI,CAACrU,IAAI,CAAC,IAAI,CAACw1B,KAAK,CAACnB,UAAU,EAAE0B,SAAS,CAAC;IAC/C;;IAEA;AACJ;AACA;AACA;EAHI;IAAAh3B,GAAA;IAAAC,KAAA,EAIA,SAAQ22B,aAAaA,CAACpzB,KAAW,EAAQ;MACrC,IAAM0zB,SAAS,GAAG,IAAI,CAAC7C,sBAAsB;MAE7C,IAAI,CAACA,sBAAsB,GAAG,IAAI;MAClC,IAAI,CAACD,cAAc,GAAG,IAAI;MAE1B,IAAI,CAAE8C,SAAS,EAAE;QACb;MACJ;MAEA1zB,KAAK,GAAG0zB,SAAS,CAAC,CAAC,CAAC,CAAC1zB,KAAK,CAAC,GAAG0zB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD;;IAEA;AACJ;AACA;AACA;EAHI;IAAAl3B,GAAA;IAAAC,KAAA,EAIA,SAAQu1B,mBAAmBA,CAAChyB,KAAY,EAAQ;MAC5C,IAAM2zB,MAAM,GAAG,IAAI,CAACtB,SAAS;MAC7B,IAAI,CAACA,SAAS,GAAG,EAAE;MAAC,IAAAtwB,SAAA,GAAAC,6CAAA,CAEG2xB,MAAM;QAAAzxB,KAAA;MAAA;QAA7B,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAA+B;UAAA,IAApB9C,QAAQ,GAAA2C,KAAA,CAAAzF,KAAA;UACf,IAAI,CAACwD,uBAAuB,CAACV,QAAQ,EAAES,KAAK,CAAC;QACjD;MAAC,SAAAuC,GAAA;QAAAR,SAAA,CAAAS,CAAA,CAAAD,GAAA;MAAA;QAAAR,SAAA,CAAAU,CAAA;MAAA;MAED,IAAI,CAACvC,qBAAqB,CAACF,KAAK,CAAC;IACrC;EAAC;IAAAxD,GAAA;IAAAC,KAAA,EAED,SAAQ42B,aAAaA,CAAA,EAAS;MAAA,IAAA9vB,MAAA;MAC1B;MACA,IAAIqwB,SAAS,GAAG,CAAC;MAAC,IAAAC,KAAA,YAAAA,MAAA,EACsB;QAAA,IAAAC,qBAAA;QACpC,IAAMv0B,QAAQ,GAAGgE,MAAI,CAAC8uB,SAAS,CAAC0B,SAAS,CAAC;QAC1CtC,UAAU,CAAC;UAAA,OAAMluB,MAAI,CAAC+uB,YAAY,CAAC/yB,QAAQ,CAAC;QAAA,GAAEq0B,SAAS,CAAC;QACxDA,SAAS,KAAAE,qBAAA,GAAIvwB,MAAI,CAAC+rB,OAAO,CAAC0E,qBAAqB,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,GAAG;MAC1D,CAAC;MAJD,KAAK,IAAMC,SAAS,IAAI,IAAI,CAAC1B,SAAS;QAAAwB,KAAA;MAAA;MAKtC,IAAI,CAACxB,SAAS,GAAG,EAAE;MACnBkB,YAAY,CAAC,IAAI,CAAC/B,mBAAmB,CAAC;IAC1C;EAAC;IAAAh1B,GAAA;IAAAC,KAAA,EAED,SAAQi1B,wBAAwBA,CAAA,EAAS;MACrC,IAAI,CAACI,UAAU,CAAC,CAAC;MACjB,IAAI,CAACr0B,IAAI,CAAC,IAAI,CAACw1B,KAAK,CAACjzB,KAAK,EAAE,IAAI8R,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAChE;EAAC;IAAAtV,GAAA;IAAAC,KAAA,EAED,SAAQk0B,mBAAmBA,CAAA,EAAY;MACnC,OAAO,IAAI,CAACM,EAAE,IAAI,IAAI,CAACA,EAAE,CAAC2B,UAAU,KAAK,IAAI,CAAC3B,EAAE,CAACgD,UAAU;IAC/D;EAAC;IAAAz3B,GAAA;IAAAC,KAAA,EAED,SAAQi0B,aAAaA,CAAA,EAAY;MAC7B,OAAO,IAAI,CAACO,EAAE,IAAI,IAAI,CAACA,EAAE,CAAC2B,UAAU,KAAK,IAAI,CAAC3B,EAAE,CAACiD,IAAI;IACzD;EAAC;IAAA13B,GAAA;IAAAC,KAAA,EAED,SAAQ02B,sBAAsBA,CAAA,EAAS;MAAA,IAAA/uB,MAAA;MACnC,IAAI,CAAC,IAAI,CAACkrB,OAAO,CAACU,IAAI,CAAEC,OAAO,EAAE;QAC7B;MACJ;MAEA,IAAI,CAAC4C,qBAAqB,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;MAEvC,IAAI,CAACoB,mBAAmB,GAAGC,WAAW,cAAA1rB,oCAAA,cAAAX,+BAAA,GAAAE,CAAA,CAAC,SAAAiE,SAAA;QAAA,OAAAnE,+BAAA,GAAAC,CAAA,WAAAmE,SAAA;UAAA,kBAAAA,SAAA,CAAA/J,CAAA;YAAA;cAAA,MAC/B,CAACgC,MAAI,CAACquB,OAAO,IAAIruB,MAAI,CAACiwB,mBAAmB;gBAAAloB,SAAA,CAAA/J,CAAA;gBAAA;cAAA;cAAA,OAAA+J,SAAA,CAAAhF,CAAA;YAAA;cAAA,MAIxC2rB,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG3uB,MAAI,CAACyuB,qBAAqB,GAAIzuB,MAAI,CAACkrB,OAAO,CAACU,IAAI,CAAEE,mBAAmB;gBAAA/jB,SAAA,CAAA/J,CAAA;gBAAA;cAAA;cAAA,OAAA+J,SAAA,CAAAhF,CAAA;YAAA;cAItF/C,MAAI,CAACiwB,mBAAmB,GAAG5C,UAAU,CAAC,YAAM;gBACxCrtB,MAAI,CAACiwB,mBAAmB,GAAG92B,SAAS;gBACpC6G,MAAI,CAAC6sB,EAAE,CAACgB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;cACzB,CAAC,EAAE7tB,MAAI,CAACkrB,OAAO,CAACU,IAAI,CAACG,iBAAiB,CAAC;;cAEvC;cACA;cACA/rB,MAAI,CAACwN,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAM,CAAC;gBAAA,OAAMrU,SAAS;cAAA,EAAC,CAACkL,IAAI,CAAC,YAAM;gBACpD8qB,YAAY,CAACnvB,MAAI,CAACiwB,mBAAmB,CAAC;gBACtCjwB,MAAI,CAACiwB,mBAAmB,GAAG92B,SAAS;cACxC,CAAC,CAAC;YAAC;cAAA,OAAA4O,SAAA,CAAAhF,CAAA;UAAA;QAAA,GAAA+E,QAAA;MAAA,CACN,IAAE,IAAI,CAAC;IACZ;EAAC;IAAA1P,GAAA;IAAAC,KAAA,EAED,SAAQ62B,qBAAqBA,CAAA,EAAS;MAClC,IAAI,IAAI,CAACe,mBAAmB,EAAE;QAC1Bd,YAAY,CAAC,IAAI,CAACc,mBAAmB,CAAC;QACtC,IAAI,CAACA,mBAAmB,GAAG92B,SAAS;MACxC;MACA,IAAI,IAAI,CAAC42B,mBAAmB,EAAE;QAC1BG,aAAa,CAAC,IAAI,CAACH,mBAAmB,CAAC;QACvC,IAAI,CAACA,mBAAmB,GAAG52B,SAAS;MACxC;IACJ;EAAC;AAAA,EAjOoCa,kBAAkB,E;;;0CCzC3D,uKAAAoE,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,mCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,mCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,mCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,mCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,mCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,mCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,mCAAA,CAAAH,CAAA,GAAAG,mCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,mCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,mCAAA,CAAAH,CAAA,8DAAAoB,4BAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,mCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,mCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,mCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,mCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAAuC,mCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,iCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,mCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,mCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,+BAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,iCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,8BAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,4BAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,iCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,iCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAA3D,0BAAAA,CAAAoH,CAAA,EAAAI,CAAA,EAAA7D,CAAA,WAAA6D,CAAA,GAAA0C,+BAAA,CAAA1C,CAAA,GAAA2C,0CAAA,CAAA/C,CAAA,EAAAgD,yCAAA,KAAAC,OAAA,CAAAC,SAAA,CAAA9C,CAAA,EAAA7D,CAAA,QAAAuG,+BAAA,CAAA9C,CAAA,EAAAmD,WAAA,IAAA/C,CAAA,CAAAtF,KAAA,CAAAkF,CAAA,EAAAzD,CAAA;AAAA,SAAAwG,0CAAAA,CAAA/C,CAAA,EAAAzD,CAAA,QAAAA,CAAA,iBAAA6G,uBAAA,CAAA7G,CAAA,0BAAAA,CAAA,UAAAA,CAAA,iBAAAA,CAAA,YAAA+E,SAAA,qEAAA+B,sCAAA,CAAArD,CAAA;AAAA,SAAAqD,sCAAAA,CAAA9G,CAAA,mBAAAA,CAAA,YAAA+G,cAAA,sEAAA/G,CAAA;AAAA,SAAAyG,yCAAAA,CAAA,cAAAhD,CAAA,IAAAuD,OAAA,CAAA/C,SAAA,CAAAgD,OAAA,CAAAjC,IAAA,CAAA0B,OAAA,CAAAC,SAAA,CAAAK,OAAA,iCAAAvD,CAAA,aAAAgD,yCAAA,YAAAA,0BAAA,aAAAhD,CAAA;AAAA,SAAA8C,+BAAAA,CAAA9C,CAAA,WAAA8C,+BAAA,GAAAnC,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAe,cAAA,CAAAN,IAAA,eAAApB,CAAA,WAAAA,CAAA,CAAA4B,SAAA,IAAAjB,MAAA,CAAAe,cAAA,CAAA1B,CAAA,MAAA8C,+BAAA,CAAA9C,CAAA;AAAA,SAAAlH,yBAAAA,CAAAkH,CAAA,EAAAzD,CAAA,6BAAAA,CAAA,aAAAA,CAAA,YAAA+E,SAAA,wDAAAtB,CAAA,CAAAQ,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAArE,CAAA,IAAAA,CAAA,CAAAiE,SAAA,IAAA2C,WAAA,IAAA3M,KAAA,EAAAwJ,CAAA,EAAAsC,QAAA,MAAAD,YAAA,WAAA1B,MAAA,CAAAsB,cAAA,CAAAjC,CAAA,iBAAAsC,QAAA,SAAA/F,CAAA,IAAAkH,+BAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAkH,+BAAAA,CAAAzD,CAAA,EAAAzD,CAAA,WAAAkH,+BAAA,GAAA9C,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAAP,IAAA,eAAApB,CAAA,EAAAzD,CAAA,WAAAyD,CAAA,CAAA4B,SAAA,GAAArF,CAAA,EAAAyD,CAAA,KAAAyD,+BAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAnG,+BAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,8BAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,8BAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,4BAAA,CAAA1D,CAAA,gCAAAoD,uBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,4BAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,uBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,uBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AADgI;AAAA,IAY3HsuB,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA,EAArBA,qBAAqB;AAkBnB,IAAMC,gBAAgB,0BAAAnF,mBAAA;EAKzB,SAAAmF,iBAAoClF,OAAgC,EAAE;IAAA,IAAAhxB,KAAA;IAAAlC,+BAAA,OAAAo4B,gBAAA;IAClEl2B,KAAA,GAAAO,0BAAA,OAAA21B,gBAAA;IAAQn4B,+BAAA,CAAAiC,KAAA,WALYi2B,qBAAqB;IAAAl4B,+BAAA,CAAAiC,KAAA,eAEN,EAAE;IAAAA,KAAA,CAELgxB,OAAgC,GAAhCA,OAAgC;IAAA,OAAAhxB,KAAA;EAEpE;EAACS,yBAAA,CAAAy1B,gBAAA,EAAAnF,mBAAA;EAAA,OAAA9yB,4BAAA,CAAAi4B,gBAAA;IAAAh4B,GAAA;IAAAC,KAAA;MAAA,IAAAy1B,KAAA,GAAAxpB,iCAAA,cAAAX,4BAAA,GAAAE,CAAA,CAED,SAAA8C,QAAyDonB,WAAwB,EAAEC,WAAwC;QAAA,IAAA7yB,QAAA,EAAA2B,IAAA;QAAA,OAAA6G,4BAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAA/I,CAAA;YAAA;cAEjH7C,QAAQ,GAAG,IAAI,CAACP,cAAc,CAACmzB,WAAW,EAAEC,WAAW,CAAC;cACxDlxB,IAAmB,GAAG;gBAAChC,IAAI,EAAEK,QAAQ;gBAAEk1B,QAAQ,EAAE,CAAC;gBAAEC,aAAa,EAAE;cAAI,CAAC;cAC9E,IAAI,CAACC,SAAS,CAAC52B,IAAI,CAACmD,IAAI,CAAC;cACzB,IAAI,CAAC0zB,WAAW,CAAC1zB,IAAI,CAAC;cAAC,OAAAiK,QAAA,CAAAhE,CAAA,IAChB,IAAI,CAAC7H,gCAAgC,CAACC,QAAQ,CAAC;UAAA;QAAA,GAAAwL,OAAA;MAAA,CACzD;MAAA,SAPY6G,IAAIA,CAAAhF,EAAA,EAAAmC,GAAA;QAAA,OAAAmjB,KAAA,CAAAnxB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAJoT,IAAI;IAAA;EAAA;IAAApV,GAAA;IAAAC,KAAA,EASjB,SAAOo4B,OAAOA,CAAA,EAAS;MAAA,IAAAr1B,MAAA;MACnB;MACA;MACA,IAAMY,OAAO,GAAG,IAAI,CAACu0B,SAAS;MAC9B,IAAI,CAACA,SAAS,GAAG,EAAE;MACnBv0B,OAAO,CAAClC,OAAO,CAAC,UAAAgD,IAAI,EAAI;QACpB,IAAIA,IAAI,CAACwzB,aAAa,EAAE;UACpBnB,YAAY,CAACryB,IAAI,CAACwzB,aAAa,CAAC;QACpC;QACAl1B,MAAI,CAACS,uBAAuB,CAACiB,IAAI,CAAChC,IAAI,EAAE,IAAI4S,KAAK,CAAC,kBAAkB,CAAC,CAAC;MAC1E,CAAC,CAAC;MACF,IAAI,CAACrU,IAAI,CAAC,IAAI,CAACw1B,KAAK,CAAC4B,OAAO,EAAE,KAAK,CAAC;IACxC;EAAC;IAAAr4B,GAAA;IAAAC,KAAA;MAAA,IAAAq4B,UAAA,GAAApsB,iCAAA,cAAAX,4BAAA,GAAAE,CAAA,CAED,SAAAwD,SAA0BvK,IAAmB,EAAE6zB,QAAkB;QAAA,IAAAx1B,QAAA,EAAAwN,EAAA;QAAA,OAAAhF,4BAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAA5E,CAAA,GAAA4E,SAAA,CAAAvJ,CAAA;YAAA;cAAAuJ,SAAA,CAAA5E,CAAA;cAAA4E,SAAA,CAAAvJ,CAAA;cAAA,OAGxC2yB,QAAQ,CAACC,IAAI,CAAC,CAAC;YAAA;cAAhCz1B,QAAQ,GAAAoM,SAAA,CAAAzE,CAAA;cAAAyE,SAAA,CAAAvJ,CAAA;cAAA;YAAA;cAAAuJ,SAAA,CAAA5E,CAAA;cAAAgG,EAAA,GAAApB,SAAA,CAAAzE,CAAA;cAER;cACA,IAAI,CAAC+tB,OAAO,CAAC/zB,IAAI,cAAApC,MAAA,CAAcoC,IAAI,CAAChC,IAAI,CAACC,GAAG,aAAAL,MAAA,CAAUi2B,QAAQ,CAAC7G,MAAM,uBAAoB,CAAC;cAAC,OAAAviB,SAAA,CAAAxE,CAAA;YAAA;cAAA,IAI1F,IAAI,CAAC+tB,eAAe,CAACh0B,IAAI,CAAC;gBAAAyK,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAA,OAAAuJ,SAAA,CAAAxE,CAAA;YAAA;cAI/B,IAAI,CAACtH,sBAAsB,CAACN,QAAQ,CAAC;cACrC,IAAI,CAAC9B,IAAI,CAAC8B,QAAQ,CAACN,IAAI,EAAEM,QAAQ,CAACL,IAAI,CAAC;cACvC,IAAI,CAACzB,IAAI,CAAC,IAAI,CAACw1B,KAAK,CAAClhB,OAAO,EAAExS,QAAQ,CAAC;YAAC;cAAA,OAAAoM,SAAA,CAAAxE,CAAA;UAAA;QAAA,GAAAsE,QAAA;MAAA,CAC3C;MAAA,SAjBe8lB,SAASA,CAAA1hB,GAAA,EAAAiB,GAAA;QAAA,OAAAgkB,UAAA,CAAA/zB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAT+yB,SAAS;IAAA;EAAA;IAAA/0B,GAAA;IAAAC,KAAA,EAmBzB,SAAUw4B,OAAOA,CAAC/zB,IAAmB,EAAEi0B,IAAY,EAAQ;MAAA,IAAAC,qBAAA;QAAA7xB,MAAA;QAAA8xB,sBAAA;MACvD,IAAI,CAAC,IAAI,CAACV,SAAS,CAAChqB,QAAQ,CAACzJ,IAAI,CAAC,EAAE;QAChC,OAAO,CAAC;MACZ;MAEA,IAAIA,IAAI,CAACuzB,QAAQ,MAAAW,qBAAA,GAAK,IAAI,CAAC9F,OAAO,CAACgG,cAAc,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,EAAE,CAAC,EAAE;QACtD,IAAI,CAACF,eAAe,CAACh0B,IAAI,CAAC;QAC1B,IAAI,CAACjB,uBAAuB,CAACiB,IAAI,CAAChC,IAAI,EAAE,IAAI4S,KAAK,gBAAAhT,MAAA,CAC9Bq2B,IAAI,4DACvB,CAAC,CAAC;QACF;MACJ;MAEAj0B,IAAI,CAACwzB,aAAa,GAAGjD,UAAU,CAC3B;QAAA,OAAMluB,MAAI,CAACqxB,WAAW,CAAC1zB,IAAI,CAAC;MAAA,IAAAm0B,sBAAA,GAC5B,IAAI,CAAC/F,OAAO,CAACiG,cAAc,cAAAF,sBAAA,cAAAA,sBAAA,GAAI,IACnC,CAAC;IACL;EAAC;IAAA74B,GAAA;IAAAC,KAAA,EAED,SAAUm4B,WAAWA,CAAC1zB,IAAmB,EAAQ;MAAA,IAAAovB,qBAAA;QAAAlsB,MAAA;MAC7C,IAAI,CAAC,IAAI,CAACuwB,SAAS,CAAChqB,QAAQ,CAACzJ,IAAI,CAAC,EAAE;QAChC,OAAO,CAAC;MACZ;MAEAA,IAAI,CAACuzB,QAAQ,EAAE;MACfvzB,IAAI,CAACwzB,aAAa,GAAG,IAAI;MACzB,IAAMc,QAAQ,GAAG9C,IAAI,CAACC,SAAS,CAACzxB,IAAI,CAAChC,IAAI,CAAC;MAC1C,IAAMu2B,OAAY,GAAG;QACjB,cAAc,EAAE,kBAAkB;QAClCC,MAAM,EAAE;MACZ,CAAC;MAEDD,OAAO,CAACE,aAAa,aAAA72B,MAAA,CAAa,IAAI,CAACwwB,OAAO,CAAC0B,KAAK,CAAE;MAEtD,IAAM4E,KAAK,GAAG,IAAI9E,eAAe,EAAAR,qBAAA,GAAC,IAAI,CAAChB,OAAO,CAACyB,WAAW,cAAAT,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,CAAC,CAACjxB,QAAQ,CAAC,CAAC;MAC5E,IAAM8xB,GAAG,GAAGyE,KAAK,MAAA92B,MAAA,CAAM,IAAI,CAACwwB,OAAO,CAAC6B,GAAG,OAAAryB,MAAA,CAAI82B,KAAK,IAAK,IAAI,CAACtG,OAAO,CAAC6B,GAAG;MAErE0E,KAAK,CAAC1E,GAAG,EAAE;QACPsE,OAAO,EAAPA,OAAO;QACPN,IAAI,EAAEK,QAAQ;QACdM,MAAM,EAAE;MACZ,CAAC,CAAC,CACGrtB,IAAI,CAAC,UAAAssB,QAAQ;QAAA,OAAI3wB,MAAI,CAACmtB,SAAS,CAACrwB,IAAI,EAAE6zB,QAAQ,CAAC;MAAA,EAAC,SAC3C,CAAC;QAAA,OAAM3wB,MAAI,CAAC6wB,OAAO,CAAC/zB,IAAI,EAAEs0B,QAAQ,CAAC;MAAA,EAAC;IAClD;EAAC;IAAAh5B,GAAA;IAAAC,KAAA,EAED,SAAQy4B,eAAeA,CAACh0B,IAAmB,EAAW;MAClD,IAAM9D,KAAK,GAAG,IAAI,CAACu3B,SAAS,CAACr3B,OAAO,CAAC4D,IAAI,CAAC;MAC1C,IAAI9D,KAAK,KAAK,CAAC,CAAC,EAAE;QACd,OAAO,KAAK;MAChB;MACA,IAAI,CAACu3B,SAAS,CAACn3B,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC;MAC/B,OAAO,IAAI;IACf;EAAC;AAAA,EAxGiCgB,kBAAkB,E;;;4CC7BxD,uKAAAoE,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,qCAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,qCAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,qCAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,qCAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,qCAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,qCAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,qCAAA,CAAAH,CAAA,GAAAG,qCAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,qCAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,qCAAA,CAAAH,CAAA,8DAAAoB,8BAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,qCAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,qCAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,qCAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,qCAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAA8vB,0BAAAA,CAAAvzB,CAAA,EAAA0D,CAAA,QAAAD,CAAA,GAAAW,MAAA,CAAA5C,IAAA,CAAAxB,CAAA,OAAAoE,MAAA,CAAAovB,qBAAA,QAAA3vB,CAAA,GAAAO,MAAA,CAAAovB,qBAAA,CAAAxzB,CAAA,GAAA0D,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAA+N,MAAA,WAAAlO,CAAA,WAAAU,MAAA,CAAAqvB,wBAAA,CAAAzzB,CAAA,EAAA0D,CAAA,EAAAmC,UAAA,OAAApC,CAAA,CAAAlI,IAAA,CAAAgD,KAAA,CAAAkF,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAgK,+BAAAA,CAAAzN,CAAA,aAAA0D,CAAA,MAAAA,CAAA,GAAA1H,SAAA,CAAAC,MAAA,EAAAyH,CAAA,UAAAD,CAAA,WAAAzH,SAAA,CAAA0H,CAAA,IAAA1H,SAAA,CAAA0H,CAAA,QAAAA,CAAA,OAAA6vB,0BAAA,CAAAnvB,MAAA,CAAAX,CAAA,OAAA/H,OAAA,WAAAgI,CAAA,IAAA7J,iCAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,CAAAC,CAAA,SAAAU,MAAA,CAAAsvB,yBAAA,GAAAtvB,MAAA,CAAAuvB,gBAAA,CAAA3zB,CAAA,EAAAoE,MAAA,CAAAsvB,yBAAA,CAAAjwB,CAAA,KAAA8vB,0BAAA,CAAAnvB,MAAA,CAAAX,CAAA,GAAA/H,OAAA,WAAAgI,CAAA,IAAAU,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,EAAAU,MAAA,CAAAqvB,wBAAA,CAAAhwB,CAAA,EAAAC,CAAA,iBAAA1D,CAAA;AAAA,SAAAnG,iCAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,gCAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAgG,qCAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,mCAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,qCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,qCAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,iCAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,mCAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,gCAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,8BAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,mCAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,mCAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAAsG,gCAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,8BAAA,CAAA1D,CAAA,gCAAAoD,yBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,8BAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,yBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,yBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAYO,IAAemwB,kBAAkB;EAGpC,SAAAA,mBACqB9G,OAA0B,EAC7C;IAAAlzB,iCAAA,OAAAg6B,kBAAA;IAAA,KADmB9G,OAA0B,GAA1BA,OAA0B;EAC5C;EAAC,OAAA/yB,8BAAA,CAAA65B,kBAAA;IAAA55B,GAAA;IAAAC,KAAA;MAAA,IAAAy1B,KAAA,GAAAxpB,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAEJ,SAAA8C,QACI+qB,MAAkB,EAClBO,GAAW;QAAA,IAAAn3B,IAAA;UAAAo3B,iBAAA;UAAAnF,GAAA;UAAAgE,IAAA;UAAAM,OAAA;UAAA3zB,MAAA;UAAAoJ,KAAA,GAAA1M,SAAA;QAAA,OAAAuJ,8BAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAA/I,CAAA;YAAA;cACXlD,IAAS,GAAAgM,KAAA,CAAAzM,MAAA,QAAAyM,KAAA,QAAA3N,SAAA,GAAA2N,KAAA,MAAG3N,SAAS;cACrB+4B,iBAAyC,GAAAprB,KAAA,CAAAzM,MAAA,QAAAyM,KAAA,QAAA3N,SAAA,GAAA2N,KAAA,MAAG,CAAC,CAAC;cAE1CimB,GAAG,GAAG,IAAI,CAACoF,MAAM,CAACF,GAAG,CAAC;cACtBlB,IAAI,GAAG53B,SAAS;cAEpB,IAAI2B,IAAI,EAAE;gBACN,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAACyL,QAAQ,CAACmrB,MAAM,CAAC,EAAE;kBACpC3E,GAAG,IAAI,GAAG,GAAG,IAAIL,eAAe,CAAC5xB,IAAI,CAAC,CAACG,QAAQ,CAAC,CAAC;gBACrD,CAAC,MAAM;kBACH81B,IAAI,GAAGzC,IAAI,CAACC,SAAS,CAACzzB,IAAI,CAAC;gBAC/B;cACJ;cAEMu2B,OAAO,GAAAxlB,+BAAA,CAAAA,+BAAA;gBACT,cAAc,EAAE,kBAAkB;gBAClCylB,MAAM,EAAE;cAAkB,GACvBY,iBAAiB,GACjB,IAAI,CAACE,cAAc,CAAC,CAAC;cAAArrB,QAAA,CAAA/I,CAAA;cAAA,OAGPyzB,KAAK,CAAC1E,GAAG,EAAE;gBAAC2E,MAAM,EAANA,MAAM;gBAAEX,IAAI,EAAJA,IAAI;gBAAEM,OAAO,EAAPA;cAAO,CAAC,CAAC;YAAA;cAAlD3zB,MAAM,GAAAqJ,QAAA,CAAAjE,CAAA;cAAA,OAAAiE,QAAA,CAAAhE,CAAA,IAEL,IAAI,CAACsvB,oBAAoB,CAAC30B,MAAM,CAAC;UAAA;QAAA,GAAAiJ,OAAA;MAAA,CAC3C;MAAA,SA3Be6G,IAAIA,CAAAhF,EAAA,EAAAmC,GAAA;QAAA,OAAAmjB,KAAA,CAAAnxB,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAJoT,IAAI;IAAA;EAAA;IAAApV,GAAA;IAAAC,KAAA,EA6BpB,SAAU+5B,cAAcA,CAAA,EAAQ;MAC5B,IAAMf,OAAO,GAAG,CAAC,CAAQ;MAEzB,IAAI,IAAI,CAACnG,OAAO,CAAC0B,KAAK,EAAE;QACpByE,OAAO,CAACE,aAAa,aAAA72B,MAAA,CAAa,IAAI,CAACwwB,OAAO,CAAC0B,KAAK,CAAE;MAC1D;MAEA,OAAOyE,OAAO;IAClB;EAAC;IAAAj5B,GAAA;IAAAC,KAAA,EAED,SAAU85B,MAAMA,CAACF,GAAW,EAAU;MAAA,IAAAK,iBAAA;MAClC,OAAO,IAAI,CAACC,iBAAiB,EAAAD,iBAAA,GAAC,IAAI,CAACpH,OAAO,CAAC6B,GAAG,cAAAuF,iBAAA,cAAAA,iBAAA,GAAI,IAAI,CAACE,UAAU,CAAC,GAAG,GAAG,GAAG,IAAI,CAACC,mBAAmB,CAACR,GAAG,CAAC;IAC5G;EAAC;IAAA75B,GAAA;IAAAC,KAAA;MAAA,IAAAq6B,qBAAA,GAAApuB,mCAAA,cAAAX,8BAAA,GAAAE,CAAA,CAED,SAAAwD,SAAwC3J,MAAgB;QAAA,IAAAi1B,mBAAA;QAAA,IAAAhqB,EAAA,EAAA8F,GAAA,EAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAhL,8BAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cAAA2K,EAAA,GAE5CjL,MAAM,CAACqmB,EAAE;cAAAtV,GAAA,GACL/Q,MAAM,CAACosB,MAAM;cAAA,OAAA6I,mBAAA,GACfj1B,MAAM,CAAC2zB,OAAO,CAACp4B,GAAG,CAAC,cAAc,CAAC,cAAA05B,mBAAA,eAAlCA,mBAAA,CAAoCpsB,QAAQ,CAAC,MAAM,CAAC;gBAAAgB,SAAA,CAAAvJ,CAAA;gBAAA;cAAA;cAAAuJ,SAAA,CAAAvJ,CAAA;cAAA,OAASN,MAAM,CAACkzB,IAAI,CAAC,CAAC;YAAA;cAAAliB,GAAA,GAAAnH,SAAA,CAAAzE,CAAA;cAAAyE,SAAA,CAAAvJ,CAAA;cAAA;YAAA;cAAAuJ,SAAA,CAAAvJ,CAAA;cAAA,OAASN,MAAM,CAACk1B,IAAI,CAAC,CAAC;YAAA;cAAAlkB,GAAA,GAAAnH,SAAA,CAAAzE,CAAA;YAAA;cAAA6L,GAAA,GAAAD,GAAA;cAAA,OAAAnH,SAAA,CAAAxE,CAAA;gBAFtGghB,EAAE,EAAApb,EAAA;gBACFmhB,MAAM,EAAArb,GAAA;gBACN3T,IAAI,EAAA6T;cAAA;UAAA;QAAA,GAAAtH,QAAA;MAAA,CAEX;MAAA,SANegrB,oBAAoBA,CAAA5mB,GAAA;QAAA,OAAAinB,qBAAA,CAAA/1B,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAApBi4B,oBAAoB;IAAA;EAAA;IAAAj6B,GAAA;IAAAC,KAAA,EAQpC,SAAQo6B,mBAAmBA,CAACG,IAAY,EAAU;MAC9C,OAAOA,IAAI,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IACnC;EAAC;IAAAz6B,GAAA;IAAAC,KAAA,EAED,SAAQk6B,iBAAiBA,CAACK,IAAY,EAAU;MAC5C,OAAOA,IAAI,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IACnC;EAAC;AAAA,I;;;qCC5EL,uKAAAz0B,CAAA,EAAAyD,CAAA,EAAAC,CAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAA/D,CAAA,GAAA8D,CAAA,CAAAE,QAAA,kBAAAC,CAAA,GAAAH,CAAA,CAAAI,WAAA,8BAAAC,EAAAL,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAApE,CAAA,IAAAA,CAAA,CAAAqE,SAAA,YAAAC,SAAA,GAAAtE,CAAA,GAAAsE,SAAA,EAAAC,CAAA,GAAAC,MAAA,CAAAC,MAAA,CAAAL,CAAA,CAAAC,SAAA,UAAAK,8BAAA,CAAAH,CAAA,uBAAAT,CAAA,EAAA9D,CAAA,EAAAiE,CAAA,QAAAE,CAAA,EAAAC,CAAA,EAAAG,CAAA,EAAAlE,CAAA,MAAAsE,CAAA,GAAAV,CAAA,QAAAW,CAAA,OAAAC,CAAA,KAAAF,CAAA,KAAA3E,CAAA,KAAA8E,CAAA,EAAA1E,CAAA,EAAA2E,CAAA,EAAAC,CAAA,EAAA3E,CAAA,EAAA2E,CAAA,CAAAC,IAAA,CAAA7E,CAAA,MAAA4E,CAAA,WAAAA,EAAAnB,CAAA,EAAAC,CAAA,WAAAK,CAAA,GAAAN,CAAA,EAAAO,CAAA,MAAAG,CAAA,GAAAnE,CAAA,EAAAyE,CAAA,CAAA7E,CAAA,GAAA8D,CAAA,EAAAiB,CAAA,gBAAAC,EAAAlB,CAAA,EAAA9D,CAAA,SAAAoE,CAAA,GAAAN,CAAA,EAAAS,CAAA,GAAAvE,CAAA,EAAA6D,CAAA,OAAAe,CAAA,IAAAvE,CAAA,KAAA4D,CAAA,IAAAJ,CAAA,GAAAc,CAAA,CAAAtI,MAAA,EAAAwH,CAAA,UAAAI,CAAA,EAAAE,CAAA,GAAAQ,CAAA,CAAAd,CAAA,GAAAmB,CAAA,GAAAH,CAAA,CAAAF,CAAA,EAAAO,CAAA,GAAAf,CAAA,KAAAL,CAAA,QAAAG,CAAA,GAAAiB,CAAA,KAAAlF,CAAA,MAAAuE,CAAA,GAAAJ,CAAA,EAAAC,CAAA,GAAAD,CAAA,YAAAC,CAAA,WAAAD,CAAA,MAAAA,CAAA,MAAA/D,CAAA,IAAA+D,CAAA,OAAAa,CAAA,MAAAf,CAAA,GAAAH,CAAA,QAAAkB,CAAA,GAAAb,CAAA,QAAAC,CAAA,MAAAS,CAAA,CAAAC,CAAA,GAAA9E,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAmE,CAAA,OAAAa,CAAA,GAAAE,CAAA,KAAAjB,CAAA,GAAAH,CAAA,QAAAK,CAAA,MAAAnE,CAAA,IAAAA,CAAA,GAAAkF,CAAA,MAAAf,CAAA,MAAAL,CAAA,EAAAK,CAAA,MAAAnE,CAAA,EAAA6E,CAAA,CAAA7E,CAAA,GAAAkF,CAAA,EAAAd,CAAA,cAAAH,CAAA,IAAAH,CAAA,aAAAiB,CAAA,QAAAH,CAAA,OAAA5E,CAAA,qBAAAiE,CAAA,EAAAU,CAAA,EAAAO,CAAA,QAAA7E,CAAA,YAAA8E,SAAA,uCAAAP,CAAA,UAAAD,CAAA,IAAAK,CAAA,CAAAL,CAAA,EAAAO,CAAA,GAAAd,CAAA,GAAAO,CAAA,EAAAJ,CAAA,GAAAW,CAAA,GAAArB,CAAA,GAAAO,CAAA,OAAAhE,CAAA,GAAAmE,CAAA,MAAAK,CAAA,KAAAT,CAAA,KAAAC,CAAA,GAAAA,CAAA,QAAAA,CAAA,SAAAS,CAAA,CAAA7E,CAAA,QAAAgF,CAAA,CAAAZ,CAAA,EAAAG,CAAA,KAAAM,CAAA,CAAA7E,CAAA,GAAAuE,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,aAAAlE,CAAA,MAAA8D,CAAA,QAAAC,CAAA,KAAAH,CAAA,YAAAJ,CAAA,GAAAM,CAAA,CAAAF,CAAA,WAAAJ,CAAA,GAAAA,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,EAAAI,CAAA,UAAAY,SAAA,2CAAAtB,CAAA,CAAA5D,IAAA,SAAA4D,CAAA,EAAAU,CAAA,GAAAV,CAAA,CAAAxJ,KAAA,EAAA+J,CAAA,SAAAA,CAAA,oBAAAA,CAAA,KAAAP,CAAA,GAAAM,CAAA,eAAAN,CAAA,CAAAuB,IAAA,CAAAjB,CAAA,GAAAC,CAAA,SAAAG,CAAA,GAAAY,SAAA,uCAAAlB,CAAA,gBAAAG,CAAA,OAAAD,CAAA,GAAA/D,CAAA,cAAAyD,CAAA,IAAAe,CAAA,GAAAC,CAAA,CAAA7E,CAAA,QAAAuE,CAAA,GAAAT,CAAA,CAAAsB,IAAA,CAAApF,CAAA,EAAA6E,CAAA,OAAAE,CAAA,kBAAAlB,CAAA,IAAAM,CAAA,GAAA/D,CAAA,EAAAgE,CAAA,MAAAG,CAAA,GAAAV,CAAA,cAAAxD,CAAA,mBAAAhG,KAAA,EAAAwJ,CAAA,EAAA5D,IAAA,EAAA2E,CAAA,SAAAd,CAAA,EAAAG,CAAA,EAAAE,CAAA,QAAAI,CAAA,QAAAQ,CAAA,gBAAAT,UAAA,cAAAe,kBAAA,cAAAC,2BAAA,KAAAzB,CAAA,GAAAW,MAAA,CAAAe,cAAA,MAAAnB,CAAA,MAAApE,CAAA,IAAA6D,CAAA,CAAAA,CAAA,IAAA7D,CAAA,SAAA0E,8BAAA,CAAAb,CAAA,OAAA7D,CAAA,iCAAA6D,CAAA,GAAAU,CAAA,GAAAe,0BAAA,CAAAjB,SAAA,GAAAC,SAAA,CAAAD,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAL,CAAA,YAAA/D,EAAAD,CAAA,WAAAoE,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAApF,CAAA,EAAAkF,0BAAA,KAAAlF,CAAA,CAAAqF,SAAA,GAAAH,0BAAA,EAAAZ,8BAAA,CAAAtE,CAAA,EAAA6D,CAAA,yBAAA7D,CAAA,CAAAiE,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAAF,CAAA,GAAAnE,CAAA,WAAAiF,iBAAA,CAAAhB,SAAA,GAAAiB,0BAAA,EAAAZ,8BAAA,CAAAH,CAAA,iBAAAe,0BAAA,GAAAZ,8BAAA,CAAAY,0BAAA,iBAAAD,iBAAA,GAAAA,iBAAA,CAAAK,WAAA,wBAAAhB,8BAAA,CAAAY,0BAAA,EAAArB,CAAA,wBAAAS,8BAAA,CAAAH,CAAA,GAAAG,8BAAA,CAAAH,CAAA,EAAAN,CAAA,gBAAAS,8BAAA,CAAAH,CAAA,EAAAvE,CAAA,iCAAA0E,8BAAA,CAAAH,CAAA,8DAAAoB,uBAAA,YAAAA,aAAA,aAAAC,CAAA,EAAAzB,CAAA,EAAA0B,CAAA,EAAAxF,CAAA;AAAA,SAAAqE,8BAAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,QAAAM,CAAA,GAAAK,MAAA,CAAAsB,cAAA,QAAA3B,CAAA,uBAAA/D,CAAA,IAAA+D,CAAA,QAAAO,8BAAA,YAAAqB,mBAAA3F,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA,aAAAI,EAAAH,CAAA,EAAA9D,CAAA,IAAA0E,8BAAA,CAAAtE,CAAA,EAAA0D,CAAA,YAAA1D,CAAA,gBAAA4F,OAAA,CAAAlC,CAAA,EAAA9D,CAAA,EAAAI,CAAA,SAAA0D,CAAA,GAAAK,CAAA,GAAAA,CAAA,CAAA/D,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAA2F,CAAA,EAAAiG,UAAA,GAAApC,CAAA,EAAAqC,YAAA,GAAArC,CAAA,EAAAsC,QAAA,GAAAtC,CAAA,MAAAzD,CAAA,CAAA0D,CAAA,IAAA9D,CAAA,IAAAiE,CAAA,aAAAA,CAAA,cAAAA,CAAA,mBAAAS,8BAAA,CAAAtE,CAAA,EAAA0D,CAAA,EAAA9D,CAAA,EAAA6D,CAAA;AAAA,SAAA8vB,mBAAAA,CAAAvzB,CAAA,EAAA0D,CAAA,QAAAD,CAAA,GAAAW,MAAA,CAAA5C,IAAA,CAAAxB,CAAA,OAAAoE,MAAA,CAAAovB,qBAAA,QAAA3vB,CAAA,GAAAO,MAAA,CAAAovB,qBAAA,CAAAxzB,CAAA,GAAA0D,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAA+N,MAAA,WAAAlO,CAAA,WAAAU,MAAA,CAAAqvB,wBAAA,CAAAzzB,CAAA,EAAA0D,CAAA,EAAAmC,UAAA,OAAApC,CAAA,CAAAlI,IAAA,CAAAgD,KAAA,CAAAkF,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAgK,wBAAAA,CAAAzN,CAAA,aAAA0D,CAAA,MAAAA,CAAA,GAAA1H,SAAA,CAAAC,MAAA,EAAAyH,CAAA,UAAAD,CAAA,WAAAzH,SAAA,CAAA0H,CAAA,IAAA1H,SAAA,CAAA0H,CAAA,QAAAA,CAAA,OAAA6vB,mBAAA,CAAAnvB,MAAA,CAAAX,CAAA,OAAA/H,OAAA,WAAAgI,CAAA,IAAA7J,0BAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,CAAAC,CAAA,SAAAU,MAAA,CAAAsvB,yBAAA,GAAAtvB,MAAA,CAAAuvB,gBAAA,CAAA3zB,CAAA,EAAAoE,MAAA,CAAAsvB,yBAAA,CAAAjwB,CAAA,KAAA8vB,mBAAA,CAAAnvB,MAAA,CAAAX,CAAA,GAAA/H,OAAA,WAAAgI,CAAA,IAAAU,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,EAAAU,MAAA,CAAAqvB,wBAAA,CAAAhwB,CAAA,EAAAC,CAAA,iBAAA1D,CAAA;AAAA,SAAAgG,8BAAAA,CAAApG,CAAA,EAAA6D,CAAA,EAAAzD,CAAA,EAAA0D,CAAA,EAAAG,CAAA,EAAAc,CAAA,EAAAX,CAAA,cAAAD,CAAA,GAAAnE,CAAA,CAAA+E,CAAA,EAAAX,CAAA,GAAAG,CAAA,GAAAJ,CAAA,CAAA9J,KAAA,WAAA2F,CAAA,gBAAAI,CAAA,CAAAJ,CAAA,KAAAmE,CAAA,CAAAlE,IAAA,GAAA4D,CAAA,CAAAU,CAAA,IAAAlH,OAAA,CAAA8F,OAAA,CAAAoB,CAAA,EAAA8B,IAAA,CAAAvC,CAAA,EAAAG,CAAA;AAAA,SAAAqC,4BAAAA,CAAAtG,CAAA,6BAAA6D,CAAA,SAAAzD,CAAA,GAAAhE,SAAA,aAAAiB,OAAA,WAAAyG,CAAA,EAAAG,CAAA,QAAAc,CAAA,GAAA/E,CAAA,CAAArB,KAAA,CAAAkF,CAAA,EAAAzD,CAAA,YAAAmG,MAAAvG,CAAA,IAAAoG,8BAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,UAAAxG,CAAA,cAAAwG,OAAAxG,CAAA,IAAAoG,8BAAA,CAAArB,CAAA,EAAAjB,CAAA,EAAAG,CAAA,EAAAsC,KAAA,EAAAC,MAAA,WAAAxG,CAAA,KAAAuG,KAAA;AAAA,SAAAvM,0BAAAA,CAAA+K,CAAA,EAAA/E,CAAA,UAAA+E,CAAA,YAAA/E,CAAA,aAAAmF,SAAA;AAAA,SAAAsB,4BAAAA,CAAArG,CAAA,EAAA0D,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAAzH,MAAA,EAAAwH,CAAA,UAAAI,CAAA,GAAAH,CAAA,CAAAD,CAAA,GAAAI,CAAA,CAAAgC,UAAA,GAAAhC,CAAA,CAAAgC,UAAA,QAAAhC,CAAA,CAAAiC,YAAA,kBAAAjC,CAAA,KAAAA,CAAA,CAAAkC,QAAA,QAAA3B,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAAsG,yBAAA,CAAAzC,CAAA,CAAA7J,GAAA,GAAA6J,CAAA;AAAA,SAAA9J,uBAAAA,CAAAiG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,WAAAC,CAAA,IAAA2C,4BAAA,CAAArG,CAAA,CAAAiE,SAAA,EAAAP,CAAA,GAAAD,CAAA,IAAA4C,4BAAA,CAAArG,CAAA,EAAAyD,CAAA,GAAAW,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,iBAAA+F,QAAA,SAAA/F,CAAA;AAAA,SAAA3D,qBAAAA,CAAAoH,CAAA,EAAAI,CAAA,EAAA7D,CAAA,WAAA6D,CAAA,GAAA0C,0BAAA,CAAA1C,CAAA,GAAA2C,qCAAA,CAAA/C,CAAA,EAAAgD,oCAAA,KAAAC,OAAA,CAAAC,SAAA,CAAA9C,CAAA,EAAA7D,CAAA,QAAAuG,0BAAA,CAAA9C,CAAA,EAAAmD,WAAA,IAAA/C,CAAA,CAAAtF,KAAA,CAAAkF,CAAA,EAAAzD,CAAA;AAAA,SAAAwG,qCAAAA,CAAA/C,CAAA,EAAAzD,CAAA,QAAAA,CAAA,iBAAA6G,kBAAA,CAAA7G,CAAA,0BAAAA,CAAA,UAAAA,CAAA,iBAAAA,CAAA,YAAA+E,SAAA,qEAAA+B,iCAAA,CAAArD,CAAA;AAAA,SAAAqD,iCAAAA,CAAA9G,CAAA,mBAAAA,CAAA,YAAA+G,cAAA,sEAAA/G,CAAA;AAAA,SAAAyG,oCAAAA,CAAA,cAAAhD,CAAA,IAAAuD,OAAA,CAAA/C,SAAA,CAAAgD,OAAA,CAAAjC,IAAA,CAAA0B,OAAA,CAAAC,SAAA,CAAAK,OAAA,iCAAAvD,CAAA,aAAAgD,oCAAA,YAAAA,0BAAA,aAAAhD,CAAA;AAAA,SAAA8C,0BAAAA,CAAA9C,CAAA,WAAA8C,0BAAA,GAAAnC,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAe,cAAA,CAAAN,IAAA,eAAApB,CAAA,WAAAA,CAAA,CAAA4B,SAAA,IAAAjB,MAAA,CAAAe,cAAA,CAAA1B,CAAA,MAAA8C,0BAAA,CAAA9C,CAAA;AAAA,SAAAlH,oBAAAA,CAAAkH,CAAA,EAAAzD,CAAA,6BAAAA,CAAA,aAAAA,CAAA,YAAA+E,SAAA,wDAAAtB,CAAA,CAAAQ,SAAA,GAAAG,MAAA,CAAAC,MAAA,CAAArE,CAAA,IAAAA,CAAA,CAAAiE,SAAA,IAAA2C,WAAA,IAAA3M,KAAA,EAAAwJ,CAAA,EAAAsC,QAAA,MAAAD,YAAA,WAAA1B,MAAA,CAAAsB,cAAA,CAAAjC,CAAA,iBAAAsC,QAAA,SAAA/F,CAAA,IAAAkH,0BAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAkH,0BAAAA,CAAAzD,CAAA,EAAAzD,CAAA,WAAAkH,0BAAA,GAAA9C,MAAA,CAAAgB,cAAA,GAAAhB,MAAA,CAAAgB,cAAA,CAAAP,IAAA,eAAApB,CAAA,EAAAzD,CAAA,WAAAyD,CAAA,CAAA4B,SAAA,GAAArF,CAAA,EAAAyD,CAAA,KAAAyD,0BAAA,CAAAzD,CAAA,EAAAzD,CAAA;AAAA,SAAAnG,0BAAAA,CAAAmG,CAAA,EAAA0D,CAAA,EAAAD,CAAA,YAAAC,CAAA,GAAA4C,yBAAA,CAAA5C,CAAA,MAAA1D,CAAA,GAAAoE,MAAA,CAAAsB,cAAA,CAAA1F,CAAA,EAAA0D,CAAA,IAAAzJ,KAAA,EAAAwJ,CAAA,EAAAoC,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAA/F,CAAA,CAAA0D,CAAA,IAAAD,CAAA,EAAAzD,CAAA;AAAA,SAAAsG,yBAAAA,CAAA7C,CAAA,QAAAM,CAAA,GAAAoD,uBAAA,CAAA1D,CAAA,gCAAAoD,kBAAA,CAAA9C,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAoD,uBAAAA,CAAA1D,CAAA,EAAAC,CAAA,oBAAAmD,kBAAA,CAAApD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAzD,CAAA,GAAAyD,CAAA,CAAAE,MAAA,CAAAyD,WAAA,kBAAApH,CAAA,QAAA+D,CAAA,GAAA/D,CAAA,CAAAgF,IAAA,CAAAvB,CAAA,EAAAC,CAAA,gCAAAmD,kBAAA,CAAA9C,CAAA,UAAAA,CAAA,YAAAgB,SAAA,yEAAArB,CAAA,GAAA2D,MAAA,GAAAC,MAAA,EAAA7D,CAAA;AAD4E;AAYrE,IAAMixB,WAAW,0BAAAC,mBAAA;EAAA,SAAAD,YAAA;IAAA,IAAA54B,KAAA;IAAAlC,0BAAA,OAAA86B,WAAA;IAAA,SAAA34B,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAN,KAAA,GAAAO,qBAAA,OAAAq4B,WAAA,KAAAp4B,MAAA,CAAAJ,IAAA;IAAArC,0BAAA,CAAAiC,KAAA,gBACW,yBAAyB;IAAA,OAAAA,KAAA;EAAA;EAAAS,oBAAA,CAAAm4B,WAAA,EAAAC,mBAAA;EAAA,OAAA56B,uBAAA,CAAA26B,WAAA;IAAA16B,GAAA;IAAAC,KAAA;MAAA,IAAA26B,WAAA,GAAA1uB,4BAAA,cAAAX,uBAAA,GAAAE,CAAA,CAExD,SAAA8C,QAAwBssB,IAA4B;QAAA,IAAAC,KAAA;QAAA,IAAAlU,IAAA,EAAAqS,OAAA,EAAAV,QAAA;QAAA,OAAAhtB,uBAAA,GAAAC,CAAA,WAAAmD,QAAA;UAAA,kBAAAA,QAAA,CAAA/I,CAAA;YAAA;cAC1CghB,IAAI,GAAGmU,kBAAkB,EAAAD,KAAA,GAAED,IAAI,CAAqBjU,IAAI,cAAAkU,KAAA,cAAAA,KAAA,GAAI,EAAE,CAAC;cACjE7B,OAAO,GAAAxlB,wBAAA,CAAAA,wBAAA,KACJ,IAAI,CAACumB,cAAc,CAAC,CAAC;gBACxBd,MAAM,EAAE,kBAAkB;gBAC1B,qBAAqB,4BAAA52B,MAAA,CAA2BskB,IAAI,OAAG;gBACvD,gBAAgB,EAAEiU,IAAI,CAACl3B;cAAI;cAAAgL,QAAA,CAAA/I,CAAA;cAAA,OAGRyzB,KAAK,CAAC,IAAI,CAACU,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC/CT,MAAM,EAAE,MAAM;gBACdX,IAAI,EAAEkC,IAAI;gBACV5B,OAAO,EAAPA;cACJ,CAAC,CAAC;YAAA;cAJIV,QAAQ,GAAA5pB,QAAA,CAAAjE,CAAA;cAAA,OAAAiE,QAAA,CAAAhE,CAAA,IAMP,IAAI,CAACsvB,oBAAoB,CAAO1B,QAAQ,CAAC;UAAA;QAAA,GAAAhqB,OAAA;MAAA,CACnD;MAAA,SAhBYysB,UAAUA,CAAA5qB,EAAA;QAAA,OAAAwqB,WAAA,CAAAr2B,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAVg5B,UAAU;IAAA;EAAA;IAAAh7B,GAAA;IAAAC,KAAA;MAAA,IAAAg7B,YAAA,GAAA/uB,4BAAA,cAAAX,uBAAA,GAAAE,CAAA,CAkBvB,SAAAwD,SAAyBtK,EAAU;QAAA,OAAA4G,uBAAA,GAAAC,CAAA,WAAA2D,SAAA;UAAA,kBAAAA,SAAA,CAAAvJ,CAAA;YAAA;cAAA,OAAAuJ,SAAA,CAAAxE,CAAA,IACxB,IAAI,CAACyK,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAGzQ,EAAE,CAAC;UAAA;QAAA,GAAAsK,QAAA;MAAA,CACzC;MAAA,SAFYisB,WAAWA,CAAA3oB,GAAA;QAAA,OAAA0oB,YAAA,CAAA12B,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAXk5B,WAAW;IAAA;EAAA;IAAAl7B,GAAA;IAAAC,KAAA;MAAA,IAAAk7B,gBAAA,GAAAjvB,4BAAA,cAAAX,uBAAA,GAAAE,CAAA,CAIxB,SAAAiE,SAA6B7K,GAAa;QAAA,IAAAu2B,YAAA;QAAA,OAAA7vB,uBAAA,GAAAC,CAAA,WAAAmE,SAAA;UAAA,kBAAAA,SAAA,CAAA/J,CAAA;YAAA;cAChCw1B,YAAY,GAAG,IAAI9G,eAAe,CAAC,CAAC;cAC1CzvB,GAAG,CAACnD,OAAO,CAAC,UAAAiD,EAAE;gBAAA,OAAIy2B,YAAY,CAACC,MAAM,CAAC,MAAM,EAAE12B,EAAE,CAAC;cAAA,EAAC;cAAC,OAAAgL,SAAA,CAAAhF,CAAA,IAC5C,IAAI,CAACyK,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAGgmB,YAAY,CAAC;UAAA;QAAA,GAAA1rB,QAAA;MAAA,CACnD;MAAA,SAJY4rB,eAAeA,CAAAjoB,GAAA;QAAA,OAAA8nB,gBAAA,CAAA52B,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAfs5B,eAAe;IAAA;EAAA;AAAA,EAzBC1B,kBAAkB,E;;ACZnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAK2B,QAAQ,0BAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA,M;;ACPpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAKC,UAAU,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,M;;ACVsB;AAC2C;AACT;AAChC;AACA;AACE;AACqB;AACZ;AACP;AACZ;AACU;AACF;AACL;AACI;AACI;AACwB;AAChB;AACJ;AACgB;AACJ;AACM;AACZ;AACA;AACJ;AACN;AACQ;AACF;AACJ;AACkB;AACN;AACN;AACY;AACpB;AACQ;AACN;AACQ;AACJ;AACkC;AACd;AAClB;AACwB;AAC1B;AACE;AACE;AACA;AACQ;AACJ;AACN;AACA;AACA;AACA;AACI;AACsB;AACA;AAC9B;AACE;AACE;AACA;AACQ;AACqB;AAC3B;AACI;AACN;AACd;AACc;AACA;AACE;AACF;AACE;AACP;AAC2C;AACR;AAC1B;AACA;AACJ;AACR;AACR;AACkB;AACI;AACU;AACE;AACd;AACU;AACI;AAChB;AACR;AACJ;AACQ;AACI;AACA;AACoB;AACR;AACnB;AACR;AACS;AACQ;AACI;AACA;AACR;AACQ;AACe;AACrC;AACI;AACI;AACL;AACH;AACE;AACK;AACa;AACA;AACR;AACS;AACG;AACF;AACE;AACa;AACH;AACN;AACN;AACQ;AACS;AACT;AACZ;AACY;AACF;AACF;AACxB;AACF;AACgB;AACM;AACE;AACE;AACV;AACR;AACO;AACoB;AACX;AACF;AACC;AACP;AACA;AACI;AACd;AACI;AACI;AACR;AACgB;AAC+B;AAC3B;AACtB;AACI;AACsB;AACR;AAChB;AACgB;;;AC1JP;AACN;AAMjB;AACa;AACyB;AAExB;AACe;AACR","sources":["webpack://polfan-server-js-client/webpack/bootstrap","webpack://polfan-server-js-client/webpack/runtime/define property getters","webpack://polfan-server-js-client/webpack/runtime/hasOwnProperty shorthand","webpack://polfan-server-js-client/webpack/runtime/make namespace object","webpack://polfan-server-js-client/./src/EventTarget.ts","webpack://polfan-server-js-client/./src/AbstractChatClient.ts","webpack://polfan-server-js-client/./src/IndexedObjectCollection.ts","webpack://polfan-server-js-client/./src/state-tracker/AsyncUtils.ts","webpack://polfan-server-js-client/./src/state-tracker/TopicHistoryWindow.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomMessagesHistory.ts","webpack://polfan-server-js-client/./src/state-tracker/MessagesManager.ts","webpack://polfan-server-js-client/./src/state-tracker/FollowedTopicsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/functions.ts","webpack://polfan-server-js-client/./src/state-tracker/SpacesManager.ts","webpack://polfan-server-js-client/./src/Permissions.ts","webpack://polfan-server-js-client/./src/state-tracker/PermissionsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/EmoticonsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/UsersManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RelationshipsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/ChatStateTracker.ts","webpack://polfan-server-js-client/./src/WebSocketChatClient.ts","webpack://polfan-server-js-client/./src/WebApiChatClient.ts","webpack://polfan-server-js-client/./src/AbstractRestClient.ts","webpack://polfan-server-js-client/./src/FilesClient.ts","webpack://polfan-server-js-client/./src/types/src/schemes/Role.ts","webpack://polfan-server-js-client/./src/types/src/schemes/User.ts","webpack://polfan-server-js-client/./src/types/src/index.ts","webpack://polfan-server-js-client/./src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type EventHandler<EventT> = (ev?: EventT) => void;\ntype HandlersMap = Map<string, EventHandler<any>[]>;\ntype EventMapLike = Record<string, any>;\ntype KnownEventNames<EventT> = EventT extends EventMapLike ? keyof EventT & string : string;\ntype EventPayload<EventT, EventName extends string = never> = EventT extends EventMapLike\n ? [EventName] extends [never]\n ? EventT[keyof EventT]\n : EventName extends keyof EventT\n ? EventT[EventName]\n : EventT[keyof EventT]\n : EventT;\n\nexport type ChangeEventMap<Payload = void> = { change: Payload };\n\nexport interface ObservableInterface<EventT = any> {\n on<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n on(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n once<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n once(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n off<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n off(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n}\n\nexport class EventTarget<EventMapT extends Record<string, any> = Record<string, any>> implements ObservableInterface<EventMapT> {\n protected events: HandlersMap = new Map<string, EventHandler<any>[]>();\n protected onceEvents: HandlersMap = new Map<string, EventHandler<any>[]>();\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public on(eventName: string, handler: EventHandler<unknown>): this;\n public on(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.events, eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public once(eventName: string, handler: EventHandler<unknown>): this;\n public once(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.onceEvents, eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public off(eventName: string, handler: EventHandler<unknown>): this;\n public off(eventName: string, handler: EventHandler<any>): this {\n const index = this.events.get(eventName)?.indexOf(handler);\n if (index === undefined || index < 0) {\n return this;\n }\n this.events.get(eventName)?.splice(index, 1);\n return this;\n }\n\n public emit<K extends keyof EventMapT & string>(eventName: K, event: EventMapT[K]): this;\n public emit(eventName: string, event?: unknown): this;\n public emit(eventName: string, event?: any): this {\n this.callHandlers(this.events, eventName, event);\n this.callHandlers(this.onceEvents, eventName, event);\n this.onceEvents.delete(eventName);\n return this;\n }\n\n private addHandler(map: HandlersMap, eventName: string, handler: EventHandler<any>): void {\n const handlers = map.get(eventName) ?? [];\n handlers.push(handler);\n map.set(eventName, handlers);\n }\n\n private callHandlers(map: HandlersMap, eventName: string, event: unknown): void {\n map.get(eventName)?.forEach(callback => callback(event));\n }\n}","import {\n Bye,\n GetSession,\n JoinSpace,\n Session,\n SpaceJoined,\n Error as ErrorType,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMemberUpdated,\n SpaceDeleted,\n SpaceMembers,\n SpaceRooms,\n NewRole,\n RoomDeleted,\n RoomJoined,\n RoomLeft,\n RoomMemberLeft,\n RoomMembersJoined,\n RoomMembers,\n NewRoom,\n NewTopic,\n TopicDeleted,\n NewMessage,\n GetPermissionOverwrites,\n GetComputedPermissions,\n LeaveSpace,\n CreateSpace,\n DeleteSpace,\n GetSpaceMembers,\n GetSpaceRooms,\n CreateRole,\n DeleteRole,\n AssignRole,\n DeassignRole,\n SetPermissionOverwrites,\n JoinRoom,\n LeaveRoom,\n CreateRoom,\n DeleteRoom,\n GetRoomMembers,\n CreateTopic,\n DeleteTopic,\n CreateMessage,\n Envelope,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoomMemberUpdated,\n UpdateRole,\n RoleUpdated,\n Ack,\n UserUpdated,\n UpdateRoom,\n RoomUpdated,\n UpdateSpace,\n SpaceUpdated,\n PermissionOverwriteTargets,\n GetPermissionOverwriteTargets,\n Owners,\n Ok,\n GetOwners,\n CreateOwner,\n RoleDeleted,\n FollowedTopicUpdated,\n TopicFollowed,\n FollowedTopics,\n FollowTopic,\n UpdateFollowedTopic,\n GetFollowedTopics,\n Messages,\n GetMessages,\n Topics,\n GetTopics,\n TopicUpdated,\n UpdateTopic,\n GetDiscoverableSpaces,\n DiscoverableSpaces,\n CreateEmoticon,\n DeleteEmoticon,\n GetEmoticons,\n Emoticons,\n EmoticonDeleted,\n NewEmoticon,\n Bans,\n GetBans,\n Ban,\n Unban,\n Kick,\n ClientData,\n GetClientData,\n SetClientData,\n GetRoomSummary,\n GetSpaceSummary,\n RoomSummaryEvent,\n SpaceSummaryEvent,\n UpdateSpaceMember,\n Relationships,\n RelationshipDeleted,\n NewRelationship,\n DeleteRelationship,\n CreateRelationship,\n RoomSummaryUpdated,\n Pong,\n Ping,\n RedactMessages,\n MessagesRedacted,\n ReportAbuse,\n UpdateRoomMember,\n GetRelationships,\n GetUserInfo,\n UserInfo,\n SetSessionData,\n SessionData,\n GetSessionData,\n SetUserData,\n UserData,\n GetUserData,\n UnfollowTopic,\n TopicUnfollowed,\n Invite,\n Uninvite,\n GetInvited,\n Invited,\n React,\n Unreact,\n GetReactionDetails,\n ReactionUpdated,\n Reacted,\n ReactionDetails,\n} from \"./types/src\";\nimport {EventTarget} from \"./EventTarget\";\n\ntype ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];\ntype ExtraEventMap = Record<string, any>;\n\ntype CommandDefinition<RequestT, ResponseT> = {\n request: RequestT;\n response: ResponseT;\n};\n\nexport abstract class AbstractChatClient<AdditionalEvents extends ExtraEventMap = {}> extends EventTarget<EventsMap & AdditionalEvents> {\n protected awaitingResponse: Map<string, ArrayOfPromiseResolvers> = new Map<string, ArrayOfPromiseResolvers>();\n protected sentCounter: number = 0;\n\n public abstract send<CommandType extends keyof CommandsMap>\n (commandType: CommandType, commandData: CommandRequest<CommandType>): Promise<CommandResult<CommandResponse<CommandType>>>;\n\n protected createEnvelope<CommandT>(type: string, data: CommandT): Envelope<CommandT> {\n return {\n type, data, ref: (++this.sentCounter).toString()\n };\n }\n\n protected createPromiseFromCommandEnvelope\n <CommandT extends keyof CommandsMap>(envelope: Envelope<CommandRequest<CommandT>>):\n Promise<CommandResult<CommandResponse<CommandT>>> {\n return new Promise((...args) =>\n this.awaitingResponse.set(envelope.ref as string, args));\n }\n\n protected handleIncomingEnvelope(envelope: Envelope): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n const isError = envelope.type === 'Error';\n this.awaitingResponse.get(envelope.ref)[0]({\n data: isError ? null : envelope.data,\n error: isError ? envelope.data : null,\n } as CommandResult<any>);\n this.awaitingResponse.delete(envelope.ref);\n }\n\n protected handleEnvelopeSendError(envelope: Envelope, error: any): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n this.awaitingResponse.get(envelope.ref)[1](error);\n this.awaitingResponse.delete(envelope.ref);\n }\n\n /**\n * Reject every command that is still waiting for a response.\n * Call this whenever the transport can no longer deliver an answer (the\n * connection dropped).\n */\n protected failAwaitingResponses(error: any): void {\n if (! this.awaitingResponse.size) {\n return;\n }\n\n const pending = Array.from(this.awaitingResponse.values());\n this.awaitingResponse.clear();\n\n for (const [, reject] of pending) {\n reject(error);\n }\n }\n}\n\nexport type CommandResult<ResultT> = {data?: ResultT, error?: ErrorType};\nexport type CommandRequest<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['request'];\nexport type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['response'];\n\n /**\n * Map of incoming events.\n */\n export type EventsMap = {\n // General Events\n Bye: Bye,\n Ok: Ok,\n Error: ErrorType,\n Session: Session,\n Permissions: Permissions,\n PermissionOverwrites: PermissionOverwrites,\n PermissionOverwritesUpdated: PermissionOverwritesUpdated,\n PermissionOverwriteTargets: PermissionOverwriteTargets,\n Owners: Owners,\n NewEmoticon: NewEmoticon,\n EmoticonDeleted: EmoticonDeleted,\n Emoticons: Emoticons,\n Bans: Bans,\n ClientData: ClientData,\n SessionData: SessionData,\n UserData: UserData,\n NewRelationship: NewRelationship,\n RelationshipDeleted: RelationshipDeleted,\n Relationships: Relationships,\n Pong: Pong,\n UserInfo: UserInfo,\n // Space events\n DiscoverableSpaces: DiscoverableSpaces,\n SpaceJoined: SpaceJoined,\n SpaceLeft: SpaceLeft,\n SpaceMemberJoined: SpaceMemberJoined,\n SpaceMemberLeft: SpaceMemberLeft,\n SpaceMemberUpdated: SpaceMemberUpdated,\n SpaceUpdated: SpaceUpdated,\n SpaceDeleted: SpaceDeleted,\n SpaceMembers: SpaceMembers,\n SpaceRooms: SpaceRooms,\n NewRole: NewRole,\n RoleDeleted: RoleDeleted,\n RoleUpdated: RoleUpdated,\n SpaceSummaryEvent: SpaceSummaryEvent,\n // Room events\n RoomJoined: RoomJoined,\n RoomLeft: RoomLeft,\n RoomMembersJoined: RoomMembersJoined,\n RoomMemberLeft: RoomMemberLeft,\n RoomMemberUpdated: RoomMemberUpdated,\n RoomMembers: RoomMembers,\n NewRoom: NewRoom,\n RoomDeleted: RoomDeleted,\n RoomUpdated: RoomUpdated,\n RoomSummaryEvent: RoomSummaryEvent,\n RoomSummaryUpdated: RoomSummaryUpdated,\n Invited: Invited,\n // Topic events\n NewTopic: NewTopic,\n TopicDeleted: TopicDeleted,\n NewMessage: NewMessage,\n UserUpdated: UserUpdated,\n TopicFollowed: TopicFollowed,\n TopicUnfollowed: TopicUnfollowed,\n FollowedTopics: FollowedTopics,\n FollowedTopicUpdated: FollowedTopicUpdated,\n Messages: Messages,\n Topics: Topics,\n TopicUpdated: TopicUpdated,\n MessagesRedacted: MessagesRedacted,\n ReactionUpdated: ReactionUpdated,\n Reacted: Reacted,\n ReactionDetails: ReactionDetails,\n};\n\n/**\n * Map of commands and their corresponding events.\n */\nexport type CommandsMap = {\n // General commands\n GetSession: CommandDefinition<GetSession, EventsMap['Session']>,\n SetPermissionOverwrites: CommandDefinition<SetPermissionOverwrites, EventsMap['PermissionOverwritesUpdated']>,\n GetPermissionOverwrites: CommandDefinition<GetPermissionOverwrites, EventsMap['PermissionOverwrites']>,\n GetComputedPermissions: CommandDefinition<GetComputedPermissions, EventsMap['Permissions']>,\n GetPermissionOverwriteTargets: CommandDefinition<GetPermissionOverwriteTargets, EventsMap['PermissionOverwriteTargets']>,\n GetOwners: CommandDefinition<GetOwners, EventsMap['Owners']>,\n CreateOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n DeleteOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n CreateEmoticon: CommandDefinition<CreateEmoticon, EventsMap['NewEmoticon']>,\n DeleteEmoticon: CommandDefinition<DeleteEmoticon, EventsMap['EmoticonDeleted']>,\n GetEmoticons: CommandDefinition<GetEmoticons, EventsMap['Emoticons']>,\n GetBans: CommandDefinition<GetBans, EventsMap['Bans']>,\n Ban: CommandDefinition<Ban, EventsMap['Ok']>,\n Unban: CommandDefinition<Unban, EventsMap['Ok']>,\n Kick: CommandDefinition<Kick, EventsMap['Ok']>,\n GetClientData: CommandDefinition<GetClientData, EventsMap['ClientData']>,\n SetClientData: CommandDefinition<SetClientData, EventsMap['Ok']>,\n DeleteRelationship: CommandDefinition<DeleteRelationship, EventsMap['RelationshipDeleted']>,\n CreateRelationship: CommandDefinition<CreateRelationship, EventsMap['NewRelationship']>,\n GetRelationships: CommandDefinition<GetRelationships, EventsMap['Relationships']>,\n Ping: CommandDefinition<Ping, EventsMap['Pong']>,\n ReportAbuse: CommandDefinition<ReportAbuse, EventsMap['Ok']>,\n GetUserInfo: CommandDefinition<GetUserInfo, EventsMap['UserInfo']>,\n GetSessionData: CommandDefinition<GetSessionData, EventsMap['SessionData']>,\n SetSessionData: CommandDefinition<SetSessionData, EventsMap['Ok']>,\n GetUserData: CommandDefinition<GetUserData, EventsMap['UserData']>,\n SetUserData: CommandDefinition<SetUserData, EventsMap['Ok']>,\n // Space commands\n GetDiscoverableSpaces: CommandDefinition<GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']>,\n JoinSpace: CommandDefinition<JoinSpace, EventsMap['SpaceJoined']>,\n LeaveSpace: CommandDefinition<LeaveSpace, EventsMap['SpaceLeft']>,\n CreateSpace: CommandDefinition<CreateSpace, EventsMap['SpaceJoined']>,\n UpdateSpace: CommandDefinition<UpdateSpace, EventsMap['SpaceUpdated']>,\n DeleteSpace: CommandDefinition<DeleteSpace, EventsMap['SpaceDeleted']>,\n GetSpaceMembers: CommandDefinition<GetSpaceMembers, EventsMap['SpaceMembers']>,\n GetSpaceRooms: CommandDefinition<GetSpaceRooms, EventsMap['SpaceRooms']>,\n CreateRole: CommandDefinition<CreateRole, EventsMap['NewRole']>,\n DeleteRole: CommandDefinition<DeleteRole, EventsMap['RoleDeleted']>,\n UpdateRole: CommandDefinition<UpdateRole, EventsMap['RoleUpdated']>,\n AssignRole: CommandDefinition<AssignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n DeassignRole: CommandDefinition<DeassignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n GetSpaceSummary: CommandDefinition<GetSpaceSummary, EventsMap['SpaceSummaryEvent']>,\n UpdateSpaceMember: CommandDefinition<UpdateSpaceMember, EventsMap['SpaceMemberUpdated']>,\n // Room commands\n JoinRoom: CommandDefinition<JoinRoom, EventsMap['RoomJoined']>,\n LeaveRoom: CommandDefinition<LeaveRoom, EventsMap['RoomLeft']>,\n CreateRoom: CommandDefinition<CreateRoom, EventsMap['RoomJoined']>,\n DeleteRoom: CommandDefinition<DeleteRoom, EventsMap['RoomDeleted']>,\n UpdateRoom: CommandDefinition<UpdateRoom, EventsMap['RoomUpdated']>,\n GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>,\n GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>,\n UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>,\n Invite: CommandDefinition<Invite, EventsMap['Invited']>,\n Uninvite: CommandDefinition<Uninvite, EventsMap['Invited']>,\n GetInvited: CommandDefinition<GetInvited, EventsMap['Invited']>,\n // Topic commands\n CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>,\n DeleteTopic: CommandDefinition<DeleteTopic, EventsMap['TopicDeleted']>,\n CreateMessage: CommandDefinition<CreateMessage, EventsMap['NewMessage']>,\n Ack: CommandDefinition<Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']>,\n FollowTopic: CommandDefinition<FollowTopic, EventsMap['TopicFollowed']>,\n UnfollowTopic: CommandDefinition<UnfollowTopic, EventsMap['TopicUnfollowed']>,\n UpdateFollowedTopic: CommandDefinition<UpdateFollowedTopic, EventsMap['FollowedTopicUpdated']>,\n GetFollowedTopics: CommandDefinition<GetFollowedTopics, EventsMap['FollowedTopics']>,\n GetMessages: CommandDefinition<GetMessages, EventsMap['Messages']>,\n GetTopics: CommandDefinition<GetTopics, EventsMap['Topics']>,\n UpdateTopic: CommandDefinition<UpdateTopic, EventsMap['TopicUpdated']>,\n RedactMessages: CommandDefinition<RedactMessages, EventsMap['MessagesRedacted']>,\n React: CommandDefinition<React, EventsMap['Reacted']>,\n Unreact: CommandDefinition<Unreact, EventsMap['Reacted']>,\n GetReactionDetails: CommandDefinition<GetReactionDetails, EventsMap['ReactionDetails']>,\n }\n","import {EventHandler, EventTarget, ObservableInterface} from \"./EventTarget\";\n\nexport class IndexedCollection<KeyT, ValueT> {\n protected _items: Map<KeyT, ValueT> = new Map();\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n this.set(...items);\n }\n\n public get items(): Map<KeyT, ValueT> {\n return this._items;\n }\n\n public get length(): number {\n return this._items.size;\n }\n\n public set(...items: [KeyT, ValueT][]): void {\n for (const item of items) {\n this._items.set(item[0], item[1]);\n }\n }\n\n public get(id: KeyT): ValueT | undefined {\n return this.items.get(id);\n }\n\n public has(id: KeyT): boolean {\n return this.items.has(id);\n }\n\n public delete(...ids: KeyT[]): void {\n for (const id of ids) {\n this.items.delete(id);\n }\n }\n\n public deleteAll(): void {\n this.items.clear();\n }\n\n public findBy(field: keyof ValueT, valueToFind: any, limit: number = Infinity): IndexedCollection<KeyT, ValueT> {\n const result = new IndexedCollection<KeyT, ValueT>();\n for (const [key, value] of this.items.entries()) {\n if (result.length >= limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set([key, value]);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedCollection<KeyT, ValueT> {\n const copy = new IndexedCollection<KeyT, ValueT>();\n copy._items = this._items;\n return copy;\n }\n}\n\nexport class IndexedObjectCollection<T> {\n protected _items: IndexedCollection<string, T>;\n\n public constructor(\n public readonly id: keyof T | ((item: T) => any),\n items: T[] = [],\n ) {\n this._items = new IndexedCollection<string, T>();\n this.set(...items);\n }\n\n public get items(): T[] {\n return Array.from(this._items.items.values());\n }\n\n public get length(): number {\n return this._items.length;\n }\n\n public set(...items: T[]): void {\n this._items.set(...(items.map(item => [this.getId(item), item] as [string, T])));\n }\n\n public get(id: any): T | undefined {\n return this._items.get(id);\n }\n\n public getAt(index: number): T | undefined {\n return this.items[index];\n }\n\n public has(id: any): boolean {\n return this._items.has(id);\n }\n\n public delete(...ids: any[]): void {\n this._items.delete(...ids);\n }\n\n public deleteAll(): void {\n this._items.deleteAll();\n }\n\n public findBy(field: keyof T, valueToFind: any, limit: number = null): IndexedObjectCollection<T> {\n const result = new IndexedObjectCollection<T>(this.id);\n for (const value of this.items) {\n if (limit && result.length === limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set(value);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedObjectCollection<T> {\n const copy = new IndexedObjectCollection<T>(this.id);\n copy._items = this._items;\n return copy;\n }\n\n protected getId(item: T): any {\n return typeof this.id === 'function' ? this.id(item) : item[this.id];\n }\n}\n\nexport type CollectionEventMap<IdType = string> = {\n change: { setItems?: IdType[]; deletedItems?: IdType[] };\n};\n\nexport class ObservableIndexedCollection<\n KeyT,\n ValueT,\n EventMapT extends CollectionEventMap<KeyT> = CollectionEventMap<KeyT>\n> extends IndexedCollection<KeyT, ValueT> implements ObservableInterface<EventMapT> {\n\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n super();\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: [KeyT, ValueT][]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => item[0]) });\n }\n }\n\n public delete(...ids: KeyT[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = Array.from(this._items.keys());\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: Array.from(ids) });\n }\n }\n\n public createMirror(): ObservableIndexedCollection<KeyT, ValueT, EventMapT> {\n const copy = new ObservableIndexedCollection<KeyT, ValueT, EventMapT>();\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}\n\nexport class ObservableIndexedObjectCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends IndexedObjectCollection<ItemT> implements ObservableInterface<EventMapT> {\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(\n id: keyof ItemT | ((item: ItemT) => string),\n items: ItemT[] = [],\n ) {\n super(id);\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: ItemT[]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => this.getId(item)) });\n }\n }\n\n public delete(...ids: string[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = this.items.map(item => this.getId(item));\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n /**\n * Bring the collection to exactly match the provided items: upsert every\n * provided item and remove any existing item whose id is not present in the\n * provided set. Emits at most a single `change` event describing both the\n * set and the deleted ids, so bound consumers can update in place without\n * ever observing an intermediate empty state (unlike deleteAll + set).\n */\n public reconcile(...items: ItemT[]) {\n const incomingIds = new Set(items.map(item => this.getId(item)));\n const deletedItems: string[] = [];\n\n for (const existing of this.items) {\n const id = this.getId(existing);\n if (! incomingIds.has(id)) {\n deletedItems.push(id);\n }\n }\n\n if (! items.length && ! deletedItems.length) {\n return;\n }\n\n this._items.delete(...deletedItems);\n super.set(...items);\n\n this.eventTarget.emit('change', {\n setItems: items.map(item => this.getId(item)),\n deletedItems,\n });\n }\n\n public createMirror(): ObservableIndexedObjectCollection<ItemT, EventMapT> {\n const copy = new ObservableIndexedObjectCollection<ItemT, EventMapT>(this.id);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}","import {IndexedCollection} from \"../IndexedObjectCollection\";\n\nexport class DeferredTask {\n public readonly promise: Promise<void>;\n public resolve: () => void;\n\n public constructor() {\n this.promise = new Promise<void>((resolve) => this.resolve = resolve);\n }\n}\n\nexport class PromiseRegistry {\n private promises = new IndexedCollection<string, Promise<any>>();\n\n public register<T = any>(promise: Promise<T>, key: string): void {\n this.promises.set([key, promise]);\n\n promise.catch(() => {\n if (this.promises.get(key) === promise) {\n this.promises.delete(key);\n }\n });\n }\n\n public registerByFunction(fn: () => Promise<any>, key: string): void {\n this.register(fn(), key);\n }\n\n public get<T = any>(key: string): Promise<T> | undefined {\n return this.promises.get(key);\n }\n\n public has(key: string): boolean {\n return this.promises.has(key);\n }\n\n public notExist(key: string): boolean {\n return ! this.has(key);\n }\n\n public forget(...keys: string[]): void {\n this.promises.delete(...keys);\n }\n\n public forgetAll(): void {\n this.promises.deleteAll();\n }\n}","import {\n GetMessages,\n Message,\n MessageReaction,\n ReactionUpdated,\n MessagesRedacted,\n NewMessage,\n Reacted,\n Topic,\n UserReaction,\n} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {CollectionEventMap, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\n\nexport enum WindowState {\n /**\n * The latest messages (those received live) are available in the history window, history has not been fetched.\n */\n LIVE,\n\n /**\n * The latest messages has been fetched and are available in the history window.\n */\n LATEST,\n\n /**\n * The historical messages have been fetched and are available in the history window.\n * Latest messages are not available and will not be available.\n */\n PAST,\n\n /**\n * The oldest messages have been fetched and are available in the history window.\n * Next attempts to fetch previous messages will result with no-op.\n */\n OLDEST,\n}\n\nexport abstract class TraversableRemoteCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends ObservableIndexedObjectCollection<ItemT, EventMapT> {\n /**\n * Current mode od collection window. To change mode, call one of available fetch methods.\n */\n public get state(): WindowState {\n return this.internalState.current;\n }\n\n protected internalState: {\n current: WindowState,\n ongoing?: WindowState,\n limit: number | null, // Acts as High Watermark\n retainRatio: number, // Percentage of limit to keep when trimming\n fetchLimit: number,\n lastFetchCount: number,\n oldestId: string | null,\n } = {\n current: WindowState.LIVE,\n ongoing: undefined,\n limit: 1000,\n retainRatio: 1,\n fetchLimit: 50,\n lastFetchCount: 0,\n oldestId: null,\n };\n\n /**\n * Number of items to fetch per request.\n */\n public get fetchLimit(): number {\n return this.internalState.fetchLimit;\n }\n\n /**\n * Sets number of items to fetch per request.\n */\n public set fetchLimit(value: number) {\n this.internalState.fetchLimit = value;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public get limit(): number | null {\n return this.internalState.limit;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public set limit(value: number | null) {\n this.internalState.limit = value;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public get retainRatio(): number {\n return this.internalState.retainRatio;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public set retainRatio(value: number) {\n this.internalState.retainRatio = value;\n }\n\n public get hasLatest(): boolean {\n return [WindowState.LATEST, WindowState.LIVE].includes(this.state);\n }\n\n public get hasOldest(): boolean {\n return this.state === WindowState.OLDEST\n || this.state === WindowState.LATEST && this.length < this.fetchLimit\n || this.internalState.oldestId !== null && this.has(this.internalState.oldestId);\n }\n\n public abstract createMirror(): TraversableRemoteCollection<ItemT, EventMapT>;\n\n public async resetToLatest(force: boolean = false): Promise<void> {\n if (this.internalState.ongoing || (! force && this.internalState.current === WindowState.LATEST)) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.LATEST;\n\n try {\n result = await this.fetchLatestItems();\n this.internalState.lastFetchCount = result.length;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.LATEST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.ongoing || this.hasOldest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsBefore();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n return this.resetToLatest();\n }\n\n if (! result.length) {\n const firstItem = this.getAt(0);\n this.internalState.oldestId = firstItem ? this.getId(firstItem) : null;\n\n await this.refreshFetchedState();\n\n // LATEST state has priority over OLDEST\n if (this.internalState.current === WindowState.PAST) {\n this.internalState.current = WindowState.OLDEST;\n }\n\n this.emitChangeWithDiff(false, originalState);\n return;\n }\n\n this.addItems(result, 'head');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.ongoing || this.hasLatest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAfter();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n await this.resetToLatest();\n return;\n }\n\n if (result.length) {\n this.addItems(result, 'tail');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n return;\n }\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.ongoing || (this.state !== WindowState.LIVE && this._items.has(id))) {\n return;\n }\n\n let result: ItemT[] | null;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAround(id);\n this.internalState.lastFetchCount = result ? result.length : 0;\n\n if (result) {\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n await this.refreshFetchedState();\n }\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n this.emitChangeWithDiff(!!result, originalState);\n }\n\n protected abstract fetchLatestItems(): Promise<ItemT[]>;\n\n protected abstract fetchItemsBefore(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAfter(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAround(id: string): Promise<ItemT[] | null>;\n\n protected abstract isLatestItemLoaded(): Promise<boolean>;\n\n protected async refreshFetchedState(): Promise<void> {\n this.internalState.current = (await this.isLatestItemLoaded()) ? WindowState.LATEST : WindowState.PAST;\n }\n\n protected addItems(newItems: ItemT[], to: 'head' | 'tail'): void {\n let result;\n\n if (to === 'head') {\n result = this.trimItemsArrayToLimit([...newItems, ...this.items], 'tail');\n }\n\n if (to === 'tail') {\n result = this.trimItemsArrayToLimit([...this.items, ...newItems], 'head');\n }\n\n // Directly calls to prevent event emit.\n this._items.deleteAll();\n this._items.set(...(result.map(item => [this.getId(item), item] as [string, ItemT])));\n }\n\n protected emitChangeWithDiff(itemChanged: boolean, originalState: WindowState): void {\n if (itemChanged || originalState !== this.state) {\n this.eventTarget.emit('change', { setItems: Array.from(this._items.items.keys()) })\n }\n }\n\n /**\n * Return array with messages trimmed using High/Low Watermark strategy.\n */\n private trimItemsArrayToLimit(items: ItemT[], from: 'head' | 'tail'): ItemT[] {\n const highWatermark = this.limit;\n\n if (highWatermark === null || items.length <= highWatermark) {\n return items;\n }\n\n const lowWatermark = Math.floor(highWatermark * this.internalState.retainRatio);\n\n if (from === 'head') {\n return items.slice(-lowWatermark);\n }\n\n if (from === 'tail') {\n return items.slice(0, lowWatermark);\n }\n\n return items;\n }\n}\n\nexport type TopicHistoryWindowEventMap = CollectionEventMap & {\n reftopicsdeleted: string[];\n};\n\nexport class TopicHistoryWindow extends TraversableRemoteCollection<\n Message,\n TopicHistoryWindowEventMap\n> {\n /**\n * Reexported available window modes enum.\n */\n public readonly WindowState: typeof WindowState = WindowState;\n\n declare protected internalState: typeof TraversableRemoteCollection<Message>['prototype']['internalState'] & {\n traverseLock: boolean,\n includeMyReactions: boolean,\n myReactions: Record<string, UserReaction[]>,\n };\n\n public constructor(\n private roomId: string,\n private topicId: string,\n private tracker: ChatStateTracker,\n bindEvents: boolean = true,\n ) {\n super('id');\n\n this.internalState.traverseLock = false;\n this.internalState.includeMyReactions = true;\n this.internalState.myReactions = {};\n\n if (bindEvents) {\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n this.tracker.client.on('ReactionUpdated', ev => this.handleReactionUpdated(ev));\n this.tracker.client.on('Reacted', ev => this.handleReacted(ev));\n }\n }\n\n public createMirror(): TopicHistoryWindow {\n const copy = new TopicHistoryWindow(this.roomId, this.topicId, this.tracker, false);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n copy.internalState = this.internalState;\n return copy;\n }\n\n public get isTraverseLocked(): boolean {\n return this.internalState.traverseLock;\n }\n\n /**\n * What the connected user has reacted with, keyed by message id. Kept apart from\n * the messages, so the history itself is identical for every user.\n */\n public get myReactions(): Readonly<Record<string, UserReaction[]>> {\n return this.internalState.myReactions;\n }\n\n /**\n * Whether the history is fetched together with the reactions of the connected\n * user. Turn it off only where the active state of a reaction is never rendered.\n */\n public get includeMyReactions(): boolean {\n return this.internalState.includeMyReactions;\n }\n\n public set includeMyReactions(value: boolean) {\n this.internalState.includeMyReactions = value;\n }\n\n public async setTraverseLock(lock: boolean): Promise<void> {\n this.internalState.traverseLock = lock;\n\n if (lock && (this.state !== WindowState.LIVE && this.state !== WindowState.LATEST)) {\n await super.resetToLatest();\n }\n }\n\n public async resetToLatest(force: boolean = false): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.resetToLatest(force);\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchNext();\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchPrevious();\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.jumpTo(id);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public _updateMessageReference(refTopic: Topic): void {\n const refMessage = this.get(refTopic.refMessage.id);\n\n if (refMessage) {\n // Update referenced topic ID in message\n this.set({...refMessage, topicRef: refTopic.id});\n }\n }\n\n protected async fetchItemsAfter(): Promise<Message[] | null> {\n const afterId = this.getAt(this.length - 1)?.id;\n\n // If there is no message to refer, fetch latest\n return afterId ? this.fetchMessages({after: afterId}) : null;\n }\n\n protected async fetchItemsAround(id: string): Promise<Message[] | null> {\n return this.fetchMessages({around: id});\n }\n\n protected async fetchItemsBefore(): Promise<Message[] | null> {\n const beforeId = this.getAt(0)?.id;\n\n // If there is no message to refer, fetch latest\n return beforeId ? this.fetchMessages({before: beforeId}) : null;\n }\n\n protected async fetchLatestItems(): Promise<Message[]> {\n return this.fetchMessages({});\n }\n\n private async fetchMessages(criteria: Partial<GetMessages>): Promise<Message[]> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n limit: this.internalState.fetchLimit,\n includeMyReactions: this.internalState.includeMyReactions,\n ...criteria,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n this.storeMyReactions(result.data.messages, result.data.myReactions);\n\n return result.data.messages;\n }\n\n /**\n * The response is the truth for every message it covers, so a message it does not\n * mention has no reaction of this user left on it.\n */\n private storeMyReactions(messages: Message[], myReactions?: Record<string, UserReaction[]>): void {\n if (! this.internalState.includeMyReactions) {\n return;\n }\n\n for (const message of messages) {\n const own = myReactions?.[message.id];\n\n if (own?.length) {\n this.internalState.myReactions[message.id] = own;\n } else {\n delete this.internalState.myReactions[message.id];\n }\n }\n }\n\n private async getTopic(): Promise<Topic | undefined> {\n return (await this.tracker.rooms.getTopics(this.roomId, [this.topicId])).get(this.topicId);\n }\n\n private async getLatestMessageId(): Promise<string | undefined> {\n return (await this.getTopic())?.lastMessage?.id;\n }\n\n protected async isLatestItemLoaded(): Promise<boolean> {\n const lastMessageId = await this.getLatestMessageId();\n return lastMessageId ? this.has(lastMessageId) : true;\n }\n\n private async handleNewMessage(ev: NewMessage): Promise<void> {\n if (\n [WindowState.LATEST, WindowState.LIVE].includes(this.state)\n && ev.message.location.roomId === this.roomId\n && ev.message.location.topicId === this.topicId\n ) {\n const originalState = this.state;\n this.addItems([ev.message], 'tail');\n this.emitChangeWithDiff(true, originalState);\n }\n }\n\n /**\n * The counter arrives as the global source of truth - only it is overwritten, and\n * a reaction nobody holds any more (count 0) leaves the message.\n */\n private handleReactionUpdated(ev: ReactionUpdated): void {\n const message = this.get(ev.messageId);\n\n if (! message) {\n return;\n }\n\n const index = message.reactions.findIndex(\n reaction => reaction.type === ev.reaction.type && reaction.value === ev.reaction.value);\n\n if (index === -1 && ! ev.reaction.count) {\n return;\n }\n\n const reactions: MessageReaction[] = [...message.reactions];\n\n if (index === -1) {\n reactions.push(ev.reaction);\n } else if (ev.reaction.count) {\n reactions[index] = ev.reaction; // In place - a pill must not jump around as its counter moves\n } else {\n reactions.splice(index, 1);\n }\n\n this.set({...message, reactions});\n }\n\n private handleReacted(ev: Reacted): void {\n if (! this.has(ev.messageId)) {\n return;\n }\n\n const {type, value, isAdded} = ev.reaction;\n const own = (this.internalState.myReactions[ev.messageId] ?? [])\n .filter(reaction => reaction.type !== type || reaction.value !== value);\n\n if (isAdded) {\n own.push({type, value});\n }\n\n if (own.length) {\n this.internalState.myReactions[ev.messageId] = own;\n } else {\n delete this.internalState.myReactions[ev.messageId];\n }\n\n this.eventTarget.emit('change', {setItems: [ev.messageId]});\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n if (ev.location.topicId !== this.topicId || ev.location.roomId !== this.roomId) {\n return;\n }\n\n const refTopicIds = this.items\n .filter(msg => msg.topicRef && ev.ids.includes(msg.id))\n .map(msg => msg.topicRef as string);\n\n this.delete(...ev.ids);\n\n if (this.length === 0) {\n await this.resetToLatest();\n }\n\n if (refTopicIds.length > 0) {\n this.eventTarget.emit('reftopicsdeleted', refTopicIds);\n }\n }\n}\n","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {NewTopic, Room, RoomUpdated, Topic, TopicDeleted} from \"../types/src\";\nimport {IndexedCollection,} from \"../IndexedObjectCollection\";\nimport {TopicHistoryWindow, WindowState} from \"./TopicHistoryWindow\";\n\nexport class RoomMessagesHistory {\n private historyWindows = new IndexedCollection<string, TopicHistoryWindow>();\n private traverseLock: boolean = false;\n\n public constructor(\n private room: Room,\n private tracker: ChatStateTracker,\n ) {\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n\n this.updateTraverseLock(this.room);\n\n if (this.room.defaultTopic) {\n this.createHistoryWindowForTopic(this.room.defaultTopic);\n }\n }\n\n /**\n * Returns a history window object for the given topic ID, allowing you to view message history.\n * @param topicId\n * @param peek If true, do not create a cache for this topic and do not allow it to collect new messages.\n */\n public async getMessagesWindow(topicId: string, peek: boolean = false): Promise<TopicHistoryWindow | undefined> {\n if (!this.historyWindows.has(topicId) && !peek) {\n const topic = (await this.tracker.rooms.getTopics(this.room.id, [topicId])).get(topicId);\n\n if (topic) {\n this.createHistoryWindowForTopic(topic);\n }\n }\n\n return this.historyWindows.get(topicId);\n }\n\n /**\n * Re-synchronise this room's history after a reconnect without discarding\n * the existing window objects (which would blank the UI and, for ephemeral\n * rooms, permanently drop live-only history).\n *\n * The window bindings are preserved; only windows that the application had\n * actually pulled to the latest page (state === LATEST) are refreshed, with\n * a single resetToLatest instead of a chain of catch-up requests. Windows\n * that were never pulled (LIVE) or belong to an ephemeral room are left\n * untouched so their in-memory context survives the reconnect.\n */\n public async resync(room: Room): Promise<void> {\n this.room = room;\n this.updateTraverseLock(room);\n\n if (this.room.defaultTopic) {\n this.createHistoryWindowForTopic(this.room.defaultTopic);\n }\n\n for (const [, window] of Array.from(this.historyWindows.items)) {\n try {\n await window.setTraverseLock(this.traverseLock);\n\n // Ephemeral history lives only in memory (the server does not\n // persist it), so never refetch/replace it on reconnect.\n if (this.traverseLock) {\n continue;\n }\n\n if (window.state === WindowState.LATEST) {\n await window.resetToLatest(true);\n }\n } catch (_e) {\n // Best effort: the connection can drop again mid-resync. The\n // window keeps its current content and stays usable, so the\n // application can refresh it on demand.\n }\n }\n }\n\n private async handleRoomUpdated(ev: RoomUpdated): Promise<void> {\n if (this.room.id === ev.room.id) {\n this.room = ev.room;\n\n this.updateTraverseLock(ev.room);\n\n if (ev.room.defaultTopic) {\n this.createHistoryWindowForTopic(ev.room.defaultTopic);\n }\n\n for (const [, window] of Array.from(this.historyWindows.items)) {\n await window.setTraverseLock(this.traverseLock);\n }\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n if (this.room.id === ev.roomId) {\n this.createHistoryWindowForTopic(ev.topic);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n if (this.room.id === ev.location.roomId) {\n this.historyWindows.delete(ev.location.topicId);\n }\n }\n\n private createHistoryWindowForTopic(topic: Topic): void {\n if (this.historyWindows.has(topic.id)) {\n return;\n }\n\n const historyWindow = new TopicHistoryWindow(this.room.id, topic.id, this.tracker);\n\n void historyWindow.setTraverseLock(this.traverseLock);\n\n this.historyWindows.set([topic.id, historyWindow]);\n\n // Current behavior of deletion a message with referenced topic is to delete the whole side topic\n // So we need to listen for topic deletions here\n historyWindow.on('reftopicsdeleted', (deletedTopicIds: string[]) => {\n for (const topicId of deletedTopicIds) {\n this.historyWindows.delete(topicId);\n }\n this.tracker.rooms._deleteTopicsFromRoom(this.room.id, ...deletedTopicIds);\n });\n\n // If new topic refers to some message from this room, update other structures\n if (topic.refMessage) {\n const refHistoryWindow = this.historyWindows.get(topic.refMessage.location.topicId);\n refHistoryWindow?._updateMessageReference(topic);\n }\n }\n\n private updateTraverseLock(room: Room): void {\n this.traverseLock = room.history.mode === 'Ephemeral';\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n RoomDeleted,\n RoomLeft,\n RoomJoined,\n Session,\n Room,\n Message, ChatLocation,\n} from \"../types/src\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {DeferredTask} from \"./AsyncUtils\";\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\n\nexport class MessagesManager {\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\n private readonly deferredSession = new DeferredTask();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n }\n\n /**\n * Get history manager for given room ID.\n */\n public async getRoomHistory(roomId: string): Promise<RoomMessagesHistory | undefined> {\n await this.deferredSession.promise;\n return this.roomHistories.get(roomId);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public async _resolveLastMessage(location: ChatLocation): Promise<Message|null> {\n // Try to get last message from history window (if cached)\n let message: Message = await this.getRoomHistory(location.roomId)\n .then(roomHistory => roomHistory?.getMessagesWindow(location.topicId, true))\n .then(\n historyWindow =>\n historyWindow?.hasLatest && historyWindow.getAt(historyWindow.length - 1)\n );\n\n if (!message) {\n const result = await this.tracker.client.send('GetMessages', {\n location,\n limit: 1,\n });\n message = result.data?.messages[0];\n }\n\n return message || null;\n }\n\n private createHistoryForNewRoom(room: Room): void {\n this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.roomHistories.delete(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.createHistoryForNewRoom(ev.room);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.roomHistories.delete(ev.id);\n }\n\n private handleSession(ev: Session): void {\n const stateRoomIds = new Set(ev.state.rooms.map(room => room.id));\n\n // Drop histories only for rooms that no longer exist server-side.\n for (const roomId of Array.from(this.roomHistories.items.keys())) {\n if (! stateRoomIds.has(roomId)) {\n this.roomHistories.delete(roomId);\n }\n }\n\n // Keep existing histories (preserving loaded messages and, crucially,\n // live-only ephemeral history), create histories for newly joined\n // rooms, and resync survivors against the fresh room snapshot.\n for (const room of ev.state.rooms) {\n const history = this.roomHistories.get(room.id);\n if (history) {\n void history.resync(room);\n } else {\n this.createHistoryForNewRoom(room);\n }\n }\n\n this.deferredSession.resolve();\n }\n}","import {EventTarget} from \"../EventTarget\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n ChatLocation,\n FollowedTopic,\n FollowedTopicUpdated,\n NewMessage, NewTopic,\n RoomDeleted,\n RoomJoined, RoomLeft,\n Session, TopicDeleted,\n TopicFollowed, TopicUnfollowed\n} from \"../types/src\";\n\ninterface EventMap {\n change: {};\n}\n\nexport interface UnreadSummary {\n mentionCount: number;\n unreadTopicCount: number;\n unreadRoomCount: number;\n isUnread: boolean;\n}\n\nexport class FollowedTopicsManager extends EventTarget<EventMap> {\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\n private readonly followedTopicsPromises = new PromiseRegistry();\n private readonly deferredSession = new DeferredTask();\n private readonly summariesCache = new Map<string, UnreadSummary>();\n\n /**\n * Rooms whose cached followed-topics are stale after a reconnect and must\n * be refetched (and reconciled in place) the next time they are accessed.\n */\n private readonly staleRooms = new Set<string>();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('FollowedTopicUpdated', ev => this.handleFollowedTopicUpdated(ev));\n this.tracker.client.on('TopicFollowed', ev => this.handleTopicFollowed(ev));\n this.tracker.client.on('TopicUnfollowed', ev => this.handleTopicUnfollowed(ev));\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n }\n\n /**\n * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.\n * Then you can get them using getRoomFollowedTopics().\n * @see getForRoom\n */\n public async cacheForSpace(spaceId: string | null): Promise<void> {\n if (spaceId && ! (await this.tracker.spaces.get()).has(spaceId)) {\n throw new Error(`You are not in space ${spaceId}`);\n }\n\n const rooms = await this.tracker.rooms.get();\n const roomIds = spaceId\n ? rooms.findBy('spaceId', spaceId).items.map(r => r.id)\n : rooms.items.filter(r => !r.spaceId).map(r => r.id);\n\n if (!roomIds.length) {\n return;\n }\n\n const needsFetch = roomIds.some(roomId => ! this.followedTopics.has(roomId) || this.staleRooms.has(roomId));\n if (! needsFetch) {\n return;\n }\n\n const spaceRegistryKey = `space_fetch_${spaceId || 'spaceless'}`;\n\n if (this.followedTopicsPromises.notExist(spaceRegistryKey)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\n if (result.error) throw result.error;\n\n this.reconcileRoomsFollowedTopics(roomIds, result.data.followedTopics);\n }, spaceRegistryKey);\n }\n\n await this.followedTopicsPromises.get(spaceRegistryKey);\n }\n\n /**\n * Get followed topics for the given room.\n * @return Undefined if you are not in the room, collection otherwise.\n */\n public async getForRoom(roomId: string): Promise<ObservableIndexedObjectCollection<FollowedTopic> | undefined> {\n if (! (await this.tracker.rooms.get()).has(roomId)) {\n return undefined;\n }\n\n if (! this.followedTopics.has(roomId) || this.staleRooms.has(roomId)) {\n if (this.followedTopicsPromises.notExist(roomId)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {roomId}});\n\n if (result.error) {\n throw result.error;\n }\n\n this.applyRoomFollowedTopics(roomId, result.data.followedTopics);\n this.invalidateUnreadSummaries(roomId);\n }, roomId);\n }\n\n await this.followedTopicsPromises.get(roomId);\n }\n\n return this.followedTopics.get(roomId);\n }\n\n /**\n * Batch acknowledge all messages for given room.\n */\n public async ackRoom(roomId: string): Promise<void> {\n const collection = await this.getForRoom(roomId);\n\n if (! collection) {\n return;\n }\n\n for (const followedTopic of collection.items) {\n if (followedTopic.isUnread) {\n await this.tracker.client.send('Ack', {location: followedTopic.location});\n }\n }\n }\n\n /**\n * Summarize all unread messages or mentions from any topic in given location.\n * This method uses an internal cache, so it's ok to call it multiple times.\n * Capture the 'change' event to determine when it's worth calling this method again due to data changes.\n * @return Undefined if you are not in room.\n */\n public async summarize(location: ChatLocation): Promise<UnreadSummary> {\n const cacheKey = location.topicId\n ? `topic:${location.roomId}:${location.topicId}`\n : location.roomId\n ? `room:${location.roomId}`\n : location.spaceId\n ? `space:${location.spaceId}`\n : 'spaceless';\n\n if (this.summariesCache.has(cacheKey)) {\n return this.summariesCache.get(cacheKey)!;\n }\n\n let roomIds: string[] = [];\n let targetTopicId: string | undefined;\n const rooms = await this.tracker.rooms.get();\n\n if (location.topicId) {\n if (!location.roomId) {\n throw new Error(\"roomId is required when querying by topicId\");\n }\n roomIds = [location.roomId];\n targetTopicId = location.topicId;\n } else if (location.roomId) {\n roomIds = [location.roomId];\n } else if (location.spaceId) {\n await this.cacheForSpace(location.spaceId);\n roomIds = rooms.findBy('spaceId', location.spaceId).items.map(r => r.id);\n } else {\n await this.cacheForSpace(null);\n roomIds = rooms.items.filter(r => !r.spaceId).map(r => r.id);\n }\n\n let mentionCount = 0;\n let unreadTopicCount = 0;\n let unreadRoomCount = 0;\n\n for (const roomId of roomIds) {\n const collection = await this.getForRoom(roomId);\n\n if (!collection) {\n continue;\n }\n\n let isRoomUnreadCount = false;\n for (const topic of collection.items) {\n if (targetTopicId && topic.location.topicId !== targetTopicId) {\n continue;\n }\n\n if (topic.isUnread) {\n if (!isRoomUnreadCount) {\n unreadRoomCount++;\n isRoomUnreadCount = true;\n }\n unreadTopicCount++;\n }\n\n mentionCount += (topic.mentionCount ?? 0);\n }\n }\n\n const result = { mentionCount, unreadTopicCount, unreadRoomCount, isUnread: unreadTopicCount > 0 };\n this.summariesCache.set(cacheKey, result);\n\n return result;\n }\n\n /**\n * For internal use. If you want to delete the message, execute a proper command on client object.\n * @internal\n */\n public _deleteByTopicIds(roomId: string, ...topicIds: string[]): void {\n this.followedTopics.get(roomId)?.delete(...topicIds);\n topicIds.forEach(topicId => this.invalidateUnreadSummaries(roomId, topicId));\n }\n\n private handleSession(ev: Session): void {\n // Keep cached followed-topic collections (they drive unread indicators\n // that would otherwise blank on reconnect), but mark them stale and drop\n // the fetch guards so the next access/caching refetches and reconciles\n // them in place.\n for (const roomId of this.followedTopics.items.keys()) {\n this.staleRooms.add(roomId);\n }\n this.followedTopicsPromises.forgetAll();\n this.invalidateUnreadSummaries();\n this.deferredSession.resolve();\n }\n\n private handleNewMessage(ev: NewMessage): void {\n void this.updateLocallyFollowedTopicOnNewMessage(ev);\n }\n\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleTopicFollowed(ev: TopicFollowed): void {\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleTopicUnfollowed(ev: TopicUnfollowed): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.clearRoomFollowedTopicsStructures(ev.room.id);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private async handleNewTopic(ev: NewTopic): Promise<void> {\n if (this.followedTopics.has(ev.roomId)) {\n // Check if the new topic is followed by user\n // only if client asked for followed topics list before for this room\n const result = await this.tracker.client.send(\n 'GetFollowedTopics',\n {location: {roomId: ev.roomId, topicId: ev.topic.id}},\n );\n const followedTopic = result.data.followedTopics[0];\n if (followedTopic) {\n this.followedTopics.get(ev.roomId).set(followedTopic);\n this.invalidateUnreadSummaries(ev.roomId, ev.topic.id);\n }\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);\n }\n\n /**\n * Invalidate the summaries cache intentionally, only for the locations affected by the change.\n */\n private invalidateUnreadSummaries(roomId?: string, topicId?: string): void {\n if (roomId) {\n this.summariesCache.delete(`room:${roomId}`);\n\n if (topicId) {\n this.summariesCache.delete(`topic:${roomId}:${topicId}`);\n } else {\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith(`topic:${roomId}:`)) {\n this.summariesCache.delete(key);\n }\n }\n }\n\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.summariesCache.delete(key);\n }\n }\n } else {\n this.summariesCache.clear();\n }\n\n this.emit('change');\n }\n\n private invalidateUnreadSummariesForRooms(roomIds: string[]): void {\n const roomIdsSet = new Set(roomIds);\n roomIds.forEach(roomId => {\n this.summariesCache.delete(`room:${roomId}`);\n });\n\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.summariesCache.delete(key);\n continue;\n }\n if (key.startsWith('topic:')) {\n const parts = key.split(':');\n if (parts.length >= 2 && roomIdsSet.has(parts[1])) {\n this.summariesCache.delete(key);\n }\n }\n }\n\n this.emit('change');\n }\n\n private async updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): Promise<void> {\n const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);\n const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);\n\n if (!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral') {\n // Skip if we don't follow this room or message is ephemeral\n return;\n }\n\n const me = await this.tracker.getMe();\n const isMe = ev.message.author.user.id === me.id;\n let update: Partial<FollowedTopic>;\n\n if (isMe) {\n // Reset missed messages count if new message is authored by me\n update = {missed: 0, lastAckMessageId: ev.message.id};\n } else if (ev.message.type === 'Text') {\n // ...check for mentions if it's text message...\n const member = await this.tracker.rooms.getMe(ev.message.location.roomId);\n const roleIds = [...(member.spaceMember?.roles ?? []), ...(member.roles ?? [])];\n const mentionHandlers = [\n ...roleIds.map(id => `<@&${id}>`),\n `<@${me.id}>`,\n ];\n const mentionExists = mentionHandlers.some(handler => ev.message.content.includes(handler));\n\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n mentionCount: followedTopic.mentionCount + (mentionExists ? 1 : 0),\n };\n } else {\n // ...or just mark as unread.\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n };\n }\n\n roomFollowedTopics.set({...followedTopic, ...update});\n this.invalidateUnreadSummaries(ev.message.location.roomId, ev.message.location.topicId);\n }\n\n /**\n * Reconcile the followed-topics collection for a single room to exactly\n * match the provided list (upsert present, drop absent) without emitting an\n * intermediate empty state, and clear its stale marker. Does not touch the\n * unread summaries cache - callers decide how to invalidate it.\n */\n private applyRoomFollowedTopics(roomId: string, followedTopics: FollowedTopic[]): void {\n if (! this.followedTopics.has(roomId)) {\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\n followedTopic => followedTopic.location.topicId\n )]);\n }\n\n this.followedTopics.get(roomId).reconcile(...followedTopics);\n this.staleRooms.delete(roomId);\n }\n\n /**\n * Reconcile a batch of rooms from a single bulk GetFollowedTopics response.\n * Rooms with no followed topics in the response are reconciled to empty, so\n * topics unfollowed/removed during the downtime are correctly dropped.\n */\n private reconcileRoomsFollowedTopics(roomIds: string[], followedTopics: FollowedTopic[]): void {\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\n\n followedTopics.forEach(followedTopic => {\n (roomToTopics[followedTopic.location.roomId] ??= []).push(followedTopic);\n });\n\n roomIds.forEach(roomId => this.applyRoomFollowedTopics(roomId, roomToTopics[roomId] ?? []));\n\n this.invalidateUnreadSummariesForRooms(roomIds);\n }\n\n private setFollowedTopicsArray(roomIds: string[], followedTopics: FollowedTopic[]): void {\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\n\n // Reassign followed topics to limit collection change event emit\n followedTopics.forEach(followedTopic => {\n roomToTopics[followedTopic.location.roomId] ??= [];\n roomToTopics[followedTopic.location.roomId].push(followedTopic);\n });\n\n roomIds.forEach(roomId => {\n if (! this.followedTopics.has(roomId)) {\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\n followedTopic => followedTopic.location.topicId\n )]);\n }\n\n if (roomToTopics[roomId]) {\n this.followedTopics.get(roomId).set(...roomToTopics[roomId]);\n }\n });\n\n this.invalidateUnreadSummariesForRooms(roomIds);\n }\n\n private clearRoomFollowedTopicsStructures(roomId: string): void {\n this.followedTopics.delete(roomId);\n this.followedTopicsPromises.forget(roomId);\n this.staleRooms.delete(roomId);\n this.invalidateUnreadSummaries(roomId);\n }\n}","import {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n Message,\n MessagesRedacted,\n NewMessage,\n NewTopic,\n Room, RoomDeleted,\n RoomJoined, RoomLeft,\n RoomMember, RoomMemberLeft, RoomMembers, RoomMembersJoined,\n RoomMemberUpdated, RoomUpdated, Session, SpaceDeleted, SpaceLeft, SpaceMemberLeft,\n SpaceMemberUpdated,\n Topic,\n TopicDeleted, TopicUpdated,\n UserUpdated,\n} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {MessagesManager} from \"./MessagesManager\";\nimport {FollowedTopicsManager} from \"./FollowedTopicsManager\";\n\nexport class RoomsManager {\n public readonly messages: MessagesManager;\n public readonly followedTopics: FollowedTopicsManager;\n\n private readonly list = new ObservableIndexedObjectCollection<Room>('id');\n private readonly topics = new IndexedCollection<string, ObservableIndexedObjectCollection<Topic>>();\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomMember>>();\n private readonly deferredSession = new DeferredTask();\n private readonly membersPromises = new PromiseRegistry();\n private readonly topicsPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.messages = new MessagesManager(tracker);\n this.followedTopics = new FollowedTopicsManager(tracker);\n\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoined(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicUpdated', ev => this.handleTopicUpdated(ev));\n this.tracker.client.on('RoomMembersJoined', ev => this.handleRoomMembersJoined(ev));\n this.tracker.client.on('RoomMemberLeft', ev => this.handleRoomMemberLeft(ev));\n this.tracker.client.on('RoomMembers', ev => this.handleRoomMembers(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n /**\n * Get collection of room members.\n */\n public async getMembers(roomId: string): Promise<ObservableIndexedObjectCollection<RoomMember> | undefined> {\n if (this.membersPromises.notExist(roomId)) {\n this.membersPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRoomMembers', {id: roomId});\n if (result.error) {\n throw result.error;\n }\n this.handleRoomMembers(result.data);\n }, roomId);\n }\n\n await this.membersPromises.get(roomId);\n return this.members.get(roomId);\n }\n\n /**\n * Get a room member representing the current user.\n */\n public async getMe(roomId: string): Promise<RoomMember | undefined> {\n const userId = (await this.tracker.getMe()).id;\n\n if (! this.list.has(roomId)) {\n // User is not in passed room.\n return undefined;\n }\n\n const members = await this.getMembers(roomId);\n return members?.items.find(member => (member.user?.id ?? member.spaceMember.user.id) === userId);\n }\n\n /**\n * Get collection of all the rooms you are in.\n */\n public async get(): Promise<ObservableIndexedObjectCollection<Room>> {\n await this.deferredSession.promise;\n return this.list;\n }\n\n /**\n * Get a collection of locally cached Topic objects for given room.\n * You can pass topic ids as second argument, to try to fetch them from the server.\n */\n public async getTopics(roomId: string, tryToFetchTopicIds?: string[]): Promise<ObservableIndexedObjectCollection<Topic> | undefined> {\n await this.deferredSession.promise;\n\n if (tryToFetchTopicIds?.length) {\n // Topic can be fetched if it isn't already cached and fetch is not already in progress\n const canFetch = (topicId: string) => ! this.topics.get(roomId)?.has(topicId) && ! this.topicsPromises.has(roomId + topicId);\n const idsToFetch = tryToFetchTopicIds.filter(canFetch);\n\n if (idsToFetch.length) {\n const promise = this.tracker\n .client\n .send('GetTopics', {roomId, topicIds: idsToFetch})\n .then(result => this.topics.get(result.data.location.roomId)?.set(...result.data.topics));\n\n idsToFetch.forEach(topicId => this.topicsPromises.register(promise, roomId + topicId));\n }\n\n for (const topicId of tryToFetchTopicIds) {\n await this.topicsPromises.get(roomId + topicId);\n }\n }\n\n return this.topics.get(roomId);\n }\n\n /**\n * For internal use. If you want to delete topic, execute a proper command on client object.\n * @internal\n */\n public _deleteTopicsFromRoom(roomId: string, ...topicIds: string[]): void {\n this.topics.get(roomId)?.delete(...topicIds);\n }\n\n private deleteRoom(...roomIds: string[]): void {\n this.list.delete(...roomIds);\n this.members.delete(...roomIds);\n this.membersPromises.forget(...roomIds);\n\n for (const roomId of roomIds) {\n const topicIds: string[] = this.topics.get(roomId)?.items.map(topic => topic.id) ?? [];\n this.followedTopics._deleteByTopicIds(roomId, ...topicIds);\n }\n\n this.topics.delete(...roomIds);\n }\n\n private deleteRoomsBySpaceId(spaceId: string): void {\n this.deleteRoom(\n ...this.list.findBy('spaceId', spaceId).items.map(room => room.id)\n );\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n // Update members of rooms related to this space\n for (const room of this.list.findBy('spaceId', ev.spaceId).items) {\n const roomMembers = this.members.get(room.id);\n\n if (!roomMembers || !roomMembers.has(ev.userId)) {\n // Skip update if member list for this room is not loaded\n // or user is not in room\n continue;\n }\n\n // Update space member in roomMember, but first fill the user object (it's null in event)\n const roomMember = roomMembers.get(ev.userId);\n const spaceMember = ev.member;\n spaceMember.user = roomMember.spaceMember.user;\n roomMembers.set({ ...roomMember, spaceMember });\n }\n }\n\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\n this.list\n .findBy('spaceId', ev.spaceId).items\n .forEach(room => this.members.get(room.id)?.delete(ev.userId));\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (! this.members.has(ev.roomId)) {\n // We do not track member list for this room.\n return;\n }\n\n const members = this.members.get(ev.roomId);\n const member = members.get(ev.userId);\n const newMember = ev.member;\n const user = member.spaceMember?.user ?? member.user;\n\n // Preserving user object, because it's not included in event\n if (newMember.spaceMember) {\n newMember.spaceMember.user = user;\n } else {\n newMember.user = user;\n }\n\n members.set(newMember);\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n this.deleteRoomsBySpaceId(ev.id);\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const collection = this.topics.get(ev.location.roomId);\n collection.delete(ev.location.topicId);\n\n const room = this.list.get(ev.location.roomId);\n if (room.defaultTopic?.id === ev.location.topicId) {\n this.list.set({...room, defaultTopic: null});\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n this.addJoinedRoomTopics(ev.roomId, ev.topic);\n }\n\n private addJoinedRoomTopics(roomId: string, ...topics: Topic[]): void {\n if (this.topics.has(roomId)) {\n this.topics.get(roomId).set(...topics);\n } else {\n this.topics.set([roomId, new ObservableIndexedObjectCollection<Topic>('id', topics)]);\n }\n }\n\n private handleRoomJoined(ev: RoomJoined): void {\n this.addJoinedRooms(ev.room);\n }\n\n private handleRoomUpdated(ev: RoomUpdated): void {\n if (this.list.has(ev.room.id)) {\n this.list.set(ev.room);\n }\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.deleteRoom(ev.id);\n }\n\n private handleTopicUpdated(ev: TopicUpdated): void {\n const room = this.list.get(ev.location.roomId);\n\n if (this.topics.get(ev.location.roomId)?.has(ev.topic.id)) {\n this.topics.get(ev.location.roomId).set(ev.topic);\n }\n\n if (room.defaultTopic.id === ev.topic.id) {\n const newRoom = { ...room };\n newRoom.defaultTopic = ev.topic;\n this.list.set(newRoom);\n }\n }\n\n private addJoinedRooms(...rooms: Room[]): void {\n for (const room of rooms) {\n if (room.defaultTopic) {\n this.addJoinedRoomTopics(room.id, room.defaultTopic);\n }\n\n if (room.type === 'Pm' && room.recipients) {\n // Treat PM recipients as normal room members.\n // We are registering fake promise in `memberPromises`\n // because GetMembers are not supported for PM rooms.\n this.handleRoomMembers({\n id: room.id,\n members: room.recipients.map(user => ({\n user,\n spaceMember: null,\n roles: null,\n customColor: null,\n customNick: null,\n customAvatar: null,\n extras: '',\n })),\n });\n this.membersPromises.register(Promise.resolve(), room.id);\n }\n }\n this.list.set(...rooms);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.deleteRoom(ev.id);\n }\n\n private handleRoomMembersJoined(ev: RoomMembersJoined): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).set(...ev.members);\n }\n }\n\n private handleRoomMemberLeft(ev: RoomMemberLeft): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).delete(ev.userId);\n }\n }\n\n private handleRoomMembers(ev: RoomMembers): void {\n if (! this.members.has(ev.id)) {\n this.members.set([\n ev.id,\n new ObservableIndexedObjectCollection(\n member => member.user?.id ?? member.spaceMember.user.id,\n ev.members,\n )\n ]);\n } else {\n // Reconcile into the existing (bound) collection so a reconnect\n // refetch updates it in place instead of leaving stale members.\n this.members.get(ev.id).reconcile(...ev.members);\n }\n }\n\n private handleSession(ev: Session): void {\n const stateRoomIds = new Set(ev.state.rooms.map(room => room.id));\n\n // Remove only rooms that were left/deleted on the server during the\n // downtime, reusing the cascade cleanup (members, topics, followed\n // topics). Surviving rooms keep their identity and bindings.\n const removedRoomIds = this.list.items\n .filter(room => ! stateRoomIds.has(room.id))\n .map(room => room.id);\n if (removedRoomIds.length) {\n this.deleteRoom(...removedRoomIds);\n }\n\n // Invalidate lazy caches so the next access refetches fresh data, but\n // keep the collection objects: handleRoomMembers reconciles into them,\n // so bound views refresh in place without blanking.\n this.membersPromises.forgetAll();\n this.topicsPromises.forgetAll();\n\n // Upsert surviving/new rooms from the authoritative snapshot.\n this.addJoinedRooms(...ev.state.rooms);\n\n this.deferredSession.resolve();\n }\n\n private handleUserUpdated(ev: UserUpdated): void {\n // Update room members users\n this.members.items.forEach((members) => {\n const member = members.get(ev.user.id);\n\n if (! member) {\n // Skip room; updated user is not here\n return;\n }\n\n const newMember: RoomMember = {...member};\n\n if (member.user) {\n newMember.user = ev.user;\n } else {\n newMember.spaceMember.user = ev.user;\n }\n\n members.set(newMember);\n });\n\n // Update recipients users\n const newRooms: Room[] = [];\n this.list.items.forEach(room => {\n if (room.recipients?.some(user => user.id === ev.user.id)) {\n room.recipients = room.recipients.map(user => user.id === ev.user.id ? ev.user : user);\n newRooms.push({...room});\n }\n });\n this.list.set(...newRooms);\n }\n\n private handleNewMessage(ev: NewMessage): void {\n const topics = this.topics.get(ev.message.location.roomId);\n const topic = topics?.get(ev.message.location.topicId);\n\n if (!topic) {\n return; // No topic found, nothing to update\n }\n\n const newTopic = {\n ...topic,\n messageCount: topic.messageCount + 1,\n lastMessage: ev.message,\n };\n\n topics.set(newTopic);\n const room = this.list.get(ev.message.location.roomId);\n\n if (room.defaultTopic?.id === ev.message.location.topicId) {\n this.list.set({ ...room, defaultTopic: newTopic });\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n // Remove redacted messages from topic and update metadata\n const topics = this.topics.get(ev.location.roomId);\n const topic = topics?.get(ev.location.topicId);\n if (topic) {\n const messageCount = Math.max(topic.messageCount - ev.ids.length, 0);\n const lastMessage: Message = messageCount > 0 ? await this.messages._resolveLastMessage(ev.location) : null;\n topics.set({ ...topic, messageCount, lastMessage } as Topic);\n }\n }\n}","import {Role, RoomMember, SpaceMember, User} from \"../types/src\";\n\nexport function reorderRolesOnPriorityUpdate(allRoles: Role[], oldRole: Role, updatedRole: Role): Role[] {\n // If the priority has changed, adjust the rest of roles\n const increased = (updatedRole.priority - oldRole.priority) > 0;\n const decreased = ! increased;\n const changedRoles: Role[] = [];\n\n allRoles.forEach(role => {\n if (role.id === updatedRole.id) {\n // Skip the updated role\n return;\n }\n if (increased && oldRole.priority <= role.priority) {\n role.priority--;\n changedRoles.push(role);\n }\n if (decreased && updatedRole.priority <= role.priority) {\n role.priority++;\n changedRoles.push(role);\n }\n });\n\n return changedRoles;\n}\n\nexport function extractUserFromMember(member: RoomMember | SpaceMember): User | null {\n return member.user ?? (member as RoomMember).spaceMember?.user;\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n NewRole,\n NewRoom,\n Role,\n RoleDeleted,\n RoleUpdated,\n RoomDeleted,\n RoomSummary,\n RoomSummaryUpdated,\n RoomUpdated,\n Session,\n Space,\n SpaceDeleted,\n SpaceJoined,\n SpaceLeft,\n SpaceMember,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMembers,\n SpaceMemberUpdated,\n SpaceRooms,\n SpaceUpdated,\n UserUpdated\n} from \"../types/src\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {reorderRolesOnPriorityUpdate} from \"./functions\";\n\nexport class SpacesManager {\n private readonly list = new ObservableIndexedObjectCollection<Space>('id');\n private readonly roles = new IndexedCollection<string, ObservableIndexedObjectCollection<Role>>();\n private readonly rooms = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomSummary>>();\n private readonly roomIdToSpaceId = new IndexedCollection<string, string>();\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<SpaceMember>>();\n private readonly deferredSession = new DeferredTask();\n private readonly roomsPromises = new PromiseRegistry();\n private readonly membersPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('NewRoom', ev => this.handleNewRoom(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceUpdated', ev => this.handleSpaceUpdated(ev));\n this.tracker.client.on('SpaceJoined', ev => this.handleSpaceJoined(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceMemberJoined', ev => this.handleSpaceMemberJoined(ev));\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\n this.tracker.client.on('SpaceMembers', ev => this.handleSpaceMembers(ev));\n this.tracker.client.on('SpaceRooms', ev => this.handleSpaceRooms(ev));\n this.tracker.client.on('RoomSummaryUpdated', ev => this.handleRoomSummaryUpdated(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\n this.tracker.client.on('NewRole', ev => this.handleNewRole(ev));\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\n this.tracker.client.on('RoleUpdated', ev => this.handleRoleUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n /**\n * Get collection of all the spaces you are in.\n */\n public async get(): Promise<ObservableIndexedObjectCollection<Space>> {\n await this.deferredSession.promise;\n return this.list;\n }\n\n /**\n * Get collection of space roles.\n */\n public async getRoles(spaceId: string): Promise<ObservableIndexedObjectCollection<Role> | undefined> {\n await this.deferredSession.promise;\n return this.roles.get(spaceId);\n }\n\n /**\n * Get collection of the all available rooms inside given space.\n */\n public async getRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined> {\n if (this.roomsPromises.notExist(spaceId)) {\n this.roomsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetSpaceRooms', {id: spaceId});\n if (result.error) {\n throw result.error;\n }\n this.handleSpaceRooms(result.data);\n }, spaceId);\n }\n\n await this.roomsPromises.get(spaceId);\n return this.rooms.get(spaceId);\n }\n\n /**\n * Drop the cached room listing of the space and fetch it again from the server.\n * Room visibility depends on things this client is not notified about (invitations,\n * permission changes), so the listing needs a way to be pulled anew on demand.\n */\n public async refreshRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined> {\n this.roomsPromises.forget(spaceId);\n return this.getRooms(spaceId);\n }\n\n /**\n * Get collection of space members.\n */\n public async getMembers(spaceId: string): Promise<ObservableIndexedObjectCollection<SpaceMember> | undefined> {\n if (this.membersPromises.notExist(spaceId)) {\n this.membersPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetSpaceMembers', {id: spaceId});\n if (result.error) {\n throw result.error;\n }\n this.handleSpaceMembers(result.data);\n }, spaceId);\n }\n\n await this.membersPromises.get(spaceId);\n return this.members.get(spaceId);\n }\n\n /**\n * Get a space member representing the current user.\n */\n public async getMe(spaceId: string): Promise<SpaceMember | undefined> {\n const userId = (await this.tracker.getMe()).id;\n\n if (! this.list.has(spaceId)) {\n // User is not in passed space.\n return undefined;\n }\n\n const members = await this.getMembers(spaceId);\n return members?.items.find(member => member.user.id === userId);\n }\n\n private handleNewRole(ev: NewRole): void {\n const collection = this.roles.get(ev.spaceId);\n collection.set(ev.role);\n this.list.get(ev.spaceId).roles = collection.items;\n }\n\n private handleNewRoom(ev: NewRoom): void {\n this.rooms.get(ev.spaceId)?.set(ev.summary);\n this.roomIdToSpaceId.set([ev.summary.id, ev.spaceId]);\n }\n\n private handleRoomUpdated(ev: RoomUpdated): void {\n if (ev.room.spaceId && this.rooms.has(ev.room.spaceId)) {\n const rooms = this.rooms.get(ev.room.spaceId);\n rooms.set({\n ...rooms.get(ev.room.id),\n name: ev.room.name,\n description: ev.room.description,\n } as RoomSummary);\n }\n }\n\n private async handleRoomDeleted(ev: RoomDeleted): Promise<void> {\n const spaceId = this.roomIdToSpaceId.get(ev.id);\n this.roomIdToSpaceId.delete(ev.id);\n\n if (! spaceId) {\n return;\n }\n\n const space = this.list.get(spaceId);\n let spaceChanged = false;\n\n this.rooms.get(spaceId)?.delete(ev.id);\n\n if (space.systemRoom === ev.id) {\n space.systemRoom = null;\n spaceChanged = true;\n }\n\n if (space.defaultRooms.includes(ev.id)) {\n space.defaultRooms = space.defaultRooms.filter(roomId => roomId !== ev.id);\n spaceChanged = true;\n }\n\n if (spaceChanged) {\n this.list.set(space);\n }\n }\n\n private handleRoleDeleted(ev: RoleDeleted): void {\n const collection = this.roles.get(ev.spaceId);\n collection.delete(ev.id);\n this.list.get(ev.spaceId).roles = collection.items;\n }\n\n private handleSpaceUpdated(ev: SpaceUpdated): void {\n this.list.set(ev.space);\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n const roomIds = this.rooms.get(ev.id)?.items.map(item => item.id) ?? [];\n this.roomIdToSpaceId.delete(...roomIds);\n\n this.roles.delete(ev.id);\n this.members.delete(ev.id);\n this.membersPromises.forget(ev.id);\n this.rooms.delete(ev.id);\n this.roomsPromises.forget(ev.id);\n this.list.delete(ev.id);\n }\n\n private handleSpaceJoined(ev: SpaceJoined): void {\n this.addJoinedSpaces(ev.space);\n }\n\n private addJoinedSpaces(...spaces: Space[]): void {\n this.roles.set(...(spaces.map(space => [\n space.id,\n new ObservableIndexedObjectCollection<Role>('id', space.roles)\n ]) as [string, ObservableIndexedObjectCollection<Role>][]));\n this.list.set(...spaces);\n }\n\n private handleSpaceMemberJoined(ev: SpaceMemberJoined): void {\n if (this.members.has(ev.spaceId)) {\n this.members.get(ev.spaceId).set(ev.member);\n }\n }\n\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\n if (this.members.has(ev.spaceId)) {\n this.members.get(ev.spaceId).delete(ev.userId);\n }\n }\n\n private handleSpaceMembers(ev: SpaceMembers): void {\n if (! this.members.has(ev.id)) {\n this.members.set([\n ev.id,\n new ObservableIndexedObjectCollection(member => member?.user.id, ev.members)\n ]);\n } else {\n // Reconcile into the existing (bound) collection so a reconnect\n // refetch updates it in place instead of leaving stale members.\n this.members.get(ev.id).reconcile(...ev.members);\n }\n }\n\n private handleSpaceRooms(ev: SpaceRooms): void {\n if (! this.rooms.has(ev.id)) {\n this.rooms.set([ev.id, new ObservableIndexedObjectCollection('id', ev.summaries)]);\n } else {\n this.rooms.get(ev.id).reconcile(...ev.summaries);\n }\n ev.summaries.forEach(summary => this.roomIdToSpaceId.set([summary.id, ev.id]));\n }\n\n private async handleRoomSummaryUpdated(ev: RoomSummaryUpdated): Promise<void> {\n const spaceId = this.roomIdToSpaceId.get(ev.summary.id);\n const summariesPromise = this.roomsPromises.get(spaceId);\n\n /**\n * Update summary only if the list was already loaded.\n * RoomSummaryUpdated event has a partial summary, so we need to update the existing summary by merging it.\n */\n if (spaceId && summariesPromise) {\n await summariesPromise;\n\n const summaries = this.rooms.get(spaceId);\n const oldSummary = summaries.get(ev.summary.id);\n let newSummary: RoomSummary;\n\n if (oldSummary) {\n newSummary = {...oldSummary, ...ev.summary};\n } else {\n newSummary = ev.summary;\n }\n\n summaries.set(newSummary);\n }\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n if (this.members.has(ev.spaceId)) {\n const members = this.members.get(ev.spaceId);\n const member = members.get(ev.userId);\n members.set({...ev.member, user: member.user});\n }\n }\n\n private handleRoleUpdated(ev: RoleUpdated): void {\n const roles = this.roles.get(ev.spaceId);\n const oldRole = roles.get(ev.role.id);\n const newRole = ev.role;\n const rolesToUpdate = [newRole];\n\n if (oldRole.priority !== newRole.priority) {\n rolesToUpdate.push(\n ...reorderRolesOnPriorityUpdate(roles.items, oldRole, newRole)\n );\n }\n\n this.roles.get(ev.spaceId).set(...rolesToUpdate);\n }\n\n private handleSession(ev: Session): void {\n const stateSpaceIds = new Set(ev.state.spaces.map(space => space.id));\n\n // Remove only spaces that were left/deleted on the server during the\n // downtime, reusing the cascade cleanup (roles, rooms, members, index).\n const removedSpaceIds = this.list.items\n .filter(space => ! stateSpaceIds.has(space.id))\n .map(space => space.id);\n for (const spaceId of removedSpaceIds) {\n this.handleSpaceDeleted({ id: spaceId } as SpaceDeleted);\n }\n\n // Invalidate lazy caches (rooms/members) but keep their objects so the\n // next access refetches and reconciles them in place.\n this.roomsPromises.forgetAll();\n this.membersPromises.forgetAll();\n\n // Reconcile roles in place (kept, possibly bound object) and upsert the\n // spaces from the authoritative snapshot.\n for (const space of ev.state.spaces) {\n if (this.roles.has(space.id)) {\n this.roles.get(space.id).reconcile(...space.roles);\n } else {\n this.roles.set([\n space.id,\n new ObservableIndexedObjectCollection<Role>('id', space.roles),\n ]);\n }\n }\n\n this.list.set(...ev.state.spaces);\n\n this.deferredSession.resolve();\n }\n\n private handleUserUpdated(ev: UserUpdated): void {\n this.members.items.forEach((members) => {\n const member = members.get(ev.user.id);\n\n if (! member) {\n // Skip space; updated user is not here\n return;\n }\n\n members.set({...member, user: ev.user});\n });\n }\n}","export enum Layer {\n Global,\n Space,\n Room,\n Topic,\n}\n\nexport class PermissionDefinition {\n value: number;\n maxLayer: Layer;\n}\n\nexport class Permissions {\n public static readonly list = {\n Root: {value: 1 << 0, maxLayer: Layer.Room},\n CreateSpaces: {value: 1 << 1, maxLayer: Layer.Global},\n ManageSpace: {value: 1 << 2, maxLayer: Layer.Space},\n ManageRoles: {value: 1 << 3, maxLayer: Layer.Space},\n //ManageRoom: {value: 1 << 4, maxLayer: Layer.Room},\n CreateTopics: {value: 1 << 5, maxLayer: Layer.Room},\n ManageTopic: {value: 1 << 6, maxLayer: Layer.Topic},\n ManageMemberProfiles: {value: 1 << 7, maxLayer: Layer.Space},\n ManageMemberRoles: {value: 1 << 8, maxLayer: Layer.Room},\n CreateMessages: {value: 1 << 9, maxLayer: Layer.Topic},\n ManagePermissions: {value: 1 << 10, maxLayer: Layer.Topic},\n CreateRooms: {value: 1 << 11, maxLayer: Layer.Space},\n ManageRoom: {value: 1 << 12, maxLayer: Layer.Room},\n CreateEmoticons: {value: 1 << 13, maxLayer: Layer.Space},\n ManageEmoticons: {value: 1 << 14, maxLayer: Layer.Space},\n ManageBans: {value: 1 << 15, maxLayer: Layer.Room},\n Kick: {value: 1 << 16, maxLayer: Layer.Room},\n ChangeOwnProfile: {value: 1 << 17, maxLayer: Layer.Space},\n ChangeOwnColor: {value: 1 << 18, maxLayer: Layer.Room},\n RedactMessages: {value: 1 << 19, maxLayer: Layer.Topic},\n AddMembers: {value: 1 << 20, maxLayer: Layer.Space},\n React: {value: 1 << 21, maxLayer: Layer.Topic},\n CreatePolls: {value: 1 << 22, maxLayer: Layer.Topic},\n MentionAllRoles: {value: 1 << 23, maxLayer: Layer.Topic},\n };\n\n public static getNames(): (keyof typeof this.list)[] {\n return Object.keys(this.list) as any;\n }\n\n public static getByName(name: keyof typeof this.list): PermissionDefinition | undefined {\n return this.list[name];\n }\n\n public static canBeDefinedOnLayer(permissionName: keyof typeof this.list, layer: Layer): boolean {\n const def = this.getByName(permissionName);\n\n if (! def) {\n throw new Error(`Invalid permission name: ${permissionName}`);\n }\n\n return layer <= this.getByName(permissionName).maxLayer;\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n ChatLocation,\n PermissionOverwrites, PermissionOverwritesTarget,\n PermissionOverwritesUpdated,\n PermissionOverwritesValue,\n RoleDeleted,\n RoomDeleted,\n RoomLeft, RoomMember, RoomMemberUpdated, Session,\n SpaceDeleted,\n SpaceLeft, SpaceMember,\n SpaceMemberUpdated,\n TopicDeleted,\n} from \"../types/src\";\nimport {ChangeEventMap, EventTarget} from \"../EventTarget\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {Permissions} from \"../Permissions\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\n\nconst getOvId = (\n location: ChatLocation,\n target?: PermissionOverwritesTarget,\n) => [location.spaceId, location.roomId, location.topicId, target?.type, target?.userId, target?.roleId].filter(Boolean).join('/');\n\nconst getOvIdByObject\n = (overwrites: PermissionOverwrites | PermissionOverwritesUpdated): string => getOvId(overwrites.location, overwrites.target);\n\ninterface CheckPermissionsResult {\n /**\n * @deprecated Use `hasAll` instead.\n */\n ok: boolean;\n hasAll: boolean;\n hasAny: boolean;\n missing: string[];\n}\n\ntype PermissionsManagerEventMap = ChangeEventMap<void>;\n\nexport class PermissionsManager extends EventTarget<PermissionsManagerEventMap> {\n private readonly overwrites = new IndexedCollection<string, PermissionOverwrites>();\n private readonly overwritesPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n this.tracker.client.on('PermissionOverwrites', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('PermissionOverwritesUpdated', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n public async getOverwrites(\n location: ChatLocation,\n target: PermissionOverwritesTarget,\n ): Promise<PermissionOverwrites | undefined> {\n this.validateLocation(location);\n\n const id = getOvId(location, target);\n\n if (this.overwritesPromises.notExist(id)) {\n this.overwritesPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send(\n 'GetPermissionOverwrites',\n {location, target},\n );\n if (result.error) {\n throw result.error;\n }\n this.handlePermissionOverwrites(result.data);\n }, id);\n }\n\n await this.overwritesPromises.get(id);\n return this.overwrites.get(id);\n }\n\n public async check(\n permissionNames: (keyof typeof Permissions.list)[],\n location: ChatLocation,\n ): Promise<CheckPermissionsResult> {\n if (! permissionNames.length) {\n throw new Error('Permission names array cannot be empty');\n }\n\n const ownedPermissions = await this.calculatePermissions(location);\n const missing: string[] = [];\n\n permissionNames.forEach(name => {\n if (~ ownedPermissions & Permissions.getByName(name).value) {\n missing.push(name as string);\n }\n });\n\n return {\n ok: missing.length === 0,\n hasAll: missing.length === 0,\n hasAny: missing.length < permissionNames.length,\n missing,\n };\n }\n\n public async calculatePermissions(location: ChatLocation): Promise<number> {\n const room = location.roomId ? (await this.tracker.rooms.get()).get(location.roomId) : null;\n location = {\n spaceId: location.spaceId ?? room?.spaceId,\n roomId: location.roomId,\n topicId: location.topicId,\n };\n\n this.validateLocation(location);\n\n const userId = (await this.tracker.getMe()).id;\n const [spaceMember, roomMember] = await this.fetchMembersOrFail(location);\n const userRoles: string[] = [...(spaceMember?.roles ?? []), ...(roomMember?.roles ?? [])];\n const promises: Promise<PermissionOverwritesValue>[] = [\n // Global user overwrites\n this.getOverwrites({}, { type: 'User', userId }).then(v => v.overwrites),\n ];\n\n if (location.spaceId && (await this.tracker.spaces.get())?.has(location.spaceId)) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId};\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (room) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId, roomId: location.roomId};\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n }\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (location.topicId && (await this.tracker.rooms.getTopics(location.roomId))?.has(location.topicId)) {\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(location, userRoles));\n }\n promises.push(this.getOverwrites(location, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n return this.resolveOverwritesHierarchy(await Promise.all(promises));\n }\n\n private handlePermissionOverwrites(ev: PermissionOverwritesUpdated | PermissionOverwrites): void {\n this.overwrites.set([getOvIdByObject(ev), ev]);\n this.emit('change');\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.id}));\n this.overwritesPromises.forget(...ids);\n }\n\n private async handleRoomDeleted(ev: RoomDeleted | RoomLeft): Promise<void> {\n const room = (await this.tracker.rooms.get()).get(ev.id);\n if (room) {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: room.spaceId, roomId: room.id}));\n this.overwritesPromises.forget(...ids);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId(ev.location));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleRoleDeleted(ev: RoleDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.spaceId}, { type: 'Role', roleId: ev.id }));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in space could potentially have changed\n this.emit('change');\n }\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in room could potentially have changed\n this.emit('change');\n }\n }\n\n /**\n * @return Matched and deleted ids\n */\n private deleteOverwritesByIdPrefix(prefix: string): string[] {\n const ids: string[] = [];\n this.overwrites.items.forEach((overwrites) => {\n const id = getOvIdByObject(overwrites);\n if (id.startsWith(prefix)) {\n ids.push(id);\n this.overwrites.delete(id);\n }\n });\n return ids;\n }\n\n private async collectRoleOverwrites(\n location: ChatLocation,\n userRoles: string[],\n ): Promise<PermissionOverwritesValue> {\n const roleOverwrites = await Promise.all(userRoles.map(\n roleId => this.getOverwrites(location, { type: 'Role', roleId }),\n ));\n\n return this.resolveOverwritesFromRolesByOrder(location.spaceId, roleOverwrites);\n }\n\n private async resolveOverwritesFromRolesByOrder(\n spaceId: string,\n overwrites: PermissionOverwrites[],\n ): Promise<PermissionOverwritesValue> {\n let allows = 0, denies = 0;\n const roles = await this.tracker.spaces.getRoles(spaceId);\n const sortedOverwrites = overwrites.sort(\n (a, b) =>\n roles.get(a.target.roleId).priority - roles.get(b.target.roleId).priority\n );\n\n // Max length of bit word\n const permissionsLength = overwrites.reduce(\n (previousValue: number, currentValue: PermissionOverwrites) =>\n Math.max(\n previousValue,\n currentValue.overwrites.allow?.toString(2).length ?? 0,\n currentValue.overwrites.deny?.toString(2).length ?? 0,\n ),\n 0,\n );\n\n sortedOverwrites.forEach(overwriteEvent => {\n const overwrites = overwriteEvent.overwrites;\n const revDecDenies = overwrites.deny?.toString(2).split('').reverse().join('') ?? '';\n const revDecAllows = overwrites.allow?.toString(2).split('').reverse().join('') ?? '';\n\n for (let i = 0; i < permissionsLength; i++) {\n const deny = parseInt(revDecDenies[i] ?? '0');\n const allow = parseInt(revDecAllows[i] ?? '0');\n\n if (deny) {\n denies |= 1 << i;\n }\n\n if (allow) {\n allows |= 1 << i;\n }\n }\n });\n\n return {allow: allows, deny: denies};\n }\n\n private resolveOverwritesHierarchy(permissionOverwritesValues: PermissionOverwritesValue[]): number {\n let result = 0;\n\n for (const value of permissionOverwritesValues) {\n if (value.allow & Permissions.getByName('Root').value) {\n return this.getRootAccessValue();\n }\n\n result = (result & ~value.deny) | value.allow;\n }\n\n return result;\n }\n\n private getRootAccessValue(): number {\n let result = 0;\n\n for (const name of Permissions.getNames()) {\n result |= Permissions.getByName(name).value;\n }\n\n return result;\n }\n\n private async fetchMembersOrFail(location: ChatLocation): Promise<[SpaceMember | null, RoomMember | null]> {\n const results = await Promise.all([\n location.spaceId ? this.tracker.spaces.getMe(location.spaceId) : null,\n location.roomId ? this.tracker.rooms.getMe(location.roomId) : null,\n ]);\n\n const spaceFail = location.spaceId && ! results[0];\n const roomFail = location.roomId && ! results[1];\n\n if (spaceFail || roomFail) {\n const layer = spaceFail ? `space (${location.spaceId})` : `room (${location.roomId})`;\n throw new Error(`Attempting to calculate permissions for a ${layer} that the user does not belong to`);\n }\n\n return results;\n }\n\n private validateLocation(location: ChatLocation): void {\n if (location.topicId && ! location.roomId) {\n throw new Error('Corrupted arguments hierarchy');\n }\n }\n\n private handleSession(ev: Session): void {\n // Drop the fetch guards so permission checks recompute against fresh\n // overwrites (getOverwrites refetches and upserts on the next access),\n // and notify consumers to recompute so bound permission UI is never\n // left showing stale results after a reconnect.\n this.overwritesPromises.forgetAll();\n this.emit('change');\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n IndexedCollection,\n ObservableIndexedObjectCollection\n} from \"../IndexedObjectCollection\";\nimport {Emoticon, EmoticonDeleted, Emoticons, NewEmoticon, SpaceDeleted} from \"../types/src\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\n\nconst GLOBAL_KEY = 'global';\n\nexport class EmoticonsManager {\n private list: IndexedCollection<string, ObservableIndexedObjectCollection<Emoticon>> = new IndexedCollection();\n private emoticonsPromises = new PromiseRegistry();\n \n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Emoticons', ev => this.handleEmoticons(ev));\n this.tracker.client.on('NewEmoticon', ev => this.handleNewEmoticon(ev));\n this.tracker.client.on('EmoticonDeleted', ev => this.handleEmoticonDeleted(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('Session', () => this.handleSession());\n }\n\n public async get(spaceId?: string): Promise<ObservableIndexedObjectCollection<Emoticon>> {\n const key = spaceId ?? GLOBAL_KEY;\n\n if (this.emoticonsPromises.notExist(key)) {\n this.emoticonsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetEmoticons', {spaceId});\n if (result.error) {\n throw result.error;\n }\n this.handleEmoticons(result.data);\n }, key);\n }\n\n await this.emoticonsPromises.get(key);\n return this.list.get(key);\n }\n\n private handleEmoticons(event: Emoticons): void {\n const spaceId = event.location.spaceId ?? GLOBAL_KEY;\n\n if (!this.list.has(spaceId)) {\n this.list.set([spaceId, new ObservableIndexedObjectCollection<Emoticon>('id')]);\n }\n\n // handleEmoticons always carries the full list for a location, so\n // reconcile in place: a reconnect refetch drops removed emoticons and\n // adds new ones without blanking a bound (visible) collection.\n this.list.get(spaceId).reconcile(...event.emoticons);\n }\n\n private handleNewEmoticon(ev: NewEmoticon): void {\n const collection = this.list.get(ev.emoticon.spaceId ?? GLOBAL_KEY);\n collection?.set(ev.emoticon);\n }\n\n private handleEmoticonDeleted(ev: EmoticonDeleted): void {\n const collection = this.list.get(ev.spaceId ?? GLOBAL_KEY);\n collection?.delete(ev.emoticonId);\n }\n\n private handleSpaceDeleted(event: SpaceDeleted): void {\n this.list.delete(event.id);\n }\n\n private handleSession(): void {\n // Keep cached emoticon collections (they may be bound to visible\n // pickers); just drop the fetch guards so the next access refetches and\n // reconciles them in place.\n this.emoticonsPromises.forgetAll();\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {RoomMember, Session, SpaceMember, User} from \"../types/src\";\nimport {extractUserFromMember} from \"./functions\";\nimport {EventTarget} from \"../EventTarget\";\n\nexport class UsersManager {\n public readonly onlineStatus = new EventTarget<{ change: User }>();\n\n private readonly users: ObservableIndexedObjectCollection<User> = new ObservableIndexedObjectCollection('id');\n\n public constructor(private tracker: ChatStateTracker) {\n // RoomMemberUpdated & SpaceMemberUpdated events are not contains user object\n tracker.client.on('UserUpdated', event => this.handleUsers([event.user]));\n tracker.client.on('RoomMembersJoined', event => this.handleMembers(event.members));\n tracker.client.on('SpaceMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMembers', event => this.handleMembers(event.members));\n tracker.client.on('RoomMembers', event => this.handleMembers(event.members));\n tracker.client.on('Messages', event => this.handleUsers(event.messages.map(message => message.author.user)));\n tracker.client.on('NewMessage', event => this.handleUsers([event.message.author.user]));\n tracker.client.on('Session', event => this.handleSession(event));\n }\n\n /**\n * Get all available (cached) user objects at once.\n */\n public async getAvailable(): Promise<ObservableIndexedObjectCollection<User>> {\n return this.users;\n }\n\n private handleMembers(members: (RoomMember | SpaceMember)[]): void {\n this.handleUsers(members.map(extractUserFromMember));\n }\n\n private handleSession(session: Session): void {\n // Keep the \"seen users\" cache across reconnects so bound user lists do\n // not blank out; just ensure our own user is present/updated. Stale\n // entries are refreshed as member/message collections refetch.\n this.handleUsers([session.user]);\n }\n\n private handleUsers(users: User[]): void {\n users.forEach(newUser => {\n const oldUser = this.users.get(newUser.id);\n if (oldUser && oldUser.status !== newUser.status) {\n this.onlineStatus.emit('change', newUser);\n }\n });\n\n this.users.set(...users);\n }\n}","import {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n NewRelationship,\n RelationshipDeleted,\n Relationships,\n UserRelationship,\n UserRelationshipType\n} from \"../types/src\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\n\nconst getId = (refUserId: string, type: UserRelationshipType): string => `${refUserId}-${type}`;\nconst getIdFromRelationship = (relationship: UserRelationship): string => getId(relationship.refUser.id, relationship.type);\n\nexport class RelationshipsManager {\n private relationships: ObservableIndexedObjectCollection<UserRelationship> = new ObservableIndexedObjectCollection<UserRelationship>(getIdFromRelationship);\n private promises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Relationships', ev => this.handleRelationships(ev));\n this.tracker.client.on('NewRelationship', ev => this.handleNewRelationship(ev));\n this.tracker.client.on('RelationshipDeleted', ev => this.handleRelationshipDeleted(ev));\n this.tracker.client.on('Session', () => this.handleSession());\n }\n\n public async get(): Promise<ObservableIndexedObjectCollection<UserRelationship>> {\n if (this.promises.notExist('all')) {\n this.promises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRelationships', {});\n if (result.error) {\n throw result.error;\n }\n }, 'all');\n }\n\n await this.promises.get('all');\n return this.relationships;\n }\n\n public async exists(refUserId: string, type: UserRelationshipType): Promise<boolean> {\n await this.get();\n return this.relationships.has(getId(refUserId, type));\n }\n\n private handleRelationships(ev: Relationships): void {\n // Full list from the server: reconcile in place so a reconnect refetch\n // updates a bound (visible) list without an intermediate empty state.\n this.relationships.reconcile(...ev.relationships);\n }\n\n private handleNewRelationship(ev: NewRelationship): void {\n if (this.promises.has('all')) {\n this.relationships.set(ev.relationship);\n }\n }\n\n private handleRelationshipDeleted(ev: RelationshipDeleted): void {\n if (this.promises.has('all')) {\n this.relationships.delete(getIdFromRelationship(ev.relationship));\n }\n }\n\n private handleSession(): void {\n // Keep the (possibly bound) collection; just drop the fetch guard so the\n // next get() refetches and reconciles it in place.\n this.promises.forgetAll();\n }\n}","import {WebSocketChatClient} from \"../WebSocketChatClient\";\nimport {Session, User} from \"../types/src\";\nimport {RoomsManager} from \"./RoomsManager\";\nimport {SpacesManager} from \"./SpacesManager\";\nimport {PermissionsManager} from \"./PermissionsManager\";\nimport {DeferredTask} from \"./AsyncUtils\";\nimport {EmoticonsManager} from \"./EmoticonsManager\";\nimport {UsersManager} from \"./UsersManager\";\nimport {RelationshipsManager} from \"./RelationshipsManager\";\n\nexport class ChatStateTracker {\n public readonly client: WebSocketChatClient;\n\n /**\n * State of your permissions.\n */\n public readonly permissions: PermissionsManager;\n\n /**\n * State of the rooms you are in.\n */\n public readonly rooms: RoomsManager;\n\n /**\n * State of the spaces you are in.\n */\n public readonly spaces: SpacesManager;\n\n /**\n * State of the emoticons (global and space-related).\n */\n public readonly emoticons: EmoticonsManager;\n\n /**\n * Users related state.\n */\n public readonly users: UsersManager;\n\n /**\n * State of relationships with other users.\n */\n public readonly relationships: RelationshipsManager;\n\n private _me: User = null;\n private readonly deferredSession = new DeferredTask();\n\n public constructor(client: WebSocketChatClient) {\n this.client = client;\n this.client.on('Session', ev => this.handleSession(ev));\n\n this.permissions = new PermissionsManager(this);\n this.rooms = new RoomsManager(this);\n this.spaces = new SpacesManager(this);\n this.emoticons = new EmoticonsManager(this);\n this.users = new UsersManager(this);\n this.relationships = new RelationshipsManager(this);\n }\n\n public get me(): User | null {\n return this._me;\n }\n\n public async getMe(): Promise<User> {\n await this.deferredSession.promise;\n return this._me;\n }\n\n private handleSession(ev: Session): void {\n this._me = ev.user;\n this.deferredSession.resolve();\n }\n}","import {ObservableInterface} from \"./EventTarget\";\nimport {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ChatStateTracker} from \"./state-tracker/ChatStateTracker\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebSocketClientOptions {\n url: string;\n token: string;\n connectingTimeoutMs?: number;\n awaitQueueSendDelayMs?: number;\n stateTracking?: boolean;\n queryParams?: Record<string, string>;\n /**\n * Ping/pong configuration, enabled by default.\n */\n ping?: {\n enabled?: boolean;\n /**\n * Time without activity after which a ping will be sent. Default is 10 seconds.\n */\n noActivityTimeoutMs?: number;\n /**\n * Time to wait for a pong response before considering the connection dead. Default is 2 seconds.\n */\n pongBackTimeoutMs?: number;\n },\n}\n\nenum WebSocketChatClientEvent {\n connect = 'connect',\n disconnect = 'disconnect',\n message = 'message',\n error = 'error',\n}\n\ntype WebSocketEventMap = EventsMap & {\n [WebSocketChatClientEvent.connect]: void;\n [WebSocketChatClientEvent.disconnect]: boolean;\n [WebSocketChatClientEvent.message]: Envelope;\n [WebSocketChatClientEvent.error]: Error;\n};\n\nexport class WebSocketChatClient extends AbstractChatClient<Pick<WebSocketEventMap, keyof WebSocketEventMap>> implements ObservableInterface {\n public readonly Event = WebSocketChatClientEvent;\n public readonly state?: ChatStateTracker;\n\n protected ws: WebSocket|null = null;\n protected sendQueue: Envelope[] = [];\n protected connectingTimeoutId: any;\n protected authenticated: boolean;\n protected authenticatedResolvers: [() => void, (error: Error) => void] | null = null;\n protected connectPromise: Promise<void> | null = null;\n protected pingMonitorInterval?: NodeJS.Timeout;\n protected inFlightPingTimeout: NodeJS.Timeout;\n protected lastReceivedMessageAt?: number;\n\n public constructor(private readonly options: WebSocketClientOptions) {\n super();\n if (this.options.stateTracking ?? true) {\n this.state = new ChatStateTracker(this);\n }\n\n options.ping ??= {};\n options.ping.enabled ??= true;\n options.ping.noActivityTimeoutMs ??= 15000;\n options.ping.pongBackTimeoutMs ??= 5000;\n }\n\n public async connect(): Promise<void> {\n if (this.isOpenWsState() || this.isConnectingWsState()) {\n return this.connectPromise ?? undefined;\n }\n\n // Reuse the promise of an attempt that has not settled yet (an\n // automatic reconnect), so the caller that started connecting is\n // resolved by whichever attempt eventually authenticates.\n this.connectPromise ??= new Promise<void>((...args) => this.authenticatedResolvers = args);\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n params.set('token', this.options.token);\n\n this.ws = new WebSocket(`${this.options.url}?${params}`);\n this.ws.onclose = ev => this.onClose(ev);\n this.ws.onmessage = ev => this.onMessage(ev);\n this.connectingTimeoutId = setTimeout(\n () => this.triggerConnectionTimeout(),\n this.options.connectingTimeoutMs ?? 10000\n );\n this.authenticated = false;\n\n return this.connectPromise;\n }\n\n public disconnect(): void {\n this.failPendingCommands(new Error('Client disconnected before the command was answered'));\n this.ws?.close(1000); // Normal closure\n this.ws = null;\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope<CommandRequest<CommandType>>(commandType, commandData);\n const promise = this.createPromiseFromCommandEnvelope<CommandType>(envelope);\n\n if (this.isConnectingWsState() || !this.authenticated && this.isOpenWsState()) {\n this.sendQueue.push(envelope);\n return promise;\n }\n\n this.sendEnvelope(envelope);\n return promise;\n }\n\n public get isReady(): boolean {\n return this.isOpenWsState() && this.authenticated;\n }\n\n private sendEnvelope(envelope: Envelope): void {\n if (this.isReady) {\n this.ws.send(JSON.stringify(envelope));\n return;\n }\n\n this.handleEnvelopeSendError(\n envelope,\n new Error(`Cannot send - client is not ready (state=${this.ws?.readyState ?? '[no connection]'}; authenticated=${this.authenticated})`)\n );\n }\n\n private onMessage(event: MessageEvent): void {\n this.lastReceivedMessageAt = Date.now();\n const envelope: Envelope = JSON.parse(event.data);\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n\n // Login successfully\n if (!this.authenticated) {\n const isAuthenticated = envelope.type !== 'Bye';\n this.authenticated = isAuthenticated;\n if (isAuthenticated) {\n this.startConnectionMonitor();\n this.settleConnect();\n this.emit(this.Event.connect);\n this.sendFromQueue();\n } else {\n this.settleConnect(envelope.data);\n }\n }\n }\n\n private onClose(event: CloseEvent): void {\n this.stopConnectionMonitor();\n clearTimeout(this.connectingTimeoutId);\n const reconnect = event.code !== 1000; // Connection was closed because of error\n\n // The server can no longer answer anything that was queued or in\n // flight, so settle those promises instead of leaving them pending.\n this.failPendingCommands(new Error('Connection closed before the command was answered'));\n\n if (reconnect) {\n // Keep a pending connect() promise unsettled - the retry below is\n // expected to authenticate and will resolve it.\n void this.connect();\n } else {\n this.settleConnect(new Error('Connection closed before authentication'));\n }\n\n this.emit(this.Event.disconnect, reconnect);\n }\n\n /**\n * Resolve (or reject, when an error is given) a pending connect() promise.\n * No-op when there is nothing pending.\n */\n private settleConnect(error?: any): void {\n const resolvers = this.authenticatedResolvers;\n\n this.authenticatedResolvers = null;\n this.connectPromise = null;\n\n if (! resolvers) {\n return;\n }\n\n error ? resolvers[1](error) : resolvers[0]();\n }\n\n /**\n * Reject every command that has not been answered yet - both the ones still\n * waiting in the send queue and the ones already sent to the server.\n */\n private failPendingCommands(error: Error): void {\n const queued = this.sendQueue;\n this.sendQueue = [];\n\n for (const envelope of queued) {\n this.handleEnvelopeSendError(envelope, error);\n }\n\n this.failAwaitingResponses(error);\n }\n\n private sendFromQueue(): void {\n // Send awaiting data to server\n let lastDelay = 0;\n for (const dataIndex in this.sendQueue) {\n const envelope = this.sendQueue[dataIndex];\n setTimeout(() => this.sendEnvelope(envelope), lastDelay);\n lastDelay += this.options.awaitQueueSendDelayMs ?? 500;\n }\n this.sendQueue = [];\n clearTimeout(this.connectingTimeoutId);\n }\n\n private triggerConnectionTimeout(): void {\n this.disconnect();\n this.emit(this.Event.error, new Error('Connection timeout'));\n }\n\n private isConnectingWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.CONNECTING;\n }\n\n private isOpenWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.OPEN;\n }\n\n private startConnectionMonitor(): void {\n if (!this.options.ping!.enabled) {\n return;\n }\n\n this.lastReceivedMessageAt = Date.now();\n\n this.pingMonitorInterval = setInterval(async () => {\n if (!this.isReady || this.inFlightPingTimeout) {\n return;\n }\n\n if ((Date.now() - this.lastReceivedMessageAt) < this.options.ping!.noActivityTimeoutMs) {\n return;\n }\n\n this.inFlightPingTimeout = setTimeout(() => {\n this.inFlightPingTimeout = undefined;\n this.ws.close(3000); // Service Restart (reconnect)\n }, this.options.ping.pongBackTimeoutMs);\n\n // A rejection here means the connection dropped while the ping was\n // in flight; onClose already handles that, so just stop waiting.\n this.send('Ping', {}).catch(() => undefined).then(() => {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n });\n }, 1000);\n }\n\n private stopConnectionMonitor(): void {\n if (this.inFlightPingTimeout) {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n }\n if (this.pingMonitorInterval) {\n clearInterval(this.pingMonitorInterval);\n this.pingMonitorInterval = undefined;\n }\n }\n}","import {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ObservableInterface} from \"./EventTarget\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebApiChatClientOptions {\n url: string;\n token: string;\n attemptsToSend?: number;\n attemptDelayMs?: number;\n queryParams?: Record<string, string>;\n}\n\nenum WebApiChatClientEvent {\n message = 'message',\n error = 'error',\n destroy = 'destroy',\n}\n\ntype WebApiEventMap = EventsMap & {\n [WebApiChatClientEvent.message]: Envelope;\n [WebApiChatClientEvent.error]: Error;\n [WebApiChatClientEvent.destroy]: boolean;\n};\n\ninterface SendStackItem {\n data: Envelope;\n attempts: number;\n lastTimeoutId: any;\n}\n\nexport class WebApiChatClient extends AbstractChatClient<Pick<WebApiEventMap, keyof WebApiEventMap>> implements ObservableInterface {\n public readonly Event = WebApiChatClientEvent;\n\n protected sendStack: SendStackItem[] = [];\n\n public constructor(private readonly options: WebApiChatClientOptions) {\n super();\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope(commandType, commandData);\n const item: SendStackItem = {data: envelope, attempts: 0, lastTimeoutId: null};\n this.sendStack.push(item);\n this.makeApiCall(item);\n return this.createPromiseFromCommandEnvelope(envelope);\n }\n\n public destroy(): void {\n // Cancel all awaiting requests, rejecting their promises so no caller\n // is left awaiting forever\n const pending = this.sendStack;\n this.sendStack = [];\n pending.forEach(item => {\n if (item.lastTimeoutId) {\n clearTimeout(item.lastTimeoutId);\n }\n this.handleEnvelopeSendError(item.data, new Error('Client destroyed'));\n });\n this.emit(this.Event.destroy, false);\n }\n\n protected async onMessage(item: SendStackItem, response: Response): Promise<void> {\n let envelope: Envelope;\n try {\n envelope = await response.json();\n } catch (e) {\n // Non-envelope response (e.g. a proxy error page) - failed attempt\n this.onError(item, `envelope ${item.data.ref} (HTTP ${response.status}, unparsable body)`);\n return;\n }\n\n if (!this.removeFromStack(item)) {\n return; // Destroyed in the meantime - the promise is already rejected\n }\n\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n }\n\n protected onError(item: SendStackItem, body: string): void {\n if (!this.sendStack.includes(item)) {\n return; // Destroyed in the meantime\n }\n\n if (item.attempts >= (this.options.attemptsToSend ?? 10)) {\n this.removeFromStack(item);\n this.handleEnvelopeSendError(item.data, new Error(\n `Cannot send ${body}; aborting after reaching the maximum connection errors`\n ));\n return;\n }\n\n item.lastTimeoutId = setTimeout(\n () => this.makeApiCall(item),\n this.options.attemptDelayMs ?? 3000\n );\n }\n\n protected makeApiCall(item: SendStackItem): void {\n if (!this.sendStack.includes(item)) {\n return; // Destroyed before this (re)try fired\n }\n\n item.attempts++;\n item.lastTimeoutId = null;\n const bodyJson = JSON.stringify(item.data);\n const headers: any = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n };\n\n headers.Authorization = `Bearer ${this.options.token}`;\n\n const query = new URLSearchParams(this.options.queryParams ?? {}).toString();\n const url = query ? `${this.options.url}?${query}` : this.options.url;\n\n fetch(url, {\n headers,\n body: bodyJson,\n method: 'POST',\n })\n .then(response => this.onMessage(item, response))\n .catch(() => this.onError(item, bodyJson));\n }\n\n private removeFromStack(item: SendStackItem): boolean {\n const index = this.sendStack.indexOf(item);\n if (index === -1) {\n return false;\n }\n this.sendStack.splice(index, 1);\n return true;\n }\n}","export interface RestClientOptions {\n url?: string;\n token: string;\n}\n\nexport interface RestClientResponse<T> {\n ok: boolean;\n status: number;\n data: T;\n}\n\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport abstract class AbstractRestClient {\n protected abstract defaultUrl: string;\n\n public constructor(\n private readonly options: RestClientOptions,\n ) {}\n\n protected async send<ResponseT = any>(\n method: HttpMethod,\n uri: string,\n data: any = undefined,\n additionalHeaders: Record<string, string> = {},\n ): Promise<RestClientResponse<ResponseT>> {\n let url = this.getUrl(uri);\n let body = undefined;\n\n if (data) {\n if (['GET', 'DELETE'].includes(method)) {\n url += '?' + new URLSearchParams(data).toString()\n } else {\n body = JSON.stringify(data);\n }\n }\n\n const headers = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...additionalHeaders,\n ...this.getAuthHeaders(),\n };\n\n const result = await fetch(url, {method, body, headers});\n\n return this.convertFetchResponse(result);\n }\n\n protected getAuthHeaders(): any {\n const headers = {} as any;\n\n if (this.options.token) {\n headers.Authorization = `Bearer ${this.options.token}`;\n }\n\n return headers;\n }\n\n protected getUrl(uri: string): string {\n return this.removeEndingSlash(this.options.url ?? this.defaultUrl) + '/' + this.removeStartingSlash(uri);\n }\n\n protected async convertFetchResponse<T>(result: Response): Promise<RestClientResponse<T>> {\n return {\n ok: result.ok,\n status: result.status,\n data: result.headers.get('content-type')?.includes('json') ? await result.json() : await result.text(),\n };\n }\n\n private removeStartingSlash(text: string): string {\n return text.replace(/^\\/+/, '');\n }\n\n private removeEndingSlash(text: string): string {\n return text.replace(/\\/+$/, '');\n }\n}","import {AbstractRestClient, RestClientResponse} from \"./AbstractRestClient\";\n\nexport interface File {\n id: string;\n url: string;\n name: string;\n mime: string;\n size: number;\n width?: number;\n height?: number;\n}\n\nexport class FilesClient extends AbstractRestClient {\n protected defaultUrl: string = 'https://files.devana.pl';\n\n public async uploadFile(file: globalThis.File | Blob): Promise<RestClientResponse<File>> {\n const name = encodeURIComponent((file as globalThis.File).name ?? '');\n let headers = {\n ...this.getAuthHeaders(),\n Accept: 'application/json',\n 'Content-Disposition': `attachment; filename=\"${name}\"`,\n 'Content-Length': file.size\n };\n\n const response = await fetch(this.getUrl('files'), {\n method: 'POST',\n body: file,\n headers\n });\n\n return this.convertFetchResponse<File>(response);\n }\n\n public async getFileMeta(id: string): Promise<RestClientResponse<File>> {\n return this.send('GET', 'files/' + id);\n }\n\n public async getFileMetaBulk(ids: string[]): Promise<RestClientResponse<File[]>> {\n const searchParams = new URLSearchParams();\n ids.forEach(id => searchParams.append('id[]', id));\n return this.send('GET', 'files?' + searchParams);\n }\n}","/**\n * Bit flags of a role, stored in {@link Role.flags}.\n *\n * - `SeparateOnMembersList` - available holders of the role are listed in their\n * own group of the members list, headed by the role name.\n * - `MentionableByEveryone` - anybody may mention the role with notification\n * effects; without it the mention is decorative only, unless the author holds\n * the `MentionAllRoles` permission.\n */\nexport enum RoleFlag {\n SeparateOnMembersList = 1 << 0,\n MentionableByEveryone = 1 << 1,\n}\n\nexport interface Role {\n id: string;\n priority: number;\n name: string;\n color?: string;\n flags: number;\n}\n","export type UserTags = 'bot' | 'temp' | string;\n\n/**\n * Availability of a user, aggregated over all of their sessions.\n *\n * - `Offline` - no session is connected and none can be reached asynchronously.\n * - `Online` - at least one session holds a live connection.\n * - `OnlineAsync` - no live connection, but a push-registered device was active\n * recently, so a message will still reach the user.\n */\nexport enum UserStatus {\n Offline = 0,\n Online = 1,\n OnlineAsync = 2,\n}\n\nexport interface User {\n id: string;\n nick: string;\n avatar: string;\n tags: UserTags[];\n status: UserStatus;\n /** @deprecated Use {@link status}. Kept for clients older than the numeric status. */\n online: boolean;\n}\n","import {Envelope} from \"./schemes/Envelope\";\nimport {Message, MessageType, MessageAuthor, MessageMentions} from \"./schemes/Message\";\nimport {PermissionOverwritesValue} from \"./schemes/PermissionOverwritesValue\";\nimport {Role, RoleFlag} from \"./schemes/Role\";\nimport {Room, RoomType} from \"./schemes/Room\";\nimport {RoomMember} from \"./schemes/RoomMember\";\nimport {RoomSummary, RoomSummaryExtras} from \"./schemes/RoomSummary\";\nimport {Space, SpaceDiscoverable} from \"./schemes/Space\";\nimport {SpaceMember} from \"./schemes/SpaceMember\";\nimport {Topic} from \"./schemes/Topic\";\nimport {User, UserStatus} from \"./schemes/User\";\nimport {UserState} from \"./schemes/UserState\";\nimport {Bye} from \"./schemes/events/Bye\";\nimport {Error} from \"./schemes/events/Error\";\nimport {Session} from \"./schemes/events/Session\";\nimport {ComputedPermissions} from \"./schemes/events/ComputedPermissions\";\nimport {SpaceJoined} from \"./schemes/events/SpaceJoined\";\nimport {SpaceLeft} from \"./schemes/events/SpaceLeft\";\nimport {SpaceMemberJoined} from \"./schemes/events/SpaceMemberJoined\";\nimport {SpaceMemberLeft} from \"./schemes/events/SpaceMemberLeft\";\nimport {SpaceMemberUpdated} from \"./schemes/events/SpaceMemberUpdated\";\nimport {SpaceDeleted} from \"./schemes/events/SpaceDeleted\";\nimport {SpaceMembers} from \"./schemes/events/SpaceMembers\";\nimport {SpaceRooms} from \"./schemes/events/SpaceRooms\";\nimport {NewRole} from \"./schemes/events/NewRole\";\nimport {RoleDeleted} from \"./schemes/events/RoleDeleted\";\nimport {RoomJoined} from \"./schemes/events/RoomJoined\";\nimport {RoomLeft} from \"./schemes/events/RoomLeft\";\nimport {RoomMembersJoined} from \"./schemes/events/RoomMembersJoined\";\nimport {RoomMemberLeft} from \"./schemes/events/RoomMemberLeft\";\nimport {RoomMembers} from \"./schemes/events/RoomMembers\";\nimport {RoomMemberUpdated} from \"./schemes/events/RoomMemberUpdated\";\nimport {NewRoom} from \"./schemes/events/NewRoom\";\nimport {RoomDeleted} from \"./schemes/events/RoomDeleted\";\nimport {NewTopic} from \"./schemes/events/NewTopic\";\nimport {TopicDeleted} from \"./schemes/events/TopicDeleted\";\nimport {NewMessage} from \"./schemes/events/NewMessage\";\nimport {PermissionOverwritesUpdated} from \"./schemes/events/PermissionOverwritesUpdated\";\nimport {PermissionOverwrites} from \"./schemes/events/PermissionOverwrites\";\nimport {GetSession} from \"./schemes/commands/GetSession\";\nimport {GetComputedPermissions} from \"./schemes/commands/GetComputedPermissions\";\nimport {JoinSpace} from \"./schemes/commands/JoinSpace\";\nimport {LeaveSpace} from \"./schemes/commands/LeaveSpace\";\nimport {CreateSpace} from \"./schemes/commands/CreateSpace\";\nimport {DeleteSpace} from \"./schemes/commands/DeleteSpace\";\nimport {GetSpaceMembers} from \"./schemes/commands/GetSpaceMembers\";\nimport {GetSpaceRooms} from \"./schemes/commands/GetSpaceRooms\";\nimport {CreateRole} from \"./schemes/commands/CreateRole\";\nimport {DeleteRole} from \"./schemes/commands/DeleteRole\";\nimport {RoleUpdated} from \"./schemes/events/RoleUpdated\";\nimport {AssignRole} from \"./schemes/commands/AssignRole\";\nimport {DeassignRole} from \"./schemes/commands/DeassignRole\";\nimport {SetPermissionOverwrites} from \"./schemes/commands/SetPermissionOverwrites\";\nimport {GetPermissionOverwrites} from \"./schemes/commands/GetPermissionOverwrites\";\nimport {JoinRoom} from \"./schemes/commands/JoinRoom\";\nimport {LeaveRoom} from \"./schemes/commands/LeaveRoom\";\nimport {CreateRoom} from \"./schemes/commands/CreateRoom\";\nimport {DeleteRoom} from \"./schemes/commands/DeleteRoom\";\nimport {GetRoomMembers} from \"./schemes/commands/GetRoomMembers\";\nimport {CreateTopic, CreateTopicInitialMessage} from \"./schemes/commands/CreateTopic\";\nimport {DeleteTopic} from \"./schemes/commands/DeleteTopic\";\nimport {CreateMessage} from \"./schemes/commands/CreateMessage\";\nimport {UpdateRole} from \"./schemes/commands/UpdateRole\";\nimport {Ack} from \"./schemes/commands/Ack\";\nimport {UserUpdated} from \"./schemes/events/UserUpdated\";\nimport {UpdateRoom} from \"./schemes/commands/UpdateRoom\";\nimport {UpdateSpace} from \"./schemes/commands/UpdateSpace\";\nimport {RoomUpdated} from \"./schemes/events/RoomUpdated\";\nimport {SpaceUpdated} from \"./schemes/events/SpaceUpdated\";\nimport {ChatLocation} from \"./schemes/ChatLocation\";\nimport {GetPermissionOverwriteTargets} from \"./schemes/commands/GetPermissionOverwriteTargets\";\nimport {PermissionOverwriteTargets} from \"./schemes/events/PermissionOverwriteTargets\";\nimport { CreateOwner } from \"./schemes/commands/CreateOwner\";\nimport { DeleteOwner } from \"./schemes/commands/DeleteOwner\";\nimport { GetOwners } from \"./schemes/commands/GetOwners\";\nimport { Owners } from \"./schemes/events/Owners\";\nimport { Ok } from \"./schemes/events/Ok\";\nimport {FollowTopic} from \"./schemes/commands/FollowTopic\";\nimport {FollowedTopics} from \"./schemes/events/FollowedTopics\";\nimport {FollowedTopic, NotificationLevel} from \"./schemes/FollowedTopic\";\nimport {UpdateFollowedTopic} from \"./schemes/commands/UpdateFollowedTopic\";\nimport {TopicFollowed} from \"./schemes/events/TopicFollowed\";\nimport {GetFollowedTopics} from \"./schemes/commands/GetFollowedTopics\";\nimport {FollowedTopicUpdated} from \"./schemes/events/FollowedTopicUpdated\";\nimport {GetMessages} from \"./schemes/commands/GetMessages\";\nimport {Messages} from \"./schemes/events/Messages\";\nimport {Topics} from \"./schemes/events/Topics\";\nimport {GetTopics} from \"./schemes/commands/GetTopics\";\nimport {UpdateTopic} from \"./schemes/commands/UpdateTopic\";\nimport {TopicUpdated} from \"./schemes/events/TopicUpdated\";\nimport {GetDiscoverableSpaces} from \"./schemes/commands/GetDiscoverableSpaces\";\nimport {DiscoverableSpaces} from \"./schemes/events/DiscoverableSpaces\";\nimport {SpaceSummary} from \"./schemes/SpaceSummary\";\nimport {Emoticon} from \"./schemes/Emoticon\";\nimport {Emoticons} from \"./schemes/events/Emoticons\";\nimport {GetEmoticons} from \"./schemes/commands/GetEmoticons\";\nimport {CreateEmoticon} from \"./schemes/commands/CreateEmoticon\";\nimport {DeleteEmoticon} from \"./schemes/commands/DeleteEmoticon\";\nimport {NewEmoticon} from \"./schemes/events/NewEmoticon\";\nimport {EmoticonDeleted} from \"./schemes/events/EmoticonDeleted\";\nimport {PermissionOverwritesTarget} from \"./schemes/PermissionOverwritesTarget\";\nimport {Ban} from \"./schemes/commands/Ban\";\nimport {Unban} from \"./schemes/commands/Unban\";\nimport {GetBans} from \"./schemes/commands/GetBans\";\nimport {BanObject} from \"./schemes/BanObject\";\nimport {Bans} from \"./schemes/events/Bans\";\nimport {Kick} from \"./schemes/commands/Kick\";\nimport {LeaveReason} from \"./schemes/LeaveReason\";\nimport {GetClientData} from \"./schemes/commands/GetClientData\";\nimport {SetClientData} from \"./schemes/commands/SetClientData\";\nimport {ClientData} from \"./schemes/events/ClientData\";\nimport {RoomStream, RoomStreamType} from \"./schemes/RoomStream\";\nimport {RoomHistory, RoomHistoryMode} from \"./schemes/RoomHistory\";\nimport {GetRoomSummary} from \"./schemes/commands/GetRoomSummary\";\nimport {GetSpaceSummary} from \"./schemes/commands/GetSpaceSummary\";\nimport {SpaceSummary as SpaceSummaryEvent} from \"./schemes/events/SpaceSummary\";\nimport {RoomSummary as RoomSummaryEvent} from \"./schemes/events/RoomSummary\";\nimport {UpdateSpaceMember} from \"./schemes/commands/UpdateSpaceMember\";\nimport {NewRelationship} from \"./schemes/events/NewRelationship\";\nimport {RelationshipDeleted} from \"./schemes/events/RelationshipDeleted\";\nimport {UserRelationship, UserRelationshipType} from \"./schemes/UserRelationship\";\nimport {DeleteRelationship} from \"./schemes/commands/DeleteRelationship\";\nimport {Relationships} from \"./schemes/events/Relationships\";\nimport {CreateRelationship} from \"./schemes/commands/CreateRelationship\";\nimport {RoomSummaryUpdated} from \"./schemes/events/RoomSummaryUpdated\";\nimport {UpdateRoomMember} from \"./schemes/commands/UpdateRoomMember\";\nimport {Ping} from \"./schemes/commands/Ping\";\nimport {Pong} from \"./schemes/events/Pong\";\nimport {ReportAbuse} from \"./schemes/commands/ReportAbuse\";\nimport {RedactMessages} from \"./schemes/commands/RedactMessages\";\nimport {MessagesRedacted} from \"./schemes/events/MessagesRedacted\";\nimport {GetRelationships} from \"./schemes/commands/GetRelationships\";\nimport {GetUserInfo} from \"./schemes/commands/GetUserInfo\";\nimport {UserInfo} from \"./schemes/events/UserInfo\";\nimport {UserInformation} from \"./schemes/UserInformation\";\nimport {SetSessionData, SessionPush} from \"./schemes/commands/SetSessionData\";\nimport {SessionData, SessionPlatform} from \"./schemes/SessionData\";\nimport {GetSessionData} from \"./schemes/commands/GetSessionData\";\nimport {UserData, PrivateMessagePolicy} from \"./schemes/UserData\";\nimport {SetUserData} from \"./schemes/commands/SetUserData\";\nimport {GetUserData} from \"./schemes/commands/GetUserData\";\nimport {UnfollowTopic} from \"./schemes/commands/UnfollowTopic\";\nimport {Invite} from \"./schemes/commands/Invite\";\nimport {Uninvite} from \"./schemes/commands/Uninvite\";\nimport {GetInvited} from \"./schemes/commands/GetInvited\";\nimport {Invited} from \"./schemes/events/Invited\";\nimport {TopicUnfollowed} from \"./schemes/events/TopicUnfollowed\";\nimport {MessageReaction, ReactionType, ToggledReaction, UserReaction} from \"./schemes/Reaction\";\nimport {MessagePoll, MessagePollOption} from \"./schemes/MessagePoll\";\nimport {React} from \"./schemes/commands/React\";\nimport {Unreact} from \"./schemes/commands/Unreact\";\nimport {GetReactionDetails} from \"./schemes/commands/GetReactionDetails\";\nimport {ReactionUpdated} from \"./schemes/events/ReactionUpdated\";\nimport {Reacted} from \"./schemes/events/Reacted\";\nimport {ReactionDetails} from \"./schemes/events/ReactionDetails\";\n\nexport {\n // objects\n Envelope,\n Message,\n MessageType,\n MessageAuthor,\n MessageMentions,\n Role,\n RoleFlag,\n Room,\n RoomType,\n RoomStream,\n RoomStreamType,\n RoomHistory,\n RoomHistoryMode,\n RoomMember,\n RoomSummary,\n RoomSummaryExtras,\n Space,\n SpaceMember,\n Topic,\n FollowedTopic,\n NotificationLevel,\n User,\n UserStatus,\n UserState,\n PermissionOverwritesValue,\n ChatLocation,\n SpaceSummary,\n SpaceDiscoverable,\n Emoticon,\n PermissionOverwritesTarget,\n BanObject,\n LeaveReason,\n UserRelationship,\n UserRelationshipType,\n CreateTopicInitialMessage,\n UserInformation,\n SessionPush,\n SessionData,\n SessionPlatform,\n UserData,\n PrivateMessagePolicy,\n ReactionType,\n MessageReaction,\n UserReaction,\n ToggledReaction,\n MessagePoll,\n MessagePollOption,\n // events\n Bye,\n Error,\n Messages,\n NewMessage,\n NewRole,\n NewRoom,\n NewTopic,\n TopicFollowed,\n TopicUnfollowed,\n FollowedTopics,\n FollowedTopicUpdated,\n ComputedPermissions,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoleDeleted,\n RoleUpdated,\n RoomDeleted,\n RoomUpdated,\n RoomJoined,\n RoomLeft,\n RoomMembersJoined,\n RoomMemberLeft,\n RoomMembers,\n RoomMemberUpdated,\n UserUpdated,\n Session,\n SpaceDeleted,\n SpaceUpdated,\n SpaceJoined,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMembers,\n SpaceMemberUpdated,\n SpaceRooms,\n TopicDeleted,\n TopicUpdated,\n PermissionOverwriteTargets,\n Owners,\n Ok,\n DiscoverableSpaces,\n Emoticons,\n EmoticonDeleted,\n NewEmoticon,\n Bans,\n ClientData,\n SpaceSummaryEvent,\n RoomSummaryEvent,\n NewRelationship,\n RelationshipDeleted,\n Relationships,\n RoomSummaryUpdated,\n Pong,\n MessagesRedacted,\n UserInfo,\n Invited,\n ReactionUpdated,\n Reacted,\n ReactionDetails,\n // commands\n AssignRole,\n GetMessages,\n CreateMessage,\n Ack,\n CreateRole,\n CreateRoom,\n CreateSpace,\n CreateTopic,\n FollowTopic,\n UnfollowTopic,\n UpdateFollowedTopic,\n GetFollowedTopics,\n DeassignRole,\n DeleteRole,\n DeleteRoom,\n DeleteSpace,\n DeleteTopic,\n SetPermissionOverwrites,\n GetPermissionOverwrites,\n GetComputedPermissions,\n GetRoomMembers,\n GetSession,\n GetSpaceMembers,\n GetSpaceRooms,\n JoinRoom,\n JoinSpace,\n LeaveRoom,\n LeaveSpace,\n UpdateRole,\n UpdateSpace,\n UpdateRoom,\n UpdateTopic,\n GetPermissionOverwriteTargets,\n CreateOwner,\n DeleteOwner,\n GetOwners,\n Topics,\n GetTopics,\n GetDiscoverableSpaces,\n GetEmoticons,\n CreateEmoticon,\n DeleteEmoticon,\n Ban,\n Unban,\n GetBans,\n Kick,\n GetClientData,\n SetClientData,\n GetSpaceSummary,\n GetRoomSummary,\n UpdateSpaceMember,\n CreateRelationship,\n DeleteRelationship,\n GetRelationships,\n UpdateRoomMember,\n Ping,\n ReportAbuse,\n RedactMessages,\n GetUserInfo,\n SetSessionData,\n GetSessionData,\n SetUserData,\n GetUserData,\n Invite,\n Uninvite,\n GetInvited,\n React,\n Unreact,\n GetReactionDetails,\n};","import {WebSocketChatClient} from \"./WebSocketChatClient\";\nimport {WebApiChatClient} from \"./WebApiChatClient\";\nimport {\n IndexedCollection,\n IndexedObjectCollection,\n ObservableIndexedCollection,\n ObservableIndexedObjectCollection\n} from \"./IndexedObjectCollection\";\nimport {FilesClient, File} from \"./FilesClient\";\nimport { Permissions, PermissionDefinition, Layer } from \"./Permissions\";\nimport * as ChatTypes from './types/src';\nimport {RoleFlag, UserStatus} from './types/src';\nimport {extractUserFromMember} from \"./state-tracker/functions\";\nimport {AbstractRestClient} from \"./AbstractRestClient\";\nimport {UnreadSummary} from \"./state-tracker/FollowedTopicsManager\";\n\nexport {\n IndexedCollection, ObservableIndexedCollection,\n IndexedObjectCollection, ObservableIndexedObjectCollection,\n Permissions, PermissionDefinition, Layer,\n WebSocketChatClient, WebApiChatClient,\n FilesClient,\n AbstractRestClient,\n extractUserFromMember,\n UserStatus,\n RoleFlag,\n};\n\nexport type {\n ChatTypes,\n File,\n UnreadSummary,\n};"],"names":["EventTarget","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","eventName","handler","addHandler","events","once","onceEvents","off","_this$events$get","_this$events$get2","index","get","indexOf","undefined","splice","emit","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","createEnvelope","type","data","ref","sentCounter","toString","createPromiseFromCommandEnvelope","envelope","_this2","Promise","_len2","_key2","awaitingResponse","handleIncomingEnvelope","has","isError","error","handleEnvelopeSendError","failAwaitingResponses","size","pending","from","values","clear","_i","_pending","_pending$_i","_slicedToArray","reject","IndexedCollection","items","apply","_toConsumableArray","_items","item","id","delete","ids","_i2","_ids","deleteAll","findBy","field","valueToFind","limit","Infinity","result","_iterator","_createForOfIteratorHelper","entries","_step","s","n","done","_step$value","err","e","f","createMirror","copy","IndexedObjectCollection","_this$_items","_len3","_key3","getId","getAt","_this$_items2","_iterator2","_step2","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","setItems","_len5","_key5","deletedItems","keys","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","reconcile","_this8","_this$_items3","_len8","_key8","incomingIds","Set","_iterator3","_step3","existing","DeferredTask","promise","resolve","PromiseRegistry","register","promises","registerByFunction","fn","notExist","forget","_this$promises","forgetAll","t","r","Symbol","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","call","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","_typeof","_assertThisInitialized","ReferenceError","Boolean","valueOf","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","WindowState","TraversableRemoteCollection","_ObservableIndexedObj","current","LIVE","ongoing","retainRatio","fetchLimit","lastFetchCount","oldestId","internalState","LATEST","includes","state","OLDEST","_resetToLatest","_callee","force","originalState","_args","_context","fetchLatestItems","addItems","emitChangeWithDiff","resetToLatest","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","fetchPrevious","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","fetchNext","_jumpTo","_callee4","_context4","fetchItemsAround","jumpTo","_x","_refreshFetchedState","_callee5","_t","_context5","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","itemChanged","highWatermark","lowWatermark","Math","floor","slice","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","traverseLock","includeMyReactions","myReactions","client","ev","handleNewMessage","handleMessagesRedacted","handleReactionUpdated","handleReacted","_setTraverseLock","_callee6","lock","_context6","setTraverseLock","_x2","_resetToLatest2","_callee7","_args7","_context7","_fetchNext2","_callee8","_context8","_fetchPrevious2","_callee9","_context9","_jumpTo2","_callee0","_context0","_x3","_updateMessageReference","refTopic","refMessage","_objectSpread","topicRef","_fetchItemsAfter","_callee1","_this$getAt","afterId","_context1","fetchMessages","after","_fetchItemsAround","_callee10","_context10","around","_x4","_fetchItemsBefore","_callee11","_this$getAt2","beforeId","_context11","before","_fetchLatestItems","_callee12","_context12","_fetchMessages","_callee13","criteria","_context13","send","location","Error","message","storeMyReactions","messages","_x5","own","_getTopic","_callee14","_context14","rooms","getTopics","getTopic","_getLatestMessageId","_callee15","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context15","lastMessage","getLatestMessageId","_isLatestItemLoaded","_callee16","lastMessageId","_context16","_handleNewMessage","_callee17","_context17","_x6","messageId","reactions","findIndex","reaction","count","_this$internalState$m","_ev$reaction","isAdded","filter","_handleMessagesRedacted","_callee18","refTopicIds","_context18","msg","_x7","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","historyWindows","getMessagesWindow","_resync","_Array$from","_Array$from$_i","window","resync","_handleRoomUpdated","_Array$from2","_Array$from2$_i","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","history","mode","MessagesManager","handleSession","handleRoomJoin","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","getRoomHistory","_resolveLastMessage2","_result$data","roomHistory","_resolveLastMessage","createHistoryForNewRoom","stateRoomIds","FollowedTopicsManager","handleFollowedTopicUpdated","handleTopicFollowed","handleTopicUnfollowed","_cacheForSpace","spaceId","roomIds","needsFetch","spaceRegistryKey","spaces","some","followedTopics","staleRooms","followedTopicsPromises","reconcileRoomsFollowedTopics","cacheForSpace","_getForRoom","applyRoomFollowedTopics","invalidateUnreadSummaries","getForRoom","_ackRoom","collection","followedTopic","isUnread","ackRoom","_summarize","cacheKey","targetTopicId","mentionCount","unreadTopicCount","unreadRoomCount","isRoomUnreadCount","_topic$mentionCount","summariesCache","summarize","_deleteByTopicIds","_this$followedTopics$","topicIds","_iterator4","_step4","add","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","setFollowedTopicsArray","_this$followedTopics$3","clearRoomFollowedTopicsStructures","_handleNewTopic","_this$followedTopics$4","_iterator5","_step5","startsWith","_iterator6","_step6","invalidateUnreadSummariesForRooms","roomIdsSet","_iterator7","_step7","parts","split","_updateLocallyFollowedTopicOnNewMessage","roomFollowedTopics","me","isMe","update","_member$spaceMember$r","_member$spaceMember","_member$roles","member","roleIds","mentionHandlers","mentionExists","getMe","author","user","missed","lastAckMessageId","spaceMember","roles","content","_this$followedTopics$5","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_roomToTopics$roomId","_followedTopic$locati2","_roomToTopics$_follow2","_this7$followedTopics","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMembersJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","getMembers","_getMe","userId","list","find","_member$user$id","_member$user","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","deleteRoom","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$followedTopics","deleteRoomsBySpaceId","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","newMember","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get3","addJoinedRooms","_this$topics$get4","newRoom","_this$list2","_rooms","recipients","customColor","customNick","customAvatar","extras","_this$members$get","_member$user$id2","_member$user2","_this$members$get2","removedRoomIds","_this$list3","newRooms","_room$recipients","_room$defaultTopic2","newTopic","messageCount","max","reorderRolesOnPriorityUpdate","allRoles","oldRole","updatedRole","increased","priority","decreased","changedRoles","role","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","getRoles","_getRooms","roomsPromises","getRooms","_refreshRooms","refreshRooms","_this$rooms$get","summary","roomIdToSpaceId","name","description","_handleRoomDeleted","_this$rooms$get2","space","spaceChanged","systemRoom","defaultRooms","_this$rooms$get$items","_this$rooms$get3","_this$roomIdToSpaceId","addJoinedSpaces","_this$roles","summaries","_this$rooms$get4","_handleRoomSummaryUpdated","summariesPromise","oldSummary","newSummary","_this$roles$get","newRole","rolesToUpdate","stateSpaceIds","removedSpaceIds","_this$roles$get2","Layer","PermissionDefinition","Permissions","getNames","getByName","canBeDefinedOnLayer","permissionName","layer","def","maxLayer","Root","Room","CreateSpaces","Global","ManageSpace","Space","ManageRoles","CreateTopics","ManageTopic","Topic","ManageMemberProfiles","ManageMemberRoles","CreateMessages","ManagePermissions","CreateRooms","ManageRoom","CreateEmoticons","ManageEmoticons","ManageBans","Kick","ChangeOwnProfile","ChangeOwnColor","RedactMessages","AddMembers","React","CreatePolls","MentionAllRoles","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","getOverwrites","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","check","_calculatePermissions","_location$spaceId","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","fetchMembersOrFail","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me","_this$tracker$me2","prefix","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","sort","b","reduce","previousValue","currentValue","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","reverse","revDecAllows","_revDecDenies$i","_revDecAllows$i","parseInt","_x9","_x0","permissionOverwritesValues","getRootAccessValue","_fetchMembersOrFail","results","spaceFail","roomFail","_x1","GLOBAL_KEY","EmoticonsManager","handleEmoticons","handleNewEmoticon","handleEmoticonDeleted","emoticonsPromises","_event$location$space","_this$list$get","emoticons","_ev$emoticon$spaceId","emoticon","_ev$spaceId","emoticonId","UsersManager","handleUsers","handleMembers","_getAvailable","users","getAvailable","session","_this$users","newUser","oldUser","status","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_exists","exists","_this$relationships","ChatStateTracker","permissions","_me","WebSocketChatClientEvent","WebSocketChatClient","_AbstractChatClient","options","_this$options$stateTr","_options$ping","_options$ping2","_options$ping2$enable","_options$ping3","_options$ping3$noActi","_options$ping4","_options$ping4$pongBa","stateTracking","ping","enabled","noActivityTimeoutMs","pongBackTimeoutMs","_connect","_this$connectPromise2","_this$options$queryPa","_this$options$connect","_this$connectPromise","params","isOpenWsState","isConnectingWsState","connectPromise","authenticatedResolvers","URLSearchParams","queryParams","token","ws","WebSocket","url","onclose","onClose","onmessage","onMessage","connectingTimeoutId","setTimeout","triggerConnectionTimeout","connectingTimeoutMs","authenticated","connect","disconnect","_this$ws","failPendingCommands","close","_send","commandType","commandData","sendQueue","sendEnvelope","_this$ws$readyState","_this$ws2","isReady","JSON","stringify","readyState","lastReceivedMessageAt","Date","now","parse","Event","isAuthenticated","startConnectionMonitor","settleConnect","sendFromQueue","stopConnectionMonitor","clearTimeout","reconnect","code","resolvers","queued","lastDelay","_loop","_this3$options$awaitQ","dataIndex","awaitQueueSendDelayMs","CONNECTING","OPEN","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","attempts","lastTimeoutId","sendStack","makeApiCall","destroy","_onMessage","response","json","onError","removeFromStack","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","query","fetch","method","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","additionalHeaders","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","text","replace","FilesClient","_AbstractRestClient","_uploadFile","file","_name","encodeURIComponent","uploadFile","_getFileMeta","getFileMeta","_getFileMetaBulk","searchParams","append","getFileMetaBulk","RoleFlag","UserStatus","Envelope","Message","MessageType","MessageAuthor","MessageMentions","PermissionOverwritesValue","Role","RoomType","RoomMember","RoomSummary","RoomSummaryExtras","SpaceDiscoverable","SpaceMember","User","UserState","Bye","Session","ComputedPermissions","SpaceJoined","SpaceLeft","SpaceMemberJoined","SpaceMemberLeft","SpaceMemberUpdated","SpaceDeleted","SpaceMembers","SpaceRooms","NewRole","RoleDeleted","RoomJoined","RoomLeft","RoomMembersJoined","RoomMemberLeft","RoomMembers","RoomMemberUpdated","NewRoom","RoomDeleted","NewTopic","TopicDeleted","NewMessage","PermissionOverwritesUpdated","PermissionOverwrites","GetSession","GetComputedPermissions","JoinSpace","LeaveSpace","CreateSpace","DeleteSpace","GetSpaceMembers","GetSpaceRooms","CreateRole","DeleteRole","RoleUpdated","AssignRole","DeassignRole","SetPermissionOverwrites","GetPermissionOverwrites","JoinRoom","LeaveRoom","CreateRoom","DeleteRoom","GetRoomMembers","CreateTopic","CreateTopicInitialMessage","DeleteTopic","CreateMessage","UpdateRole","Ack","UserUpdated","UpdateRoom","UpdateSpace","RoomUpdated","SpaceUpdated","ChatLocation","GetPermissionOverwriteTargets","PermissionOverwriteTargets","CreateOwner","DeleteOwner","GetOwners","Owners","Ok","FollowTopic","FollowedTopics","FollowedTopic","NotificationLevel","UpdateFollowedTopic","TopicFollowed","GetFollowedTopics","FollowedTopicUpdated","GetMessages","Messages","Topics","GetTopics","UpdateTopic","TopicUpdated","GetDiscoverableSpaces","DiscoverableSpaces","SpaceSummary","Emoticon","Emoticons","GetEmoticons","CreateEmoticon","DeleteEmoticon","NewEmoticon","EmoticonDeleted","PermissionOverwritesTarget","Ban","Unban","GetBans","BanObject","Bans","LeaveReason","GetClientData","SetClientData","ClientData","RoomStream","RoomStreamType","RoomHistory","RoomHistoryMode","GetRoomSummary","GetSpaceSummary","SpaceSummaryEvent","RoomSummaryEvent","UpdateSpaceMember","NewRelationship","RelationshipDeleted","UserRelationship","UserRelationshipType","DeleteRelationship","Relationships","CreateRelationship","RoomSummaryUpdated","UpdateRoomMember","Ping","Pong","ReportAbuse","MessagesRedacted","GetRelationships","GetUserInfo","UserInfo","UserInformation","SetSessionData","SessionPush","SessionData","SessionPlatform","GetSessionData","UserData","PrivateMessagePolicy","SetUserData","GetUserData","UnfollowTopic","Invite","Uninvite","GetInvited","Invited","TopicUnfollowed","MessageReaction","ReactionType","ToggledReaction","UserReaction","MessagePoll","MessagePollOption","Unreact","GetReactionDetails","ReactionUpdated","Reacted","ReactionDetails"],"ignoreList":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","mappings":"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AhF,CAAA,IAC5C,IAAI,CAACyK,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAGwnB,YAAY,CAAC;UAAA;QAAA,GAAAltB,QAAA;MAAA,CACnD;MAAA,SAJYotB,eAAeA,CAAAzpB,GAAA;QAAA,OAAAspB,gBAAA,CAAAp4B,KAAA,OAAAvC,SAAA;MAAA;MAAA,OAAf86B,eAAe;IAAA;EAAA;AAAA,EAzBC1B,kBAAkB,E;;ACZnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAK2B,QAAQ,0BAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAARA,QAAQ,CAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA,M;;ACPpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAKC,UAAU,0BAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,M;;ACVsB;AAC2C;AACT;AAChC;AACA;AACE;AACqB;AACZ;AACP;AACZ;AACU;AACF;AACL;AACI;AACI;AACwB;AAChB;AACJ;AACgB;AACJ;AACM;AACZ;AACA;AACJ;AACN;AACQ;AACF;AACJ;AACkB;AACN;AACN;AACY;AACpB;AACQ;AACN;AACQ;AACJ;AACkC;AACd;AAClB;AACwB;AAC1B;AACE;AACE;AACA;AACQ;AACJ;AACN;AACA;AACA;AACA;AACI;AACsB;AACA;AAC9B;AACE;AACE;AACA;AACQ;AACqB;AAC3B;AACI;AACN;AACd;AACc;AACA;AACE;AACF;AACE;AACP;AAC2C;AACR;AAC1B;AACA;AACJ;AACR;AACR;AACkB;AACI;AACU;AACE;AACd;AACU;AACI;AAChB;AACR;AACJ;AACQ;AACI;AACA;AACoB;AACR;AACnB;AACR;AACS;AACQ;AACI;AACA;AACR;AACQ;AACe;AACrC;AACI;AACI;AACL;AACH;AACE;AACK;AACa;AACA;AACR;AACS;AACG;AACF;AACE;AACa;AACH;AACN;AACN;AACQ;AACS;AACT;AACZ;AACY;AACF;AACF;AACxB;AACF;AACgB;AACM;AACE;AACE;AACV;AACR;AACO;AACoB;AACX;AACF;AACC;AACP;AACA;AACI;AACd;AACI;AACI;AACR;AACgB;AAC+B;AAC3B;AACtB;AACI;AACsB;AACR;AAChB;AACgB;;;AC1JP;AACN;AAMjB;AACa;AACyB;AAExB;AACe;AACR","sources":["webpack://polfan-server-js-client/webpack/bootstrap","webpack://polfan-server-js-client/webpack/runtime/define property getters","webpack://polfan-server-js-client/webpack/runtime/hasOwnProperty shorthand","webpack://polfan-server-js-client/webpack/runtime/make namespace object","webpack://polfan-server-js-client/./src/EventTarget.ts","webpack://polfan-server-js-client/./src/AbstractChatClient.ts","webpack://polfan-server-js-client/./src/IndexedObjectCollection.ts","webpack://polfan-server-js-client/./src/state-tracker/AsyncUtils.ts","webpack://polfan-server-js-client/./src/state-tracker/TopicHistoryWindow.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomMessagesHistory.ts","webpack://polfan-server-js-client/./src/state-tracker/MessagesManager.ts","webpack://polfan-server-js-client/./src/state-tracker/FollowedTopicsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RoomsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/functions.ts","webpack://polfan-server-js-client/./src/state-tracker/SpacesManager.ts","webpack://polfan-server-js-client/./src/Permissions.ts","webpack://polfan-server-js-client/./src/state-tracker/PermissionsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/EmoticonsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/UsersManager.ts","webpack://polfan-server-js-client/./src/state-tracker/RelationshipsManager.ts","webpack://polfan-server-js-client/./src/state-tracker/ChatStateTracker.ts","webpack://polfan-server-js-client/./src/WebSocketChatClient.ts","webpack://polfan-server-js-client/./src/WebApiChatClient.ts","webpack://polfan-server-js-client/./src/AbstractRestClient.ts","webpack://polfan-server-js-client/./src/FilesClient.ts","webpack://polfan-server-js-client/./src/types/src/schemes/Role.ts","webpack://polfan-server-js-client/./src/types/src/schemes/User.ts","webpack://polfan-server-js-client/./src/types/src/index.ts","webpack://polfan-server-js-client/./src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type EventHandler<EventT> = (ev?: EventT) => void;\ntype HandlersMap = Map<string, EventHandler<any>[]>;\ntype EventMapLike = Record<string, any>;\ntype KnownEventNames<EventT> = EventT extends EventMapLike ? keyof EventT & string : string;\ntype EventPayload<EventT, EventName extends string = never> = EventT extends EventMapLike\n ? [EventName] extends [never]\n ? EventT[keyof EventT]\n : EventName extends keyof EventT\n ? EventT[EventName]\n : EventT[keyof EventT]\n : EventT;\n\nexport type ChangeEventMap<Payload = void> = { change: Payload };\n\nexport interface ObservableInterface<EventT = any> {\n on<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n on(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n once<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n once(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n off<EventName extends KnownEventNames<EventT>>(eventName: EventName, handler: EventHandler<EventPayload<EventT, EventName>>): this;\n off(eventName: string, handler: EventHandler<EventPayload<EventT>>): this;\n}\n\nexport class EventTarget<EventMapT extends Record<string, any> = Record<string, any>> implements ObservableInterface<EventMapT> {\n protected events: HandlersMap = new Map<string, EventHandler<any>[]>();\n protected onceEvents: HandlersMap = new Map<string, EventHandler<any>[]>();\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public on(eventName: string, handler: EventHandler<unknown>): this;\n public on(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.events, eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public once(eventName: string, handler: EventHandler<unknown>): this;\n public once(eventName: string, handler: EventHandler<any>): this {\n this.addHandler(this.onceEvents, eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this;\n public off(eventName: string, handler: EventHandler<unknown>): this;\n public off(eventName: string, handler: EventHandler<any>): this {\n const index = this.events.get(eventName)?.indexOf(handler);\n if (index === undefined || index < 0) {\n return this;\n }\n this.events.get(eventName)?.splice(index, 1);\n return this;\n }\n\n public emit<K extends keyof EventMapT & string>(eventName: K, event: EventMapT[K]): this;\n public emit(eventName: string, event?: unknown): this;\n public emit(eventName: string, event?: any): this {\n this.callHandlers(this.events, eventName, event);\n this.callHandlers(this.onceEvents, eventName, event);\n this.onceEvents.delete(eventName);\n return this;\n }\n\n private addHandler(map: HandlersMap, eventName: string, handler: EventHandler<any>): void {\n const handlers = map.get(eventName) ?? [];\n handlers.push(handler);\n map.set(eventName, handlers);\n }\n\n private callHandlers(map: HandlersMap, eventName: string, event: unknown): void {\n map.get(eventName)?.forEach(callback => callback(event));\n }\n}","import {\n Bye,\n GetSession,\n JoinSpace,\n Session,\n SpaceJoined,\n Error as ErrorType,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMemberUpdated,\n SpaceDeleted,\n SpaceMembers,\n SpaceRooms,\n NewRole,\n RoomDeleted,\n RoomJoined,\n RoomLeft,\n RoomMemberLeft,\n RoomMembersJoined,\n RoomMembers,\n NewRoom,\n NewTopic,\n TopicDeleted,\n NewMessage,\n GetPermissionOverwrites,\n GetComputedPermissions,\n LeaveSpace,\n CreateSpace,\n DeleteSpace,\n GetSpaceMembers,\n GetSpaceRooms,\n CreateRole,\n DeleteRole,\n AssignRole,\n DeassignRole,\n SetPermissionOverwrites,\n JoinRoom,\n LeaveRoom,\n CreateRoom,\n DeleteRoom,\n GetRoomMembers,\n CreateTopic,\n DeleteTopic,\n CreateMessage,\n Envelope,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoomMemberUpdated,\n UpdateRole,\n RoleUpdated,\n Ack,\n UserUpdated,\n UpdateRoom,\n RoomUpdated,\n UpdateSpace,\n SpaceUpdated,\n PermissionOverwriteTargets,\n GetPermissionOverwriteTargets,\n Owners,\n Ok,\n GetOwners,\n CreateOwner,\n RoleDeleted,\n FollowedTopicUpdated,\n TopicFollowed,\n FollowedTopics,\n FollowTopic,\n UpdateFollowedTopic,\n GetFollowedTopics,\n Messages,\n GetMessages,\n Topics,\n GetTopics,\n TopicUpdated,\n UpdateTopic,\n GetDiscoverableSpaces,\n DiscoverableSpaces,\n CreateEmoticon,\n DeleteEmoticon,\n GetEmoticons,\n Emoticons,\n EmoticonDeleted,\n NewEmoticon,\n Bans,\n GetBans,\n Ban,\n Unban,\n Kick,\n ClientData,\n GetClientData,\n SetClientData,\n GetRoomSummary,\n GetSpaceSummary,\n RoomSummaryEvent,\n SpaceSummaryEvent,\n UpdateSpaceMember,\n Relationships,\n RelationshipDeleted,\n NewRelationship,\n DeleteRelationship,\n CreateRelationship,\n RoomSummaryUpdated,\n Pong,\n Ping,\n RedactMessages,\n MessagesRedacted,\n ReportAbuse,\n UpdateRoomMember,\n GetRelationships,\n GetUserInfo,\n UserInfo,\n SetSessionData,\n SessionData,\n GetSessionData,\n SetUserData,\n UserData,\n GetUserData,\n UnfollowTopic,\n TopicUnfollowed,\n Invite,\n Uninvite,\n GetInvited,\n Invited,\n React,\n Unreact,\n GetReactionDetails,\n ReactionUpdated,\n Reacted,\n ReactionDetails,\n} from \"./types/src\";\nimport {EventTarget} from \"./EventTarget\";\n\ntype ArrayOfPromiseResolvers = [(value: any) => void, (reason?: any) => void];\ntype ExtraEventMap = Record<string, any>;\n\ntype CommandDefinition<RequestT, ResponseT> = {\n request: RequestT;\n response: ResponseT;\n};\n\nexport abstract class AbstractChatClient<AdditionalEvents extends ExtraEventMap = {}> extends EventTarget<EventsMap & AdditionalEvents> {\n protected awaitingResponse: Map<string, ArrayOfPromiseResolvers> = new Map<string, ArrayOfPromiseResolvers>();\n protected sentCounter: number = 0;\n\n public abstract send<CommandType extends keyof CommandsMap>\n (commandType: CommandType, commandData: CommandRequest<CommandType>): Promise<CommandResult<CommandResponse<CommandType>>>;\n\n protected createEnvelope<CommandT>(type: string, data: CommandT): Envelope<CommandT> {\n return {\n type, data, ref: (++this.sentCounter).toString()\n };\n }\n\n protected createPromiseFromCommandEnvelope\n <CommandT extends keyof CommandsMap>(envelope: Envelope<CommandRequest<CommandT>>):\n Promise<CommandResult<CommandResponse<CommandT>>> {\n return new Promise((...args) =>\n this.awaitingResponse.set(envelope.ref as string, args));\n }\n\n protected handleIncomingEnvelope(envelope: Envelope): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n const isError = envelope.type === 'Error';\n this.awaitingResponse.get(envelope.ref)[0]({\n data: isError ? null : envelope.data,\n error: isError ? envelope.data : null,\n } as CommandResult<any>);\n this.awaitingResponse.delete(envelope.ref);\n }\n\n protected handleEnvelopeSendError(envelope: Envelope, error: any): void {\n if (!this.awaitingResponse.has(envelope.ref)) {\n return;\n }\n this.awaitingResponse.get(envelope.ref)[1](error);\n this.awaitingResponse.delete(envelope.ref);\n }\n\n /**\n * Reject every command that is still waiting for a response.\n * Call this whenever the transport can no longer deliver an answer (the\n * connection dropped).\n */\n protected failAwaitingResponses(error: any): void {\n if (! this.awaitingResponse.size) {\n return;\n }\n\n const pending = Array.from(this.awaitingResponse.values());\n this.awaitingResponse.clear();\n\n for (const [, reject] of pending) {\n reject(error);\n }\n }\n}\n\nexport type CommandResult<ResultT> = {data?: ResultT, error?: ErrorType};\nexport type CommandRequest<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['request'];\nexport type CommandResponse<CommandType extends keyof CommandsMap> = CommandsMap[CommandType]['response'];\n\n /**\n * Map of incoming events.\n */\n export type EventsMap = {\n // General Events\n Bye: Bye,\n Ok: Ok,\n Error: ErrorType,\n Session: Session,\n Permissions: Permissions,\n PermissionOverwrites: PermissionOverwrites,\n PermissionOverwritesUpdated: PermissionOverwritesUpdated,\n PermissionOverwriteTargets: PermissionOverwriteTargets,\n Owners: Owners,\n NewEmoticon: NewEmoticon,\n EmoticonDeleted: EmoticonDeleted,\n Emoticons: Emoticons,\n Bans: Bans,\n ClientData: ClientData,\n SessionData: SessionData,\n UserData: UserData,\n NewRelationship: NewRelationship,\n RelationshipDeleted: RelationshipDeleted,\n Relationships: Relationships,\n Pong: Pong,\n UserInfo: UserInfo,\n // Space events\n DiscoverableSpaces: DiscoverableSpaces,\n SpaceJoined: SpaceJoined,\n SpaceLeft: SpaceLeft,\n SpaceMemberJoined: SpaceMemberJoined,\n SpaceMemberLeft: SpaceMemberLeft,\n SpaceMemberUpdated: SpaceMemberUpdated,\n SpaceUpdated: SpaceUpdated,\n SpaceDeleted: SpaceDeleted,\n SpaceMembers: SpaceMembers,\n SpaceRooms: SpaceRooms,\n NewRole: NewRole,\n RoleDeleted: RoleDeleted,\n RoleUpdated: RoleUpdated,\n SpaceSummaryEvent: SpaceSummaryEvent,\n // Room events\n RoomJoined: RoomJoined,\n RoomLeft: RoomLeft,\n RoomMembersJoined: RoomMembersJoined,\n RoomMemberLeft: RoomMemberLeft,\n RoomMemberUpdated: RoomMemberUpdated,\n RoomMembers: RoomMembers,\n NewRoom: NewRoom,\n RoomDeleted: RoomDeleted,\n RoomUpdated: RoomUpdated,\n RoomSummaryEvent: RoomSummaryEvent,\n RoomSummaryUpdated: RoomSummaryUpdated,\n Invited: Invited,\n // Topic events\n NewTopic: NewTopic,\n TopicDeleted: TopicDeleted,\n NewMessage: NewMessage,\n UserUpdated: UserUpdated,\n TopicFollowed: TopicFollowed,\n TopicUnfollowed: TopicUnfollowed,\n FollowedTopics: FollowedTopics,\n FollowedTopicUpdated: FollowedTopicUpdated,\n Messages: Messages,\n Topics: Topics,\n TopicUpdated: TopicUpdated,\n MessagesRedacted: MessagesRedacted,\n ReactionUpdated: ReactionUpdated,\n Reacted: Reacted,\n ReactionDetails: ReactionDetails,\n};\n\n/**\n * Map of commands and their corresponding events.\n */\nexport type CommandsMap = {\n // General commands\n GetSession: CommandDefinition<GetSession, EventsMap['Session']>,\n SetPermissionOverwrites: CommandDefinition<SetPermissionOverwrites, EventsMap['PermissionOverwritesUpdated']>,\n GetPermissionOverwrites: CommandDefinition<GetPermissionOverwrites, EventsMap['PermissionOverwrites']>,\n GetComputedPermissions: CommandDefinition<GetComputedPermissions, EventsMap['Permissions']>,\n GetPermissionOverwriteTargets: CommandDefinition<GetPermissionOverwriteTargets, EventsMap['PermissionOverwriteTargets']>,\n GetOwners: CommandDefinition<GetOwners, EventsMap['Owners']>,\n CreateOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n DeleteOwner: CommandDefinition<CreateOwner, EventsMap['Owners']>,\n CreateEmoticon: CommandDefinition<CreateEmoticon, EventsMap['NewEmoticon']>,\n DeleteEmoticon: CommandDefinition<DeleteEmoticon, EventsMap['EmoticonDeleted']>,\n GetEmoticons: CommandDefinition<GetEmoticons, EventsMap['Emoticons']>,\n GetBans: CommandDefinition<GetBans, EventsMap['Bans']>,\n Ban: CommandDefinition<Ban, EventsMap['Ok']>,\n Unban: CommandDefinition<Unban, EventsMap['Ok']>,\n Kick: CommandDefinition<Kick, EventsMap['Ok']>,\n GetClientData: CommandDefinition<GetClientData, EventsMap['ClientData']>,\n SetClientData: CommandDefinition<SetClientData, EventsMap['Ok']>,\n DeleteRelationship: CommandDefinition<DeleteRelationship, EventsMap['RelationshipDeleted']>,\n CreateRelationship: CommandDefinition<CreateRelationship, EventsMap['NewRelationship']>,\n GetRelationships: CommandDefinition<GetRelationships, EventsMap['Relationships']>,\n Ping: CommandDefinition<Ping, EventsMap['Pong']>,\n ReportAbuse: CommandDefinition<ReportAbuse, EventsMap['Ok']>,\n GetUserInfo: CommandDefinition<GetUserInfo, EventsMap['UserInfo']>,\n GetSessionData: CommandDefinition<GetSessionData, EventsMap['SessionData']>,\n SetSessionData: CommandDefinition<SetSessionData, EventsMap['Ok']>,\n GetUserData: CommandDefinition<GetUserData, EventsMap['UserData']>,\n SetUserData: CommandDefinition<SetUserData, EventsMap['Ok']>,\n // Space commands\n GetDiscoverableSpaces: CommandDefinition<GetDiscoverableSpaces, EventsMap['DiscoverableSpaces']>,\n JoinSpace: CommandDefinition<JoinSpace, EventsMap['SpaceJoined']>,\n LeaveSpace: CommandDefinition<LeaveSpace, EventsMap['SpaceLeft']>,\n CreateSpace: CommandDefinition<CreateSpace, EventsMap['SpaceJoined']>,\n UpdateSpace: CommandDefinition<UpdateSpace, EventsMap['SpaceUpdated']>,\n DeleteSpace: CommandDefinition<DeleteSpace, EventsMap['SpaceDeleted']>,\n GetSpaceMembers: CommandDefinition<GetSpaceMembers, EventsMap['SpaceMembers']>,\n GetSpaceRooms: CommandDefinition<GetSpaceRooms, EventsMap['SpaceRooms']>,\n CreateRole: CommandDefinition<CreateRole, EventsMap['NewRole']>,\n DeleteRole: CommandDefinition<DeleteRole, EventsMap['RoleDeleted']>,\n UpdateRole: CommandDefinition<UpdateRole, EventsMap['RoleUpdated']>,\n AssignRole: CommandDefinition<AssignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n DeassignRole: CommandDefinition<DeassignRole, EventsMap['SpaceMemberUpdated'] | EventsMap['RoomMemberUpdated']>,\n GetSpaceSummary: CommandDefinition<GetSpaceSummary, EventsMap['SpaceSummaryEvent']>,\n UpdateSpaceMember: CommandDefinition<UpdateSpaceMember, EventsMap['SpaceMemberUpdated']>,\n // Room commands\n JoinRoom: CommandDefinition<JoinRoom, EventsMap['RoomJoined']>,\n LeaveRoom: CommandDefinition<LeaveRoom, EventsMap['RoomLeft']>,\n CreateRoom: CommandDefinition<CreateRoom, EventsMap['RoomJoined']>,\n DeleteRoom: CommandDefinition<DeleteRoom, EventsMap['RoomDeleted']>,\n UpdateRoom: CommandDefinition<UpdateRoom, EventsMap['RoomUpdated']>,\n GetRoomMembers: CommandDefinition<GetRoomMembers, EventsMap['RoomMembers']>,\n GetRoomSummary: CommandDefinition<GetRoomSummary, EventsMap['RoomSummaryEvent']>,\n UpdateRoomMember: CommandDefinition<UpdateRoomMember, EventsMap['RoomMemberUpdated']>,\n Invite: CommandDefinition<Invite, EventsMap['Invited']>,\n Uninvite: CommandDefinition<Uninvite, EventsMap['Invited']>,\n GetInvited: CommandDefinition<GetInvited, EventsMap['Invited']>,\n // Topic commands\n CreateTopic: CommandDefinition<CreateTopic, EventsMap['NewTopic']>,\n DeleteTopic: CommandDefinition<DeleteTopic, EventsMap['TopicDeleted']>,\n CreateMessage: CommandDefinition<CreateMessage, EventsMap['NewMessage']>,\n Ack: CommandDefinition<Ack, EventsMap['FollowedTopicUpdated'] | EventsMap['Ok']>,\n FollowTopic: CommandDefinition<FollowTopic, EventsMap['TopicFollowed']>,\n UnfollowTopic: CommandDefinition<UnfollowTopic, EventsMap['TopicUnfollowed']>,\n UpdateFollowedTopic: CommandDefinition<UpdateFollowedTopic, EventsMap['FollowedTopicUpdated']>,\n GetFollowedTopics: CommandDefinition<GetFollowedTopics, EventsMap['FollowedTopics']>,\n GetMessages: CommandDefinition<GetMessages, EventsMap['Messages']>,\n GetTopics: CommandDefinition<GetTopics, EventsMap['Topics']>,\n UpdateTopic: CommandDefinition<UpdateTopic, EventsMap['TopicUpdated']>,\n RedactMessages: CommandDefinition<RedactMessages, EventsMap['MessagesRedacted']>,\n React: CommandDefinition<React, EventsMap['Reacted']>,\n Unreact: CommandDefinition<Unreact, EventsMap['Reacted']>,\n GetReactionDetails: CommandDefinition<GetReactionDetails, EventsMap['ReactionDetails']>,\n }\n","import {EventHandler, EventTarget, ObservableInterface} from \"./EventTarget\";\n\nexport class IndexedCollection<KeyT, ValueT> {\n protected _items: Map<KeyT, ValueT> = new Map();\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n this.set(...items);\n }\n\n public get items(): Map<KeyT, ValueT> {\n return this._items;\n }\n\n public get length(): number {\n return this._items.size;\n }\n\n public set(...items: [KeyT, ValueT][]): void {\n for (const item of items) {\n this._items.set(item[0], item[1]);\n }\n }\n\n public get(id: KeyT): ValueT | undefined {\n return this.items.get(id);\n }\n\n public has(id: KeyT): boolean {\n return this.items.has(id);\n }\n\n public delete(...ids: KeyT[]): void {\n for (const id of ids) {\n this.items.delete(id);\n }\n }\n\n public deleteAll(): void {\n this.items.clear();\n }\n\n public findBy(field: keyof ValueT, valueToFind: any, limit: number = Infinity): IndexedCollection<KeyT, ValueT> {\n const result = new IndexedCollection<KeyT, ValueT>();\n for (const [key, value] of this.items.entries()) {\n if (result.length >= limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set([key, value]);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedCollection<KeyT, ValueT> {\n const copy = new IndexedCollection<KeyT, ValueT>();\n copy._items = this._items;\n return copy;\n }\n}\n\nexport class IndexedObjectCollection<T> {\n protected _items: IndexedCollection<string, T>;\n\n public constructor(\n public readonly id: keyof T | ((item: T) => any),\n items: T[] = [],\n ) {\n this._items = new IndexedCollection<string, T>();\n this.set(...items);\n }\n\n public get items(): T[] {\n return Array.from(this._items.items.values());\n }\n\n public get length(): number {\n return this._items.length;\n }\n\n public set(...items: T[]): void {\n this._items.set(...(items.map(item => [this.getId(item), item] as [string, T])));\n }\n\n public get(id: any): T | undefined {\n return this._items.get(id);\n }\n\n public getAt(index: number): T | undefined {\n return this.items[index];\n }\n\n public has(id: any): boolean {\n return this._items.has(id);\n }\n\n public delete(...ids: any[]): void {\n this._items.delete(...ids);\n }\n\n public deleteAll(): void {\n this._items.deleteAll();\n }\n\n public findBy(field: keyof T, valueToFind: any, limit: number = null): IndexedObjectCollection<T> {\n const result = new IndexedObjectCollection<T>(this.id);\n for (const value of this.items) {\n if (limit && result.length === limit) {\n break;\n }\n if (value[field] === valueToFind) {\n result.set(value);\n }\n }\n return result;\n }\n\n public createMirror(): IndexedObjectCollection<T> {\n const copy = new IndexedObjectCollection<T>(this.id);\n copy._items = this._items;\n return copy;\n }\n\n protected getId(item: T): any {\n return typeof this.id === 'function' ? this.id(item) : item[this.id];\n }\n}\n\nexport type CollectionEventMap<IdType = string> = {\n change: { setItems?: IdType[]; deletedItems?: IdType[] };\n};\n\nexport class ObservableIndexedCollection<\n KeyT,\n ValueT,\n EventMapT extends CollectionEventMap<KeyT> = CollectionEventMap<KeyT>\n> extends IndexedCollection<KeyT, ValueT> implements ObservableInterface<EventMapT> {\n\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(items: [key: KeyT, value: ValueT][] = []) {\n super();\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: [KeyT, ValueT][]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => item[0]) });\n }\n }\n\n public delete(...ids: KeyT[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = Array.from(this._items.keys());\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: Array.from(ids) });\n }\n }\n\n public createMirror(): ObservableIndexedCollection<KeyT, ValueT, EventMapT> {\n const copy = new ObservableIndexedCollection<KeyT, ValueT, EventMapT>();\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<K extends keyof EventMapT & string>(eventName: K, handler: EventHandler<EventMapT[K]>): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}\n\nexport class ObservableIndexedObjectCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends IndexedObjectCollection<ItemT> implements ObservableInterface<EventMapT> {\n protected eventTarget: EventTarget<EventMapT>;\n\n public constructor(\n id: keyof ItemT | ((item: ItemT) => string),\n items: ItemT[] = [],\n ) {\n super(id);\n this.eventTarget = new EventTarget<EventMapT>();\n this.set(...items);\n }\n\n public set(...items: ItemT[]) {\n if (items.length) {\n super.set(...items);\n this.eventTarget.emit('change', { setItems: items.map(item => this.getId(item)) });\n }\n }\n\n public delete(...ids: string[]) {\n if (ids.length) {\n super.delete(...ids);\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n public deleteAll() {\n if (this.length) {\n const ids = this.items.map(item => this.getId(item));\n super.deleteAll();\n this.eventTarget.emit('change', { deletedItems: ids });\n }\n }\n\n /**\n * Bring the collection to exactly match the provided items: upsert every\n * provided item and remove any existing item whose id is not present in the\n * provided set. Emits at most a single `change` event describing both the\n * set and the deleted ids, so bound consumers can update in place without\n * ever observing an intermediate empty state (unlike deleteAll + set).\n */\n public reconcile(...items: ItemT[]) {\n const incomingIds = new Set(items.map(item => this.getId(item)));\n const deletedItems: string[] = [];\n\n for (const existing of this.items) {\n const id = this.getId(existing);\n if (! incomingIds.has(id)) {\n deletedItems.push(id);\n }\n }\n\n if (! items.length && ! deletedItems.length) {\n return;\n }\n\n this._items.delete(...deletedItems);\n super.set(...items);\n\n this.eventTarget.emit('change', {\n setItems: items.map(item => this.getId(item)),\n deletedItems,\n });\n }\n\n public createMirror(): ObservableIndexedObjectCollection<ItemT, EventMapT> {\n const copy = new ObservableIndexedObjectCollection<ItemT, EventMapT>(this.id);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n return copy;\n }\n\n public on<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.on(eventName, handler);\n return this;\n }\n\n public once<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.once(eventName, handler);\n return this;\n }\n\n public off<EventName extends keyof EventMapT & string>(\n eventName: EventName,\n handler: EventHandler<EventMapT[EventName]>\n ): this {\n this.eventTarget.off(eventName, handler);\n return this;\n }\n}","import {IndexedCollection} from \"../IndexedObjectCollection\";\n\nexport class DeferredTask {\n public readonly promise: Promise<void>;\n public resolve: () => void;\n\n public constructor() {\n this.promise = new Promise<void>((resolve) => this.resolve = resolve);\n }\n}\n\nexport class PromiseRegistry {\n private promises = new IndexedCollection<string, Promise<any>>();\n\n public register<T = any>(promise: Promise<T>, key: string): void {\n this.promises.set([key, promise]);\n\n promise.catch(() => {\n if (this.promises.get(key) === promise) {\n this.promises.delete(key);\n }\n });\n }\n\n public registerByFunction(fn: () => Promise<any>, key: string): void {\n this.register(fn(), key);\n }\n\n public get<T = any>(key: string): Promise<T> | undefined {\n return this.promises.get(key);\n }\n\n public has(key: string): boolean {\n return this.promises.has(key);\n }\n\n public notExist(key: string): boolean {\n return ! this.has(key);\n }\n\n public forget(...keys: string[]): void {\n this.promises.delete(...keys);\n }\n\n public forgetAll(): void {\n this.promises.deleteAll();\n }\n}","import {\n GetMessages,\n Message,\n MessageReaction,\n ReactionUpdated,\n MessagesRedacted,\n NewMessage,\n Reacted,\n Topic,\n UserReaction,\n} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {CollectionEventMap, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\n\nexport enum WindowState {\n /**\n * The latest messages (those received live) are available in the history window, history has not been fetched.\n */\n LIVE,\n\n /**\n * The latest messages has been fetched and are available in the history window.\n */\n LATEST,\n\n /**\n * The historical messages have been fetched and are available in the history window.\n * Latest messages are not available and will not be available.\n */\n PAST,\n\n /**\n * The oldest messages have been fetched and are available in the history window.\n * Next attempts to fetch previous messages will result with no-op.\n */\n OLDEST,\n}\n\nexport abstract class TraversableRemoteCollection<\n ItemT,\n EventMapT extends CollectionEventMap = CollectionEventMap\n> extends ObservableIndexedObjectCollection<ItemT, EventMapT> {\n /**\n * Current mode od collection window. To change mode, call one of available fetch methods.\n */\n public get state(): WindowState {\n return this.internalState.current;\n }\n\n protected internalState: {\n current: WindowState,\n ongoing?: WindowState,\n limit: number | null, // Acts as High Watermark\n retainRatio: number, // Percentage of limit to keep when trimming\n fetchLimit: number,\n lastFetchCount: number,\n oldestId: string | null,\n } = {\n current: WindowState.LIVE,\n ongoing: undefined,\n limit: 1000,\n retainRatio: 1,\n fetchLimit: 50,\n lastFetchCount: 0,\n oldestId: null,\n };\n\n /**\n * Number of items to fetch per request.\n */\n public get fetchLimit(): number {\n return this.internalState.fetchLimit;\n }\n\n /**\n * Sets number of items to fetch per request.\n */\n public set fetchLimit(value: number) {\n this.internalState.fetchLimit = value;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public get limit(): number | null {\n return this.internalState.limit;\n }\n\n /**\n * Maximum number of items stored in window (High Watermark).\n * Null for unlimited.\n */\n public set limit(value: number | null) {\n this.internalState.limit = value;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public get retainRatio(): number {\n return this.internalState.retainRatio;\n }\n\n /**\n * Percentage of limit to keep when trimming.\n */\n public set retainRatio(value: number) {\n this.internalState.retainRatio = value;\n }\n\n public get hasLatest(): boolean {\n return [WindowState.LATEST, WindowState.LIVE].includes(this.state);\n }\n\n public get hasOldest(): boolean {\n return this.state === WindowState.OLDEST\n || this.state === WindowState.LATEST && this.length < this.fetchLimit\n || this.internalState.oldestId !== null && this.has(this.internalState.oldestId);\n }\n\n public abstract createMirror(): TraversableRemoteCollection<ItemT, EventMapT>;\n\n public async resetToLatest(force: boolean = false): Promise<void> {\n if (this.internalState.ongoing || (! force && this.internalState.current === WindowState.LATEST)) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.LATEST;\n\n try {\n result = await this.fetchLatestItems();\n this.internalState.lastFetchCount = result.length;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n this.internalState.current = WindowState.LATEST;\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.ongoing || this.hasOldest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsBefore();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n return this.resetToLatest();\n }\n\n if (! result.length) {\n const firstItem = this.getAt(0);\n this.internalState.oldestId = firstItem ? this.getId(firstItem) : null;\n\n await this.refreshFetchedState();\n\n // LATEST state has priority over OLDEST\n if (this.internalState.current === WindowState.PAST) {\n this.internalState.current = WindowState.OLDEST;\n }\n\n this.emitChangeWithDiff(false, originalState);\n return;\n }\n\n this.addItems(result, 'head');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.ongoing || this.hasLatest) {\n return;\n }\n\n let result;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAfter();\n this.internalState.lastFetchCount = result ? result.length : 0;\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n if (! result) {\n await this.resetToLatest();\n return;\n }\n\n if (result.length) {\n this.addItems(result, 'tail');\n await this.refreshFetchedState();\n this.emitChangeWithDiff(true, originalState);\n return;\n }\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.ongoing || (this.state !== WindowState.LIVE && this._items.has(id))) {\n return;\n }\n\n let result: ItemT[] | null;\n const originalState = this.state;\n this.internalState.ongoing = WindowState.PAST;\n\n try {\n result = await this.fetchItemsAround(id);\n this.internalState.lastFetchCount = result ? result.length : 0;\n\n if (result) {\n this._items.deleteAll(); // Directly call deleteAll to prevent event emit.\n this.addItems(result, 'tail');\n await this.refreshFetchedState();\n }\n } finally {\n this.internalState.ongoing = undefined;\n }\n\n this.emitChangeWithDiff(!!result, originalState);\n }\n\n protected abstract fetchLatestItems(): Promise<ItemT[]>;\n\n protected abstract fetchItemsBefore(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAfter(): Promise<ItemT[] | null>;\n\n protected abstract fetchItemsAround(id: string): Promise<ItemT[] | null>;\n\n protected abstract isLatestItemLoaded(): Promise<boolean>;\n\n protected async refreshFetchedState(): Promise<void> {\n this.internalState.current = (await this.isLatestItemLoaded()) ? WindowState.LATEST : WindowState.PAST;\n }\n\n protected addItems(newItems: ItemT[], to: 'head' | 'tail'): void {\n let result;\n\n if (to === 'head') {\n result = this.trimItemsArrayToLimit([...newItems, ...this.items], 'tail');\n }\n\n if (to === 'tail') {\n result = this.trimItemsArrayToLimit([...this.items, ...newItems], 'head');\n }\n\n // Directly calls to prevent event emit.\n this._items.deleteAll();\n this._items.set(...(result.map(item => [this.getId(item), item] as [string, ItemT])));\n }\n\n protected emitChangeWithDiff(itemChanged: boolean, originalState: WindowState): void {\n if (itemChanged || originalState !== this.state) {\n this.eventTarget.emit('change', { setItems: Array.from(this._items.items.keys()) })\n }\n }\n\n /**\n * Return array with messages trimmed using High/Low Watermark strategy.\n */\n private trimItemsArrayToLimit(items: ItemT[], from: 'head' | 'tail'): ItemT[] {\n const highWatermark = this.limit;\n\n if (highWatermark === null || items.length <= highWatermark) {\n return items;\n }\n\n const lowWatermark = Math.floor(highWatermark * this.internalState.retainRatio);\n\n if (from === 'head') {\n return items.slice(-lowWatermark);\n }\n\n if (from === 'tail') {\n return items.slice(0, lowWatermark);\n }\n\n return items;\n }\n}\n\nexport type TopicHistoryWindowEventMap = CollectionEventMap & {\n reftopicsdeleted: string[];\n};\n\nexport class TopicHistoryWindow extends TraversableRemoteCollection<\n Message,\n TopicHistoryWindowEventMap\n> {\n /**\n * Reexported available window modes enum.\n */\n public readonly WindowState: typeof WindowState = WindowState;\n\n declare protected internalState: typeof TraversableRemoteCollection<Message>['prototype']['internalState'] & {\n traverseLock: boolean,\n includeMyReactions: boolean,\n myReactions: Record<string, UserReaction[]>,\n };\n\n public constructor(\n private roomId: string,\n private topicId: string,\n private tracker: ChatStateTracker,\n bindEvents: boolean = true,\n ) {\n super('id');\n\n this.internalState.traverseLock = false;\n this.internalState.includeMyReactions = true;\n this.internalState.myReactions = {};\n\n if (bindEvents) {\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n this.tracker.client.on('ReactionUpdated', ev => this.handleReactionUpdated(ev));\n this.tracker.client.on('Reacted', ev => this.handleReacted(ev));\n }\n }\n\n public createMirror(): TopicHistoryWindow {\n const copy = new TopicHistoryWindow(this.roomId, this.topicId, this.tracker, false);\n copy.eventTarget = this.eventTarget;\n copy._items = this._items;\n copy.internalState = this.internalState;\n return copy;\n }\n\n public get isTraverseLocked(): boolean {\n return this.internalState.traverseLock;\n }\n\n /**\n * What the connected user has reacted with, keyed by message id. Kept apart from\n * the messages, so the history itself is identical for every user.\n */\n public get myReactions(): Readonly<Record<string, UserReaction[]>> {\n return this.internalState.myReactions;\n }\n\n /**\n * Whether the history is fetched together with the reactions of the connected\n * user. Turn it off only where the active state of a reaction is never rendered.\n */\n public get includeMyReactions(): boolean {\n return this.internalState.includeMyReactions;\n }\n\n public set includeMyReactions(value: boolean) {\n this.internalState.includeMyReactions = value;\n }\n\n public async setTraverseLock(lock: boolean): Promise<void> {\n this.internalState.traverseLock = lock;\n\n if (lock && (this.state !== WindowState.LIVE && this.state !== WindowState.LATEST)) {\n await super.resetToLatest();\n }\n }\n\n public async resetToLatest(force: boolean = false): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.resetToLatest(force);\n }\n\n public async fetchNext(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchNext();\n }\n\n public async fetchPrevious(): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.fetchPrevious();\n }\n\n public async jumpTo(id: string): Promise<void> {\n if (this.internalState.traverseLock) {\n return;\n }\n return super.jumpTo(id);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public _updateMessageReference(refTopic: Topic): void {\n const refMessage = this.get(refTopic.refMessage.id);\n\n if (refMessage) {\n // Update referenced topic ID in message\n this.set({...refMessage, topicRef: refTopic.id});\n }\n }\n\n protected async fetchItemsAfter(): Promise<Message[] | null> {\n const afterId = this.getAt(this.length - 1)?.id;\n\n // If there is no message to refer, fetch latest\n return afterId ? this.fetchMessages({after: afterId}) : null;\n }\n\n protected async fetchItemsAround(id: string): Promise<Message[] | null> {\n return this.fetchMessages({around: id});\n }\n\n protected async fetchItemsBefore(): Promise<Message[] | null> {\n const beforeId = this.getAt(0)?.id;\n\n // If there is no message to refer, fetch latest\n return beforeId ? this.fetchMessages({before: beforeId}) : null;\n }\n\n protected async fetchLatestItems(): Promise<Message[]> {\n return this.fetchMessages({});\n }\n\n private async fetchMessages(criteria: Partial<GetMessages>): Promise<Message[]> {\n const result = await this.tracker.client.send('GetMessages', {\n location: {roomId: this.roomId, topicId: this.topicId},\n limit: this.internalState.fetchLimit,\n includeMyReactions: this.internalState.includeMyReactions,\n ...criteria,\n });\n\n if (result.error) {\n throw new Error(`Cannot fetch messages: ${result.error.message}`);\n }\n\n this.storeMyReactions(result.data.messages, result.data.myReactions);\n\n return result.data.messages;\n }\n\n /**\n * The response is the truth for every message it covers, so a message it does not\n * mention has no reaction of this user left on it.\n */\n private storeMyReactions(messages: Message[], myReactions?: Record<string, UserReaction[]>): void {\n if (! this.internalState.includeMyReactions) {\n return;\n }\n\n for (const message of messages) {\n const own = myReactions?.[message.id];\n\n if (own?.length) {\n this.internalState.myReactions[message.id] = own;\n } else {\n delete this.internalState.myReactions[message.id];\n }\n }\n }\n\n private async getTopic(): Promise<Topic | undefined> {\n return (await this.tracker.rooms.getTopics(this.roomId, [this.topicId])).get(this.topicId);\n }\n\n private async getLatestMessageId(): Promise<string | undefined> {\n return (await this.getTopic())?.lastMessage?.id;\n }\n\n protected async isLatestItemLoaded(): Promise<boolean> {\n const lastMessageId = await this.getLatestMessageId();\n return lastMessageId ? this.has(lastMessageId) : true;\n }\n\n private async handleNewMessage(ev: NewMessage): Promise<void> {\n if (\n [WindowState.LATEST, WindowState.LIVE].includes(this.state)\n && ev.message.location.roomId === this.roomId\n && ev.message.location.topicId === this.topicId\n ) {\n const originalState = this.state;\n this.addItems([ev.message], 'tail');\n this.emitChangeWithDiff(true, originalState);\n }\n }\n\n /**\n * The counter arrives as the global source of truth - only it is overwritten, and\n * a reaction nobody holds any more (count 0) leaves the message.\n */\n private handleReactionUpdated(ev: ReactionUpdated): void {\n const message = this.get(ev.messageId);\n\n if (! message) {\n return;\n }\n\n const index = message.reactions.findIndex(\n reaction => reaction.type === ev.reaction.type && reaction.value === ev.reaction.value);\n\n if (index === -1 && ! ev.reaction.count) {\n return;\n }\n\n const reactions: MessageReaction[] = [...message.reactions];\n\n if (index === -1) {\n reactions.push(ev.reaction);\n } else if (ev.reaction.count) {\n reactions[index] = ev.reaction; // In place - a pill must not jump around as its counter moves\n } else {\n reactions.splice(index, 1);\n }\n\n this.set({...message, reactions});\n }\n\n private handleReacted(ev: Reacted): void {\n if (! this.has(ev.messageId)) {\n return;\n }\n\n const {type, value, isAdded} = ev.reaction;\n const own = (this.internalState.myReactions[ev.messageId] ?? [])\n .filter(reaction => reaction.type !== type || reaction.value !== value);\n\n if (isAdded) {\n own.push({type, value});\n }\n\n if (own.length) {\n this.internalState.myReactions[ev.messageId] = own;\n } else {\n delete this.internalState.myReactions[ev.messageId];\n }\n\n this.eventTarget.emit('change', {setItems: [ev.messageId]});\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n if (ev.location.topicId !== this.topicId || ev.location.roomId !== this.roomId) {\n return;\n }\n\n const refTopicIds = this.items\n .filter(msg => msg.topicRef && ev.ids.includes(msg.id))\n .map(msg => msg.topicRef as string);\n\n this.delete(...ev.ids);\n\n if (this.length === 0) {\n await this.resetToLatest();\n }\n\n if (refTopicIds.length > 0) {\n this.eventTarget.emit('reftopicsdeleted', refTopicIds);\n }\n }\n}\n","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {NewTopic, Room, RoomUpdated, Topic, TopicDeleted} from \"../types/src\";\nimport {IndexedCollection,} from \"../IndexedObjectCollection\";\nimport {TopicHistoryWindow, WindowState} from \"./TopicHistoryWindow\";\n\nexport class RoomMessagesHistory {\n private historyWindows = new IndexedCollection<string, TopicHistoryWindow>();\n private traverseLock: boolean = false;\n\n public constructor(\n private room: Room,\n private tracker: ChatStateTracker,\n ) {\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n\n this.updateTraverseLock(this.room);\n\n if (this.room.defaultTopic) {\n this.createHistoryWindowForTopic(this.room.defaultTopic);\n }\n }\n\n /**\n * Returns a history window object for the given topic ID, allowing you to view message history.\n * @param topicId\n * @param peek If true, do not create a cache for this topic and do not allow it to collect new messages.\n */\n public async getMessagesWindow(topicId: string, peek: boolean = false): Promise<TopicHistoryWindow | undefined> {\n if (!this.historyWindows.has(topicId) && !peek) {\n const topic = (await this.tracker.rooms.getTopics(this.room.id, [topicId])).get(topicId);\n\n if (topic) {\n this.createHistoryWindowForTopic(topic);\n }\n }\n\n return this.historyWindows.get(topicId);\n }\n\n /**\n * Re-synchronise this room's history after a reconnect without discarding\n * the existing window objects (which would blank the UI and, for ephemeral\n * rooms, permanently drop live-only history).\n *\n * The window bindings are preserved; only windows that the application had\n * actually pulled to the latest page (state === LATEST) are refreshed, with\n * a single resetToLatest instead of a chain of catch-up requests. Windows\n * that were never pulled (LIVE) or belong to an ephemeral room are left\n * untouched so their in-memory context survives the reconnect.\n */\n public async resync(room: Room): Promise<void> {\n this.room = room;\n this.updateTraverseLock(room);\n\n if (this.room.defaultTopic) {\n this.createHistoryWindowForTopic(this.room.defaultTopic);\n }\n\n for (const [, window] of Array.from(this.historyWindows.items)) {\n try {\n await window.setTraverseLock(this.traverseLock);\n\n // Ephemeral history lives only in memory (the server does not\n // persist it), so never refetch/replace it on reconnect.\n if (this.traverseLock) {\n continue;\n }\n\n if (window.state === WindowState.LATEST) {\n await window.resetToLatest(true);\n }\n } catch (_e) {\n // Best effort: the connection can drop again mid-resync. The\n // window keeps its current content and stays usable, so the\n // application can refresh it on demand.\n }\n }\n }\n\n private async handleRoomUpdated(ev: RoomUpdated): Promise<void> {\n if (this.room.id === ev.room.id) {\n this.room = ev.room;\n\n this.updateTraverseLock(ev.room);\n\n if (ev.room.defaultTopic) {\n this.createHistoryWindowForTopic(ev.room.defaultTopic);\n }\n\n for (const [, window] of Array.from(this.historyWindows.items)) {\n await window.setTraverseLock(this.traverseLock);\n }\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n if (this.room.id === ev.roomId) {\n this.createHistoryWindowForTopic(ev.topic);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n if (this.room.id === ev.location.roomId) {\n this.historyWindows.delete(ev.location.topicId);\n }\n }\n\n private createHistoryWindowForTopic(topic: Topic): void {\n if (this.historyWindows.has(topic.id)) {\n return;\n }\n\n const historyWindow = new TopicHistoryWindow(this.room.id, topic.id, this.tracker);\n\n void historyWindow.setTraverseLock(this.traverseLock);\n\n this.historyWindows.set([topic.id, historyWindow]);\n\n // Current behavior of deletion a message with referenced topic is to delete the whole side topic\n // So we need to listen for topic deletions here\n historyWindow.on('reftopicsdeleted', (deletedTopicIds: string[]) => {\n for (const topicId of deletedTopicIds) {\n this.historyWindows.delete(topicId);\n }\n this.tracker.rooms._deleteTopicsFromRoom(this.room.id, ...deletedTopicIds);\n });\n\n // If new topic refers to some message from this room, update other structures\n if (topic.refMessage) {\n const refHistoryWindow = this.historyWindows.get(topic.refMessage.location.topicId);\n refHistoryWindow?._updateMessageReference(topic);\n }\n }\n\n private updateTraverseLock(room: Room): void {\n this.traverseLock = room.history.mode === 'Ephemeral';\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n RoomDeleted,\n RoomLeft,\n RoomJoined,\n Session,\n Room,\n Message, ChatLocation,\n} from \"../types/src\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {DeferredTask} from \"./AsyncUtils\";\nimport {RoomMessagesHistory} from \"./RoomMessagesHistory\";\n\nexport class MessagesManager {\n private readonly roomHistories = new IndexedCollection<string, RoomMessagesHistory>();\n private readonly deferredSession = new DeferredTask();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n }\n\n /**\n * Get history manager for given room ID.\n */\n public async getRoomHistory(roomId: string): Promise<RoomMessagesHistory | undefined> {\n await this.deferredSession.promise;\n return this.roomHistories.get(roomId);\n }\n\n /**\n * For internal use.\n * @internal\n */\n public async _resolveLastMessage(location: ChatLocation): Promise<Message|null> {\n // Try to get last message from history window (if cached)\n let message: Message = await this.getRoomHistory(location.roomId)\n .then(roomHistory => roomHistory?.getMessagesWindow(location.topicId, true))\n .then(\n historyWindow =>\n historyWindow?.hasLatest && historyWindow.getAt(historyWindow.length - 1)\n );\n\n if (!message) {\n const result = await this.tracker.client.send('GetMessages', {\n location,\n limit: 1,\n });\n message = result.data?.messages[0];\n }\n\n return message || null;\n }\n\n private createHistoryForNewRoom(room: Room): void {\n this.roomHistories.set([room.id, new RoomMessagesHistory(room, this.tracker)]);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.roomHistories.delete(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.createHistoryForNewRoom(ev.room);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.roomHistories.delete(ev.id);\n }\n\n private handleSession(ev: Session): void {\n const stateRoomIds = new Set(ev.state.rooms.map(room => room.id));\n\n // Drop histories only for rooms that no longer exist server-side.\n for (const roomId of Array.from(this.roomHistories.items.keys())) {\n if (! stateRoomIds.has(roomId)) {\n this.roomHistories.delete(roomId);\n }\n }\n\n // Keep existing histories (preserving loaded messages and, crucially,\n // live-only ephemeral history), create histories for newly joined\n // rooms, and resync survivors against the fresh room snapshot.\n for (const room of ev.state.rooms) {\n const history = this.roomHistories.get(room.id);\n if (history) {\n void history.resync(room);\n } else {\n this.createHistoryForNewRoom(room);\n }\n }\n\n this.deferredSession.resolve();\n }\n}","import {EventTarget} from \"../EventTarget\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n ChatLocation,\n FollowedTopic,\n FollowedTopicUpdated,\n NewMessage, NewTopic,\n RoomDeleted,\n RoomJoined, RoomLeft,\n Session, TopicDeleted,\n TopicFollowed, TopicUnfollowed\n} from \"../types/src\";\n\ninterface EventMap {\n change: {};\n}\n\nexport interface UnreadSummary {\n mentionCount: number;\n unreadTopicCount: number;\n unreadRoomCount: number;\n isUnread: boolean;\n}\n\nexport class FollowedTopicsManager extends EventTarget<EventMap> {\n private readonly followedTopics = new IndexedCollection<string, ObservableIndexedObjectCollection<FollowedTopic>>();\n private readonly followedTopicsPromises = new PromiseRegistry();\n private readonly deferredSession = new DeferredTask();\n private readonly summariesCache = new Map<string, UnreadSummary>();\n\n /**\n * Rooms whose cached followed-topics are stale after a reconnect and must\n * be refetched (and reconciled in place) the next time they are accessed.\n */\n private readonly staleRooms = new Set<string>();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoin(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('FollowedTopicUpdated', ev => this.handleFollowedTopicUpdated(ev));\n this.tracker.client.on('TopicFollowed', ev => this.handleTopicFollowed(ev));\n this.tracker.client.on('TopicUnfollowed', ev => this.handleTopicUnfollowed(ev));\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n }\n\n /**\n * Cache followed topics for all joined rooms in a space and fetch them in bulk if necessary.\n * Then you can get them using getRoomFollowedTopics().\n * @see getForRoom\n */\n public async cacheForSpace(spaceId: string | null): Promise<void> {\n if (spaceId && ! (await this.tracker.spaces.get()).has(spaceId)) {\n throw new Error(`You are not in space ${spaceId}`);\n }\n\n const rooms = await this.tracker.rooms.get();\n const roomIds = spaceId\n ? rooms.findBy('spaceId', spaceId).items.map(r => r.id)\n : rooms.items.filter(r => !r.spaceId).map(r => r.id);\n\n if (!roomIds.length) {\n return;\n }\n\n const needsFetch = roomIds.some(roomId => ! this.followedTopics.has(roomId) || this.staleRooms.has(roomId));\n if (! needsFetch) {\n return;\n }\n\n const spaceRegistryKey = `space_fetch_${spaceId || 'spaceless'}`;\n\n if (this.followedTopicsPromises.notExist(spaceRegistryKey)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {spaceId}});\n if (result.error) throw result.error;\n\n this.reconcileRoomsFollowedTopics(roomIds, result.data.followedTopics);\n }, spaceRegistryKey);\n }\n\n await this.followedTopicsPromises.get(spaceRegistryKey);\n }\n\n /**\n * Get followed topics for the given room.\n * @return Undefined if you are not in the room, collection otherwise.\n */\n public async getForRoom(roomId: string): Promise<ObservableIndexedObjectCollection<FollowedTopic> | undefined> {\n if (! (await this.tracker.rooms.get()).has(roomId)) {\n return undefined;\n }\n\n if (! this.followedTopics.has(roomId) || this.staleRooms.has(roomId)) {\n if (this.followedTopicsPromises.notExist(roomId)) {\n this.followedTopicsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetFollowedTopics', {location: {roomId}});\n\n if (result.error) {\n throw result.error;\n }\n\n this.applyRoomFollowedTopics(roomId, result.data.followedTopics);\n this.invalidateUnreadSummaries(roomId);\n }, roomId);\n }\n\n await this.followedTopicsPromises.get(roomId);\n }\n\n return this.followedTopics.get(roomId);\n }\n\n /**\n * Batch acknowledge all messages for given room.\n */\n public async ackRoom(roomId: string): Promise<void> {\n const collection = await this.getForRoom(roomId);\n\n if (! collection) {\n return;\n }\n\n for (const followedTopic of collection.items) {\n if (followedTopic.isUnread) {\n await this.tracker.client.send('Ack', {location: followedTopic.location});\n }\n }\n }\n\n /**\n * Summarize all unread messages or mentions from any topic in given location.\n * This method uses an internal cache, so it's ok to call it multiple times.\n * Capture the 'change' event to determine when it's worth calling this method again due to data changes.\n * @return Undefined if you are not in room.\n */\n public async summarize(location: ChatLocation): Promise<UnreadSummary> {\n const cacheKey = location.topicId\n ? `topic:${location.roomId}:${location.topicId}`\n : location.roomId\n ? `room:${location.roomId}`\n : location.spaceId\n ? `space:${location.spaceId}`\n : 'spaceless';\n\n if (this.summariesCache.has(cacheKey)) {\n return this.summariesCache.get(cacheKey)!;\n }\n\n let roomIds: string[] = [];\n let targetTopicId: string | undefined;\n const rooms = await this.tracker.rooms.get();\n\n if (location.topicId) {\n if (!location.roomId) {\n throw new Error(\"roomId is required when querying by topicId\");\n }\n roomIds = [location.roomId];\n targetTopicId = location.topicId;\n } else if (location.roomId) {\n roomIds = [location.roomId];\n } else if (location.spaceId) {\n await this.cacheForSpace(location.spaceId);\n roomIds = rooms.findBy('spaceId', location.spaceId).items.map(r => r.id);\n } else {\n await this.cacheForSpace(null);\n roomIds = rooms.items.filter(r => !r.spaceId).map(r => r.id);\n }\n\n let mentionCount = 0;\n let unreadTopicCount = 0;\n let unreadRoomCount = 0;\n\n for (const roomId of roomIds) {\n const collection = await this.getForRoom(roomId);\n\n if (!collection) {\n continue;\n }\n\n let isRoomUnreadCount = false;\n for (const topic of collection.items) {\n if (targetTopicId && topic.location.topicId !== targetTopicId) {\n continue;\n }\n\n if (topic.isUnread) {\n if (!isRoomUnreadCount) {\n unreadRoomCount++;\n isRoomUnreadCount = true;\n }\n unreadTopicCount++;\n }\n\n mentionCount += (topic.mentionCount ?? 0);\n }\n }\n\n const result = { mentionCount, unreadTopicCount, unreadRoomCount, isUnread: unreadTopicCount > 0 };\n this.summariesCache.set(cacheKey, result);\n\n return result;\n }\n\n /**\n * For internal use. If you want to delete the message, execute a proper command on client object.\n * @internal\n */\n public _deleteByTopicIds(roomId: string, ...topicIds: string[]): void {\n this.followedTopics.get(roomId)?.delete(...topicIds);\n topicIds.forEach(topicId => this.invalidateUnreadSummaries(roomId, topicId));\n }\n\n private handleSession(ev: Session): void {\n // Keep cached followed-topic collections (they drive unread indicators\n // that would otherwise blank on reconnect), but mark them stale and drop\n // the fetch guards so the next access/caching refetches and reconciles\n // them in place.\n for (const roomId of this.followedTopics.items.keys()) {\n this.staleRooms.add(roomId);\n }\n this.followedTopicsPromises.forgetAll();\n this.invalidateUnreadSummaries();\n this.deferredSession.resolve();\n }\n\n private handleNewMessage(ev: NewMessage): void {\n void this.updateLocallyFollowedTopicOnNewMessage(ev);\n }\n\n private handleFollowedTopicUpdated(ev: FollowedTopicUpdated): void {\n this.followedTopics.get(ev.followedTopic.location.roomId)?.set(ev.followedTopic);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleTopicFollowed(ev: TopicFollowed): void {\n this.setFollowedTopicsArray([ev.followedTopic.location.roomId], [ev.followedTopic]);\n this.invalidateUnreadSummaries(ev.followedTopic.location.roomId, ev.followedTopic.location.topicId);\n }\n\n private handleTopicUnfollowed(ev: TopicUnfollowed): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private handleRoomJoin(ev: RoomJoined): void {\n this.clearRoomFollowedTopicsStructures(ev.room.id);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.clearRoomFollowedTopicsStructures(ev.id);\n }\n\n private async handleNewTopic(ev: NewTopic): Promise<void> {\n if (this.followedTopics.has(ev.roomId)) {\n // Check if the new topic is followed by user\n // only if client asked for followed topics list before for this room\n const result = await this.tracker.client.send(\n 'GetFollowedTopics',\n {location: {roomId: ev.roomId, topicId: ev.topic.id}},\n );\n const followedTopic = result.data.followedTopics[0];\n if (followedTopic) {\n this.followedTopics.get(ev.roomId).set(followedTopic);\n this.invalidateUnreadSummaries(ev.roomId, ev.topic.id);\n }\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n this.followedTopics.get(ev.location.roomId)?.delete(ev.location.topicId);\n this.invalidateUnreadSummaries(ev.location.roomId, ev.location.topicId);\n }\n\n /**\n * Invalidate the summaries cache intentionally, only for the locations affected by the change.\n */\n private invalidateUnreadSummaries(roomId?: string, topicId?: string): void {\n if (roomId) {\n this.summariesCache.delete(`room:${roomId}`);\n\n if (topicId) {\n this.summariesCache.delete(`topic:${roomId}:${topicId}`);\n } else {\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith(`topic:${roomId}:`)) {\n this.summariesCache.delete(key);\n }\n }\n }\n\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.summariesCache.delete(key);\n }\n }\n } else {\n this.summariesCache.clear();\n }\n\n this.emit('change');\n }\n\n private invalidateUnreadSummariesForRooms(roomIds: string[]): void {\n const roomIdsSet = new Set(roomIds);\n roomIds.forEach(roomId => {\n this.summariesCache.delete(`room:${roomId}`);\n });\n\n for (const key of this.summariesCache.keys()) {\n if (key.startsWith('space:') || key === 'spaceless') {\n this.summariesCache.delete(key);\n continue;\n }\n if (key.startsWith('topic:')) {\n const parts = key.split(':');\n if (parts.length >= 2 && roomIdsSet.has(parts[1])) {\n this.summariesCache.delete(key);\n }\n }\n }\n\n this.emit('change');\n }\n\n private async updateLocallyFollowedTopicOnNewMessage(ev: NewMessage): Promise<void> {\n const roomFollowedTopics = this.followedTopics.get(ev.message.location.roomId);\n const followedTopic = roomFollowedTopics?.get(ev.message.location.topicId);\n\n if (!roomFollowedTopics || !followedTopic || ev.message.type === 'Ephemeral') {\n // Skip if we don't follow this room or message is ephemeral\n return;\n }\n\n const me = await this.tracker.getMe();\n const isMe = ev.message.author.user.id === me.id;\n let update: Partial<FollowedTopic>;\n\n if (isMe) {\n // Reset missed messages count if new message is authored by me\n update = {missed: 0, lastAckMessageId: ev.message.id};\n } else if (ev.message.type === 'Text') {\n // ...check for mentions if it's text message...\n const member = await this.tracker.rooms.getMe(ev.message.location.roomId);\n const roleIds = [...(member.spaceMember?.roles ?? []), ...(member.roles ?? [])];\n const mentionHandlers = [\n ...roleIds.map(id => `<@&${id}>`),\n `<@${me.id}>`,\n ];\n const mentionExists = mentionHandlers.some(handler => ev.message.content.includes(handler));\n\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n mentionCount: followedTopic.mentionCount + (mentionExists ? 1 : 0),\n };\n } else {\n // ...or just mark as unread.\n update = {\n missed: followedTopic.missed === null ? null : followedTopic.missed + 1,\n isUnread: true,\n };\n }\n\n roomFollowedTopics.set({...followedTopic, ...update});\n this.invalidateUnreadSummaries(ev.message.location.roomId, ev.message.location.topicId);\n }\n\n /**\n * Reconcile the followed-topics collection for a single room to exactly\n * match the provided list (upsert present, drop absent) without emitting an\n * intermediate empty state, and clear its stale marker. Does not touch the\n * unread summaries cache - callers decide how to invalidate it.\n */\n private applyRoomFollowedTopics(roomId: string, followedTopics: FollowedTopic[]): void {\n if (! this.followedTopics.has(roomId)) {\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\n followedTopic => followedTopic.location.topicId\n )]);\n }\n\n this.followedTopics.get(roomId).reconcile(...followedTopics);\n this.staleRooms.delete(roomId);\n }\n\n /**\n * Reconcile a batch of rooms from a single bulk GetFollowedTopics response.\n * Rooms with no followed topics in the response are reconciled to empty, so\n * topics unfollowed/removed during the downtime are correctly dropped.\n */\n private reconcileRoomsFollowedTopics(roomIds: string[], followedTopics: FollowedTopic[]): void {\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\n\n followedTopics.forEach(followedTopic => {\n (roomToTopics[followedTopic.location.roomId] ??= []).push(followedTopic);\n });\n\n roomIds.forEach(roomId => this.applyRoomFollowedTopics(roomId, roomToTopics[roomId] ?? []));\n\n this.invalidateUnreadSummariesForRooms(roomIds);\n }\n\n private setFollowedTopicsArray(roomIds: string[], followedTopics: FollowedTopic[]): void {\n const roomToTopics: {[roomId: string]: FollowedTopic[]} = {};\n\n // Reassign followed topics to limit collection change event emit\n followedTopics.forEach(followedTopic => {\n roomToTopics[followedTopic.location.roomId] ??= [];\n roomToTopics[followedTopic.location.roomId].push(followedTopic);\n });\n\n roomIds.forEach(roomId => {\n if (! this.followedTopics.has(roomId)) {\n this.followedTopics.set([roomId, new ObservableIndexedObjectCollection<FollowedTopic>(\n followedTopic => followedTopic.location.topicId\n )]);\n }\n\n if (roomToTopics[roomId]) {\n this.followedTopics.get(roomId).set(...roomToTopics[roomId]);\n }\n });\n\n this.invalidateUnreadSummariesForRooms(roomIds);\n }\n\n private clearRoomFollowedTopicsStructures(roomId: string): void {\n this.followedTopics.delete(roomId);\n this.followedTopicsPromises.forget(roomId);\n this.staleRooms.delete(roomId);\n this.invalidateUnreadSummaries(roomId);\n }\n}","import {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n Message,\n MessagesRedacted,\n NewMessage,\n NewTopic,\n Room, RoomDeleted,\n RoomJoined, RoomLeft,\n RoomMember, RoomMemberLeft, RoomMembers, RoomMembersJoined,\n RoomMemberUpdated, RoomUpdated, Session, SpaceDeleted, SpaceLeft, SpaceMemberLeft,\n SpaceMemberUpdated,\n Topic,\n TopicDeleted, TopicUpdated,\n UserUpdated,\n} from \"../types/src\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {MessagesManager} from \"./MessagesManager\";\nimport {FollowedTopicsManager} from \"./FollowedTopicsManager\";\n\nexport class RoomsManager {\n public readonly messages: MessagesManager;\n public readonly followedTopics: FollowedTopicsManager;\n\n private readonly list = new ObservableIndexedObjectCollection<Room>('id');\n private readonly topics = new IndexedCollection<string, ObservableIndexedObjectCollection<Topic>>();\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomMember>>();\n private readonly deferredSession = new DeferredTask();\n private readonly membersPromises = new PromiseRegistry();\n private readonly topicsPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.messages = new MessagesManager(tracker);\n this.followedTopics = new FollowedTopicsManager(tracker);\n\n this.tracker.client.on('NewMessage', ev => this.handleNewMessage(ev));\n this.tracker.client.on('MessagesRedacted', ev => this.handleMessagesRedacted(ev));\n this.tracker.client.on('NewTopic', ev => this.handleNewTopic(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoomJoined', ev => this.handleRoomJoined(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomLeft(ev));\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicUpdated', ev => this.handleTopicUpdated(ev));\n this.tracker.client.on('RoomMembersJoined', ev => this.handleRoomMembersJoined(ev));\n this.tracker.client.on('RoomMemberLeft', ev => this.handleRoomMemberLeft(ev));\n this.tracker.client.on('RoomMembers', ev => this.handleRoomMembers(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n /**\n * Get collection of room members.\n */\n public async getMembers(roomId: string): Promise<ObservableIndexedObjectCollection<RoomMember> | undefined> {\n if (this.membersPromises.notExist(roomId)) {\n this.membersPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRoomMembers', {id: roomId});\n if (result.error) {\n throw result.error;\n }\n this.handleRoomMembers(result.data);\n }, roomId);\n }\n\n await this.membersPromises.get(roomId);\n return this.members.get(roomId);\n }\n\n /**\n * Get a room member representing the current user.\n */\n public async getMe(roomId: string): Promise<RoomMember | undefined> {\n const userId = (await this.tracker.getMe()).id;\n\n if (! this.list.has(roomId)) {\n // User is not in passed room.\n return undefined;\n }\n\n const members = await this.getMembers(roomId);\n return members?.items.find(member => (member.user?.id ?? member.spaceMember.user.id) === userId);\n }\n\n /**\n * Get collection of all the rooms you are in.\n */\n public async get(): Promise<ObservableIndexedObjectCollection<Room>> {\n await this.deferredSession.promise;\n return this.list;\n }\n\n /**\n * Get a collection of locally cached Topic objects for given room.\n * You can pass topic ids as second argument, to try to fetch them from the server.\n */\n public async getTopics(roomId: string, tryToFetchTopicIds?: string[]): Promise<ObservableIndexedObjectCollection<Topic> | undefined> {\n await this.deferredSession.promise;\n\n if (tryToFetchTopicIds?.length) {\n // Topic can be fetched if it isn't already cached and fetch is not already in progress\n const canFetch = (topicId: string) => ! this.topics.get(roomId)?.has(topicId) && ! this.topicsPromises.has(roomId + topicId);\n const idsToFetch = tryToFetchTopicIds.filter(canFetch);\n\n if (idsToFetch.length) {\n const promise = this.tracker\n .client\n .send('GetTopics', {roomId, topicIds: idsToFetch})\n .then(result => this.topics.get(result.data.location.roomId)?.set(...result.data.topics));\n\n idsToFetch.forEach(topicId => this.topicsPromises.register(promise, roomId + topicId));\n }\n\n for (const topicId of tryToFetchTopicIds) {\n await this.topicsPromises.get(roomId + topicId);\n }\n }\n\n return this.topics.get(roomId);\n }\n\n /**\n * For internal use. If you want to delete topic, execute a proper command on client object.\n * @internal\n */\n public _deleteTopicsFromRoom(roomId: string, ...topicIds: string[]): void {\n this.topics.get(roomId)?.delete(...topicIds);\n }\n\n private deleteRoom(...roomIds: string[]): void {\n this.list.delete(...roomIds);\n this.members.delete(...roomIds);\n this.membersPromises.forget(...roomIds);\n\n for (const roomId of roomIds) {\n const topicIds: string[] = this.topics.get(roomId)?.items.map(topic => topic.id) ?? [];\n this.followedTopics._deleteByTopicIds(roomId, ...topicIds);\n }\n\n this.topics.delete(...roomIds);\n }\n\n private deleteRoomsBySpaceId(spaceId: string): void {\n this.deleteRoom(\n ...this.list.findBy('spaceId', spaceId).items.map(room => room.id)\n );\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n // Update members of rooms related to this space\n for (const room of this.list.findBy('spaceId', ev.spaceId).items) {\n const roomMembers = this.members.get(room.id);\n\n if (!roomMembers || !roomMembers.has(ev.userId)) {\n // Skip update if member list for this room is not loaded\n // or user is not in room\n continue;\n }\n\n // Update space member in roomMember, but first fill the user object (it's null in event)\n const roomMember = roomMembers.get(ev.userId);\n const spaceMember = ev.member;\n spaceMember.user = roomMember.spaceMember.user;\n roomMembers.set({ ...roomMember, spaceMember });\n }\n }\n\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\n this.list\n .findBy('spaceId', ev.spaceId).items\n .forEach(room => this.members.get(room.id)?.delete(ev.userId));\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (! this.members.has(ev.roomId)) {\n // We do not track member list for this room.\n return;\n }\n\n const members = this.members.get(ev.roomId);\n const member = members.get(ev.userId);\n const newMember = ev.member;\n const user = member.spaceMember?.user ?? member.user;\n\n // Preserving user object, because it's not included in event\n if (newMember.spaceMember) {\n newMember.spaceMember.user = user;\n } else {\n newMember.user = user;\n }\n\n members.set(newMember);\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n this.deleteRoomsBySpaceId(ev.id);\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const collection = this.topics.get(ev.location.roomId);\n collection.delete(ev.location.topicId);\n\n const room = this.list.get(ev.location.roomId);\n if (room.defaultTopic?.id === ev.location.topicId) {\n this.list.set({...room, defaultTopic: null});\n }\n }\n\n private handleNewTopic(ev: NewTopic): void {\n this.addJoinedRoomTopics(ev.roomId, ev.topic);\n }\n\n private addJoinedRoomTopics(roomId: string, ...topics: Topic[]): void {\n if (this.topics.has(roomId)) {\n this.topics.get(roomId).set(...topics);\n } else {\n this.topics.set([roomId, new ObservableIndexedObjectCollection<Topic>('id', topics)]);\n }\n }\n\n private handleRoomJoined(ev: RoomJoined): void {\n this.addJoinedRooms(ev.room);\n }\n\n private handleRoomUpdated(ev: RoomUpdated): void {\n if (this.list.has(ev.room.id)) {\n this.list.set(ev.room);\n }\n }\n\n private handleRoomDeleted(ev: RoomDeleted): void {\n this.deleteRoom(ev.id);\n }\n\n private handleTopicUpdated(ev: TopicUpdated): void {\n const room = this.list.get(ev.location.roomId);\n\n if (this.topics.get(ev.location.roomId)?.has(ev.topic.id)) {\n this.topics.get(ev.location.roomId).set(ev.topic);\n }\n\n if (room.defaultTopic.id === ev.topic.id) {\n const newRoom = { ...room };\n newRoom.defaultTopic = ev.topic;\n this.list.set(newRoom);\n }\n }\n\n private addJoinedRooms(...rooms: Room[]): void {\n for (const room of rooms) {\n if (room.defaultTopic) {\n this.addJoinedRoomTopics(room.id, room.defaultTopic);\n }\n\n if (room.type === 'Pm' && room.recipients) {\n // Treat PM recipients as normal room members.\n // We are registering fake promise in `memberPromises`\n // because GetMembers are not supported for PM rooms.\n this.handleRoomMembers({\n id: room.id,\n members: room.recipients.map(user => ({\n user,\n spaceMember: null,\n roles: null,\n customColor: null,\n customNick: null,\n customAvatar: null,\n extras: '',\n })),\n });\n this.membersPromises.register(Promise.resolve(), room.id);\n }\n }\n this.list.set(...rooms);\n }\n\n private handleRoomLeft(ev: RoomLeft): void {\n this.deleteRoom(ev.id);\n }\n\n private handleRoomMembersJoined(ev: RoomMembersJoined): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).set(...ev.members);\n }\n }\n\n private handleRoomMemberLeft(ev: RoomMemberLeft): void {\n if (this.members.has(ev.roomId)) {\n this.members.get(ev.roomId).delete(ev.userId);\n }\n }\n\n private handleRoomMembers(ev: RoomMembers): void {\n if (! this.members.has(ev.id)) {\n this.members.set([\n ev.id,\n new ObservableIndexedObjectCollection(\n member => member.user?.id ?? member.spaceMember.user.id,\n ev.members,\n )\n ]);\n } else {\n // Reconcile into the existing (bound) collection so a reconnect\n // refetch updates it in place instead of leaving stale members.\n this.members.get(ev.id).reconcile(...ev.members);\n }\n }\n\n private handleSession(ev: Session): void {\n const stateRoomIds = new Set(ev.state.rooms.map(room => room.id));\n\n // Remove only rooms that were left/deleted on the server during the\n // downtime, reusing the cascade cleanup (members, topics, followed\n // topics). Surviving rooms keep their identity and bindings.\n const removedRoomIds = this.list.items\n .filter(room => ! stateRoomIds.has(room.id))\n .map(room => room.id);\n if (removedRoomIds.length) {\n this.deleteRoom(...removedRoomIds);\n }\n\n // Invalidate lazy caches so the next access refetches fresh data, but\n // keep the collection objects: handleRoomMembers reconciles into them,\n // so bound views refresh in place without blanking.\n this.membersPromises.forgetAll();\n this.topicsPromises.forgetAll();\n\n // Upsert surviving/new rooms from the authoritative snapshot.\n this.addJoinedRooms(...ev.state.rooms);\n\n this.deferredSession.resolve();\n }\n\n private handleUserUpdated(ev: UserUpdated): void {\n // Update room members users\n this.members.items.forEach((members) => {\n const member = members.get(ev.user.id);\n\n if (! member) {\n // Skip room; updated user is not here\n return;\n }\n\n const newMember: RoomMember = {...member};\n\n if (member.user) {\n newMember.user = ev.user;\n } else {\n newMember.spaceMember.user = ev.user;\n }\n\n members.set(newMember);\n });\n\n // Update recipients users\n const newRooms: Room[] = [];\n this.list.items.forEach(room => {\n if (room.recipients?.some(user => user.id === ev.user.id)) {\n room.recipients = room.recipients.map(user => user.id === ev.user.id ? ev.user : user);\n newRooms.push({...room});\n }\n });\n this.list.set(...newRooms);\n }\n\n private handleNewMessage(ev: NewMessage): void {\n const topics = this.topics.get(ev.message.location.roomId);\n const topic = topics?.get(ev.message.location.topicId);\n\n if (!topic) {\n return; // No topic found, nothing to update\n }\n\n const newTopic = {\n ...topic,\n messageCount: topic.messageCount + 1,\n lastMessage: ev.message,\n };\n\n topics.set(newTopic);\n const room = this.list.get(ev.message.location.roomId);\n\n if (room.defaultTopic?.id === ev.message.location.topicId) {\n this.list.set({ ...room, defaultTopic: newTopic });\n }\n }\n\n private async handleMessagesRedacted(ev: MessagesRedacted): Promise<void> {\n // Remove redacted messages from topic and update metadata\n const topics = this.topics.get(ev.location.roomId);\n const topic = topics?.get(ev.location.topicId);\n if (topic) {\n const messageCount = Math.max(topic.messageCount - ev.ids.length, 0);\n const lastMessage: Message = messageCount > 0 ? await this.messages._resolveLastMessage(ev.location) : null;\n topics.set({ ...topic, messageCount, lastMessage } as Topic);\n }\n }\n}","import {Role, RoomMember, SpaceMember, User} from \"../types/src\";\n\nexport function reorderRolesOnPriorityUpdate(allRoles: Role[], oldRole: Role, updatedRole: Role): Role[] {\n // If the priority has changed, adjust the rest of roles\n const increased = (updatedRole.priority - oldRole.priority) > 0;\n const decreased = ! increased;\n const changedRoles: Role[] = [];\n\n allRoles.forEach(role => {\n if (role.id === updatedRole.id) {\n // Skip the updated role\n return;\n }\n if (increased && oldRole.priority <= role.priority) {\n role.priority--;\n changedRoles.push(role);\n }\n if (decreased && updatedRole.priority <= role.priority) {\n role.priority++;\n changedRoles.push(role);\n }\n });\n\n return changedRoles;\n}\n\nexport function extractUserFromMember(member: RoomMember | SpaceMember): User | null {\n return member.user ?? (member as RoomMember).spaceMember?.user;\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {IndexedCollection, ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n NewRole,\n NewRoom,\n Role,\n RoleDeleted,\n RoleUpdated,\n RoomDeleted,\n RoomSummary,\n RoomSummaryUpdated,\n RoomUpdated,\n Session,\n Space,\n SpaceDeleted,\n SpaceJoined,\n SpaceLeft,\n SpaceMember,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMembers,\n SpaceMemberUpdated,\n SpaceRooms,\n SpaceUpdated,\n UserUpdated\n} from \"../types/src\";\nimport {DeferredTask, PromiseRegistry} from \"./AsyncUtils\";\nimport {reorderRolesOnPriorityUpdate} from \"./functions\";\n\nexport class SpacesManager {\n private readonly list = new ObservableIndexedObjectCollection<Space>('id');\n private readonly roles = new IndexedCollection<string, ObservableIndexedObjectCollection<Role>>();\n private readonly rooms = new IndexedCollection<string, ObservableIndexedObjectCollection<RoomSummary>>();\n private readonly roomIdToSpaceId = new IndexedCollection<string, string>();\n private readonly members = new IndexedCollection<string, ObservableIndexedObjectCollection<SpaceMember>>();\n private readonly deferredSession = new DeferredTask();\n private readonly roomsPromises = new PromiseRegistry();\n private readonly membersPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('NewRoom', ev => this.handleNewRoom(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomUpdated', ev => this.handleRoomUpdated(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceUpdated', ev => this.handleSpaceUpdated(ev));\n this.tracker.client.on('SpaceJoined', ev => this.handleSpaceJoined(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceMemberJoined', ev => this.handleSpaceMemberJoined(ev));\n this.tracker.client.on('SpaceMemberLeft', ev => this.handleSpaceMemberLeft(ev));\n this.tracker.client.on('SpaceMembers', ev => this.handleSpaceMembers(ev));\n this.tracker.client.on('SpaceRooms', ev => this.handleSpaceRooms(ev));\n this.tracker.client.on('RoomSummaryUpdated', ev => this.handleRoomSummaryUpdated(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('UserUpdated', ev => this.handleUserUpdated(ev));\n this.tracker.client.on('NewRole', ev => this.handleNewRole(ev));\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\n this.tracker.client.on('RoleUpdated', ev => this.handleRoleUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n /**\n * Get collection of all the spaces you are in.\n */\n public async get(): Promise<ObservableIndexedObjectCollection<Space>> {\n await this.deferredSession.promise;\n return this.list;\n }\n\n /**\n * Get collection of space roles.\n */\n public async getRoles(spaceId: string): Promise<ObservableIndexedObjectCollection<Role> | undefined> {\n await this.deferredSession.promise;\n return this.roles.get(spaceId);\n }\n\n /**\n * Get collection of the all available rooms inside given space.\n */\n public async getRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined> {\n if (this.roomsPromises.notExist(spaceId)) {\n this.roomsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetSpaceRooms', {id: spaceId});\n if (result.error) {\n throw result.error;\n }\n this.handleSpaceRooms(result.data);\n }, spaceId);\n }\n\n await this.roomsPromises.get(spaceId);\n return this.rooms.get(spaceId);\n }\n\n /**\n * Drop the cached room listing of the space and fetch it again from the server.\n * Room visibility depends on things this client is not notified about (invitations,\n * permission changes), so the listing needs a way to be pulled anew on demand.\n */\n public async refreshRooms(spaceId: string): Promise<ObservableIndexedObjectCollection<RoomSummary> | undefined> {\n this.roomsPromises.forget(spaceId);\n return this.getRooms(spaceId);\n }\n\n /**\n * Get collection of space members.\n */\n public async getMembers(spaceId: string): Promise<ObservableIndexedObjectCollection<SpaceMember> | undefined> {\n if (this.membersPromises.notExist(spaceId)) {\n this.membersPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetSpaceMembers', {id: spaceId});\n if (result.error) {\n throw result.error;\n }\n this.handleSpaceMembers(result.data);\n }, spaceId);\n }\n\n await this.membersPromises.get(spaceId);\n return this.members.get(spaceId);\n }\n\n /**\n * Get a space member representing the current user.\n */\n public async getMe(spaceId: string): Promise<SpaceMember | undefined> {\n const userId = (await this.tracker.getMe()).id;\n\n if (! this.list.has(spaceId)) {\n // User is not in passed space.\n return undefined;\n }\n\n const members = await this.getMembers(spaceId);\n return members?.items.find(member => member.user.id === userId);\n }\n\n private handleNewRole(ev: NewRole): void {\n const collection = this.roles.get(ev.spaceId);\n collection.set(ev.role);\n this.list.get(ev.spaceId).roles = collection.items;\n }\n\n private handleNewRoom(ev: NewRoom): void {\n this.rooms.get(ev.spaceId)?.set(ev.summary);\n this.roomIdToSpaceId.set([ev.summary.id, ev.spaceId]);\n }\n\n private handleRoomUpdated(ev: RoomUpdated): void {\n if (ev.room.spaceId && this.rooms.has(ev.room.spaceId)) {\n const rooms = this.rooms.get(ev.room.spaceId);\n rooms.set({\n ...rooms.get(ev.room.id),\n name: ev.room.name,\n description: ev.room.description,\n } as RoomSummary);\n }\n }\n\n private async handleRoomDeleted(ev: RoomDeleted): Promise<void> {\n const spaceId = this.roomIdToSpaceId.get(ev.id);\n this.roomIdToSpaceId.delete(ev.id);\n\n if (! spaceId) {\n return;\n }\n\n const space = this.list.get(spaceId);\n let spaceChanged = false;\n\n this.rooms.get(spaceId)?.delete(ev.id);\n\n if (space.systemRoom === ev.id) {\n space.systemRoom = null;\n spaceChanged = true;\n }\n\n if (space.defaultRooms.includes(ev.id)) {\n space.defaultRooms = space.defaultRooms.filter(roomId => roomId !== ev.id);\n spaceChanged = true;\n }\n\n if (spaceChanged) {\n this.list.set(space);\n }\n }\n\n private handleRoleDeleted(ev: RoleDeleted): void {\n const collection = this.roles.get(ev.spaceId);\n collection.delete(ev.id);\n this.list.get(ev.spaceId).roles = collection.items;\n }\n\n private handleSpaceUpdated(ev: SpaceUpdated): void {\n this.list.set(ev.space);\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n const roomIds = this.rooms.get(ev.id)?.items.map(item => item.id) ?? [];\n this.roomIdToSpaceId.delete(...roomIds);\n\n this.roles.delete(ev.id);\n this.members.delete(ev.id);\n this.membersPromises.forget(ev.id);\n this.rooms.delete(ev.id);\n this.roomsPromises.forget(ev.id);\n this.list.delete(ev.id);\n }\n\n private handleSpaceJoined(ev: SpaceJoined): void {\n this.addJoinedSpaces(ev.space);\n }\n\n private addJoinedSpaces(...spaces: Space[]): void {\n this.roles.set(...(spaces.map(space => [\n space.id,\n new ObservableIndexedObjectCollection<Role>('id', space.roles)\n ]) as [string, ObservableIndexedObjectCollection<Role>][]));\n this.list.set(...spaces);\n }\n\n private handleSpaceMemberJoined(ev: SpaceMemberJoined): void {\n if (this.members.has(ev.spaceId)) {\n this.members.get(ev.spaceId).set(ev.member);\n }\n }\n\n private handleSpaceMemberLeft(ev: SpaceMemberLeft): void {\n if (this.members.has(ev.spaceId)) {\n this.members.get(ev.spaceId).delete(ev.userId);\n }\n }\n\n private handleSpaceMembers(ev: SpaceMembers): void {\n if (! this.members.has(ev.id)) {\n this.members.set([\n ev.id,\n new ObservableIndexedObjectCollection(member => member?.user.id, ev.members)\n ]);\n } else {\n // Reconcile into the existing (bound) collection so a reconnect\n // refetch updates it in place instead of leaving stale members.\n this.members.get(ev.id).reconcile(...ev.members);\n }\n }\n\n private handleSpaceRooms(ev: SpaceRooms): void {\n if (! this.rooms.has(ev.id)) {\n this.rooms.set([ev.id, new ObservableIndexedObjectCollection('id', ev.summaries)]);\n } else {\n this.rooms.get(ev.id).reconcile(...ev.summaries);\n }\n ev.summaries.forEach(summary => this.roomIdToSpaceId.set([summary.id, ev.id]));\n }\n\n private async handleRoomSummaryUpdated(ev: RoomSummaryUpdated): Promise<void> {\n const spaceId = this.roomIdToSpaceId.get(ev.summary.id);\n const summariesPromise = this.roomsPromises.get(spaceId);\n\n /**\n * Update summary only if the list was already loaded.\n * RoomSummaryUpdated event has a partial summary, so we need to update the existing summary by merging it.\n */\n if (spaceId && summariesPromise) {\n await summariesPromise;\n\n const summaries = this.rooms.get(spaceId);\n const oldSummary = summaries.get(ev.summary.id);\n let newSummary: RoomSummary;\n\n if (oldSummary) {\n newSummary = {...oldSummary, ...ev.summary};\n } else {\n newSummary = ev.summary;\n }\n\n summaries.set(newSummary);\n }\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n if (this.members.has(ev.spaceId)) {\n const members = this.members.get(ev.spaceId);\n const member = members.get(ev.userId);\n members.set({...ev.member, user: member.user});\n }\n }\n\n private handleRoleUpdated(ev: RoleUpdated): void {\n const roles = this.roles.get(ev.spaceId);\n const oldRole = roles.get(ev.role.id);\n const newRole = ev.role;\n const rolesToUpdate = [newRole];\n\n if (oldRole.priority !== newRole.priority) {\n rolesToUpdate.push(\n ...reorderRolesOnPriorityUpdate(roles.items, oldRole, newRole)\n );\n }\n\n this.roles.get(ev.spaceId).set(...rolesToUpdate);\n }\n\n private handleSession(ev: Session): void {\n const stateSpaceIds = new Set(ev.state.spaces.map(space => space.id));\n\n // Remove only spaces that were left/deleted on the server during the\n // downtime, reusing the cascade cleanup (roles, rooms, members, index).\n const removedSpaceIds = this.list.items\n .filter(space => ! stateSpaceIds.has(space.id))\n .map(space => space.id);\n for (const spaceId of removedSpaceIds) {\n this.handleSpaceDeleted({ id: spaceId } as SpaceDeleted);\n }\n\n // Invalidate lazy caches (rooms/members) but keep their objects so the\n // next access refetches and reconciles them in place.\n this.roomsPromises.forgetAll();\n this.membersPromises.forgetAll();\n\n // Reconcile roles in place (kept, possibly bound object) and upsert the\n // spaces from the authoritative snapshot.\n for (const space of ev.state.spaces) {\n if (this.roles.has(space.id)) {\n this.roles.get(space.id).reconcile(...space.roles);\n } else {\n this.roles.set([\n space.id,\n new ObservableIndexedObjectCollection<Role>('id', space.roles),\n ]);\n }\n }\n\n this.list.set(...ev.state.spaces);\n\n this.deferredSession.resolve();\n }\n\n private handleUserUpdated(ev: UserUpdated): void {\n this.members.items.forEach((members) => {\n const member = members.get(ev.user.id);\n\n if (! member) {\n // Skip space; updated user is not here\n return;\n }\n\n members.set({...member, user: ev.user});\n });\n }\n}","export enum Layer {\n Global,\n Space,\n Room,\n Topic,\n}\n\nexport class PermissionDefinition {\n value: number;\n maxLayer: Layer;\n}\n\nexport class Permissions {\n public static readonly list = {\n Root: {value: 1 << 0, maxLayer: Layer.Room},\n CreateSpaces: {value: 1 << 1, maxLayer: Layer.Global},\n ManageSpace: {value: 1 << 2, maxLayer: Layer.Space},\n ManageRoles: {value: 1 << 3, maxLayer: Layer.Space},\n //ManageRoom: {value: 1 << 4, maxLayer: Layer.Room},\n CreateTopics: {value: 1 << 5, maxLayer: Layer.Room},\n ManageTopic: {value: 1 << 6, maxLayer: Layer.Topic},\n ManageMemberProfiles: {value: 1 << 7, maxLayer: Layer.Space},\n ManageMemberRoles: {value: 1 << 8, maxLayer: Layer.Room},\n CreateMessages: {value: 1 << 9, maxLayer: Layer.Topic},\n ManagePermissions: {value: 1 << 10, maxLayer: Layer.Topic},\n CreateRooms: {value: 1 << 11, maxLayer: Layer.Space},\n ManageRoom: {value: 1 << 12, maxLayer: Layer.Room},\n CreateEmoticons: {value: 1 << 13, maxLayer: Layer.Space},\n ManageEmoticons: {value: 1 << 14, maxLayer: Layer.Space},\n ManageBans: {value: 1 << 15, maxLayer: Layer.Room},\n Kick: {value: 1 << 16, maxLayer: Layer.Room},\n ChangeOwnProfile: {value: 1 << 17, maxLayer: Layer.Space},\n ChangeOwnColor: {value: 1 << 18, maxLayer: Layer.Room},\n RedactMessages: {value: 1 << 19, maxLayer: Layer.Topic},\n AddMembers: {value: 1 << 20, maxLayer: Layer.Space},\n React: {value: 1 << 21, maxLayer: Layer.Topic},\n CreatePolls: {value: 1 << 22, maxLayer: Layer.Topic},\n MentionAllRoles: {value: 1 << 23, maxLayer: Layer.Topic},\n };\n\n public static getNames(): (keyof typeof this.list)[] {\n return Object.keys(this.list) as any;\n }\n\n public static getByName(name: keyof typeof this.list): PermissionDefinition | undefined {\n return this.list[name];\n }\n\n public static canBeDefinedOnLayer(permissionName: keyof typeof this.list, layer: Layer): boolean {\n const def = this.getByName(permissionName);\n\n if (! def) {\n throw new Error(`Invalid permission name: ${permissionName}`);\n }\n\n return layer <= this.getByName(permissionName).maxLayer;\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n ChatLocation,\n PermissionOverwrites, PermissionOverwritesTarget,\n PermissionOverwritesUpdated,\n PermissionOverwritesValue,\n RoleDeleted,\n RoomDeleted,\n RoomLeft, RoomMember, RoomMemberUpdated, Session,\n SpaceDeleted,\n SpaceLeft, SpaceMember,\n SpaceMemberUpdated,\n TopicDeleted,\n} from \"../types/src\";\nimport {ChangeEventMap, EventTarget} from \"../EventTarget\";\nimport {IndexedCollection} from \"../IndexedObjectCollection\";\nimport {Permissions} from \"../Permissions\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\n\nconst getOvId = (\n location: ChatLocation,\n target?: PermissionOverwritesTarget,\n) => [location.spaceId, location.roomId, location.topicId, target?.type, target?.userId, target?.roleId].filter(Boolean).join('/');\n\nconst getOvIdByObject\n = (overwrites: PermissionOverwrites | PermissionOverwritesUpdated): string => getOvId(overwrites.location, overwrites.target);\n\ninterface CheckPermissionsResult {\n /**\n * @deprecated Use `hasAll` instead.\n */\n ok: boolean;\n hasAll: boolean;\n hasAny: boolean;\n missing: string[];\n}\n\ntype PermissionsManagerEventMap = ChangeEventMap<void>;\n\nexport class PermissionsManager extends EventTarget<PermissionsManagerEventMap> {\n private readonly overwrites = new IndexedCollection<string, PermissionOverwrites>();\n private readonly overwritesPromises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n super();\n this.tracker.client.on('PermissionOverwrites', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('PermissionOverwritesUpdated', ev => this.handlePermissionOverwrites(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('SpaceLeft', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('RoomDeleted', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('RoomLeft', ev => this.handleRoomDeleted(ev));\n this.tracker.client.on('TopicDeleted', ev => this.handleTopicDeleted(ev));\n this.tracker.client.on('RoleDeleted', ev => this.handleRoleDeleted(ev));\n this.tracker.client.on('SpaceMemberUpdated', ev => this.handleSpaceMemberUpdated(ev));\n this.tracker.client.on('RoomMemberUpdated', ev => this.handleRoomMemberUpdated(ev));\n this.tracker.client.on('Session', ev => this.handleSession(ev));\n }\n\n public async getOverwrites(\n location: ChatLocation,\n target: PermissionOverwritesTarget,\n ): Promise<PermissionOverwrites | undefined> {\n this.validateLocation(location);\n\n const id = getOvId(location, target);\n\n if (this.overwritesPromises.notExist(id)) {\n this.overwritesPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send(\n 'GetPermissionOverwrites',\n {location, target},\n );\n if (result.error) {\n throw result.error;\n }\n this.handlePermissionOverwrites(result.data);\n }, id);\n }\n\n await this.overwritesPromises.get(id);\n return this.overwrites.get(id);\n }\n\n public async check(\n permissionNames: (keyof typeof Permissions.list)[],\n location: ChatLocation,\n ): Promise<CheckPermissionsResult> {\n if (! permissionNames.length) {\n throw new Error('Permission names array cannot be empty');\n }\n\n const ownedPermissions = await this.calculatePermissions(location);\n const missing: string[] = [];\n\n permissionNames.forEach(name => {\n if (~ ownedPermissions & Permissions.getByName(name).value) {\n missing.push(name as string);\n }\n });\n\n return {\n ok: missing.length === 0,\n hasAll: missing.length === 0,\n hasAny: missing.length < permissionNames.length,\n missing,\n };\n }\n\n public async calculatePermissions(location: ChatLocation): Promise<number> {\n const room = location.roomId ? (await this.tracker.rooms.get()).get(location.roomId) : null;\n location = {\n spaceId: location.spaceId ?? room?.spaceId,\n roomId: location.roomId,\n topicId: location.topicId,\n };\n\n this.validateLocation(location);\n\n const userId = (await this.tracker.getMe()).id;\n const [spaceMember, roomMember] = await this.fetchMembersOrFail(location);\n const userRoles: string[] = [...(spaceMember?.roles ?? []), ...(roomMember?.roles ?? [])];\n const promises: Promise<PermissionOverwritesValue>[] = [\n // Global user overwrites\n this.getOverwrites({}, { type: 'User', userId }).then(v => v.overwrites),\n ];\n\n if (location.spaceId && (await this.tracker.spaces.get())?.has(location.spaceId)) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId};\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (room) {\n const filterLocation: ChatLocation = {spaceId: location.spaceId, roomId: location.roomId};\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(filterLocation, userRoles));\n }\n promises.push(this.getOverwrites(filterLocation, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n if (location.topicId && (await this.tracker.rooms.getTopics(location.roomId))?.has(location.topicId)) {\n if (userRoles.length) {\n promises.push(this.collectRoleOverwrites(location, userRoles));\n }\n promises.push(this.getOverwrites(location, { type: 'User', userId }).then(v => v.overwrites));\n }\n\n return this.resolveOverwritesHierarchy(await Promise.all(promises));\n }\n\n private handlePermissionOverwrites(ev: PermissionOverwritesUpdated | PermissionOverwrites): void {\n this.overwrites.set([getOvIdByObject(ev), ev]);\n this.emit('change');\n }\n\n private handleSpaceDeleted(ev: SpaceDeleted | SpaceLeft): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.id}));\n this.overwritesPromises.forget(...ids);\n }\n\n private async handleRoomDeleted(ev: RoomDeleted | RoomLeft): Promise<void> {\n const room = (await this.tracker.rooms.get()).get(ev.id);\n if (room) {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: room.spaceId, roomId: room.id}));\n this.overwritesPromises.forget(...ids);\n }\n }\n\n private handleTopicDeleted(ev: TopicDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId(ev.location));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleRoleDeleted(ev: RoleDeleted): void {\n const ids = this.deleteOverwritesByIdPrefix(getOvId({spaceId: ev.spaceId}, { type: 'Role', roleId: ev.id }));\n this.overwritesPromises.forget(...ids);\n }\n\n private handleSpaceMemberUpdated(ev: SpaceMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in space could potentially have changed\n this.emit('change');\n }\n }\n\n private handleRoomMemberUpdated(ev: RoomMemberUpdated): void {\n if (ev.userId === this.tracker.me?.id) {\n // User roles in room could potentially have changed\n this.emit('change');\n }\n }\n\n /**\n * @return Matched and deleted ids\n */\n private deleteOverwritesByIdPrefix(prefix: string): string[] {\n const ids: string[] = [];\n this.overwrites.items.forEach((overwrites) => {\n const id = getOvIdByObject(overwrites);\n if (id.startsWith(prefix)) {\n ids.push(id);\n this.overwrites.delete(id);\n }\n });\n return ids;\n }\n\n private async collectRoleOverwrites(\n location: ChatLocation,\n userRoles: string[],\n ): Promise<PermissionOverwritesValue> {\n const roleOverwrites = await Promise.all(userRoles.map(\n roleId => this.getOverwrites(location, { type: 'Role', roleId }),\n ));\n\n return this.resolveOverwritesFromRolesByOrder(location.spaceId, roleOverwrites);\n }\n\n private async resolveOverwritesFromRolesByOrder(\n spaceId: string,\n overwrites: PermissionOverwrites[],\n ): Promise<PermissionOverwritesValue> {\n let allows = 0, denies = 0;\n const roles = await this.tracker.spaces.getRoles(spaceId);\n const sortedOverwrites = overwrites.sort(\n (a, b) =>\n roles.get(a.target.roleId).priority - roles.get(b.target.roleId).priority\n );\n\n // Max length of bit word\n const permissionsLength = overwrites.reduce(\n (previousValue: number, currentValue: PermissionOverwrites) =>\n Math.max(\n previousValue,\n currentValue.overwrites.allow?.toString(2).length ?? 0,\n currentValue.overwrites.deny?.toString(2).length ?? 0,\n ),\n 0,\n );\n\n sortedOverwrites.forEach(overwriteEvent => {\n const overwrites = overwriteEvent.overwrites;\n const revDecDenies = overwrites.deny?.toString(2).split('').reverse().join('') ?? '';\n const revDecAllows = overwrites.allow?.toString(2).split('').reverse().join('') ?? '';\n\n for (let i = 0; i < permissionsLength; i++) {\n const deny = parseInt(revDecDenies[i] ?? '0');\n const allow = parseInt(revDecAllows[i] ?? '0');\n\n if (deny) {\n denies |= 1 << i;\n }\n\n if (allow) {\n allows |= 1 << i;\n }\n }\n });\n\n return {allow: allows, deny: denies};\n }\n\n private resolveOverwritesHierarchy(permissionOverwritesValues: PermissionOverwritesValue[]): number {\n let result = 0;\n\n for (const value of permissionOverwritesValues) {\n if (value.allow & Permissions.getByName('Root').value) {\n return this.getRootAccessValue();\n }\n\n result = (result & ~value.deny) | value.allow;\n }\n\n return result;\n }\n\n private getRootAccessValue(): number {\n let result = 0;\n\n for (const name of Permissions.getNames()) {\n result |= Permissions.getByName(name).value;\n }\n\n return result;\n }\n\n private async fetchMembersOrFail(location: ChatLocation): Promise<[SpaceMember | null, RoomMember | null]> {\n const results = await Promise.all([\n location.spaceId ? this.tracker.spaces.getMe(location.spaceId) : null,\n location.roomId ? this.tracker.rooms.getMe(location.roomId) : null,\n ]);\n\n const spaceFail = location.spaceId && ! results[0];\n const roomFail = location.roomId && ! results[1];\n\n if (spaceFail || roomFail) {\n const layer = spaceFail ? `space (${location.spaceId})` : `room (${location.roomId})`;\n throw new Error(`Attempting to calculate permissions for a ${layer} that the user does not belong to`);\n }\n\n return results;\n }\n\n private validateLocation(location: ChatLocation): void {\n if (location.topicId && ! location.roomId) {\n throw new Error('Corrupted arguments hierarchy');\n }\n }\n\n private handleSession(ev: Session): void {\n // Drop the fetch guards so permission checks recompute against fresh\n // overwrites (getOverwrites refetches and upserts on the next access),\n // and notify consumers to recompute so bound permission UI is never\n // left showing stale results after a reconnect.\n this.overwritesPromises.forgetAll();\n this.emit('change');\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {\n IndexedCollection,\n ObservableIndexedObjectCollection\n} from \"../IndexedObjectCollection\";\nimport {Emoticon, EmoticonDeleted, Emoticons, NewEmoticon, SpaceDeleted} from \"../types/src\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\n\nconst GLOBAL_KEY = 'global';\n\nexport class EmoticonsManager {\n private list: IndexedCollection<string, ObservableIndexedObjectCollection<Emoticon>> = new IndexedCollection();\n private emoticonsPromises = new PromiseRegistry();\n \n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Emoticons', ev => this.handleEmoticons(ev));\n this.tracker.client.on('NewEmoticon', ev => this.handleNewEmoticon(ev));\n this.tracker.client.on('EmoticonDeleted', ev => this.handleEmoticonDeleted(ev));\n this.tracker.client.on('SpaceDeleted', ev => this.handleSpaceDeleted(ev));\n this.tracker.client.on('Session', () => this.handleSession());\n }\n\n public async get(spaceId?: string): Promise<ObservableIndexedObjectCollection<Emoticon>> {\n const key = spaceId ?? GLOBAL_KEY;\n\n if (this.emoticonsPromises.notExist(key)) {\n this.emoticonsPromises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetEmoticons', {spaceId});\n if (result.error) {\n throw result.error;\n }\n this.handleEmoticons(result.data);\n }, key);\n }\n\n await this.emoticonsPromises.get(key);\n return this.list.get(key);\n }\n\n private handleEmoticons(event: Emoticons): void {\n const spaceId = event.location.spaceId ?? GLOBAL_KEY;\n\n if (!this.list.has(spaceId)) {\n this.list.set([spaceId, new ObservableIndexedObjectCollection<Emoticon>('id')]);\n }\n\n // handleEmoticons always carries the full list for a location, so\n // reconcile in place: a reconnect refetch drops removed emoticons and\n // adds new ones without blanking a bound (visible) collection.\n this.list.get(spaceId).reconcile(...event.emoticons);\n }\n\n private handleNewEmoticon(ev: NewEmoticon): void {\n const collection = this.list.get(ev.emoticon.spaceId ?? GLOBAL_KEY);\n collection?.set(ev.emoticon);\n }\n\n private handleEmoticonDeleted(ev: EmoticonDeleted): void {\n const collection = this.list.get(ev.spaceId ?? GLOBAL_KEY);\n collection?.delete(ev.emoticonId);\n }\n\n private handleSpaceDeleted(event: SpaceDeleted): void {\n this.list.delete(event.id);\n }\n\n private handleSession(): void {\n // Keep cached emoticon collections (they may be bound to visible\n // pickers); just drop the fetch guards so the next access refetches and\n // reconciles them in place.\n this.emoticonsPromises.forgetAll();\n }\n}","import {ChatStateTracker} from \"./ChatStateTracker\";\nimport {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {RoomMember, Session, SpaceMember, User} from \"../types/src\";\nimport {extractUserFromMember} from \"./functions\";\nimport {EventTarget} from \"../EventTarget\";\n\nexport class UsersManager {\n public readonly onlineStatus = new EventTarget<{ change: User }>();\n\n private readonly users: ObservableIndexedObjectCollection<User> = new ObservableIndexedObjectCollection('id');\n\n public constructor(private tracker: ChatStateTracker) {\n // RoomMemberUpdated & SpaceMemberUpdated events are not contains user object\n tracker.client.on('UserUpdated', event => this.handleUsers([event.user]));\n tracker.client.on('RoomMembersJoined', event => this.handleMembers(event.members));\n tracker.client.on('SpaceMemberJoined', event => this.handleMembers([event.member]));\n tracker.client.on('SpaceMembers', event => this.handleMembers(event.members));\n tracker.client.on('RoomMembers', event => this.handleMembers(event.members));\n tracker.client.on('Messages', event => this.handleUsers(event.messages.map(message => message.author.user)));\n tracker.client.on('NewMessage', event => this.handleUsers([event.message.author.user]));\n tracker.client.on('Session', event => this.handleSession(event));\n }\n\n /**\n * Get all available (cached) user objects at once.\n */\n public async getAvailable(): Promise<ObservableIndexedObjectCollection<User>> {\n return this.users;\n }\n\n private handleMembers(members: (RoomMember | SpaceMember)[]): void {\n this.handleUsers(members.map(extractUserFromMember));\n }\n\n private handleSession(session: Session): void {\n // Keep the \"seen users\" cache across reconnects so bound user lists do\n // not blank out; just ensure our own user is present/updated. Stale\n // entries are refreshed as member/message collections refetch.\n this.handleUsers([session.user]);\n }\n\n private handleUsers(users: User[]): void {\n users.forEach(newUser => {\n const oldUser = this.users.get(newUser.id);\n if (oldUser && oldUser.status !== newUser.status) {\n this.onlineStatus.emit('change', newUser);\n }\n });\n\n this.users.set(...users);\n }\n}","import {ObservableIndexedObjectCollection} from \"../IndexedObjectCollection\";\nimport {\n NewRelationship,\n RelationshipDeleted,\n Relationships,\n UserRelationship,\n UserRelationshipType\n} from \"../types/src\";\nimport {PromiseRegistry} from \"./AsyncUtils\";\nimport {ChatStateTracker} from \"./ChatStateTracker\";\n\nconst getId = (refUserId: string, type: UserRelationshipType): string => `${refUserId}-${type}`;\nconst getIdFromRelationship = (relationship: UserRelationship): string => getId(relationship.refUser.id, relationship.type);\n\nexport class RelationshipsManager {\n private relationships: ObservableIndexedObjectCollection<UserRelationship> = new ObservableIndexedObjectCollection<UserRelationship>(getIdFromRelationship);\n private promises = new PromiseRegistry();\n\n public constructor(private tracker: ChatStateTracker) {\n this.tracker.client.on('Relationships', ev => this.handleRelationships(ev));\n this.tracker.client.on('NewRelationship', ev => this.handleNewRelationship(ev));\n this.tracker.client.on('RelationshipDeleted', ev => this.handleRelationshipDeleted(ev));\n this.tracker.client.on('Session', () => this.handleSession());\n }\n\n public async get(): Promise<ObservableIndexedObjectCollection<UserRelationship>> {\n if (this.promises.notExist('all')) {\n this.promises.registerByFunction(async () => {\n const result = await this.tracker.client.send('GetRelationships', {});\n if (result.error) {\n throw result.error;\n }\n }, 'all');\n }\n\n await this.promises.get('all');\n return this.relationships;\n }\n\n public async exists(refUserId: string, type: UserRelationshipType): Promise<boolean> {\n await this.get();\n return this.relationships.has(getId(refUserId, type));\n }\n\n private handleRelationships(ev: Relationships): void {\n // Full list from the server: reconcile in place so a reconnect refetch\n // updates a bound (visible) list without an intermediate empty state.\n this.relationships.reconcile(...ev.relationships);\n }\n\n private handleNewRelationship(ev: NewRelationship): void {\n if (this.promises.has('all')) {\n this.relationships.set(ev.relationship);\n }\n }\n\n private handleRelationshipDeleted(ev: RelationshipDeleted): void {\n if (this.promises.has('all')) {\n this.relationships.delete(getIdFromRelationship(ev.relationship));\n }\n }\n\n private handleSession(): void {\n // Keep the (possibly bound) collection; just drop the fetch guard so the\n // next get() refetches and reconciles it in place.\n this.promises.forgetAll();\n }\n}","import {WebSocketChatClient} from \"../WebSocketChatClient\";\nimport {Session, User} from \"../types/src\";\nimport {RoomsManager} from \"./RoomsManager\";\nimport {SpacesManager} from \"./SpacesManager\";\nimport {PermissionsManager} from \"./PermissionsManager\";\nimport {DeferredTask} from \"./AsyncUtils\";\nimport {EmoticonsManager} from \"./EmoticonsManager\";\nimport {UsersManager} from \"./UsersManager\";\nimport {RelationshipsManager} from \"./RelationshipsManager\";\n\nexport class ChatStateTracker {\n public readonly client: WebSocketChatClient;\n\n /**\n * State of your permissions.\n */\n public readonly permissions: PermissionsManager;\n\n /**\n * State of the rooms you are in.\n */\n public readonly rooms: RoomsManager;\n\n /**\n * State of the spaces you are in.\n */\n public readonly spaces: SpacesManager;\n\n /**\n * State of the emoticons (global and space-related).\n */\n public readonly emoticons: EmoticonsManager;\n\n /**\n * Users related state.\n */\n public readonly users: UsersManager;\n\n /**\n * State of relationships with other users.\n */\n public readonly relationships: RelationshipsManager;\n\n private _me: User = null;\n private readonly deferredSession = new DeferredTask();\n\n public constructor(client: WebSocketChatClient) {\n this.client = client;\n this.client.on('Session', ev => this.handleSession(ev));\n\n this.permissions = new PermissionsManager(this);\n this.rooms = new RoomsManager(this);\n this.spaces = new SpacesManager(this);\n this.emoticons = new EmoticonsManager(this);\n this.users = new UsersManager(this);\n this.relationships = new RelationshipsManager(this);\n }\n\n public get me(): User | null {\n return this._me;\n }\n\n public async getMe(): Promise<User> {\n await this.deferredSession.promise;\n return this._me;\n }\n\n private handleSession(ev: Session): void {\n this._me = ev.user;\n this.deferredSession.resolve();\n }\n}","import {ObservableInterface} from \"./EventTarget\";\nimport {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ChatStateTracker} from \"./state-tracker/ChatStateTracker\";\nimport {Bye, Envelope} from \"./types/src\";\n\nexport interface WebSocketClientOptions {\n url: string;\n token: string;\n connectingTimeoutMs?: number;\n awaitQueueSendDelayMs?: number;\n stateTracking?: boolean;\n queryParams?: Record<string, string>;\n /**\n * Ping/pong configuration, enabled by default.\n */\n ping?: {\n enabled?: boolean;\n /**\n * Time without activity after which a ping will be sent. Default is 15 seconds.\n */\n noActivityTimeoutMs?: number;\n /**\n * Time to wait for a pong response before considering the connection dead. Default is 5 seconds.\n */\n pongBackTimeoutMs?: number;\n },\n /**\n * Automatic reconnection. After the connection is lost (error, connecting timeout, missing pong\n * or closure with a code other than 1000) the client retries indefinitely, waiting between attempts\n * with an exponential backoff. Calling `disconnect()` stops retrying until the next `connect()`.\n */\n reconnect?: {\n /**\n * Delay before the first retry; each subsequent one doubles it. Default is 1 second.\n */\n minDelayMs?: number;\n /**\n * Upper limit of the delay between retries. Default is 30 seconds.\n */\n maxDelayMs?: number;\n },\n}\n\nenum WebSocketChatClientEvent {\n connect = 'connect',\n disconnect = 'disconnect',\n message = 'message',\n error = 'error',\n}\n\ntype WebSocketEventMap = EventsMap & {\n [WebSocketChatClientEvent.connect]: void;\n [WebSocketChatClientEvent.disconnect]: boolean;\n [WebSocketChatClientEvent.message]: Envelope;\n [WebSocketChatClientEvent.error]: Error;\n};\n\nexport class WebSocketChatClient extends AbstractChatClient<Pick<WebSocketEventMap, keyof WebSocketEventMap>> implements ObservableInterface {\n public readonly Event = WebSocketChatClientEvent;\n public readonly state?: ChatStateTracker;\n\n protected ws: WebSocket|null = null;\n protected sendQueue: Envelope[] = [];\n protected connectingTimeoutId: any;\n protected authenticated: boolean;\n protected authenticatedResolvers: [() => void, (error: Error) => void] | null = null;\n protected connectPromise: Promise<void> | null = null;\n protected pingMonitorInterval?: NodeJS.Timeout;\n protected inFlightPingTimeout: NodeJS.Timeout;\n protected lastReceivedMessageAt?: number;\n protected reconnectEnabled: boolean = false;\n protected reconnectTimeoutId?: any;\n protected reconnectAttempts: number = 0;\n\n public constructor(private readonly options: WebSocketClientOptions) {\n super();\n if (this.options.stateTracking ?? true) {\n this.state = new ChatStateTracker(this);\n }\n\n options.ping ??= {};\n options.ping.enabled ??= true;\n options.ping.noActivityTimeoutMs ??= 15000;\n options.ping.pongBackTimeoutMs ??= 5000;\n }\n\n public async connect(): Promise<void> {\n this.reconnectEnabled = true;\n // A manual call does not wait for a scheduled retry.\n this.cancelScheduledReconnect();\n\n if (this.isOpenWsState() || this.isConnectingWsState()) {\n return this.connectPromise ?? undefined;\n }\n\n // Reuse the promise of an attempt that has not settled yet (an\n // automatic reconnect), so the caller that started connecting is\n // resolved by whichever attempt eventually authenticates.\n if (! this.connectPromise) {\n this.connectPromise = new Promise<void>((...args) => this.authenticatedResolvers = args);\n // Automatic reconnects create this promise with no one awaiting it,\n // so its rejection must not surface as an unhandled one. Callers\n // awaiting it still receive the rejection.\n this.connectPromise.catch(() => undefined);\n }\n\n const connectPromise = this.connectPromise;\n this.openSocket();\n\n return connectPromise;\n }\n\n public disconnect(): void {\n const wasActive = this.ws !== null || this.reconnectTimeoutId !== undefined;\n\n this.reconnectEnabled = false;\n this.reconnectAttempts = 0;\n this.cancelScheduledReconnect();\n this.releaseSocket(1000); // Normal closure\n this.failPendingCommands(new Error('Client disconnected before the command was answered'));\n this.settleConnect(new Error('Client disconnected before authentication'));\n\n if (wasActive) {\n this.emit(this.Event.disconnect, false);\n }\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope<CommandRequest<CommandType>>(commandType, commandData);\n const promise = this.createPromiseFromCommandEnvelope<CommandType>(envelope);\n\n if (this.isConnectingWsState() || !this.authenticated && this.isOpenWsState()) {\n this.sendQueue.push(envelope);\n return promise;\n }\n\n this.sendEnvelope(envelope);\n return promise;\n }\n\n public get isReady(): boolean {\n return this.isOpenWsState() && this.authenticated;\n }\n\n private openSocket(): void {\n // Never leave a previous socket attached (e.g. one still closing).\n this.releaseSocket(1000);\n\n const params = new URLSearchParams(this.options.queryParams ?? {});\n params.set('token', this.options.token);\n\n let ws: WebSocket;\n try {\n ws = new WebSocket(`${this.options.url}?${params}`);\n } catch (error) {\n // Invalid URL - no retry can fix that.\n this.settleConnect(error);\n return;\n }\n\n // Events of an abandoned socket must not touch the current connection.\n ws.onmessage = ev => ws === this.ws && this.onMessage(ev);\n ws.onclose = ev => ws === this.ws && this.onClose(ev);\n // Not every implementation follows a failed handshake with a close\n // event (e.g. Node.js), so an error alone means the connection is lost.\n ws.onerror = () => ws === this.ws && this.handleConnectionLoss(true);\n\n this.ws = ws;\n this.authenticated = false;\n this.connectingTimeoutId = setTimeout(\n () => this.triggerConnectionTimeout(),\n this.options.connectingTimeoutMs ?? 10000\n );\n }\n\n private sendEnvelope(envelope: Envelope): void {\n if (this.isReady) {\n this.ws.send(JSON.stringify(envelope));\n return;\n }\n\n this.handleEnvelopeSendError(\n envelope,\n new Error(`Cannot send - client is not ready (state=${this.ws?.readyState ?? '[no connection]'}; authenticated=${this.authenticated})`)\n );\n }\n\n private onMessage(event: MessageEvent): void {\n this.lastReceivedMessageAt = Date.now();\n const envelope: Envelope = JSON.parse(event.data);\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n\n // Login successfully\n if (!this.authenticated) {\n const isAuthenticated = envelope.type !== 'Bye';\n this.authenticated = isAuthenticated;\n if (isAuthenticated) {\n this.reconnectAttempts = 0;\n this.startConnectionMonitor();\n this.settleConnect();\n this.emit(this.Event.connect);\n this.sendFromQueue();\n } else {\n this.settleConnect(envelope.data);\n\n const error = (envelope.data as Bye)?.reason?.error;\n if (error?.code === 'AuthenticationException') {\n // Invalid token - retrying would be rejected the same way.\n this.handleConnectionLoss(false);\n this.emit(this.Event.error, new Error(`Authentication rejected: ${error.message}`));\n }\n }\n }\n }\n\n private onClose(event: CloseEvent): void {\n // Connection was closed because of error\n this.handleConnectionLoss(event.code !== 1000);\n }\n\n /**\n * Abandon the current socket without waiting for its close event (which\n * may never come, or take minutes on a dead TCP connection), settle\n * everything that depended on it and schedule a retry when requested.\n */\n private handleConnectionLoss(reconnect: boolean): void {\n this.releaseSocket(reconnect ? 3000 : 1000);\n\n // The server can no longer answer anything that was queued or in\n // flight, so settle those promises instead of leaving them pending.\n this.failPendingCommands(new Error('Connection closed before the command was answered'));\n\n reconnect &&= this.reconnectEnabled;\n\n if (reconnect) {\n // Keep a pending connect() promise unsettled - the retry below is\n // expected to authenticate and will resolve it.\n this.scheduleReconnect();\n } else {\n this.reconnectEnabled = false;\n this.settleConnect(new Error('Connection closed before authentication'));\n }\n\n this.emit(this.Event.disconnect, reconnect);\n }\n\n /**\n * Detach the current socket from the client and close it if it is still\n * alive, together with all timers bound to it.\n */\n private releaseSocket(closeCode: number): void {\n this.stopConnectionMonitor();\n clearTimeout(this.connectingTimeoutId);\n this.connectingTimeoutId = undefined;\n this.authenticated = false;\n\n const ws = this.ws;\n this.ws = null;\n\n if (! ws) {\n return;\n }\n\n ws.onmessage = ws.onclose = ws.onerror = null;\n\n if (ws.readyState === ws.CONNECTING || ws.readyState === ws.OPEN) {\n try {\n ws.close(closeCode);\n } catch {\n // Nothing more can be done with a broken socket.\n }\n }\n }\n\n private scheduleReconnect(): void {\n this.cancelScheduledReconnect();\n\n const minDelay = Math.max(0, this.options.reconnect?.minDelayMs ?? 1000);\n const maxDelay = Math.max(minDelay, this.options.reconnect?.maxDelayMs ?? 30000);\n const delay = Math.min(maxDelay, minDelay * 2 ** Math.min(this.reconnectAttempts, 30));\n this.reconnectAttempts++;\n\n // Random jitter (50-100% of the delay) keeps clients from reconnecting\n // in lockstep after a server restart.\n this.reconnectTimeoutId = setTimeout(() => {\n this.reconnectTimeoutId = undefined;\n this.connect().catch(() => undefined);\n }, delay / 2 + Math.random() * delay / 2);\n }\n\n private cancelScheduledReconnect(): void {\n clearTimeout(this.reconnectTimeoutId);\n this.reconnectTimeoutId = undefined;\n }\n\n /**\n * Resolve (or reject, when an error is given) a pending connect() promise.\n * No-op when there is nothing pending.\n */\n private settleConnect(error?: any): void {\n const resolvers = this.authenticatedResolvers;\n\n this.authenticatedResolvers = null;\n this.connectPromise = null;\n\n if (! resolvers) {\n return;\n }\n\n error ? resolvers[1](error) : resolvers[0]();\n }\n\n /**\n * Reject every command that has not been answered yet - both the ones still\n * waiting in the send queue and the ones already sent to the server.\n */\n private failPendingCommands(error: Error): void {\n const queued = this.sendQueue;\n this.sendQueue = [];\n\n for (const envelope of queued) {\n this.handleEnvelopeSendError(envelope, error);\n }\n\n this.failAwaitingResponses(error);\n }\n\n private sendFromQueue(): void {\n // Send awaiting data to server\n let lastDelay = 0;\n for (const dataIndex in this.sendQueue) {\n const envelope = this.sendQueue[dataIndex];\n setTimeout(() => this.sendEnvelope(envelope), lastDelay);\n lastDelay += this.options.awaitQueueSendDelayMs ?? 500;\n }\n this.sendQueue = [];\n clearTimeout(this.connectingTimeoutId);\n }\n\n private triggerConnectionTimeout(): void {\n this.handleConnectionLoss(true);\n this.emit(this.Event.error, new Error('Connection timeout'));\n }\n\n private isConnectingWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.CONNECTING;\n }\n\n private isOpenWsState(): boolean {\n return this.ws && this.ws.readyState === this.ws.OPEN;\n }\n\n private startConnectionMonitor(): void {\n this.stopConnectionMonitor();\n\n if (!this.options.ping!.enabled) {\n return;\n }\n\n this.lastReceivedMessageAt = Date.now();\n\n this.pingMonitorInterval = setInterval(async () => {\n if (!this.isReady || this.inFlightPingTimeout) {\n return;\n }\n\n if ((Date.now() - this.lastReceivedMessageAt) < this.options.ping!.noActivityTimeoutMs) {\n return;\n }\n\n this.inFlightPingTimeout = setTimeout(() => {\n this.inFlightPingTimeout = undefined;\n // Closing a dead connection can hang in CLOSING for minutes,\n // so drop it right away instead of waiting for the close event.\n this.handleConnectionLoss(true);\n }, this.options.ping.pongBackTimeoutMs);\n\n // A rejection here means the connection dropped while the ping was\n // in flight; the loss is already handled, so just stop waiting.\n this.send('Ping', {}).catch(() => undefined).then(() => {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n });\n }, 1000);\n }\n\n private stopConnectionMonitor(): void {\n if (this.inFlightPingTimeout) {\n clearTimeout(this.inFlightPingTimeout);\n this.inFlightPingTimeout = undefined;\n }\n if (this.pingMonitorInterval) {\n clearInterval(this.pingMonitorInterval);\n this.pingMonitorInterval = undefined;\n }\n }\n}\n","import {AbstractChatClient, CommandRequest, CommandResult, CommandResponse, CommandsMap, EventsMap} from \"./AbstractChatClient\";\nimport {ObservableInterface} from \"./EventTarget\";\nimport {Envelope} from \"./types/src\";\n\nexport interface WebApiChatClientOptions {\n url: string;\n token: string;\n attemptsToSend?: number;\n attemptDelayMs?: number;\n queryParams?: Record<string, string>;\n}\n\nenum WebApiChatClientEvent {\n message = 'message',\n error = 'error',\n destroy = 'destroy',\n}\n\ntype WebApiEventMap = EventsMap & {\n [WebApiChatClientEvent.message]: Envelope;\n [WebApiChatClientEvent.error]: Error;\n [WebApiChatClientEvent.destroy]: boolean;\n};\n\ninterface SendStackItem {\n data: Envelope;\n attempts: number;\n lastTimeoutId: any;\n}\n\nexport class WebApiChatClient extends AbstractChatClient<Pick<WebApiEventMap, keyof WebApiEventMap>> implements ObservableInterface {\n public readonly Event = WebApiChatClientEvent;\n\n protected sendStack: SendStackItem[] = [];\n\n public constructor(private readonly options: WebApiChatClientOptions) {\n super();\n }\n\n public async send<CommandType extends keyof CommandsMap>(commandType: CommandType, commandData: CommandRequest<CommandType>):\n Promise<CommandResult<CommandResponse<CommandType>>> {\n const envelope = this.createEnvelope(commandType, commandData);\n const item: SendStackItem = {data: envelope, attempts: 0, lastTimeoutId: null};\n this.sendStack.push(item);\n this.makeApiCall(item);\n return this.createPromiseFromCommandEnvelope(envelope);\n }\n\n public destroy(): void {\n // Cancel all awaiting requests, rejecting their promises so no caller\n // is left awaiting forever\n const pending = this.sendStack;\n this.sendStack = [];\n pending.forEach(item => {\n if (item.lastTimeoutId) {\n clearTimeout(item.lastTimeoutId);\n }\n this.handleEnvelopeSendError(item.data, new Error('Client destroyed'));\n });\n this.emit(this.Event.destroy, false);\n }\n\n protected async onMessage(item: SendStackItem, response: Response): Promise<void> {\n let envelope: Envelope;\n try {\n envelope = await response.json();\n } catch (e) {\n // Non-envelope response (e.g. a proxy error page) - failed attempt\n this.onError(item, `envelope ${item.data.ref} (HTTP ${response.status}, unparsable body)`);\n return;\n }\n\n if (!this.removeFromStack(item)) {\n return; // Destroyed in the meantime - the promise is already rejected\n }\n\n this.handleIncomingEnvelope(envelope);\n this.emit(envelope.type, envelope.data);\n this.emit(this.Event.message, envelope);\n }\n\n protected onError(item: SendStackItem, body: string): void {\n if (!this.sendStack.includes(item)) {\n return; // Destroyed in the meantime\n }\n\n if (item.attempts >= (this.options.attemptsToSend ?? 10)) {\n this.removeFromStack(item);\n this.handleEnvelopeSendError(item.data, new Error(\n `Cannot send ${body}; aborting after reaching the maximum connection errors`\n ));\n return;\n }\n\n item.lastTimeoutId = setTimeout(\n () => this.makeApiCall(item),\n this.options.attemptDelayMs ?? 3000\n );\n }\n\n protected makeApiCall(item: SendStackItem): void {\n if (!this.sendStack.includes(item)) {\n return; // Destroyed before this (re)try fired\n }\n\n item.attempts++;\n item.lastTimeoutId = null;\n const bodyJson = JSON.stringify(item.data);\n const headers: any = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n };\n\n headers.Authorization = `Bearer ${this.options.token}`;\n\n const query = new URLSearchParams(this.options.queryParams ?? {}).toString();\n const url = query ? `${this.options.url}?${query}` : this.options.url;\n\n fetch(url, {\n headers,\n body: bodyJson,\n method: 'POST',\n })\n .then(response => this.onMessage(item, response))\n .catch(() => this.onError(item, bodyJson));\n }\n\n private removeFromStack(item: SendStackItem): boolean {\n const index = this.sendStack.indexOf(item);\n if (index === -1) {\n return false;\n }\n this.sendStack.splice(index, 1);\n return true;\n }\n}","export interface RestClientOptions {\n url?: string;\n token: string;\n}\n\nexport interface RestClientResponse<T> {\n ok: boolean;\n status: number;\n data: T;\n}\n\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';\n\nexport abstract class AbstractRestClient {\n protected abstract defaultUrl: string;\n\n public constructor(\n private readonly options: RestClientOptions,\n ) {}\n\n protected async send<ResponseT = any>(\n method: HttpMethod,\n uri: string,\n data: any = undefined,\n additionalHeaders: Record<string, string> = {},\n ): Promise<RestClientResponse<ResponseT>> {\n let url = this.getUrl(uri);\n let body = undefined;\n\n if (data) {\n if (['GET', 'DELETE'].includes(method)) {\n url += '?' + new URLSearchParams(data).toString()\n } else {\n body = JSON.stringify(data);\n }\n }\n\n const headers = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...additionalHeaders,\n ...this.getAuthHeaders(),\n };\n\n const result = await fetch(url, {method, body, headers});\n\n return this.convertFetchResponse(result);\n }\n\n protected getAuthHeaders(): any {\n const headers = {} as any;\n\n if (this.options.token) {\n headers.Authorization = `Bearer ${this.options.token}`;\n }\n\n return headers;\n }\n\n protected getUrl(uri: string): string {\n return this.removeEndingSlash(this.options.url ?? this.defaultUrl) + '/' + this.removeStartingSlash(uri);\n }\n\n protected async convertFetchResponse<T>(result: Response): Promise<RestClientResponse<T>> {\n return {\n ok: result.ok,\n status: result.status,\n data: result.headers.get('content-type')?.includes('json') ? await result.json() : await result.text(),\n };\n }\n\n private removeStartingSlash(text: string): string {\n return text.replace(/^\\/+/, '');\n }\n\n private removeEndingSlash(text: string): string {\n return text.replace(/\\/+$/, '');\n }\n}","import {AbstractRestClient, RestClientResponse} from \"./AbstractRestClient\";\n\nexport interface File {\n id: string;\n url: string;\n name: string;\n mime: string;\n size: number;\n width?: number;\n height?: number;\n}\n\nexport class FilesClient extends AbstractRestClient {\n protected defaultUrl: string = 'https://files.devana.pl';\n\n public async uploadFile(file: globalThis.File | Blob): Promise<RestClientResponse<File>> {\n const name = encodeURIComponent((file as globalThis.File).name ?? '');\n let headers = {\n ...this.getAuthHeaders(),\n Accept: 'application/json',\n 'Content-Disposition': `attachment; filename=\"${name}\"`,\n 'Content-Length': file.size\n };\n\n const response = await fetch(this.getUrl('files'), {\n method: 'POST',\n body: file,\n headers\n });\n\n return this.convertFetchResponse<File>(response);\n }\n\n public async getFileMeta(id: string): Promise<RestClientResponse<File>> {\n return this.send('GET', 'files/' + id);\n }\n\n public async getFileMetaBulk(ids: string[]): Promise<RestClientResponse<File[]>> {\n const searchParams = new URLSearchParams();\n ids.forEach(id => searchParams.append('id[]', id));\n return this.send('GET', 'files?' + searchParams);\n }\n}","/**\n * Bit flags of a role, stored in {@link Role.flags}.\n *\n * - `SeparateOnMembersList` - available holders of the role are listed in their\n * own group of the members list, headed by the role name.\n * - `MentionableByEveryone` - anybody may mention the role with notification\n * effects; without it the mention is decorative only, unless the author holds\n * the `MentionAllRoles` permission.\n */\nexport enum RoleFlag {\n SeparateOnMembersList = 1 << 0,\n MentionableByEveryone = 1 << 1,\n}\n\nexport interface Role {\n id: string;\n priority: number;\n name: string;\n color?: string;\n flags: number;\n}\n","export type UserTags = 'bot' | 'temp' | string;\n\n/**\n * Availability of a user, aggregated over all of their sessions.\n *\n * - `Offline` - no session is connected and none can be reached asynchronously.\n * - `Online` - at least one session holds a live connection.\n * - `OnlineAsync` - no live connection, but a push-registered device was active\n * recently, so a message will still reach the user.\n */\nexport enum UserStatus {\n Offline = 0,\n Online = 1,\n OnlineAsync = 2,\n}\n\nexport interface User {\n id: string;\n nick: string;\n avatar: string;\n tags: UserTags[];\n status: UserStatus;\n /** @deprecated Use {@link status}. Kept for clients older than the numeric status. */\n online: boolean;\n}\n","import {Envelope} from \"./schemes/Envelope\";\nimport {Message, MessageType, MessageAuthor, MessageMentions} from \"./schemes/Message\";\nimport {PermissionOverwritesValue} from \"./schemes/PermissionOverwritesValue\";\nimport {Role, RoleFlag} from \"./schemes/Role\";\nimport {Room, RoomType} from \"./schemes/Room\";\nimport {RoomMember} from \"./schemes/RoomMember\";\nimport {RoomSummary, RoomSummaryExtras} from \"./schemes/RoomSummary\";\nimport {Space, SpaceDiscoverable} from \"./schemes/Space\";\nimport {SpaceMember} from \"./schemes/SpaceMember\";\nimport {Topic} from \"./schemes/Topic\";\nimport {User, UserStatus} from \"./schemes/User\";\nimport {UserState} from \"./schemes/UserState\";\nimport {Bye} from \"./schemes/events/Bye\";\nimport {Error} from \"./schemes/events/Error\";\nimport {Session} from \"./schemes/events/Session\";\nimport {ComputedPermissions} from \"./schemes/events/ComputedPermissions\";\nimport {SpaceJoined} from \"./schemes/events/SpaceJoined\";\nimport {SpaceLeft} from \"./schemes/events/SpaceLeft\";\nimport {SpaceMemberJoined} from \"./schemes/events/SpaceMemberJoined\";\nimport {SpaceMemberLeft} from \"./schemes/events/SpaceMemberLeft\";\nimport {SpaceMemberUpdated} from \"./schemes/events/SpaceMemberUpdated\";\nimport {SpaceDeleted} from \"./schemes/events/SpaceDeleted\";\nimport {SpaceMembers} from \"./schemes/events/SpaceMembers\";\nimport {SpaceRooms} from \"./schemes/events/SpaceRooms\";\nimport {NewRole} from \"./schemes/events/NewRole\";\nimport {RoleDeleted} from \"./schemes/events/RoleDeleted\";\nimport {RoomJoined} from \"./schemes/events/RoomJoined\";\nimport {RoomLeft} from \"./schemes/events/RoomLeft\";\nimport {RoomMembersJoined} from \"./schemes/events/RoomMembersJoined\";\nimport {RoomMemberLeft} from \"./schemes/events/RoomMemberLeft\";\nimport {RoomMembers} from \"./schemes/events/RoomMembers\";\nimport {RoomMemberUpdated} from \"./schemes/events/RoomMemberUpdated\";\nimport {NewRoom} from \"./schemes/events/NewRoom\";\nimport {RoomDeleted} from \"./schemes/events/RoomDeleted\";\nimport {NewTopic} from \"./schemes/events/NewTopic\";\nimport {TopicDeleted} from \"./schemes/events/TopicDeleted\";\nimport {NewMessage} from \"./schemes/events/NewMessage\";\nimport {PermissionOverwritesUpdated} from \"./schemes/events/PermissionOverwritesUpdated\";\nimport {PermissionOverwrites} from \"./schemes/events/PermissionOverwrites\";\nimport {GetSession} from \"./schemes/commands/GetSession\";\nimport {GetComputedPermissions} from \"./schemes/commands/GetComputedPermissions\";\nimport {JoinSpace} from \"./schemes/commands/JoinSpace\";\nimport {LeaveSpace} from \"./schemes/commands/LeaveSpace\";\nimport {CreateSpace} from \"./schemes/commands/CreateSpace\";\nimport {DeleteSpace} from \"./schemes/commands/DeleteSpace\";\nimport {GetSpaceMembers} from \"./schemes/commands/GetSpaceMembers\";\nimport {GetSpaceRooms} from \"./schemes/commands/GetSpaceRooms\";\nimport {CreateRole} from \"./schemes/commands/CreateRole\";\nimport {DeleteRole} from \"./schemes/commands/DeleteRole\";\nimport {RoleUpdated} from \"./schemes/events/RoleUpdated\";\nimport {AssignRole} from \"./schemes/commands/AssignRole\";\nimport {DeassignRole} from \"./schemes/commands/DeassignRole\";\nimport {SetPermissionOverwrites} from \"./schemes/commands/SetPermissionOverwrites\";\nimport {GetPermissionOverwrites} from \"./schemes/commands/GetPermissionOverwrites\";\nimport {JoinRoom} from \"./schemes/commands/JoinRoom\";\nimport {LeaveRoom} from \"./schemes/commands/LeaveRoom\";\nimport {CreateRoom} from \"./schemes/commands/CreateRoom\";\nimport {DeleteRoom} from \"./schemes/commands/DeleteRoom\";\nimport {GetRoomMembers} from \"./schemes/commands/GetRoomMembers\";\nimport {CreateTopic, CreateTopicInitialMessage} from \"./schemes/commands/CreateTopic\";\nimport {DeleteTopic} from \"./schemes/commands/DeleteTopic\";\nimport {CreateMessage} from \"./schemes/commands/CreateMessage\";\nimport {UpdateRole} from \"./schemes/commands/UpdateRole\";\nimport {Ack} from \"./schemes/commands/Ack\";\nimport {UserUpdated} from \"./schemes/events/UserUpdated\";\nimport {UpdateRoom} from \"./schemes/commands/UpdateRoom\";\nimport {UpdateSpace} from \"./schemes/commands/UpdateSpace\";\nimport {RoomUpdated} from \"./schemes/events/RoomUpdated\";\nimport {SpaceUpdated} from \"./schemes/events/SpaceUpdated\";\nimport {ChatLocation} from \"./schemes/ChatLocation\";\nimport {GetPermissionOverwriteTargets} from \"./schemes/commands/GetPermissionOverwriteTargets\";\nimport {PermissionOverwriteTargets} from \"./schemes/events/PermissionOverwriteTargets\";\nimport { CreateOwner } from \"./schemes/commands/CreateOwner\";\nimport { DeleteOwner } from \"./schemes/commands/DeleteOwner\";\nimport { GetOwners } from \"./schemes/commands/GetOwners\";\nimport { Owners } from \"./schemes/events/Owners\";\nimport { Ok } from \"./schemes/events/Ok\";\nimport {FollowTopic} from \"./schemes/commands/FollowTopic\";\nimport {FollowedTopics} from \"./schemes/events/FollowedTopics\";\nimport {FollowedTopic, NotificationLevel} from \"./schemes/FollowedTopic\";\nimport {UpdateFollowedTopic} from \"./schemes/commands/UpdateFollowedTopic\";\nimport {TopicFollowed} from \"./schemes/events/TopicFollowed\";\nimport {GetFollowedTopics} from \"./schemes/commands/GetFollowedTopics\";\nimport {FollowedTopicUpdated} from \"./schemes/events/FollowedTopicUpdated\";\nimport {GetMessages} from \"./schemes/commands/GetMessages\";\nimport {Messages} from \"./schemes/events/Messages\";\nimport {Topics} from \"./schemes/events/Topics\";\nimport {GetTopics} from \"./schemes/commands/GetTopics\";\nimport {UpdateTopic} from \"./schemes/commands/UpdateTopic\";\nimport {TopicUpdated} from \"./schemes/events/TopicUpdated\";\nimport {GetDiscoverableSpaces} from \"./schemes/commands/GetDiscoverableSpaces\";\nimport {DiscoverableSpaces} from \"./schemes/events/DiscoverableSpaces\";\nimport {SpaceSummary} from \"./schemes/SpaceSummary\";\nimport {Emoticon} from \"./schemes/Emoticon\";\nimport {Emoticons} from \"./schemes/events/Emoticons\";\nimport {GetEmoticons} from \"./schemes/commands/GetEmoticons\";\nimport {CreateEmoticon} from \"./schemes/commands/CreateEmoticon\";\nimport {DeleteEmoticon} from \"./schemes/commands/DeleteEmoticon\";\nimport {NewEmoticon} from \"./schemes/events/NewEmoticon\";\nimport {EmoticonDeleted} from \"./schemes/events/EmoticonDeleted\";\nimport {PermissionOverwritesTarget} from \"./schemes/PermissionOverwritesTarget\";\nimport {Ban} from \"./schemes/commands/Ban\";\nimport {Unban} from \"./schemes/commands/Unban\";\nimport {GetBans} from \"./schemes/commands/GetBans\";\nimport {BanObject} from \"./schemes/BanObject\";\nimport {Bans} from \"./schemes/events/Bans\";\nimport {Kick} from \"./schemes/commands/Kick\";\nimport {LeaveReason} from \"./schemes/LeaveReason\";\nimport {GetClientData} from \"./schemes/commands/GetClientData\";\nimport {SetClientData} from \"./schemes/commands/SetClientData\";\nimport {ClientData} from \"./schemes/events/ClientData\";\nimport {RoomStream, RoomStreamType} from \"./schemes/RoomStream\";\nimport {RoomHistory, RoomHistoryMode} from \"./schemes/RoomHistory\";\nimport {GetRoomSummary} from \"./schemes/commands/GetRoomSummary\";\nimport {GetSpaceSummary} from \"./schemes/commands/GetSpaceSummary\";\nimport {SpaceSummary as SpaceSummaryEvent} from \"./schemes/events/SpaceSummary\";\nimport {RoomSummary as RoomSummaryEvent} from \"./schemes/events/RoomSummary\";\nimport {UpdateSpaceMember} from \"./schemes/commands/UpdateSpaceMember\";\nimport {NewRelationship} from \"./schemes/events/NewRelationship\";\nimport {RelationshipDeleted} from \"./schemes/events/RelationshipDeleted\";\nimport {UserRelationship, UserRelationshipType} from \"./schemes/UserRelationship\";\nimport {DeleteRelationship} from \"./schemes/commands/DeleteRelationship\";\nimport {Relationships} from \"./schemes/events/Relationships\";\nimport {CreateRelationship} from \"./schemes/commands/CreateRelationship\";\nimport {RoomSummaryUpdated} from \"./schemes/events/RoomSummaryUpdated\";\nimport {UpdateRoomMember} from \"./schemes/commands/UpdateRoomMember\";\nimport {Ping} from \"./schemes/commands/Ping\";\nimport {Pong} from \"./schemes/events/Pong\";\nimport {ReportAbuse} from \"./schemes/commands/ReportAbuse\";\nimport {RedactMessages} from \"./schemes/commands/RedactMessages\";\nimport {MessagesRedacted} from \"./schemes/events/MessagesRedacted\";\nimport {GetRelationships} from \"./schemes/commands/GetRelationships\";\nimport {GetUserInfo} from \"./schemes/commands/GetUserInfo\";\nimport {UserInfo} from \"./schemes/events/UserInfo\";\nimport {UserInformation} from \"./schemes/UserInformation\";\nimport {SetSessionData, SessionPush} from \"./schemes/commands/SetSessionData\";\nimport {SessionData, SessionPlatform} from \"./schemes/SessionData\";\nimport {GetSessionData} from \"./schemes/commands/GetSessionData\";\nimport {UserData, PrivateMessagePolicy} from \"./schemes/UserData\";\nimport {SetUserData} from \"./schemes/commands/SetUserData\";\nimport {GetUserData} from \"./schemes/commands/GetUserData\";\nimport {UnfollowTopic} from \"./schemes/commands/UnfollowTopic\";\nimport {Invite} from \"./schemes/commands/Invite\";\nimport {Uninvite} from \"./schemes/commands/Uninvite\";\nimport {GetInvited} from \"./schemes/commands/GetInvited\";\nimport {Invited} from \"./schemes/events/Invited\";\nimport {TopicUnfollowed} from \"./schemes/events/TopicUnfollowed\";\nimport {MessageReaction, ReactionType, ToggledReaction, UserReaction} from \"./schemes/Reaction\";\nimport {MessagePoll, MessagePollOption} from \"./schemes/MessagePoll\";\nimport {React} from \"./schemes/commands/React\";\nimport {Unreact} from \"./schemes/commands/Unreact\";\nimport {GetReactionDetails} from \"./schemes/commands/GetReactionDetails\";\nimport {ReactionUpdated} from \"./schemes/events/ReactionUpdated\";\nimport {Reacted} from \"./schemes/events/Reacted\";\nimport {ReactionDetails} from \"./schemes/events/ReactionDetails\";\n\nexport {\n // objects\n Envelope,\n Message,\n MessageType,\n MessageAuthor,\n MessageMentions,\n Role,\n RoleFlag,\n Room,\n RoomType,\n RoomStream,\n RoomStreamType,\n RoomHistory,\n RoomHistoryMode,\n RoomMember,\n RoomSummary,\n RoomSummaryExtras,\n Space,\n SpaceMember,\n Topic,\n FollowedTopic,\n NotificationLevel,\n User,\n UserStatus,\n UserState,\n PermissionOverwritesValue,\n ChatLocation,\n SpaceSummary,\n SpaceDiscoverable,\n Emoticon,\n PermissionOverwritesTarget,\n BanObject,\n LeaveReason,\n UserRelationship,\n UserRelationshipType,\n CreateTopicInitialMessage,\n UserInformation,\n SessionPush,\n SessionData,\n SessionPlatform,\n UserData,\n PrivateMessagePolicy,\n ReactionType,\n MessageReaction,\n UserReaction,\n ToggledReaction,\n MessagePoll,\n MessagePollOption,\n // events\n Bye,\n Error,\n Messages,\n NewMessage,\n NewRole,\n NewRoom,\n NewTopic,\n TopicFollowed,\n TopicUnfollowed,\n FollowedTopics,\n FollowedTopicUpdated,\n ComputedPermissions,\n PermissionOverwrites,\n PermissionOverwritesUpdated,\n RoleDeleted,\n RoleUpdated,\n RoomDeleted,\n RoomUpdated,\n RoomJoined,\n RoomLeft,\n RoomMembersJoined,\n RoomMemberLeft,\n RoomMembers,\n RoomMemberUpdated,\n UserUpdated,\n Session,\n SpaceDeleted,\n SpaceUpdated,\n SpaceJoined,\n SpaceLeft,\n SpaceMemberJoined,\n SpaceMemberLeft,\n SpaceMembers,\n SpaceMemberUpdated,\n SpaceRooms,\n TopicDeleted,\n TopicUpdated,\n PermissionOverwriteTargets,\n Owners,\n Ok,\n DiscoverableSpaces,\n Emoticons,\n EmoticonDeleted,\n NewEmoticon,\n Bans,\n ClientData,\n SpaceSummaryEvent,\n RoomSummaryEvent,\n NewRelationship,\n RelationshipDeleted,\n Relationships,\n RoomSummaryUpdated,\n Pong,\n MessagesRedacted,\n UserInfo,\n Invited,\n ReactionUpdated,\n Reacted,\n ReactionDetails,\n // commands\n AssignRole,\n GetMessages,\n CreateMessage,\n Ack,\n CreateRole,\n CreateRoom,\n CreateSpace,\n CreateTopic,\n FollowTopic,\n UnfollowTopic,\n UpdateFollowedTopic,\n GetFollowedTopics,\n DeassignRole,\n DeleteRole,\n DeleteRoom,\n DeleteSpace,\n DeleteTopic,\n SetPermissionOverwrites,\n GetPermissionOverwrites,\n GetComputedPermissions,\n GetRoomMembers,\n GetSession,\n GetSpaceMembers,\n GetSpaceRooms,\n JoinRoom,\n JoinSpace,\n LeaveRoom,\n LeaveSpace,\n UpdateRole,\n UpdateSpace,\n UpdateRoom,\n UpdateTopic,\n GetPermissionOverwriteTargets,\n CreateOwner,\n DeleteOwner,\n GetOwners,\n Topics,\n GetTopics,\n GetDiscoverableSpaces,\n GetEmoticons,\n CreateEmoticon,\n DeleteEmoticon,\n Ban,\n Unban,\n GetBans,\n Kick,\n GetClientData,\n SetClientData,\n GetSpaceSummary,\n GetRoomSummary,\n UpdateSpaceMember,\n CreateRelationship,\n DeleteRelationship,\n GetRelationships,\n UpdateRoomMember,\n Ping,\n ReportAbuse,\n RedactMessages,\n GetUserInfo,\n SetSessionData,\n GetSessionData,\n SetUserData,\n GetUserData,\n Invite,\n Uninvite,\n GetInvited,\n React,\n Unreact,\n GetReactionDetails,\n};","import {WebSocketChatClient} from \"./WebSocketChatClient\";\nimport {WebApiChatClient} from \"./WebApiChatClient\";\nimport {\n IndexedCollection,\n IndexedObjectCollection,\n ObservableIndexedCollection,\n ObservableIndexedObjectCollection\n} from \"./IndexedObjectCollection\";\nimport {FilesClient, File} from \"./FilesClient\";\nimport { Permissions, PermissionDefinition, Layer } from \"./Permissions\";\nimport * as ChatTypes from './types/src';\nimport {RoleFlag, UserStatus} from './types/src';\nimport {extractUserFromMember} from \"./state-tracker/functions\";\nimport {AbstractRestClient} from \"./AbstractRestClient\";\nimport {UnreadSummary} from \"./state-tracker/FollowedTopicsManager\";\n\nexport {\n IndexedCollection, ObservableIndexedCollection,\n IndexedObjectCollection, ObservableIndexedObjectCollection,\n Permissions, PermissionDefinition, Layer,\n WebSocketChatClient, WebApiChatClient,\n FilesClient,\n AbstractRestClient,\n extractUserFromMember,\n UserStatus,\n RoleFlag,\n};\n\nexport type {\n ChatTypes,\n File,\n UnreadSummary,\n};"],"names":["EventTarget","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","eventName","handler","addHandler","events","once","onceEvents","off","_this$events$get","_this$events$get2","index","get","indexOf","undefined","splice","emit","event","callHandlers","map","_map$get","handlers","push","set","_map$get2","forEach","callback","AbstractChatClient","_EventTarget","_this","_len","arguments","length","args","Array","_key","_callSuper","concat","_inherits","createEnvelope","type","data","ref","sentCounter","toString","createPromiseFromCommandEnvelope","envelope","_this2","Promise","_len2","_key2","awaitingResponse","handleIncomingEnvelope","has","isError","error","handleEnvelopeSendError","failAwaitingResponses","size","pending","from","values","clear","_i","_pending","_pending$_i","_slicedToArray","reject","IndexedCollection","items","apply","_toConsumableArray","_items","item","id","delete","ids","_i2","_ids","deleteAll","findBy","field","valueToFind","limit","Infinity","result","_iterator","_createForOfIteratorHelper","entries","_step","s","n","done","_step$value","err","e","f","createMirror","copy","IndexedObjectCollection","_this$_items","_len3","_key3","getId","getAt","_this$_items2","_iterator2","_step2","ObservableIndexedCollection","_IndexedCollection2","_this3","eventTarget","_len4","_key4","_superPropGet","setItems","_len5","_key5","deletedItems","keys","ObservableIndexedObjectCollection","_IndexedObjectCollect","_this5","_this4","_this6","_len6","_key6","_len7","_key7","_this7","reconcile","_this8","_this$_items3","_len8","_key8","incomingIds","Set","_iterator3","_step3","existing","DeferredTask","promise","resolve","PromiseRegistry","register","promises","registerByFunction","fn","notExist","forget","_this$promises","forgetAll","t","r","Symbol","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","p","y","G","v","a","d","bind","l","TypeError","call","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","asyncGeneratorStep","then","_asyncToGenerator","_next","_throw","_defineProperties","_toPropertyKey","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","_typeof","_assertThisInitialized","ReferenceError","Boolean","valueOf","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","WindowState","TraversableRemoteCollection","_ObservableIndexedObj","current","LIVE","ongoing","retainRatio","fetchLimit","lastFetchCount","oldestId","internalState","LATEST","includes","state","OLDEST","_resetToLatest","_callee","force","originalState","_args","_context","fetchLatestItems","addItems","emitChangeWithDiff","resetToLatest","_fetchPrevious","_callee2","firstItem","_context2","hasOldest","PAST","fetchItemsBefore","refreshFetchedState","fetchPrevious","_fetchNext","_callee3","_context3","hasLatest","fetchItemsAfter","fetchNext","_jumpTo","_callee4","_context4","fetchItemsAround","jumpTo","_x","_refreshFetchedState","_callee5","_t","_context5","isLatestItemLoaded","newItems","to","trimItemsArrayToLimit","itemChanged","highWatermark","lowWatermark","Math","floor","slice","TopicHistoryWindow","_TraversableRemoteCol","roomId","topicId","tracker","bindEvents","traverseLock","includeMyReactions","myReactions","client","ev","handleNewMessage","handleMessagesRedacted","handleReactionUpdated","handleReacted","_setTraverseLock","_callee6","lock","_context6","setTraverseLock","_x2","_resetToLatest2","_callee7","_args7","_context7","_fetchNext2","_callee8","_context8","_fetchPrevious2","_callee9","_context9","_jumpTo2","_callee0","_context0","_x3","_updateMessageReference","refTopic","refMessage","_objectSpread","topicRef","_fetchItemsAfter","_callee1","_this$getAt","afterId","_context1","fetchMessages","after","_fetchItemsAround","_callee10","_context10","around","_x4","_fetchItemsBefore","_callee11","_this$getAt2","beforeId","_context11","before","_fetchLatestItems","_callee12","_context12","_fetchMessages","_callee13","criteria","_context13","send","location","Error","message","storeMyReactions","messages","_x5","own","_getTopic","_callee14","_context14","rooms","getTopics","getTopic","_getLatestMessageId","_callee15","_yield$this$getTopic","_t2","_t3","_t4","_t5","_context15","lastMessage","getLatestMessageId","_isLatestItemLoaded","_callee16","lastMessageId","_context16","_handleNewMessage","_callee17","_context17","_x6","messageId","reactions","findIndex","reaction","count","_this$internalState$m","_ev$reaction","isAdded","filter","_handleMessagesRedacted","_callee18","refTopicIds","_context18","msg","_x7","RoomMessagesHistory","room","handleRoomUpdated","handleNewTopic","handleTopicDeleted","updateTraverseLock","defaultTopic","createHistoryWindowForTopic","_getMessagesWindow","peek","topic","historyWindows","getMessagesWindow","_resync","_Array$from","_Array$from$_i","window","resync","_handleRoomUpdated","_Array$from2","_Array$from2$_i","historyWindow","deletedTopicIds","_this2$tracker$rooms","_deleteTopicsFromRoom","refHistoryWindow","history","mode","MessagesManager","handleSession","handleRoomJoin","handleRoomDeleted","handleRoomLeft","_getRoomHistory","deferredSession","roomHistories","getRoomHistory","_resolveLastMessage2","_result$data","roomHistory","_resolveLastMessage","createHistoryForNewRoom","stateRoomIds","FollowedTopicsManager","handleFollowedTopicUpdated","handleTopicFollowed","handleTopicUnfollowed","_cacheForSpace","spaceId","roomIds","needsFetch","spaceRegistryKey","spaces","some","followedTopics","staleRooms","followedTopicsPromises","reconcileRoomsFollowedTopics","cacheForSpace","_getForRoom","applyRoomFollowedTopics","invalidateUnreadSummaries","getForRoom","_ackRoom","collection","followedTopic","isUnread","ackRoom","_summarize","cacheKey","targetTopicId","mentionCount","unreadTopicCount","unreadRoomCount","isRoomUnreadCount","_topic$mentionCount","summariesCache","summarize","_deleteByTopicIds","_this$followedTopics$","topicIds","_iterator4","_step4","add","updateLocallyFollowedTopicOnNewMessage","_this$followedTopics$2","setFollowedTopicsArray","_this$followedTopics$3","clearRoomFollowedTopicsStructures","_handleNewTopic","_this$followedTopics$4","_iterator5","_step5","startsWith","_iterator6","_step6","invalidateUnreadSummariesForRooms","roomIdsSet","_iterator7","_step7","parts","split","_updateLocallyFollowedTopicOnNewMessage","roomFollowedTopics","me","isMe","update","_member$spaceMember$r","_member$spaceMember","_member$roles","member","roleIds","mentionHandlers","mentionExists","getMe","author","user","missed","lastAckMessageId","spaceMember","roles","content","_this$followedTopics$5","roomToTopics","_followedTopic$locati","_roomToTopics$_follow","_roomToTopics$roomId","_followedTopic$locati2","_roomToTopics$_follow2","_this7$followedTopics","RoomsManager","handleRoomJoined","handleTopicUpdated","handleRoomMembersJoined","handleRoomMemberLeft","handleRoomMembers","handleRoomMemberUpdated","handleSpaceMemberLeft","handleSpaceMemberUpdated","handleSpaceDeleted","handleUserUpdated","_getMembers","membersPromises","members","getMembers","_getMe","userId","list","find","_member$user$id","_member$user","_get","_getTopics","tryToFetchTopicIds","canFetch","idsToFetch","_this3$topics$get","topics","topicsPromises","_this3$topics$get2","_this$topics$get","deleteRoom","_this$list","_this$members","_this$membersPromises","_this$topics","_roomIds","_this$topics$get$item","_this$topics$get2","_this$followedTopics","deleteRoomsBySpaceId","roomMembers","roomMember","_this4$members$get","_member$spaceMember$u","newMember","_room$defaultTopic","addJoinedRoomTopics","_this$topics$get3","addJoinedRooms","_this$topics$get4","newRoom","_this$list2","_rooms","recipients","customColor","customNick","customAvatar","extras","_this$members$get","_member$user$id2","_member$user2","_this$members$get2","removedRoomIds","_this$list3","newRooms","_room$recipients","_room$defaultTopic2","newTopic","messageCount","max","reorderRolesOnPriorityUpdate","allRoles","oldRole","updatedRole","increased","priority","decreased","changedRoles","role","extractUserFromMember","_spaceMember","SpacesManager","handleNewRoom","handleSpaceUpdated","handleSpaceJoined","handleSpaceMemberJoined","handleSpaceMembers","handleSpaceRooms","handleRoomSummaryUpdated","handleNewRole","handleRoleDeleted","handleRoleUpdated","_getRoles","getRoles","_getRooms","roomsPromises","getRooms","_refreshRooms","refreshRooms","_this$rooms$get","summary","roomIdToSpaceId","name","description","_handleRoomDeleted","_this$rooms$get2","space","spaceChanged","systemRoom","defaultRooms","_this$rooms$get$items","_this$rooms$get3","_this$roomIdToSpaceId","addJoinedSpaces","_this$roles","summaries","_this$rooms$get4","_handleRoomSummaryUpdated","summariesPromise","oldSummary","newSummary","_this$roles$get","newRole","rolesToUpdate","stateSpaceIds","removedSpaceIds","_this$roles$get2","Layer","PermissionDefinition","Permissions","getNames","getByName","canBeDefinedOnLayer","permissionName","layer","def","maxLayer","Root","Room","CreateSpaces","Global","ManageSpace","Space","ManageRoles","CreateTopics","ManageTopic","Topic","ManageMemberProfiles","ManageMemberRoles","CreateMessages","ManagePermissions","CreateRooms","ManageRoom","CreateEmoticons","ManageEmoticons","ManageBans","Kick","ChangeOwnProfile","ChangeOwnColor","RedactMessages","AddMembers","React","CreatePolls","MentionAllRoles","getOvId","target","roleId","join","getOvIdByObject","overwrites","PermissionsManager","handlePermissionOverwrites","_getOverwrites","validateLocation","overwritesPromises","getOverwrites","_check","permissionNames","ownedPermissions","missing","calculatePermissions","ok","hasAll","hasAny","check","_calculatePermissions","_location$spaceId","_spaceMember$roles","_roomMember$roles","_yield$this$tracker$s","_yield$this$tracker$r","_yield$this$fetchMemb","_yield$this$fetchMemb2","userRoles","filterLocation","_filterLocation","_t6","_t7","_t8","_t9","_t0","fetchMembersOrFail","collectRoleOverwrites","all","resolveOverwritesHierarchy","_this$overwritesPromi","deleteOverwritesByIdPrefix","_this$overwritesPromi2","_this$overwritesPromi3","_this$overwritesPromi4","_this$tracker$me","_this$tracker$me2","prefix","_collectRoleOverwrites","roleOverwrites","resolveOverwritesFromRolesByOrder","_x8","_resolveOverwritesFromRolesByOrder","allows","denies","sortedOverwrites","permissionsLength","sort","b","reduce","previousValue","currentValue","_currentValue$overwri","_currentValue$overwri2","_currentValue$overwri3","_currentValue$overwri4","allow","deny","overwriteEvent","_overwrites$deny$toSt","_overwrites$deny","_overwrites$allow$toS","_overwrites$allow","revDecDenies","reverse","revDecAllows","_revDecDenies$i","_revDecAllows$i","parseInt","_x9","_x0","permissionOverwritesValues","getRootAccessValue","_fetchMembersOrFail","results","spaceFail","roomFail","_x1","GLOBAL_KEY","EmoticonsManager","handleEmoticons","handleNewEmoticon","handleEmoticonDeleted","emoticonsPromises","_event$location$space","_this$list$get","emoticons","_ev$emoticon$spaceId","emoticon","_ev$spaceId","emoticonId","UsersManager","handleUsers","handleMembers","_getAvailable","users","getAvailable","session","_this$users","newUser","oldUser","status","onlineStatus","refUserId","getIdFromRelationship","relationship","refUser","RelationshipsManager","handleRelationships","handleNewRelationship","handleRelationshipDeleted","relationships","_exists","exists","_this$relationships","ChatStateTracker","permissions","_me","WebSocketChatClientEvent","WebSocketChatClient","_AbstractChatClient","options","_this$options$stateTr","_options$ping","_options$ping2","_options$ping2$enable","_options$ping3","_options$ping3$noActi","_options$ping4","_options$ping4$pongBa","stateTracking","ping","enabled","noActivityTimeoutMs","pongBackTimeoutMs","_connect","_this$connectPromise","connectPromise","reconnectEnabled","cancelScheduledReconnect","isOpenWsState","isConnectingWsState","authenticatedResolvers","openSocket","connect","disconnect","wasActive","ws","reconnectTimeoutId","reconnectAttempts","releaseSocket","failPendingCommands","settleConnect","Event","_send","commandType","commandData","authenticated","sendQueue","sendEnvelope","_this$options$queryPa","_this$options$connect","params","URLSearchParams","queryParams","token","WebSocket","url","onmessage","onMessage","onclose","onClose","onerror","handleConnectionLoss","connectingTimeoutId","setTimeout","triggerConnectionTimeout","connectingTimeoutMs","_this$ws$readyState","_this$ws","isReady","JSON","stringify","readyState","lastReceivedMessageAt","Date","now","parse","isAuthenticated","startConnectionMonitor","sendFromQueue","_envelope$data","reason","code","reconnect","scheduleReconnect","closeCode","stopConnectionMonitor","clearTimeout","CONNECTING","OPEN","close","_unused","_this$options$reconne","_this$options$reconne2","_this$options$reconne3","_this$options$reconne4","minDelay","minDelayMs","maxDelay","maxDelayMs","delay","min","pow","random","resolvers","queued","lastDelay","_loop","_this5$options$awaitQ","dataIndex","awaitQueueSendDelayMs","pingMonitorInterval","setInterval","inFlightPingTimeout","clearInterval","WebApiChatClientEvent","WebApiChatClient","attempts","lastTimeoutId","sendStack","makeApiCall","destroy","_onMessage","response","json","onError","removeFromStack","body","_this$options$attempt","_this$options$attempt2","attemptsToSend","attemptDelayMs","bodyJson","headers","Accept","Authorization","query","fetch","method","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","AbstractRestClient","uri","additionalHeaders","getUrl","getAuthHeaders","convertFetchResponse","_this$options$url","removeEndingSlash","defaultUrl","removeStartingSlash","_convertFetchResponse","_result$headers$get","text","replace","FilesClient","_AbstractRestClient","_uploadFile","file","_name","encodeURIComponent","uploadFile","_getFileMeta","getFileMeta","_getFileMetaBulk","searchParams","append","getFileMetaBulk","RoleFlag","UserStatus","Envelope","Message","MessageType","MessageAuthor","MessageMentions","PermissionOverwritesValue","Role","RoomType","RoomMember","RoomSummary","RoomSummaryExtras","SpaceDiscoverable","SpaceMember","User","UserState","Bye","Session","ComputedPermissions","SpaceJoined","SpaceLeft","SpaceMemberJoined","SpaceMemberLeft","SpaceMemberUpdated","SpaceDeleted","SpaceMembers","SpaceRooms","NewRole","RoleDeleted","RoomJoined","RoomLeft","RoomMembersJoined","RoomMemberLeft","RoomMembers","RoomMemberUpdated","NewRoom","RoomDeleted","NewTopic","TopicDeleted","NewMessage","PermissionOverwritesUpdated","PermissionOverwrites","GetSession","GetComputedPermissions","JoinSpace","LeaveSpace","CreateSpace","DeleteSpace","GetSpaceMembers","GetSpaceRooms","CreateRole","DeleteRole","RoleUpdated","AssignRole","DeassignRole","SetPermissionOverwrites","GetPermissionOverwrites","JoinRoom","LeaveRoom","CreateRoom","DeleteRoom","GetRoomMembers","CreateTopic","CreateTopicInitialMessage","DeleteTopic","CreateMessage","UpdateRole","Ack","UserUpdated","UpdateRoom","UpdateSpace","RoomUpdated","SpaceUpdated","ChatLocation","GetPermissionOverwriteTargets","PermissionOverwriteTargets","CreateOwner","DeleteOwner","GetOwners","Owners","Ok","FollowTopic","FollowedTopics","FollowedTopic","NotificationLevel","UpdateFollowedTopic","TopicFollowed","GetFollowedTopics","FollowedTopicUpdated","GetMessages","Messages","Topics","GetTopics","UpdateTopic","TopicUpdated","GetDiscoverableSpaces","DiscoverableSpaces","SpaceSummary","Emoticon","Emoticons","GetEmoticons","CreateEmoticon","DeleteEmoticon","NewEmoticon","EmoticonDeleted","PermissionOverwritesTarget","Ban","Unban","GetBans","BanObject","Bans","LeaveReason","GetClientData","SetClientData","ClientData","RoomStream","RoomStreamType","RoomHistory","RoomHistoryMode","GetRoomSummary","GetSpaceSummary","SpaceSummaryEvent","RoomSummaryEvent","UpdateSpaceMember","NewRelationship","RelationshipDeleted","UserRelationship","UserRelationshipType","DeleteRelationship","Relationships","CreateRelationship","RoomSummaryUpdated","UpdateRoomMember","Ping","Pong","ReportAbuse","MessagesRedacted","GetRelationships","GetUserInfo","UserInfo","UserInformation","SetSessionData","SessionPush","SessionData","SessionPlatform","GetSessionData","UserData","PrivateMessagePolicy","SetUserData","GetUserData","UnfollowTopic","Invite","Uninvite","GetInvited","Invited","TopicUnfollowed","MessageReaction","ReactionType","ToggledReaction","UserReaction","MessagePoll","MessagePollOption","Unreact","GetReactionDetails","ReactionUpdated","Reacted","ReactionDetails"],"ignoreList":[],"sourceRoot":""}
|