{"version":3,"file":"static/js/8201.959cad62.chunk.js","mappings":"wLAIaA,EAAa,SAACC,GACvB,IAAQC,EAAuBD,EAAvBC,KAAMC,EAAiBF,EAAjBE,KAAMC,EAAWH,EAAXG,OAEpB,OACIC,EAAAA,EAAAA,MAAA,OACIC,WAAWC,EAAAA,EAAAA,GACP,oEACAH,GAAU,0BACZI,SAAA,CAEDN,IAAQO,EAAAA,EAAAA,KAAA,QAAMH,UAAWJ,KAC1BO,EAAAA,EAAAA,KAAA,QAAMH,UAAU,gBAAeE,SAAEL,MAG7C,EAEaO,EAAa,SAACT,GACvB,IAAQU,EAAoBV,EAApBU,OAAQC,EAAYX,EAAZW,QAEhB,OACIP,EAAAA,EAAAA,MAAA,OAAKC,UAAU,0GAAyGE,SAAA,CACnHG,EAAO,IAAEC,IAAWH,EAAAA,EAAAA,KAACI,EAAAA,EAAY,CAACP,UAAU,iBAGzD,EAEaQ,EAAW,SACpBb,GAWA,IAAQE,EAAqFF,EAArFE,KAAMD,EAA+ED,EAA/EC,KAAMM,EAAyEP,EAAzEO,SAAUG,EAA+DV,EAA/DU,OAAQC,EAAuDX,EAAvDW,QAASR,EAA8CH,EAA9CG,OAAQW,EAAsCd,EAAtCc,UAAWC,EAA2Bf,EAA3Be,WAAYC,EAAehB,EAAfgB,WAE9E,OACIZ,EAAAA,EAAAA,MAAA,OACIC,WAAWC,EAAAA,EAAAA,GACP,OACAQ,GAAa,0BACbC,GAAc,QACdC,GAAc,iBAChBT,SAAA,CAEDL,IAAQM,EAAAA,EAAAA,KAACT,EAAU,CAACE,KAAMA,EAAMC,KAAMA,EAAMC,OAAQA,KAErDK,EAAAA,EAAAA,KAAA,OAAKH,UAAU,yBAAwBE,SAAEA,IAExCG,IAAUF,EAAAA,EAAAA,KAACC,EAAU,CAACC,OAAQA,EAAQC,QAASA,MAG5D,C,mEC5DaM,EAA0B,SAACjB,GACpC,IAAQkB,EAA6BlB,EAA7BkB,YAAaC,EAAgBnB,EAAhBmB,YAEfC,EAAK,SAAAC,OAAYF,GAEvB,OAAKD,GAKDd,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,KAAIE,SAAEa,KACrBZ,EAAAA,EAAAA,KAAA,OAAAD,SAAMW,MAFyBC,GAJ5B,IASf,EAEaG,EAA2B,SAACtB,GAMrC,IAAQuB,EAAsBvB,EAAtBuB,kBAER,OAAOA,EAAkBC,OAAS,GAC9BhB,EAAAA,EAAAA,KAAA,OAAKH,UAAU,eAAcE,SACxBgB,EAAkBE,KAAI,SAAAC,GAAC,OACpBlB,EAAAA,EAAAA,KAACS,EAAuB,CAAqBC,YAAaQ,EAAExB,KAAMiB,YAAaO,EAAEP,aAAnDO,EAAEP,YAAgE,MAGxG,IACR,C,wFC5BaQ,EAAY,SAAC3B,GAWtB,IAAQ4B,EAA6F5B,EAA7F4B,KAAMC,EAAuF7B,EAAvF6B,WAAYC,EAA2E9B,EAA3E8B,QAAOC,EAAoE/B,EAAlEgC,KAAAA,OAAI,IAAAD,EAAG,KAAIA,EAAEE,EAAqDjC,EAArDiC,SAAUC,EAA2ClC,EAA3CkC,SAAUC,EAAiCnC,EAAjCmC,aAAcC,EAAmBpC,EAAnBoC,MAAOC,EAAYrC,EAAZqC,QAEjFC,GAAeC,EAAAA,EAAAA,GAAW,CAAEH,MAAOC,EAASG,UAAW,QAAvDF,WAER,OACI9B,EAAAA,EAAAA,KAAA,UACIiC,IAAKH,EACLI,KAAK,SACLZ,QAASA,EACTM,MAAOA,EACPF,SAAUA,EACV,iBAAgBD,GAAY,WAC5B,qBAAoBA,GAAY,OAChC5B,WAAWC,EAAAA,EAAAA,GACP,6BACAuB,EACMM,EACI,WACA,YACJA,EACA,mBACA,oBACG,OAATH,GAAiB,SACjBC,GAAY,mBACd1B,SAEDqB,GAGb,C,kGCxCae,EAAQ,SAAC3C,GAMlB,IAAQ4C,EAAqD5C,EAArD4C,QAASC,EAA4C7C,EAA5C6C,UAAWC,EAAiC9C,EAAjC8C,MAAOC,EAA0B/C,EAA1B+C,sBAEnCC,GAAgCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAxCI,EAAQF,EAAA,GAAEG,EAAWH,EAAA,GAC5BI,GAA0CL,EAAAA,EAAAA,UAA8B,OAArBF,QAAqB,IAArBA,EAAAA,EAAyBH,GAAQW,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAA7EE,EAAaD,EAAA,GAAEE,EAAgBF,EAAA,GAYtC,OAVAG,EAAAA,EAAAA,YAAU,WACND,EAAsC,OAArBV,QAAqB,IAArBA,EAAAA,EAAyBH,EAC9C,GAAG,CAACG,EAAuBH,KAE3Bc,EAAAA,EAAAA,YAAU,WACe,MAAjBF,GACAH,EAAsB,cAAVP,GAAmC,aAAVA,GAAwBU,GAAiB,KAAOT,EAE7F,GAAG,CAACS,EAAeT,EAAuBD,IAEnCU,GACHhD,EAAAA,EAAAA,KAAA,OAAKH,WAAWC,EAAAA,EAAAA,GAAK,gBAAiBuC,GAAaE,EAAwB,cAAgB,aAAaxC,UACpGH,EAAAA,EAAAA,MAAA,OACIC,WAAWC,EAAAA,EAAAA,GACP,mHACA8C,EAAW,gBAAkB,kBAEjCO,MAAO,CACHC,MACIJ,GAAiBA,EAAgB,GAC3B,GACAA,GAAiBA,EAAgB,EACjC,GACiB,MAAjBA,GAAyBA,GAAiB,EAC1C,GACA,GACZjD,SAAA,EAEFC,EAAAA,EAAAA,KAAA,QAAAD,SAAOiD,KAEPhD,EAAAA,EAAAA,KAAA,QACIH,WAAWC,EAAAA,EAAAA,GACP,MACAyC,EAAwB,WAAa,WACrCK,EAAW,sBAAwB,uBAKnD,IACR,C,0IChDaS,EAAmB,SAAC7D,GAS7B,IAAQ8D,EAAkG9D,EAAlG8D,SAAUC,EAAwF/D,EAAxF+D,KAAMC,EAAkFhE,EAAlFgE,SAAQC,EAA0EjE,EAAxEkE,SAAAA,OAAQ,IAAAD,EAAG,gBAAeA,EAAAE,EAA8CnE,EAA5CoE,WAAAA,OAAU,IAAAD,GAAOA,EAAEE,EAAyBrE,EAAzBqE,UAAW7B,EAAcxC,EAAdwC,UAEtF8B,GAAUC,EAAAA,EAAAA,MAEhBC,GAAiFC,EAAAA,EAAAA,YAAWC,EAAAA,IAApFC,EAAeH,EAAfG,gBAAiBC,EAAgBJ,EAAhBI,iBAAkBC,EAAgBL,EAAhBK,iBAAkBC,EAAeN,EAAfM,gBACrDC,EAAeJ,EAAfI,WAER,OACIvE,EAAAA,EAAAA,KAACwE,EAAAA,EAAkB,CAACC,MAAM,EAAMrD,KAAK,cAAcY,UAAWA,EAAUjC,UACpEC,EAAAA,EAAAA,KAAA,UACIkC,KAAK,SACLrC,UAAW6D,EACX,iBAAe,QACf,iBAAe,kBACfpC,QAAS,WACL8C,EAAiB,CACbM,YAAa,cACbC,YAAa,eACbC,oBACIhF,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBH,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CAAK,oCAC+BC,EAAAA,EAAAA,KAAA,UAAAD,SAAiB,OAARuD,QAAQ,IAARA,EAAAA,EAAY,cAAqB,QAG9EtD,EAAAA,EAAAA,KAAA,OAAAD,SAAK,qFAGb8E,UAAW,WACPT,GACI,SAAAU,GAAG,OACCA,IAAGC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACID,GAAG,IACN3E,SAAS,GACZ,IAGToE,EAAWhB,GACNyB,MAAK,SAAAC,GACEA,EAAEC,SACE1B,GACAM,EAAQqB,KAAK3B,GAGbK,GACAA,IAGJO,GACI,SAAAU,GAAG,OACCA,IAAGC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACID,GAAG,IACN3E,SAAS,EACTiF,eAAgB,gBACnB,MAGThB,GACI,SAAAU,GAAG,OACCA,IAAGC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACID,GAAG,IACN3E,SAAS,GACZ,IAGTmE,EAAgB,CACZpC,KAAM,UACNN,MAAO,uBAGnB,IACCyD,MAAMhB,EACf,GAER,EAAEtE,UAEFC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,MAAMK,EAAAA,EAAAA,GAAK,mBAAoB8D,GAAc,eAAgBxC,KAAK,QAI5F,C,+GC5FamE,EAAqB,SAAC/F,GAC/B,IAAQgG,EAAsChG,EAAtCgG,SAAU9D,EAA4BlC,EAA5BkC,SAAU+D,EAAkBjG,EAAlBiG,cAE5B,OACIzF,EAAAA,EAAAA,KAAA,OAAKH,UAAU,cAAaE,UACxBC,EAAAA,EAAAA,KAAA,UACIkC,KAAK,SACLrC,UAAU,sBACV,iBAAe,QACf6B,SAAUA,EACV,iBAAe,kBACf,aAAW,aAAY3B,UAEvBC,EAAAA,EAAAA,KAAA,OAAK0F,IAAI,GAAGC,IAAKH,EAAU3F,WAAWC,EAAAA,EAAAA,GAAK,YAAa2F,GAAiB,aAIzF,EAEaG,EAAoB,SAACpG,GAC9B,IAAQiG,EAA4BjG,EAA5BiG,cAAeD,EAAahG,EAAbgG,SAEvB,OACIxF,EAAAA,EAAAA,KAAC6F,EAAAA,EAAW,CAACC,GAAG,iBAAiBlE,MAAM,iBAAiBJ,KAAK,KAAIzB,UAC7DC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,cAAaE,UACxBC,EAAAA,EAAAA,KAAA,OAAK0F,IAAI,GAAG7F,WAAWC,EAAAA,EAAAA,GAAK,YAAa2F,GAAiB,QAASE,IAAKH,OAIxF,C,2GC3BaO,EAAY,SAACvG,GAOtB,IAAQwG,EAAsExG,EAAtEwG,SAAUC,EAA4DzG,EAA5DyG,YAAaC,EAA+C1G,EAA/C0G,aAAc5D,EAAiC9C,EAAjC8C,MAAOC,EAA0B/C,EAA1B+C,sBAGpDC,GAAkCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA1CH,EAASK,EAAA,GAAEyD,EAAYzD,EAAA,GAE9B0D,GAA8CC,EAAAA,EAAAA,GAAS,CAAE9D,sBAAAA,IAAjDH,EAAOgE,EAAPhE,QAASkE,EAAWF,EAAXE,YAAaC,EAAWH,EAAXG,YAsC9B,OApCArD,EAAAA,EAAAA,YAAU,WACNoD,EAAYN,EAChB,GAAG,CAACA,EAAUM,KAEdpD,EAAAA,EAAAA,YAAU,WAEFqD,IADAhE,EAKR,GAAG,CAACA,EAAuBgE,KAG3BrD,EAAAA,EAAAA,YAAU,WAGFiD,EADY,IAAZ/D,IAEiB,YAAVE,GAAiC,WAAVA,IAChB,YAAVA,IAAuB4D,MAEN,WAAV5D,IAAsB2D,KAKhB,aAAV3D,IAAwBF,OAEd,cAAVE,IAAyBF,MAEf,cAAVE,IAAyBF,KAKxC,GAAG,CAAC4D,EAAUE,EAAcD,EAAa3D,EAAOF,IAEzCE,GACHtC,EAAAA,EAAAA,KAACmC,EAAAA,EAAK,CAACC,QAASA,EAASC,UAAWA,EAAWC,MAAOA,EAAOC,sBAAuBA,IACpF,IACR,C,qHCrDaiE,EAAe,SAAChH,GAgBzB,IACIiH,EAcAjH,EAdAiH,KACAC,EAaAlH,EAbAkH,SACAC,EAYAnH,EAZAmH,OACAC,EAWApH,EAXAoH,MACAC,EAUArH,EAVAqH,YACAC,EASAtH,EATAsH,SACAC,EAQAvH,EARAuH,UACAC,EAOAxH,EAPAwH,WACAC,EAMAzH,EANAyH,IACAC,EAKA1H,EALA0H,aACAC,EAIA3H,EAJA2H,WACAC,EAGA5H,EAHA4H,YACAC,EAEA7H,EAFA6H,kBAAiBC,EAEjB9H,EADA+H,WAAAA,OAAU,IAAAD,EAAG,GAAEA,EAGXE,EAAeC,EAAAA,GAAAA,WAEjBC,EAAmB,MAAfb,EAAsBW,EAAWX,GAAe,KAE1D,OACIjH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,QAAOE,SAAA,EAClBH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,wEAAuEE,SAAA,EAClFH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,+BAA8BE,SAAA,CACxC2H,IACG1H,EAAAA,EAAAA,KAAA,OAAKmD,MAAO,CAAEC,MAAO,IAAKrD,UACtBC,EAAAA,EAAAA,KAAA,OAAK2F,IAAK+B,EAAGhC,IAAI,GAAG7F,UAAU,gBAIrC8G,IACG3G,EAAAA,EAAAA,KAAA,OAAKH,UAAU,OAAME,SAChBkH,GACGjH,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CAACC,OAAQV,EAAe,cAAWW,EAAWhI,UAAU,kBAAkBiI,GAAIb,EAAIlH,SAClF4G,IAGLA,OAMN,MAATC,GAAiBA,EAAQ,IACtB5G,EAAAA,EAAAA,KAAA,OAAKH,UAAU,gCAA+BE,UAC1CH,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CACK6G,EAAM,IAAY,IAAVA,EAAc,OAAS,iBAMhDhH,EAAAA,EAAAA,MAAA,cACIC,WAAWC,EAAAA,EAAAA,GACP,mCACC2G,GAAQ,cACTM,EACM,wBACAL,EACA,uBACAI,GAAY,uBAClBK,GAAc,wBACdE,IAAsBL,EAAa,yBAA2B,2BAChEjH,SAAA,EAEFC,EAAAA,EAAAA,KAAC+H,IAAW,CACRC,gBAAiBvB,EACjBwB,YAAY,EACZC,YAAab,EAAoBE,EAAa,KAGjDR,IACG/G,EAAAA,EAAAA,KAAA,OAAKH,UAAU,mDAAkDE,UAC7DC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,mBAAkBE,SAAC,WAI1CqH,IACGpH,EAAAA,EAAAA,KAAA,OAAKH,UAAU,oDAAoD+B,MAAM,mBAAkB7B,UACvFC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,oEAAmEE,SAAC,wBAM5G,C,kLCjGMoI,EAAgB,IAQhBC,EAAsB,SAAC5I,GACzB,IAAQ6I,EAAmB7I,EAAnB6I,SAEFC,EAAQD,EAAW,IARd,EAQ6BA,EAAW,IAPxC,IAOuDA,EAAW,IANlE,IACA,IAOX,OAJ2B7I,EAATiF,MASdzE,EAAAA,EAAAA,KAAA,QACIH,WAAWC,EAAAA,EAAAA,GACP,oBAjBD,IAkBCwI,GAAoB,cAjBrB,MAkBCA,GAAoB,eAjBrB,MAkBCA,GAAoB,eAjBrB,MAkBCA,GAAoB,gBACtBvI,UAEFC,EAAAA,EAAAA,KAACuI,EAAAA,GAAO,CAACC,IAAKF,EAAOG,SAAU,GAAKC,WAAW,MAb5C,IAgBf,EAEMC,EAAa,SAACnJ,GAChB,IAAQoJ,EAAgDpJ,EAAhDoJ,EAAGnE,EAA6CjF,EAA7CiF,KAELoE,EAFkDrJ,EAAvCsJ,gBAAuCtJ,EAAvBuJ,mBAIjC,OACI/I,EAAAA,EAAAA,KAAA,OACIH,WAAWC,EAAAA,EAAAA,GACP,qCACA+I,GAAY,WAAW,SAADhI,OACb+H,GACTnE,EAAO,gBAAkB,kBAC3B1E,SAED0E,GAAQoE,IAAY7I,EAAAA,EAAAA,KAACgJ,IAAQ,CAACC,MAAO,GAAIC,aAAa,aAGnE,EAEMC,EAAoB,WAAH,OAASnJ,EAAAA,EAAAA,KAAA,QAAMH,UAAU,2CAA0CE,SAAC,uBAAsB,EAEpGqJ,EAAa,SAAC5J,GAMvB,IAAQ6J,EAAqD7J,EAArD6J,WAAYhB,EAAyC7I,EAAzC6I,SAAUS,EAA+BtJ,EAA/BsJ,eAAgBQ,EAAe9J,EAAf8J,WAExCC,EAAgBlB,GAAY,IAC5BmB,EAAiBnB,GAAY,IAC7BoB,EAAgBpB,GAAY,IAE5BU,EAAqBM,EAAWrI,OAAS,EACzC0I,EAAoBL,EAAWrI,OAAS,EAExC2I,EAAYb,EAAiBY,EAAoB,EAEjDE,EAAQzB,EAAgBkB,EAAWQ,QAAO,SAACC,EAAMC,GAAO,OAAKD,GAAQC,EAAQ1B,UArEnE,EAqE0F,GAAE,GAE5G,OACIzI,EAAAA,EAAAA,MAAA,OAAKC,UAAU,sFAAqFE,SAAA,EAChGC,EAAAA,EAAAA,KAAA,OAAAD,UACIC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,YAAWE,SAAC,iBAG/BH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,iBAAgBE,SAAEuJ,KAEjCtJ,EAAAA,EAAAA,KAAA,OAAKH,UAAU,YAAWE,UACtBH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,0DAAyDE,SAAA,EACpEC,EAAAA,EAAAA,KAAC2I,EAAU,CACPC,EAAG,EACHE,eAAgBA,EAChBC,mBAAoBA,EACpBtE,KAAM8E,KAGVvJ,EAAAA,EAAAA,KAAC2I,EAAU,CACPC,EAAG,EACHE,eAAgBA,EAChBC,mBAAoBA,EACpBtE,KAAM+E,KAGVxJ,EAAAA,EAAAA,KAAC2I,EAAU,CACPC,EAAG,EACHE,eAAgBA,EAChBC,mBAAoBA,EACpBtE,KAAMgF,QAId7J,EAAAA,EAAAA,MAAA,OAAKC,UAAU,sGAAqGE,SAAA,EAChHC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,yBAAwBE,SAAC,WAExCC,EAAAA,EAAAA,KAAA,OACImD,MAAO,CAAEC,MAAO,KAChBvD,WAAWC,EAAAA,EAAAA,GACP,8BACAgJ,EAAiBY,GAAqB,aACrCZ,IAAmBY,GAChBZ,IAAmBY,EAAoB,IACvC,YACJZ,EAAiBY,GAAqB,eACtCC,GAAa,CACT,uBACAF,EACM,eACAD,EACA,eACAD,EACA,eACA,gBAEZxJ,SAED4J,IAAa3J,EAAAA,EAAAA,KAACuI,EAAAA,GAAO,CAACC,IAAKoB,EAAOnB,SAAU,GAAKC,WAAW,EAAOsB,UAAU,gBAM9FhK,EAAAA,EAAAA,KAAA,OAAKH,UAAU,yDAAwDE,UACnEC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,wBAAuBE,SACjCsJ,EAAWpI,KAAI,SAACgJ,EAAWC,GACxB,IAAMC,EAAYrB,EAAiBoB,EAAQ,EAE3C,OACItK,EAAAA,EAAAA,MAAA,OACIC,UAAU,qIAAoIE,SAAA,EAG9IC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,8BAA6BE,SAAEkK,EAAUvK,QAExDM,EAAAA,EAAAA,KAAA,OACImD,MAAO,CAAEC,MAAO,GAAIgH,OAAQ,IAC5BvK,WAAWC,EAAAA,EAAAA,GACP,uEACAqK,GAAa,YACfpK,UAEFC,EAAAA,EAAAA,KAACoI,EAAmB,CAAC3D,KAAM0F,EAAW9B,SAAU4B,EAAU5B,eAXzD4B,EAAUvK,KAe3B,SAIRM,EAAAA,EAAAA,KAAA,OAAKH,UAAU,cAAaE,UACxBC,EAAAA,EAAAA,KAACmJ,EAAiB,WAKtC,EAEakB,EAAiB,SAAC7K,GAQ3B,IAAQ6J,EAAqE7J,EAArE6J,WAAYhB,EAAyD7I,EAAzD6I,SAAUS,EAA+CtJ,EAA/CsJ,eAAgBQ,EAA+B9J,EAA/B8J,WAAY/F,EAAmB/D,EAAnB+D,KAAMyC,EAAaxG,EAAbwG,SAE1DyD,EAAgBpB,GAAY,IAE5BqB,EAAoBL,EAAWrI,OAAS,EACxCsJ,EAAgBxB,EAAiBO,EAAWrI,OAAS,EAE3D,OACIpB,EAAAA,EAAAA,MAAA,OAAKC,UAAU,OAAME,SAAA,EACjBC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,sBAAqBE,UAChCC,EAAAA,EAAAA,KAACoJ,EAAU,CACPC,WAAYA,EACZhB,SAAUA,EACVS,eAAgBA,EAChBQ,WAAYA,OAIpB1J,EAAAA,EAAAA,MAAA,OAAKC,UAAU,sBAAqBE,SAAA,EAChCC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,uBAAsBE,UACjCC,EAAAA,EAAAA,KAAA,OAAKH,WAAWC,EAAAA,EAAAA,GAAK,UAAWwK,EAAgB,cAAgB,aAAavK,UACzEC,EAAAA,EAAAA,KAACK,EAAAA,GAAQ,CACLX,KAAK,cACLQ,QACIF,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CACDG,GAAIyC,EAAAA,GAAAA,mBAA6BhH,GACjC1D,WAAWC,EAAAA,EAAAA,GACP,4CACCwK,GAAiB,YACpBvK,UAEFC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,KAAK,qBAAqB2B,KAAK,iBAEhDrB,UAEDC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,SAAQE,UACnBC,EAAAA,EAAAA,KAAC+F,EAAAA,EAAS,CAACzD,MAAM,YAAY0D,SAAUA,YAMtD8C,EAAiBY,EAAoB,GAAKD,IAAiBzJ,EAAAA,EAAAA,KAAA,OAAKH,UAAU,mBAI3F,C,6IC3Oa2K,EAAa,SAAChL,GACvB,IAAQiL,EAAgBjL,EAAhBiL,YAER,OAAOA,GACHzK,EAAAA,EAAAA,KAAA,OAAKH,UAAU,cAAaE,UACxBC,EAAAA,EAAAA,KAAA,KAAG4H,OAAO,SAAS8C,KAAMD,EAAaE,IAAI,aAAa9K,UAAU,aAAYE,SAAC,wBAIlF,IACR,E,UCNa6K,EAAW,SAACpL,GACrB,IAAQgG,EAAyBhG,EAAzBgG,SAAUqF,EAAerL,EAAfqL,WAElB,OACI7K,EAAAA,EAAAA,KAAA,OAAKH,UAAU,iBAAgBE,UAC3BH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,2BAA0BE,SAAA,EACrCC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,+BAA8BE,SAAE8K,KAE/C7K,EAAAA,EAAAA,KAAA,OAAKH,UAAU,cAAaE,UACxBC,EAAAA,EAAAA,KAAA,OAAK0F,IAAI,GAAGC,IAAKH,EAAU3F,UAAU,oBAKzD,EAEaiL,EAAgB,SAACtL,GAO1B,IAAQgG,EAAyDhG,EAAzDgG,SAAU9D,EAA+ClC,EAA/CkC,SAAU+D,EAAqCjG,EAArCiG,cAAesF,EAAsBvL,EAAtBuL,OAAQC,EAAcxL,EAAdwL,UAEnD,OACIhL,EAAAA,EAAAA,KAAA,OAAKH,UAAU,iBAAgBE,UAC3BH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,2BAA0BE,SAAA,EACrCC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,+BAA8BE,SAAEgL,KAE/C/K,EAAAA,EAAAA,KAACuF,EAAAA,EAAkB,CAACC,SAAUA,EAAU9D,SAAUA,EAAU+D,cAAeA,KAEzEuF,IAAahL,EAAAA,EAAAA,KAAC4F,EAAAA,EAAiB,CAACJ,SAAUA,EAAUC,cAAeA,QAIrF,EAEawF,EAAkB,SAACzL,GAQ5B,IAAQuL,EAAsEvL,EAAtEuL,OAAQvF,EAA8DhG,EAA9DgG,SAAUiF,EAAoDjL,EAApDiL,YAAa/I,EAAuClC,EAAvCkC,SAAU+D,EAA6BjG,EAA7BiG,cAAeuF,EAAcxL,EAAdwL,UAEhE,OACIpL,EAAAA,EAAAA,MAAA,OAAKC,UAAU,WAAUE,SAAA,EACrBC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,2CAA0CE,UACrDC,EAAAA,EAAAA,KAAC8K,EAAa,CACVtF,SAAUA,EACV9D,SAAUA,EACV+D,cAAeA,EACfsF,OAAQA,EACRC,UAAWA,OAInBhL,EAAAA,EAAAA,KAACwK,EAAU,CAACC,YAAaA,MAGrC,EAEaS,EAAqB,SAAC1L,GAM/B,IAAQgG,EAA8DhG,EAA9DgG,SAAUqF,EAAoDrL,EAApDqL,WAAYM,EAAwC3L,EAAxC2L,iBAAkBpK,EAAsBvB,EAAtBuB,kBAEhD,OACInB,EAAAA,EAAAA,MAAA,OAAKC,UAAU,0CAAyCE,SAAA,EACpDH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,aAAYE,SAAA,EACvBC,EAAAA,EAAAA,KAAA,OACIH,UAAU,qDACVsD,MAAO,CACHiI,gBAAgB,QAADvK,OAAU2E,EAAQ,MACjC6F,UAAW,QAInBrL,EAAAA,EAAAA,KAAA,OAAKH,UAAU,wCAAuCE,UAClDH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,6CAA4CE,SAAA,EACvDC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,oBAAmBE,SAAE8K,IAEnCM,IAAoBnL,EAAAA,EAAAA,KAAA,OAAKH,UAAU,4BAA2BE,SAAEoL,MAE7C,OAAjBpK,QAAiB,IAAjBA,IAAAA,EAAmBC,UAClBhB,EAAAA,EAAAA,KAAA,OAAKH,UAAU,eAAcE,SACxBgB,EAAkBE,KAAI,SAAAqK,GAAE,OACrB1L,EAAAA,EAAAA,MAAA,OAAiBC,UAAU,SAAQE,SAAA,EAC/BH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,WAAUE,SAAA,CAAC,SAAOuL,EAAGxF,OACpC9F,EAAAA,EAAAA,KAAA,OAAKH,UAAU,4BAA2BE,SAAEuL,EAAG5L,SAFzC4L,EAAGxF,GAGP,eAO9B9F,EAAAA,EAAAA,KAAA,OAAKH,UAAU,mBAG3B,C,oEC5Ga0L,EAAc,SAAC/L,GAOxB,IAAQK,EAA2CL,EAA3CK,UAAWuB,EAAgC5B,EAAhC4B,KAAM0E,EAA0BtG,EAA1BsG,GAAIpE,EAAsBlC,EAAtBkC,SAAUJ,EAAY9B,EAAZ8B,QAEvC,OACItB,EAAAA,EAAAA,KAAA,UACIkC,KAAK,SACLrC,UAAWA,EACX,iBAAe,QACf,qBAAAgB,OAAoBiF,GACpBpE,SAAUA,EACVJ,QAASA,EAAQvB,SAEhBqB,GAGb,C,qGCrBaoK,EAAsB,SAAChM,GAChC,IAAA+B,EAAqB/B,EAAbgC,KAAAA,OAAI,IAAAD,EAAG,EAACA,EAEhB,OACIvB,EAAAA,EAAAA,KAAA,OAAKH,UAAU,mBAAkBE,UAC7BC,EAAAA,EAAAA,KAAA,QAAMH,WAAWC,EAAAA,EAAAA,GAAK,6BAA6B,MAADe,OAAQW,OAGtE,EAEaiK,EAAkB,WAAH,OACxB7L,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAACwL,EAAmB,KACpBxL,EAAAA,EAAAA,KAACwL,EAAmB,KACpBxL,EAAAA,EAAAA,KAACwL,EAAmB,MAClB,C,oECjBGE,EAAoB,WAAH,OAC1B1L,EAAAA,EAAAA,KAAA,OAAKH,UAAU,iBAAgBE,UAC3BC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,iCAAgCE,UAC3CH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,oCAAmCE,SAAA,EAC9CH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,kCAAiCE,SAAA,EAC5CC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,qCACfG,EAAAA,EAAAA,KAAA,OAAKH,UAAU,uCAEnBG,EAAAA,EAAAA,KAAA,OAAKH,UAAU,mCAGrB,C,mECXG8L,EAAkB,WAAH,OACxB/L,EAAAA,EAAAA,MAAA,OAAKC,UAAU,gCAA+BE,SAAA,EAC1CC,EAAAA,EAAAA,KAAA,OAAKmD,MAAO,CAAEC,MAAO,KAAOvD,UAAU,oDACtCG,EAAAA,EAAAA,KAAA,OACImD,MAAO,CAAEC,MAAO,KAChBvD,UAAU,0EAEdG,EAAAA,EAAAA,KAAA,OACImD,MAAO,CAAEC,MAAO,KAChBvD,UAAU,2EAEZ,C,gHCLG+L,EAAgC,kBAIhCC,EAAiB,WAC1B,IAAM/H,GAAUC,EAAAA,EAAAA,MAEV+H,GAAiBC,EAAAA,EAAAA,cACnB,SAACC,GAA6E,IAAlDC,EAAmBC,UAAAlL,OAAA,QAAA6G,IAAAqE,UAAA,GAAAA,UAAA,GAAGC,EAAAA,GAAAA,aACxCC,EAAiBC,KAAKC,UAAUN,GACtCO,aAAaC,QAAQZ,EAA+BQ,GAEpDtI,EAAQqB,KAAK8G,EACjB,GACA,CAACnI,IAiBL,MAAO,CACHgI,eAAAA,EACAW,aAhBgBV,EAAAA,EAAAA,cAAY,WAC5B,IAAMK,EAAiBG,aAAaG,QAAQd,GAE5C,GAAIQ,EAAgB,CAChB,IAAMJ,EAAWK,KAAKM,MAAMP,GAI5B,OAFAG,aAAaK,WAAWhB,GAEjBI,CACX,CAEA,OAAO,IACX,GAAG,IAMP,C,qECvCaa,EAAc,SAACC,EAAsBC,GAC9C,IAAMC,GAAgBC,EAAAA,EAAAA,WAGtB/J,EAAAA,EAAAA,YAAU,WACN8J,EAAcjD,QAAU+C,CAC5B,GAAG,CAACA,KAGJ5J,EAAAA,EAAAA,YAAU,WAON,GAAc,OAAV6J,EAAgB,CAChB,IAAMjH,EAAKoH,aAPF,WACLF,EAAcjD,SACdiD,EAAcjD,SAEtB,GAGiCgD,GAC7B,OAAO,kBAAMI,cAAcrH,EAAI,CACnC,CACJ,GAAG,CAACiH,GACR,C,yFCnBO,SAASK,EAA4C5N,GACxD,IAAA6N,GAaIC,EAAAA,EAAAA,IAAkB9N,GAZlB+N,EAAQF,EAARE,SACAC,EAAYH,EAAZG,aACAC,EAAQJ,EAARI,SACAC,EAAQL,EAARK,SACAC,EAAQN,EAARM,SACAC,EAAKP,EAALO,MACAC,EAAOR,EAAPQ,QACAC,EAAKT,EAALS,MACAC,EAASV,EAATU,UACAC,EAAUX,EAAVW,WACAC,EAAWZ,EAAXY,YACaC,EAAMb,EAAnBc,UAAaD,OAGjB1L,GAAwCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAhD4L,EAAY1L,EAAA,GAAE2L,EAAe3L,EAAA,GACpCI,GAA4CL,EAAAA,EAAAA,YAAkBM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAAvDsC,EAAcrC,EAAA,GAAEuL,EAAiBvL,EAAA,GAcxC,MAAO,CACHwK,SAAAA,EACAC,aAAAA,EACAC,SAAAA,EACAC,SAAAA,EACAG,QAAAA,EACAK,OAAAA,EACAK,cAnBkB,SAACC,GACnB,IAAKA,EAAOtJ,QAAS,CAAC,IAADuJ,EAAA,SACNC,GACPF,EAAON,OAAOQ,GAAKC,SAAQ,SAAAC,GAGvBlB,EAFUgB,EAEE,CAAEG,QAASD,GAAK,CAAEE,aAAa,GAC/C,GAAG,EALP,IAAK,IAAMJ,KAAOF,EAAON,OAAQO,EAAtBC,EAOf,CACJ,EAUIf,SAAAA,EACAG,MAAAA,EACAF,MAAAA,EACAG,UAAAA,EACAK,aAAAA,EACAJ,WAAAA,EACAC,YAAAA,EACAI,gBAAAA,EACAjJ,eAAAA,EACAkJ,kBAAAA,EAER,C,yFCnDajI,EAAW,SAAC7G,GACrB,IAAQ+C,EAA0B/C,EAA1B+C,sBAERC,GAA8BC,EAAAA,EAAAA,YAAkBC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAzCJ,EAAOM,EAAA,GAAEqM,EAAUrM,EAAA,GAC1BI,GAAgCL,EAAAA,EAAAA,YAAkBM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAA3CkM,EAAQjM,EAAA,GAAEuD,EAAWvD,EAAA,GAE5BkM,GAAgCxM,EAAAA,EAAAA,WAAS,GAAMyM,GAAAvM,EAAAA,EAAAA,GAAAsM,EAAA,GAAxCE,EAAQD,EAAA,GAAE3I,EAAW2I,EAAA,GAGtBE,GAAgBrD,EAAAA,EAAAA,cAAY,WAC9B,GAAIoD,EACAJ,OAAWlH,QACR,GAAImH,EAAU,CACjB,IAAMK,EAAM,IAAIC,KACVC,EAAU,IAAID,KAAKN,GAEnBQ,EAAUC,KAAKC,IAAI,EAAGD,KAAKE,OAAOJ,EAAQK,UAAYP,EAAIO,WAAa,MAE7Eb,EAAWS,EACf,MACIT,OAAWlH,EAEnB,GAAG,CAACsH,EAAUH,IASd,OANAnC,EAAAA,EAAAA,IAAY,WACHtK,GACD6M,GAER,GAAG,KAEI,CACHhN,QAAAA,EACAkE,YAAAA,EACAC,YAAAA,EAER,C,+LCpCasJ,EAAe,SAACrQ,GAQzB,IAAQ8J,EAAsE9J,EAAtE8J,WAAYwG,EAA0DtQ,EAA1DsQ,cAAeC,EAA2CvQ,EAA3CuQ,UAAWlJ,EAAgCrH,EAAhCqH,YAAaE,EAAmBvH,EAAnBuH,UAAWE,EAAQzH,EAARyH,IAC9DO,EAAeC,EAAAA,GAAAA,WAEjBC,EAAmB,MAAfb,EAAsBW,EAAWX,GAAe,KAE1D,OACI7G,EAAAA,EAAAA,KAAA,OAAKH,UAAU,gCAA+BE,UAC1CH,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CACK2H,IACG9H,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,OACIH,UAAU,gGACVsD,MAAO,CAAEC,MAAO,KAAMrD,SAErBuJ,IACGtJ,EAAAA,EAAAA,KAAA,OAAAD,SACKkH,GACGjH,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CAACC,OAAO,SAAS/H,UAAU,kBAAkBiI,GAAIb,EAAIlH,SACrDuJ,IAGLA,OAMhBtJ,EAAAA,EAAAA,KAAA,OAAKmD,MAAO,CAAEC,MAAO,IAAKrD,UACtBC,EAAAA,EAAAA,KAAA,OAAK2F,IAAK+B,EAAGhC,IAAI,GAAG7F,UAAU,oBAK1CG,EAAAA,EAAAA,KAAA,OACImD,MAAO,CAAEC,MAAO,KAChBvD,UAAU,0FAAyFE,UAEnGH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,sJAAqJE,SAAA,EAChKH,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CACKgQ,EAAU,IAAgB,IAAdA,EAAkB,OAAS,WAG3CD,EAAgB,IAAKlQ,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CAAM+P,EAAc,mBAEzC/I,IACG/G,EAAAA,EAAAA,KAAA,OAAKH,UAAU,mDAAkDE,UAC7DC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,mBAAkBE,SAAC,oBAQnE,E,UCvDMiQ,EAAY,SAACxQ,GAUf,IAAQyQ,EACJzQ,EADIyQ,MAAOC,EACX1Q,EADW0Q,eAAgBC,EAC3B3Q,EAD2B2Q,YAAaC,EACxC5Q,EADwC4Q,eAAgBC,EACxD7Q,EADwD6Q,aAAc/G,EACtE9J,EADsE8J,WAAYgH,EAClF9Q,EADkF8Q,YAAaC,EAC/F/Q,EAD+F+Q,QAGnG/N,GAA0BC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAlCgO,EAAK9N,EAAA,GAAE+N,EAAQ/N,EAAA,GAQtB,OANAQ,EAAAA,EAAAA,YAAU,WACNwN,YAAW,WACPD,GAAS,EACb,GAAG,GACP,GAAG,KAGC7Q,EAAAA,EAAAA,MAAA,OACIC,WAAWC,EAAAA,EAAAA,GACP,0BACA0Q,EAAQ,cAAgB,aACvBL,GAAe,2BAClBpQ,SAAA,EAGFH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,sCAAqCE,SAAA,CAC/CmQ,IACGlQ,EAAAA,EAAAA,KAAA,OAAKH,UAAU,+BAA8BE,SACxCkQ,EAAMU,cACH3Q,EAAAA,EAAAA,KAAC4Q,EAAAA,SAAQ,CAAA7Q,SAAC,iBAEVH,EAAAA,EAAAA,MAACgR,EAAAA,SAAQ,CAAA7Q,SAAA,CAAC,SAAOkQ,EAAMtP,kBAKnCX,EAAAA,EAAAA,KAACwG,EAAAA,EAAY,CACTE,SAAUuJ,EAAMvJ,SAChBD,KAAMwJ,EAAMxJ,KACZU,WAAY8I,EAAM9I,WAClBJ,UAAWkJ,EAAMlJ,UACjBF,YAAauJ,GAAuC,MAArBH,EAAMpJ,YAAsBoJ,EAAMpJ,iBAAcgB,OAItFsI,IACGnQ,EAAAA,EAAAA,KAAC6P,EAAY,CACT9I,UAAWkJ,EAAMlJ,UACjBF,YAAaoJ,EAAMpJ,YACnByC,WAAYA,EACZwG,cAAeG,EAAMH,cACrBC,UAAWM,EAAaJ,EAAMnK,IAC9BmB,KACgB,OAAXqJ,QAAW,IAAXA,GAAAA,EAAaO,UAAuB,OAAXP,QAAW,IAAXA,GAAAA,EAAaQ,WAAab,EAAMc,QAAUR,EAC9DhG,EAAAA,GAAAA,oBAA8BgG,EAASN,EAAMc,aAC7ClJ,MAhCboI,EAAMnK,GAsCvB,EAEakL,EAAsB,SAACxR,GAWhC,IACIyR,EASAzR,EATAyR,WACAC,EAQA1R,EARA0R,gBACAhB,EAOA1Q,EAPA0Q,eACAC,EAMA3Q,EANA2Q,YACAC,EAKA5Q,EALA4Q,eACAC,EAIA7Q,EAJA6Q,aACAc,EAGA3R,EAHA2R,YACAb,EAEA9Q,EAFA8Q,YACAC,EACA/Q,EADA+Q,QAGJ,OACIvQ,EAAAA,EAAAA,KAAA,OAAKH,WAAWC,EAAAA,EAAAA,GAAK,iBAAkBmR,GAAc,UAAWb,GAAkB,SAASrQ,SACtFmR,EAAgBjQ,KAAI,SAAAgP,GACjB,IAAM3G,EAAa6H,EAAYlB,EAAMmB,UAErC,OACIpR,EAAAA,EAAAA,KAACgQ,EAAS,CAEN1G,WAAYA,EACZ2G,MAAOA,EACPE,YAAaA,EACbC,eAAgBA,EAChBF,eAAgBA,EAChBG,aAAcA,EACdC,YAAaA,EACbC,QAASA,GARJN,EAAMnK,GAWvB,KAGZ,E,uCCxHauL,EAAe,SAAC7R,GAA+C,IAAD8R,EAC/DC,EAAc/R,EAAd+R,UAEJC,EAA8B,QAAnBF,EAAY,OAATC,QAAS,IAATA,OAAS,EAATA,EAAW3P,aAAK,IAAA0P,EAAAA,EAAI,GAEtC,GAAIC,EAAW,CAAC,IACmBE,EADpBC,GAAAC,EAAAA,EAAAA,GACKJ,EAAUK,OAAK,IAA/B,IAAAF,EAAAG,MAAAJ,EAAAC,EAAAI,KAAAC,MAAiC,CAAC,IAAvBF,EAACJ,EAAAO,MACRR,GAAW,mBAAA3Q,OAErBgR,EAAEpL,KACI,CAAC,OAAAwL,GAAAP,EAAA9C,EAAAqD,EAAA,SAAAP,EAAAQ,GAAA,CACL,CAEA,MAAO,CAAEV,YAAAA,EACb,ECRaW,EAAkB,SAAC3S,GAGzB,IAAD4S,EACMb,EAA2B/R,EAA3B+R,UAAWjB,EAAgB9Q,EAAhB8Q,YAEXhM,GAAoBL,EAAAA,EAAAA,YAAWC,EAAAA,IAA/BI,gBAEAkN,EAAgBH,EAAa,CAAEE,UAAAA,IAA/BC,YAEFa,GAAYtG,EAAAA,EAAAA,cAAY,WACtByF,IACAc,UAAUC,UAAUC,UAAUhB,GAG9BlN,EAAgB,CACZ1C,MAAO,cACP6Q,YAAa,6BACbvQ,KAAM,YAGlB,GAAG,CAACoC,EAAiBkN,IAEfkB,GAAgB3G,EAAAA,EAAAA,cAAY,WAC9B,GAAe,OAAXuE,QAAW,IAAXA,GAAAA,EAAaqC,cAAe,CAC5B,IAE0ClB,EAFtCG,EAAQ,GAAGF,GAAAC,EAAAA,EAAAA,GAEY,OAAXrB,QAAW,IAAXA,OAAW,EAAXA,EAAaqC,eAAa,IAA1C,IAAAjB,EAAAG,MAAAJ,EAAAC,EAAAI,KAAAC,MAA4C,CAAC,IAAlCF,EAACJ,EAAAO,MACRJ,GAAK,GAAA/Q,OAAOgR,EAAEnS,KAAI,uCAAAmB,OAEhCgR,EAAEY,YAAW,OAGH,CAAC,OAAAR,GAAAP,EAAA9C,EAAAqD,EAAA,SAAAP,EAAAQ,GAAA,CAEDI,UAAUC,UAAUC,UAAUZ,GAG9BtN,EAAgB,CACZ1C,MAAO,sBACP6Q,YAAa,6BACbvQ,KAAM,WAEd,CACJ,GAAG,CAACoC,EAA4B,OAAXgM,QAAW,IAAXA,OAAW,EAAXA,EAAaqC,gBAElC,OAAe,OAAXrC,QAAW,IAAXA,GAAAA,EAAaQ,UAAqC,QAA7BsB,EAAI9B,EAAYqC,qBAAa,IAAAP,GAAzBA,EAA2BpR,QAEhDhB,EAAAA,EAAAA,KAACwE,EAAAA,EAAkB,CAACC,MAAM,EAAMrD,KAAK,aAAaY,UAAU,MAAKjC,UAC7DH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,WAAUE,SAAA,EACrBC,EAAAA,EAAAA,KAAA,UAAQkC,KAAK,SAASrC,UAAU,0BAA0B,iBAAe,WAAUE,UAC/EC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,mBAGpBD,EAAAA,EAAAA,MAAA,MAAIC,UAAU,gBAAeE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,MAAAD,UACIC,EAAAA,EAAAA,KAAA,UAAQkC,KAAK,SAASrC,UAAU,gBAAgByB,QAAS+Q,EAAUtS,UAC/DC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,KAAK,cAAc2B,KAAK,yBAG1CpB,EAAAA,EAAAA,KAAA,MAAAD,UACIC,EAAAA,EAAAA,KAAA,UAAQkC,KAAK,SAASrC,UAAU,gBAAgByB,QAASoR,EAAc3S,UACnEC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,KAAK,cAAc2B,KAAK,iCAU1DpB,EAAAA,EAAAA,KAAA,UAAQkC,KAAK,SAASrC,UAAU,0BAA0ByB,QAAS+Q,EAAUtS,UACzEC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,iBAG5B,EC9Ea+S,EAAsB,SAACpT,GAChC,IAAQ+R,EAAc/R,EAAd+R,UAEAjN,GAAoBL,EAAAA,EAAAA,YAAWC,EAAAA,IAA/BI,gBAEFuO,GAAgB9G,EAAAA,EAAAA,cAAY,WAC9B,GAAIwF,EAAW,CAAC,IAADD,EACLwB,EAAevB,EAAUhO,KACzB0D,EAAG,GAAApG,OAAMkS,OAAOC,SAASC,QAAMpS,OAAG0J,EAAAA,GAAAA,wBAAkCuI,IAGpE1R,EAAI,gDAAAP,OAEL,QAFKyQ,EAEpBC,EAAU3P,aAAK,IAAA0P,EAAAA,EAAIC,EAAUjO,SAAQ,qBAAAzC,OAElC0Q,EAAU2B,YAAW,mBAAArS,OAAQ0Q,EAAU4B,WAAU,mBAAAtS,OAAQ0Q,EAAU6B,WAAU,QAAAvS,OAEhFoG,GAEUqL,UAAUC,UAAUC,UAAUpR,GAG9BkD,EAAgB,CACZ1C,MAAO,cACP6Q,YAAa,8BACbvQ,KAAM,WAEd,CACJ,GAAG,CAACoC,EAAiBiN,IAErB,OACIvR,EAAAA,EAAAA,KAACwE,EAAAA,EAAkB,CAACC,MAAM,EAAMrD,KAAK,aAAYrB,UAC7CC,EAAAA,EAAAA,KAAA,UAAQkC,KAAK,SAASrC,UAAU,0BAA0ByB,QAASuR,EAAc9S,UAC7EC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,oBAIhC,ECrCawT,EAAc,SACvB7T,GAKA,IAAQ+R,EAAyC/R,EAAzC+R,UAAW+B,EAA8B9T,EAA9B8T,aAAcnC,EAAgB3R,EAAhB2R,YAEzB3J,EAAeC,EAAAA,GAAAA,WAEvBjF,GAA0CC,EAAAA,EAAAA,UAAoC,IAAGC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA1E+Q,EAAa7Q,EAAA,GAAE8Q,EAAgB9Q,EAAA,GA8BtC,OA3BAQ,EAAAA,EAAAA,YAAU,WACN,GAAa,OAATqO,QAAS,IAATA,GAAAA,EAAWkC,QAAS,CACpB,IAAMA,GAAUC,EAAAA,EAAAA,GAAInC,EAAUkC,SAASE,QAAO,SAAA1O,GAAC,OAAIA,EAAE8K,SAAS,IAE9D0D,EAAQG,MAAK,SAACC,EAAGC,GAEb,OAAID,EAAE9D,UAAY+D,EAAE/D,WACR,EACD8D,EAAE9D,UAAY+D,EAAE/D,UAChB,EAIP8D,EAAE/D,cAAgBgE,EAAEhE,eACZ,EACD+D,EAAE/D,cAAgBgE,EAAEhE,cACpB,EAIJ,CACX,IAEA0D,EAAiBC,EACrB,CACJ,GAAG,CAAU,OAATlC,QAAS,IAATA,OAAS,EAATA,EAAWkC,WAGXzT,EAAAA,EAAAA,KAAA,OAAKH,UAAU,gCAA+BE,SACzCwT,EAActS,KAAI,SAAA8S,GACf,IAAMzK,EAAa6H,EAAY4C,EAAEjO,IAEjC,OACI9F,EAAAA,EAAAA,KAAA,UACIkC,KAAK,SAELrC,UAAU,8CACVyB,QAAS,WACLgS,EAAaS,EACjB,EAAEhU,UAEFH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,gBAAeE,SAAA,EAC1BH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,mDAAkDE,SAAA,EAC7DC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,yCAAwCE,SACjC,MAAjBgU,EAAElN,cACC7G,EAAAA,EAAAA,KAAA,OAAK0F,IAAI,GAAGvC,MAAO,CAAEC,MAAO,IAAMuC,IAAK6B,EAAWuM,EAAElN,kBAG5D7G,EAAAA,EAAAA,KAAA,OAAKH,UAAU,gDAA+CE,SAAEuJ,QAGpE1J,EAAAA,EAAAA,MAAA,OAAKC,UAAU,4EAA2EE,SAAA,CACrFgU,EAAEhE,UAAU,IAAkB,IAAhBgE,EAAEhE,UAAkB,OAAS,WAG/CgE,EAAEjE,cAAgB,IACflQ,EAAAA,EAAAA,MAAA,OAAKC,UAAU,sEAAqEE,SAAA,EAChFC,EAAAA,EAAAA,KAAA,QAAAD,SAAM,kBACNC,EAAAA,EAAAA,KAAA,QAAAD,SAAOgU,EAAEjE,uBAvBhBiE,EAAEjO,GA6BnB,KAGZ,E,8ECjFakO,EAAyB,SAACxU,GAMnC,IAAQ+D,EAAuC/D,EAAvC+D,KAAMsH,EAAiCrL,EAAjCqL,WAAYoJ,EAAqBzU,EAArByU,QAASC,EAAY1U,EAAZ0U,QAEnClQ,GAA+DC,EAAAA,EAAAA,YAAWC,EAAAA,IAAlEiQ,EAAenQ,EAAfmQ,gBAAiB9P,EAAgBL,EAAhBK,iBAAkBC,EAAeN,EAAfM,gBACnC8P,EAAuBD,EAAvBC,mBAER5R,GAAwCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAhD4L,EAAY1L,EAAA,GAAE2L,EAAe3L,EAAA,GAmBpC,OACI1C,EAAAA,EAAAA,KAAA,UACIkC,KAAK,SACLrC,UAAU,4BACV6B,UAAWmJ,GAAcuD,EACzB9M,QAtBK,WACT+M,GAAgB,GAEZxD,GACAuJ,EAAmB,CAAE7Q,KAAAA,EAAMkD,KAAMoE,IAC5B7F,MAAK,SAAAC,GACEA,EAAEC,UACFZ,EAAgB,CAAEpC,KAAM,UAAWN,MAAO,4BAC1CqS,KAGJ5F,GAAgB,EACpB,IACChJ,MAAMhB,EAEnB,EAOsBtE,UAEdC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CACL7F,MAAMK,EAAAA,EAAAA,GAAK,MAAOsO,EAAe,iBAAmB,WACpDhN,KAAMgN,EAAe,SAAW8F,EAAU,SAAW,UAIrE,E,8BC9BaG,EAAe,SAAC7U,GAIzB,IAAQ+R,EAA2B/R,EAA3B+R,UAAWjB,EAAgB9Q,EAAhB8Q,YAEXhM,GAAoBL,EAAAA,EAAAA,YAAWC,EAAAA,IAA/BI,gBAERgQ,GAAwClH,EAAAA,EAAAA,KAAhCG,EAAQ+G,EAAR/G,SAAUM,EAAOyG,EAAPzG,QAASF,EAAQ2G,EAAR3G,SAInB9C,GAFO0J,EAAAA,EAAAA,IAAS,CAAE1G,QAAAA,IAElBhD,WAEA2G,EAAgBH,EAAa,CAAEE,UAAAA,IAA/BC,YACRgD,EC/B+B,SAAChV,GAChC,IAAQqL,EAAerL,EAAfqL,WAEF4J,GAAoBxH,EAAAA,EAAAA,QAAuB,MAE3CyH,GAAuB3I,EAAAA,EAAAA,cAAY,WACjC0I,EAAkB1K,UAClB0K,EAAkB1K,QAAQ4K,QAAQC,gBAAkB/J,EAE5D,GAAG,CAACA,IAMJ,OAJA3H,EAAAA,EAAAA,YAAU,WACNwR,GACJ,GAAG,CAACA,IAEG,CAAED,kBAAAA,EAAmBC,qBAAAA,EAChC,CDewDG,CAAoB,CAAEhK,WAAAA,IAAlE6J,EAAoBF,EAApBE,qBAAsBD,EAAiBD,EAAjBC,kBAE9BjS,GAA8BC,EAAAA,EAAAA,YAAmBC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA1C0R,EAAOxR,EAAA,GAAEoS,EAAUpS,EAAA,GAgB1B,OAbAQ,EAAAA,EAAAA,YAAU,WACFqO,GAAajB,IAETA,EAAYyE,cACZpH,EAAS,aAAc2C,EAAYyE,cACnCD,GAAW,KAEXnH,EAAS,aAAc6D,GACvBsD,GAAW,IAGvB,GAAG,CAACtD,EAAaD,EAAWjB,EAAa3C,IAEpC4D,GAAcjB,GAKftQ,EAAAA,EAAAA,KAAA,OAAKH,UAAU,SAAQE,UACnBC,EAAAA,EAAAA,KAACK,EAAAA,GAAQ,CACLH,QACIN,EAAAA,EAAAA,MAAA,OAAKC,UAAU,mDAAkDE,SAAA,EAC7DC,EAAAA,EAAAA,KAAA,OAAAD,UACgB,OAAXuQ,QAAW,IAAXA,OAAW,EAAXA,EAAaQ,YACV9Q,EAAAA,EAAAA,KAACgU,EAAsB,CACnBzQ,KAAMgO,EAAUhO,KAChBsH,WAAYA,EACZoJ,QAAS,kBAAMa,GAAW,EAAK,EAC/BZ,UAAWA,OAKvBtU,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,UACIkC,KAAK,SACLrC,UAAU,yBACVyB,QAAS,WACDuJ,IACAyH,UAAUC,UAAUC,UAAU3H,GAE9BvG,EAAgB,CACZ1C,MAAO,sBACP6Q,YAAa,6BACbvQ,KAAM,YAGlB,EAAEnC,UAEFC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,KAAK,cAAc2B,KAAK,uBAGtCpB,EAAAA,EAAAA,KAAA,UACIkC,KAAK,SACLrC,UAAU,yBACVyB,QAAS,WACL,IAEcgQ,EAFR0D,EAAWjC,OAAOkC,KAAK,GAAI,GAAI,2BAEjCD,IACAE,EAAAA,QACItV,EAAAA,EAAAA,MAACgR,EAAAA,SAAQ,CAAA7Q,SAAA,EACLC,EAAAA,EAAAA,KAAA,QACI2K,IAAI,aACJD,KAAK,0EACLyK,UAAU,0EACVC,YAAY,eAEhBpV,EAAAA,EAAAA,KAAA,OAAAD,SAAM8K,OAEVmK,EAASK,SAAS5O,MAGtBuO,EAASK,SAASzT,MAAuB,QAAlB0P,EAAGC,EAAU3P,aAAK,IAAA0P,EAAAA,EAAIC,EAAUjO,SACvD0R,EAASK,SAASC,QAClBN,EAASO,QACTP,EAASQ,QACTR,EAASM,QAEjB,EAAEvV,UAEFC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,KAAK,eAAe2B,KAAK,kBAIlDrB,UAEDH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACb,OAAXuQ,QAAW,IAAXA,OAAW,EAAXA,EAAaQ,YACV9Q,EAAAA,EAAAA,KAAA,OACIH,WAAWC,EAAAA,EAAAA,GACP,wBACAoU,GAAW,cACC,IAAZA,GAAqB,cACvBnU,UAEFH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,OAAME,UACjBC,EAAAA,EAAAA,KAAA,QACIH,WAAWC,EAAAA,EAAAA,GAAK,MAAOoU,EAAU,WAAa,gCAItDtU,EAAAA,EAAAA,MAAA,OAAKC,UAAU,2BAA0BE,SAAA,EACrCH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,KAAIE,SAAA,CAAC,mBAAiBmU,EAAU,QAAU,eAExDA,GACGtU,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CAAK,UACKC,EAAAA,EAAAA,KAAA,UAAAD,SAAQ,WAAe,qCAGjCH,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CAAK,UACKC,EAAAA,EAAAA,KAAA,UAAAD,SAAQ,SAAa,qCAQnDC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,eAAcE,UACzBC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,YAAYoC,IAAKwS,EAAkB1U,UAC9CC,EAAAA,EAAAA,KAAA,YAAA+E,EAAAA,EAAAA,GAAA,CACIe,GAAG,WACCyH,EAAS,aAAc,CACvBkI,SAAUf,iBA9G/B,IAuHf,E,oBEtKagB,EAAwB,WAAH,OAC9B1V,EAAAA,EAAAA,KAACuL,EAAAA,EAAW,CACRzF,GAAG,oBACHjG,UAAU,yBACVuB,MAAMpB,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,KAAK,oBAAoB2B,KAAK,oBAChD,EAGOuU,EAAkB,SAACnW,GAC5B,IAAQ6J,EAAqC7J,EAArC6J,WAAYhB,EAAyB7I,EAAzB6I,SAAUiB,EAAe9J,EAAf8J,WAE9B,OACItJ,EAAAA,EAAAA,KAAA,OAAK8F,GAAG,oBAAoBjG,UAAU,QAAQ,mBAAiB,QAAOE,UAClEC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,mBAAkBE,UAC7BC,EAAAA,EAAAA,KAACoJ,EAAAA,EAAU,CAACN,eAAgB,IAAKO,WAAYA,EAAYhB,SAAUA,EAAUiB,WAAYA,OAIzG,E,UCYMsM,EAAY,SAACpW,GACf,IAAQyJ,EAA6BzJ,EAA7ByJ,MAAOxJ,EAAsBD,EAAtBC,KAAMgT,EAAgBjT,EAAhBiT,YAErB,OACI7S,EAAAA,EAAAA,MAAA,MAAIC,UAAU,oBAAmBE,SAAA,EAC7BC,EAAAA,EAAAA,KAAA,QAAAD,SAAON,KACPO,EAAAA,EAAAA,KAAA,QAAMH,UAAU,YAAWE,SAAW,MAATkJ,GAAgBjJ,EAAAA,EAAAA,KAAA,QAAMH,UAAU,oBAA4BoJ,KACzFjJ,EAAAA,EAAAA,KAAA,QAAAD,SAAO0S,MAGnB,EAEMoD,EAAuB,WAAH,OACtBjW,EAAAA,EAAAA,MAACgR,EAAAA,SAAQ,CAAA7Q,SAAA,EACLC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,sBAAqBE,UAChCC,EAAAA,EAAAA,KAACwL,EAAAA,EAAmB,CAAChK,KAAM,OAG/BxB,EAAAA,EAAAA,KAAA,OAAKH,UAAU,sBAAqBE,UAChCC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,mBAAkBE,UAC7BC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,2CAGhB,EAGFiW,EAAiB,SAACtW,GAKxB,IAADuW,EAAAzE,EAAA0E,EAAAC,EACM1E,EAAyC/R,EAAzC+R,UAAWjB,EAA8B9Q,EAA9B8Q,YAAa4F,EAAiB1W,EAAjB0W,aAEhClS,GAAkDC,EAAAA,EAAAA,YAAWC,EAAAA,IAArDiS,EAAenS,EAAfmS,gBAAiBC,EAAUpS,EAAVoS,WAAYC,EAAQrS,EAARqS,SAE7BvK,GAAmBD,EAAAA,EAAAA,KAAnBC,eAERtJ,GAA0CC,EAAAA,EAAAA,YAAoBC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAAvD8T,EAAa5T,EAAA,GAAE6T,EAAgB7T,EAAA,GACtCI,GAA4CL,EAAAA,EAAAA,YAA8BM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAAnEoN,EAAcnN,EAAA,GAAEyT,EAAiBzT,EAAA,GACxCkM,GAA8CxM,EAAAA,EAAAA,UAA0C,IAAGyM,IAAAvM,EAAAA,EAAAA,GAAAsM,EAAA,GAApFiC,GAAehC,GAAA,GAAEuH,GAAkBvH,GAAA,GAC1CwH,IAA8BjU,EAAAA,EAAAA,UAAoC,IAAGkU,IAAAhU,EAAAA,EAAAA,GAAA+T,GAAA,GAA9DjD,GAAOkD,GAAA,GAAEC,GAAUD,GAAA,GAC1BE,IAAkDpU,EAAAA,EAAAA,UAA0C,IAAGqU,IAAAnU,EAAAA,EAAAA,GAAAkU,GAAA,GAAxFE,GAAiBD,GAAA,GAAEE,GAAoBF,GAAA,GAC9CG,IAAkCxU,EAAAA,EAAAA,UAAiC,CAAC,GAAEyU,IAAAvU,EAAAA,EAAAA,GAAAsU,GAAA,GAA/DE,GAASD,GAAA,GAAEE,GAAYF,GAAA,GAC9BG,IAAoC5U,EAAAA,EAAAA,YAAoC6U,IAAA3U,EAAAA,EAAAA,GAAA0U,GAAA,GAAjEE,GAAUD,GAAA,GAAEE,GAAaF,GAAA,GAChCG,IAAoDhV,EAAAA,EAAAA,WAAS,GAAMiV,IAAA/U,EAAAA,EAAAA,GAAA8U,GAAA,GAA5DE,GAAkBD,GAAA,GAAEE,GAAqBF,GAAA,GAChDG,IAA0DpV,EAAAA,EAAAA,WAAS,GAAMqV,IAAAnV,EAAAA,EAAAA,GAAAkV,GAAA,GAAlEE,GAAqBD,GAAA,GAAEE,GAAwBF,GAAA,GACtDG,IAAkDxV,EAAAA,EAAAA,YAAsCyV,IAAAvV,EAAAA,EAAAA,GAAAsV,GAAA,GAAjFlX,GAAiBmX,GAAA,GAAEC,GAAoBD,GAAA,GAG9CE,IAA4C3V,EAAAA,EAAAA,WAAS,GAAM4V,IAAA1V,EAAAA,EAAAA,GAAAyV,GAAA,GAApDE,GAAcD,GAAA,GAAEE,GAAiBF,GAAA,GAGxCG,IAA0D/V,EAAAA,EAAAA,WAAS,GAAMgW,IAAA9V,EAAAA,EAAAA,GAAA6V,GAAA,GAAlEE,GAAqBD,GAAA,GAAEE,GAAwBF,GAAA,IAEtDvV,EAAAA,EAAAA,YAAU,WACO,OAATqO,QAAS,IAATA,GAAAA,EAAWvF,SAAS4M,iBAAmBrH,EAAU2B,YAAc,GAC/DyF,IAAyB,EAEjC,GAAG,CAAU,OAATpH,QAAS,IAATA,OAAS,EAATA,EAAW2B,YAAsB,OAAT3B,QAAS,IAATA,OAAS,EAATA,EAAWvF,SAAS4M,kBAEhD,IAAMvI,IAAetE,EAAAA,EAAAA,cACjB,SAAC8M,GACG,OAAIA,KAAW1B,GACJA,GAAU0B,GAGd,CACX,GACA,CAAC1B,KAGC7D,GAAe,SAACS,GAClBwC,OAAiB1O,GAGjB2O,EAAkBzC,GAElBiE,IAAyB,GACzBJ,IAAsB,GACtBW,IAAkB,EACtB,EAGAO,IAAgDrW,EAAAA,EAAAA,YAAkBsW,IAAApW,EAAAA,EAAAA,GAAAmW,GAAA,GAA3DE,GAAgBD,GAAA,GAAEE,GAAmBF,GAAA,IAE5C7V,EAAAA,EAAAA,YAAU,WAEF+V,GADA3C,EACoBA,EAAc5W,UAEdmI,EAE5B,GAAG,CAACyO,KAGJpT,EAAAA,EAAAA,YAAU,WACN,IAAMiQ,EAAsB,OAAT5B,QAAS,IAATA,OAAS,EAATA,EAAWvF,SAASmH,WAEvC,GAAIA,EAAY,CACZ,IAAM+F,EAAa,OAAT3H,QAAS,IAATA,OAAS,EAATA,EAAW4H,WAAWC,MAAK,SAAAnU,GAAC,OAAIA,EAAEtE,YAAcwS,GAAclO,EAAEyB,QAAQ,IAClF8Q,GAAc0B,EAClB,MACI1B,QAAc3P,EAEtB,GAAG,CAAU,OAAT0J,QAAS,IAATA,OAAS,EAATA,EAAW4H,WAAqB,OAAT5H,QAAS,IAATA,OAAS,EAATA,EAAWvF,SAASmH,aAG/C,IAAMhC,IAAckI,EAAAA,EAAAA,UAA0B,WAC1C,IAAMC,EAA0B,CAAC,EAC7B1Q,EAAI,EAER,GAAI0H,GAAeiB,EAAW,CAAC,IACME,EADPC,GAAAC,EAAAA,EAAAA,GACVJ,EAAUkC,SAAO,IAAjC,IAAA/B,EAAAG,MAAAJ,EAAAC,EAAAI,KAAAC,MAAmC,CAAC,IAAzBgC,EAACtC,EAAAO,MACFtS,EAAO4Q,EAAYQ,UAAYR,EAAYO,SAAWkD,EAAErU,KAAI,UAAAmB,OAAa+H,GAE/E0Q,EAAMvF,EAAEjO,IAAMpG,EACdkJ,GACJ,CAAC,OAAAqJ,GAAAP,EAAA9C,EAAAqD,EAAA,SAAAP,EAAAQ,GAAA,CACL,CAEA,OAAOoH,CACX,GAAG,CAAC/H,EAAWjB,IAGfiJ,IAAgC9W,EAAAA,EAAAA,YAAkB+W,IAAA7W,EAAAA,EAAAA,GAAA4W,GAAA,GAA3CE,GAAQD,GAAA,GAAEE,GAAWF,GAAA,IAE5BtW,EAAAA,EAAAA,YAAU,WACN,GAAIqU,GAAY,CACZ,IAAQzH,EAA4ByH,GAA5BzH,cAAesB,EAAamG,GAAbnG,SACjB9H,EAAa6H,GAAYC,GAEzBrB,EAAYM,GAAakH,GAAWzR,IAEtC6T,EAAU,GAEVpC,GAAWxQ,YACX4S,GAAW,WAGfA,GAAO,YAAA9Y,OAAgByI,GAEnBwG,IAAkBC,EAElB4J,GAAO,SAAA9Y,OAAaiP,EAAa,iBAC1BC,IACP4J,GAAO,SAAA9Y,OAA2B,IAAdkP,EAAkB,SAAQ,GAAAlP,OAAMkP,EAAS,WAEzDD,IACA6J,GAAO,QAAA9Y,OAAYiP,EAAa,mBAIxC4J,GAAYC,EAChB,MAAWpI,GACPmI,GAAY,iBAEpB,GAAG,CAACrJ,GAAckH,GAAYhG,EAAWJ,MAGzCjO,EAAAA,EAAAA,YAAU,WACN,GAAa,OAATqO,QAAS,IAATA,GAAAA,EAAWqI,cAAe,CAC1B,IAEwCC,EAFlCC,EAAgC,CAAC,EAAEC,GAAApI,EAAAA,EAAAA,GAExBJ,EAAUqI,eAAa,IAAxC,IAAAG,EAAAlI,MAAAgI,EAAAE,EAAAjI,KAAAC,MAA0C,CAAC,IAAhCjM,EAAE+T,EAAA7H,MACHlM,KAAMgU,IACRA,EAAMhU,GAAM,GAGhBgU,EAAMhU,IACV,CAAC,OAAAmM,GAAA8H,EAAAnL,EAAAqD,EAAA,SAAA8H,EAAA7H,GAAA,CAEDkF,GAAa0C,EACjB,CACJ,GAAG,CAAU,OAATvI,QAAS,IAATA,OAAS,EAATA,EAAWqI,iBAGf1W,EAAAA,EAAAA,YAAU,WACN,IAAI8W,EAA2C,GAE1C9J,GAAmBoG,GAA0B,OAAT/E,QAAS,IAATA,IAAAA,EAAWK,MAGhC,OAATL,QAAS,IAATA,GAAAA,EAAW4H,aAClBa,EAAmB,OAATzI,QAAS,IAATA,OAAS,EAATA,EAAW4H,WAEjB7C,IACA0D,EAAUA,EAAQrG,QAAO,SAAA1O,GAAC,OAAIA,EAAEgV,UAAY3D,EAAcxQ,EAAE,KAG5DoK,IACA8J,EAAUA,EAAQrG,QAAO,SAAA1O,GAAC,OAAIA,EAAEmM,WAAalB,EAAepK,EAAE,MATlEkU,EAAUzI,EAAUK,MAcxBoI,EAAQpG,MAAK,SAACC,EAAGC,GAEb,OAAID,EAAElT,YAAcmT,EAAEnT,YACX,EACAkT,EAAElT,YAAcmT,EAAEnT,aACjB,EAIRkT,EAAEvK,WAAW4Q,cAAgBpG,EAAExK,WAAW4Q,cACnC,EACArG,EAAEvK,WAAW4Q,cAAgBpG,EAAExK,WAAW4Q,eACzC,EAIL,CACX,IAEAzD,GAAmBuD,EACvB,GAAG,CAAU,OAATzI,QAAS,IAATA,OAAS,EAATA,EAAW4H,WAAqB,OAAT5H,QAAS,IAATA,OAAS,EAATA,EAAWK,MAAO1B,EAAgBoG,KAG7DpT,EAAAA,EAAAA,YAAU,WACN,GAAa,OAATqO,QAAS,IAATA,GAAAA,EAAWkC,QAAS,CACpB,IAAMM,GAAIL,EAAAA,EAAAA,GAAInC,EAAUkC,SAASE,QAAO,SAAA1O,GAAC,OAAIsM,EAAU4H,WAAWC,MAAK,SAAAe,GAAC,OAAIA,EAAE/I,WAAanM,EAAEa,EAAE,GAAC,IAGjF,OAAXwK,QAAW,IAAXA,GAAAA,EAAaQ,SACbiD,EAAEH,MAAK,SAACC,EAAGC,GAAC,OAAMD,EAAEnU,KAAKwa,cAAgBpG,EAAEpU,KAAKwa,cAAgB,GAAK,CAAC,IAGtEnG,EAAEH,MAAK,SAACC,EAAGC,GAAC,OAAKD,EAAE/N,GAAKgO,EAAEhO,EAAE,IAGhC8Q,GAAW7C,EACf,CACJ,GAAG,CAAU,OAATxC,QAAS,IAATA,OAAS,EAATA,EAAW4H,WAAqB,OAAT5H,QAAS,IAATA,OAAS,EAATA,EAAWkC,QAAoB,OAAXnD,QAAW,IAAXA,OAAW,EAAXA,EAAaQ,YAG5D5N,EAAAA,EAAAA,YAAU,WACN,GAAa,OAATqO,QAAS,IAATA,GAAAA,EAAW4H,WAAY,CACvB,IAAMiB,GAAa1G,EAAAA,EAAAA,GAAInC,EAAU4H,YAAYxF,QAAO,SAAA1O,GAAC,OAAKA,EAAEyB,QAAQ,IAEpE0T,EAAWxG,MAAK,SAACC,EAAGC,GAAC,OAAKzD,GAAayD,EAAEhO,IAAMuK,GAAawD,EAAE/N,GAAG,IAEjEkR,GAAqBoD,EAAWC,MAAM,EAAG,GAC7C,CACJ,GAAG,CAAU,OAAT9I,QAAS,IAATA,OAAS,EAATA,EAAW4H,WAAY9I,MAG3BnN,EAAAA,EAAAA,YAAU,WACO,OAATqO,QAAS,IAATA,GAAAA,EAAWxQ,kBAAkBC,QAC7BmX,IAAoBzE,EAAAA,EAAAA,GAAKnC,EAAUxQ,mBAE3C,GAAG,CAAU,OAATwQ,QAAS,IAATA,OAAS,EAATA,EAAWxQ,oBAEf,IAeAuZ,IAAkD7X,EAAAA,EAAAA,YAAkB8X,IAAA5X,EAAAA,EAAAA,GAAA2X,GAAA,GAA7DE,GAAiBD,GAAA,GAAEE,GAAoBF,GAAA,IAE9CrX,EAAAA,EAAAA,YAAU,WAEFuX,GADAvK,EACqBiB,GAAYjB,EAAepK,SAE3B+B,EAE7B,GAAG,CAACqI,EAAgBiB,KAGpB,IAAAuJ,IAAgDjY,EAAAA,EAAAA,UAAS,IAAGkY,IAAAhY,EAAAA,EAAAA,GAAA+X,GAAA,GAArDvP,GAAgBwP,GAAA,GAAEC,GAAmBD,GAAA,IAE5CzX,EAAAA,EAAAA,YAAU,WACN,IAAI2X,GAAmB,EAEvB,GAAa,OAATtJ,QAAS,IAATA,GAAAA,EAAWxQ,kBAAkBC,QAAUsV,EAAe,CAEtD,IAAMwE,EAAsB,OAATvJ,QAAS,IAATA,OAAS,EAATA,EAAWwJ,OAAOC,QAAQ1E,GAE7C,QAAmBzO,IAAfiT,EAA0B,CAC1B,IAAMG,EAAsB1J,EAAUxQ,kBAAkB+Z,GAEpDG,IACAL,GAAoBK,EAAoBvb,MACxCmb,GAAmB,EAE3B,CACJ,CAEKA,GACDD,GAAoB,GAE5B,GAAG,CAAU,OAATrJ,QAAS,IAATA,OAAS,EAATA,EAAWxQ,kBAA4B,OAATwQ,QAAS,IAATA,OAAS,EAATA,EAAWwJ,OAAQzE,IAErD,IAAM4E,GAAcnD,GACd,kBACAJ,GACA,cACAW,GACA,aACAkC,KAEAxB,IAEA,eAEAmC,GAAkBpD,IACpB/X,EAAAA,EAAAA,KAAA,QAAMH,UAAU,iBAChB8X,IACA3X,EAAAA,EAAAA,KAAA,QAAMH,UAAU,wBAChByY,IACAtY,EAAAA,EAAAA,KAAA,QAAMH,UAAU,gBAChB2a,IACAxa,EAAAA,EAAAA,KAAA,QAAMH,UAAU,gBAChBmZ,IACAhZ,EAAAA,EAAAA,KAAA,QAAMH,UAAU,iBAEhBG,EAAAA,EAAAA,KAAA,QAAMH,UAAU,kBAGdub,GAA0E,QAAxDrF,EAAY,OAATxE,QAAS,IAATA,OAAS,EAATA,EAAWwJ,OAAOpH,QAAO,SAAA1O,GAAC,OAAKA,EAAE0L,YAAY,IAAE3P,cAAM,IAAA+U,EAAAA,EAAI,EAC9EsF,GAAc,QAAAxa,OAAkC,IAAvBua,GAA2B,GAAK,KAE/D,OACIxb,EAAAA,EAAAA,MAAA,OAAKC,UAAU,wBAAuBE,SAAA,EAClCC,EAAAA,EAAAA,KAACsb,EAAAA,EAAU,CACP7b,KAAK,eACLmC,MAAuB,QAAlB0P,EAAW,OAATC,QAAS,IAATA,OAAS,EAATA,EAAW3P,aAAK,IAAA0P,EAAAA,EAAa,OAATC,QAAS,IAATA,OAAS,EAATA,EAAWjO,SACtCmP,YAAagH,GACb8B,OACIhK,IACI3R,EAAAA,EAAAA,MAACgR,EAAAA,SAAQ,CAAA7Q,SAAA,EACLC,EAAAA,EAAAA,KAACwE,EAAAA,EAAkB,CACfC,MAAM,EACNrD,KAAM8U,EAAe,uBAAyB,kBAAkBnW,UAEhEC,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CACDG,GAAIoO,EAAe/J,EAAAA,GAAAA,mBAA+BA,EAAAA,GAAAA,aAClDtM,UAAU,0BAAyBE,UAEnCC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,2BAIxBG,EAAAA,EAAAA,KAACmS,EAAe,CAACZ,UAAWA,EAAWjB,YAAaA,KACpDtQ,EAAAA,EAAAA,KAAC4S,EAAmB,CAACrB,UAAWA,KAE9BA,EAAUiK,aAAyB,OAAXlL,QAAW,IAAXA,OAAW,EAAXA,EAAaO,YACnC7Q,EAAAA,EAAAA,KAACqD,EAAAA,EAAgB,CACbE,KAAMgO,EAAUhO,KAChBvB,UAAU,SACV0B,SAAS,4BACTE,YAAY,EACZJ,SAAU2I,EAAAA,GAAAA,qBAQlCnM,EAAAA,EAAAA,KAAA,OAAKH,UAAU,wBAAuBE,UAClCH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,sBAAqBE,SAAA,EAChCC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,sBAAqBE,UAChCH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,CACxBwR,GACGvR,EAAAA,EAAAA,KAACiL,EAAAA,GAAe,CACZxF,cAAe8L,EAAU9L,cACzBsF,OAAQwG,EAAUxG,OAClBvF,SAAU+L,EAAU/L,SACpBiF,YAAa8G,EAAU9G,eAG3BzK,EAAAA,EAAAA,KAAC0L,EAAAA,EAAiB,IAGrB3K,IAAqBA,GAAkBC,OAAS,IAC7ChB,EAAAA,EAAAA,KAACc,EAAAA,EAAwB,CAACC,kBAAmBA,SAIrDf,EAAAA,EAAAA,KAAA,OAAKH,UAAU,sCAAqCE,SACpC,OAAXuQ,QAAW,IAAXA,IAAAA,EAAaO,UAAqB,OAATU,QAAS,IAATA,IAAAA,EAAWhO,MAAiB,OAAR8S,QAAQ,IAARA,GAAAA,EAAUoF,WAUpD7b,EAAAA,EAAAA,MAACgR,EAAAA,SAAQ,CAAA7Q,SAAA,EACLC,EAAAA,EAAAA,KAAA,UACI0B,UAAW6P,KAAwB,OAAV6E,QAAU,IAAVA,GAAAA,EAAYsF,cACrCxZ,KAAK,SACLrC,UAAU,yBACVyB,QA1JvB,WACTiQ,GAAuB,OAAV6E,QAAU,IAAVA,GAAAA,EAAYsF,gBACzBC,EAAAA,EAAAA,IAAmB,wBAEnB7P,EAAe,CACX8P,QAASrK,EAAUqK,QACnBpW,SAAU+L,EAAU/L,SACpBqF,WAAY0G,EAAUxG,OACtBoI,WAAY5B,EAAUvF,SAASmH,WAC/BpS,kBAAmBwQ,EAAUxQ,oBAGzC,EA8I0DhB,UAElBC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,KAAK,qBAAqB2B,KAAK,kBAG7CpB,EAAAA,EAAAA,KAAC6b,EAAAA,EAAQ,QAnBb7b,EAAAA,EAAAA,KAAA,OAAKH,UAAU,WAAUE,UACrBC,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CACDG,GAAIyC,EAAAA,GAAAA,YAAsBgH,EAAUhO,MACpC1D,UAAU,yBAAwBE,UAElCC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,KAAK,oBAAoB2B,KAAK,uBAmB9C,OAATmQ,QAAS,IAATA,OAAS,EAATA,EAAW6B,cACRxT,EAAAA,EAAAA,MAAA,OAAKC,UAAU,uDAAsDE,SAAA,EACjEC,EAAAA,EAAAA,KAAA,MAAIH,UAAU,KAAIE,SAAC,mBAEnBH,EAAAA,EAAAA,MAAA,MAAIC,UAAU,WAAUE,SAAA,EACpBC,EAAAA,EAAAA,KAAC4V,EAAS,CAACnW,KAAK,eAAKwJ,MAAOmS,GAAoB3I,YAAa4I,MAE7Drb,EAAAA,EAAAA,KAAC4V,EAAS,CACNnW,KAAK,eACLwJ,MAAOsI,EAAU2B,YACjBT,YAAuC,IAA1BlB,EAAU2B,YAAoB,SAAW,aAG1DlT,EAAAA,EAAAA,KAAC4V,EAAS,CACNnW,KAAK,eACLwJ,MAAOsI,EAAU6B,WACjBX,YAAsC,IAAzBlB,EAAU6B,WAAmB,QAAU,aAGxDpT,EAAAA,EAAAA,KAAC4V,EAAS,CACN3M,MAAOsI,EAAUvF,SAAS9F,aAC1BuM,YAAY,kBACZhT,KAAK,YAGTO,EAAAA,EAAAA,KAAC4V,EAAS,CACN3M,MAAOsI,EAAUvF,SAAS8P,eAC1BrJ,YAAY,kBACZhT,KAAK,yBAMP,OAAX6Q,QAAW,IAAXA,IAAAA,EAAayL,oBACZ/b,EAAAA,EAAAA,KAAA,OAAKH,UAAU,OAAME,UACjBH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,SAAQE,SAAA,EACnBC,EAAAA,EAAAA,KAAA,OACI0F,IAAI,GACJvC,MAAO,CAAEC,MAAO,IAChBvD,UAAU,iBACV8F,KAAKqW,EAAAA,EAAAA,IAAa1L,EAAYyL,qBAGlC/b,EAAAA,EAAAA,KAAA,OAAKH,UAAU,YAAWE,UACtBC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,eAAcE,SAAC,mDAMpC,OAATwR,QAAS,IAATA,OAAS,EAATA,EAAW0K,wBACRrc,EAAAA,EAAAA,MAAA,OAAKC,UAAU,qDAAoDE,SAAA,EAC/DC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,OAAME,UACjBC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,qBAGpBD,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CAAK,uBACoB,KACrBC,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CAAC9H,UAAU,cAAciI,GAAIqE,EAAAA,GAAAA,mBAA6BpM,SAAC,iBAEzD,WAMP,OAAXuQ,QAAW,IAAXA,OAAW,EAAXA,EAAajI,YACVrI,EAAAA,EAAAA,KAAA,OAAKH,UAAU,cAAaE,UACxBC,EAAAA,EAAAA,KAAC0V,EAAqB,OAIpB,OAATnE,QAAS,IAATA,OAAS,EAATA,EAAW2K,cAAe3K,EAAU2K,YAAYlb,OAAS,IACtDpB,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,MAAIH,UAAU,+BAA8BE,SAAC,6BAE7CC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,4FAA2FE,SACrGwR,EAAU2K,YAAYjb,KAAI,SAAAkb,GAAC,OACxBnc,EAAAA,EAAAA,KAAA,KACIH,UAAS,WAAAgB,OAAasb,EAAEC,QAAQlC,cAAa,iBAC7CxP,KAAMyR,EAAElV,IACRW,OAAO,SAEP+C,IAAI,aAAY5K,UAEhBC,EAAAA,EAAAA,KAAA,QAAMH,UAAS,UAAAgB,OAAYsb,EAAEC,QAAQlC,kBAHhCiC,EAAErW,GAIP,eAQ5B9F,EAAAA,EAAAA,KAAA,OAAKH,UAAU,sBAAqBE,UAChCH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,uDAAsDE,SAAA,EACjEH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,CACxBwR,GACG3R,EAAAA,EAAAA,MAAA,OAAKC,UAAU,yEAAwEE,SAAA,EACnFC,EAAAA,EAAAA,KAACmB,EAAAA,EAAS,CACNC,MAAMpB,EAAAA,EAAAA,KAAA,QAAMH,UAAU,kBACtBgC,QAAQ,cACRR,YACK6O,IACAoG,IACAgC,KACAX,KACAI,GAELzW,QAAS,WACLkV,OAAkB3O,GAClB0O,OAAiB1O,GACjB+P,IAAsB,GACtBI,IAAyB,GACzBO,IAAkB,EACtB,IAGHxB,GAAkB/V,OAAS,IACxBhB,EAAAA,EAAAA,KAACmB,EAAAA,EAAS,CACNC,MAAMpB,EAAAA,EAAAA,KAAA,QAAMH,UAAU,iBACtBwB,WAAY0W,GACZlW,QAAQ,kBACRP,QAAS,WACLkV,OAAkB3O,GAClB0O,OAAiB1O,GACjBmQ,IAAyB,GACzBJ,IAAsB,GACtBW,IAAkB,EACtB,KAIRvY,EAAAA,EAAAA,KAACwE,EAAAA,EAAkB,CAACC,MAAM,EAAMrD,KAAK,eAAeY,UAAU,MAAKjC,UAC/DH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,WAAUE,SAAA,EACrBC,EAAAA,EAAAA,KAACmB,EAAAA,EAAS,CACNM,UAAU,EACVJ,aAAc2X,GACd5X,MAAMpB,EAAAA,EAAAA,KAAA,QAAMH,UAAU,mBAG1BG,EAAAA,EAAAA,KAAA,MAAIH,UAAU,kCAAiCE,SAC1CwR,GACGA,EAAUwJ,OACLpH,QAAO,SAAA1O,GAAC,OACLsM,EAAU4H,WAAWC,MAAK,SAAAe,GAAC,OAAIA,EAAEF,UAAYhV,EAAEa,EAAE,GAAC,IAErD7E,KAAI,SAAAC,GAAC,OACFlB,EAAAA,EAAAA,KAAA,MAAAD,UACIH,EAAAA,EAAAA,MAAA,UACIsC,KAAK,SACLrC,UAAU,gBACVyB,QAAS,WACLkV,OAAkB3O,GAGlB0O,EAAiBrV,GAEjB8W,IAAyB,GACzBJ,IAAsB,GACtBW,IAAkB,EACtB,EAAExY,SAAA,CACL,gBACOmB,EAAExB,SAfLwB,EAAE4E,GAiBN,YAM7B9F,EAAAA,EAAAA,KAACwE,EAAAA,EAAkB,CAACC,MAAM,EAAMrD,KAAK,gBAAgBY,UAAU,MAAKjC,UAChEH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,WAAUE,SAAA,EACrBC,EAAAA,EAAAA,KAACmB,EAAAA,EAAS,CACNM,UAAU,EACVJ,aAAcmZ,GACdpZ,MAAMpB,EAAAA,EAAAA,KAAA,QAAMH,UAAU,mBAG1BG,EAAAA,EAAAA,KAAA,MAAIH,UAAU,kCAAiCE,SAC1C0T,GAAQxS,KAAI,SAAA8S,GACT,IAAMzK,EAAa6H,GAAY4C,EAAEjO,IAEjC,OACI9F,EAAAA,EAAAA,KAAA,MAAAD,UACIH,EAAAA,EAAAA,MAAA,UACIsC,KAAK,SACLrC,UAAU,gBACVyB,QAAS,WACLgS,GAAaS,EACjB,EAAEhU,SAAA,CACL,gBACOuJ,MARHyK,EAAEjO,GAYnB,WAKX4S,KACG1Y,EAAAA,EAAAA,KAACmB,EAAAA,EAAS,CACNE,WAAYsW,GACZvW,MAAMpB,EAAAA,EAAAA,KAAA,QAAMH,UAAU,wBACtBgC,QAAQ,cACRP,QAAS,WACLkV,OAAkB3O,GAClB0O,OAAiB1O,GACjBmQ,IAAyB,GACzBJ,IAAsB,GACtBW,IAAkB,EACtB,KAIRvY,EAAAA,EAAAA,KAACmB,EAAAA,EAAS,CACNE,WAAYiX,GACZlX,MAAMpB,EAAAA,EAAAA,KAAA,QAAMH,UAAU,gBACtBgC,QAAQ,aACRP,QAAS,WACLkV,OAAkB3O,GAClB0O,OAAiB1O,GACjBmQ,IAAyB,GACzBJ,IAAsB,GACtBW,IAAkB,EACtB,QAIRvY,EAAAA,EAAAA,KAAC2L,EAAAA,EAAe,KAGpB/L,EAAAA,EAAAA,MAAA,OAAKC,UAAU,uBAAsBE,SAAA,CAChCob,GACAD,SAIR5C,IAAkB/G,GACfvR,EAAAA,EAAAA,KAACqU,EAAY,CAAC9C,UAAWA,EAAWjB,YAAaA,IACjDqH,IAAsBpG,GACtBvR,EAAAA,EAAAA,KAACqT,EAAW,CACR9B,UAAWA,EACX+B,aAAcA,GACdnC,YAAaA,KAEjB4G,IAAyBxG,GACzBvR,EAAAA,EAAAA,KAAA,OAAKH,UAAU,eAAcE,SACxBgX,GAAkB9V,KAAI,SAAAgP,GAAK,OACxBrQ,EAAAA,EAAAA,MAAA,OAAKC,UAAU,kBAAiBE,SAAA,EAC5BH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,kCAAiCE,SAAA,EAC5CC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,+BAA8BE,SACxCkQ,EAAMU,cACH3Q,EAAAA,EAAAA,KAAC4Q,EAAAA,SAAQ,CAAA7Q,SAAC,iBAEVH,EAAAA,EAAAA,MAACgR,EAAAA,SAAQ,CAAA7Q,SAAA,CAAC,SAAOkQ,EAAMtP,kBAI/BX,EAAAA,EAAAA,KAACwG,EAAAA,EAAY,CACTC,KAAMwJ,EAAMxJ,KACZM,UAAWkJ,EAAMlJ,UACjBI,WAAY8I,EAAM9I,WAClBF,KACgB,OAAXqJ,QAAW,IAAXA,GAAAA,EAAaQ,UAAuB,OAAXR,QAAW,IAAXA,GAAAA,EAAaO,WAC9B,OAATU,QAAS,IAATA,GAAAA,EAAWhB,SACXN,EAAMc,OACAxG,EAAAA,GAAAA,oBACIgH,EAAUhB,QACVN,EAAMc,aAEVlJ,QAKlB7H,EAAAA,EAAAA,KAAA,OAAAD,UACc,OAATwR,QAAS,IAATA,OAAS,EAATA,EAAWkC,UAAWlC,EAAUkC,QAAQzS,OAAS,IAC9ChB,EAAAA,EAAAA,KAAC6P,EAAY,CACThJ,YAAaoJ,EAAMpJ,YACnByC,WAAY6H,GAAYlB,EAAMmB,UAC9BtB,cAAeG,EAAMH,cACrBC,UAAWM,GAAaJ,EAAMnK,IAC9BiB,UAAWkJ,EAAMlJ,UACjBE,KACgB,OAAXqJ,QAAW,IAAXA,GAAAA,EAAaQ,UAAuB,OAAXR,QAAW,IAAXA,GAAAA,EAAaO,WAC9B,OAATU,QAAS,IAATA,GAAAA,EAAWhB,SACXN,EAAMc,OACAxG,EAAAA,GAAAA,oBACIgH,EAAUhB,QACVN,EAAMc,aAEVlJ,QA3CYoI,EAAMnK,GAgDtC,OAId9F,EAAAA,EAAAA,KAAA,OAAKH,UAAU,QAAOE,SACjBwR,GAAwC,IAA3BL,GAAgBlQ,QAC1BpB,EAAAA,EAAAA,MAAA,OAAKC,UAAU,qBAAoBE,SAAA,CAC9BoL,KAAoBnL,EAAAA,EAAAA,KAAA,OAAKH,UAAU,KAAIE,SAAEoL,MAE1CvL,EAAAA,EAAAA,MAAA,OAAKC,UAAU,8BAA6BE,SAAA,EACxCC,EAAAA,EAAAA,KAACgR,EAAmB,CAChBb,YAAaoB,EAAUkC,QAAQzS,OAAS,EACxCkQ,gBAAiBA,GACjBD,YAAaf,IAAmBoG,EAChCpG,eAAgBA,EAChBG,aAAcA,GACdc,YAAaA,GACbZ,QAASgB,EAAUhB,QACnBD,YAAaA,KAGf6F,IACEvW,EAAAA,EAAAA,MAAA,OAAKC,UAAU,mEAAkEE,SAAA,EAC7EC,EAAAA,EAAAA,KAAA,OAAAD,SAAK,8CACLC,EAAAA,EAAAA,KAAA,OAAAD,UACIC,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CACDG,GAAIqE,EAAAA,GAAAA,OACJtM,UAAU,4BAA2BE,UAErCC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CACL7F,KAAK,mBACL2B,KAAK,iCASjCxB,EAAAA,EAAAA,MAAA,OAAKC,UAAU,aAAYE,SAAA,EACvBC,EAAAA,EAAAA,KAAC6V,EAAoB,KACrB7V,EAAAA,EAAAA,KAAC6V,EAAoB,KACrB7V,EAAAA,EAAAA,KAAC6V,EAAoB,oBAUzC,OAAXvF,QAAW,IAAXA,OAAW,EAAXA,EAAajI,YACVrI,EAAAA,EAAAA,KAAC2V,EAAe,CACZtM,WAAYiH,EAAYjH,WACxBhB,SAAUiI,EAAYjI,SACtBiB,WAA2D,QAAjD0M,EAAuB,QAAvBC,EAAY,OAAVG,QAAU,IAAVA,OAAU,EAAVA,EAAYiG,iBAAS,IAAApG,EAAAA,EAAI3F,EAAYhH,kBAAU,IAAA0M,EAAAA,EAAI,UAKnF,E,oBCryBasG,EAAe,WACxB,IAAMC,GAAWtP,EAAAA,EAAAA,QAAuB,MAExCzK,GAAgCC,EAAAA,EAAAA,YAAmBC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAA5Cga,EAAQ9Z,EAAA,GAAE+Z,EAAW/Z,EAAA,GAUtBga,EAAa,WACXH,EAASxS,SACK4S,EAAAA,GAAAA,oBAA0BJ,EAASxS,SAE3C6S,MAEd,EAcA,OAZA1Z,EAAAA,EAAAA,YAAU,WACN,GAAIqZ,EAASxS,QAAS,CAClB,IAAM8S,EAAQF,EAAAA,GAAAA,oBAA0BJ,EAASxS,SAIjD,OAFA8S,EAAMpY,OAEC,WACHoY,EAAMD,MACV,CACJ,CACJ,GAAG,KAGC5c,EAAAA,EAAAA,KAAA,OAAKH,UAAU,aAAaoC,IAAKsa,EAASxc,UACtCC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,eAAcE,UACzBH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,gBAAeE,SAAA,EAC1BH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,kCAAiCE,SAAA,EAC5CC,EAAAA,EAAAA,KAAA,MAAIH,UAAU,KAAIE,UACA,IAAbyc,EAAqB,qCAA6B,8BAGvDxc,EAAAA,EAAAA,KAAA,UAAQkC,KAAK,SAASrC,UAAU,YAAY,aAAW,QAAQyB,QAASob,QAG5E1c,EAAAA,EAAAA,KAAA,OAAKH,UAAU,aAAYE,cACT8H,IAAb2U,GACG5c,EAAAA,EAAAA,MAAA,OAAKC,UAAU,sCAAqCE,SAAA,EAChDC,EAAAA,EAAAA,KAAA,UACIkC,KAAK,SACL4D,GAAG,wBACHjG,UAAU,sCACVyB,QA/CL,WACvBmb,GAAY,EAChB,EA6C4D1c,UAE5BC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,wBAGpBG,EAAAA,EAAAA,KAAA,UACIkC,KAAK,SACL4D,GAAG,wBACHjG,UAAU,qCACVyB,QApDN,WACtBmb,GAAY,EAChB,EAkD2D1c,UAE3BC,EAAAA,EAAAA,KAAA,QAAMH,UAAU,6BAGX,IAAb2c,GACAxc,EAAAA,EAAAA,KAAA,OAAKH,UAAU,eAAcE,UACzBH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,MAAIH,UAAU,KAAIE,SAAC,yBAEnBH,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CAAK,wCACqC,KACtCC,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CAACG,GAAIqE,EAAAA,GAAAA,QAAkBpM,SAAC,eAAiB,cAK1DH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,MAAIH,UAAU,KAAIE,SAAC,0BAEnBH,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CAAK,mCACKC,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CAACG,GAAIqE,EAAAA,GAAAA,QAAkBpM,SAAC,uBAAyB,kCAKpEH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,MAAIH,UAAU,KAAIE,SAAC,wBAEnBH,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CAAK,yCAC4B,KAC7BC,EAAAA,EAAAA,KAAA,KAAG4H,OAAO,SAAS8C,KAAMoS,EAAAA,EAAAA,iCAA2C/c,SAAC,iCAEjE,WAKZH,EAAAA,EAAAA,MAAA,OAAKC,UAAU,eAAcE,SAAA,EACzBC,EAAAA,EAAAA,KAAA,MAAIH,UAAU,KAAIE,SAAC,qBAEnBH,EAAAA,EAAAA,MAAA,OAAAG,SAAA,CAAK,iBACEC,EAAAA,EAAAA,KAAC2H,EAAAA,GAAI,CAACG,GAAIqE,EAAAA,GAAAA,QAAkBpM,SAAC,0BAA4B,4CAQlE8H,IAAb2U,IACGxc,EAAAA,EAAAA,KAAA,OAAKH,UAAU,qEAAoEE,UAC/EC,EAAAA,EAAAA,KAAA,UAAQkC,KAAK,SAASrC,UAAU,4BAA4ByB,QAASob,EAAW3c,UAC5EC,EAAAA,EAAAA,KAACsF,EAAAA,EAAQ,CAAC7F,KAAK,aAAa2B,KAAK,yBAQjE,E,UCJA,EAnHuB,SAAC5B,GAAsB,IAADwW,EAAA1E,EAAAyL,EACjCxZ,EAAS/D,EAAT+D,KAEFO,GAAUC,EAAAA,EAAAA,MAEhBC,GAAsEC,EAAAA,EAAAA,YAAWC,EAAAA,IAAzE8Y,EAAYhZ,EAAZgZ,aAAc7I,EAAenQ,EAAfmQ,gBAAiBzG,EAAQ1J,EAAR0J,SAAUrJ,EAAgBL,EAAhBK,iBACzC4Y,EAA4BD,EAA5BC,wBACAC,EAAiB/I,EAAjB+I,aAER1a,GAA8BC,EAAAA,EAAAA,WAAS,GAAKC,GAAAC,EAAAA,EAAAA,GAAAH,EAAA,GAArCrC,EAAOuC,EAAA,GAAEya,EAAUza,EAAA,GAC1BI,GAAkCL,EAAAA,EAAAA,YAA8BM,GAAAJ,EAAAA,EAAAA,GAAAG,EAAA,GAAzDyO,EAASxO,EAAA,GAAEqa,EAAYra,EAAA,GAC9BkM,GAAsCxM,EAAAA,EAAAA,YAA0CyM,GAAAvM,EAAAA,EAAAA,GAAAsM,EAAA,GAAzEqB,EAAWpB,EAAA,GAAEmO,EAAcnO,EAAA,GAClCwH,GAAsCjU,EAAAA,EAAAA,WAAS,GAAMkU,GAAAhU,EAAAA,EAAAA,GAAA+T,EAAA,GAA9C4G,EAAW3G,EAAA,GAAE4G,EAAc5G,EAAA,GAE5B6G,GAAkBzR,EAAAA,EAAAA,cAAY,WAC5BxI,GACA0Z,EAAwB1Z,GACnByB,MAAK,SAAAC,GACFoY,EAAepY,EACnB,IACCI,MAAMhB,EAEnB,GAAG,CAACd,EAAM0Z,EAAyB5Y,KAGnCnB,EAAAA,EAAAA,YAAU,WACN,IAAIua,GAAU,EAcd,OAZIla,GACA2Z,EAAa3Z,GACRyB,MAAK,SAAAC,GACEwY,GACAL,EAAanY,EAErB,IACCI,OAAM,WACHqI,EAAS,sBACb,IAGD,WACH+P,GAAU,CACd,CACJ,GAAG,CAACla,EAAM2Z,EAAcxP,KAGxBxK,EAAAA,EAAAA,YAAU,WACNsa,GACJ,GAAG,CAACA,KAGJta,EAAAA,EAAAA,YAAU,WACF/C,GAAWoR,GAAajB,GACxB6M,GAAW,EAEnB,GAAG,CAAC5L,EAAWpR,EAASmQ,KAGxBpN,EAAAA,EAAAA,YAAU,WACFqJ,aAAaG,QAAQ,iBAErBH,aAAaK,WAAW,eAGxB2Q,GAAe,GAEvB,GAAG,IAGH,IAAQG,EAAa1K,SAAb0K,SAEFC,EAAmBpT,EAAAA,GAAAA,mBAA6BhH,GAChDqa,EAAgBrT,EAAAA,GAAAA,wBAAkChH,GAElD2S,EAAewH,IAAaE,EAG5Bhc,EAA+C,QAA1CoU,EAAmB,QAAnB1E,EAAY,OAATC,QAAS,IAATA,OAAS,EAATA,EAAW3P,aAAK,IAAA0P,EAAAA,EAAa,OAATC,QAAS,IAATA,OAAS,EAATA,EAAWjO,gBAAQ,IAAA0S,EAAAA,EAAI,MAgBzD,OAdA9S,EAAAA,EAAAA,YAAU,WACN,GAAiB,MAAbqO,IAEc,OAATA,QAAS,IAATA,IAAAA,EAAW0K,sBAAsB,CAElC,IAAM4B,EAAaF,EAEfD,IAAaG,GACb/Z,EAAQqB,KAAK0Y,EAErB,CAER,GAAG,CAACF,EAAkBpM,EAAWzN,EAAS4Z,KAGtC9d,EAAAA,EAAAA,MAACke,EAAAA,GAAI,CACDlc,MAAOA,EACP6Q,YAA8B,QAAnBsK,EAAW,OAATxL,QAAS,IAATA,OAAS,EAATA,EAAWxG,cAAM,IAAAgS,EAAAA,EAAI,GAClCvX,SAAmB,OAAT+L,QAAS,IAATA,OAAS,EAATA,EAAW/L,SACrBuY,UAAW/K,SAAS0K,SACpBM,SAAS,SAAQje,SAAA,EAEjBC,EAAAA,EAAAA,KAAA,OAAKH,UAAU,wBAAuBE,UAClCC,EAAAA,EAAAA,KAAC8V,EAAc,CACXvE,UAAWA,EACXjB,YAAaA,EACb/M,KAAMA,EACN2S,aAAcA,MAIrBoH,IAAetd,EAAAA,EAAAA,KAACsc,EAAY,MAGzC,C,0ICpHaN,EAAe,SAAClW,GAAU,SAAAjF,OAR3B,qFAQsC,WAAAA,OAAUiF,EAAE,SAEjD2B,EAAY,oBAAAA,KAAAwW,EAAAA,EAAAA,GAAA,KAAAxW,EAAA,CAoBpB,OApBoByW,EAAAA,EAAAA,GAAAzW,EAAA,OAAAiH,IAAA,aAAAyP,IAGrB,WAGI,IAFA,IAAMzW,EAAmB,GAEhBkB,EAAI,EAAGA,EAfJ,IAeqBA,IAAK,CAClC,IAAMwV,EAAYpC,EAAapT,GAC/BlB,EAAEvC,KAAKiZ,EACX,CAEA,OAAO1W,CACX,GAAC,CAAAgH,IAAA,cAAAsD,MAED,WAKI,OAJKvK,EAAa4W,WACd5W,EAAa4W,SAAW,IAAI5W,GAGzBA,EAAa4W,QACxB,KAAC5W,CAAA,CApBoB,GAAZA,EACM4W,cAAQ,EA6CpB,IAAMC,EAAyB,SAAClN,GACnC,IACMmN,EAA2C,GAEjD,GAAInN,EAAU,CACV,IAEuCK,EAFnC7I,EAAI,EAAE8I,GAAAC,EAAAA,EAAAA,GAEMlK,EAAaD,YAAU,IAAvC,IAAAkK,EAAAG,MAAAJ,EAAAC,EAAAI,KAAAC,MAAyC,CAAC,IAA/BrK,EAAC+J,EAAAO,MACRuM,EAAIpZ,KAAK,CAAEW,GAAI8C,EAAGlJ,KAAMgI,IACxBkB,GACJ,CAAC,OAAAqJ,GAAAP,EAAA9C,EAAAqD,EAAA,SAAAP,EAAAQ,GAAA,EAjCT,SAAyBsM,EAAuBC,GAC5C,IAAI5M,EAAI4M,EAER,SAASC,IACL,IAAMzZ,EAAoB,IAAhBwK,KAAKkP,IAAI9M,KACnB,OAAO5M,EAAIwK,KAAKE,MAAM1K,EAC1B,CAMA,IAJA,IACIiU,EACAtQ,EAFAgW,EAAIJ,EAAMxd,OAIP4d,GACHhW,EAAI6G,KAAKE,MAAM+O,IAAmBE,KAClC1F,EAAIsF,EAAMI,GACVJ,EAAMI,GAAKJ,EAAM5V,GACjB4V,EAAM5V,GAAKsQ,IACTrH,CAIV,CAcQgN,CAAgBN,EAAKnN,EACzB,CAEA,OAAOmN,EAAIlE,MAAM,EAdA,GAerB,C","sources":["components/CardForm.tsx","components/RoundInstructionsDisplay.tsx","components/TabButton.tsx","components/Timer.tsx","components/buttons/DeleteGameButton.tsx","components/buttons/ImagePreviewButton.tsx","components/game/GameTImer.tsx","components/game/ReplyDisplay.tsx","components/game/ReportCard.tsx","components/SourceLink.tsx","components/game/StimulusSidebar.tsx","components/modals/ModalButton.tsx","components/placeholders/ListItemPlaceholder.tsx","components/placeholders/PromptPlaceholder.tsx","components/placeholders/TabsPlaceholder.tsx","hooks/useDuplication.tsx","hooks/useInterval.tsx","hooks/useServerForm.tsx","hooks/useTimer.tsx","components/game/StoryDetails.tsx","components/game/StoryRepliesDisplay.tsx","hooks/useCopyStory.tsx","components/story/CopyStoryButton.tsx","components/story/CopyStoryLinkButton.tsx","components/story/Leaderboard.tsx","components/buttons/RewriteStorySaveButton.tsx","components/game/RewriteStory.tsx","hooks/useAutoGrowTextArea.tsx","components/modals/ReportCardModal.tsx","components/game/CompletedStory.tsx","components/modals/CheckInModal.tsx","pages/games/GamesStoryPage.tsx","utils/AssetManager.tsx"],"sourcesContent":["import clsx from \"clsx\";\r\nimport { PropsWithChildren, ReactNode } from \"react\";\r\nimport { SpinnerBlock } from \"components/Spinner\";\r\n\r\nexport const CardHeader = (props: { icon?: string; name?: string; center?: boolean }) => {\r\n const { icon, name, center } = props;\r\n\r\n return (\r\n \r\n {icon && }\r\n {name}\r\n \r\n );\r\n};\r\n\r\nexport const CardFooter = (props: { footer: ReactNode; loading?: boolean }) => {\r\n const { footer, loading } = props;\r\n\r\n return (\r\n
\r\n {footer} {loading && }\r\n
\r\n );\r\n};\r\n\r\nexport const CardForm = (\r\n props: PropsWithChildren<{\r\n name?: string;\r\n icon?: string;\r\n footer?: ReactNode;\r\n loading?: boolean;\r\n center?: boolean;\r\n mobileRow?: boolean;\r\n fullHeight?: boolean;\r\n inlineFlex?: boolean;\r\n }>,\r\n) => {\r\n const { name, icon, children, footer, loading, center, mobileRow, fullHeight, inlineFlex } = props;\r\n\r\n return (\r\n \r\n {name && }\r\n\r\n
{children}
\r\n\r\n {footer && }\r\n \r\n );\r\n};\r\n","export const RoundInstructionDisplay = (props: { roundNumber?: number; instruction?: string }) => {\r\n const { instruction, roundNumber } = props;\r\n\r\n const label = `Round ${roundNumber}`;\r\n\r\n if (!instruction) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
{label}
\r\n
{instruction}
\r\n
\r\n );\r\n};\r\n\r\nexport const RoundInstructionsDisplay = (props: {\r\n roundInstructions: Array<{\r\n roundNumber?: number;\r\n name?: string;\r\n }>;\r\n}) => {\r\n const { roundInstructions } = props;\r\n\r\n return roundInstructions.length > 0 ? (\r\n
\r\n {roundInstructions.map(r => (\r\n \r\n ))}\r\n
\r\n ) : null;\r\n};\r\n","import clsx from \"clsx\";\r\nimport { useTooltip } from \"hooks/useTooltip\";\r\nimport { ReactNode } from \"react\";\r\n\r\nexport const TabButton = (props: {\r\n isSelected: boolean;\r\n onClick?: () => void;\r\n text: ReactNode;\r\n size?: \"md\" | \"sm\";\r\n disabled?: boolean;\r\n dropdown?: boolean;\r\n isInsideCard?: boolean;\r\n title?: string;\r\n tooltip?: string;\r\n}) => {\r\n const { text, isSelected, onClick, size = \"md\", dropdown, disabled, isInsideCard, title, tooltip } = props;\r\n\r\n const { tooltipRef } = useTooltip({ title: tooltip, placement: \"top\" });\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n","import clsx from \"clsx\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { FrankenstoryState } from \"types/FrankenstoryState\";\r\n\r\nexport const Timer = (props: {\r\n showTimer: boolean;\r\n seconds?: number;\r\n state: FrankenstoryState;\r\n pauseSecondsRemaining?: number;\r\n}) => {\r\n const { seconds, showTimer, state, pauseSecondsRemaining } = props;\r\n\r\n const [isDanger, setIsDanger] = useState(false);\r\n const [actualSeconds, setActualSeconds] = useState(pauseSecondsRemaining ?? seconds);\r\n\r\n useEffect(() => {\r\n setActualSeconds(pauseSecondsRemaining ?? seconds);\r\n }, [pauseSecondsRemaining, seconds]);\r\n\r\n useEffect(() => {\r\n if (actualSeconds != null) {\r\n setIsDanger(state !== \"Prompting\" && state !== \"Awarding\" && actualSeconds <= 15 && !pauseSecondsRemaining);\r\n }\r\n }, [actualSeconds, pauseSecondsRemaining, state]);\r\n\r\n return actualSeconds ? (\r\n
\r\n 99\r\n ? 98\r\n : actualSeconds && actualSeconds > 9\r\n ? 84\r\n : actualSeconds != null && actualSeconds >= 0\r\n ? 76\r\n : 0,\r\n }}\r\n >\r\n {actualSeconds}\r\n\r\n \r\n
\r\n \r\n ) : null;\r\n};\r\n","import clsx from \"clsx\";\r\nimport { ConditionalTooltip } from \"components/ConditionalTooltip\";\r\nimport { IconText } from \"components/IconText\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { useContext } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport const DeleteGameButton = (props: {\r\n code: string;\r\n gameName?: string;\r\n redirect?: string;\r\n onDeleted?: () => void;\r\n btnClass?: string;\r\n iconDanger?: boolean;\r\n placement: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n}) => {\r\n const { gameName, code, redirect, btnClass = \"dropdown-item\", iconDanger = true, onDeleted, placement } = props;\r\n\r\n const history = useHistory();\r\n\r\n const { moderateService, setWindowConfirm, catchServerError, addNotification } = useContext(GlobalContext);\r\n const { deleteGame } = moderateService;\r\n\r\n return (\r\n \r\n {\r\n setWindowConfirm({\r\n confirmText: \"Delete game\",\r\n confirmIcon: \"fas fa-trash\",\r\n confirmDescription: (\r\n
\r\n
\r\n Are you sure you want to delete {gameName ?? \"this game\"}?\r\n
\r\n\r\n
This may take a minute, Franky is working hard to make this experience better
\r\n
\r\n ),\r\n onConfirm: () => {\r\n setWindowConfirm(\r\n old =>\r\n old && {\r\n ...old,\r\n loading: true,\r\n },\r\n );\r\n\r\n deleteGame(code)\r\n .then(x => {\r\n if (x.success) {\r\n if (redirect) {\r\n history.push(redirect);\r\n }\r\n\r\n if (onDeleted) {\r\n onDeleted();\r\n }\r\n\r\n setWindowConfirm(\r\n old =>\r\n old && {\r\n ...old,\r\n loading: false,\r\n successMessage: \"Game deleted\",\r\n },\r\n );\r\n } else {\r\n setWindowConfirm(\r\n old =>\r\n old && {\r\n ...old,\r\n loading: false,\r\n },\r\n );\r\n\r\n addNotification({\r\n type: \"failure\",\r\n title: \"Delete game failed\",\r\n });\r\n }\r\n })\r\n .catch(catchServerError);\r\n },\r\n });\r\n }}\r\n >\r\n \r\n \r\n
\r\n );\r\n};\r\n","import clsx from \"clsx\";\r\nimport { ModalDialog } from \"components/modals/ModalDialog\";\r\n\r\nexport const ImagePreviewButton = (props: { disabled?: boolean; imageUrl: string; isImageHidden?: boolean }) => {\r\n const { imageUrl, disabled, isImageHidden } = props;\r\n\r\n return (\r\n
\r\n \r\n \"\"\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const ImagePreviewModal = (props: { isImageHidden?: boolean; imageUrl: string }) => {\r\n const { isImageHidden, imageUrl } = props;\r\n\r\n return (\r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n );\r\n};\r\n","import { Timer } from \"components/Timer\";\r\nimport { useTimer } from \"hooks/useTimer\";\r\nimport { useState, useEffect } from \"react\";\r\nimport { FrankenstoryState } from \"types/FrankenstoryState\";\r\n\r\nexport const GameTimer = (props: {\r\n roundEnd?: number;\r\n votingTimer?: number;\r\n writingTimer?: number;\r\n state?: FrankenstoryState;\r\n pauseSecondsRemaining?: number;\r\n}) => {\r\n const { roundEnd, votingTimer, writingTimer, state, pauseSecondsRemaining } = props;\r\n\r\n // timer\r\n const [showTimer, setShowTimer] = useState(false);\r\n\r\n const { seconds, setTimerEnd, setIsPaused } = useTimer({ pauseSecondsRemaining });\r\n\r\n useEffect(() => {\r\n setTimerEnd(roundEnd);\r\n }, [roundEnd, setTimerEnd]);\r\n\r\n useEffect(() => {\r\n if (pauseSecondsRemaining) {\r\n setIsPaused(true);\r\n } else {\r\n setIsPaused(false);\r\n }\r\n }, [pauseSecondsRemaining, setIsPaused]);\r\n\r\n // turn the timer on and off as needed\r\n useEffect(() => {\r\n // don't show timer if player is loading in\r\n if (seconds === 0) {\r\n setShowTimer(false);\r\n } else if (state === \"Writing\" || state === \"Voting\") {\r\n if (state === \"Writing\" && writingTimer) {\r\n setShowTimer(true);\r\n } else if (state === \"Voting\" && votingTimer) {\r\n setShowTimer(true);\r\n } else {\r\n setShowTimer(false);\r\n }\r\n } else if (state === \"Awarding\" && seconds) {\r\n setShowTimer(true);\r\n } else if (state === \"Reporting\" && seconds) {\r\n setShowTimer(true);\r\n } else if (state === \"Prompting\" && seconds) {\r\n setShowTimer(true);\r\n } else {\r\n setShowTimer(false);\r\n }\r\n }, [roundEnd, writingTimer, votingTimer, state, seconds]);\r\n\r\n return state ? (\r\n \r\n ) : null;\r\n};\r\n","import clsx from \"clsx\";\r\nimport Highlighter from \"react-highlight-words\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { AssetManager } from \"utils/AssetManager\";\r\n\r\nexport const ReplyDisplay = (props: {\r\n body: string;\r\n author?: string;\r\n isWinner?: boolean;\r\n isChosen?: boolean;\r\n characterId?: number;\r\n votes?: number;\r\n isPerfect?: boolean;\r\n isRejected?: boolean;\r\n url?: string;\r\n urlNewWindow?: boolean;\r\n hasSticker?: boolean;\r\n isViolation?: boolean;\r\n watchWords?: Array;\r\n showVotingEnabled?: boolean;\r\n}) => {\r\n const {\r\n body,\r\n isWinner,\r\n author,\r\n votes,\r\n characterId,\r\n isChosen,\r\n isPerfect,\r\n isRejected,\r\n url,\r\n urlNewWindow,\r\n hasSticker,\r\n isViolation,\r\n showVotingEnabled,\r\n watchWords = [],\r\n } = props;\r\n\r\n const { characters } = AssetManager;\r\n\r\n const c = characterId != null ? characters[characterId] : null;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {c && (\r\n
\r\n \"\"\r\n
\r\n )}\r\n\r\n {author && (\r\n
\r\n {url ? (\r\n \r\n {author}\r\n \r\n ) : (\r\n author\r\n )}\r\n
\r\n )}\r\n
\r\n\r\n {votes != null && votes > 0 && (\r\n
\r\n
\r\n {votes} {votes === 1 ? \"vote\" : \"votes\"}\r\n
\r\n
\r\n )}\r\n
\r\n\r\n \r\n \r\n\r\n {isPerfect && (\r\n
\r\n 100%\r\n
\r\n )}\r\n\r\n {isViolation && (\r\n
\r\n 🚨\r\n
\r\n )}\r\n \r\n
\r\n );\r\n};\r\n","import clsx from \"clsx\";\r\nimport CountUp from \"react-countup\";\r\nimport Sparkles from \"react-sparkle\";\r\nimport { CardForm } from \"components/CardForm\";\r\nimport { IconText } from \"components/IconText\";\r\nimport { DimensionDto } from \"dtos/llm/DimensionDto\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { RouteLink } from \"Routes\";\r\nimport { GameTimer } from \"components/game/GameTImer\";\r\n\r\nconst scoreMultiple = 100;\r\nconst scoreOffset = -1;\r\n\r\nconst score1 = (1 + scoreOffset) * scoreMultiple;\r\nconst score2 = (2 + scoreOffset) * scoreMultiple;\r\nconst score3 = (3 + scoreOffset) * scoreMultiple;\r\nconst score4 = (4 + scoreOffset) * scoreMultiple;\r\n\r\nconst DisplayScoreAsGrade = (props: { llmScore: number; show: boolean }) => {\r\n const { llmScore, show } = props;\r\n\r\n const score = llmScore < 1.5 ? score1 : llmScore < 2.5 ? score2 : llmScore < 3.5 ? score3 : score4;\r\n\r\n if (!show) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst RatingStar = (props: { i: number; show: boolean; animationStage: number; thresholdShowStars: number }) => {\r\n const { i, show, animationStage, thresholdShowStars } = props;\r\n\r\n const animated = animationStage >= thresholdShowStars;\r\n\r\n return (\r\n \r\n {show && animated && }\r\n \r\n );\r\n};\r\n\r\nconst ExperimentalBadge = () => ✨ Experimental;\r\n\r\nexport const ReportCard = (props: {\r\n dimensions: Array;\r\n llmScore: number;\r\n animationStage: number;\r\n playerName: string;\r\n}) => {\r\n const { dimensions, llmScore, animationStage, playerName } = props;\r\n\r\n const showFirstStar = llmScore >= 1.5;\r\n const showSecondStar = llmScore >= 2.5;\r\n const showThirdStar = llmScore >= 3.5;\r\n\r\n const thresholdShowStars = dimensions.length + 9;\r\n const thresholdDrumroll = dimensions.length + 7;\r\n\r\n const showTotal = animationStage > thresholdDrumroll + 1;\r\n\r\n const total = scoreMultiple * dimensions.reduce((prev, current) => prev + (current.llmScore + scoreOffset), 0);\r\n\r\n return (\r\n
\r\n
\r\n
Scorecard
\r\n
\r\n\r\n
\r\n
{playerName}
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n
Score
\r\n\r\n thresholdDrumroll && \"animate-bang\",\r\n showTotal && [\r\n \"opacity-100 animated\",\r\n showThirdStar\r\n ? \"text-success\"\r\n : showSecondStar\r\n ? \"text-warning\"\r\n : showFirstStar\r\n ? \"text-primary\"\r\n : \"text-danger\",\r\n ],\r\n )}\r\n >\r\n {showTotal && }\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {dimensions.map((dimension, index) => {\r\n const showGrade = animationStage > index + 6;\r\n\r\n return (\r\n \r\n
{dimension.name}
\r\n\r\n \r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport const ReportPhaseTwo = (props: {\r\n dimensions: Array;\r\n llmScore: number;\r\n animationStage: number;\r\n playerName: string;\r\n code: string;\r\n roundEnd?: number;\r\n}) => {\r\n const { dimensions, llmScore, animationStage, playerName, code, roundEnd } = props;\r\n\r\n const showThirdStar = llmScore >= 3.5;\r\n\r\n const thresholdDrumroll = dimensions.length + 7;\r\n const showViewStory = animationStage > dimensions.length + 9;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n }\r\n >\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n {animationStage > thresholdDrumroll + 1 && showThirdStar &&
}\r\n
\r\n
\r\n );\r\n};\r\n","export const SourceLink = (props: { imageSource?: string }) => {\r\n const { imageSource } = props;\r\n\r\n return imageSource ? (\r\n \r\n ) : null;\r\n};\r\n","import { SourceLink } from \"components/SourceLink\";\r\nimport { ImagePreviewButton, ImagePreviewModal } from \"components/buttons/ImagePreviewButton\";\r\nimport { IdNameDto } from \"dtos/IdNameDto\";\r\n\r\nexport const Stimulus = (props: { promptText?: string; imageUrl?: string }) => {\r\n const { imageUrl, promptText } = props;\r\n\r\n return (\r\n
\r\n
\r\n
{promptText}
\r\n\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport const StimulusImage = (props: {\r\n imageUrl: string;\r\n prompt: string;\r\n disabled?: boolean;\r\n isImageHidden?: boolean;\r\n hideModal?: boolean;\r\n}) => {\r\n const { imageUrl, disabled, isImageHidden, prompt, hideModal } = props;\r\n\r\n return (\r\n
\r\n
\r\n
{prompt}
\r\n\r\n \r\n\r\n {!hideModal && }\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport const StimulusSidebar = (props: {\r\n prompt: string;\r\n imageUrl: string;\r\n imageSource?: string;\r\n disabled?: boolean;\r\n isImageHidden?: boolean;\r\n hideModal?: boolean;\r\n}) => {\r\n const { prompt, imageUrl, imageSource, disabled, isImageHidden, hideModal } = props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const StimulusHorizontal = (props: {\r\n imageUrl: string;\r\n promptText: string;\r\n roundInstruction?: string;\r\n roundInstructions?: Array;\r\n}) => {\r\n const { imageUrl, promptText, roundInstruction, roundInstructions } = props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{promptText}
\r\n\r\n {roundInstruction &&
{roundInstruction}
}\r\n\r\n {!!roundInstructions?.length && (\r\n
\r\n {roundInstructions.map(ri => (\r\n
\r\n
Round {ri.id}
\r\n
{ri.name}
\r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n","import { ReactNode } from \"react\";\r\n\r\nexport const ModalButton = (props: {\r\n id: string;\r\n className: string;\r\n text: ReactNode;\r\n disabled?: boolean;\r\n onClick?: () => void;\r\n}) => {\r\n const { className, text, id, disabled, onClick } = props;\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n","import clsx from \"clsx\";\r\n\r\nexport const ListItemPlaceholder = (props: { size?: number }) => {\r\n const { size = 5 } = props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const ListPlaceholder = () => (\r\n
\r\n \r\n \r\n \r\n
\r\n);\r\n","export const PromptPlaceholder = () => (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n);\r\n","export const TabsPlaceholder = () => (\r\n
\r\n
\r\n
\r\n \r\n \r\n);\r\n","import { RouteList } from \"Routes\";\r\nimport { RulesSettings } from \"commands/frankenstories/RulesSettings\";\r\nimport { useCallback } from \"react\";\r\nimport { DeepPartialSkipArrayKey } from \"react-hook-form\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport const importSettingsLocalStorageKey = \"import-settings\";\r\n\r\nexport type DuplicationItem = DeepPartialSkipArrayKey;\r\n\r\nexport const useDuplication = () => {\r\n const history = useHistory();\r\n\r\n const exportSettings = useCallback(\r\n (settings: DuplicationItem, destination: string = RouteList.GamesNewGame) => {\r\n const settingsString = JSON.stringify(settings);\r\n localStorage.setItem(importSettingsLocalStorageKey, settingsString);\r\n\r\n history.push(destination);\r\n },\r\n [history],\r\n );\r\n\r\n const getSettings = useCallback(() => {\r\n const settingsString = localStorage.getItem(importSettingsLocalStorageKey);\r\n\r\n if (settingsString) {\r\n const settings = JSON.parse(settingsString) as DuplicationItem;\r\n\r\n localStorage.removeItem(importSettingsLocalStorageKey);\r\n\r\n return settings;\r\n }\r\n\r\n return null;\r\n }, []);\r\n\r\n return {\r\n exportSettings,\r\n getSettings,\r\n };\r\n};\r\n","import { useEffect, useRef } from \"react\";\r\n\r\nexport const useInterval = (callback: () => void, delay: number | null) => {\r\n const savedCallback = useRef<() => void>();\r\n\r\n // remember the latest callback\r\n useEffect(() => {\r\n savedCallback.current = callback;\r\n }, [callback]);\r\n\r\n // set up the interval\r\n useEffect(() => {\r\n const tick = () => {\r\n if (savedCallback.current) {\r\n savedCallback.current();\r\n }\r\n };\r\n\r\n if (delay !== null) {\r\n const id = setInterval(tick, delay);\r\n return () => clearInterval(id);\r\n }\r\n }, [delay]);\r\n};\r\n","import { useState } from \"react\";\r\nimport { FieldValues, Path, UnPackAsyncDefaultValues, useForm, UseFormProps } from \"react-hook-form\";\r\nimport { CommandResult } from \"results/CommandResult\";\r\n\r\nexport function useServerForm(props?: UseFormProps) {\r\n const {\r\n register,\r\n handleSubmit,\r\n setFocus,\r\n setError,\r\n setValue,\r\n watch,\r\n control,\r\n reset,\r\n getValues,\r\n resetField,\r\n clearErrors,\r\n formState: { errors },\r\n } = useForm(props);\r\n\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [successMessage, setSuccessMessage] = useState();\r\n\r\n const handleFailure = (result: CommandResult) => {\r\n if (!result.success) {\r\n for (const key in result.errors) {\r\n result.errors[key].forEach(e => {\r\n const k = key as Path>;\r\n\r\n setError(k, { message: e }, { shouldFocus: true });\r\n });\r\n }\r\n }\r\n };\r\n\r\n return {\r\n register,\r\n handleSubmit,\r\n setFocus,\r\n setError,\r\n control,\r\n errors,\r\n handleFailure,\r\n setValue,\r\n reset,\r\n watch,\r\n getValues,\r\n isSubmitting,\r\n resetField,\r\n clearErrors,\r\n setIsSubmitting,\r\n successMessage,\r\n setSuccessMessage,\r\n };\r\n}\r\n","import { useInterval } from \"hooks/useInterval\";\r\nimport { useCallback, useState } from \"react\";\r\n\r\nexport const useTimer = (props: { pauseSecondsRemaining?: number }) => {\r\n const { pauseSecondsRemaining } = props;\r\n\r\n const [seconds, setSeconds] = useState();\r\n const [timerEnd, setTimerEnd] = useState();\r\n\r\n const [isPaused, setIsPaused] = useState(false);\r\n\r\n // tick seconds\r\n const updateSeconds = useCallback(() => {\r\n if (isPaused) {\r\n setSeconds(undefined);\r\n } else if (timerEnd) {\r\n const now = new Date();\r\n const endDate = new Date(timerEnd);\r\n\r\n const newTime = Math.max(0, Math.floor((endDate.getTime() - now.getTime()) / 1000));\r\n\r\n setSeconds(newTime);\r\n } else {\r\n setSeconds(undefined);\r\n }\r\n }, [isPaused, timerEnd]);\r\n\r\n // set timer to update seconds every second\r\n useInterval(() => {\r\n if (!pauseSecondsRemaining) {\r\n updateSeconds();\r\n }\r\n }, 1000);\r\n\r\n return {\r\n seconds,\r\n setTimerEnd,\r\n setIsPaused,\r\n };\r\n};\r\n","import { Link } from \"react-router-dom\";\r\nimport { AssetManager } from \"utils/AssetManager\";\r\n\r\nexport const StoryDetails = (props: {\r\n playerName: string;\r\n voteCount: number;\r\n reactionCount: number;\r\n characterId?: number;\r\n isPerfect: boolean;\r\n url?: string;\r\n}) => {\r\n const { playerName, reactionCount, voteCount, characterId, isPerfect, url } = props;\r\n const { characters } = AssetManager;\r\n\r\n const c = characterId != null ? characters[characterId] : null;\r\n\r\n return (\r\n
\r\n
\r\n {c && (\r\n
\r\n \r\n {playerName && (\r\n
\r\n {url ? (\r\n \r\n {playerName}\r\n \r\n ) : (\r\n playerName\r\n )}\r\n
\r\n )}\r\n
\r\n\r\n
\r\n \"\"\r\n
\r\n
\r\n )}\r\n\r\n \r\n
\r\n
\r\n {voteCount} {voteCount === 1 ? \"vote\" : \"votes\"}\r\n
\r\n\r\n {reactionCount > 0 &&
{reactionCount} ❤️
}\r\n\r\n {isPerfect && (\r\n
\r\n 100%\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n","import clsx from \"clsx\";\r\nimport { GameStatePlayerDto } from \"dtos/frankenstories/GameStatePlayerDto\";\r\nimport { FrankenstoryStoryItemDto } from \"dtos/frankenstories/FrankenstoryStoryItemDto\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport { ReplyDisplay } from \"components/game/ReplyDisplay\";\r\nimport { StoryDetails } from \"components/game/StoryDetails\";\r\nimport { PlayerDictionary } from \"components/game/CompletedStory\";\r\nimport { CompletedGamePlayerStateResult } from \"results/frankenstories/CompletedGamePlayerStateResult\";\r\nimport { RouteLink } from \"Routes\";\r\n\r\nconst StoryItem = (props: {\r\n reply: FrankenstoryStoryItemDto;\r\n selectedPlayer?: GameStatePlayerDto;\r\n showDetails: boolean;\r\n getVoteCount: (replyId: number) => number;\r\n showCharacters?: boolean;\r\n playerName: string;\r\n playerState?: CompletedGamePlayerStateResult;\r\n groupId?: number;\r\n}) => {\r\n const { reply, selectedPlayer, showDetails, showCharacters, getVoteCount, playerName, playerState, groupId } =\r\n props;\r\n\r\n const [shown, setShown] = useState(false);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setShown(true);\r\n }, 30);\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n {selectedPlayer && (\r\n
\r\n {reply.isTitleRound ? (\r\n Title round\r\n ) : (\r\n Round {reply.roundNumber}\r\n )}\r\n
\r\n )}\r\n\r\n \r\n
\r\n\r\n {showDetails && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport const StoryRepliesDisplay = (props: {\r\n showThread: boolean;\r\n selectedReplies: Array;\r\n showDetails: boolean;\r\n selectedPlayer?: GameStatePlayerDto;\r\n showCharacters?: boolean;\r\n getVoteCount: (replyId: number) => number;\r\n playerNames: PlayerDictionary;\r\n groupId?: number;\r\n playerState?: CompletedGamePlayerStateResult;\r\n}) => {\r\n const {\r\n showThread,\r\n selectedReplies,\r\n selectedPlayer,\r\n showDetails,\r\n showCharacters,\r\n getVoteCount,\r\n playerNames,\r\n playerState,\r\n groupId,\r\n } = props;\r\n\r\n return (\r\n
\r\n {selectedReplies.map(reply => {\r\n const playerName = playerNames[reply.playerId];\r\n\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n );\r\n};\r\n","import { GetGameStateResult } from \"results/frankenstories/GetGameStateResult\";\r\n\r\nexport const useCopyStory = (props: { gameState?: GetGameStateResult }) => {\r\n const { gameState } = props;\r\n\r\n let copiedStory = gameState?.title ?? \"\";\r\n\r\n if (gameState) {\r\n for (const s of gameState.story) {\r\n copiedStory += `\r\n \r\n${s.body}`;\r\n }\r\n }\r\n\r\n return { copiedStory };\r\n};\r\n","import { ConditionalTooltip } from \"components/ConditionalTooltip\";\r\nimport { IconText } from \"components/IconText\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { useCopyStory } from \"hooks/useCopyStory\";\r\nimport { useCallback, useContext } from \"react\";\r\nimport { CompletedGamePlayerStateResult } from \"results/frankenstories/CompletedGamePlayerStateResult\";\r\nimport { GetGameStateResult } from \"results/frankenstories/GetGameStateResult\";\r\n\r\nexport const CopyStoryButton = (props: {\r\n gameState: GetGameStateResult;\r\n playerState?: CompletedGamePlayerStateResult;\r\n}) => {\r\n const { gameState, playerState } = props;\r\n\r\n const { addNotification } = useContext(GlobalContext);\r\n\r\n const { copiedStory } = useCopyStory({ gameState });\r\n\r\n const copyStory = useCallback(() => {\r\n if (copiedStory) {\r\n navigator.clipboard.writeText(copiedStory);\r\n\r\n // show toast\r\n addNotification({\r\n title: \"Text copied\",\r\n description: \"Now go paste it somewhere!\",\r\n type: \"success\",\r\n });\r\n }\r\n }, [addNotification, copiedStory]);\r\n\r\n const copyMyReplies = useCallback(() => {\r\n if (playerState?.playerReplies) {\r\n let story = \"\";\r\n\r\n for (const s of playerState?.playerReplies) {\r\n story += `${s.name} \r\n \r\n${s.description}\r\n\r\n`;\r\n }\r\n\r\n navigator.clipboard.writeText(story);\r\n\r\n // show toast\r\n addNotification({\r\n title: \"Your replies copied\",\r\n description: \"Now go paste it somewhere!\",\r\n type: \"success\",\r\n });\r\n }\r\n }, [addNotification, playerState?.playerReplies]);\r\n\r\n if (playerState?.isPlayer && playerState.playerReplies?.length) {\r\n return (\r\n \r\n
\r\n \r\n\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { ConditionalTooltip } from \"components/ConditionalTooltip\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { useCallback, useContext } from \"react\";\r\nimport { RouteLink } from \"Routes\";\r\nimport { GameStateProps } from \"types/GameStateProps\";\r\n\r\nexport const CopyStoryLinkButton = (props: GameStateProps) => {\r\n const { gameState } = props;\r\n\r\n const { addNotification } = useContext(GlobalContext);\r\n\r\n const copyShareLink = useCallback(() => {\r\n if (gameState) {\r\n const selectedCode = gameState.code;\r\n const url = `${window.location.origin}${RouteLink.discoverHallOfFameStory(selectedCode)}`;\r\n\r\n // copy to clipboard\r\n const text = `🎮 Frankenstories ✏️\r\n \r\n${gameState.title ?? gameState.gameName}\r\n\r\n🧑 ${gameState.playerCount} 🔔 ${gameState.roundCount} 💬 ${gameState.replyCount}\r\n\r\n${url}`;\r\n\r\n navigator.clipboard.writeText(text);\r\n\r\n // show toast\r\n addNotification({\r\n title: \"Link copied\",\r\n description: \"Share it with your friends!\",\r\n type: \"success\",\r\n });\r\n }\r\n }, [addNotification, gameState]);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import { PlayerDictionary } from \"components/game/CompletedStory\";\r\nimport { GameStatePlayerDto } from \"dtos/frankenstories/GameStatePlayerDto\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { GameStateProps } from \"types/GameStateProps\";\r\nimport { AssetManager } from \"utils/AssetManager\";\r\n\r\nexport const Leaderboard = (\r\n props: GameStateProps & {\r\n selectPlayer: (p: GameStatePlayerDto) => void;\r\n playerNames: PlayerDictionary;\r\n },\r\n) => {\r\n const { gameState, selectPlayer, playerNames } = props;\r\n\r\n const { characters } = AssetManager;\r\n\r\n const [sortedPlayers, setSortedPlayers] = useState>([]);\r\n\r\n // sort players\r\n useEffect(() => {\r\n if (gameState?.players) {\r\n const players = [...gameState.players].filter(x => x.voteCount);\r\n\r\n players.sort((a, b) => {\r\n // sort by votes first\r\n if (a.voteCount > b.voteCount) {\r\n return -1;\r\n } else if (a.voteCount < b.voteCount) {\r\n return 1;\r\n }\r\n\r\n // then by likes\r\n if (a.reactionCount > b.reactionCount) {\r\n return -1;\r\n } else if (a.reactionCount < b.reactionCount) {\r\n return 1;\r\n }\r\n\r\n // default\r\n return 0;\r\n });\r\n\r\n setSortedPlayers(players);\r\n }\r\n }, [gameState?.players]);\r\n\r\n return (\r\n
\r\n {sortedPlayers.map(p => {\r\n const playerName = playerNames[p.id];\r\n\r\n return (\r\n {\r\n selectPlayer(p);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n {p.characterId != null && (\r\n \"\"\r\n )}\r\n
\r\n
{playerName}
\r\n
\r\n\r\n
\r\n {p.voteCount} {p.voteCount === 1 ? \"vote\" : \"votes\"}\r\n
\r\n\r\n {p.reactionCount > 0 && (\r\n
\r\n ❤️\r\n {p.reactionCount}\r\n
\r\n )}\r\n
\r\n \r\n );\r\n })}\r\n
\r\n );\r\n};\r\n","import clsx from \"clsx\";\r\nimport { IconText } from \"components/IconText\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { useContext, useState } from \"react\";\r\n\r\nexport const RewriteStorySaveButton = (props: {\r\n code: string;\r\n promptText?: string;\r\n onSaved: () => void;\r\n isSaved: boolean;\r\n}) => {\r\n const { code, promptText, onSaved, isSaved } = props;\r\n\r\n const { gameplayService, catchServerError, addNotification } = useContext(GlobalContext);\r\n const { submitRevisedStory } = gameplayService;\r\n\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const save = () => {\r\n setIsSubmitting(true);\r\n\r\n if (promptText) {\r\n submitRevisedStory({ code, body: promptText })\r\n .then(x => {\r\n if (x.success) {\r\n addNotification({ type: \"success\", title: \"Your revision was saved\" });\r\n onSaved();\r\n }\r\n\r\n setIsSubmitting(false);\r\n })\r\n .catch(catchServerError);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import clsx from \"clsx\";\r\nimport { CardForm } from \"components/CardForm\";\r\nimport { IconText } from \"components/IconText\";\r\nimport { RewriteStorySaveButton } from \"components/buttons/RewriteStorySaveButton\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { useAutoGrowTextArea } from \"hooks/useAutoGrowTextArea\";\r\nimport { useCopyStory } from \"hooks/useCopyStory\";\r\nimport { useServerForm } from \"hooks/useServerForm\";\r\nimport { Fragment, useContext, useEffect, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { useWatch } from \"react-hook-form\";\r\nimport { CompletedGamePlayerStateResult } from \"results/frankenstories/CompletedGamePlayerStateResult\";\r\nimport { GetGameStateResult } from \"results/frankenstories/GetGameStateResult\";\r\n\r\ninterface Rewrite {\r\n promptText: string;\r\n}\r\n\r\nexport const RewriteStory = (props: {\r\n gameState?: GetGameStateResult;\r\n playerState?: CompletedGamePlayerStateResult;\r\n}) => {\r\n const { gameState, playerState } = props;\r\n\r\n const { addNotification } = useContext(GlobalContext);\r\n\r\n const { register, control, setValue } = useServerForm();\r\n\r\n const values = useWatch({ control });\r\n\r\n const { promptText } = values;\r\n\r\n const { copiedStory } = useCopyStory({ gameState });\r\n const { handleTextAreaChange, textAreaHolderRef } = useAutoGrowTextArea({ promptText });\r\n\r\n const [isSaved, setIsSaved] = useState();\r\n\r\n // initial load of value\r\n useEffect(() => {\r\n if (gameState && playerState) {\r\n // set initial text\r\n if (playerState.revisedStory) {\r\n setValue(\"promptText\", playerState.revisedStory);\r\n setIsSaved(true);\r\n } else {\r\n setValue(\"promptText\", copiedStory);\r\n setIsSaved(false);\r\n }\r\n }\r\n }, [copiedStory, gameState, playerState, setValue]);\r\n\r\n if (!gameState || !playerState) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n {playerState?.isPlayer && (\r\n setIsSaved(true)}\r\n isSaved={!!isSaved}\r\n />\r\n )}\r\n
\r\n\r\n
\r\n {\r\n if (promptText) {\r\n navigator.clipboard.writeText(promptText);\r\n\r\n addNotification({\r\n title: \"Your version copied\",\r\n description: \"Now go paste it somewhere!\",\r\n type: \"success\",\r\n });\r\n }\r\n }}\r\n >\r\n \r\n \r\n\r\n {\r\n const myWindow = window.open(\"\", \"\", \"height: 500; width: 500\");\r\n\r\n if (myWindow) {\r\n ReactDOM.render(\r\n \r\n \r\n
{promptText}
\r\n
,\r\n myWindow.document.body,\r\n );\r\n\r\n myWindow.document.title = gameState.title ?? gameState.gameName;\r\n myWindow.document.close();\r\n myWindow.focus();\r\n myWindow.print();\r\n myWindow.close();\r\n }\r\n }}\r\n >\r\n \r\n \r\n
\r\n
\r\n }\r\n >\r\n
\r\n {playerState?.isPlayer && (\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
This version is {isSaved ? \"saved\" : \"not saved\"}
\r\n\r\n {isSaved ? (\r\n
\r\n Click Update to submit any further changes\r\n
\r\n ) : (\r\n
\r\n Click Save to submit any changes\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n )}\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n","import { useRef, useCallback, useEffect } from \"react\";\r\n\r\nexport const useAutoGrowTextArea = (props: { promptText?: string }) => {\r\n const { promptText } = props;\r\n\r\n const textAreaHolderRef = useRef(null);\r\n\r\n const handleTextAreaChange = useCallback(() => {\r\n if (textAreaHolderRef.current) {\r\n textAreaHolderRef.current.dataset.replicatedValue = promptText;\r\n }\r\n }, [promptText]);\r\n\r\n useEffect(() => {\r\n handleTextAreaChange();\r\n }, [handleTextAreaChange]);\r\n\r\n return { textAreaHolderRef, handleTextAreaChange };\r\n};\r\n","import { DimensionDto } from \"dtos/llm/DimensionDto\";\r\nimport { ReportCard } from \"components/game/ReportCard\";\r\nimport { IconText } from \"components/IconText\";\r\nimport { ModalButton } from \"components/modals/ModalButton\";\r\n\r\nexport const ReportCardModalButton = () => (\r\n }\r\n />\r\n);\r\n\r\nexport const ReportCardModal = (props: { dimensions: Array; llmScore: number; playerName: string }) => {\r\n const { dimensions, llmScore, playerName } = props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import { Fragment, ReactNode, useCallback, useContext, useEffect, useMemo, useState } from \"react\";\r\nimport { GetGameStateResult } from \"results/frankenstories/GetGameStateResult\";\r\nimport { ReplyDisplay } from \"components/game/ReplyDisplay\";\r\nimport { StimulusSidebar } from \"components/game/StimulusSidebar\";\r\nimport { CompletedGamePlayerStateResult } from \"results/frankenstories/CompletedGamePlayerStateResult\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { RouteLink, RouteList } from \"Routes\";\r\nimport { GameStatePlayerDto } from \"dtos/frankenstories/GameStatePlayerDto\";\r\nimport { FrankenstoryStoryItemDto } from \"dtos/frankenstories/FrankenstoryStoryItemDto\";\r\nimport { StoryDetails } from \"components/game/StoryDetails\";\r\nimport { StoryRepliesDisplay } from \"components/game/StoryRepliesDisplay\";\r\nimport { TabButton } from \"components/TabButton\";\r\nimport { PageHeader } from \"components/PageHeader\";\r\nimport { IconText } from \"components/IconText\";\r\nimport { CopyStoryButton } from \"components/story/CopyStoryButton\";\r\nimport { CopyStoryLinkButton } from \"components/story/CopyStoryLinkButton\";\r\nimport { Leaderboard } from \"components/story/Leaderboard\";\r\nimport { ListItemPlaceholder } from \"components/placeholders/ListItemPlaceholder\";\r\nimport { PromptPlaceholder } from \"components/placeholders/PromptPlaceholder\";\r\nimport { TabsPlaceholder } from \"components/placeholders/TabsPlaceholder\";\r\nimport { RoundInstructionsDisplay } from \"components/RoundInstructionsDisplay\";\r\nimport { useDuplication } from \"hooks/useDuplication\";\r\nimport { ProBadge } from \"components/subscriptions/ProBadge\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { setPageLoadMessage } from \"pages/Page\";\r\nimport { RewriteStory } from \"components/game/RewriteStory\";\r\nimport { getCharacter } from \"utils/AssetManager\";\r\nimport { ReportCardModal, ReportCardModalButton } from \"components/modals/ReportCardModal\";\r\nimport { ConditionalTooltip } from \"components/ConditionalTooltip\";\r\nimport { DeleteGameButton } from \"components/buttons/DeleteGameButton\";\r\nimport { RoundInstructionDto } from \"dtos/frankenstories/RoundInstructionDto\";\r\nimport { RoundDto } from \"dtos/frankenstories/RoundDto\";\r\n\r\nexport type PlayerDictionary = Record;\r\n\r\nconst StoryStat = (props: { count?: number; icon: ReactNode; description: string }) => {\r\n const { count, icon, description } = props;\r\n\r\n return (\r\n
  • \r\n {icon}\r\n {count == null ? : count}\r\n {description}\r\n
  • \r\n );\r\n};\r\n\r\nconst StoryItemPlaceholder = () => (\r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nexport const CompletedStory = (props: {\r\n gameState?: GetGameStateResult;\r\n playerState?: CompletedGamePlayerStateResult;\r\n code: string;\r\n isHallOfFame: boolean;\r\n}) => {\r\n const { gameState, playerState, isHallOfFame } = props;\r\n\r\n const { isAuthenticated, globalData, userData } = useContext(GlobalContext);\r\n\r\n const { exportSettings } = useDuplication();\r\n\r\n const [selectedRound, setSelectedRound] = useState();\r\n const [selectedPlayer, setSelectedPlayer] = useState();\r\n const [selectedReplies, setSelectedReplies] = useState>([]);\r\n const [players, setPlayers] = useState>([]);\r\n const [storyAlternatives, setStoryAlternatives] = useState>([]);\r\n const [voteTally, setVoteTally] = useState>({});\r\n const [titleReply, setTitleReply] = useState();\r\n const [showingLeaderboard, setShowingLeaderboard] = useState(false);\r\n const [showingPopularReplies, setShowingPopularReplies] = useState(false);\r\n const [roundInstructions, setRoundInstructions] = useState>();\r\n\r\n // rewrite activity\r\n const [showingRewrite, setShowingRewrite] = useState(false);\r\n\r\n // should show leaderboard or not\r\n const [shouldShowLeaderboard, setShouldShowLeaderboard] = useState(false);\r\n\r\n useEffect(() => {\r\n if (gameState?.settings.showLeaderboard && gameState.playerCount > 2) {\r\n setShouldShowLeaderboard(true);\r\n }\r\n }, [gameState?.playerCount, gameState?.settings.showLeaderboard]);\r\n\r\n const getVoteCount = useCallback(\r\n (replyId: number) => {\r\n if (replyId in voteTally) {\r\n return voteTally[replyId];\r\n }\r\n\r\n return 0;\r\n },\r\n [voteTally],\r\n );\r\n\r\n const selectPlayer = (p: GameStatePlayerDto) => {\r\n setSelectedRound(undefined);\r\n\r\n // select round\r\n setSelectedPlayer(p);\r\n\r\n setShowingPopularReplies(false);\r\n setShowingLeaderboard(false);\r\n setShowingRewrite(false);\r\n };\r\n\r\n // round selector text\r\n const [currentRoundText, setCurrentRoundText] = useState();\r\n\r\n useEffect(() => {\r\n if (selectedRound) {\r\n setCurrentRoundText(selectedRound.name);\r\n } else {\r\n setCurrentRoundText(undefined);\r\n }\r\n }, [selectedRound]);\r\n\r\n // set title reply\r\n useEffect(() => {\r\n const roundCount = gameState?.settings.roundCount;\r\n\r\n if (roundCount) {\r\n const t = gameState?.allReplies.find(x => x.roundNumber > roundCount && x.isWinner);\r\n setTitleReply(t);\r\n } else {\r\n setTitleReply(undefined);\r\n }\r\n }, [gameState?.allReplies, gameState?.settings.roundCount]);\r\n\r\n // handle player dictionary\r\n const playerNames = useMemo(() => {\r\n const names: PlayerDictionary = {};\r\n let i = 1;\r\n\r\n if (playerState && gameState) {\r\n for (const p of gameState.players) {\r\n const name = playerState.isPlayer || playerState.isLeader ? p.name : `Player ${i}`;\r\n\r\n names[p.id] = name;\r\n i++;\r\n }\r\n }\r\n\r\n return names;\r\n }, [gameState, playerState]);\r\n\r\n // subtitle\r\n const [subtitle, setSubtitle] = useState();\r\n\r\n useEffect(() => {\r\n if (titleReply) {\r\n const { reactionCount, playerId } = titleReply;\r\n const playerName = playerNames[playerId];\r\n\r\n const voteCount = getVoteCount(titleReply.id);\r\n\r\n let namedBy = \"\";\r\n\r\n if (titleReply.isPerfect) {\r\n namedBy += \"⭐ \";\r\n }\r\n\r\n namedBy += `Named by ${playerName}`;\r\n\r\n if (reactionCount && !voteCount) {\r\n // winning reply has reactions but no votes\r\n namedBy += ` with ${reactionCount} ❤️`;\r\n } else if (voteCount) {\r\n namedBy += ` with ${voteCount === 1 ? \"1 vote\" : `${voteCount} votes`}`;\r\n\r\n if (reactionCount) {\r\n namedBy += ` and ${reactionCount} ❤️`;\r\n }\r\n }\r\n\r\n setSubtitle(namedBy);\r\n } else if (gameState) {\r\n setSubtitle(\"Untitled story\");\r\n }\r\n }, [getVoteCount, titleReply, gameState, playerNames]);\r\n\r\n // update vote tally\r\n useEffect(() => {\r\n if (gameState?.votedReplyIds) {\r\n const tally: Record = {};\r\n\r\n for (const id of gameState.votedReplyIds) {\r\n if (!(id in tally)) {\r\n tally[id] = 0;\r\n }\r\n\r\n tally[id]++;\r\n }\r\n\r\n setVoteTally(tally);\r\n }\r\n }, [gameState?.votedReplyIds]);\r\n\r\n // filter replies\r\n useEffect(() => {\r\n let replies: Array = [];\r\n\r\n if (!selectedPlayer && !selectedRound && gameState?.story) {\r\n // default when nothing is selected is the story\r\n replies = gameState.story;\r\n } else if (gameState?.allReplies) {\r\n replies = gameState?.allReplies;\r\n\r\n if (selectedRound) {\r\n replies = replies.filter(x => x.roundId === selectedRound.id);\r\n }\r\n\r\n if (selectedPlayer) {\r\n replies = replies.filter(x => x.playerId === selectedPlayer.id);\r\n }\r\n }\r\n\r\n // sort\r\n replies.sort((a, b) => {\r\n // first order by round number\r\n if (a.roundNumber > b.roundNumber) {\r\n return 1;\r\n } else if (a.roundNumber < b.roundNumber) {\r\n return -1;\r\n }\r\n\r\n // order by name\r\n if (a.playerName.toLowerCase() > b.playerName.toLowerCase()) {\r\n return 1;\r\n } else if (a.playerName.toLowerCase() < b.playerName.toLowerCase()) {\r\n return -1;\r\n }\r\n\r\n // then order by name\r\n return 0;\r\n });\r\n\r\n setSelectedReplies(replies);\r\n }, [gameState?.allReplies, gameState?.story, selectedPlayer, selectedRound]);\r\n\r\n // set players\r\n useEffect(() => {\r\n if (gameState?.players) {\r\n const p = [...gameState.players].filter(x => gameState.allReplies.find(y => y.playerId === x.id));\r\n\r\n // if names aren't anonymous then sort by name\r\n if (playerState?.isPlayer) {\r\n p.sort((a, b) => (a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1));\r\n } else {\r\n // otherwise sort by id or else it's weird after 10 players\r\n p.sort((a, b) => a.id - b.id);\r\n }\r\n\r\n setPlayers(p);\r\n }\r\n }, [gameState?.allReplies, gameState?.players, playerState?.isPlayer]);\r\n\r\n // set alternate replies\r\n useEffect(() => {\r\n if (gameState?.allReplies) {\r\n const alternates = [...gameState.allReplies].filter(x => !x.isWinner);\r\n\r\n alternates.sort((a, b) => getVoteCount(b.id) - getVoteCount(a.id));\r\n\r\n setStoryAlternatives(alternates.slice(0, 5));\r\n }\r\n }, [gameState?.allReplies, getVoteCount]);\r\n\r\n // round instructions\r\n useEffect(() => {\r\n if (gameState?.roundInstructions.length) {\r\n setRoundInstructions([...gameState.roundInstructions]);\r\n }\r\n }, [gameState?.roundInstructions]);\r\n\r\n const copyGame = () => {\r\n if (gameState && globalData?.isSubscribed) {\r\n setPageLoadMessage(\"Game settings copied\");\r\n\r\n exportSettings({\r\n imageId: gameState.imageId,\r\n imageUrl: gameState.imageUrl,\r\n promptText: gameState.prompt,\r\n roundCount: gameState.settings.roundCount,\r\n roundInstructions: gameState.roundInstructions,\r\n });\r\n }\r\n };\r\n\r\n // player selector text\r\n const [currentPlayerText, setCurrentPlayerText] = useState();\r\n\r\n useEffect(() => {\r\n if (selectedPlayer) {\r\n setCurrentPlayerText(playerNames[selectedPlayer.id]);\r\n } else {\r\n setCurrentPlayerText(undefined);\r\n }\r\n }, [selectedPlayer, playerNames]);\r\n\r\n // current round instructions\r\n const [roundInstruction, setRoundInstruction] = useState(\"\");\r\n\r\n useEffect(() => {\r\n let foundInstruction = false;\r\n\r\n if (gameState?.roundInstructions.length && selectedRound) {\r\n // get round index\r\n const roundIndex = gameState?.rounds.indexOf(selectedRound);\r\n\r\n if (roundIndex !== undefined) {\r\n const selectedInstruction = gameState.roundInstructions[roundIndex];\r\n\r\n if (selectedInstruction) {\r\n setRoundInstruction(selectedInstruction.name);\r\n foundInstruction = true;\r\n }\r\n }\r\n }\r\n\r\n if (!foundInstruction) {\r\n setRoundInstruction(\"\");\r\n }\r\n }, [gameState?.roundInstructions, gameState?.rounds, selectedRound]);\r\n\r\n const columnTitle = showingPopularReplies\r\n ? \"Popular replies\"\r\n : showingLeaderboard\r\n ? \"Leaderboard\"\r\n : showingRewrite\r\n ? \"My version\"\r\n : currentPlayerText\r\n ? currentPlayerText\r\n : currentRoundText\r\n ? currentRoundText\r\n : \"Final story\";\r\n\r\n const columnTitleIcon = showingPopularReplies ? (\r\n \r\n ) : showingLeaderboard ? (\r\n \r\n ) : showingRewrite ? (\r\n \r\n ) : currentPlayerText ? (\r\n \r\n ) : currentRoundText ? (\r\n \r\n ) : (\r\n \r\n );\r\n\r\n const nonTitleRoundCount = gameState?.rounds.filter(x => !x.isTitleRound).length ?? 0;\r\n const roundCountText = `round${nonTitleRoundCount === 1 ? \"\" : \"s\"}`;\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {!gameState.isHomework && playerState?.isLeader && (\r\n \r\n )}\r\n \r\n )\r\n }\r\n />\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {gameState ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n {roundInstructions && roundInstructions.length > 0 && (\r\n \r\n )}\r\n
    \r\n\r\n
    \r\n {playerState?.isLeader && gameState?.code && !userData?.isStudent ? (\r\n
    \r\n \r\n \r\n \r\n
    \r\n ) : (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )}\r\n
    \r\n\r\n {gameState?.replyCount && (\r\n
    \r\n

    Story details

    \r\n\r\n
      \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
    \r\n
    \r\n )}\r\n\r\n {!!playerState?.unlockedAvatarId && (\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    You unlocked this avatar in this game!
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {gameState?.isHallOfFameApproved && (\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n This story is in the{\" \"}\r\n \r\n Hall of Fame\r\n \r\n !\r\n
    \r\n
    \r\n )}\r\n\r\n {playerState?.llmScore && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n {gameState?.socialLinks && gameState.socialLinks.length > 0 && (\r\n
    \r\n

    You can watch this one!

    \r\n\r\n
    \r\n {gameState.socialLinks.map(l => (\r\n \r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {gameState ? (\r\n
    \r\n }\r\n tooltip=\"Final story\"\r\n isSelected={\r\n !selectedPlayer &&\r\n !selectedRound &&\r\n !showingRewrite &&\r\n !showingLeaderboard &&\r\n !showingPopularReplies\r\n }\r\n onClick={() => {\r\n setSelectedPlayer(undefined);\r\n setSelectedRound(undefined);\r\n setShowingLeaderboard(false);\r\n setShowingPopularReplies(false);\r\n setShowingRewrite(false);\r\n }}\r\n />\r\n\r\n {storyAlternatives.length > 0 && (\r\n }\r\n isSelected={showingPopularReplies}\r\n tooltip=\"Popular replies\"\r\n onClick={() => {\r\n setSelectedPlayer(undefined);\r\n setSelectedRound(undefined);\r\n setShowingPopularReplies(true);\r\n setShowingLeaderboard(false);\r\n setShowingRewrite(false);\r\n }}\r\n />\r\n )}\r\n\r\n \r\n
    \r\n }\r\n />\r\n\r\n
      \r\n {gameState &&\r\n gameState.rounds\r\n .filter(x =>\r\n gameState.allReplies.find(y => y.roundId === x.id),\r\n )\r\n .map(r => (\r\n
    • \r\n {\r\n setSelectedPlayer(undefined);\r\n\r\n // select round\r\n setSelectedRound(r);\r\n\r\n setShowingPopularReplies(false);\r\n setShowingLeaderboard(false);\r\n setShowingRewrite(false);\r\n }}\r\n >\r\n 🔔 {r.name}\r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n }\r\n />\r\n\r\n
      \r\n {players.map(p => {\r\n const playerName = playerNames[p.id];\r\n\r\n return (\r\n
    • \r\n {\r\n selectPlayer(p);\r\n }}\r\n >\r\n 🧑 {playerName}\r\n \r\n
    • \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n\r\n {shouldShowLeaderboard && (\r\n }\r\n tooltip=\"Leaderboard\"\r\n onClick={() => {\r\n setSelectedPlayer(undefined);\r\n setSelectedRound(undefined);\r\n setShowingPopularReplies(false);\r\n setShowingLeaderboard(true);\r\n setShowingRewrite(false);\r\n }}\r\n />\r\n )}\r\n\r\n }\r\n tooltip=\"My version\"\r\n onClick={() => {\r\n setSelectedPlayer(undefined);\r\n setSelectedRound(undefined);\r\n setShowingPopularReplies(false);\r\n setShowingLeaderboard(false);\r\n setShowingRewrite(true);\r\n }}\r\n />\r\n
    \r\n ) : (\r\n \r\n )}\r\n\r\n
    \r\n {columnTitleIcon}\r\n {columnTitle}\r\n
    \r\n
    \r\n\r\n {showingRewrite && gameState ? (\r\n \r\n ) : showingLeaderboard && gameState ? (\r\n \r\n ) : showingPopularReplies && gameState ? (\r\n
    \r\n {storyAlternatives.map(reply => (\r\n
    \r\n
    \r\n
    \r\n {reply.isTitleRound ? (\r\n Title round\r\n ) : (\r\n Round {reply.roundNumber}\r\n )}\r\n
    \r\n\r\n \r\n
    \r\n\r\n
    \r\n {gameState?.players && gameState.players.length > 1 && (\r\n \r\n )}\r\n
    \r\n
    \r\n ))}\r\n
    \r\n ) : (\r\n
    \r\n {gameState && selectedReplies.length !== 0 ? (\r\n
    \r\n {roundInstruction &&
    {roundInstruction}
    }\r\n\r\n
    \r\n 1}\r\n selectedReplies={selectedReplies}\r\n showThread={!selectedPlayer && !selectedRound}\r\n selectedPlayer={selectedPlayer}\r\n getVoteCount={getVoteCount}\r\n playerNames={playerNames}\r\n groupId={gameState.groupId}\r\n playerState={playerState}\r\n />\r\n\r\n {!isAuthenticated && (\r\n
    \r\n
    Want to make your own Frankenstory game?
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {playerState?.llmScore && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n","import { Modal } from \"bootstrap\";\r\nimport { IconText } from \"components/IconText\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { RouteList } from \"Routes\";\r\nimport { Constants } from \"utils/Constants\";\r\n\r\nexport const CheckInModal = () => {\r\n const modalRef = useRef(null);\r\n\r\n const [feedback, setFeedback] = useState();\r\n\r\n const submitGoodFeedback = () => {\r\n setFeedback(true);\r\n };\r\n\r\n const submitBadFeedback = () => {\r\n setFeedback(false);\r\n };\r\n\r\n const onComplete = () => {\r\n if (modalRef.current) {\r\n const modal = Modal.getOrCreateInstance(modalRef.current);\r\n\r\n modal.hide();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (modalRef.current) {\r\n const modal = Modal.getOrCreateInstance(modalRef.current);\r\n\r\n modal.show();\r\n\r\n return () => {\r\n modal.hide();\r\n };\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {feedback === false ? \"Oh no! What happened? 😰\" : \"Big game! How did it go?\"}\r\n

    \r\n\r\n \r\n
    \r\n\r\n
    \r\n {feedback === undefined ? (\r\n
    \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n ) : feedback === true ? (\r\n
    \r\n
    \r\n

    Great! 🥰

    \r\n\r\n
    \r\n If you have any feedback feel free to{\" \"}\r\n contact us .\r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n
    \r\n

    Derailed by players?

    \r\n\r\n
    \r\n 🧑‍🏫 Frankenstories Pro gives you\r\n more control!\r\n
    \r\n
    \r\n\r\n
    \r\n

    Players struggled?

    \r\n\r\n
    \r\n 💪 Find scaffolding ideas in{\" \"}\r\n \r\n Teaching with Frankenstories\r\n \r\n .\r\n
    \r\n
    \r\n\r\n
    \r\n

    Gameplay issue?

    \r\n\r\n
    \r\n 🐞 Tell us what happened and we'll try to\r\n fix it.\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n\r\n {feedback !== undefined && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import { useCallback, useContext, useEffect, useState } from \"react\";\r\nimport { Page } from \"pages/Page\";\r\nimport { GlobalContext } from \"contexts/GlobalContext\";\r\nimport { GetGameStateResult } from \"results/frankenstories/GetGameStateResult\";\r\nimport { CompletedStory } from \"components/game/CompletedStory\";\r\nimport { RouteLink } from \"Routes\";\r\nimport { CompletedGamePlayerStateResult } from \"results/frankenstories/CompletedGamePlayerStateResult\";\r\nimport { CodeProps } from \"types/CodeProps\";\r\nimport { CheckInModal } from \"components/modals/CheckInModal\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst GamesStoryPage = (props: CodeProps) => {\r\n const { code } = props;\r\n\r\n const history = useHistory();\r\n\r\n const { gamesService, gameplayService, setError, catchServerError } = useContext(GlobalContext);\r\n const { getCompletedPlayerState } = gamesService;\r\n const { getGameState } = gameplayService;\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [gameState, setGameState] = useState();\r\n const [playerState, setPlayerState] = useState();\r\n const [showCheckIn, setShowCheckIn] = useState(false);\r\n\r\n const loadPlayerState = useCallback(() => {\r\n if (code) {\r\n getCompletedPlayerState(code)\r\n .then(x => {\r\n setPlayerState(x);\r\n })\r\n .catch(catchServerError);\r\n }\r\n }, [code, getCompletedPlayerState, catchServerError]);\r\n\r\n // get the story\r\n useEffect(() => {\r\n let mounted = true;\r\n\r\n if (code) {\r\n getGameState(code)\r\n .then(x => {\r\n if (mounted) {\r\n setGameState(x);\r\n }\r\n })\r\n .catch(() => {\r\n setError(\"Could not find game\");\r\n });\r\n }\r\n\r\n return () => {\r\n mounted = false;\r\n };\r\n }, [code, getGameState, setError]);\r\n\r\n // initial load of the player data\r\n useEffect(() => {\r\n loadPlayerState();\r\n }, [loadPlayerState]);\r\n\r\n // update loading when both game state and player state is loaded\r\n useEffect(() => {\r\n if (loading && gameState && playerState) {\r\n setLoading(false);\r\n }\r\n }, [gameState, loading, playerState]);\r\n\r\n // show check in\r\n useEffect(() => {\r\n if (localStorage.getItem(\"FlagCheckIn\")) {\r\n // remove flag\r\n localStorage.removeItem(\"FlagCheckIn\");\r\n\r\n // show modal\r\n setShowCheckIn(true);\r\n }\r\n }, []);\r\n\r\n // determine if in hall of fame\r\n const { pathname } = location;\r\n\r\n const completedGameUrl = RouteLink.gamesCompletedGame(code);\r\n const hallOfFameUrl = RouteLink.discoverHallOfFameStory(code);\r\n\r\n const isHallOfFame = pathname === hallOfFameUrl;\r\n\r\n // manage title\r\n const title = gameState?.title ?? gameState?.gameName ?? \"...\";\r\n\r\n useEffect(() => {\r\n if (gameState != null) {\r\n // non hall of fame games must get redirected to my stories\r\n if (!gameState?.isHallOfFameApproved) {\r\n // check url\r\n const correctUrl = completedGameUrl;\r\n\r\n if (pathname !== correctUrl) {\r\n history.push(correctUrl);\r\n }\r\n }\r\n }\r\n }, [completedGameUrl, gameState, history, pathname]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n\r\n {showCheckIn && }\r\n \r\n );\r\n};\r\n\r\nexport default GamesStoryPage;\r\n","const cdn = \"https://writelikelivestorage.blob.core.windows.net/writelikelivestorage-container/\";\r\nconst avatarCount = 244;\r\n\r\nexport interface RandomCharacter {\r\n file: string;\r\n id: number;\r\n}\r\n\r\nexport const getCharacter = (id: number) => `${cdn}avatar-${id}.svg`;\r\n\r\nexport class AssetManager {\r\n private static instance: AssetManager;\r\n\r\n public static get characters() {\r\n const c: Array = [];\r\n\r\n for (let i = 0; i < avatarCount; i++) {\r\n const character = getCharacter(i);\r\n c.push(character);\r\n }\r\n\r\n return c;\r\n }\r\n\r\n public static getInstance(): AssetManager {\r\n if (!AssetManager.instance) {\r\n AssetManager.instance = new AssetManager();\r\n }\r\n\r\n return AssetManager.instance;\r\n }\r\n}\r\n\r\nfunction shuffleWithSeed(array: Array, seed: number) {\r\n let s = seed;\r\n\r\n function randomWithSeed() {\r\n const x = Math.sin(s++) * 10000;\r\n return x - Math.floor(x);\r\n }\r\n\r\n let m = array.length;\r\n let t;\r\n let i;\r\n\r\n while (m) {\r\n i = Math.floor(randomWithSeed() * m--);\r\n t = array[m];\r\n array[m] = array[i];\r\n array[i] = t;\r\n ++s;\r\n }\r\n\r\n return array;\r\n}\r\n\r\nexport const getCharactersForPlayer = (playerId?: number) => {\r\n const maxCount = 24;\r\n const arr: Array<{ id: number; name: string }> = [];\r\n\r\n if (playerId) {\r\n let i = 0;\r\n\r\n for (const c of AssetManager.characters) {\r\n arr.push({ id: i, name: c });\r\n i++;\r\n }\r\n\r\n shuffleWithSeed(arr, playerId);\r\n }\r\n\r\n return arr.slice(0, maxCount);\r\n};\r\n"],"names":["CardHeader","props","icon","name","center","_jsxs","className","clsx","children","_jsx","CardFooter","footer","loading","SpinnerBlock","CardForm","mobileRow","fullHeight","inlineFlex","RoundInstructionDisplay","instruction","roundNumber","label","concat","RoundInstructionsDisplay","roundInstructions","length","map","r","TabButton","text","isSelected","onClick","_props$size","size","dropdown","disabled","isInsideCard","title","tooltip","tooltipRef","useTooltip","placement","ref","type","Timer","seconds","showTimer","state","pauseSecondsRemaining","_useState","useState","_useState2","_slicedToArray","isDanger","setIsDanger","_useState3","_useState4","actualSeconds","setActualSeconds","useEffect","style","width","DeleteGameButton","gameName","code","redirect","_props$btnClass","btnClass","_props$iconDanger","iconDanger","onDeleted","history","useHistory","_useContext","useContext","GlobalContext","moderateService","setWindowConfirm","catchServerError","addNotification","deleteGame","ConditionalTooltip","show","confirmText","confirmIcon","confirmDescription","onConfirm","old","_objectSpread","then","x","success","push","successMessage","catch","IconText","ImagePreviewButton","imageUrl","isImageHidden","alt","src","ImagePreviewModal","ModalDialog","id","GameTimer","roundEnd","votingTimer","writingTimer","setShowTimer","_useTimer","useTimer","setTimerEnd","setIsPaused","ReplyDisplay","body","isWinner","author","votes","characterId","isChosen","isPerfect","isRejected","url","urlNewWindow","hasSticker","isViolation","showVotingEnabled","_props$watchWords","watchWords","characters","AssetManager","c","Link","target","undefined","to","Highlighter","textToHighlight","autoEscape","searchWords","scoreMultiple","DisplayScoreAsGrade","llmScore","score","CountUp","end","duration","useEasing","RatingStar","i","animated","animationStage","thresholdShowStars","Sparkles","count","flickerSpeed","ExperimentalBadge","ReportCard","dimensions","playerName","showFirstStar","showSecondStar","showThirdStar","thresholdDrumroll","showTotal","total","reduce","prev","current","separator","dimension","index","showGrade","height","ReportPhaseTwo","showViewStory","RouteLink","SourceLink","imageSource","href","rel","Stimulus","promptText","StimulusImage","prompt","hideModal","StimulusSidebar","StimulusHorizontal","roundInstruction","backgroundImage","minHeight","ri","ModalButton","ListItemPlaceholder","ListPlaceholder","PromptPlaceholder","TabsPlaceholder","importSettingsLocalStorageKey","useDuplication","exportSettings","useCallback","settings","destination","arguments","RouteList","settingsString","JSON","stringify","localStorage","setItem","getSettings","getItem","parse","removeItem","useInterval","callback","delay","savedCallback","useRef","setInterval","clearInterval","useServerForm","_useForm","useForm","register","handleSubmit","setFocus","setError","setValue","watch","control","reset","getValues","resetField","clearErrors","errors","formState","isSubmitting","setIsSubmitting","setSuccessMessage","handleFailure","result","_loop","key","forEach","e","message","shouldFocus","setSeconds","timerEnd","_useState5","_useState6","isPaused","updateSeconds","now","Date","endDate","newTime","Math","max","floor","getTime","StoryDetails","reactionCount","voteCount","StoryItem","reply","selectedPlayer","showDetails","showCharacters","getVoteCount","playerState","groupId","shown","setShown","setTimeout","isTitleRound","Fragment","isLeader","isPlayer","userId","StoryRepliesDisplay","showThread","selectedReplies","playerNames","playerId","useCopyStory","_gameState$title","gameState","copiedStory","_step","_iterator","_createForOfIteratorHelper","story","s","n","done","value","err","f","CopyStoryButton","_playerState$playerRe","copyStory","navigator","clipboard","writeText","description","copyMyReplies","playerReplies","CopyStoryLinkButton","copyShareLink","selectedCode","window","location","origin","playerCount","roundCount","replyCount","Leaderboard","selectPlayer","sortedPlayers","setSortedPlayers","players","_toConsumableArray","filter","sort","a","b","p","RewriteStorySaveButton","onSaved","isSaved","gameplayService","submitRevisedStory","RewriteStory","_useServerForm","useWatch","_useAutoGrowTextArea","textAreaHolderRef","handleTextAreaChange","dataset","replicatedValue","useAutoGrowTextArea","setIsSaved","revisedStory","myWindow","open","ReactDOM","integrity","crossOrigin","document","close","focus","print","onChange","ReportCardModalButton","ReportCardModal","StoryStat","StoryItemPlaceholder","CompletedStory","_gameState$rounds$fil","_ref","_globalData$firstName","isHallOfFame","isAuthenticated","globalData","userData","selectedRound","setSelectedRound","setSelectedPlayer","setSelectedReplies","_useState7","_useState8","setPlayers","_useState9","_useState10","storyAlternatives","setStoryAlternatives","_useState11","_useState12","voteTally","setVoteTally","_useState13","_useState14","titleReply","setTitleReply","_useState15","_useState16","showingLeaderboard","setShowingLeaderboard","_useState17","_useState18","showingPopularReplies","setShowingPopularReplies","_useState19","_useState20","setRoundInstructions","_useState21","_useState22","showingRewrite","setShowingRewrite","_useState23","_useState24","shouldShowLeaderboard","setShouldShowLeaderboard","showLeaderboard","replyId","_useState25","_useState26","currentRoundText","setCurrentRoundText","t","allReplies","find","useMemo","names","_useState27","_useState28","subtitle","setSubtitle","namedBy","votedReplyIds","_step2","tally","_iterator2","replies","roundId","toLowerCase","y","alternates","slice","_useState29","_useState30","currentPlayerText","setCurrentPlayerText","_useState31","_useState32","setRoundInstruction","foundInstruction","roundIndex","rounds","indexOf","selectedInstruction","columnTitle","columnTitleIcon","nonTitleRoundCount","roundCountText","PageHeader","action","isHomework","isStudent","isSubscribed","setPageLoadMessage","imageId","ProBadge","characterLimit","unlockedAvatarId","getCharacter","isHallOfFameApproved","socialLinks","l","website","firstName","CheckInModal","modalRef","feedback","setFeedback","onComplete","Modal","hide","modal","Constants","_gameState$prompt","gamesService","getCompletedPlayerState","getGameState","setLoading","setGameState","setPlayerState","showCheckIn","setShowCheckIn","loadPlayerState","mounted","pathname","completedGameUrl","hallOfFameUrl","correctUrl","Page","canonical","authType","_classCallCheck","_createClass","get","character","instance","getCharactersForPlayer","arr","array","seed","randomWithSeed","sin","m","shuffleWithSeed"],"sourceRoot":""}