{"version":3,"file":"static/js/main.7d91d217.js","mappings":";kIAUO,MAAMA,EAAiBA,KAC1B,MAAM,gBAAEC,GAAoBC,IAC5B,OAAOC,EAAAA,EAAAA,KAACC,EAAAA,EAAW,CAACC,WAAS,EAACC,QAASL,EAAiBM,MAAO,CAAEC,WAAY,YAAe,EAGnFN,EAA8BA,KACvC,MAAMO,GAAiBC,EAAAA,EAAAA,MACjBC,GAA4BC,EAAAA,EAAAA,MAE3BX,EAAiBY,IAAsBC,EAAAA,EAAAA,WAAS,GAEvDC,EAAAA,WAAgB,KACZC,GAAU,GAEX,IAEH,MAAMA,EAAWC,UACb,IACIJ,GAAmB,GACnB,MAAMK,QAAyCC,EAAAA,EAAYC,SAAST,GACpEE,GAAmB,GACfK,IAAaG,EAAAA,EAAuBC,SACpCb,EAAec,KAAK,CAAEC,SAAUC,GAAUC,cAAeC,MAAO,CAAEC,SAAUjB,EAAOkB,YAE3F,CAAE,MAAOC,GACLjB,GAAmB,EACvB,GAGJ,MAAO,CAAEZ,kBAAiB,4DC/B9B,SAAS8B,EAAUC,EAAWC,GAC5B,IAAID,EAAJ,CACA,IAAIF,EAAQ,IAAII,MAAM,aAAeD,GAGrC,MAFAH,EAAMK,YAAc,EACpBL,EAAMM,KAAO,sBACPN,CAJe,CAKvB,CAMA,IAAIO,EACJtB,EAAAA,gBAOA,IAOIuB,EAAkB,CACpBC,cAAe,CAAC,GAGdC,EAAiB,UAEjBC,EAAkB,WAkBtB,IAgBIC,EAAW,SAAkBC,GAC/B,OAAOA,CACT,EAEA,SAASC,EAAeC,GACtB,IAAIC,EAAwBD,EAAKE,wBAC7BA,OAAoD,IAA1BD,EAAmCJ,EAAWI,EACxEE,EAAUH,EAAKI,OACfC,EAASL,EAAKK,OAElB,SAASC,EAASC,EAAqBC,QACrB,IAAZA,IACFA,EAAU,CAAC,GAGb,IAAIC,EA/CR,SAA4BA,GAC1B,MAAoB,oBAATA,EACF,CACLC,aAAcD,EACdE,QAAS,WAET,EACAC,UAAW,WAEX,GAIGH,CACT,CAiCeI,CAAmBN,GAC1BO,EAAQ,CAAC,EAQb,SAASC,EAAaC,GACpB,OAAIR,EAAQS,SACHT,EAAQS,SAASD,GAGtBP,EAAKE,QACAF,EAAKE,QAAQK,GAGf,QACT,CAUA,SAASL,EAAQO,EAAQF,EAAOG,GAC9B,IAAIC,EAAYZ,EAAQa,iBAAmBb,EAAQa,iBAAiBH,EAAQF,GAASd,EAAwBgB,GAU7G,OAHAI,EAAqBH,EAAUC,EAAW,CACxCG,SAAS,IAEJH,CACT,CAEA,IAAII,EAAa,SAAoBR,GACnC,IAAIC,EAAWF,EAAaC,GAExBS,EAAUX,EAAMG,GAkBpB,OAhBKQ,GAAWA,EAAQC,SAAW9B,KACjC6B,EAAUhB,EAAKC,aAAaM,IACpBU,OAAS/B,EACjBmB,EAAMG,GAAYQ,EAClBA,EAAQE,MAAK,WACXF,EAAQC,OAvGI,UAwGd,IAAG,SAAUzC,GACX2C,QAAQ3C,MAAM,+DAAgE,CAC5E4C,SAAUpB,EAAKE,QAAQK,GACvBJ,UAAWH,EAAKG,UAAUI,GAC1B/B,MAAOA,EAAQA,EAAMG,QAAUH,IAEjCwC,EAAQC,OAAS9B,CACnB,KAGK6B,CACT,EAmPIK,EAnViB,SAA4BV,GACnD,IAAIW,EAA6B,SAAoCf,GACnE,OAAO9C,EAAAA,cAAoBsB,EAAQwC,SAAU,MAAM,SAAUC,GAC3D,OAAO/D,EAAAA,cAAoBkD,EAAWc,OAAOC,OAAO,CAClDC,iBAAkBH,GACjBjB,GACL,GACF,EAMA,OAJII,EAAUiB,cACZN,EAA2BM,YAAcjB,EAAUiB,YAAc,sBAG5DN,CACT,CAqUgCO,CA/O5B,SAAUC,GAaR,SAASC,EAAcxB,GACrB,IAAIyB,EAWJ,OATAA,EAAQF,EAAiBG,KAAKC,KAAM3B,IAAU2B,MACxC7D,MAAQ,CACZ8D,OAAQ,KACR3D,MAAO,KACPxB,SAAS,EACTwD,SAAUF,EAAaC,IAEzB9B,GAAW8B,EAAMoB,kBAAoB3B,EAAKoC,YAAa,4DAEnD7B,EAAMoB,mBAEY,IAAhB5B,EAAQsC,MAMZrC,EAAKC,aAAaM,GAAc,OAAE,WAChC,OAAO,IACT,IAEAyB,EAAMM,WAEN/B,EAAMoB,iBAAiBY,SAASvC,EAAKG,UAAUI,MAXtCiC,EAAAA,EAAAA,GAAuBR,MAoBd,IAAhBjC,EAAQsC,MACZrC,EAAKyC,SAAWzC,EAAKyC,QAAQlC,IAC7BP,EAAKG,WAAanB,EAAgBC,cAAce,EAAKG,UAAUI,MAC7DyB,EAAMM,WAGDN,EACT,EAtDAU,EAAAA,EAAAA,GAAeX,EAAeD,GAE9BC,EAAcY,yBAA2B,SAAkCpC,EAAOlC,GAChF,IAAImC,EAAWF,EAAaC,GAE5B,OAAOqC,EAAAA,EAAAA,GAAS,CAAC,EAAGvE,EAAO,CACzBmC,SAAUA,EAEVxD,QAASqB,EAAMrB,SAAWqB,EAAMmC,WAAaA,GAEjD,EA8CA,IAAIqC,EAASd,EAAce,UAmL3B,OAjLAD,EAAOE,kBAAoB,WACzBb,KAAKc,SAAU,EAEf,IAAIC,EAAgBf,KAAKgB,WAErBD,GAAiBA,EAAchC,SAAW9B,GAC5C+C,KAAKiB,WAIHjB,KAAK7D,MAAMrB,SACbkF,KAAKkB,WAET,EAEAP,EAAOQ,mBAAqB,SAA4BC,EAAWC,GAE7DA,EAAU/C,WAAa0B,KAAK7D,MAAMmC,UACpC0B,KAAKkB,WAET,EAEAP,EAAOW,qBAAuB,WAC5BtB,KAAKc,SAAU,CACjB,EAEAH,EAAOY,aAAe,SAAsBC,EAAWC,GACjDzB,KAAKc,SACPd,KAAK0B,SAASF,EAAWC,EAE7B,EAOAd,EAAOgB,YAAc,WACnB,OAAOvD,EAAa4B,KAAK3B,MAC3B,EAMAsC,EAAOK,SAAW,WAChB,OAAO7C,EAAM6B,KAAK2B,cACpB,EAMAhB,EAAOM,SAAW,SAAkBW,QACpB,IAAVA,IACFA,OAAQC,GAGV1D,EAAM6B,KAAK2B,eAAiBC,CAC9B,EAEAjB,EAAOmB,cAAgB,WACrB,IAAIC,EAAS/B,KAETtC,GACFsE,YAAW,WACTtE,EAAOqE,EAAO5F,MAAM8D,OAAQ8B,EAAO1D,MACrC,GAEJ,EAQAsC,EAAOP,SAAW,WAGhB,GAAKJ,KAAK7D,MAAMrB,QAEhB,IACE,IACImF,EAASjC,EADMF,EAAKoC,YAAYF,KAAK3B,OACN2B,KAAK3B,MAAOG,GAC/CwB,KAAK7D,MAAM8D,OAASA,EACpBD,KAAK7D,MAAMrB,SAAU,CACvB,CAAE,MAAOwB,GACP2C,QAAQ3C,MAAM,8FAA+F,CAC3G4C,SAAUpB,EAAKE,QAAQgC,KAAK3B,OAC5BJ,UAAWH,EAAKG,UAAU+B,KAAK3B,OAC/B/B,MAAOA,EAAQA,EAAMG,QAAUH,IAEjC0D,KAAK7D,MAAMG,MAAQA,CACrB,CACF,EAMAqE,EAAOO,UAAY,WACjB,IAAIe,EAASjC,KAETlB,EAAUkB,KAAKkC,eAgBnB,OAfApD,EAAQE,MAAK,SAAUmD,GACrB,IAAIlC,EAASjC,EAAQmE,EAAcF,EAAO5D,MAAOG,GAEjDyD,EAAOV,aAAa,CAClBtB,OAAQA,EACRnF,SAAS,IACR,WACD,OAAOmH,EAAOH,eAChB,GACF,IAAU,OAAE,SAAUxF,GACpB,OAAO2F,EAAOV,aAAa,CACzBjF,MAAOA,EACPxB,SAAS,GAEb,IACOgE,CACT,EAOA6B,EAAOuB,aAAe,WACpB,IAAIE,EAAcpC,KAAK3B,MAGnBA,GAFmB+D,EAAY3C,iBAChB2C,EAAYC,cACnBC,EAAAA,EAAAA,GAA8BF,EAAa,CAAC,mBAAoB,kBAE5E,OAAOvD,EAAWR,EACpB,EAEAsC,EAAOlD,OAAS,WACd,IAAI8E,EAAevC,KAAK3B,MACpBgE,EAAeE,EAAaF,aAC5BG,EAAeD,EAAaE,SAE5BpE,GADmBkE,EAAa9C,kBACxB6C,EAAAA,EAAAA,GAA8BC,EAAc,CAAC,eAAgB,WAAY,sBAEjFG,EAAc1C,KAAK7D,MACnBG,EAAQoG,EAAYpG,MACpBxB,EAAU4H,EAAY5H,QACtBmF,EAASyC,EAAYzC,OAEzB,GAAIpC,EAAQ8E,WACU3C,KAAKgB,YAAchB,KAAKkB,aAE1BnC,SAAW/B,EAC3B,MAAMgD,KAAKkB,YAIf,GAAI5E,EACF,MAAMA,EAGR,IAAImG,EAAWD,GAAgB3E,EAAQ4E,UAAY,KAEnD,OAAI3H,EACK2H,EAGFjF,EAAQ,CACbiF,SAAUA,EACVxC,OAAQA,EACRpC,QAASA,EACTQ,OAAOqC,EAAAA,EAAAA,GAAS,CAAC,EAAGrC,EAAO,CACzBuE,IAAKP,KAGX,EAEOxC,CACT,CA7OA,CA6OEtE,EAAAA,YAGEiD,EAAWjD,EAAAA,YAAiB,SAAU8C,EAAOuE,GAC/C,OAAOrH,EAAAA,cAAoB4D,EAAuBI,OAAOC,OAAO,CAC9D6C,aAAcO,GACbvE,GACL,IAWA,OAVAG,EAASkB,YAAc,WAEvBlB,EAASI,QAAU,SAAUP,GAC3BG,EAASqE,KAAKxE,EAChB,EAEAG,EAASqE,KAAO,SAAUxE,GACxB,OAAOQ,EAAWR,EACpB,EAEOG,CACT,CAQA,MAAO,CACLb,SAAUA,EACVmF,KARF,SAAchF,EAAMD,GAClB,OAAOF,EAASG,GAAM4C,EAAAA,EAAAA,GAAS,CAAC,EAAG7C,EAAS,CAC1C8E,UAAU,IAEd,EAMF,CASA,IAAII,EAEJ3F,EAAe,CACbG,wBAVF,SAAiC4E,GAE/B,OAAOA,EAAaa,WAAab,EAAsB,QAAIA,EAAsB,SAAKA,CACxF,EAQE1E,OAAQ,SAAgBJ,GACtB,IAAIoB,EAAYpB,EAAK4C,OACjB5B,EAAQhB,EAAKgB,MACjB,OAAO9C,EAAAA,cAAoBkD,EAAWJ,EACxC,IAEEV,EAAWoF,EAAgBpF,SAC3BmF,EAAOC,EAAgBD,KAIvBG,EAEJ7F,EAAe,CACbM,OAAQ,SAAgBuC,EAAQ5B,GAC1B4B,GAAU5B,EAAMgE,eACgB,oBAAvBhE,EAAMgE,aACfhE,EAAMgE,aAAapC,GAEnB5B,EAAMgE,aAAaa,QAAUjD,EAGnC,EACAxC,OAAQ,SAAgBJ,GACtB,IAAI4C,EAAS5C,EAAK4C,OACd5B,EAAQhB,EAAKgB,MAEjB,OAAIA,EAAM8E,SACD9E,EAAM8E,SAASlD,GAGjB,IACT,IAEEmD,EAAaH,EAAkBtF,SAC/B0F,EAASJ,EAAkBH,KAiF/B,IAAIQ,EAAa3F,EACjB2F,EAAWC,IAAMH,EACJN,EACNS,IAAMF,EAGb,yBC9iBO,MAAMG,EAAoBC,GACtB9F,EAAS8F,EAAiB,CAAEhB,UAAU9H,EAAAA,EAAAA,KAAC+I,EAAAA,EAAW,MCHhDC,EAAmBH,GAAiB/H,SAC/C,uDAAsBuD,MAAM4E,GAAQA,EAAIC,cCA7BC,EAAsBN,GAAiB/H,SAClD,8BAAyBuD,MAAM4E,GAAQA,EAAIG,6GCAtC,MAAMC,EAAcA,KAAO,IAADC,EAAAC,EAC7B,MAAMC,GAAcC,EAAAA,EAAAA,MACpB,OAAc,QAAPH,EAAAE,EAAGE,YAAI,IAAAJ,OAAA,EAAPA,EAASK,QAASC,EAAAA,EAAYC,gBAAwB,QAAPN,EAAAC,EAAGE,YAAI,IAAAH,OAAA,EAAPA,EAASI,QAASC,EAAAA,EAAYE,gBAAgB,6HCKxG,SANuBlJ,EAAAA,gCCuCnBmJ,GAAwBnJ,EAAAA,YAAiB,SAAkB8C,EAAOuE,GACpE,IAAI+B,EAAUtG,EAAMsG,QAChBC,EAAYvG,EAAMuG,UAClBC,EAAmBxG,EAAMyG,UACzBrG,OAAiC,IAArBoG,EAVK,KAU4CA,EAC7DE,EAAe1G,EAAM2G,MACrBA,OAAyB,IAAjBD,GAAkCA,EAC1CE,EAAkB5G,EAAM6G,SACxBA,OAA+B,IAApBD,GAAqCA,EAChDE,GAAQC,EAAAA,EAAAA,GAAyB/G,EAAO,CAAC,UAAW,YAAa,YAAa,QAAS,aAEvFgH,EAAY9J,EAAAA,WAAiB+J,IACjC,OAAoB/J,EAAAA,cAAoBkD,GAAWiC,EAAAA,EAAAA,GAAS,CAC1DkC,IAAKA,EACLgC,WAAWW,EAAAA,EAAAA,SAAKZ,EAAQa,KAAMZ,EAAWS,GAAa,CACpD,KAAQV,EAAQc,KAChB,OAAUd,EAAQe,QAClBL,EAAUM,SAAUX,GAASL,EAAQK,MAAOE,GAAYP,EAAQO,UAClEU,KAxBmB,OAwBbnH,EAAiC,KAAO,OAC7C0G,GACL,IAoCA,UAAeU,EAAAA,GAAAA,IA5FK,SAAgBC,GAClC,MAAO,CAELN,KAAM,CACJO,MAAO,UACPC,QAAS,YACTC,cAAe,SAEfC,QAAS,EACT,gBAAiB,CACfC,gBAAiBL,EAAMM,QAAQC,OAAOrB,OAExC,+BAAgC,CAC9BmB,iBAAiBG,EAAAA,GAAAA,IAAMR,EAAMM,QAAQG,UAAUC,KAAMV,EAAMM,QAAQC,OAAOI,mBAK9EvB,SAAU,CAAC,EAGXF,MAAO,CAAC,EAGRS,KAAM,CAAC,EAGPC,OAAQ,CAAC,EAEb,GA+DkC,CAChC9I,KAAM,eADR,CAEG8H,oECpFI,MAAMgC,GAAgBrJ,IAAyC,IAAxC,MAAEsJ,EAAQ,IAAwBtJ,EAC5D,OACIuJ,EAAAA,EAAAA,MAACC,GAAK,CAAA1D,SAAA,EACFxI,EAAAA,EAAAA,KAACmM,GAAe,CAAA3D,UACZyD,EAAAA,EAAAA,MAAA,MAAAzD,SAAA,EACIxI,EAAAA,EAAAA,KAACoM,GAAU,CAAA5D,UACPxI,EAAAA,EAAAA,KAACqM,GAAAA,EAAgB,CAACC,GAAG,2CAEzBtM,EAAAA,EAAAA,KAACoM,GAAU,CAAA5D,UACPxI,EAAAA,EAAAA,KAACuM,GAAe,OAEpBvM,EAAAA,EAAAA,KAACoM,GAAU,CAAA5D,UACPxI,EAAAA,EAAAA,KAACqM,GAAAA,EAAgB,CAACC,GAAG,0CAIjCtM,EAAAA,EAAAA,KAAA,SAAAwI,SACKwD,EAAMQ,KAAKC,IACRzM,EAAAA,EAAAA,KAAC0M,GAAgB,CAAeD,KAAMA,GAAfA,EAAKH,UAGhC,EAIVC,GAAkBA,KACHI,EAAAA,EAAAA,OAEb3M,EAAAA,EAAAA,KAACqM,GAAAA,EAAgB,CAACC,GAAG,4CAErBtM,EAAAA,EAAAA,KAACqM,GAAAA,EAAgB,CAACC,GAAG,qCAIvBF,IAAaQ,EAAAA,EAAAA,GAAO,KAAPA,CAAa,CAC5BC,WAAYC,EAAAA,EAASC,MAAMC,iBAC3BC,SAAU,GACV7B,MAAO,QACP8B,QAAS,qBACTC,WAAY,SACZC,WAAY,IACZ,gBAAiB,CACbC,MAAO,OAEX,iBAAkB,CACdA,MAAO,OAEX,eAAgB,CACZH,QAAS,MAGXf,IAAkBS,EAAAA,EAAAA,GAAO,QAAPA,CAAgB,CACpCU,UAAW,OACXC,aAAc,mCACdC,UAAW,qCAETtB,IAAQU,EAAAA,EAAAA,GAAO,QAAPA,CAAgB,CAC1Ba,SAAU,MACVC,eAAgB,WAChBC,cAAe,QACfC,WAAY,OACZC,YAAa,OACb,CAAC,sBAADC,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CACjDP,SAAU,UAMLf,GAAmBuB,IAAmC,IAAlC,KAAExB,GAA0BwB,EACzD,MAAMC,GAAUC,EAAAA,GAAAA,KACVC,EAAkC,CACpC/M,SAAUC,GAAU+M,WACpB7M,MAAO,CAAEC,SAAUgL,EAAK6B,kBACxBC,OAAQC,GAAAA,GAAoBC,aAAa,CAAEP,YAAWQ,YAE1D,OACIzC,EAAAA,EAAAA,MAAC0C,GAAW,CAACxE,UAAYzG,IAAe1D,EAAAA,EAAAA,KAAC4O,GAAU,IAAKlL,EAAO0K,GAAIA,IAAO5F,SAAA,EACtExI,EAAAA,EAAAA,KAAC6O,GAAI,CAAArG,UACDyD,EAAAA,EAAAA,MAAC6C,GAAa,CAAAtG,SAAA,EACVxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOC,UAAS,IAChBC,EAAAA,EAAUC,eAAezC,EAAK0C,cAAcnP,EAAAA,EAAAA,KAACqM,GAAAA,EAAgB,CAACC,GAAG,qCAG1EtM,EAAAA,EAAAA,KAAC6O,GAAI,CAAArG,UACDyD,EAAAA,EAAAA,MAACmD,GAAkB,CAAA5G,SAAA,EACfxI,EAAAA,EAAAA,KAACqP,GAAS,CAAA7G,SAAEiE,EAAK6C,cACjBtP,EAAAA,EAAAA,KAACuP,GAAS,CAAA/G,UACNxI,EAAAA,EAAAA,KAACqM,GAAAA,EAAgB,CAACC,GAAG,0CAIjCtM,EAAAA,EAAAA,KAAC6O,GAAI,CAAArG,UACDxI,EAAAA,EAAAA,KAACwP,GAAc,CAAAhH,UACXxI,EAAAA,EAAAA,KAACyP,GAAAA,GAAU,CAACC,MAAOjD,EAAKkD,aAAc3E,QAAQ,iBAGtDhL,EAAAA,EAAAA,KAAC6O,GAAI,CAAArG,UACDxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOa,mBAAkB,CAACxP,MAAO,CAAEiN,MAAO,EAAGwC,OAAQ,UAEhD,EAGhBjB,IAAahC,EAAAA,EAAAA,GAAOkD,GAAAA,KAAPlD,CAAa,CAC5BmD,eAAgB,kBAChB1P,WAAY,QACZ+K,MAAO,QACPyB,WAAYC,EAAAA,EAASC,MAAMiD,yBAC3B/C,SAAU,GACVgD,WAAY,SACZC,OAAQ,sBACRC,YAAa,QACb,iBAAkB,CACd,UAAW,CACPD,OAAQ,wBAKdpB,IAAgBlC,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQ+E,IAAK,GAAIH,WAAY,WACtET,IAAiB5C,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEC,WAAYC,EAAAA,EAASC,MAAMiD,yBAA0B/C,SAAU,KAChGmC,IAAqBxC,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQ+E,IAAK,EAAGH,WAAY,WAC1EZ,IAAYzC,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAAEK,SAAU,KACvCsC,IAAY3C,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAC7BC,WAAYC,EAAAA,EAASC,MAAMsD,qBAC3BpD,SAAU,GACVG,WAAY,MAGVyB,IAAOjC,EAAAA,EAAAA,GAAO,KAAPA,CAAa,CACtBiD,OAAQ,OACRS,YAAa,GACbnD,WAAY,SACZ,gBAAiB,CACbA,WAAY,UAEhB,eAAgB,CACZG,UAAW,QACXgD,YAAa,GACbC,aAAc,GACd,CAAC,sBAADzC,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CACjDsC,YAAa,GACbC,aAAc,OCrJbC,GAAaA,KACtB,MAAMtC,GAAUC,EAAAA,GAAAA,KACVC,EAAkC,CACpC/M,SAAUC,GAAUmP,YACpBlC,OAAQC,GAAAA,GAAoBC,aAAa,CAAEP,YAAWQ,YAE1D,OACI1O,EAAAA,EAAAA,KAAC8P,GAAAA,KAAI,CAAC1B,GAAIA,EAAG5F,UACTxI,EAAAA,EAAAA,KAAC0Q,GAAO,CAAAlI,UACJxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAO4B,kBAAiB,CAACvQ,MAAO,CAAEiN,MAAO,EAAGwC,OAAQ,SAEtD,EAGTa,IAAU9D,EAAAA,EAAAA,GAAOgE,EAAAA,EAAPhE,CAAmB,CAAES,MAAO,GAAIwC,OAAQ,GAAIgB,WAAY,+ECZjE,MAAMC,GAAsBpO,IAAwD,IAAvD,UAAEqO,EAAS,SAAEC,GAAoCtO,EACjF,MAAMwL,GAAUC,EAAAA,GAAAA,KACV8C,GAASC,EAAAA,GAAAA,KAef,OACIjF,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAACoR,GAAAA,GAAY,CACTC,QAASJ,EAAOK,KAChBN,SAAUA,EACVhH,QAAS,CAAC,EACVuH,OAAQ,CACJ1G,KAAM,CAAEgF,OAAQ,GAAIxC,MAAO,cAAemE,MAAO,SACjDC,KAAM,CAAEpE,MAAO,GAAIwC,OAAQ,KAE/B6B,OAAO1R,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,mCAEtB2E,EAAOW,UACJ5R,EAAAA,EAAAA,KAAC6R,GAAAA,EAAiB,CACdC,MAAI,EACJJ,MAAOK,EAAAA,GAAKC,IAAI,oCAChBC,SAAUF,EAAAA,GAAKC,IAAI,qCACnBE,KAAMH,EAAAA,GAAKC,IAAI,mCACfG,WA/BMrR,UAClB,IACIsR,GAAc,SACRC,GAAAA,EAAYC,cAAcvB,GAChCqB,GAAc,GACdnB,EAAOsB,OACPC,GAAAA,EAAkBC,eAAejE,GAAAA,GAAoBC,aAAa,CAAEP,YACxE,CAAE,MAAOvM,GACLyQ,GAAc,IACdM,EAAAA,GAAAA,IAAY/Q,EAChB,GAsBYgR,UAAW1B,EAAOsB,KAClBK,QAAS3B,EAAOsB,KAChBM,aAAW,MAGpB,8BC7CJ,MAAMC,GAAsBpQ,IAAwD,IAAvD,UAAEqO,EAAS,SAAEC,GAAoCtO,EACjF,MAAMqQ,EAAW1J,KACV2J,EAAWC,GAAgBrS,EAAAA,UAAe,GAYjD,OACIZ,EAAAA,EAAAA,KAACkT,GAAAA,EAAY,CACTtB,QAASmB,EACT1B,QAbwBvQ,UAC5B,IACImS,GAAa,GACb,MAAMvJ,QAAa2I,GAAAA,EAAYc,cAAcpC,GAC7CqC,GAAAA,EAAYC,WAAW3J,EAAK,oBAADoE,OAAsBiD,GAAauC,GAAAA,EAAeC,IACjF,CAAC,QACGN,GAAa,EACjB,GAOIxB,MAAMzR,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOyE,WAAU,IACxB9B,MAAOK,EAAAA,GAAKC,IAAI,yBAChBhH,QAASyI,GAAAA,EAAcC,aACvBC,OAAQX,EACRhC,SAAUA,EACVO,OAAQ,CACJ1G,KAAM,CAAEgD,YAAa,GAAIqC,OAAQ,qBACjC0D,MAAO,CAAE3G,SAAU,MAEzB,ECxBG4G,GAAenR,IAA+C,IAADoR,EAAA,IAA7C,QAAEC,EAAO,SAAE/C,GAA6BtO,EACjE,MAAMwL,GAAUC,EAAAA,GAAAA,MAEV,iBAAEG,EAAgB,eAAE0F,EAAiB,IAAc,OAAPD,QAAO,IAAPA,EAAAA,EAAW,CAAC,EAExDE,EAAiB3F,IAAqC,QAArBwF,EAAIE,EAAe,UAAE,IAAAF,OAAA,EAAjBA,EAAmBxF,kBAExDF,EAAkC,CACpC/M,SAAUC,GAAUC,cACpBC,MAAO,CAAEC,SAAUwS,GACnB1F,OAAQC,GAAAA,GAAoBC,aAAa,CAAEP,YAAWQ,YAE1D,OACI1O,EAAAA,EAAAA,KAAC8P,GAAAA,KAAI,CAAC1B,GAAIA,EAAG5F,UACTxI,EAAAA,EAAAA,KAACkT,GAAAA,EAAY,CACTxB,OAAO1R,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,0BACnBtB,QAASyI,GAAAA,EAAcS,KACvB3C,OAAQ,CAAE1G,KAAM,CAAEgF,OAAQ,GAAIxC,MAAO,KAAOuG,MAAO,CAAExG,WAAY,MACjE4D,SAAUA,IAAa+C,KAExB,0CCTR,IAAKI,GAAc,SAAdA,GAAc,OAAdA,EAAc,oBAAdA,EAAc,0BAAdA,EAAc,wBAAdA,CAAc,MAMnB,MAAMC,GAAkCA,KAC3C,MAAM5K,GAAKC,EAAAA,EAAAA,OACL,UAAEsH,EAAS,SAAEtP,IAAa4S,EAAAA,EAAAA,MAC1B,MAAE7S,EAAK,OAAE8S,IAAWC,EAAAA,GAAAA,GAAsC,CAAEpU,SAAS,IAI3ES,EAAAA,WAAgB,KACR4T,QAAQhL,EAAGE,OACX+K,GACJ,GAED,CAAC1D,EAAWtP,EAAU+H,EAAGE,OAE5B,MAAM+K,EAAU3T,UACZ,IAAK,IAAD4T,EAAAC,EACAL,EAAO,CAAEnU,SAAS,IAClB,MACM4T,SADyC1B,GAAAA,EAAYuC,WAAW7D,IACtCrH,KAChC4K,EAAO,CACHP,UACA5T,SAAS,EACT0U,0BAA2BC,GAAAA,EAAcD,0BAA0B,CAC/DrL,KACAuL,iBAA0C,QAA1BL,EAAEX,EAAQiB,wBAAgB,IAAAN,OAAA,EAAxBA,EAA0BO,MAAM3I,GAClD4I,oBAAgD,QAA7BP,EAAEZ,EAAQoB,2BAAmB,IAAAR,OAAA,EAA3BA,EAA6BS,KAAK9I,KAE3D+I,WAAYtB,EAAQuB,aAE5B,CAAE,MAAO3T,GACL2S,EAAO,CAAEnU,SAAS,KAClBuS,EAAAA,GAAAA,IAAY/Q,EAChB,GAGEuM,GAAUzN,EAAAA,EAAAA,KAA6ByN,QAGvCqH,EAAuBzU,MACzB6I,EAAoBjH,KAElB,IAAD8S,EAAA,IADD,MAAEC,EAAK,cAAErD,EAAa,YAAEsD,GAAwChT,EAEhE,MAAM,SAAEiT,EAAW,GAAE,YAAEC,EAAc,IAAoB,QAAhBJ,EAAGhU,EAAMuS,eAAO,IAAAyB,EAAAA,EAAI,CAAC,EAC9D,IACIpD,GAAc,SACRC,GAAAA,EAAYwD,sBAAsB9E,EAAW,CAC/C4E,SAAUhM,IAASwK,GAAe2B,SAAWL,EAAQE,EACrDC,YAAajM,IAASwK,GAAe4B,YAAcN,EAAQG,EAC3DN,YAAa3L,IAASwK,GAAe6B,WAAaP,EAAQjU,EAAM6T,aAEpEjD,GAAc,GACdsD,GAAY,KACJ/L,IAASwK,GAAe6B,WAhBbxD,GAAAA,EAAkBC,eAAejE,GAAAA,GAAoBC,aAAa,CAAEP,aAmB/EuG,GACJ,GAER,CAAE,MAAO9S,GACLyQ,GAAc,IACdM,EAAAA,GAAAA,IAAY/Q,EAChB,GA8BJ,MAAO,CAAEH,QAAOyU,OAAQ,CAAE3B,SAAQ4B,eA3BXA,KAAa,IAADC,EAC/BC,GAAAA,EAAcC,oBAAoB,CAC9B3E,MAAOK,EAAAA,GAAKC,IAAI,2BAChB4D,YAAa7D,EAAAA,GAAKC,IAAI,gDACtBsE,aAA2B,QAAfH,EAAE3U,EAAMuS,eAAO,IAAAoC,OAAA,EAAbA,EAAeR,SAC7BY,WAAaC,GAAmBjB,EAAqBpB,GAAe2B,SAAUU,IAChF,EAqB4CC,kBAlBxBA,KAAa,IAADC,EAClCN,GAAAA,EAAcC,oBAAoB,CAC9B3E,MAAOK,EAAAA,GAAKC,IAAI,8BAChB4D,YAAa7D,EAAAA,GAAKC,IAAI,mDACtBsE,aAA2B,QAAfI,EAAElV,EAAMuS,eAAO,IAAA2C,OAAA,EAAbA,EAAed,YAC7BW,WAAaC,GAAmBjB,EAAqBpB,GAAe4B,YAAaS,IACnF,EAY+DG,iBAT5CA,KACrBP,GAAAA,EAAcC,oBAAoB,CAC9B3E,MAAOK,EAAAA,GAAKC,IAAI,6BAChB4D,YAAa7D,EAAAA,GAAK6E,OAAO,kDACzBN,aAAc9U,EAAM6T,WACpBkB,WAAaC,GAAmBjB,EAAqBpB,GAAe6B,WAAYQ,IAClF,GAGmF,EChGhFK,GAAqBA,KAE1B7W,EAAAA,EAAAA,KAAC8W,EAAAA,EAAU,CAAAtO,UACPxI,EAAAA,EAAAA,KAAC+W,GAAc,MAKrBA,GAAiBA,KACnB,MAAM,MAAEvV,EAAK,OAAEyU,GAAW7B,KAC1B,OACInI,EAAAA,EAAAA,MAAC+K,GAAS,CAAAxO,SAAA,EACNyD,EAAAA,EAAAA,MAACgL,GAAM,CAAAzO,SAAA,EACHyD,EAAAA,EAAAA,MAACiL,GAAoB,CAAA1O,SAAA,EACjBxI,EAAAA,EAAAA,KAACwQ,GAAU,KACXxQ,EAAAA,EAAAA,KAACmX,GAAW,CAAA3O,UACRxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,wCAGpBtM,EAAAA,EAAAA,KAAC6T,GAAY,CAACE,QAASvS,EAAMuS,QAAS/C,SAAUxP,EAAMrB,aAEzDqB,EAAMrB,SACHH,EAAAA,EAAAA,KAACoX,EAAAA,EAAY,CAACxF,SAAS,EAAM1R,WAAS,EAACqR,OAAQ,CAAE8F,OAAQC,OAEzDtX,EAAAA,EAAAA,KAAC0Q,GAAO,CAAClP,MAAOA,KAAWyU,MAEvB,EAUdvF,GAAUhO,IAAgF,IAAD8S,EAAAW,EAAAO,EAAAa,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAA9E,MAAExW,EAAK,eAAE0U,EAAc,kBAAEO,EAAiB,iBAAEE,GAA6BjU,EACtF,OACIuJ,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIyD,EAAAA,EAAAA,MAACgM,GAAgB,CAAAzP,SAAA,EACbyD,EAAAA,EAAAA,MAACiM,GAAU,CAAA1P,SAAA,EACPyD,EAAAA,EAAAA,MAACkM,GAAgB,CAAA3P,SAAA,EACbxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,yBACZtM,EAAAA,EAAAA,KAACoY,GAAgB,CAAA5P,UACbxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CACJrF,GAAG,2BACH+L,OAAQ,CACJC,MACItY,EAAAA,EAAAA,KAACuY,EAAAA,GAAe,CACZtR,OAAoB,QAAbuO,EAAAhU,EAAMuS,eAAO,IAAAyB,OAAA,EAAbA,EAAegD,gBAAiB,EACvCC,sBAAuB,aAO/CxM,EAAAA,EAAAA,MAACkM,GAAgB,CAAA3P,SAAA,EACbxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,iCACZtM,EAAAA,EAAAA,KAACoY,GAAgB,CAAA5P,SAAe,QAAf2N,EAAE3U,EAAMuS,eAAO,IAAAoC,OAAA,EAAbA,EAAeuC,oBAEtCzM,EAAAA,EAAAA,MAACkM,GAAgB,CAAA3P,SAAA,EACbxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,8BACZtM,EAAAA,EAAAA,KAACoY,GAAgB,CAAA5P,SAAe,QAAfkO,EAAElV,EAAMuS,eAAO,IAAA2C,OAAA,EAAbA,EAAepH,iBAEtCrD,EAAAA,EAAAA,MAACkM,GAAgB,CAAA3P,SAAA,EACbxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,6BACZtM,EAAAA,EAAAA,KAACoY,GAAgB,CAAA5P,UACbxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CACJrF,GAAG,yBACH+L,OAAQ,CACJM,KAAM1J,EAAAA,EAAUC,eACC,QADaqI,EAC1B/V,EAAMuS,eAAO,IAAAwD,OAAA,EAAbA,EAAeqB,iBACf5Y,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,wCAMhCL,EAAAA,EAAAA,MAACkM,GAAgB,CAAA3P,SAAA,EACbxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,8BACZtM,EAAAA,EAAAA,KAACoY,GAAgB,CAAA5P,UACbxI,EAAAA,EAAAA,KAAC6Y,GAAS,CAAC9E,QAASvS,EAAMuS,gBAGlC/T,EAAAA,EAAAA,KAAC8Y,GAAa,CACVzD,WAAY7T,EAAM6T,WAClBR,0BAA2BrT,EAAMqT,0BACjC8B,iBAAkBA,QAG1B1K,EAAAA,EAAAA,MAAC8M,GAAW,CAAAvQ,SAAA,EACRyD,EAAAA,EAAAA,MAAC+M,GAAc,CAAAxQ,SAAA,EACXyD,EAAAA,EAAAA,MAACgN,GAAmB,CAAAzQ,SAAA,EAChBxI,EAAAA,EAAAA,KAACkZ,GAAK,CAAA1Q,UACFxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,8BAEf9K,EAAMqT,2BACH7U,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAU,CAACS,QAAS6E,EAAe1N,UAChCxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOoK,YAAW,WAEvBjS,MAERlH,EAAAA,EAAAA,KAACoZ,GAAU,CAAChZ,MAAOiZ,GAAiBhI,QAAS6E,EAAe1N,SAC1C,QAD0CgP,EACvDhW,EAAMuS,eAAO,IAAAyD,OAAA,EAAbA,EAAe7B,eAGxB1J,EAAAA,EAAAA,MAAC+M,GAAc,CAAAxQ,SAAA,EACXyD,EAAAA,EAAAA,MAACgN,GAAmB,CAAAzQ,SAAA,EAChBxI,EAAAA,EAAAA,KAACkZ,GAAK,CAAA1Q,UACFxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,iCAEf9K,EAAMqT,2BACH7U,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAU,CAACS,QAASoF,EAAkBjO,UACnCxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOoK,YAAW,WAEvBjS,MAERlH,EAAAA,EAAAA,KAACoZ,GAAU,CACPhZ,MAAO,IACAkZ,GACHlO,MAAsB,QAAdqM,EAACjW,EAAMuS,eAAO,IAAA0D,GAAbA,EAAe7B,YAAc,QAAU,WAEpDvE,QAASoF,EAAkBjO,SACA,QADAkP,EACb,QADaC,EAC1BnW,EAAMuS,eAAO,IAAA4D,OAAA,EAAbA,EAAe/B,mBAAW,IAAA8B,EAAAA,EAAI3F,EAAAA,GAAKC,IAAI,qDAKvDwC,QAAqB,QAAdoD,EAACpW,EAAMuS,eAAO,IAAA6D,GAAgB,QAAhBC,EAAbD,EAAe5D,sBAAc,IAAA6D,OAAhB,EAAbA,EAA+B0B,UACpCtN,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAACwZ,GAAY,CAAAhR,UACTxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,kCAEhBtM,EAAAA,EAAAA,KAAC+L,GAAa,CAACC,MAAoB,QAAf8L,EAAEtW,EAAMuS,eAAO,IAAA+D,OAAA,EAAbA,EAAe9D,qBAG7ChU,EAAAA,EAAAA,KAACyZ,GAAS,KACVxN,EAAAA,EAAAA,MAACyN,GAAqB,CAAAlR,SAAA,EAClBxI,EAAAA,EAAAA,KAAC8S,GAAmB,CAAC/B,UAAwB,QAAfgH,EAAEvW,EAAMuS,eAAO,IAAAgE,OAAA,EAAbA,EAAezL,GAAK0E,SAAUxP,EAAMmY,QAAUnY,EAAMrB,WACpFH,EAAAA,EAAAA,KAAC8Q,GAAmB,CAACC,UAAwB,QAAfiH,EAAExW,EAAMuS,eAAO,IAAAiE,OAAA,EAAbA,EAAe1L,GAAK0E,SAAUxP,EAAMmY,QAAUnY,EAAMrB,eAEzF,EAILuZ,IAAwB9M,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACxCvB,QAAS,OACTuO,eAAgB,WAChBvM,MAAO,OACPwM,UAAW,GACX,CAAC,sBAAD/L,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CAAE4L,eAAgB,YAErEJ,IAAe5M,EAAAA,EAAAA,GAAOkN,EAAAA,GAAPlN,CAAsB,CACvCK,SAAU,GACV7B,MAAO,UACP2O,aAAc,GACdzM,UAAW,SACXiD,aAAc,GACdD,YAAa,KAEXgH,GAA6B,CAC/B0C,SAAU,WACVpM,WAAY,OACZC,YAAa,OACboM,KAAM,EACNC,MAAO,EACPC,IAAK,IAEHjC,IAAatL,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAC7BS,MAAO,MACPwD,WAAY,GACZT,IAAK,GACL,CAAC,sBAADtC,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CACjDoC,IAAK,GACL/C,MAAO,OACP0M,aAAc,MAGhBhB,IAAcnM,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAC9ByN,SAAU,IACVC,KAAM,EACN,CAAC,sBAADxM,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CAAEoC,IAAK,MAE1D4G,IAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BxB,MAAO,UACPI,gBAAiB,OACjB+O,cAAe,QACfjK,YAAa,OACbC,aAAc,OACdV,OAAQ,OACRxC,MAAO,OACPmN,UAAW,OAEX,CAAC,sBAAD1M,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CACjDuM,cAAe,OACfjK,YAAa,EACbC,aAAc,KAIhB0G,IAASrK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACzBvB,QAAS,OACT4E,WAAY,SACZ4J,UAAW,GACXE,aAAc,GACd,CAAC,sBAADjM,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CAAEyM,cAAe,YAGpEvD,IAAuBtK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACvCS,MAAO,OACPhC,QAAS,OACT4E,WAAY,SACZqK,KAAM,EACN,CAAC,sBAADxM,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CAAE+L,aAAc,MAGnE5C,IAAcvK,EAAAA,EAAAA,GAAOkN,EAAAA,GAAPlN,CAAsB,CAAEK,SAAU,GAAI7B,MAAO,UAAWsP,WAAY,OAAQ9M,WAAY,IAEtGqK,IAAmBrL,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACnCK,SAAU,GACV5B,QAAS,OACToP,cAAe,MACfrK,IAAK,GACLE,YAAa,GACbyJ,aAAc,GACd,CAAC,sBAADjM,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CACjDyM,cAAe,SACflK,aAAc,GACdD,YAAa,GACbF,IAAK,KAIP+H,IAAmBvL,EAAAA,EAAAA,GAAO+N,EAAAA,GAAP/N,CAA4B,CACjDvB,QAAS,OACT4B,SAAU,GACV7B,MAAO,UACPsP,WAAY,OACZvN,WAAY,WAEViL,IAAmBxL,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CACpCgB,WAAY,EACZf,WAAYC,EAAAA,EAASC,MAAMsD,qBAC3BjD,WAAY,IACZH,SAAU,GACV7B,MAAO,UACP+B,WAAY,YAGV6L,IAAiBpM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACjCmN,aAAc,GACd,CAAC,sBAADjM,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CAAE+L,aAAc,KAEnEd,IAAsBrM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQ4E,WAAY,WACnEmJ,IAAaxM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC7BvM,WAAY,OACZ6P,OAAQ,oBACRhD,QAAS,sBACT2C,OAAQ,GACRwK,SAAU,IACVjP,MAAO,QACP6B,SAAU,GACVJ,WAAYC,EAAAA,EAASC,MAAMsD,qBAC3B,CAAC,sBAADvC,OAAuBC,EAAAA,GAAaC,UAAS,QAAQ,CACjDX,MAAO,OACPI,SAAU,qBAGZmN,GAA4B,CAAEC,OAAQ,WACtCxB,GAAiC,IAChCuB,GACHzN,WAAY,SACZ2N,SAAU,SACVC,aAAc,WACdtN,SAAU,KAER6L,GAAkC,IACjCsB,GACH/K,OAAQ,IACRpC,SAAU,IACVJ,MAAO,OACPhN,WAAY,UACZ6P,OAAQ,QACRsK,UAAW,QAGTtB,IAAQtM,EAAAA,EAAAA,GAAO+N,EAAAA,GAAP/N,CAA4B,CAAEK,SAAU,KAEhDwM,IAAY7M,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BvM,WAAY,yBACZgN,MAAO,OACPwC,OAAQ,MACRgK,UAAW,OACXE,aAAc,SAMZlB,GAAY5K,IAAkC,IAAjC,QAAE8F,GAAyB9F,EACtC+M,EAAiB,GACrB,MAAM,gBAAEC,EAAe,oBAAE9F,EAAmB,iBAAEH,GAAqBjB,GAAW,CAAC,EACJ,IAADmH,EAAAC,EAAtEF,IAAoBG,EAAAA,EAAiBC,UAAYlG,EACjD6F,EAAiBjJ,EAAAA,GAAK6E,OAAO,uBAAwB,CACjD0E,UAA8C,QAArCJ,EAAE/F,EAAoBC,KAAKmG,kBAAU,IAAAL,EAAAA,EAAI,GAClDM,SAA4C,QAApCL,EAAEhG,EAAoBC,KAAKqG,iBAAS,IAAAN,EAAAA,EAAI,KAE7CF,IAAoBG,EAAAA,EAAiBM,OAAS1G,IACrDgG,EAAiBhG,EAAiBC,MAAM3I,IAE5C,OAAOtM,EAAAA,EAAAA,KAAAmR,EAAAA,SAAA,CAAA3I,SAAGwS,GAAkB,EAS1BlC,GAAgB6C,IAA2F,IAA1F,WAAEtG,EAAa,GAAE,0BAAER,EAAyB,iBAAE8B,GAAsCgF,EACvG,MAAM5I,EAAW1J,IACXuS,GAAYC,EAAAA,EAAAA,KAClB,OAAS9I,GAAY6I,GACjB3P,EAAAA,EAAAA,MAAC+M,GAAc,CAAC5Y,MAAO,CAAEyZ,WAAY,IAAKrR,SAAA,EACtCyD,EAAAA,EAAAA,MAACgN,GAAmB,CAAAzQ,SAAA,EAChBxI,EAAAA,EAAAA,KAACkZ,GAAK,CAAA1Q,UACFxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,4BAA4B+L,OAAQ,CAAEyD,WAAYzG,OAEjER,IACG7U,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAU,CAACS,QAASsF,EAAiBnO,UAClCxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOoK,YAAW,UAI/BnZ,EAAAA,EAAAA,KAACoZ,GAAU,CAAChZ,MAAOiZ,GAAiBhI,QAASsF,EAAiBnO,SACzD6M,OAbqB,IAgBjC,SCpWE,MAAM/T,IAmBZya,GAnBYza,GAAAA,GAEG0a,YAAc,aAFjB1a,GAGG+M,WAAa,cAHhB/M,GAMGmP,YAAc,WANjBnP,GAOG2a,gBAAkB,sBAPrB3a,GAQG4a,oBAAuB5P,GAAU,YAAAwB,OAAiBxB,GARrDhL,GAUGC,cAAgBD,GAAU+M,WAV7B/M,GAYG6a,UAAY,IAAmB,CAC3C,CAAErZ,OAAQsZ,EAAAA,GAAO1Y,MAAO,CAAE2Y,KAAM/a,GAAU0a,YAAa7R,UAAWtK,IAClE,CAAEiD,OAAQsZ,EAAAA,GAAO1Y,MAAO,CAAE2Y,KAAM/a,GAAU+M,WAAYlE,UAAWnB,IAEjE,CAAElG,OAAQsZ,EAAAA,GAAO1Y,MAAO,CAAE2Y,KAAM/a,GAAUmP,YAAatG,UAAWhB,IAClE,CAAErG,OAAQsZ,EAAAA,GAAO1Y,MAAO,CAAE2Y,KAAM/a,GAAU2a,gBAAiB9R,UAAW0M,8ICCnE,MAAMyF,EAAwB1b,EAAAA,cAAgD,CACjFY,MAAO,CAAC,EACR+a,SAAUA,KAAA,CAAS,GACnBjI,OAAQA,OACRkI,MAAOA,OACPC,6BAA8BA,KAAM,IAE3BC,EAAoBA,IAAM9b,EAAAA,WAAiB0b,GAC3CK,EAAyBja,IAAgD,IAA/C,SAAE8F,GAAuC9F,EAC5E,MAAM,MAAElB,EAAK,SAAE+a,EAAUjI,OAAQsI,EAAW,WAAEC,IAAetI,EAAAA,EAAAA,GAAkC,CAAC,IAChGuI,EAAAA,EAAAA,IAAa,IAAOC,OAAOC,oBAAsBT,IAgCjD,OACIvc,EAAAA,EAAAA,KAACsc,EAAsBW,SAAQ,CAC3BhW,MAAO,CACHzF,QACA+a,WACAjI,OAnCI+D,IACZ6E,EAAAA,EAAOC,IAAI,+BAAgC9E,GAC3CuE,EAAYvE,GAAQ,IAAO+E,EAAiBb,KAAY,EAkChDE,6BA/ByBA,KACjC,MAAMjb,EAAQ+a,IACd,GAAI/a,EAAMuS,QAAS,CACf,MAAMsJ,EAAM,IAAIC,KACVC,EAAe/b,EAAM+b,aAE3B,GAAI/b,EAAMgc,aAAc,CAMpB,OAFqBH,EAAME,EAHN,GAMzB,CAMI,OAFqBF,EAAME,EAHP,IAO5B,CACA,OAAO,CAAK,EAUJf,MAAOK,GACTrU,SACDA,GAC4B,EAOzC,IAAI4U,EAEG,MAAMK,EAAyBA,KAAkC,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACnE,MAAMC,EAAsBC,EAAAA,EAAWC,gCACjCC,EAAsBF,EAAAA,EAAWG,gCAEvC,MAAO,CACHtN,UAAyB,QAAhB2M,EAAEN,SAAc,IAAAM,GAAS,QAATC,EAAdD,EAAgB3J,eAAO,IAAA4J,OAAT,EAAdA,EAAyBrR,GAGpC+I,WAAY4I,EAAuC,QAA7BL,EAAGM,EAAAA,EAAWI,uBAAe,IAAAV,OAAA,EAA1BA,EAA4BtR,QAAKpF,EAG1DqX,WAAYH,EAAuC,QAA7BP,EAAGK,EAAAA,EAAWM,uBAAe,IAAAX,OAAA,EAA1BA,EAA4BY,YAAYnS,QAAKpF,EACtEwX,QAASN,EAA2B,QAAjBN,EAAGV,SAAc,IAAAU,GAAS,QAATC,EAAdD,EAAgB/J,eAAO,IAAAgK,GAAkB,QAAlBC,EAAvBD,EAAyB/I,wBAAgB,IAAAgJ,OAA3B,EAAdA,EAA2C/I,MAAM3I,QAAKpF,EAC/E,uHCnGMyX,EAAa,WACbC,EAAQ,gBACRC,EAAY,oBACZC,EAAQ,gBACRC,EAAU,kBACVC,EAAQ,gBACRC,EAAW,mBCNtB,SAASC,EAAQC,GAAwT,OAAtOD,EAArD,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBF,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOnZ,UAAY,gBAAkBkZ,CAAK,EAAYD,EAAQC,EAAM,CAE9V,SAASI,EAAQC,EAAQC,GAAkB,IAAIC,EAAO9a,OAAO8a,KAAKF,GAAS,GAAI5a,OAAO+a,sBAAuB,CAAE,IAAIC,EAAUhb,OAAO+a,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOlb,OAAOmb,yBAAyBP,EAAQM,GAAKE,UAAY,KAAIN,EAAKte,KAAK6e,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAIpV,SAASQ,EAAgBf,EAAKgB,EAAKlZ,GAAiK,OAApJkZ,KAAOhB,EAAOva,OAAOwb,eAAejB,EAAKgB,EAAK,CAAElZ,MAAOA,EAAO+Y,YAAY,EAAMK,cAAc,EAAMC,UAAU,IAAkBnB,EAAIgB,GAAOlZ,EAAgBkY,CAAK,CAOjM,SAASoB,EAAgBC,EAAcC,EAAeC,EAAche,GACrEA,EAAKie,MAAjB,IAEIC,EAZN,SAAuBC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUxH,OAAQuH,IAAK,CAAE,IAAIE,EAAyB,MAAhBD,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKvB,EAAQyB,GAAQ,GAAMC,SAAQ,SAAUd,GAAOD,EAAgBW,EAAQV,EAAKa,EAAOb,GAAO,IAAevb,OAAOsc,0BAA6Btc,OAAOuc,iBAAiBN,EAAQjc,OAAOsc,0BAA0BF,IAAmBzB,EAAQyB,GAAQC,SAAQ,SAAUd,GAAOvb,OAAOwb,eAAeS,EAAQV,EAAKvb,OAAOmb,yBAAyBiB,EAAQb,GAAO,GAAM,CAAE,OAAOU,CAAQ,CAYpfO,CAAc,CAAC,EAAGV,GAmBjC,OAhBIF,GAA0C,WAA1BtB,EAAQsB,IAC1B5b,OAAO8a,KAAKc,GAAcS,SAAQ,SAAUd,GAE9B,aAARA,GAEAM,EAAcN,KAASO,EAAaP,KAMxCS,EAAST,GAAOK,EAAaL,GAC/B,IAIKS,CACT,CClCe,SAASS,EAAiBC,GAEvC,IAMIC,EANAC,EAAYF,EAAOE,WAAa,KAChCC,EAAYH,EAAOG,WAAa,KAChCC,EAAaJ,EAAOI,YAAc,GAClCC,EAAWL,EAAOK,UAAY,EAC9BC,EAAa,GAAG9T,YAA4B5G,IAArBoa,EAAOO,UAA0BP,EAAOO,UAAYlD,GAAY7Q,OAAOwT,EAAOnB,KACrG2B,EAAUR,EAAOQ,QAInBP,GADuB,IAArBD,EAAOC,UACG,SAAmBQ,GAC7B,OAAOA,CACT,EACqC,oBAArBT,EAAOC,UACXD,EAAOC,UAEPS,EAGd,IAAIC,EAAmBX,EAAOW,kBAAoB,KAE9CC,EAAY,CAAC,EACbC,EAAc,CAAC,EACfC,EAAgB,GAChBC,EAAe,KACfC,EAAe,KA4BnB,SAASC,IACP,GAA6B,IAAzBH,EAAc7I,OAGhB,OAFI8I,GAAcG,cAAcH,QAChCA,EAAe,MAIjB,IAAIlC,EAAMiC,EAAcK,QACpBC,EAAWhB,EAAWiB,QAAO,SAAUC,EAAUC,GACnD,OAAOA,EAAYC,GAAGF,EAAUzC,EAAK+B,EACvC,GAAGA,EAAU/B,IAEb,QAAiBjZ,IAAbwb,EACF,IACEP,EAAYhC,GAAOoB,EAAUmB,EAC/B,CAAE,MAAOK,GACPze,QAAQ3C,MAAM,0DAA2DohB,EAC3E,aAGOZ,EAAYhC,GAGQ,IAAzBiC,EAAc7I,SAOlB3U,OAAO8a,KAAKyC,GAAalB,SAAQ,SAAUd,QAClBjZ,IAAnBgb,EAAU/B,WACLgC,EAAYhC,EAEvB,IACAmC,EAAeR,EAAQkB,QAAQpB,EAAYL,EAAUY,IAAcc,MAAMC,GAT3E,CAYA,SAASC,EAAuBhD,GAC9B,QAAIsB,IAAyC,IAA5BA,EAAU2B,QAAQjD,IAAuB,aAARA,MAC9CqB,IAAyC,IAA5BA,EAAU4B,QAAQjD,GAErC,CAEA,SAAS+C,EAAYH,GAEfd,GAAkBA,EAAiBc,EAKzC,CAWA,MAAO,CACLzO,OAzFW,SAAgB9S,GAE3BoD,OAAO8a,KAAKle,GAAOyf,SAAQ,SAAUd,GAC9BgD,EAAuBhD,IAExB+B,EAAU/B,KAAS3e,EAAM2e,KAEO,IAAhCiC,EAAcgB,QAAQjD,IAE1BiC,EAAchhB,KAAK+e,EACrB,IAGAvb,OAAO8a,KAAKwC,GAAWjB,SAAQ,SAAUd,QACpBjZ,IAAf1F,EAAM2e,IAAsBgD,EAAuBhD,KAAwC,IAAhCiC,EAAcgB,QAAQjD,SAAkCjZ,IAAnBgb,EAAU/B,IAC5GiC,EAAchhB,KAAK+e,EAEvB,IAEqB,OAAjBkC,IACFA,EAAegB,YAAYd,EAAgBZ,IAG7CO,EAAY1gB,CACd,EAkEE8hB,MAXU,WACV,KAAgC,IAAzBlB,EAAc7I,QACnBgJ,IAGF,OAAOD,GAAgBiB,QAAQlgB,SACjC,EAOF,CAEA,SAAS2e,EAAiBtY,GACxB,OAAO8Z,KAAKC,UAAU/Z,EACxB,CC7He,SAASga,EAAepC,GACrC,IAIIqC,EAJAjC,EAAaJ,EAAOI,YAAc,GAClCE,EAAa,GAAG9T,YAA4B5G,IAArBoa,EAAOO,UAA0BP,EAAOO,UAAYlD,GAAY7Q,OAAOwT,EAAOnB,KACrG2B,EAAUR,EAAOQ,QACTR,EAAOX,MAanB,OATEgD,GADyB,IAAvBrC,EAAOqC,YACK,SAAqB5B,GACjC,OAAOA,CACT,EACuC,oBAAvBT,EAAOqC,YACTrC,EAAOqC,YAEPC,EAGT9B,EAAQ+B,QAAQjC,GAAYvd,MAAK,SAAUyf,GAChD,GAAKA,EACH,IACE,IAAItiB,EAAQ,CAAC,EACTuiB,EAAWJ,EAAYG,GAM3B,OALAlf,OAAO8a,KAAKqE,GAAU9C,SAAQ,SAAUd,GACtC3e,EAAM2e,GAAOuB,EAAWsC,aAAY,SAAUpB,EAAUC,GACtD,OAAOA,EAAYoB,IAAIrB,EAAUzC,EAAK4D,EACxC,GAAGJ,EAAYI,EAAS5D,IAC1B,IACO3e,CACT,CAAE,MAAOuhB,GAEP,MAAMA,CACR,CAEJ,GACF,CAEA,SAASa,EAAmBM,GAC1B,OAAOV,KAAKW,MAAMD,EACpB,CChCA,SAASE,EAAkBrB,GACrBA,CAGN,CCXA,SAASxD,EAAQC,EAAQC,GAAkB,IAAIC,EAAO9a,OAAO8a,KAAKF,GAAS,GAAI5a,OAAO+a,sBAAuB,CAAE,IAAIC,EAAUhb,OAAO+a,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOlb,OAAOmb,yBAAyBP,EAAQM,GAAKE,UAAY,KAAIN,EAAKte,KAAK6e,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAAS0B,EAAcP,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUxH,OAAQuH,IAAK,CAAE,IAAIE,EAAyB,MAAhBD,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKvB,EAAQyB,GAAQ,GAAMC,SAAQ,SAAUd,GAAOD,EAAgBW,EAAQV,EAAKa,EAAOb,GAAO,IAAevb,OAAOsc,0BAA6Btc,OAAOuc,iBAAiBN,EAAQjc,OAAOsc,0BAA0BF,IAAmBzB,EAAQyB,GAAQC,SAAQ,SAAUd,GAAOvb,OAAOwb,eAAeS,EAAQV,EAAKvb,OAAOmb,yBAAyBiB,EAAQb,GAAO,GAAM,CAAE,OAAOU,CAAQ,CAErgB,SAASX,EAAgBf,EAAKgB,EAAKlZ,GAAiK,OAApJkZ,KAAOhB,EAAOva,OAAOwb,eAAejB,EAAKgB,EAAK,CAAElZ,MAAOA,EAAO+Y,YAAY,EAAMK,cAAc,EAAMC,UAAU,IAAkBnB,EAAIgB,GAAOlZ,EAAgBkY,CAAK,CAEhN,SAAS1U,EAAyBuW,EAAQqD,GAAY,GAAc,MAAVrD,EAAgB,MAAO,CAAC,EAAG,IAAkEb,EAAKW,EAAnED,EAEzF,SAAuCG,EAAQqD,GAAY,GAAc,MAAVrD,EAAgB,MAAO,CAAC,EAAG,IAA2Db,EAAKW,EAA5DD,EAAS,CAAC,EAAOyD,EAAa1f,OAAO8a,KAAKsB,GAAqB,IAAKF,EAAI,EAAGA,EAAIwD,EAAW/K,OAAQuH,IAAOX,EAAMmE,EAAWxD,GAAQuD,EAASjB,QAAQjD,IAAQ,IAAaU,EAAOV,GAAOa,EAAOb,IAAQ,OAAOU,CAAQ,CAFhNlZ,CAA8BqZ,EAAQqD,GAAuB,GAAIzf,OAAO+a,sBAAuB,CAAE,IAAI4E,EAAmB3f,OAAO+a,sBAAsBqB,GAAS,IAAKF,EAAI,EAAGA,EAAIyD,EAAiBhL,OAAQuH,IAAOX,EAAMoE,EAAiBzD,GAAQuD,EAASjB,QAAQjD,IAAQ,GAAkBvb,OAAOqB,UAAUue,qBAAqBpf,KAAK4b,EAAQb,KAAgBU,EAAOV,GAAOa,EAAOb,GAAQ,CAAE,OAAOU,CAAQ,CAgB5d,SAAS4D,EAAenD,EAAQoD,GAO7C,IAAIxW,OAA6BhH,IAAnBoa,EAAOpT,QAAwBoT,EAAOpT,SLtBzB,EKwBvByW,GADQrD,EAAOX,WAC8BzZ,IAA3Boa,EAAOqD,gBAAgCpE,EAAkBe,EAAOqD,iBAClFjB,EAAiBpC,EAAOoC,gBAAkBkB,EAC1CC,OAA6B3d,IAAnBoa,EAAOuD,QAAwBvD,EAAOuD,QAlBhC,IAmBhBC,EAAc,KACdC,GAAS,EACTC,GAAU,EAEVC,EAAoB,SAA2BzjB,GAGjD,OADAA,EAAM0jB,SAASC,YAAcL,IAAgBE,GAAWF,EAAYxQ,OAAO9S,GACpEA,CACT,EAEA,OAAO,SAAUA,EAAOkK,GACtB,IAAIhJ,EAAOlB,GAAS,CAAC,EACjB0jB,EAAWxiB,EAAKwiB,SAIhBE,EAHO3a,EAAyB/H,EAAM,CAAC,aAK3C,GAAIgJ,EAAO/B,OAASoV,EAAS,CAC3B,IAAIsG,GAAU,EAEVC,EAAa,SAAoBC,EAASxC,GAIvCsC,IACH3Z,EAAO8Z,UAAUlE,EAAOnB,IAAKoF,EAASxC,GACtCsC,GAAU,EAEd,EAUA,GARAR,GAAWxd,YAAW,YACnBge,GAAWC,OAAWpe,EAAW,IAAInF,MAAM,qDAAsD+L,OAAOwT,EAAOnB,IAAK,MACvH,GAAG0E,GAEHG,GAAU,EAELF,IAAaA,EAAczD,EAAiBC,IAE7C4D,EAGF,OAAO9D,EAAc,CAAC,EAAGsD,EAAYU,EAAW1Z,GAAS,CACvDwZ,SAAUA,IAId,GAAgC,oBAArBxZ,EAAO8Z,WAAuD,oBAApB9Z,EAAO+Z,SAAyB,MAAM,IAAI1jB,MAAM,mOAiBrG,OAhBA2J,EAAO+Z,SAASnE,EAAOnB,KACvBuD,EAAepC,GAAQjd,MAAK,SAAUqhB,IACtBpE,EAAOqE,SAAW,SAAUC,EAAGpjB,GAC3C,OAAO+gB,QAAQlgB,QAAQuiB,EACzB,GAEQF,EAAexX,GAAS7J,MAAK,SAAUwhB,GAC7CP,EAAWO,EACb,IAAG,SAAUC,GAGXR,OAAWpe,EAAW4e,EACxB,GACF,IAAG,SAAU/C,GACXuC,OAAWpe,EAAW6b,EACxB,IACO3B,EAAc,CAAC,EAAGsD,EAAYU,EAAW1Z,GAAS,CACvDwZ,SAAU,CACRhX,QAASA,EACTiX,YAAY,IAGlB,CAAO,GAAIzZ,EAAO/B,OAASqV,EAGzB,OAFA+F,GAAS,EACTrZ,EAAOpG,ODzGE,SAA0Bgc,GACvC,IAAIQ,EAAUR,EAAOQ,QACjBF,EAAa,GAAG9T,YAA4B5G,IAArBoa,EAAOO,UAA0BP,EAAOO,UAAYlD,GAAY7Q,OAAOwT,EAAOnB,KACzG,OAAO2B,EAAQiE,WAAWnE,EAAYwC,EACxC,CCqGoB4B,CAAiB1E,IACxBF,EAAc,CAAC,EAAGsD,EAAYU,EAAW1Z,GAAS,CACvDwZ,SAAUA,IAEP,GAAIxZ,EAAO/B,OAASiV,EAEzB,OADAlT,EAAOpG,OAAOwf,GAAeA,EAAYxB,SAClClC,EAAc,CAAC,EAAGsD,EAAYU,EAAW1Z,GAAS,CACvDwZ,SAAUA,IAEP,GAAIxZ,EAAO/B,OAASmV,EACzBkG,GAAU,OACL,GAAItZ,EAAO/B,OAASkV,EAAW,CAEpC,GAAIkG,EAAQ,OAAO3D,EAAc,CAAC,EAAGgE,EAAW,CAC9CF,SAAU9D,EAAc,CAAC,EAAG8D,EAAU,CACpCC,YAAY,MAKhB,GAAIzZ,EAAOyU,MAAQmB,EAAOnB,IAAK,CAC7B,IAAIO,EAAegE,EAAYU,EAAW1Z,GACtC8U,EAAe9U,EAAO6Z,QAItBU,EAAY7E,EAAc,CAAC,GAFU,IAApBuD,QAA8Czd,IAAjBsZ,EAA6BmE,EAAgBnE,EAAchf,EAAOkf,EAAcY,GAAUZ,EAE1F,CAChDwE,SAAU9D,EAAc,CAAC,EAAG8D,EAAU,CACpCC,YAAY,MAIhB,OAAOF,EAAkBgB,EAC3B,CACF,CAGA,IAAKf,EAAU,OAAOR,EAAYljB,EAAOkK,GAGzC,IAAIkV,EAAW8D,EAAYU,EAAW1Z,GACtC,OAAIkV,IAAawE,EAAkB5jB,EAC5ByjB,EAAkB7D,EAAc,CAAC,EAAGR,EAAU,CACnDsE,SAAUA,IAEd,CACF,CCxJA,SAASgB,EAAmBC,GAAO,OAMnC,SAA4BA,GAAO,GAAIC,MAAMC,QAAQF,GAAM,CAAE,IAAK,IAAIrF,EAAI,EAAGwF,EAAO,IAAIF,MAAMD,EAAI5M,QAASuH,EAAIqF,EAAI5M,OAAQuH,IAAOwF,EAAKxF,GAAKqF,EAAIrF,GAAM,OAAOwF,CAAM,CAAE,CAN3HC,CAAmBJ,IAI7D,SAA0BK,GAAQ,GAAIpH,OAAOC,YAAYza,OAAO4hB,IAAkD,uBAAzC5hB,OAAOqB,UAAUyI,SAAStJ,KAAKohB,GAAgC,OAAOJ,MAAMK,KAAKD,EAAO,CAJ5FE,CAAiBP,IAEtF,WAAgC,MAAM,IAAIQ,UAAU,kDAAoD,CAFVC,EAAsB,CAQpH,SAASrH,EAAQC,EAAQC,GAAkB,IAAIC,EAAO9a,OAAO8a,KAAKF,GAAS,GAAI5a,OAAO+a,sBAAuB,CAAE,IAAIC,EAAUhb,OAAO+a,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOlb,OAAOmb,yBAAyBP,EAAQM,GAAKE,UAAY,KAAIN,EAAKte,KAAK6e,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAAS0B,EAAcP,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUxH,OAAQuH,IAAK,CAAE,IAAIE,EAAyB,MAAhBD,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKvB,EAAQyB,GAAQ,GAAMC,SAAQ,SAAUd,GAAOD,EAAgBW,EAAQV,EAAKa,EAAOb,GAAO,IAAevb,OAAOsc,0BAA6Btc,OAAOuc,iBAAiBN,EAAQjc,OAAOsc,0BAA0BF,IAAmBzB,EAAQyB,GAAQC,SAAQ,SAAUd,GAAOvb,OAAOwb,eAAeS,EAAQV,EAAKvb,OAAOmb,yBAAyBiB,EAAQb,GAAO,GAAM,CAAE,OAAOU,CAAQ,CAErgB,SAASX,EAAgBf,EAAKgB,EAAKlZ,GAAiK,OAApJkZ,KAAOhB,EAAOva,OAAOwb,eAAejB,EAAKgB,EAAK,CAAElZ,MAAOA,EAAO+Y,YAAY,EAAMK,cAAc,EAAMC,UAAU,IAAkBnB,EAAIgB,GAAOlZ,EAAgBkY,CAAK,CAIhN,IAAI0H,EAAe,CACjBC,SAAU,GACVC,cAAc,GAGZC,EAAmB,WACrB,IAAIxlB,EAAQuf,UAAUxH,OAAS,QAAsBrS,IAAjB6Z,UAAU,GAAmBA,UAAU,GAAK8F,EAC5Enb,EAASqV,UAAUxH,OAAS,EAAIwH,UAAU,QAAK7Z,EAEnD,OAAQwE,EAAO/B,MACb,KAAKsV,EACH,OAAOmC,EAAc,CAAC,EAAG5f,EAAO,CAC9BslB,SAAU,GAAGhZ,OAAOoY,EAAmB1kB,EAAMslB,UAAW,CAACpb,EAAOyU,QAGpE,KAAKtB,EACH,IAAIoI,EAAazlB,EAAMslB,SAAS1D,QAAQ1X,EAAOyU,KAE3C2G,EAAWZ,EAAmB1kB,EAAMslB,UAGxC,OADAA,EAASI,OAAOD,EAAY,GACrB7F,EAAc,CAAC,EAAG5f,EAAO,CAC9BslB,SAAUA,EACVC,aAAkC,IAApBD,EAASvN,SAG3B,QACE,OAAO/X,EAEb,iBC1CA,SAAS2lB,EAAsBC,GAqB7B,OAlBiB,SAAoB1kB,GACnC,IAAI2kB,EAAW3kB,EAAK2kB,SAChB9K,EAAW7Z,EAAK6Z,SACpB,OAAO,SAAU+K,GACf,OAAO,SAAU5b,GAGf,MAAsB,oBAAXA,EAEFA,EAAO2b,EAAU9K,EAAU6K,GAI7BE,EAAK5b,EACd,CACF,CACF,CAGF,CAEA,IAAI6b,EAAQJ,IAGZI,EAAMC,kBAAoBL,EAC1B,oECrBO,MAAMM,EACT/kB,IAAA,IAAC,SAAE2kB,EAAQ,SAAE9K,GAAyB7Z,EAAA,OACrC4kB,GACA5b,IACG,GAAIA,EACA,OAAQA,EAAO/B,MACX,KAAK+d,EAAAA,EAAmCC,QACpCnV,EAAAA,EAAkBoV,WAClB,MACJ,KAAKC,EAAAA,EAAiBC,qBAClB,MAAM7e,EAAMqe,EAAK5b,IACX,WAAEqc,EAAU,aAAEC,EAAe,IAAQzL,IAAW0L,gBAAkB,CAAC,EAIzE,OAHIF,GAAcC,GACdE,EAAAA,EAAUC,YAAYlF,OAAOF,GAAaA,IAEvC9Z,EAKnB,OAAOqe,EAAK5b,EAAO,CACtB,2BCxBE,MAAM0c,EACT1lB,IAAA,IAAC,SAAE2kB,GAAyB3kB,EAAA,OACvB4kB,GACI5b,IACG,GAAIA,GACQA,EAAO/B,OACN0e,EAAAA,EAAeC,kBAApB,CACI,MAAMrf,EAAMqe,EAAK5b,GACX6c,EAAgB7c,EAStB,OAPI6c,EAAchD,QAAQiD,iBACtBD,EAAchD,QAAQkD,cAAcV,aAAeW,EAAAA,EAAUC,SAE7DT,EAAAA,EAAUC,YAAYlF,OAAOF,GAAaA,IAE1CsE,EAASuB,EAAAA,EAAUC,aAAQ3hB,IAExB+B,CAAG,CAKtB,OAAOqe,EAAK5b,EAAO,CACtB,EClBPod,EAAwC,CAC1CN,iBAAiB,EACjBO,aAAa,EACbpnB,MAAO,KAGPqmB,aAAc,GACdgB,cAAe,GACfjB,WAAY,IAGHkB,EAAwB,WAGV,IAFvBznB,EAAKuf,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG+H,EACRpd,EAAgDqV,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAEhD,OAAQwE,EAAO/B,MACX,QACI,OAAOnI,EACX,KAAKkmB,EAAAA,EAAmCC,QACpC,MAAO,IAAKmB,EAAkBC,aAAa,GAC/C,KAAKrB,EAAAA,EAAmCY,kBACpC,MAAO,IACA9mB,EACHwmB,aAActc,EAAO6Z,QAAQkD,cAAcT,aAC3CgB,cAAetd,EAAO6Z,QAAQkD,cAAcO,cAC5CjB,WAAYrc,EAAO6Z,QAAQkD,cAAcV,WACzCS,gBAAiB9c,EAAO6Z,QAAQiD,gBAChCO,YAAard,EAAO6Z,QAAQwD,aAG5C,ECrCMG,EAA0B,CAAExf,UAAMxC,GAE3BiiB,EAAY,WAAwD,IAAvD3nB,EAAKuf,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAGmI,EAAgBxd,EAAgBqV,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAC9D,OAAQwE,EAAO/B,OAGNif,EAAAA,EAAUQ,SACJ,IACA5nB,EACHkI,KAAMgC,EAAO6Z,QAAQ8D,MAJlB7nB,CAOnB,ECda8nB,EAAa,CACtBC,gBAAiB,cAGjBC,YAAa,cACbC,cAAe,YACfC,gBAAiB,YACjBC,cAAe,UACfC,YAAa,UACbC,WAAY,MACZC,UAAW,MACXC,UAAW,KACXC,UAAW,KACXC,gBAAiB,UACjBC,aAAc,UACdC,0BAA2B,IAC3BC,qBAAsB,yBACtBC,eAAgB,cAChBC,YAAa,UACbC,aAAc,QACdC,gBAAiB,kBACjBC,eAAgB,gBAEhBC,WAAY,UACZC,YAAa,YACbC,cAAe,WAEfC,mBAAoB,kBACpBC,mBAAoB,gBACpBC,iCAAkC,eAClCC,qBAAsB,6EAEtBC,yBAA0B,uCAC1BC,4BAA6B,sCAG7BC,mBAAoB,QACpBC,iBAAkB,SAClBC,gBAAiB,OAEjBC,4BAA6B,iDAC7BC,oCAAqC,8EACrCC,gBAAiB,6EACjBC,0BAA2B,qEAC3BC,kBAAmB,gFAEnBC,2BAA4B,6BAC5BC,8BAA+B,kDAC/BC,wBAAyB,gEAIzBC,2CAA4C,iCAI5CC,mBAAoB,iBACpBC,2BAA4B,mDAC5BC,yBAA0B,kCAC1BC,iCAAkC,oMAClCC,sCAAuC,2KAEvCC,+BAAgC,gCAChCC,qCAAsC,eAEtCC,oCAAqC,6CACrCC,wCAAyC,6CACzCC,uCAAwC,4CACxCC,uCAAwC,gBAExCC,kCAAmC,oCAEnCC,iCAAkC,sBAClCC,kCAAmC,mDACnCC,gCAAiC,kCACjCC,uCAAwC,kCAIxCC,eAAgB,aAChBC,cAAe,oBACfC,aAAc,eACdC,kBAAmB,cAInBC,eAAgB,mCAChBC,4BAA6B,oBAC7BC,uBAAwB,cACxBC,wBAAyB,OACzBC,wBAAyB,OACzBC,uBAAwB,MACxBC,2BAA4B,KAC5BC,wBAAyB,aAEzBC,oCAAqC,MACrCC,qCAAsC,SACtCC,kCAAmC,OACnCC,kCAAmC,MACnCC,gCAAiC,MACjCC,iCAAkC,OAClCC,iCAAkC,OAClCC,mCAAoC,UACpCC,sCAAuC,OACvCC,oCAAqC,MACrCC,qCAAsC,MACtCC,qCAAsC,SAEtCC,sBAAuB,WACvBC,wBAAyB,eACzBC,mBAAoB,UACpBC,oBAAqB,cACrBC,yBAA0B,YAC1BC,sBAAuB,YACvBC,0BAA2B,+BAK3BC,aAAc,gBACdC,mCAAoC,8BAEpCC,0BAA2B,uDAC3BC,2BAA4B,4BAC5BC,mCAAoC,gCACpCC,wBAAyB,oBACzBC,uCAAwC,6CACxCC,oCAAqC,wEACrCC,iCAAkC,+BAClCC,yCAA0C,2CAC1CC,uBAAwB,gCAExBC,4BAA6B,yHAC7BC,kCAAmC,YACnCC,2CAA4C,6CAC5CC,sDAAuD,SACvDC,yCAA0C,8DAC1CC,iDAAkD,+HAClDC,uCAAwC,oDAExCC,gCAAiC,wDACjCC,mCAAoC,0EAEpCC,sBAAuB,gEACvBC,mCAAoC,wEAGpCC,4BAA6B,iBAC7BC,wBAAyB,iBACzBC,qCAAsC,sBACtCC,qCAAsC,aAEtCC,4BAA6B,mBAC7BC,uCAAwC,qDACxCC,+BAAgC,4CAEhCC,kCAAmC,kBACnCC,oCAAqC,iBACrCC,mCAAoC,gBACpCC,+CAAgD,sBAChDC,8CAA+C,kBAC/CC,8DAA+D,8BAC/DC,uDAAwD,WACxDC,uCAAwC,cACxCC,gDAAiD,0BACjDC,oCAAqC,gBAErCC,wCAAyC,+BACzCC,6CAA8C,yBAE9CC,uCAAwC,yBACxCC,sDAAuD,YACvDC,6EAA8E,uCAC9EC,yEAA0E,kCAC1EC,+DAAgE,mBAChEC,uEAAwE,+BACxEC,yDAA0D,YAC1DC,sDAAuD,SACvDC,2EAA4E,mCAC5EC,iEAAkE,yBAClEC,4CAA6C,+BAE7CC,oDAAqD,8BACrDC,yDAA0D,qCAE1DC,qCAAsC,YACtCC,0DAA2D,uBAE3DC,4BAA6B,eAC7BC,yCAA0C,WAC1CC,qCAAsC,0BACtCC,0CAA2C,mBAC3CC,6CAA8C,gCAE9CC,+CAAgD,8BAChDC,qDACI,4HACJC,qCAAsC,iBAEtCC,qDAAsD,2BACtDC,2DACI,wFACJC,2CAA4C,cAE5CC,kDAAmD,kBACnDC,wDACI,iOACJC,yDAA0D,oCAC1DC,8DAA+D,gCAC/DC,gEACI,gKAEJC,4CAA6C,gBAC7CC,oCAAqC,yBAErCC,4BACI,6WACJC,0CACI,6WAEJC,qCAAsC,uEACtCC,qCAAsC,qDACtCC,8BACI,glBAIJC,gCAAiC,MACjCC,gCAAiC,MACjCC,6CAA8C,wBAC9CC,gCAAiC,MACjCC,oCAAqC,mBACrCC,4BAA6B,aAC7BC,wBAAyB,iBACzBC,8BAA+B,iBAC/BC,8BAA+B,iBAC/BC,8BAA+B,IAC/BC,+BAAgC,QAChCC,kCAAmC,WACnCC,wCAAyC,YACzCC,qCAAsC,QAEtCC,gBAAiB,qBAEjBC,yBACI,oHACJC,iCAAkC,qDAClCC,0BAA2B,sDAC3BC,0BAA2B,4DAC3BC,mCACI,6GACJC,sBAAuB,kEAEvBC,iCAAkC,UAClCC,sCAAuC,eACvCC,mCAAoC,eACpCC,4CAA6C,WAC7CC,8CAA+C,aAC/CC,wCAAyC,QACzCC,mCAAoC,iBACpCC,iCAAkC,eAClCC,sCAAuC,0BACvCC,wCAAyC,mBAIzCC,qCAAsC,yBACtCC,iCAAkC,+BAClCC,iCAAkC,sBAClCC,iCAAkC,4BAClCC,iCAAkC,yBAClCC,qCAAsC,oCAEtCC,0BAA2B,UAC3BC,8BAA+B,kBAC/BC,0BAA2B,SAC3BC,2BAA4B,uBAC5BC,kCAAmC,mBACnCC,iCAAkC,WAClCC,gCACI,iMACJC,iCAAkC,WAClCC,gCACI,gRACJC,iCAAkC,aAClCC,gCACI,uQACJC,iCAAkC,wBAClCC,gCACI,yMAEJC,uBAAwB,QACxBC,+BAAgC,mBAChCC,6BAA8B,oBAC9BC,8BAA+B,mBAC/BC,6BAA8B,iBAC9BC,0BAA2B,iBAE3BC,qCAAsC,qBACtCC,sCAAuC,8BACvCC,+BAAgC,UAChCC,wCAAyC,oBACzCC,2BAA4B,SAC5BC,gCAAiC,cACjCC,8BAA+B,YAC/BC,6BAA8B,SAC9BC,8BAA+B,UAE/BC,kCAAmC,MACnCC,iCAAkC,qBAGlCC,eAAgB,cAChBC,uBAAwB,qBACxBC,mBAAoB,wBACpBC,yBAA0B,uBAC1BC,0BAA2B,SAC3BC,uBAAwB,YACxBC,kBAAmB,2BACnBC,4BAA6B,uBAE7BC,gBAAiB,qBACjBC,wBAAyB,2DACzBC,wBAAyB,yCACzBC,sCAAuC,2DACvCC,sBAAuB,oCACvBC,4CAA6C,mBAC7CC,2CAA4C,yIAE5CC,iBAAkB,oBAClBC,sBAAuB,sBACvBC,6BAA8B,sBAC9BC,yBAA0B,eAC1BC,2BAA4B,kBAC5BC,8BAA+B,cAC/BC,8BAA+B,yBAC/BC,oBAAqB,eACrBC,4BAA6B,wBAC7BC,yBAA0B,wBAC1BC,wBAAyB,2BACzBC,yBAA0B,mBAC1BC,0BAA2B,cAC3BC,wBAAyB,wBACzBC,2BAA4B,cAC5BC,2BAA4B,oCAC5BC,oCAAqC,sBACrCC,iCAAkC,sBAClCC,uCAAwC,gBACxCC,8BAA+B,UAC/BC,6CAA8C,0CAC9CC,gDAAiD,2CACjDC,+CAAgD,wCAChDC,sBAAuB,qBAEvBC,0BAA2B,WAC3BC,gCAAiC,kBACjCC,mCAAoC,+BACpCC,uBAAwB,SACxBC,4BAA6B,eAC7BC,4BAA6B,oBAC7BC,iCAAkC,iBAGlCC,yBAA0B,qJAC1BC,uBAAwB,2CAExBC,8BAA+B,iEAC/BC,4BAA6B,sDAE7BC,kBAAmB,4BACnBC,qBAAsB,0FAEtBC,+BAAgC,wBAEhCC,oBAAqB,iCACrBC,0BAA2B,wGAC3BC,0BAA2B,4BAC3BC,sCAAuC,8HAGvCC,qBAAsB,cACtBC,sBAAuB,2CAEvBC,sCAAuC,6BACvCC,wCAAyC,oIC9XzCC,OAAQ,QAERC,eAAgB,KAEhBC,mBAAoB,YACpBC,6BAA8B,aAC9BC,uBAAwB,wBACxBC,qCAAsC,0BACtCC,uCAAwC,4BACxCC,wCAAyC,mCACzCC,0CAA2C,qCAC3CC,yCAA0C,iDAC1CC,mCAAoC,iDACpCC,mBAAoB,4EACpBC,oBAAqB,uEACrBC,cAAe,qBAEfC,eAAgB,yEAGhBC,aAAc,QACdC,oBAAqB,mBACrBC,mBAAoB,mBACpBC,kBAAmB,oBACnBC,kBAAmB,iBACnBC,gBAAiB,iBAGjBC,uBAAwB,qBACxBC,wBAAyB,8BACzBC,kBAAmB,UACnBC,0BAA2B,oBAC3BC,cAAe,SACfC,mBAAoB,cACpBC,iBAAkB,YAClBC,gBAAiB,SACjBC,iBAAkB,UAClBC,sBAAuB,8CACvBC,oBAAqB,0BAGrBC,cAAe,QACfC,gBAAiB,aACjBC,oBAAqB,oBAErBC,8BAA+B,gEAC/BC,mDAAoD,iDACpDC,yDAA0D,kEAE1DC,oDAAqD,kDACrDC,0DACI,mEACJC,wCAAyC,qCACzCC,wCAAyC,4CAEzCC,sCAAuC,iBACvCC,4CAA6C,8DAE7CC,4CAA6C,qBAC7CC,mCAAoC,SACpCC,kCAAmC,QACnCC,wCAAyC,oBACzCC,oCAAqC,UACrCC,+BAAgC,KAChCC,qCAAsC,+BACtCC,sCAAuC,YACvCC,oCAAqC,UACrCC,uCAAwC,mBACxCC,oCAAqC,UACrCC,mCAAoC,SACpCC,iDAAkD,+BAClDC,oDAAqD,kCACrDC,4CAA6C,uBAC7CC,+CAAgD,6BAChDC,mCAAoC,SACpCC,+CAAgD,iCAChDC,+CAAgD,4CAChDC,8CAA+C,gCAC/CC,yCAA0C,kBAC1CC,qCAAsC,WACtCC,8CAA+C,+BAC/CC,sCAAuC,YACvCC,yCAA0C,qBAC1CC,sCAAuC,YACvCC,kDAAmD,0BACnDC,iCAAkC,OAClCC,4DAAwD,yCACxDC,kCAAmC,WACnCC,4CAA6C,wBAC7CC,+CAAgD,6BAEhDC,iCAAkC,MAClCC,sCAAuC,0BACvCC,qCAAsC,2BACtCC,mCAAoC,WAEpCC,6CAA8C,mCAC9CC,8CAA+C,gCAC/CC,oDAAqD,mBACrDC,2DAAuD,4BACvDC,kDAAmD,2CACnDC,6CAA8C,QAC9CC,oDAAqD,mBACrDC,gEAAiE,uCACjEC,iDAAkD,YAClDC,gDAAiD,WACjDC,2DAA4D,yCAC5DC,4DAA6D,6BAE7DC,gDAAiD,WACjDC,mDAAoD,eACpDC,8CAA+C,SAC/CC,+CAAgD,UAChDC,sDAAuD,kBACvDC,mDAAoD,eAEpDC,yDAA0D,0BAC1DC,kDAAmD,QACnDC,4CAA6C,OAC7CC,8CAA+C,SAC/CC,gDAAiD,WAEjDC,kDAAmD,kCACnDC,uDAAwD,iCACxDC,gEAAiE,0CACjEC,oDAAqD,iCACrDC,uDAAwD,0BACxDC,8CAA+C,gBAC/CC,mDAAoD,yBACpDC,+CAAgD,gDAEhDC,oCAAqC,MACrCC,yCAA0C,cAC1CC,iDAAkD,oBAElDC,iBAAkB,gBAClBC,iCAAkC,2WAClCC,gBAAiB,gBACjBC,0BAA2B,yBAC3BC,gDAAiD,sCACjDC,8CAA+C,sCAC/CC,+CAAgD,yBAEhDC,wBAAyB,sDACzBC,2BAA2B,yWAC3BC,sBAAuB,yBACvBC,qBAAsB,kBAEtBC,+CAAgD,0BAChDC,kDAAkD,oGAClDC,6CAA8C,6BAE9CC,uCAAwC,gCACxCC,0CAA2C,2CAC3CC,0CAA2C,yBAE3CC,oCAAqC,4BACrCC,wCAAyC,4BACzCC,mCAAmC,wFACnCC,oCAAoC,2HAEpCC,4BAA6B,kCAE7BC,sCAAuC,yBACvCC,kCAAmC,uBACnCC,wCAAyC,uBACzCC,yCAA0C,iBAC1CC,sCAAuC,iBD4NvCC,2BAA4B,0BAC5BC,4BAA6B,+CAC7BC,6BAA8B,8BAC9BC,oCAAqC,kBACrCC,UAAW,eACXC,sBAAuB,0DACvBC,qBAAsB,qBACtBzG,sCAAuC,iBACvCC,4CAA6C,4DAE7CyG,cAAe,kCACfC,iBAAkB,iBAGlBC,0BAA2B,gDAC3BC,2BAA4B,2CAC5BC,gBAAiB,QACjBC,uBAAwB,oBACxBC,sBAAuB,wCACvBC,yBAA0B,yHAC1BC,2BAA4B,8DAC5BC,+BAAgC,cAEhCC,eAAgB,WAChBC,gBAAiB,OAEjBC,cAAe,cACfC,yBAA0B,cAC1BC,0BAA2B,UAC3BC,mBAAoB,yBACpBC,oBAAqB,oBACrBC,sBAAuB,+DACvBC,uBAAwB,0DACxBC,gBAAiB,kBAEjBC,6BAA6B,sKAC7BC,eAAgB,uBAChBC,sBAAuB,2BACvBC,cAAe,sBACfC,eAAgB,QAChBC,6BAA8B,wCAC9BC,8BAA+B,wCAC/BC,mBAAoB,uBACpBC,iBAAkB,oCAClBC,qBAAsB,2BACtBC,gCAAiC,gCACjCC,2BAA4B,iBAC5BC,yCAA0C,wBAC1CC,2CAA4C,0BAC5CC,wCAAyC,sCACzCC,0CAA2C,sCAC3CC,6CAA8C,2CAC9CC,+CAAgD,2CAEhDC,uCAAwC,sBACxCC,mCAAoC,yBAEpCC,4BAA6B,sBAC7BC,+BAAgC,eAChCC,gCAAiC,oBACjCC,qCAAsC,0BACtCC,mCAAoC,0FACpCC,qCAAsC,4BAEtCC,wBAAyB,oEACzBC,yBAA0B,+DAC1BC,6BAA8B,uBAC9BC,8BAA+B,iBAE/BC,gCAAiC,aACjCC,wCAAyC,kBACzCC,yCAA0C,aAC1CC,0CAA2C,yBAC3CC,2CAA4C,kBAE5CC,4CAA6C,yBAC7CC,2CAA4C,uBAC5CC,mCAAoC,uBACpCC,sCAAuC,+CACvCC,mCAAoC,WACpCC,iCAAkC,eAClCC,oCAAqC,WACrCC,iCAAkC,QAElCC,qCAAsC,0BACtCC,yCAA0C,aAC1CC,8CAA+C,8BAC/CC,uCAAwC,uBACxCC,oCAAqC,cAErCC,kDAAmD,4DACnDC,wCAAyC,yCAEzCC,uBAAwB,4BACxBC,yBAA0B,aAC1BC,wBAAyB,mBACzBC,kBAAmB,6BACnBC,mBAAoB,kBAEpBC,wBAAyB,iCACzBC,yBAA0B,WAC1BC,8BAA+B,YAC/BC,+BAAgC,WAChCC,gCAAiC,6BACjCC,yBAA0B,KAC1BC,yBAA0B,aAC1BC,gCAAiC,yBACjCC,oBAAqB,kBACrBC,mBAAoB,kCAEpBC,aAAc,oBACdC,aAAc,UACdC,cAAe,SAEfC,oBAAqB,UACrBC,uBAAwB,cACxBC,2BAA4B,oBAC5BC,yBAA0B,gBAE1BC,cAAe,iBAEfC,YAAa,iBACbC,kBAAmB,OACnBC,qBAAsB,QAEtBC,wBAAyB,kBACzBC,qBAAsB,uCACtBC,6BAA8B,yBAC9BC,gCAAgC,oMAGhCC,8BAA+B,uDAC/BC,iCAAiC,gKAKjCC,uBAAwB,4BACxBC,wBAAyB,qBAEzBC,yBAA0B,0BAC1BC,yBAA0B,qBAC1BC,2BAA4B,uBAC5BC,+BAAgC,kBAChCC,yBAA0B,wDAC1BC,2BAA4B,qCAE5BC,wBAAyB,WACzBC,yBAA0B,UAC1BC,yBAA0B,UAC1BC,yBAA0B,aAC1BC,yBAA0B,UAC1BC,yBAA0B,aAC1BC,yBAA0B,WAC1BC,yBAA0B,aAC1BC,wBAAyB,SACzBC,0BAA2B,WAE3BC,0BAA2B,aAC3BC,iBAAkB,iBAClBC,sCAAuC,4BACvCC,2BAA4B,YAC5BC,uCAAwC,2BACxCC,yBAA0B,wBAC1BC,8BAA+B,cAE/BC,sBAAuB,aACvBC,4BAA6B,uCAC7BC,2BAA4B,WAC5BC,6CACI,sNAEJC,4BAA6B,wBAC7BC,wBAAyB,gEACzBC,+BAAgC,4BAChCC,+BAAgC,uEAChCC,sCAAuC,yBACvCC,sBAAuB,iBACvBC,mCAAoC,+BACpCC,qCAAsC,iCACtCC,wCAAyC,8BACzCC,kCAAmC,iBACnCC,gCAAiC,wCACjCC,kCAAmC,WACnCC,oCAAqC,QAErCC,6BAA8B,yBAC9BC,6BAA8B,YAC9BC,qDAAsD,uCACtDC,2CAA4C,kCAC5CC,kCAAmC,mBACnCC,gDAAiD,+BACjDC,gCAAiC,YACjCC,6BAA8B,SAC9BC,oDAAqD,mCACrDC,sCAAuC,yBAEvCC,2BAA4B,YAE5BC,qBAAsB,+BACtBC,wBAAyB,6DAEzBC,oBAAqB,WACrBC,4BAA6B,qBAC7BC,wBAAyB,SACzBC,wBAAyB,iEACzBC,yBAA0B,2DAC1BC,+BAAgC,gDAChCC,gCAAiC,0CACjCC,uBAAwB,kEACxBC,8BAA+B,iDAC/BC,wBAAyB,sEACzBC,+BAAgC,qDAEhCC,cAAe,uBACfC,eAAgB,uBAChBC,qBAAsB,MACtBC,sBAAuB,MAEvBC,4BAA6B,iCAC7BC,6BAA8B,4BAG9BC,sBAAuB,SACvBC,qBAAsB,SACtBC,6BAA8B,gBAC9BC,4BAA6B,SAC7BC,oCAAqC,UACrCC,uCAAwC,cACxCC,mCAAoC,iCACpCC,iCAAkC,6BAClCC,qCAAsC,4BACtCC,kCAAmC,2BACnCC,mCAAoC,4BACpCC,kCAAmC,sBACnCC,mDAAoD,uCACpDC,2CAA4C,aAE5CC,sCAAuC,YACvCC,oCAAqC,aAErCC,2BAA4B,gBAC5BC,4BAA6B,aAC7BC,2BAA4B,YAE5BC,kCAAmC,WACnCC,0CAA2C,sBAC3CC,oCAAqC,YACrCC,qCAAsC,aAEtCC,qCAAsC,OACtCC,qCAAsC,UAEtCC,oBAAqB,yBACrBC,2BAA4B,UAC5BC,6BAA8B,cAC9BC,yBAA0B,QAE1BC,iCAAkC,cAElCC,mCAAoC,4BACpCC,wCAAyC,mDACzCC,yCAA0C,qBAC1CC,0CAA2C,0EAE3CC,gCAAiC,kNAEjCC,+BAAgC,YAChCC,oCAAqC,mDACrCC,kCAAmC,6GAEnCC,wCAAyC,mBACzCC,2CAA4C,sCAC5CC,uCAAwC,mUAExCC,qBAAsB,2DACtBC,sBAAuB,sDACvBC,qBAAsB,8BACtBC,sBAAuB,yBACvBC,kBAAmB,WACnBC,mBAAoB,YACpBC,uBAAwB,YACxBC,wBAAyB,WACzBC,wBAAyB,6BACzBC,kBAAmB,KACnBC,mBAAoB,kFE3pBxB,MAAMC,EAAoC,CACtCC,cAAe,KACfC,OAAQ,KACRC,kBAAmB,CAAC,MACpBC,SAAUjqB,GAGDkqB,GAAc,WAAkD,OAA5CzyB,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAGoyB,CAAoD,ECClFphC,GAAqB,CACvBshC,OAAQ,KACRD,cAAe,KACfE,kBAAmB,CAAC,MACpBC,SAAUjqB,GAUP,IAAIrU,GAIJ,MAAMw+B,IAAAA,GACKC,SAAW,KACrB,MAAMC,EAAuC,CAACC,EAAiBnsB,EAA0BW,GACrFyrB,EAAAA,EAAUC,YACVH,EAAYvyC,KACR2yC,EAAAA,aAAwB,CAEpBC,UAAWA,CAACz3B,EAAU7Q,KAAYA,EAAO/B,KAAKsqC,SAAS,eAKnE,MAAMC,EAAgBC,EAAAA,GAAsB,CACxCC,OAAQC,EAAAA,GACRtiC,KAAMyhC,GACNvrB,eAAgBgB,EAChBqrB,GAAInrB,IAGForB,EAAqB9vB,EACvB,CACItE,IAAK0zB,EAAAA,EAAUW,iBACf/yB,UAAW,CAAC,kBACZK,QACJ,KACAoyB,GAIEO,GADmBC,EAAAA,EAAAA,IAAoB,CAAC,EAC7BC,CAAiBR,EAAAA,MAAyBR,IAErDiB,EAAkB,CAAE7iC,SAC1BkD,GAAQk/B,EAAAA,GAAkBI,EAAoBK,EAAiBH,GAC/D,MAAMI,ETtBC,SAAsB5/B,EAAO/R,EAAS4xC,GAER,IAQvCC,EAAgBD,IAAM,EAEtBE,GAAUC,EAAAA,EAAAA,IAAYjuB,EAAkBH,EAAc3jB,GAAWA,EAAQuxC,SAAWvxC,EAAQuxC,cAAWvtC,GAEvGue,EAAW,SAAkBtF,GAC/B60B,EAAQ3tB,SAAS,CACf1d,KAAMsV,EACNkB,IAAKA,GAET,EAEIqF,EAAY,SAAmBrF,EAAKoF,EAASxC,GAC/C,IAAImyB,EAAkB,CACpBvrC,KAAMkV,EACN0G,QAASA,EACTxC,IAAKA,EACL5C,IAAKA,GAGPlL,EAAMoS,SAAS6tB,GAEfF,EAAQ3tB,SAAS6tB,GAEbH,GAAiBF,EAAUt4B,WAAWwK,eACxCguB,IACAA,GAAgB,EAEpB,EAEIF,EAAYzzB,EAAc,CAAC,EAAG4zB,EAAS,CACzCG,MAAO,WACL,IAAIC,EAAU,GAOd,OANAngC,EAAMoS,SAAS,CACb1d,KAAMqV,EACN1Z,OAAQ,SAAgB+vC,GACtBD,EAAQh0C,KAAKi0C,EACf,IAEK9xB,QAAQ+xB,IAAIF,EACrB,EACA9xB,MAAO,WACL,IAAI8xB,EAAU,GAOd,OANAngC,EAAMoS,SAAS,CACb1d,KAAMiV,EACNtZ,OAAQ,SAAgBiwC,GACtBH,EAAQh0C,KAAKm0C,EACf,IAEKhyB,QAAQ+xB,IAAIF,EACrB,EACAI,MAAO,WACLvgC,EAAMoS,SAAS,CACb1d,KAAMmV,GAEV,EACA22B,QAAS,WACPxgC,EAAMoS,SAAS,CACb1d,KAAMoV,EACN0G,SAAUA,EACVD,UAAWA,GAEf,IAOF,OAJMtiB,GAAWA,EAAQwyC,eACvBb,EAAUY,UAGLZ,CACT,CSzDqCc,CAAa1gC,IAC1C,MAAO,CAAEA,SAAO4/B,YAAW,EAI5B,MAEMprC,GAAQA,KAAMmsC,EAAAA,EAAAA,KAAap0C,GAAoBA,EAAM8yC,gFCtE3D,MAAMuB,GAWZC,EAXYD,EAAAA,EAEKnC,SAAW,IAA6Bz+B,EAAAA,GAF7C4gC,EAIKt5B,SAAW,IAAgBs5B,EAAcnC,WAAWn3B,WAJzDs5B,EAKKxuB,SAAY3b,GAAgBmqC,EAAcnC,WAAWrsB,SAAS3b,GALnEmqC,EAOKE,SAAWj1C,SAEdE,EAAAA,EAAYg1C,sGCf3B,SAAS9vB,EAAmBC,GAAO,OAQnC,SAA4BA,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAO8vB,EAAkB9vB,EAAM,CARhDI,CAAmBJ,IAM7D,SAA0BK,GAAQ,GAAsB,qBAAXpH,QAA0BA,OAAOC,YAAYza,OAAO4hB,GAAO,OAAOJ,MAAMK,KAAKD,EAAO,CAN5DE,CAAiBP,IAItF,SAAqC+vB,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOD,EAAkBC,EAAGC,GAAS,IAAIC,EAAIxxC,OAAOqB,UAAUyI,SAAStJ,KAAK8wC,GAAGG,MAAM,GAAI,GAAc,WAAND,GAAkBF,EAAE52B,cAAa82B,EAAIF,EAAE52B,YAAYrd,MAAM,GAAU,QAANm0C,GAAqB,QAANA,EAAa,OAAOhwB,MAAMK,KAAK2vB,GAAI,GAAU,cAANA,GAAqB,2CAA2CE,KAAKF,GAAI,OAAOH,EAAkBC,EAAGC,EAAS,CAJjUI,CAA4BpwB,IAE1H,WAAgC,MAAM,IAAIQ,UAAU,uIAAyI,CAF3DC,EAAsB,CAUxJ,SAASqvB,EAAkB9vB,EAAKqwB,IAAkB,MAAPA,GAAeA,EAAMrwB,EAAI5M,UAAQi9B,EAAMrwB,EAAI5M,QAAQ,IAAK,IAAIuH,EAAI,EAAGwF,EAAO,IAAIF,MAAMowB,GAAM11B,EAAI01B,EAAK11B,IAAOwF,EAAKxF,GAAKqF,EAAIrF,GAAM,OAAOwF,CAAM,CA2BtL,QAlBuB,SAA0BmwB,GAC/C,OAAO,SAAUxhC,GACf,OAAO,SAAUqS,GACf,OAAO,SAAU5b,GAEf,GAAIA,EAAO/B,OAAS+sC,EAAAA,GAClB,OAAOpvB,EAAK5b,GAGd,IAAIirC,EAAkBjrC,EAAO6Z,QACzBqxB,EAASD,EAAgBC,OACzBC,EAAOF,EAAgBE,KAC3BJ,EAAQG,GAAQ32B,MAAMw2B,EAASvwB,EAAmB2wB,GACpD,CACF,CACF,CACF,EC/BO,MAAMv2C,GAA0Bw2C,WAAAA,MAC1BzC,GAAyB0C,EAAAA,EAAAA,IAAcz2C,GACR02C,EAAuB12C,mECJ5D,MAAMuzC,GAsFZoD,EAtFYpD,EAAAA,EAIKW,iBAAmB,WAJxBX,EAKKqD,sBAAwB,eAL7BrD,EAMKsD,uCAAyC,iCAN9CtD,EAOKuD,eAAyB,gBAP9BvD,EAUKwD,UAAY,oBAVjBxD,EAWKyD,cAAgB,SAXrBzD,EAYM0D,aAAe,eAZrB1D,EAaM2D,iBAAmB,mDAbzB3D,EAgBKC,YAAa2D,EAhBlB5D,EAiBK6D,eAAiB7D,EAAUC,WAAa,QAAU,eAjBvDD,EAkBK8D,YAAc9D,EAAUC,WAAa,WAAa,kBAlBvDD,EAoBK+D,YAAc,IAAgC,SAA1B/D,EAAU8D,YApBnC9D,EAqBKgE,aAAe,KAAO,CAAC,MAAO,OAAQ,OAAQ,WAAW5D,SAASJ,EAAU8D,aArBjF9D,EAuBKiE,uBAAiC,EAvBtCjE,EAwBKkE,kCAA4C,IAxBjDlE,EA0BKmE,QAAU,IAAOnE,EAAUC,WAAaD,EAAU2D,iBAAmB3D,EAAU0D,aA1BpF1D,EA4BKoE,KAAO,CACjBC,iBAAiB,GAADpqC,OAAK+lC,EAAUmE,UAAS,+BACxCG,mBAAoBtE,EAAUC,WAAa,gCAAkC,2BAC7EsE,OAAQ,wCA/BHvE,EAkCKwE,cAAiBh3C,GAAqBA,EAASi3C,WAAWh3C,EAAAA,EAAU0a,aAlCzE63B,EAoCK0E,oBAAmB,cApCxB1E,EAqCM2E,+BAAiC3E,EAAUC,WAAa,QAAU,8BArCxED,EAsCK4E,wBAAuE,SAA7C5E,EAAU2E,+BAtCzC3E,EAwCK6E,gBAAkB7E,EAAUC,WAAa,QAAU,sBAxCxDD,EAyCK8E,oBAAsB,IAAoC,SAA9B9E,EAAU6E,gBAzC3C7E,EA2CM+E,2BAA6B/E,EAAUC,WAAa,IAAO,iCA3CjED,EA4CKgF,0BAA4BC,SAASjF,EAAU+E,4BA5CpD/E,EA6CMkF,kCAAoClF,EAAUC,WAAa,KAAQ,wCA7CzED,EA8CKmF,gCAAkCF,SAASjF,EAAUkF,mCA9C1DlF,EAkDKoF,wBAA0B,yCAlD/BpF,EAmDKqF,oBAAsBrF,EAAUC,WACxCD,EAAUoF,wBACV,0BArDGpF,EAuDKsF,6BAA8B,EAvDnCtF,EAyDKuF,cAAgB,qCAzDrBvF,EA4DKwF,eAAiB,+BA5DtBxF,EA8DKyF,eAAiB,oBA9DtBzF,EA+DK0F,UAAY1F,EAAUC,WAAaD,EAAUuF,cAAgB,gBA/DlEvF,EAgEK2F,gBAAe,GAAA1rC,OAAM+lC,EAAU0F,UAAS,8BAhE7C1F,EAiEK4F,iCAAmC5F,EAAUC,WAAa,IAAO,IAjEtED,EAmEK6F,2BAA6B,yCAnElC7F,EAoEK8F,uBAAyB9F,EAAU+D,cAC3C/D,EAAUwF,eACVxF,EAAUC,WACND,EAAU6F,2BACV,wBAxED7F,EAyEK+F,kBAAiB,GAAA9rC,OAAM+lC,EAAU8F,uBAAsB,4CAzE5D9F,EA6EKgG,OAAS,cA7EdhG,EA+EKiG,2BAA8BC,GACxCvlC,QAAQulC,GAAW,uDAAAjsC,OAC0CisC,EAAU,uBACjE,yEAlFDlG,EAmFKmG,cAAgB,wEAnFrBnG,EAoFKoG,cACV,sMCvED,MAAM/8B,EAMT,UAAcC,CAAIrb,GAAkC,IAAjB4H,EAASqX,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC3C7D,EAAOg9B,gBAAkB51C,QAAQ6Y,IAAIrb,EAASq4C,EAAAA,EAAYC,MAAM1wC,GACpE,CAEA,YAAciX,CAAM7e,EAAiB4H,GACjCwT,EAAOg9B,gBAAkB51C,QAAQ6Y,IAAIrb,EAASq4C,EAAAA,EAAYC,MAAM1wC,IAChE2wC,EAAAA,EAAehxB,KAAKvnB,EAAS4H,EACjC,CAEA,YAAc/H,CAAMG,EAAiB4H,GACjCwT,EAAOg9B,gBAAkB51C,QAAQ6Y,IAAIrb,EAASq4C,EAAAA,EAAYC,MAAM1wC,IAChE2wC,EAAAA,EAAe14C,MAAMG,EAAS4H,EAClC,CAEA,cAAc4wC,CAAQC,GAClBr9B,EAAOg9B,gBAAkB51C,QAAQ6Y,IAAIg9B,EAAAA,EAAYC,MAAMG,IACvDl1C,KAAKm1C,aAAa,CAAEC,MAAOC,EAAAA,EAAaC,eAAgBJ,GAC5D,CAEA,mBAAcC,CAAaD,GAAqC,IAADK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAt4C,EAAAu4C,EAAAC,EAAAC,EAC3D,MAAM,QAAEr5C,EAAU,GAAE,MAAEmF,EAAQ,CAAC,EAAC,KAAEyC,EAAO,CAAC,EAAC,KAAEwI,EAAI,MAAEuoC,EAAQC,EAAAA,EAAa34C,MAAK,KAAE4H,GAAS4wC,EAClFa,EAA4B,CAC9B1xC,OACA/H,MAAmB,QAAdi5C,EAAO,OAAL3zC,QAAK,IAALA,OAAK,EAALA,EAAOtF,aAAK,IAAAi5C,EAAAA,EAAI3zC,EACvBo0C,MAAY,OAALp0C,QAAK,IAALA,GAAoB,QAAf4zC,EAAL5zC,EAAOq0C,qBAAa,IAAAT,GAAQ,QAARC,EAApBD,EAAsBv5B,cAAM,IAAAw5B,OAAvB,EAALA,EAA8BS,IACrCC,cAAe15C,EACf6P,QAAuB,QAAhBopC,EAAO,OAAL9zC,QAAK,IAALA,OAAK,EAALA,EAAOnF,eAAO,IAAAi5C,EAAAA,EAAe,QAAfC,EAAI/zC,EAAMtF,aAAK,IAAAq5C,OAAA,EAAXA,EAAal5C,QACxCsY,MAAkD,QAA7C1X,EAAc,QAAdu4C,EAAO,OAALh0C,QAAK,IAALA,OAAK,EAALA,EAAOw0C,aAAK,IAAAR,EAAAA,EAAS,OAALh0C,QAAK,IAALA,GAAoB,QAAfi0C,EAALj0C,EAAOq0C,qBAAa,IAAAJ,OAAf,EAALA,EAAsBO,aAAK,IAAA/4C,EAAAA,EAAe,QAAfy4C,EAAIl0C,EAAMtF,aAAK,IAAAw5C,OAAA,EAAXA,EAAaM,MACnEC,SAAUjB,EACVvoC,OACAvI,WACG8T,EAAAA,EAAAA,OAEPP,EAAOg9B,gBAAkB51C,QAAQ6Y,IAAIo9B,EAAWz4C,QAASs5C,GACzDO,EAAAA,EAAgBC,KAAKR,EACzB,EACHS,EA1CY3+B,EAAAA,EACK4+B,SAAW,eADhB5+B,EAEK6+B,YAAc,kBAFnB7+B,EAIKg9B,aAAe,IAAe1lC,QAAQwnC,aAAan4B,QAAQg4B,EAAKC,mJCXlF,MAAMG,EAAWA,CAACC,EAAoBC,EAA4BC,KAC9Dl/B,EAAAA,EAAOs9B,aAAa,CAChB14C,QAAQ,GAADgM,OAAKouC,GACZj1C,MAAO,IAAKk1C,EAAkBC,cAChC,EAGO1pC,EAAc5R,UACvB,MAAMq7C,GAAmBE,EAAAA,EAAAA,GAAW16C,IAE9B,WAAE26C,EAAU,eAAEC,EAAc,WAAEC,EAAU,WAAEC,GAAyBN,EAEnEC,EAAY,CACdM,UAAW,QACXC,UAAW,IAAIr/B,KACfs/B,QAAS,CAAEC,UAAWC,UAAUD,UAAWE,SAAUhgC,OAAOggC,UAC5Dp7C,SAGJ,GAAI46C,IAAmBS,EAAAA,EAAeC,aAAc,CAChD,GAAId,EAAiBe,gBAAkBC,EAAAA,EAAcC,gBAAiB,CAElE,MAAMn/B,EAAaC,EAAAA,EAAWD,aAC9Bo/B,EAAAA,EAAMC,UAAU,CAAElC,QAASrpC,EAAAA,GAAKC,IAAIiM,EAAa,gCAAkC,+BACvF,MACIo/B,EAAAA,EAAMC,UAAU,CAAElC,QAASrpC,EAAAA,GAAKC,IAAI,uCAIxC,OAAOuR,QAAQlgB,SAAQ,EAC3B,CAMA,GAJIk5C,IAAmBS,EAAAA,EAAeO,YAClCtB,EAAS,8BAA+BE,EAAkBC,GAG1DG,IAAmBS,EAAAA,EAAeQ,UAOlC,OANAvB,EAAS,6BAA8BE,EAAkBC,GACrDD,EAAiBe,gBAAkBC,EAAAA,EAAcM,mBACjDJ,EAAAA,EAAMC,UAAU,CAAElC,QAASrpC,EAAAA,GAAKC,IAAI,+BAEpCqrC,EAAAA,EAAMC,UAAU,CAAElC,QAASrpC,EAAAA,GAAKC,IAAI,qBAEjCuR,QAAQlgB,SAAQ,GAG3B,GAAIi5C,GAAcG,EAAY,CAC1BR,EAAS,mBAAoBE,EAAkBC,GAG/C,MAAMt6C,EACFiQ,EAAAA,GAAK2rC,SAAS,SAAD5vC,OAAU0uC,KACvBA,GAEAzqC,EAAAA,GAAKC,IAAI,yBAET,6EAEJqrC,EAAAA,EAAMC,UAAU,CAAElC,QAASt5C,GAC/B,CAEA,OAAOyhB,QAAQlgB,SAAQ,EAAK,EAQnBs6C,EACT,eAACC,EAA2B78B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,IAAAA,UAAA,GAAQ,OAC/Bpf,IACG,GAAIA,EAAM26C,WAAY,CAClB,MAAMuB,EAAWl8C,EACXm8C,EAAqBF,EACrBppC,QAAQqpC,EAASrB,YACbzqC,EAAAA,GAAK6E,OAAO,qBAAsB,CAAEmnC,KAAMF,EAASrB,aACnDqB,EAASrB,WACLzqC,EAAAA,GAAK6E,OAAO,qBAAsB,CAAEmnC,KAAMF,EAAStB,eAAe7tC,aAClEqD,EAAAA,GAAKC,IAAI,oBACjBD,EAAAA,GAAKC,IAAI,oBAETgsC,EAAuBJ,GACvBC,EAASX,eACTnrC,EAAAA,GAAKC,IAAI,wBAGf,OADAqrC,EAAAA,EAAMC,UAAU,CAAE5rC,MAAOosC,EAAY1C,QAAS4C,EAAcC,SAAU,MAC/D16B,QAAQlgB,SAAQ,EAC3B,CACA,OAAOkgB,QAAQlgB,SAAQ,EAAM,CAC/B,EAEG66C,EAAYp9C,MACrBq9C,EACAC,KAEA,MAAM,aAAEC,GAAiBD,GAAc,CAAC,EACxC,IAEI,aAD8BD,GAElC,CAAE,MAAOx8C,GAGL,WADuC,OAAZ08C,QAAY,IAAZA,OAAY,EAAZA,EAAe18C,MAAU,WACxB+Q,EAAY/Q,GACpC,MAAMA,CAEd,wICzFJ28C,IAAAA,cAAwB,eAAe,CAAC50C,EAAMlJ,KAAY,IAAD+9C,EACrD,OAA+B,QAA/BA,EAAW,OAAJ70C,QAAI,IAAJA,OAAI,EAAJA,EAAM4uC,WAAW93C,UAAO,IAAA+9C,GAAAA,CAAS,IAE5CD,IAAAA,cAAwB,aAAa,CAAC50C,EAAMlJ,KAAY,IAADg+C,EACnD,OAA6B,QAA7BA,EAAW,OAAJ90C,QAAI,IAAJA,OAAI,EAAJA,EAAM+0C,SAASj+C,UAAO,IAAAg+C,GAAAA,CAAS,IAGnC,MAAME,EACT,2BAAcC,CAAqBC,GAC/B,MACMC,EAAkB,qBAClBC,EAAe,UAarB,OAZeF,EAASG,QAHL,yBAG0BC,IACzC,MAAMC,EAAaD,EAAeE,MAAML,GACxC,GAAmB,OAAfI,EAAqB,CACrB,MAAM/7C,EAAU+7C,EAAW,GAAGC,MAAMJ,GACpC,GAAgB,OAAZ57C,EAAkB,CAClB,MAAMi8C,EAAkBj8C,EAAQ,GAAG67C,QAAQ,IAAI,mBACzCK,EAAgBH,EAAW,GAAGF,QAAQD,EAAcK,GAC1D,OAAOH,EAAeD,QAAQF,EAAiBO,EACnD,CACJ,CACA,OAAOJ,CAAc,GAG7B,CAEA,gCAAcK,CAA0BC,GACpC,MAAM,SAAEC,EAAQ,UAAE19C,EAAS,WAAE29C,EAAU,QAAEC,EAAO,IAAEtiC,GAAQmiC,EAC1D,GAAIz9C,EAAW,CACX,MAAM+6C,EAAUzC,EAAAA,EAAYC,MAAMoF,GAC5BZ,EAAmB/8C,EAAU69C,WAC7BC,EAA2BjB,EAAgBkB,aAAahB,GAC9D,IAAIiB,EAAgCjD,EAEhCkD,EAAiBpB,EAAgBqB,iBAAiBF,EAAcF,EAAWF,GAC3EK,EAAevmC,OAAS,IAExBsmC,EAAenB,EAAgBsB,2BAA2BF,EAAgBD,EAAcJ,IAE5F,IAAIQ,EAAavB,EAAgBC,qBAAqBC,GACtDqB,EAAavB,EAAgBwB,oCAAoCD,EAAYJ,GAE7E,IACI,MACMM,EADY38B,KAAKW,MAAM87B,GAEvBG,EAAkB9B,IAAAA,MAAgB6B,EAAON,GAkB/C,OAhBIJ,GAEAviC,EAAAA,EAAOyD,MAAM,6CAA8C,CACvDy/B,SACAb,WACA19C,YACA+8C,WACAqB,aACAN,YACAr6C,OAAQg5C,IAAAA,MAAgB6B,EAAON,GAC/BjD,QAASp5B,KAAKC,UAAUm5B,GACxB4C,WAAYh8B,KAAKC,UAAU+7B,GAC3BK,aAAcr8B,KAAKC,UAAUo8B,GAC7B1iC,QAGDijC,CACX,CAAE,MAAOz+C,GAYL,OAXAub,EAAAA,EAAOs9B,aAAa,CAChB14C,QAAS,iDACTmF,MAAO,CACHtF,QACAE,YACA+6C,QAASp5B,KAAKC,UAAUm5B,GACxB4C,WAAYh8B,KAAKC,UAAUm5B,GAC3BiD,aAAcr8B,KAAKC,UAAUo8B,GAC7BjB,eAGD,CACX,CACJ,CACA,OAAO,CACX,CAEA,qCAAcyB,CAA+Bx+C,GAAkE,IAAzC+6C,EAAwB77B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9F,GAAIlf,EAAW,CACX,MAAM+8C,EAAmB/8C,EAAU69C,WAE7BS,EADY38B,KAAKW,MAAMy6B,GAG7B,OAD2BN,IAAAA,MAAgB6B,EAAOvD,EAEtD,CACA,OAAO,CACX,CAEA,mBAAegD,CAAahB,GACxB,IAAIvmC,EAAwB,GAM5B,MAGMioC,EAAU1B,EAASM,MAHJ,wBAcrB,OAVO,OAAPoB,QAAO,IAAPA,GAAAA,EAASr/B,SAASs/B,IAId,IAAIt5C,EAH+Bs5C,EAAUC,MAAM,KAGnB,GAEhCv5C,EAAQA,EAAM83C,QAAQ,KAAM,IAC5B1mC,EAAS,IAAIA,EAAQpR,EAAM,IAGxBoR,EAAOkB,OAAS,EAAIknC,IAAAA,KAAgBpoC,GAAQqoC,WAAWC,UAAY,EAC9E,CAEA,uBAAeZ,GAIG,IAHdnD,EAAwB77B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC5B1I,EAAqB0I,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAGxB,GAAI1I,EAAOkB,OAAS,EAAG,CACnB,IAAIqnC,EAA+B,GA2BnC,OAzBAvoC,EAAO4I,SAASd,IACZ,IAAI0gC,GAAsB,EAE1B,GAAI1gC,EAAI8zB,SAAS,KAAM,CAEnB,MAAM6M,EAA2B3gC,EAAIqgC,MAAM,KAC3C,IAAIO,EAAqCnE,EAEzCkE,EAAU7/B,SAAQ,CAAC+/B,EAAoBC,KACnC,MAAMC,EAAYD,IAAUH,EAAUvnC,OAAS,EACzC4nC,EAA0BJ,EAAkBC,GAC9CE,EACAL,OAAoC35C,IAAvBi6C,EAEbJ,EAAsC,OAAlBI,QAAkB,IAAlBA,EAAAA,EAAsB,CAAC,CAC/C,GAER,KAAO,CACH,MAAMl6C,EAAa21C,EAAQz8B,GAC3B0gC,OAAuB35C,IAAVD,CACjB,CACK45C,IACDD,EAAgB,IAAIA,EAAezgC,GACvC,IAEGygC,CACX,CACA,MAAO,EACX,CAEA,iCAAeZ,GAIK,IAHhBtgC,EAAmBqB,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACtBy+B,EAA2Bz+B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC/B0+B,EAAgB1+B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,IAAAA,UAAA,GAEZqgC,EAAkBjH,EAAAA,EAAYC,MAAMoF,GAqBxC,OAnBA9/B,EAAKuB,SAAS+/B,IACV,GAAIA,EAAW/M,SAAS,KACpBmN,EAAkB,IACXA,KACAjH,EAAAA,EAAYkH,SAAS,CACpBC,OAAQF,EACR/kC,KAAM2kC,EACN/5C,WAAOC,EACPu4C,iBAGL,MAEWv4C,IADKk6C,EAAgBJ,KAE/BI,EAAgBJ,GAAc,YAEtC,KAGGI,CACX,CAUA,0CAAelB,CAAoCtB,EAAkBl1C,GACjE,MACM63C,EAAgB,oBAChBC,EAAwB,eACxBC,EAAc,kBAEpB,IAAIC,GAAwB,EAE5B,MAAMp8C,EAASs5C,EAASG,QAPA,sBAO0BC,IAC9CyC,EAAYE,UAAY,EACxB,IAEIC,EAFAC,EAAcJ,EAAYK,KAAK9C,GAI/BI,EAAkC,CAAE2C,IAAK,IAG7C,GADAR,EAAcI,UAAY,EACuB,QAA5CC,EAAIL,EAAcO,KAAK9C,IAkCxB,OAAOA,EAlC4C,CACnD,MAAME,EAAQ0C,EAAE,GAEVI,EAAyBx+B,KAAKW,MAAM+6B,GACpC+C,EAAqBC,IAAAA,IAAMx4C,EAAMs4C,GAEvC,GAAKxtC,QAAQytC,GAUT,GAAI77B,MAAMC,QAAQ47B,GACd,IAAK,MAAME,KAAUF,EACW,KAAb,OAAXJ,QAAW,IAAXA,OAAW,EAAXA,EAAatoC,UAAmE,IAAnDylC,EAAezwC,OAAOiV,KAAKC,UAAU0+B,KAElE/C,EAAc2C,IAAI3gD,KACdoiB,KAAKW,MAAM66B,EAAeD,QAAQyC,EAAuBh+B,KAAKC,UAAU0+B,WAId,IAA/DnD,EAAezwC,OAAOiV,KAAKC,UAAUw+B,KAC5C7C,EAAc2C,IAAI3gD,KACdoiB,KAAKW,MACD66B,EAAeD,QAAQyC,EAAuBh+B,KAAKC,UAAUw+B,WAdzEP,GAAwB,CAmBhC,CAIA,OAAOl+B,KAAKC,UAAU27B,EAAc,IAExC,OAAOsC,EAAwB9C,EAAWt5C,CAC9C,qJCjPG,MAAM88C,EAwGT,+BAAcC,CAAyBC,GACnC,OAAQA,GACJ,KAAKC,EAAAA,GAAaC,aACd,OAAOC,EAAAA,EAAuBD,aAClC,KAAKD,EAAAA,GAAaG,gBACd,OAAOD,EAAAA,EAAuBC,gBAClC,KAAKH,EAAAA,GAAaI,OACd,OAAOF,EAAAA,EAAuBE,OAClC,KAAKJ,EAAAA,GAAaK,QACd,OAAOH,EAAAA,EAAuBG,QAClC,KAAKL,EAAAA,GAAaM,QACd,OAAOJ,EAAAA,EAAuBI,QAClC,KAAKN,EAAAA,GAAaO,QACd,OAAOL,EAAAA,EAAuBK,QAClC,QACI,MAAMC,EAAqBT,GAEvC,CAEA,8BAAcU,CAAwBC,GAClC,OAAQA,GACJ,KAAKC,EAAAA,GAAoBC,QACrB,OAAOC,EAAAA,EAAsBD,QACjC,KAAKD,EAAAA,GAAoBG,MACrB,OAAOD,EAAAA,EAAsBC,MACjC,KAAKH,EAAAA,GAAoBI,MACrB,OAAOF,EAAAA,EAAsBE,MACjC,KAAKJ,EAAAA,GAAoBK,SACrB,OAAOH,EAAAA,EAAsBG,SACjC,KAAKL,EAAAA,GAAoBM,aACrB,OAAOJ,EAAAA,EAAsBI,aACjC,QACI,MAAMT,EAAqBE,GAEvC,CAEA,6BAAcQ,CAAuBC,GAAqE,IAADhhD,EACrG,MAAM,SAAE68C,EAAQ,SAAEoE,EAAQ,UAAEC,EAAS,iBAAEC,EAAgB,QAAEpE,GAAYiE,EAE/DI,EAGoE,QAHxBphD,EAC7CkhD,EACKxB,EAAmB2B,+BAA+BH,EAAWrE,EAASjzC,GAAIq3C,GAC1EvB,EAAmB4B,uBAAuBzE,EAASjzC,GAAIq3C,UAAS,IAAAjhD,EAAAA,EACtE0/C,EAAmB6B,2BAA2B1E,EAASjzC,GAAIq3C,GAQ/D,GANAlE,GACIn7C,QAAQ6Y,IACJ,2BACAg9B,EAAAA,EAAYC,MAAM,CAAEmF,WAAUuE,UAASF,YAAWC,mBAAkBF,cAGxEG,EAAS,CACT,GAAIA,EAAQn6C,OAAS84C,EAAAA,EAAuBE,OAAQ,CAAC,IAADuB,EAChD,MAAMC,EAAuC,QAA5BD,EAAGJ,EAAQM,yBAAiB,IAAAF,OAAA,EAAzBA,EAA2Bj9C,OAEzC,QAAEo9C,EAAO,QAAEC,GAAY/E,EAAS6E,kBAChCG,EAAwBzL,SAASqL,GACjCK,EAAuBD,GAAiBF,GAAWE,GAAiBD,EAC1E/E,EAAS4E,YAAcA,EACvB5E,EAASkF,cAAe,EAEnBD,GAKDjF,EAASmF,yBAA0B,EACnCnF,EAASoF,SAAU,IAJnBpF,EAASmF,yBAA0B,EACnCnF,EAASoF,SAAU,EAK3B,CACA,GAAIpF,EAAS51C,OAAS44C,EAAAA,GAAaC,cAC3BjD,EAASqF,yBAA0BC,YAAYtrC,OAAS,EAAG,CAC3D,MAAMurC,EAAqCrE,IAAAA,KACvClB,EAASqF,yBAA0BC,aACrCE,gBAAgB7O,IAAC,IAAA8O,EAAA,OAAK9O,EAAE5pC,MAAuC,QAArC04C,EAAKlB,EAAQc,gCAAwB,IAAAI,OAAA,EAAhCA,EAAkCC,UAAU,IACzEH,IACAvF,EAASuF,YAAcA,EACvBvF,EAASoF,SAAU,EACnBpF,EAASkF,cAAe,EAExBhF,GACIn7C,QAAQ6Y,IAAI,qCAAsC,CAC9CoiC,WACAuF,cACAhB,UACAF,cAGhB,CAEiD,IAADsB,EAApD,GAAI3F,EAAS51C,OAAS44C,EAAAA,GAAaG,gBAC/B,IAAqD,QAAjDwC,EAAA3F,EAAS4F,4BAA6BN,mBAAW,IAAAK,OAAA,EAAjDA,EAAmD3rC,QAAS,EAAG,CAAC,IAAD6rC,EAAAC,EAC/D,MAAMC,EACiD,QADfF,EACD,QADCC,EACpCvB,EAAQqB,mCAA2B,IAAAE,OAAA,EAAnCA,EAAqCE,sBAAc,IAAAH,EAAAA,EAAI,GAErDI,EAAiC/E,IAAAA,KACnClB,EAAS4F,4BAA6BN,aAErCY,OAAOvP,GAAiBoP,EAAoBrR,SAASiC,EAAE5pC,MACvDq0C,UAED6E,IACAjG,EAASiG,aAAeA,EACxBjG,EAASoF,aAAoCz9C,IAA1Bq4C,EAASiG,aAC5BjG,EAASkF,cAAe,EAEhC,CAEJ,GAAIlF,EAAS51C,OAAS44C,EAAAA,GAAaK,QAAS,CAAC,IAAD8C,EACxC,MAAMC,EAAyC,QAA7BD,EAAG5B,EAAQ8B,0BAAkB,IAAAF,OAAA,EAA1BA,EAA4Bz+C,MACjDs4C,EAASoG,aAAeA,EACxBpG,EAASoF,SAAU,EACnBpF,EAASkF,cAAe,CAC5B,CACA,GAAIlF,EAAS51C,OAAS44C,EAAAA,GAAaM,QAAS,CAAC,IAADgD,EAAAC,EAAAC,EACxC,MAAMC,EAAyC,QAA7BH,EAAG/B,EAAQmC,0BAAkB,IAAAJ,OAAA,EAA1BA,EAA4BK,QACjD3G,EAASyG,aAAeA,EACxBzG,EAAS4G,qBAAuC,OAAhBtC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9F,KAClDwB,EAAS6G,cAA0C,QAA7BN,EAAGhC,EAAQmC,0BAAkB,IAAAH,GAAS,QAATC,EAA1BD,EAA4BI,eAAO,IAAAH,OAAT,EAA1BA,EAAqChI,KAC9DwB,EAAS8G,gBAAiB,EAC1B9G,EAAS+G,iBAAkB,EAC3B/G,EAASoF,SAAUpF,EAAS0G,mBAAmBM,aAAc/xC,QAAQ+qC,EAASyG,cAC9EzG,EAASkF,cAAe,CAC5B,CACA,GAAIlF,EAAS51C,OAAS44C,EAAAA,GAAaO,QAAS,CAAC,IAAD0D,EACxC,MAAMC,EAA0C,QAA9BD,EAAG1C,EAAQ4C,2BAAmB,IAAAF,OAAA,EAA3BA,EAA6BG,SAC/B,IAADC,EAAlB,GAAIH,EACAlH,EAASsH,YAAc,CACnBC,OAAO,EACPC,QAAoC,QAA7BH,EAAE9C,EAAQ4C,2BAAmB,IAAAE,OAAA,EAA3BA,EAA6B3/C,MACtC+/C,WAAY,CAACP,IAGjBlH,EAASkH,aAAeA,EACxBlH,EAASoF,QAAUnwC,QAAQiyC,GAC3BlH,EAASkF,cAAe,CAEhC,CACAlF,EAAS0H,wBAA0BnD,EAAQoD,yBAC/C,CAMA,OALAzH,GACIn7C,QAAQ6Y,IACJ,2BACAg9B,EAAAA,EAAYC,MAAM,CAAEmF,WAAUuE,UAASF,YAAWC,mBAAkBF,cAErEpE,CACX,EAiEH4H,EA3TY/E,EAAAA,EACKgF,WAAc7H,IACxB,OAAQA,EAASkF,cAAgBlF,EAAS51C,MACtC,KAAK44C,EAAAA,GAAaM,QACd,OAAOruC,QAAQ+qC,EAASyG,cAAgBzG,EAAS0H,yBACrD,KAAK1E,EAAAA,GAAaC,aACd,OAAOhuC,QAAQ+qC,EAASuF,aAC5B,KAAKvC,EAAAA,GAAaG,gBACd,OAAOluC,QAAQ+qC,EAASiG,cAC5B,KAAKjD,EAAAA,GAAaI,OACd,OAAOnuC,QAAQ+qC,EAAS4E,aAC5B,KAAK5B,EAAAA,GAAaK,QACd,OAAOpuC,QAAQ+qC,EAASoG,cAC5B,KAAKpD,EAAAA,GAAaO,QACd,OAAOtuC,QAAQ+qC,EAASkH,cAC5B,QACI,OAAO,EACf,EAjBKrE,EAoBKiF,kBAAqBvD,IAC/B,OAAQA,EAAQwD,cACZ,KAAKlE,EAAAA,EAAsBC,MACvB,OAAO7uC,QAAQsvC,EAAQyD,0BAC3B,KAAKnE,EAAAA,EAAsBG,SACvB,OAAO/uC,QAAQsvC,EAAQ0D,6BAC3B,KAAKpE,EAAAA,EAAsBI,aACvB,OAAOhvC,QAAQsvC,EAAQ2D,kCAC3B,QACI,OAAO,EACf,EA9BKrF,EAiCKsF,wBAA0B,WAGC,IADrCnN,EAAsDx5B,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAEtD,MAoDMkuC,GAvDwBr0B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAuDPlB,OAAOuiC,EAAmBgF,YAC/C56C,KAAK+yC,GApDNhF,KAEA,MAAM,SAAEgF,GAAahF,EAEfoN,EAAmD,CACrDC,YAAarI,EAASjzC,GACtB3C,KAAMy4C,EAAmBC,yBAAyB9C,EAAS51C,MAC3D29C,aAAc/H,EAASsI,eACjBzE,EAAAA,EAAsBC,MACtBjB,EAAmBY,wBAAwBzD,EAAS+H,cAC1DJ,0BAA2B3H,EAAS0H,yBAgBK,IAADa,EAuB5C,OArCIvI,EAAS51C,OAAS44C,EAAAA,GAAaC,cAAgBjD,EAASuF,cACxD6C,EAAqB/C,yBAA2B,CAAEK,UAAW1F,EAASuF,YAAYx4C,KAElFizC,EAAS51C,OAAS44C,EAAAA,GAAaG,iBAAmBnD,EAASiG,eAC3DmC,EAAqBxC,4BAA8B,CAC/CI,eAAgBhG,EAASiG,aAAah5C,KAAKuV,GAAMA,EAAEzV,OAGvDizC,EAAS51C,OAAS44C,EAAAA,GAAaI,QAAUpD,EAAS4E,cAClDwD,EAAqBvD,kBAAoB,CAAEn9C,MAAOs4C,EAAS4E,cAE3D5E,EAAS51C,OAAS44C,EAAAA,GAAaK,SAAWrD,EAASoG,eACnDgC,EAAqB/B,mBAAqB,CAAE3+C,MAAOs4C,EAASoG,eAE5DpG,EAAS51C,OAAS44C,EAAAA,GAAaM,UAC/B8E,EAAqB1B,mBAAqB,CACtClI,KAA2B,QAAvB+J,EAAEvI,EAASyG,oBAAY,IAAA8B,OAAA,EAArBA,EAAuB/J,KAC7BgK,YAAaxI,EAAS6G,gBAG1B7G,EAAS51C,OAAS44C,EAAAA,GAAaO,SAAWvD,EAASkH,eACnDkB,EAAqBjB,oBAAsB,CACvCz/C,MAAOs4C,EAASkH,aAAauB,QAC7BpyC,YAAa2pC,EAASkH,aAAa7wC,YACnC3T,KAAMs9C,EAASkH,aAAaxkD,OAGhCs4C,EAAW0N,UACXN,EAAqBJ,yBAA2B,CAAEU,QAAS1N,EAAW0N,UAEtE1N,EAAW2N,aACXP,EAAqBH,4BAA8B,CAAEU,WAAY3N,EAAW2N,aAE5E3N,EAAW4N,kBACXR,EAAqBF,iCAAmC,CAAEU,gBAAiB5N,EAAW4N,kBAGnFR,CAAoB,EAGMS,CAA0B,CACvD7I,WACA0I,QAAmB,OAAV1N,QAAU,IAAVA,OAAU,EAAVA,EAAY0N,QACrBC,WAAsB,OAAV3N,QAAU,IAAVA,OAAU,EAAVA,EAAY2N,WACxBC,gBAA2B,OAAV5N,QAAU,IAAVA,OAAU,EAAVA,EAAY4N,oBAG/BE,EAAiBjT,EAAQv1B,QAAQyoC,IAAOlG,EAAmBiF,kBAAkBiB,KAInF,OAHID,EAAe9uC,QACf2D,EAAAA,EAAOC,IAAI,0BAA2B,CAAEkrC,mBAErCjT,EAAQv1B,OAAOuiC,EAAmBiF,kBAC7C,EAtGSjF,EA4PK6B,2BAA6B,SAACsE,GAAuE,IAAnD5E,EAAwC5iC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACvG,OAAO4iC,EAASpqC,OAAS,EACnBknC,IAAAA,KAAgBkD,GAAUoB,gBAAgByD,GACjCA,EAAEZ,cAAgBW,GAAcC,EAAElB,eAAiBlE,EAAAA,EAAsBD,eAElFj8C,CACV,EAlQSk7C,EAoQK4B,uBAAyB,SACnCuE,GAEuC,IADvCE,EAAyC1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAE5C,OAAO0nC,EAAUlvC,OAAS,EACpBknC,IAAAA,KAAgBgI,GAAW1D,gBAAgByD,GAA+BA,EAAEZ,cAAgBW,SAC5FrhD,CACV,EA3QSk7C,EA6QK2B,+BAAiC,SAC3CH,EACA2E,GAEuC,IADvCE,EAAyC1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAE5C,OAAO0nC,EAAUlvC,OAAS,EACpBknC,IAAAA,KAAgBgI,GAAW1D,gBAAgByD,IACzC,GAAIA,EAAEZ,cAAgBW,EAAY,CAC9B,GAAIC,EAAEf,iCACF,OAAOe,EAAEf,iCAAiCU,kBAAoBvE,EAElE,GAAI4E,EAAEjB,yBACF,OAAOiB,EAAEjB,yBAAyBU,UAAYrE,EAElD,GAAI4E,EAAEhB,4BACF,OAAOgB,EAAEhB,4BAA4BU,aAAetE,CAE5D,CACA,OAAO,CAAK,SAEd18C,CACV,EAlSSk7C,EAoSKsG,yBAA2B,CAACnJ,EAAwB3C,KAA+C,IAAD+L,EAAAC,EAE5G,MAAMC,EAA4D,QAA3BF,EAAGpJ,EAASuJ,uBAAe,IAAAH,EAAAA,EAAI,GAChEI,EAAwC,QAAtBH,EAAGhM,EAAQiM,mBAAW,IAAAD,EAAAA,EAAI,CAAC,EAkBnD,OAhBAC,EAAY5nC,SAAS+nC,IACjB,GAAIA,EAAWC,qBAAsB,CAEEvK,EAAAA,EAAgBW,0BAA0B,CACzEx9C,UAAWmnD,EAAWC,qBACtBzJ,WAAY5C,MAGZmM,EAAmBG,EAAAA,EAAsBC,kBAAkBH,EAAW/mD,OAAS+mD,EAAW/hD,MAElG,MACI8hD,EAAmBG,EAAAA,EAAsBC,kBAAkBH,EAAW/mD,OAAS+mD,EAAW/hD,KAC9F,IAEJ21C,EAAQiM,YAAcE,EAEf5O,EAAAA,EAAYC,MAAMwC,EAAQ,EAIlC,MAAMmG,EAAwB97C,GAC1B,IAAIlF,MAAM,GAAD+L,OAAI7G,EAAK,oEC9VtB,MAAMuH,EAET,mBAAcC,CAAY/L,GAA8D,IAA7D,QAAEwL,EAAO,IAAEjG,GAA8BvF,EAChE,MAAMlC,EAAS,IAAI4oD,gBAEbC,EAAW,SAAClpC,GAAqC,IAAxBlZ,EAAa8Z,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACvCvM,QAAQvN,GACRzG,EAAO8oD,OAAOnpC,EAAKlZ,GAEnBzG,EAAO+oD,OAAOppC,EAEtB,EAIA,OAHAkpC,EAAS,UAAWn7C,GACpBm7C,EAAS,MAAOphD,GAETzH,CACX,iECjBG,MAAMgpD,EAIT,iBAAcC,CAAWC,EAAqBr8C,GAC1C,MAAMs8C,EAAiCH,EAAmBI,qBAAqBF,GAEzEG,EAAW,sCAAA/7C,OAAyC67C,EAAsB,qBAAA77C,OAAoBT,EAAK,wBAEzG,OAAOwmC,EAAAA,EAAUsF,4BAA2B,GAAArrC,OACnC+lC,EAAAA,EAAUqF,oBAAmB,yBAAAprC,OAAwBT,EAAK,KAAAS,OAAI67C,EAAsB,WACvFE,CACV,CAEA,mBAAcC,CAAaJ,EAAqBK,GAC5C,MAAMJ,EAAiCH,EAAmBI,qBAAqBF,GAC/E,MAAM,sEAAN57C,OAA6Ei8C,EAAI,YAAAj8C,OAAWi8C,EAAI,KAAAj8C,OAAI67C,EAAsB,UAC9H,CAGA,0BAAeK,CAAoBC,GAC/B,MAAMC,EAAMD,EAAOlL,QAAQ,MAAO,IAClC,MAAe,KAARmL,EAAa,IAAMA,CAC9B,CAGA,2BAAcN,CAAqBF,GAC/B,MAAMS,EAA8BT,EAAYlJ,MAAM,KACtD,GAA4B,IAAxB2J,EAAa5wC,OAAc,CAC3B,MAAO6wC,EAAcC,GAAgBF,EACrC,MAAM,GAANr8C,OAAU07C,EAAmBQ,oBAAoBI,GAAa,KAAAt8C,OAAI07C,EAAmBQ,oBACjFK,GAER,CACA,OAAOX,CACX,4EC5BG,MAAMvP,EACT,YAAcC,CAASp5B,GACnB,OAAOspC,IAAatpC,EACxB,CAmCA,gBAAcupC,CAAUC,EAAcC,GAClC,QAAgBvjD,IAAZsjD,QAAqCtjD,IAAZujD,EACzB,OAAO,EAEX,QAAgBvjD,IAAZsjD,QAAqCtjD,IAAZujD,EACzB,OAAO,EAGX,QAAgBvjD,IAAZsjD,QAAqCtjD,IAAZujD,EACzB,OAAO,EAGX,MAAMC,EAAQ9lD,OAAO8a,KAAK8qC,GACpBG,EAAQ/lD,OAAO8a,KAAK+qC,GAE1B,GAAIC,EAAMnxC,SAAWoxC,EAAMpxC,OACvB,OAAO,EAGX,IAAK,MAAM4G,KAAOuqC,EAAO,CACrB,MAAME,EAAOJ,EAAQrqC,GACf0qC,EAAOJ,EAAQtqC,GACf2qC,EAAa3Q,EAAY4Q,SAASH,IAASzQ,EAAY4Q,SAASF,GACtE,GAAKC,IAAe3Q,EAAYoQ,UAAUK,EAAMC,KAAYC,GAAcF,IAASC,EAC/E,OAAO,CAEf,CAEA,OAAO,CACX,CAEA,eAAcE,CAASvrC,GACnB,YAAkBtY,IAAXsY,GAAmC,OAAXA,GAAqC,kBAAXA,CAC7D,EA+EHwrC,EAtJY7Q,EAAAA,EAKKkH,SAAY4J,IACtB,MAAM,OAAE3J,EAAM,KAAEjlC,EAAI,MAAEpV,GAAUgkD,EAEhC,IAAIvrC,EAAsBrD,EAAKmkC,MAAM,KACjC0K,EAAsC,GACtCC,EAAkC,CAAC,EAEvC,MAAMC,EAAoBjrC,GACHmhC,EAAOnhC,GAI9B,KAAOT,EAAKnG,OAAS,GAAG,CAGpB,MAAOzO,KAASugD,GAAQ3rC,EAExB,QAAyBxY,IAArBikD,EAAWrgD,GAAqB,CAChC,GAAoB,IAAhB4U,EAAKnG,OACL4xC,EAAWrgD,GAAQ7D,MAChB,CACH,MAAMqkD,EAAYF,EAAiBtgD,GACnCqgD,EAAWrgD,GAAQqvC,EAAYC,MAAM,IAAKkR,GAC9C,CACAJ,EAAU,IAAIA,EAASC,EAC3B,CACAA,EAAaA,EAAWrgD,GACxB4U,EAAO2rC,CACX,CAEA,OADeH,EAAQ,EACV,EAnCR/Q,EAyEKoR,cAAgB,SAAI/rC,GAA4C,IAA/BE,EAAoBqB,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAClE,IAAKo5B,EAAY4Q,SAASvrC,GACtB,OAAO,EAEX,MAAMgsC,EAAa5mD,OAAO8a,KAAKF,GAE/B,OADsBE,EAAK+rC,OAAOtrC,GAAQqrC,EAAWvX,SAAS9zB,IAElE,EAhFSg6B,EAiFKuR,WAAcvsC,GACjB6rC,EAAKW,SAASnoC,KAAKC,UAAUtE,IAlF/Bg7B,EAqFKwR,SAAYC,IACtB,IAAIC,EAAO,EACX,GAAmB,IAAfD,EAAIryC,OACJ,OAAOsyC,EAEX,IAAK,IAAI/qC,EAAI,EAAGA,EAAI8qC,EAAIryC,OAAQuH,IAAK,CAEjC+qC,GAAQA,GAAQ,GAAKA,EADRD,EAAIE,WAAWhrC,GAE5B+qC,GAAOA,CACX,CACA,OAAOA,CAAI,EA/FN1R,EAkGK4P,KAAQvqC,IAClB,MAAMusC,EAAa,GACbtQ,EAAQ,CAACj8B,GACf,IAAIwsC,EAAQ,EAEZ,KAAOvQ,EAAMliC,QAAQ,CACjB,MAAMtS,EAAQw0C,EAAMwQ,MAEpB,GAAqB,mBAAVhlD,EACP+kD,GAAS,OAER,GAAqB,kBAAV/kD,EACZ+kD,GAAwB,EAAf/kD,EAAMsS,YAEd,GAAqB,kBAAVtS,EACZ+kD,GAAS,OAER,GAEgB,kBAAV/kD,IAC2B,IAA/B8kD,EAAW3oC,QAAQnc,GACxB,CACE8kD,EAAW3qD,KAAK6F,GAEhB,IAAK,IAAI6Z,KAAK7Z,EACVw0C,EAAMr6C,KAAK6F,EAAM6Z,GAEzB,CACJ,CAEA,MAAMorC,EAAYjlD,GAAkBklD,KAAKC,MAAc,IAARnlD,GAAe,IAExDolD,EAAWL,EACXM,EAAaJ,EAAoB,KAAXG,GACtBE,EAAaL,EAAsB,KAAbI,GAQ5B,OAAOC,EAAa,EAAC,GAAAz+C,OAAMy+C,EAAU,OAAQD,EAAa,EAAC,GAAAx+C,OAAMw+C,EAAU,UAAAx+C,OAAWu+C,EAAQ,KAAI,EA5I7FlS,EA+IKqS,gBAAsBrmC,GACzBA,EAAItG,QAAO,CAACV,EAAK2B,EAAGqF,IAAQA,EAAIsmC,WAAWC,GAASlpC,KAAKC,UAAUipC,KAAUlpC,KAAKC,UAAUtE,OAAU2B,IAhJxGq5B,EAmJKwS,iBAAuBxmC,GAC1BA,EAAItG,QAAO,CAACV,EAAK2B,EAAGqF,IAAsF,IAA9EA,EAAItG,QAAQ6sC,GAASlpC,KAAKC,UAAUipC,KAAUlpC,KAAKC,UAAUtE,KAAM5F,8FCrJvG,MAAMqzC,EAGT,uBAAcC,CAAiB3G,EAAqB4G,GAA4C,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3F,OAAQV,GACJ,KAAKW,EAAAA,GAAUC,cACf,KAAKD,EAAAA,GAAUE,mBACX,OACkE,QADlEZ,EACuB,QADvBC,EACI9G,EAAQ0H,mBAAW,IAAAZ,GAAU,QAAVC,EAAnBD,EAAqBa,gBAAQ,IAAAZ,GAAmB,QAAnBC,EAA7BD,EAA+Ba,yBAAiB,IAAAZ,OAA7B,EAAnBA,EAAkDa,oBAAY,IAAAhB,EAAAA,EAC3C,QAD2CI,EAC9DjH,EAAQ0H,mBAAW,IAAAT,GAAU,QAAVC,EAAnBD,EAAqBU,gBAAQ,IAAAT,GAAa,QAAbC,EAA7BD,EAA+BY,mBAAW,IAAAX,OAAvB,EAAnBA,EAA4CU,aAEpD,QACI,OAA0B,QAA1BT,EAAOpH,EAAQ0H,mBAAW,IAAAN,GAAU,QAAVC,EAAnBD,EAAqBO,gBAAQ,IAAAN,GAAa,QAAbC,EAA7BD,EAA+BS,mBAAW,IAAAR,OAAvB,EAAnBA,EAA4CO,aAE/D,CAEA,gBAAcE,CAAUC,EAAiBC,EAA8BC,GAA+B,IAADC,EACjG,MAeMC,EAA0C,QAArBD,EAfFE,MACrB,GAAIH,EACA,OAAQD,GACJ,KAAKV,EAAAA,GAAUC,cACX,OAAOU,EAAQI,oBAAoBd,cACvC,KAAKD,EAAAA,GAAUE,mBACX,OAAOS,EAAQI,oBAAoBb,mBACvC,KAAKF,EAAAA,GAAUgB,OACX,OAAOL,EAAQI,oBAAoBC,OACvC,QACI,OAAOL,EAAQM,QAGX,EAEUH,UAAkB,IAAAF,EAAAA,EAAI,EAC9CM,EAAmBL,EAAgBJ,GAAW,EAAII,GAAiBJ,EAEzE,OADwB/B,KAAKC,MAAiB,IAAXuC,GAAkB,GAEzD,CA+GA,qBAAcC,CAAe/K,GACzB,MAAMgL,EAA+BjC,EAAckC,gBAAgBjL,GAUnE,QAAOgL,KARyB,CAC5B,OACA,YACA,YACA,YACA,aAI4BE,MAAMhtC,GAAM8sC,EAA6BvW,WAAWv2B,IAExF,CAEA,oBAAcitC,CAAc9I,GAAuB,IAAD+I,EAAAC,EAC9C,MACMC,EAC0E,QADxDF,EACb,OAAP/I,QAAO,IAAPA,OAAO,EAAPA,EAASkJ,mCAAmC3Q,SAFjB,eAEiD,IAAAwQ,GAAAA,EAC1EI,EAA0F,UAAnE,OAAPnJ,QAAO,IAAPA,GAA8D,QAAvDgJ,EAAPhJ,EAASoJ,UAAUP,MAAMhtC,GAAiB,sBAAXA,EAAE9f,cAA6B,IAAAitD,OAAvD,EAAPA,EAAgEjoD,OACtF,OAAOkoD,GAAsBE,CACjC,CACA,sBAAcE,CAAgBC,EAAgBC,GAC1C,MAAMC,EAAY9C,EAAcgC,eAAeY,GACzCG,EAAY/C,EAAcgC,eAAea,GAE/C,OAAQC,GAAaC,EADDC,EAACJ,EAAgBC,IAAmBD,EAAGzR,KAAK8R,cAAcJ,EAAG1R,MAC/C6R,CAAYJ,EAAIC,GAAOC,IAAcC,GAAc,EAAI,CAC7F,EAKHG,EApLYlD,EAAAA,EACKmD,yBAA4BhS,GAAiBjF,SAASiF,GAAMrvC,WADjEk+C,EAsCKoD,YAAetgD,IAGlB,CAAEugD,MAFK9D,KAAK8D,MAAMvgD,GAETwgD,QADAxgD,EAAMygD,QAAQ,GAAG3P,MAAM,KAAK,KAxCvCoM,EA4CKwD,YAAeC,GAClBt+C,EAAAA,GAAK6E,OAAO,+BAAD9I,OAAgD,UAAhBuiD,EAA0B,IAAM,KAAO,CACrFC,UAAWv+C,EAAAA,GAAK6E,OAAO,+BAAD9I,OAAgCuiD,MA9CrDzD,EAkDK2D,YAAeC,GAClBz+C,EAAAA,GAAK6E,OAAO,yBAA0B,CACzC65C,aAAc7D,EAAcmD,yBAAyBS,EAAEE,cAAcD,cACrEE,aAAc/D,EAAcmD,yBAAyBS,EAAEE,cAAcC,gBArDpE/D,EAwDKgE,YAAeC,IACzB,MAAOJ,EAAe,GAAIE,EAAe,IAAME,EAAYrQ,MAAM,KACjE,OAAOzuC,EAAAA,GAAK6E,OAAO,yBAA0B,CACzC65C,aAAc7D,EAAcmD,yBAAyBU,GACrDE,aAAc/D,EAAcmD,yBAAyBY,IACvD,EA7DG/D,EAgEKkC,gBAAmB5I,GAAgC,OAAPA,QAAO,IAAPA,OAAO,EAAPA,EAASkJ,mCAhE1DxC,EAkEKkE,eAAiB,WAE3B,YAAkB5pD,KAFkC6Z,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IACVguC,MAAMhtC,GAAMA,EAAEgvC,YAE/D,EArESnE,EAuEKoE,kBAAqBC,GACxBA,EAAkBC,wBAA0BD,EAAkBE,0BAC/D,CACEv9C,MAAOq9C,EAAkBC,uBACzBE,QAASH,EAAkBE,gCAE7BjqD,EA7ED0lD,EAgFKyE,aAAe,CAACnL,EAAsBoL,KAAiC,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAChF,IAAIC,EAAyB,IACtBC,EAAAA,GACHC,YAAoB,OAAPrM,QAAO,IAAPA,OAAO,EAAPA,EAASnI,KACtBp0C,KAAMmmD,EAAK0C,eAAetM,GAC1BA,UACAuM,QAASnB,EAAS,CAACA,GAAU,IAEjC,OAAQe,EAAW1oD,MACf,KAAK+oD,EAAAA,GAAYC,QACb,MAAMC,EAAwF,QAAhFrB,EAAU,OAAPrL,QAAO,IAAPA,GAAsE,QAA/DsL,EAAPtL,EAASoJ,UAAUP,MAAMhtC,GAAiB,8BAAXA,EAAE9f,cAAqC,IAAAuvD,OAA/D,EAAPA,EAAwEvqD,aAAK,IAAAsqD,GAAAA,EAC9Fc,EAAa,IACNA,EACHQ,UAAWD,GAC8E,QADtEnB,EACN,OAAPvL,QAAO,IAAPA,GAA4E,QAArEwL,EAAPxL,EAASoJ,UAAUP,MAAMhtC,GAAiB,oCAAXA,EAAE9f,cAA2C,IAAAyvD,OAArE,EAAPA,EAA8EzqD,aAAK,IAAAwqD,EAAAA,EACnF,EACNqB,gBAAiBF,GACsE,QAD9DjB,EACZ,OAAPzL,QAAO,IAAPA,GAA0E,QAAnE0L,EAAP1L,EAASoJ,UAAUP,MAAMhtC,GAAiB,kCAAXA,EAAE9f,cAAyC,IAAA2vD,OAAnE,EAAPA,EAA4E3qD,aAAK,IAAA0qD,EAAAA,EACjF,EACNoB,iBAAkBH,GACqE,QAD7Df,EACb,OAAP3L,QAAO,IAAPA,GAA0E,QAAnE4L,EAAP5L,EAASoJ,UAAUP,MAAMhtC,GAAiB,kCAAXA,EAAE9f,cAAyC,IAAA6vD,OAAnE,EAAPA,EAA4E7qD,aAAK,IAAA4qD,EAAAA,EACjF,EACNmB,UAAmD,KAAT,QAA/BjB,EAAQ,OAAP7L,QAAO,IAAPA,OAAO,EAAPA,EAASwK,cAAcuC,eAAO,IAAAlB,EAAAA,EAAI,GAC9CmB,WAA+D,KAAX,QAAxClB,EAAQ,OAAP9L,QAAO,IAAPA,OAAO,EAAPA,EAASwK,cAAcyC,wBAAgB,IAAAnB,EAAAA,EAAI,MAE5D,MACJ,KAAKU,EAAAA,GAAYU,WACbf,EAAa,IACNA,EACHQ,UAAW,EACXC,gBAAiB,EACjBC,iBAAkB,EAClBC,UAA2E,QAAlEf,EAAS,OAAP/L,QAAO,IAAPA,GAAyD,QAAlDgM,EAAPhM,EAASoJ,UAAUP,MAAMhtC,GAAiB,iBAAXA,EAAE9f,cAAwB,IAAAiwD,OAAlD,EAAPA,EAA2DjrD,aAAK,IAAAgrD,EAAAA,EAAI,EAC/EiB,WAA6E,QAAnEf,EAAS,OAAPjM,QAAO,IAAPA,GAA0D,QAAnDkM,EAAPlM,EAASoJ,UAAUP,MAAMhtC,GAAiB,kBAAXA,EAAE9f,cAAyB,IAAAmwD,OAAnD,EAAPA,EAA4DnrD,aAAK,IAAAkrD,EAAAA,EAAI,GAI7F,OAAOE,CAAU,EArHZzF,EAwHKyG,kBAAqBC,IAA0B,IAADC,EACxD,OAa+B,QAb/BA,EACS,OAALD,QAAK,IAALA,OAAK,EAALA,EAAO3wC,QAAO,CAAC6wC,EAAKC,KAAU,IAADC,EACzB,MAAM7P,EAAgD,QAAhC6P,EAAGD,EAAKE,gCAAwB,IAAAD,OAAA,EAA7BA,EAA+B1N,aACxD,IAAKnC,EACD,OAAO2P,EAEX,MAAMnB,EAAamB,EAAIzE,MAAMhtC,GAAMA,EAAEwwC,cAAgB1O,EAAiB9F,OACrD,IAAD6V,EAAZvB,EACkB,QAAlBuB,EAAAvB,EAAWI,eAAO,IAAAmB,GAAlBA,EAAoBxyD,KAAKqyD,EAAKnC,QAE9BkC,EAAIpyD,KAAKwrD,EAAcyE,aAAaxN,EAAkB4P,EAAKnC,SAE/D,OAAOkC,CAAG,GACX,WAAwB,IAAAD,EAAAA,EAAI,EAAE,EAtIhC3G,EA0IK4F,eAAkBtM,GACxB4J,EAAKlB,eAAe1I,GACbwM,EAAAA,GAAYC,QACZ7C,EAAKd,cAAc9I,GACnBwM,EAAAA,GAAYU,gBADhB,EA7IFxG,EAiLKiH,eAAkB3N,IAAkC,IAAD4N,EAAAC,EAC7D,OAAc,OAAP7N,QAAO,IAAPA,GAAkB,QAAX4N,EAAP5N,EAASoJ,iBAAS,IAAAwE,GAA0C,QAA1CC,EAAlBD,EAAoB/E,MAAMhtC,GAAiB,mBAAXA,EAAE9f,cAA0B,IAAA8xD,OAArD,EAAPA,EAA8D9sD,QAAS,EAAE,2ECnLjF,MAAM6N,GAAAA,EACKk/C,kBAAoBtxD,IAAoE,IAAnE,cAAEuxD,EAAa,SAAEC,GAAmCxxD,EACnF,OAAQuxD,GACJ,KAAK74C,EAAAA,EAAiBC,SAClB,OAAO64C,IAAatqD,EAAAA,EAAYyR,UAAY64C,IAAatqD,EAAAA,EAAYE,iBACzE,KAAKsR,EAAAA,EAAiBM,MAClB,OAAOw4C,IAAatqD,EAAAA,EAAYuqD,YAAcD,IAAatqD,EAAAA,EAAYC,cAE/E,OAAO,CAAI,EARNiL,EAWKD,0BAA4B5G,IAIO,IAADmmD,EAAA9qD,EAAA+qD,EAAA9qD,EAAA+qD,EAAAC,EAAAC,EAAA,IAJL,GACvChrD,EAAE,iBACFuL,EAAgB,oBAChBG,GAC8BjH,EAC9B,MAAMwmD,EAA8C,QAApCL,EAAK,OAAF5qD,QAAE,IAAFA,GAAQ,QAANF,EAAFE,EAAIE,YAAI,IAAAJ,GAAqB,QAArB+qD,EAAR/qD,EAAUorD,2BAAmB,IAAAL,OAA3B,EAAFA,EAA+B/nD,UAAE,IAAA8nD,EAAAA,EAAW,QAAX7qD,EAAIC,EAAGE,YAAI,IAAAH,GAAwB,QAAxB+qD,EAAP/qD,EAASorD,8BAAsB,IAAAL,OAAxB,EAAPA,EAAiC71C,YAAYnS,GAC/FsoD,EAAY,OAAFprD,QAAE,IAAFA,GAAQ,QAAN+qD,EAAF/qD,EAAIE,YAAI,IAAA6qD,GAAwB,QAAxBC,EAARD,EAAUI,8BAAsB,IAAAH,OAA9B,EAAFA,EAAkCloD,GAClD,OAAO4I,IAAwBu/C,GAAc1/C,IAAqB6/C,CAAO,iIC0D1E,MAAM1L,EA8DT,iCAAc2L,GAAoD,IAAzBC,EAAiB/zC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACzD,OAAO+zC,IAAc/iD,EAAAA,GAAKC,IAAI,qCACxBD,EAAAA,GAAKC,IAAI,oCACT8iD,CACV,CAEA,iCAAcC,GAA6D,IAAlCzB,EAAiBvyC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACzD,IAAKuyC,EAAM/5C,OACP,OAAO,EAEX,MAMMy7C,EAAmBvU,IAAAA,KAAgB6S,GAAOvO,gBAAehjC,GANrB,WACtC,OAD2EhB,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,GAEzDmoC,EAAsB+L,yBACxC/L,EAAsBgM,uBAE9B,CAMWC,CADaC,EAAAA,EAAqBC,mBAAmBtzC,EAAGuzC,EAAAA,GAAaC,eACvB1M,eAEzD,OAAOr0C,QAAQwgD,EACnB,EAkCHQ,EAxHYtM,EAAAA,EAEKuM,QAAU,UAFfvM,EAIKwM,gBAAmBppD,GAAU,kBAAAwB,OAA+BxB,GAJjE48C,EAOKyM,iBAAoBrpD,GAAU,YAAAwB,OAAyBxB,EAAE,WAP9D48C,EAQK0M,gBAAmBtpD,GAAU,YAAAwB,OAAyBxB,EAAE,UAR7D48C,EASK2M,WAAcvpD,GAAU,UAAAwB,OAAuBxB,GATpD48C,EAYK4M,uBAA0BxpD,GAAU,YAAAwB,OAAyBxB,EAAE,UAZpE48C,EAoBK6M,uBAA0BzpD,GAAU,YAAAwB,OAAiBxB,EAAE,YApB5D48C,EAqBK8M,qBAAwB1pD,GAAU,YAAAwB,OAAiBxB,GArBxD48C,EAsBK+M,sBAAyBh0D,GAAY,oBAAA6L,OAAyB7L,GAtBnEinD,EAuBKgN,eAAiB,gBAvBtBhN,EAyBKiN,eAAkBjQ,IAAyB,IAAD4N,EACpD,MAAMsC,EAAkC,CAAC,EAOzC,OANuD,QAApBtC,EAAG5N,EAAQoJ,iBAAS,IAAAwE,EAAAA,EAAI,IACjD7yC,SAASo1C,IACfD,EAAelN,EAAsB+M,sBAAsBI,EAASp0D,OAASo0D,EAASpvD,KAAK,IAE/FmvD,EAAelN,EAAsBgN,gBAAkBhQ,EAAQwK,cAExD0F,CAAc,EAjChBlN,EAoCKoN,eAAkBC,IAC5B,MAAMC,EAAkC,CAAC,EAIzC,OAHID,EAAYE,kBACZD,EAAeE,WAAaH,EAAYE,gBAAgBE,4BAA8B,KAEnFH,CAAc,EAzChBtN,EA4CK0N,qBAAuB,SAACL,GAA8E,IAAD3N,EAAAiO,EAAA,IAAnDja,EAAwB77B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EACxF,MAAMgoC,EAAwC,QAAtBH,EAAGhM,EAAQiM,mBAAW,IAAAD,EAAAA,EAAI,CAAC,EAKnD,OAJAG,EAAmBG,EAAsB4N,oBAAiD,QAA3BD,EAAAN,EAAYE,uBAAe,IAAAI,GAA3BA,EAA6BE,cACtF7N,EAAsB8N,yBACtB9vD,EACN01C,EAAQiM,YAAcE,EACfnM,CACX,EAnDSsM,EAqDKC,kBAAqBhpC,GAAW,GAAArS,OAAgBqS,GArDrD+oC,EAuDK4N,mBAAqB,uBAvD1B5N,EAwDK8N,oBAAsB,MAxD3B9N,EA2DK+L,sBAAwB,cA3D7B/L,EA4DKgM,wBAA0B,cA5D/BhM,EAwFK+N,aAAe,WAGN,IAFnBC,EAAgCn2C,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EACpC67B,EAAwB77B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAG5B,OADA67B,EAAQiM,YAAcK,EAAsBiO,iBAAiBD,EAAgBrO,YAAajM,EAAQiM,aAC3F,IACA1O,EAAAA,EAAYC,MAAM8c,MAClB/c,EAAAA,EAAYC,MAAMwC,GAE7B,EAjGSsM,EAmGKiO,iBAAmB,WAGV,IAFnBC,EAA4Cr2C,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAChDs2C,EAAoCt2C,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAExC,MAAMu2C,EAA4C,IAC3Cnd,EAAAA,EAAYC,MAA+B,OAAzBgd,QAAyB,IAAzBA,EAAAA,EAA6B,CAAC,MAChDjd,EAAAA,EAAYC,MAAuB,OAAjBid,QAAiB,IAAjBA,EAAAA,EAAqB,CAAC,IAE/C,OAAOld,EAAAA,EAAYC,MAAMkd,EAC7B,EA5GSpO,EAgHKqO,wBAA0B,WAA+F,IAADC,EAAA,IAA7F/O,EAAyB1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAI4yC,EAAuC5yC,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAC5G,MAAMuwD,EAAqD,QAAlCD,EAAG/O,EAAUA,EAAUlvC,OAAS,UAAE,IAAAi+C,OAAA,EAA/BA,EAAiC5a,QAC7D,GAAI+W,EAA0B,CAC1B,MAAM+D,EAAeC,EAAAA,EAAgBC,oBAAoBjE,GACzD,OAAOzK,EAAsB+N,aAAaQ,EAAqBC,EACnE,CACA,OAAOxO,EAAsB+N,aAAaQ,EAAqB,CAAC,EACpE,wNCrFG,MAAME,EAGT,sBAAcE,CAAgBpP,EAA2BqP,GACrD,OAAOrP,EAAUj8C,KAAK+yC,GAA2BA,EAASjzC,KAAOwrD,EAAiBxrD,GAAKwrD,EAAmBvY,GAC9G,CA4BA,2BAAcwY,GAA2D,IAAtCtP,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAChE,MAAMi3C,EAAiCvX,IAAAA,KAAgBgI,GAAWwP,aAAazP,GAC3Eh0C,QAAQg0C,EAAE/D,gBAGd,MAAO,CAAEyT,kBADiBzP,EAAUuP,GACRA,yBAChC,CAEA,6BAAcG,GAAwD,IAAjC1P,EAAyB1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC7D,OAAO0nC,EAAUA,EAAUlvC,OAAS,EACxC,CAkBA,yBAAc6+C,CAAmBC,EAAmC5P,GAChEA,EAAUxnC,SAASs+B,IACXA,EAAS0B,MAAQoX,EAAoBpX,QACrC1B,EAASkF,cAAe,EAC5B,GAER,CAEA,gDAAc6T,CACVC,GAEyB,IADzB9P,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAEjC,OAAO0nC,EAAUlvC,OAAS,EACpBknC,IAAAA,KAAgBgI,GAAW1D,gBACxByD,GACGh0C,QAAQg0C,EAAE/D,eACV+D,EAAE7+C,OAAS44C,EAAAA,GAAaM,SACxBruC,QACI+jD,EAAgBC,SAASzJ,MACpBhtC,GAAMA,EAAE02C,WAAWC,mBAAmBpsD,KAAOisD,EAAgBjsD,aAI5EpF,CACV,CAcA,yBAAoByxD,CAAaC,GAC7B,MAAM,SAAErZ,EAAQ,OAAEhxC,EAAM,eAAEsqD,GAAmBD,EAC7C,IACIrZ,EAAS6G,cAAsB,OAAN73C,QAAM,IAANA,EAAAA,EAAUgxC,EAAS6G,cAC5C7G,EAAS+G,iBAAkB,EAC3B/G,EAAS8G,gBAAiB,EAC1BwS,EAAe,CAAEtZ,WAAUuZ,KAAM,yBAEjC,MAAM,UAAEC,EAAS,YAAEC,SAAsB3zD,KAAK4zD,cAAcL,GAK5D,GAHArZ,EAAS8G,gBAAiB,EAC1B9G,EAAS+G,iBAAkB,EAEvByS,EAAW,CACX,MAAMP,EAA8BQ,EACpCzZ,EAASiZ,SAAWA,EACpBjZ,EAAS2Z,kBAAmB,EAGxB3Z,EAAS4Z,0BACT9zD,KAAK+zD,mBAAmB7Z,EAAU,CAAEt4C,MAAOs4C,EAAS4Z,2BAExDN,EAAe,CAAEtZ,WAAUuZ,KAAM,+BACrC,CACJ,CAAE,MAAOn3D,GACL2C,QAAQ6Y,IAAI,qBAAsB,CAAExb,UACpC49C,EAAS+G,iBAAkB,EAC3B/G,EAAS8G,gBAAiB,EAC1B9G,EAASiZ,SAAW,GACpBK,EAAe,CAAEtZ,WAAUuZ,KAAM,8BACrC,CACJ,CA0CA,mBAAcO,CAAY32D,GAA4E,IAA3E,SAAE68C,EAAQ,eAAEsZ,EAAc,QAAE9R,EAAO,UAAEuS,GAAmC52D,EAC/F,MAAM62D,UAAuBx3D,QAC7Bm8C,EAAAA,EAAAA,KAAUp9C,UACNy+C,EAASia,qBAAsB,EAC/BX,EAAetZ,EAAU,IAAKA,EAASkH,aAAcM,YAErD,IACI,GAAIA,EAAS,CACT,MAAM0S,QAAsBC,EAAAA,EAAYC,cAAcpa,EAASjzC,GAAI,CAAEy6C,UAASuS,cAG9E,GAFA/Z,EAASia,qBAAsB,EAE3B,eAAgBC,EAAe,CAG/B,GAFAZ,EAAetZ,EAAU,IAAKka,EAAc/vD,KAAMq9C,YAE9C0S,EAAc/vD,KAAKkwD,UACnB,MAAM,IAAIL,EAAe,gBAADzrD,OAAiBi5C,EAAO,oBAGpD,IAAK0S,EAAcI,aAAeJ,EAAc/vD,OAAS+vD,EAAc/vD,KAAKo9C,MACxE,MAAM,IAAI/kD,MAAM,0BAExB,MACI82D,EAAetZ,EAAU,IAAKA,EAASsH,aAE/C,MACItH,EAASia,qBAAsB,EAC/BX,EAAetZ,EAAU,CAAEyH,WAAY,GAAID,QAAS,IAE5D,CAAE,MAAO+S,GACLva,EAASia,qBAAsB,EAC/BX,EAAetZ,EAAU,CAAEwH,YACvB+S,aAAaP,EACblc,EAAAA,EAAMC,UAAU,CACZ5rC,MAAOK,EAAAA,GAAKC,IAAI,sBAChBopC,QAASrpC,EAAAA,GAAKC,IAAI,sDAGtBqrC,EAAAA,EAAMC,UAAU,CAAElC,QAASrpC,EAAAA,GAAKC,IAAI,2CAE5C,IAER,CAoEA,6BAAc+nD,CAAsB9rD,GAAgF,IAA/E,SAAEsxC,GAA4CtxC,EAC/E,MAAM2uC,EAA2B2C,EAAS3C,QAyB1C,GAxBI2C,EAAS51C,OAAS44C,EAAAA,GAAaI,SAC/BpD,EAAS4E,iBAAcj9C,EACvBq4C,EAASmF,yBAA0B,EACnCnF,EAASoF,SAAU,EACnB/H,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,UAAOpF,GAE9Dq4C,EAAS51C,OAAS44C,EAAAA,GAAaC,eAC/BjD,EAASuF,iBAAc59C,EACvB01C,EAAQsM,EAAAA,EAAsByM,iBAAiBpW,EAASjzC,UAAOpF,EAC/D01C,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,UAAOpF,EAC9Dq4C,EAASoF,SAAU,GAEnBpF,EAAS51C,OAAS44C,EAAAA,GAAaG,kBAC/BnD,EAASiG,kBAAet+C,EACxB01C,EAAQsM,EAAAA,EAAsByM,iBAAiBpW,EAASjzC,UAAOpF,EAC/D01C,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,UAAOpF,EAC9Dq4C,EAASoF,SAAU,GAEnBpF,EAAS51C,OAAS44C,EAAAA,GAAaK,UAC/BrD,EAASoG,kBAAez+C,EACxB01C,EAAQsM,EAAAA,EAAsB4M,uBAAuBvW,EAASjzC,UAAOpF,EACrEq4C,EAASoF,SAAU,GAGnBpF,EAAS51C,OAAS44C,EAAAA,GAAaM,QAAS,CACxC,MAAMmX,EAAqB9Q,EAAAA,EAAsB8M,qBAAqBzW,EAASjzC,WACxEswC,EAAQsM,EAAAA,EAAsB6M,uBAAuBxW,EAASjzC,KACrEswC,EAAQod,QAAsB9yD,EAC9Bq4C,EAASyG,kBAAe9+C,EAExBq4C,EAASiZ,SAAW,GACpBjZ,EAAS8G,gBAAiB,EAC1B9G,EAAS2Z,kBAAmB,EAC5B3Z,EAAS6G,mBAAgBl/C,EACzBq4C,EAAS4G,0BAAuBj/C,EAEhCq4C,EAASoF,QAAUpF,EAAS0G,mBAAmBM,aAAe/xC,QAAQ+qC,EAASyG,aACnF,CACAzG,EAAS3C,QAAUA,EAMnB,MAJmE,CAC/Dqd,gBAAiB1a,EACjB2a,eAAgBtd,EAGxB,CA0BA,wBAAcud,CAAkBC,GAC5B,MAAM,SAAE7a,EAAQ,QAAE3C,EAAO,6BAAEiS,EAA4B,QAAEpP,EAAO,IAAEtiC,GAAQi9C,EAC1E,OAAOzC,EAAgB0C,mBAAmB,CACtCzd,UACA/6C,UAAW09C,EAAS+a,qBACpBC,uBAAwBhb,EAASib,0BACjC3L,+BACApP,UACAtiC,OAER,CAiEA,yBAAci8C,CACV7Z,EACAkb,EACA5W,GAEA,MAAM,MAAE58C,EAAK,oBAAEyzD,EAAmB,YAAEC,EAAW,WAAEC,GAAeH,EAEhE,IAAI7d,EAA2BzC,EAAAA,EAAYC,MAAMmF,EAAS3C,SAAW,CAAC,GAEtE,GAAI2C,EAAS51C,OAAS44C,EAAAA,GAAaI,OAAQ,CACvC,MAAMwB,EAAcl9C,GAEd,QAAEo9C,EAAO,QAAEC,GAAY/E,EAAS6E,kBAChCG,EAAwBzL,SAASqL,GACjCK,EAAuBD,GAAiBF,GAAWE,GAAiBD,EAC1E/E,EAAS4E,YAAcA,EAElBK,GAKDjF,EAASmF,yBAA0B,EACnC9H,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,KAAO63C,EAC9D5E,EAASoF,SAAU,IALnBpF,EAASmF,yBAA0B,EACnCnF,EAASoF,SAAU,EAM3B,CACA,GAAIpF,EAAS51C,OAAS44C,EAAAA,GAAaC,aAAc,CAC7C,MAAMsC,EAAc79C,EACpBs4C,EAASuF,YAAcA,EACvBlI,EAAQsM,EAAAA,EAAsByM,iBAAiBpW,EAASjzC,KAAO48C,EAAAA,EAAsB2M,WACjF/Q,EAAYx4C,IAEhBswC,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,KAAOw4C,EAAY79C,MAC1Es4C,EAASoF,aAAmCz9C,IAAzBq4C,EAASuF,WAChC,CACA,GAAIvF,EAAS51C,OAAS44C,EAAAA,GAAaG,gBAAiB,CAChD,MAAM8C,EAAev+C,EACrBs4C,EAASiG,aAAeA,EACxB5I,EAAQsM,EAAAA,EAAsByM,iBAAiBpW,EAASjzC,KAAOk5C,EAAah5C,KAAKuV,GAC7EmnC,EAAAA,EAAsB2M,WAAW9zC,EAAEzV,MAEvCswC,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,KAAOk5C,EAAantC,OAC3EknC,EAASoF,UAAWa,EAAajsC,QAAiBgmC,EAASoF,QACvD8V,EAAeG,aACfrb,EAASoF,aAAoCz9C,IAA1Bq4C,EAASiG,aAEpC,CACA,GAAIjG,EAAS51C,OAAS44C,EAAAA,GAAaK,QAAS,CACxC,MAAM+C,EAAe1+C,EACrBs4C,EAASoG,aAAeA,EAEpBpG,EAASqG,mBAAmBiV,aAAeC,EAAAA,GAA2BC,WACtExb,EAASoF,QAAUt/C,KAAK21D,eAAe1kB,KAAKqP,GACrC8U,EAAeG,aACtBrb,EAASoF,SAAU,GAGnB8V,EAAeG,aACfhe,EAAQsM,EAAAA,EAAsB4M,uBAAuBvW,EAASjzC,KAAOq5C,EAE7E,CACA,GAAIpG,EAAS51C,OAAS44C,EAAAA,GAAaM,QAAS,CACxC,MAAM6G,EAAcziD,EAEd+yD,EAAqB9Q,EAAAA,EAAsB8M,qBAAqBzW,EAASjzC,IAE/E,GADAizC,EAAS0H,wBAA0ByT,EAC9BhR,EAYE,CACH,MAAMxD,EAAU3G,EAASiZ,SAASzJ,MAAMyB,GAAkBA,EAAEzS,OAAS2L,IACjExD,IACA3G,EAASyG,aAAeE,EACxB3G,EAAS4G,qBAAuC,OAAhBtC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9F,KAClDnB,EAAQod,GAAsB9Q,EAAAA,EAAsBiN,eAAejQ,GACnEtJ,EAAQsM,EAAAA,EAAsB6M,uBAAuBxW,EAASjzC,KAAO45C,EAAQnI,MAE7E6c,IACArb,EAASoF,aAAoCz9C,IAA1Bq4C,EAASyG,aAEpC,MArBQ2U,WACO/d,EAAQsM,EAAAA,EAAsB6M,uBAAuBxW,EAASjzC,KACrEswC,EAAQod,QAAsB9yD,EAC9Bq4C,EAASyG,kBAAe9+C,EACxBq4C,EAAS4G,0BAAuBj/C,GAGhC0zD,IACArb,EAASoF,QAAUnwC,QAAQ+qC,EAASyG,eAAiBzG,EAAS0H,wBAc1E,CAIA,GAHI1H,EAAS51C,OAAS44C,EAAAA,GAAa0Y,cAC/B1b,EAASoF,SAAU,GAEnBpF,EAAS51C,OAAS44C,EAAAA,GAAaO,QAAS,CACxC,MAAMyT,EAActvD,EAIpB,GAHAs4C,EAASkH,aAAe8P,EACxBhX,EAASoF,QAAUnwC,QAAQ+hD,GAEvBhX,EAASoF,QAAS,CAElB/H,EAD2BsM,EAAAA,EAAsB8M,qBAAqBzW,EAASjzC,KACjD48C,EAAAA,EAAsBoN,eAAeC,GACnE3Z,EAAUsM,EAAAA,EAAsB0N,qBAAqBL,EAAa3Z,EACtE,CACJ,CAEA,MAAMse,EAAyC9Y,EAAAA,EAAmBsG,yBAAyBnJ,EAAU3C,GACrG2C,EAAS3C,QAAUse,EAMnB,MAJ2D,CACvDjB,gBAAiB1a,EACjB2a,eAAgBtd,EAGxB,CAEA,0BAAcgb,CAAoBrY,GAC9B,IAAI3C,EAA2BzC,EAAAA,EAAYC,MAAM,CAAC,GAKlD,GAHImF,EAAS51C,OAAS44C,EAAAA,GAAaI,SAC/B/F,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,KAAOizC,EAAS4E,aAEvE5E,EAAS51C,OAAS44C,EAAAA,GAAaC,cAAgBjD,EAASuF,YAAa,CACrE,MAAMA,EAAcvF,EAASuF,YAC7BlI,EAAQsM,EAAAA,EAAsByM,iBAAiBpW,EAASjzC,KAAO48C,EAAAA,EAAsB2M,WACjF/Q,EAAYx4C,IAEhBswC,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,KAAOizC,EAASuF,YAAY79C,KACvF,CACA,GAAIs4C,EAAS51C,OAAS44C,EAAAA,GAAaG,iBAAmBnD,EAASiG,aAAc,CACzE,MAAMA,EAAejG,EAASiG,aAC9B5I,EAAQsM,EAAAA,EAAsByM,iBAAiBpW,EAASjzC,KAAOk5C,EAAah5C,KAAKuV,GAC7EmnC,EAAAA,EAAsB2M,WAAW9zC,EAAEzV,MAEvCswC,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,KAAOk5C,EAAantC,MAC/E,CAIA,GAHIknC,EAAS51C,OAAS44C,EAAAA,GAAaK,UAC/BhG,EAAQsM,EAAAA,EAAsB4M,uBAAuBvW,EAASjzC,KAAOizC,EAASoG,cAE9EpG,EAAS51C,OAAS44C,EAAAA,GAAaM,SAAWtD,EAASyG,aAAc,CACjE,MAAMgU,EAAqB9Q,EAAAA,EAAsB8M,qBAAqBzW,EAASjzC,IACzE45C,EAAU3G,EAASyG,aACzBpJ,EAAQod,GAAsB9Q,EAAAA,EAAsBiN,eAAejQ,GACnEtJ,EAAQsM,EAAAA,EAAsB6M,uBAAuBxW,EAASjzC,KAAO45C,EAAQnI,IACjF,CACA,GAAIwB,EAAS51C,OAAS44C,EAAAA,GAAaO,SAAWvD,EAASkH,aAAc,CACjE,MAAM8P,EAAchX,EAASkH,aAE7B7J,EAD2BsM,EAAAA,EAAsB8M,qBAAqBzW,EAASjzC,KACjD48C,EAAAA,EAAsBoN,eAAeC,GACnE3Z,EAAUsM,EAAAA,EAAsB0N,qBAAqBL,EAAa3Z,EACtE,CAKA,OAFAA,EAD+CwF,EAAAA,EAAmBsG,yBAAyBnJ,EAAU3C,GAG9FA,CACX,CAGA,+BAAcue,CAAyB5b,GACnC,IAAI3C,EAA2BzC,EAAAA,EAAYC,MAAM,CAAC,GAE9CmF,EAAS51C,KAAS44C,EAAAA,GAAaI,OAG/BpD,EAAS51C,OAAS44C,EAAAA,GAAaC,cAAgBjD,EAASuF,YAOxDvF,EAAS51C,OAAS44C,EAAAA,GAAaG,iBAAmBnD,EAASiG,aAO3DjG,EAAS51C,KAAS44C,EAAAA,GAAaK,QAG/BrD,EAAS51C,OAAS44C,EAAAA,GAAaM,SAAWtD,EAASyG,aAMnDzG,EAAS51C,OAAS44C,EAAAA,GAAaO,SAAWvD,EAASkH,aAMvD7J,EAAQsM,EAAAA,EAAsBwM,gBAAgBnW,EAASjzC,KAAOizC,EAASjzC,GAKvE,OAFAswC,EAD+CwF,EAAAA,EAAmBsG,yBAAyBnJ,EAAU3C,GAG9FA,CACX,CAEA,qCAAcwe,CAA+B7b,GACzC,IAAI3C,EAA2BzC,EAAAA,EAAYC,MAAMmF,EAAS3C,SAC1D,GAAI2C,EAASkF,cAAgBlF,EAASoF,QAAS,CAC3C,GAAIpF,EAAS51C,OAAS44C,EAAAA,GAAaI,QAAUpD,EAAS4E,YAAa,CAC/D,MAAMA,EAAsB5E,EAAS4E,YACrCvH,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,KAAO63C,CAClE,CACA,GAAI5E,EAAS51C,OAAS44C,EAAAA,GAAaC,cAAgBjD,EAASuF,YAAa,CACrE,MAAMA,EAAyBvF,EAASuF,YAEnCpG,EAAAA,EAAgBW,0BAA0B,CACvCx9C,UAAWijD,EAAYwV,qBACvB9a,WAAY5C,KAMhBA,EAAQsM,EAAAA,EAAsByM,iBAAiBpW,EAASjzC,KAAO48C,EAAAA,EAAsB2M,WACjF/Q,EAAYx4C,IAEhBswC,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,KAAOw4C,EAAY79C,MAC1Es4C,EAASoF,aAAmCz9C,IAAzBq4C,EAASuF,cAP5BvF,EAASuF,iBAAc59C,EACvBq4C,EAASoF,SAAU,EAQ3B,CACA,GAAIpF,EAAS51C,OAAS44C,EAAAA,GAAaG,iBAAmBnD,EAASiG,aAAc,CACzE,MAAMA,EAAiCjG,EAASiG,aAEhD,IAAI6V,GAAuB,EAC3B7V,EAAavkC,SAASkhC,IAEbkZ,GACA3c,EAAAA,EAAgBW,0BAA0B,CACvCx9C,UAAWsgD,EAAOmY,qBAClB9a,WAAY5C,MAGhBye,GAAc,EAClB,IAEAA,GACA9b,EAASiG,kBAAet+C,EACxBq4C,EAASoF,SAAU,IAEnB/H,EAAQsM,EAAAA,EAAsByM,iBAAiBpW,EAASjzC,KAAOk5C,EAAah5C,KAAKuV,GAC7EmnC,EAAAA,EAAsB2M,WAAW9zC,EAAEzV,MAEvCswC,EAAQsM,EAAAA,EAAsB0M,gBAAgBrW,EAASjzC,KAAOk5C,EAAantC,OAEnF,CAIA,GAHIknC,EAAS51C,OAAS44C,EAAAA,GAAaK,SAAWrD,EAASoG,eACnD/I,EAAQsM,EAAAA,EAAsB4M,uBAAuBvW,EAASjzC,KAAOizC,EAASoG,cAE9EpG,EAAS51C,OAAS44C,EAAAA,GAAaM,SAAWtD,EAASyG,aAAc,CACjE,MAAMgU,EAAqB9Q,EAAAA,EAAsB8M,qBAAqBzW,EAASjzC,IACzE45C,EAAsB3G,EAASyG,aACrCpJ,EAAQod,GAAsB9Q,EAAAA,EAAsBiN,eAAejQ,GACnEtJ,EAAQsM,EAAAA,EAAsB6M,uBAAuBxW,EAASjzC,KAAO45C,EAAQnI,IACjF,CACA,GAAIwB,EAAS51C,OAAS44C,EAAAA,GAAaO,SAAWvD,EAASkH,aAAc,CACjE,MAAMuT,EAAqB9Q,EAAAA,EAAsB8M,qBAAqBzW,EAASjzC,IAC/EswC,EAAQod,GAAsB9Q,EAAAA,EAAsBoN,eAAe/W,EAASkH,cAC5E7J,EAAUsM,EAAAA,EAAsB0N,qBAAqBrX,EAASkH,aAAc7J,EAChF,CAEA,MAAMse,EAAyC9Y,EAAAA,EAAmBsG,yBAC9DnJ,EACA3C,GAEJ2C,EAAS3C,QAAUzC,EAAAA,EAAYC,MAAM8gB,EACzC,CAEA,MAAO,CAAEjB,gBAAiB1a,EAAU2a,eAAgBtd,EACxD,CA4BA,+BAAc0e,GACV,MAAMC,GAD2Dx6C,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IACnClB,QAAQ0/B,GAA2BA,EAASkF,eAC7E,IAAI+W,EACAC,EACJ,IAAK,MAAMlc,KAAYgc,EACnB,IAAK,MAAMG,KAAgD,QAAjCC,EAAIpc,EAASqc,4BAAoB,IAAAD,EAAAA,EAAI,GAAI,CAAC,IAADA,EAC/D,IACKH,GACD9c,EAAAA,EAAgBW,0BAA0B,CACtCx9C,UAAW65D,EAAgBpB,qBAC3B9a,WAAYD,EAAS3C,UAKzB,OAFA4e,EAAsBE,EACtBD,EAA8Blc,EACvB,CAAEic,sBAAqBC,8BAEtC,CAEJ,MAAO,CAAED,yBAAqBt0D,EAAWu0D,iCAA6Bv0D,EAC1E,EA6IH20D,EA93BYlE,EAAAA,EACKqD,eAAiB,IAAIc,OAAO,2CADjCnE,EAOKoE,2BAA6B,SACvCC,GAE4B,IAD5BvT,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAEjC,GAAI0nC,EAAUlvC,OAAS,EAAG,CAItB,OAHmDknC,IAAAA,KAAgBgI,GAAWwT,eACzEzT,GAAoBA,EAAEvH,MAAQ+a,EAAa/a,SAAWuH,EAAE/D,cAGjE,CAEJ,EAlBSkT,EAoBKuE,uBAAyB,SACnCF,GAE4B,IAD5BvT,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAEjC,GAAI0nC,EAAUlvC,OAAS,EAAG,CAItB,OAH+CknC,IAAAA,KAAgBgI,GAAW1D,gBACrEyD,GAAoBA,EAAEvH,MAAQ+a,EAAa/a,SAAWuH,EAAE/D,cAGjE,CAEJ,EA/BSkT,EA6CKwE,8CAAgD,SAC1D1T,GAEE,IADF2T,IAAyBr7C,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,KAAAA,UAAA,GAEzB,MAAM,kBAAEm3C,GAAsBP,EAAgBI,qBAAqBtP,GACnEA,EAAUxnC,SAASs+B,IAEXA,EAAS0B,QAA0B,OAAjBiX,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBjX,SACpC1B,EAAS51C,OAAS44C,EAAAA,GAAa0Y,aAC3BmB,GAAoB7c,EAAS51C,OAAS44C,EAAAA,GAAaK,WAExDrD,EAASoF,SAAU,EACvB,GAER,EA3DSgT,EAuFK0E,4BAA8B,WAA0C,IAAzC5T,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC1E,GAAI0nC,EAAUlvC,OACV,OACIknC,IAAAA,KAAgBgI,GAAW1D,gBAAgByD,GAAoBh0C,QAAQg0C,EAAE/D,gBAAkB+D,EAAE7D,WAC7F8D,EAAU,EAItB,EA/FSkP,EAoIMsB,cAAgBn4D,UAC3B,MAAM,QAAE87C,EAAO,SAAE2C,EAAQ,OAAEhxC,EAAM,eAAEsqD,EAAc,UAAES,GAAcV,EAE3D0D,EAAwB94C,KAAKC,UAAiB,OAAPm5B,QAAO,IAAPA,EAAAA,EAAW,CAAC,GAEzD,GAAI2C,EAAS4Z,yBACT,IACI,MAAMoD,QAAyC7C,EAAAA,EAAY8C,WACvDjd,EAAS4Z,yBACT,CAAEsD,aAAc,CAAE7f,QAAS0f,KAG/B,MAAO,CACHvD,UAAWwD,EAAgB1C,WAC3Bb,YAAauD,EAAgB7yD,KAAO,CAAC,IAAK6yD,EAAgB7yD,KAAMqnD,YAAY,SAAU7pD,EAE9F,CAAE,MAAOvF,GACL07C,EAAAA,EAAMC,UAAU,CAAElC,QAASrpC,EAAAA,GAAKC,IAAI,8CAGpCutC,EAAS4Z,8BAA2BjyD,EACpC2xD,EAAe,CAAEtZ,YACrB,CAGJ,MAAMmd,EAAand,EAAS0G,mBAAmB0W,yBAA2BpuD,EAAS,GAC7EquD,QAAiDlD,EAAAA,EAAYmD,YAAYtd,EAASjzC,GAAI,CACxFgtD,YACA/qD,OAAQmuD,EACRD,aAAc,CAAE7f,QAAS0f,GACzBQ,MAAOJ,EAAa7oB,EAAAA,EAAUiE,uBAAyBjE,EAAAA,EAAUkE,oCAGrE,MAAO,CAAEghB,UAAW6D,EAAoB/C,WAAYb,YAAa4D,EAAoBlzD,KAAM,EArKtFiuD,EA2NKoF,oBAAuBC,IACjC,IAAI,UAAEvU,EAAS,eAAEwU,EAAc,iBAAEpZ,EAAgB,QAAEpE,GAAYud,EAE/D,MAAMnO,EAA+BjC,EAAAA,EAAckC,gBAAgBjL,GAGnE4E,EAAU5oC,QAAQ2oC,GAAMh0C,QAAQg0C,EAAExC,gBAAe/kC,SAASunC,IAClDA,EAAErC,wBAAyC,OAAhBtC,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9F,QAC7C0B,GAAWviC,EAAAA,EAAOC,IAAI,mDAAoD,CAAEoiC,SAAUiJ,EAAG3E,qBACzF8T,EAAgBoC,uBAAuB,CAAExa,SAAUiJ,IACvD,IAGJ,IACI0P,EADAgF,GAA2B,EAE/BzU,EAAUxnC,SAASs+B,IACf,GAAI2d,EAAiB,CACjB,MAAMC,EAA0BxF,EAAgBoE,2BAA2Bxc,EAAUkJ,GAC/EiP,EAAemE,EAAKjE,oBAAoBrY,GAG9C,GAAK4d,EAGE,CACH,MAAMC,EAAiCjjB,EAAAA,EAAYC,MAAM+iB,GAEzD5d,EAAS3C,QAAUsM,EAAAA,EAAsB+N,aAAamG,EAAiBxgB,QAAS8a,GAChFC,EAAgB0F,mCAAmC,CAC/C9d,WACA6d,mBACAvO,gCAER,MAXItP,EAAS3C,QAAUsM,EAAAA,EAAsB+N,aAAagG,EAAgBvF,GACtEC,EAAgB0F,mCAAmC,CAAE9d,WAAUsP,iCAY/DtP,EAAS51C,OAAS44C,EAAAA,GAAa0Y,aAC/BtD,EAAgByB,mBAAmB7Z,EAAU,CAAC,GAK9CA,EAASkF,eAAiBlF,EAASoF,UACnCpF,EAAS+d,eAAgB,EACzBpF,EAAoB3Y,EACpB2d,GAAkB,EAE1B,KAWAhF,GACAP,EAAgBS,mBAAmBF,EAAmBzP,EAC1D,EAtRKkP,EA4UK4F,aAAgBhe,IAClBA,EAASie,gBAAkB,IAAIC,MAAMC,GACzC/F,EAAgBgG,UAAUpe,EAAUme,EAAUpD,wBA9U7C3C,EAkVKgG,UAAY,CACtBpe,EACA19C,EACA49C,EACAtiC,IAEiCuhC,EAAAA,EAAgBW,0BAA0B,CACvEE,WACA19C,YACA29C,WAAYD,EAAS3C,QACrBz/B,MACAsiC,YA7VCkY,EA8WK0C,mBAAsBuD,IAChC,MAAM,UACF/7D,EAAS,uBACT04D,EAAyB,GAAE,QAC3B3d,EAAO,6BACPiS,EAA4B,QAC5BpP,EAAO,IACPtiC,GACAygD,EAEEC,EAAgDA,KAClD,GAAIhP,GAAgC0L,EAAuBhhD,OAAS,EAAG,CAOnE,OAFIghD,EAAuBtmB,SAAS4a,EAGxC,CAGA,OAAO,CAAI,EAIf,IAAIiP,GAAyB,EAE7B,GAAIj8D,EAAW,CACX,MAAMk8D,EAAsCF,IACtCG,EAAoCtf,EAAAA,EAAgBW,0BAA0B,CAChFx9C,YACA29C,WAAY5C,EACZ6C,YAEJqe,EAAgBC,GAA8BC,EAC9Cve,GACIn7C,QAAQ6Y,IAAI,GAADrP,OAAIqP,EAAG,yCAAyC,CACvD4gD,6BACAC,2BACAn8D,YACAi8D,gBACAlhB,UACAiS,gCAEZ,KAAO,CACH,MAAMkP,EAAsCF,IAC5CC,EAAgBC,EAChBte,GACIn7C,QAAQ6Y,IAAI,GAADrP,OACJqP,EAAG,yCACNg9B,EAAAA,EAAYC,MAAM,CACd2jB,6BACAl8D,YACAi8D,gBACAlhB,UACAiS,iCAGhB,CACA,OAAOiP,CAAa,EA1afnG,EAmsBK0F,mCAAsC78D,IAChD,MAAM,SAAE++C,EAAQ,iBAAE6d,EAAgB,6BAAEvO,EAA4B,IAAE1xC,GAAQ3c,EAG1Em3D,EAAgByD,+BAA+B7b,GAE/C,MAAM3C,EAA2BzC,EAAAA,EAAYC,MACzCgI,EAAAA,EAAmBsG,yBAAyBnJ,EAAUA,EAAS3C,UAG7D+gB,EAAqBhG,EAAgBwC,kBAAkB,CACzD5a,WACA3C,UACAiS,+BACA1xC,IAAI,GAADrP,OAAKqP,EAAG,2CAGfoiC,EAASkF,aAAekZ,EACxBpe,EAAS3C,QAAUA,EAGnB+a,EAAgByD,+BAA+B7b,GAE/CA,EAAS4d,wBAA0BC,CAAgB,EA1tB9CzF,EAmvBKsG,sBACVC,IAEA,MAAM,aAAElC,EAAY,UAAEvT,EAAY,GAAE,6BAAEoG,GAAiCqP,EAEjEC,EAAyC1V,EAAUsG,MACpDvG,GAAoBA,EAAEvH,MAAQ+a,EAAa/a,QAGhD,GAAIkd,EAAc,CACd,MAAMhB,EAA0BxF,EAAgBoE,2BAA2BoC,EAAc1V,GAGzF,GAAK0U,EAOE,CACH,MAAMC,EAAiCjjB,EAAAA,EAAYC,MAAM+iB,GAEzDgB,EAAavhB,QAAUsM,EAAAA,EAAsB+N,aAAamG,EAAiBxgB,QAAS,CAAC,GACrF+a,EAAgB0F,mCAAmC,CAC/C9d,SAAU4e,EACVf,mBACAvO,+BACA1xC,IAAK,yBAEb,MAhBIghD,EAAavhB,QAAU,CAAC,EACxB+a,EAAgB0F,mCAAmC,CAC/C9d,SAAU4e,EACVtP,+BACA1xC,IAAK,0BAkBb,GAJIghD,EAAa1Z,cAAgB0Z,EAAax0D,OAAS44C,EAAAA,GAAa0Y,aAChEtD,EAAgByB,mBAAmB+E,EAAc,CAAC,IAGjDA,EAAa1Z,cAAiB0Z,EAAa1Z,cAAgBjwC,QAAQ2pD,EAAaxZ,SACjF,OAAOgT,EAAgBsG,sBAAsB,IACtCC,EACHlC,aAAcmC,GAG1B,CACA,OAAOA,CAAY,EA9xBdxG,EAmyBKyG,gBACVC,IAEA,MAAM,UAAE5V,EAAY,GAAE,iBAAE5E,EAAgB,UAAEjoC,GAAcyiD,GAEhDnG,kBAAmBG,GAAwBV,EAAgBI,qBAAqBtP,GAElF6V,EAA8BC,IAChC,MAAMJ,EAAyC1V,EAAUsG,MACpDvG,GAAoBA,EAAEvH,MAAQsd,IAGnC,GAAIJ,EAAc,CAAC,IAADK,EACd,MAAMrB,EAAoDxF,EAAgBoE,2BACtEoC,EACA1V,GAGJ,IAAI5I,EAAeqJ,EAAAA,EAAsB+N,aAA6C,QAAjCuH,EAAwB,OAAvBrB,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBvgB,eAAO,IAAA4hB,EAAAA,EAAI,CAAC,EAAG,CAAC,GAC/F3e,EAAe1F,EAAAA,EAAYC,MACvBgI,EAAAA,EAAmBsG,yBAAyByV,EAActe,IAG9D,MAAM4e,EAAiC9G,EAAgBwC,kBAAkB,CACrE5a,SAAU4e,EACVtP,6BAA8BjC,EAAAA,EAAckC,gBAAgBjL,GAC5DjH,QAASiD,EACT1iC,IAAK,+BAET,IACKshD,GACAA,GAAyBN,EAAa1Z,cACtCga,IACIN,EAAax0D,OAAS44C,EAAAA,GAAaK,SAAWub,EAAax0D,OAAS44C,EAAAA,GAAa0Y,aAEtF,OAAOqD,EAA2BH,EAAald,MAEvD,CACA,OAAOkd,CAAY,EA6BvB,GAAI1V,EAAUlvC,OAAS,IAJSkvC,KACpBj0C,QAAQi0C,EAAUsG,MAAMhtC,GAAoBA,EAAE0iC,cAAgB1iC,EAAEpY,OAAS44C,EAAAA,GAAa0Y,eAGrEyD,CAAuBjW,GAAY,CAC5D,MAAMkW,EAAalW,EAAU,GAAGmW,eAAiBtJ,EAAAA,GAAauJ,SACxDC,EAAclS,EAAAA,EAAc4F,eAAe3O,GAMjD,GAJI4E,EAAU,GAAGnB,eAAiBpE,EAAAA,GAAoBG,OAClDznC,GACA+iD,IACCG,IAAgBpM,EAAAA,GAAYU,YAAc0L,IAAgBpM,EAAAA,GAAYC,WACtCn+C,QAAQi0C,EAAU,GAAG7L,QAAQmiB,oBAC9D,MAAO,CAAEC,SAAS,EAAOZ,iBAAiB,GAK9C,GAFME,EADyCjG,EACdA,EAAoBpX,OACnB,GAE9B,MAAO,CAAE+d,SAAS,EAAOZ,iBAAiB,GACvC,CACH,MAAMa,EA3CqD,WAExC,IADvBxW,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAkBjC,OAfI0nC,EAAUlvC,OAAS,EACbknC,IAAAA,KAAgBgI,GACbhD,OACI+C,GACGA,EAAE7+C,OAAS44C,EAAAA,GAAaK,SACxB4F,EAAE7+C,OAAS44C,EAAAA,GAAa0Y,eACtBzS,EAAE/D,cACJ/F,EAAAA,EAAgBW,0BAA0B,CACtCx9C,UAAW2mD,EAAE8R,qBACb9a,WAAYgJ,EAAE5L,YAEjB4L,EAAE7D,UAEVhE,UACH,EAEd,CAuBqCue,CAA2DzW,GACxF,MAAO,CAAEuW,SAAS,EAAOZ,gBAAiD,IAAhCa,EAAqB1lD,OACnE,CACJ,CAEA,MAAO,CAAE6kD,iBAAiB,EAAMY,SAAS,EAAM,2NCt6BhD,MAAMG,EAqCT,+BAAoBC,CAAmB5+D,GAAuC,IAAD6+D,EAEzE,MAAM,WAAEC,EAAU,IAAE9yD,EAAG,eAAE+yD,GAAmB/+D,EAEtCg/D,EAAsBL,EAAgBM,uBAAuBH,GACnE,GAAII,EAAAA,EAA2BC,yBAAyBnzD,EAAI8mD,MAA0B,OAAnBkM,QAAmB,IAAnBA,GAA4B,QAATH,EAAnBG,EAAqB5iB,eAAO,IAAAyiB,OAAT,EAAnBA,EAA8BxW,aAC7F,MAAM6W,EAAAA,EAA2BE,oCAGrC,MAAQC,kBAAmBC,EAAS,yBAAEC,GAA6B16D,KAAK26D,oBAAoBx/D,GAc5F,MAAO,CAAEy/D,YAF4B,CAAEpX,YAVKxjD,KAAK66D,uBAAuB1/D,GAUpBs/D,YAAWK,cARzCC,EAAAA,GAAeC,iBAAiB,CAAEC,SAAU9zD,EAAK8yD,eAQOiB,yBANXl7D,KAAKm7D,8BAA8B,CAClGjB,iBACA/yD,MACAi0D,UAAWC,EAAAA,EAAgBC,aAAa,CAAErB,aAAY9yD,WAKpCuzD,2BAC1B,CAEA,6BAAeG,CAAsBx9D,GAA6E,IAADk+D,EAAAC,EAAA,IAA3E,IAAEr0D,EAAG,WAAE8yD,GAA0C58D,EACnF,MAAM,MAAE4wD,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,IAAOv0D,EAChDgzD,EAAsBL,EAAgBM,uBAAuBH,GAE7D0B,EAAiF,QAA5CJ,EAAsB,OAAnBpB,QAAmB,IAAnBA,GAA4B,QAATqB,EAAnBrB,EAAqB5iB,eAAO,IAAAikB,OAAT,EAAnBA,EAA8BhY,mBAAW,IAAA+X,EAAAA,EAAI,CAAC,EAEtFK,EAAmD,CAAC,EACpDC,EAA4C,CAAC,EAC7CC,EAA+C,CAAC,EAEhDC,EAAiBA,CACnBp1D,EACAq1D,EACAC,KAEAt1D,EAAMiV,SACDxU,IAAO,IAAA80D,EAAAC,EAAA,OAAMF,EAAqBD,EAAM50D,IAA+C,QAAzC80D,EAA4B,QAA5BC,EAAG/0D,EAAKg1D,4BAAoB,IAAAD,OAAA,EAAzBA,EAA2B3Y,mBAAW,IAAA0Y,EAAAA,EAAI,CAAC,CAAC,IAElGv1D,EAAMiV,SAASxU,IAAa,IAADi1D,EAAAC,EAAAC,EAAAC,EACvB,MAAMC,EAAoB,WAA0C,IAAzCrZ,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACxD,MAAM,kBAAEm3C,GAAsBP,EAAAA,EAAgBI,qBAAqBtP,GACnE,GAAIyP,EAAmB,CAAC,IAAD6J,EAAAC,EACnB,MAAMC,EAASZ,EAAM50D,GACfo8C,EAAuE,QAAzCkZ,EAA4B,QAA5BC,EAAG9J,EAAkBtb,eAAO,IAAAolB,OAAA,EAAzBA,EAA2BnZ,mBAAW,IAAAkZ,EAAAA,EAAI,CAAC,EAC5EG,EAAuDZ,EAAqBW,GAElF,GAAIC,EAAqB,CACrB,MAAM/K,EAAsC,IACrChd,EAAAA,EAAYC,MAAM8nB,MAClB/nB,EAAAA,EAAYC,MAAMyO,IAEzByY,EAAqBW,GAAU9K,CACnC,MACImK,EAAqBW,GAAUpZ,CAEvC,CACJ,EACAiZ,EAAoC,QAAnBJ,EAACj1D,EAAK01D,qBAAa,IAAAT,OAAA,EAAlBA,EAAoBjZ,WACtCqZ,EAAuC,QAAtBH,EAACl1D,EAAK21D,wBAAgB,IAAAT,OAAA,EAArBA,EAAuBlZ,WACzCqZ,EAA2C,QAA1BF,EAACn1D,EAAK41D,4BAAoB,IAAAT,OAAA,EAAzBA,EAA2BnZ,WAC7CqZ,EAAwC,QAAvBD,EAACp1D,EAAK61D,yBAAiB,IAAAT,OAAA,EAAtBA,EAAwBpZ,UAAU,GACtD,EAGN2Y,EAAsB9N,GAAQ7mD,GAASA,EAAK6kD,QAAS4P,GACrDE,EAAyBN,GAAWr0D,GAASA,EAAK81D,WAAYpB,GAC9DC,EAA0BL,GAAYt0D,GAASA,EAAK+1D,YAAavB,GAQjE,MAN4C,CACxCwB,QAASzB,EACT0B,cAAezB,EACf3N,MAAO4N,EACPJ,SAAUK,EAGlB,CAEA,0CAAqBX,CAA6BvyD,GAIsC,IAJrC,eAC/CsxD,EAAc,IACd/yD,EAAG,UACHi0D,GACsCxyD,EACtC,MAAM,MAAEqlD,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,IAAOv0D,EAChDm2D,QAAuBp/C,QAAQ+xB,IACjCge,EAAM9mD,KAAI1L,UAAiB,IAAD8hE,EAAAC,EAAAC,EACtB,MAAMC,QAEyC,QAFvBH,EAAMrD,EACzByD,kBACAjU,MAAMhtC,GAAMA,EAAEkhD,KAAK3R,SAAW2R,EAAK3R,gBAAO,IAAAsR,OAAA,EAFjBA,EAGxBM,cAkBN,MAhB6C,CACzC52D,GAAI22D,EAAK3R,OACT6R,oBAC6F,QAD1EN,EACsD,QADtDC,EACfrC,EAAU2C,gBAAgBrU,MAAMhtC,IAAC,IAAAshD,EAAA,OAAW,QAANA,EAAAthD,EAAEtV,YAAI,IAAA42D,OAAA,EAANA,EAAQ/R,UAAW2R,EAAK3R,MAAM,WAAC,IAAAwR,OAAA,EAArEA,EAAuEQ,0BAAkB,IAAAT,EAAAA,EAAI,GACjGE,kBACAQ,WAAY,CACRthE,KAAMghE,EAAKhhE,KACX0H,KAAMs5D,EAAKt5D,KACX65D,kBAAmBP,EAAKQ,qBACxBC,oBAAqBT,EAAKU,sBAC1B1T,MAAOgT,EAAKW,UACZC,aAAcZ,EAAKa,YACnBC,uBAAwBd,EAAKe,gBAAkB,CAAC,GAIhC,KAIhC,MAAO,CACHC,QAAS,CACLlB,sBAAuBxD,EAAe2D,WAAWgB,EAAAA,GAASC,KAC1DC,4BAA6B7E,EAAe2D,WAAWgB,EAAAA,GAASG,MAChElB,oBAAqB1C,EAAU6D,kBAEnChR,MAAOqP,EACP7B,SAAUA,EAASt0D,KAAK+3D,IAAO,IAAAC,EAAAC,EAAA,MAAM,CACjCn4D,GAAIi4D,EAAQhC,UACZY,oBAE4B,QAFTqB,EACkE,QADlEC,EACfhE,EAAUiE,mBAAmB3V,MAAMhtC,IAAC,IAAA4iD,EAAA,OAAW,QAANA,EAAA5iD,EAAEtV,YAAI,IAAAk4D,OAAA,EAANA,EAAQpC,aAAcgC,EAAQhC,SAAS,WAAC,IAAAkC,OAAA,EAAjFA,EACMnB,0BAAkB,IAAAkB,EAAAA,EAAI,GAChCjB,WAAY,CACRthE,KAAMsiE,EAAQtiE,KACd0H,KAAM46D,EAAQ56D,KACdogD,KAAMwa,EAAQxa,KACd9B,QAASsc,EAAQjT,QAExB,IACDoR,cAAe3B,EAAUv0D,KAAKo4D,IAAQ,IAAAC,EAAAC,EAAA,MAAM,CACxCx4D,GAAIs4D,EAASpC,WACbW,oBAE4B,QAFT0B,EACsE,QADtEC,EACfrE,EAAUsE,oBAAoBhW,MAAMhtC,IAAC,IAAAijD,EAAA,OAAW,QAANA,EAAAjjD,EAAEtV,YAAI,IAAAu4D,OAAA,EAANA,EAAQxC,cAAeoC,EAASpC,UAAU,WAAC,IAAAsC,OAAA,EAArFA,EACMxB,0BAAkB,IAAAuB,EAAAA,EAAI,GAChCtB,WAAY,CACRthE,KAAM2iE,EAAS3iE,KACf0H,KAAMi7D,EAASj7D,KACfs+C,QAAS2c,EAAStT,QAEzB,IAET,CAIA,yBAAe2T,CAAkBtpD,GAMS,IANR,KAC9BupD,EAAI,aACJC,EAAY,YACZliB,EAAW,YACXmiB,EAAW,sBACXC,GACiB1pD,EACjB,MAAM2pD,EAAkC,CACpCC,QAASL,EAAK54D,GACdk5D,YAAaL,EACb7d,aAAcjiD,KAAKogE,qBAAqBxiB,GACxCmiB,YAAaA,GAiBjB,OAfIniB,IAAgByiB,EAAAA,GAAgBC,eAChCL,EAAcM,kCACVP,GAEJpiB,IAAgByiB,EAAAA,GAAgBriB,OAASJ,IAAgByiB,EAAAA,GAAgBpiB,QACzEgiB,EAAc/d,yBAA2B8d,GAEzCpiB,IAAgByiB,EAAAA,GAAgBniB,WAChC+hB,EAAc9d,4BACV6d,GAEJpiB,IAAgByiB,EAAAA,GAAgBliB,eAChC8hB,EAAc7d,iCACV4d,GAEDC,CACX,CAqJA,0BAActF,CAAoBx/D,GAAuC,IAADqlE,EACpE,MAAM,IAAEr5D,EAAG,WAAE8yD,GAAe9+D,EACtBslE,GAAiC,QAAtBD,EAAAvG,EAAWyG,mBAAW,IAAAF,OAAA,EAAtBA,EAAwB/F,YAAa,GAChDD,EAAwC,GAiBxCmG,EAAYC,IASW,IATU,QACnCrpB,EAAO,KACPnwC,EAAI,UACJy5D,EAAS,YACTjjB,EAAW,YACXkjB,EAAW,aACXC,EAAY,yBACZzS,EAAwB,sBACxB0R,GACmBY,EAwFnBC,EAAUjlD,SAASikD,IACf,MAAMmB,EAxFenB,KACrB,MAAMoB,EAAoBA,IAAepB,EAAK5d,eAAiBrE,EAE/D,IAAIsjB,GAA2B,EAC/B,GAAIrB,EAAK1d,4BAA6B,CAClC,MAAMgf,EAAgDtB,EAAK1d,4BACvDvE,IAAgByiB,EAAAA,GAAgBniB,UAAY4iB,IACxCA,IAAgBM,EAAAA,GAAYC,OAC5BH,EAAkBD,KAAuBE,EAAgBG,cAEzDR,IAAgBM,EAAAA,GAAYG,cAC5BL,EAAkBD,KAAuBE,EAAgBK,sBAEzDV,IAAgBM,EAAAA,GAAYK,YAC5BP,EAAkBD,KAAuBE,EAAgBO,qBAEzDZ,IAAgBM,EAAAA,GAAYO,aAC5BT,EAAkBD,KAAuBE,EAAgBS,sBAEzDd,IAAgBM,EAAAA,GAAYS,UAC5BX,EAAkBD,KAAuBE,EAAgBW,uBAEzDhB,IAAgBM,EAAAA,GAAYW,YAC5Bb,EAAkBD,KAAuBE,EAAgBa,oBAGrE,MAAO,GAAInC,EAAKzd,iCAAkC,CAC9C,MAAM6f,EAAwDpC,EAAKzd,iCAC/DxE,IAAgByiB,EAAAA,GAAgBliB,cAAgB4iB,IAC5CA,IAAiBmB,EAAAA,EAAaC,gBAC9BjB,EAAkBD,KAAuBgB,EAAoBG,uBAE7DrB,IAAiBmB,EAAAA,EAAaG,iBAC9BnB,EAAkBD,KAAuBgB,EAAoBK,wBAE7DvB,IAAiBmB,EAAAA,EAAaK,WAC9BrB,EAAkBD,KAAuBgB,EAAoBO,iBAE7DzB,IAAiBmB,EAAAA,EAAaO,mBAC9BvB,EAAkBD,KAAuBgB,EAAoBS,0BAE7D3B,IAAiBmB,EAAAA,EAAaS,OAC9BzB,EAAkBD,KAAuBgB,EAAoBW,aAE7D7B,IAAiBmB,EAAAA,EAAaW,YAC9B3B,EAAkBD,KAAuBgB,EAAoBa,kBAE7D/B,IAAiBmB,EAAAA,EAAaL,UAC9BX,EAAkBD,KAAuBgB,EAAoBc,gBAE7DhC,IAAiBmB,EAAAA,EAAac,SAC9B9B,EAAkBD,KAAuBgB,EAAoBgB,eAE7DlC,IAAiBmB,EAAAA,EAAagB,UAC9BhC,EAAkBD,KAAuBgB,EAAoBkB,gBAE7DpC,IAAiBmB,EAAAA,EAAakB,eAC9BlC,EAAkBD,KAAuBgB,EAAoBoB,sBAE7DtC,IAAiBmB,EAAAA,EAAaoB,aAC9BpC,EAAkBD,KAAuBgB,EAAoBsB,oBAE7DxC,IAAiBmB,EAAAA,EAAab,OAC9BH,EAAkBD,KAAuBgB,EAAoBuB,aAE7DzC,IAAiBmB,EAAAA,EAAaoB,aAC9BpC,EAAkBD,KAAuBgB,EAAoBwB,eAE7D1C,IAAiBmB,EAAAA,EAAaoB,aAC9BpC,EAAkBD,KAAuBgB,EAAoByB,oBAGzE,MACIxC,EAAkBD,IAEtB,OAAOC,CAAe,EAaAyC,CAAgB9D,GAChC+D,EAXgB/D,IACfvN,EAAAA,EAAgB0C,mBAAmB,CACtCzd,UACA/6C,UAAWqjE,EAAKgE,yBAChB3O,uBAAwB2K,EAAK1K,0BAC7B3L,6BAA8BjC,EAAAA,EAAckC,gBAAwC,OAAxB6E,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0B3N,gBAMjEmjB,CAAiBjE,GACpC7lB,EAA4BX,EAAAA,EAAgBW,0BAA0B,CACxEx9C,UAAWqjE,EAAK5K,qBAChB9a,WAAY5C,IAGhB,GAAIypB,GAAiB4C,GAAoB5pB,EAA2B,CAChE,MAAM8lB,EACF9/D,KAAK+jE,cAAc,CAAEnmB,cAAakiB,aAAcD,EAAKmE,oBAAqB78D,MAAKC,SAEnF,GAAmC,kBAAZ,OAAZ04D,QAAY,IAAZA,OAAY,EAAZA,EAAcl+D,QAA8C,qBAAjBk+D,EAA8B,CAChF,MAAMmE,EAAuBnE,EAC7BtF,EAAkBz+D,KACdiE,KAAK4/D,mBAAmB,CACpBC,OACAC,aAAkC,OAApBmE,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBriE,MACpCg8C,YAAaiiB,EAAK5d,aAClB+d,wBACAD,YAAiC,OAApBkE,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBlE,cAG/C,KAAO,CACH,MAAMmE,EAAoBpE,EAC1B,IAAK,MAAMqE,KAAsBD,EAC7B1J,EAAkBz+D,KACdiE,KAAK4/D,mBAAmB,CACpBC,OACAC,aAAgC,OAAlBqE,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBviE,MAClCg8C,YAAaiiB,EAAK5d,aAClB+d,wBACAD,YAA+B,OAAlBoE,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBpE,cAIjD,CACJ,IACF,EAGAqE,EAAWvrD,EAAAA,EAAWwrD,6BACtBC,EAAmB7D,EAASjmD,QAAQ2wC,KAAOiZ,IAAmBjZ,EAAEoZ,uBAEhEC,EAAkBF,EAAiB9pD,QAAQ2wC,GAAMA,EAAElJ,eAAiBoe,EAAAA,GAAgBC,eACpFmE,EAAeH,EAAiB9pD,QAAQ2wC,GAAMA,EAAElJ,eAAiBoe,EAAAA,GAAgBriB,QACjF0mB,EAAeJ,EAAiB9pD,QAAQ2wC,GAAMA,EAAElJ,eAAiBoe,EAAAA,GAAgBpiB,QACjF0mB,EAAuBL,EAAiB9pD,QAAQ2wC,GAAMA,EAAElJ,eAAiBoe,EAAAA,GAAgBliB,eACzFymB,EAAmBN,EAAiB9pD,QAAQ2wC,GAAMA,EAAElJ,eAAiBoe,EAAAA,GAAgBniB,YAErF,MAAE+P,EAAQ,GAAE,UAAEyN,EAAY,GAAE,SAAED,EAAW,IAAOt0D,EAChD09D,EAAW5W,EAAMzzC,QAAQkC,GAAMA,EAAEpY,OAASu6D,EAAAA,GAASC,MACnDgG,EAAY7W,EAAMzzC,QAAQkC,GAAMA,EAAEpY,OAASu6D,EAAAA,GAASG,OAEpDtE,EAA2BqK,EAmEjC,OAjEgC/kE,KAAKglE,2BAA2B7pE,GACxCygB,SAAQqpD,IAA4C,IAA3C,aAAEC,EAAY,oBAAEC,GAAqBF,EAClEvK,EAAyB0K,cAAcF,GAAgBC,EACvDxE,EAAU,CACNE,UAAW2D,EACXjtB,QAAS4tB,EACTvnB,YAAayiB,EAAAA,GAAgBC,aAC7BN,sBAAuB,CAAEqF,eAAgBH,IAC3C,IAGNL,EAASjpD,SAAS0pD,IACd,MAAMC,EAAqBvlE,KAAKwlE,WAAWF,EAASA,EAAQlJ,sBAC5D1B,EAAyBzM,MAAMqX,EAAQrZ,QAAWsZ,EAClD5E,EAAU,CACNE,UAAW4D,EACXr9D,KAAMk+D,EACN/tB,QAASguB,EACT3nB,YAAayiB,EAAAA,GAAgBriB,MAC7BsQ,yBAA0BgX,EAAQhX,yBAClC0R,sBAAuB,CAAEpd,QAAS0iB,EAAQrZ,SAC5C,IAEN6Y,EAAUlpD,SAAS6pD,IACf,MAAMC,EAAsB1lE,KAAKwlE,WAAWC,EAAUA,EAASrJ,sBAC/D1B,EAAyBzM,MAAMwX,EAASxZ,QAAWyZ,EACnD/E,EAAU,CACNE,UAAW6D,EACXt9D,KAAMq+D,EACNluB,QAASmuB,EACT9nB,YAAayiB,EAAAA,GAAgBpiB,MAC7BqQ,yBAA0BmX,EAASnX,yBACnC0R,sBAAuB,CAAEpd,QAAS6iB,EAASxZ,SAC7C,IAGNyP,EAAU9/C,SAAS2jD,IACf,MAAM3B,EAAO3P,EAAMvE,MAAMtiD,GAASA,EAAK6kD,SAAWsT,EAAStT,SACrD0Z,EAAsB3lE,KAAKwlE,WAAWjG,EAAUA,EAASnD,sBAC/D1B,EAAyBzM,MAAMsR,EAASpC,YAAewI,EACvDhF,EAAU,CACNE,UAAW8D,EACXv9D,KAAMm4D,EACNhoB,QAASouB,EACT/nB,YAAayiB,EAAAA,GAAgBliB,aAC7B4iB,aAAcxB,EAASj7D,KACvBgqD,yBAA0BsP,EAAKtP,yBAC/B0R,sBAAuB,CAAEld,gBAAiByc,EAASpC,WAAava,QAASgb,EAAK3R,SAChF,IAENwP,EAAS7/C,SAASsjD,IACd,MAAMtB,EAAO3P,EAAMvE,MAAMtiD,GAASA,EAAK6kD,SAAWiT,EAAQjT,SACpD2Z,EAAqB5lE,KAAKwlE,WAAWtG,EAASA,EAAQ9C,sBAC5D1B,EAAyBzM,MAAMiR,EAAQhC,WAAc0I,EACrDjF,EAAU,CACNE,UAAW+D,EACXx9D,KAAM83D,EACN3nB,QAASquB,EACThoB,YAAayiB,EAAAA,GAAgBniB,SAC7B4iB,YAAa5B,EAAQ56D,KACrBgqD,yBAA0BsP,EAAKtP,yBAC/B0R,sBAAuB,CAAEnd,WAAYqc,EAAQhC,UAAYta,QAASgb,EAAK3R,SACzE,IAGC,CAAEuO,oBAAmBE,2BAChC,CA+DA,2BAAc0F,CAAqBxiB,GAC/B,OAAQA,GACJ,KAAKyiB,EAAAA,GAAgBC,aACjB,OAAOuF,EAAAA,EAA0BvF,aACrC,KAAKD,EAAAA,GAAgBriB,MACjB,OAAO6nB,EAAAA,EAA0B7nB,MACrC,KAAKqiB,EAAAA,GAAgBpiB,MACjB,OAAO4nB,EAAAA,EAA0B5nB,MACrC,KAAKoiB,EAAAA,GAAgBniB,SACjB,OAAO2nB,EAAAA,EAA0B3nB,SACrC,KAAKmiB,EAAAA,GAAgBliB,aACjB,OAAO0nB,EAAAA,EAA0B1nB,aACrC,QACI,MAAMT,EAAAA,EAAAA,GAAqBE,GAEvC,EAGHkoB,EA9qBYhM,EAAAA,EACKiM,sBAAyB5S,GACpB,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAU71C,QAAO,CAAC6wC,EAAK6X,KAC1B,MAAMC,EAAkB9X,EAAIzE,MAAMhtC,GAAMA,EAAEwpD,eAAiBF,EAAIE,cAAgBxpD,EAAEypD,SAAWH,EAAIG,SAQhG,OAPIF,GACAA,EAAgBG,WAAaJ,EAAII,UACjCH,EAAgBI,UAAYL,EAAIK,SAChCJ,EAAgBK,kBAAoBN,EAAIM,kBAExCnY,EAAIpyD,KAAK,IAAKiqE,IAEX7X,CAAG,GACX,IAZE2L,EAeKyM,wBAA2BC,GAEjCV,EAAKW,mBAAwB,OAALD,QAAK,IAALA,OAAK,EAALA,EAAOE,0BAC/BZ,EAAKW,mBAAwB,OAALD,QAAK,IAALA,OAAK,EAALA,EAAOG,gCAAgChgE,OAlB9DmzD,EAsBM2M,mBAAsBtT,IAAoD,IAADyT,EACpF,OAAoG,QAApGA,EAAe,OAARzT,QAAQ,IAARA,OAAQ,EAARA,EAAU71C,QAAO,CAAC6wC,EAAK/mD,KAAI,IAAAy/D,EAAAC,EAAA,OAAK3Y,GAA4B,QAAtB0Y,EAACz/D,EAAKk/D,wBAAgB,IAAAO,EAAAA,EAAI,IAAmB,QAAlBC,EAAK1/D,EAAKi/D,gBAAQ,IAAAS,EAAAA,EAAI,EAAE,GAAE,UAAE,IAAAF,EAAAA,EAAI,CAAC,EAvBpG9M,EA0BKM,uBAA0BH,IACpC,MAAM,eAAE8M,EAAc,aAAEC,EAAY,aAAEC,GAAiBhN,EACvD,OAAgB,OAAZgN,QAAY,IAAZA,GAAAA,EAAc7jB,UAAUlvC,OACjBo+C,EAAAA,EAAgBQ,uBAAuBmU,EAAa7jB,WAE/C,OAAZ4jB,QAAY,IAAZA,GAAAA,EAAc5jB,UAAUlvC,OACjBo+C,EAAAA,EAAgBQ,uBAAuBkU,EAAa5jB,WAExDkP,EAAAA,EAAgBQ,uBAAqC,OAAdiU,QAAc,IAAdA,OAAc,EAAdA,EAAgB3jB,UAAU,EAlCnE0W,EA2NMiK,cACXmD,IAEA,MAAM,YAAEtpB,EAAW,aAAEkiB,EAAY,IAAE34D,EAAG,KAAEC,GAAS8/D,EAE3CC,EAAkBvlE,GACbA,EAAQwlE,WAAWxlE,GAAS,EAQvC,GALqBylE,EAAAA,GAAgBC,OAKjC1pB,IAAgByiB,EAAAA,GAAgBniB,SAAU,CAC1C,MAAMghB,EAAU93D,EAChB,GAAI04D,IAAiBuH,EAAAA,GAAgBE,2BACjC,MAAO,CAAE3lE,MAAOulE,EAAsB,OAAPjI,QAAO,IAAPA,OAAO,EAAPA,EAASxa,MAEhD,CAKA,GAAI,CAAC2b,EAAAA,GAAgBriB,MAAOqiB,EAAAA,GAAgBpiB,OAAOrP,SAASgP,GAAe,CACvE,MAAMggB,EAAOx2D,EACb,GAAI04D,IAAiBuH,EAAAA,GAAgBG,qBACjC,MAAO,CAAE5lE,MAAOulE,EAAevJ,EAAK6J,gBAE5C,CAIA,GAAI7pB,IAAgByiB,EAAAA,GAAgBriB,MAAO,CACvC,MAAM4f,EAAOx2D,EAEuD,IAADsgE,EAAAC,EAAAC,EAAAC,EAMNC,EAAAC,EAAAC,EAAAC,EAAAC,EAsBFC,EAGGC,EAGNC,EAGAC,EAGFC,EAGGC,EAGFC,EAGHC,EAjDpD,GAAI5I,IAAiBuH,EAAAA,GAAgBsB,6BACjC,OAAU,OAAHxhE,QAAG,IAAHA,GAAiB,QAAdugE,EAAHvgE,EAAKyhE,oBAAY,IAAAlB,GAC4B,QAD5BC,EAAjBD,EACDhe,MAAMhtC,IAAC,IAAAmsD,EAAA,OAAc,QAAdA,EAAKnsD,EAAE0wC,eAAO,IAAAyb,OAAA,EAATA,EAAWj6B,SAASgvB,EAAK3R,OAAQ,WAAC,IAAA0b,GACxC,QADwCC,EAD7CD,EAEDmB,cAAM,IAAAlB,GAA6D,QAA7DC,EAFLD,EAEOptD,QAAQkC,IAAOA,EAAEqsD,cAAgBrsD,EAAEuvC,SAAW2R,EAAK3R,gBAAQ,IAAA4b,OAF/D,EAAHA,EAGD1gE,KAAKuV,IAAC,CAAQ9a,MAAO8a,EAAExI,OAAQ6rD,YAAY,SAADt3D,OAAWiU,EAAEzV,QAEjE,GAAI64D,IAAiBuH,EAAAA,GAAgB2B,uBACjC,MAAO,CACHpnE,MAGqF,QAHhFkmE,EACE,OAAH3gE,QAAG,IAAHA,GAAiB,QAAd4gE,EAAH5gE,EAAKyhE,oBAAY,IAAAb,GACmC,QADnCC,EAAjBD,EACMre,MAAMhtC,IAAC,IAAAusD,EAAA,OAAc,QAAdA,EAAKvsD,EAAE0wC,eAAO,IAAA6b,OAAA,EAATA,EAAWr6B,SAASgvB,EAAK3R,OAAQ,WAAC,IAAA+b,GACxC,QADwCC,EADpDD,EAEMc,cAAM,IAAAb,GAA6D,QAA7DC,EAFZD,EAEcztD,QAAQkC,IAAOA,EAAEqsD,cAAgBrsD,EAAEuvC,SAAW2R,EAAK3R,gBAAQ,IAAAic,OAFtE,EAAHA,EAE2Eh0D,cAAM,IAAA4zD,EAAAA,EAAI,GAIjG,GAAIhI,IAAiBuH,EAAAA,GAAgB6B,mBACjC,MAAO,CAAEtnE,MAAOulE,EAAevJ,EAAKuL,YAExC,GAAIrJ,IAAiBuH,EAAAA,GAAgB+B,2BACjC,MAAO,CAAExnE,MAAOulE,EAAevJ,EAAKyL,qBAExC,GAAIvJ,IAAiBuH,EAAAA,GAAgBiC,sBACjC,MAAO,CAAE1nE,MAAOulE,EAAevJ,EAAK2L,iCAExC,GAAIzJ,IAAiBuH,EAAAA,GAAgBmC,sCACjC,MAAO,CAAE5nE,MAAOulE,EAAevJ,EAAK6L,4BAGxC,GAAI3J,IAAiBuH,EAAAA,GAAgBqC,qBACjC,MAAO,CAAE9nE,MAAOulE,EAAkC,QAApBgB,EAACvK,EAAKe,sBAAc,IAAAwJ,OAAA,EAAnBA,EAAqBwB,OAExD,GAAI7J,IAAiBuH,EAAAA,GAAgBuC,wBACjC,MAAO,CAAEhoE,MAAOulE,EAAkC,QAApBiB,EAACxK,EAAKe,sBAAc,IAAAyJ,OAAA,EAAnBA,EAAqByB,iBAExD,GAAI/J,IAAiBuH,EAAAA,GAAgByC,kBACjC,MAAO,CAAEloE,MAAOulE,EAAkC,QAApBkB,EAACzK,EAAKe,sBAAc,IAAA0J,OAAA,EAAnBA,EAAqB0B,kBAExD,GAAIjK,IAAiBuH,EAAAA,GAAgB2C,kBACjC,MAAO,CAAEpoE,MAAOulE,EAAkC,QAApBmB,EAAC1K,EAAKe,sBAAc,IAAA2J,OAAA,EAAnBA,EAAqB2B,SAExD,GAAInK,IAAiBuH,EAAAA,GAAgB6C,gBACjC,MAAO,CAAEtoE,MAAOulE,EAAkC,QAApBoB,EAAC3K,EAAKe,sBAAc,IAAA4J,OAAA,EAAnBA,EAAqBvF,SAExD,GAAIlD,IAAiBuH,EAAAA,GAAgB8C,mBACjC,MAAO,CAAEvoE,MAAOulE,EAAkC,QAApBqB,EAAC5K,EAAKe,sBAAc,IAAA6J,OAAA,EAAnBA,EAAqB4B,YAExD,GAAItK,IAAiBuH,EAAAA,GAAgBgD,iBACjC,MAAO,CAAEzoE,MAAOulE,EAAkC,QAApBsB,EAAC7K,EAAKe,sBAAc,IAAA8J,OAAA,EAAnBA,EAAqB6B,UAExD,GAAIxK,IAAiBuH,EAAAA,GAAgBkD,cACjC,MAAO,CAAE3oE,MAAOulE,EAAkC,QAApBuB,EAAC9K,EAAKe,sBAAc,IAAA+J,OAAA,EAAnBA,EAAqB8B,MAE5D,CAIA,GAAI5sB,IAAgByiB,EAAAA,GAAgBpiB,MAAO,CACvC,MAAM2f,EAAOx2D,EACb,GAAI04D,IAAiBuH,EAAAA,GAAgBoD,sBACjC,MAAO,CAAE7oE,MAAOulE,EAAevJ,EAAK2L,iCAExC,GAAIzJ,IAAiBuH,EAAAA,GAAgBqD,mBACjC,MAAO,CAAE9oE,MAAOulE,EAAevJ,EAAKuL,YAExC,GAAIrJ,IAAiBuH,EAAAA,GAAgBsD,sCACjC,MAAO,CAAE/oE,MAAOulE,EAAevJ,EAAK6L,4BAIa,IAADmB,EAGIC,EAGKC,EAGPC,EAGHC,EAZnD,GAAIlL,IAAiBuH,EAAAA,GAAgB4D,cACjC,MAAO,CAAErpE,MAAOulE,EAAkC,QAApByD,EAAChN,EAAKe,sBAAc,IAAAiM,OAAA,EAAnBA,EAAqBM,WAExD,GAAIpL,IAAiBuH,EAAAA,GAAgB8D,kBACjC,MAAO,CAAEvpE,MAAOulE,EAAkC,QAApB0D,EAACjN,EAAKe,sBAAc,IAAAkM,OAAA,EAAnBA,EAAqBO,eAExD,GAAItL,IAAiBuH,EAAAA,GAAgBgE,uBACjC,MAAO,CAAEzpE,MAAOulE,EAAkC,QAApB2D,EAAClN,EAAKe,sBAAc,IAAAmM,OAAA,EAAnBA,EAAqBQ,oBAExD,GAAIxL,IAAiBuH,EAAAA,GAAgBkE,gBACjC,MAAO,CAAE3pE,MAAOulE,EAAkC,QAApB4D,EAACnN,EAAKe,sBAAc,IAAAoM,OAAA,EAAnBA,EAAqBS,aAExD,GAAI1L,IAAiBuH,EAAAA,GAAgBoE,aACjC,MAAO,CAAE7pE,MAAOulE,EAAkC,QAApB6D,EAACpN,EAAKe,sBAAc,IAAAqM,OAAA,EAAnBA,EAAqBU,SAE5D,CAIA,GAAI9tB,IAAgByiB,EAAAA,GAAgBliB,aAAc,CAC9C,MAAMohB,EAAWn4D,EAEjB,GAAI04D,IAAiBuH,EAAAA,GAAgBsE,iBACjC,MAAO,CAAE/pE,MAAOulE,EAAuB,OAAR5H,QAAQ,IAARA,OAAQ,EAARA,EAAUqM,UAE7C,GAAI9L,IAAiBuH,EAAAA,GAAgBwE,0BACjC,MAAO,CAAEjqE,MAAOulE,EAAuB,OAAR5H,QAAQ,IAARA,OAAQ,EAARA,EAAUuM,uBAE7C,GAAIhM,IAAiBuH,EAAAA,GAAgB0E,0BAA2B,CAM5D,MAAO,CAAEnqE,MAAOulE,GAJsD,EAAjErgB,KAAKklB,IAAY,OAARzM,QAAQ,IAARA,OAAQ,EAARA,EAAU0M,gBAA0B,OAAR1M,QAAQ,IAARA,OAAQ,EAARA,EAAU2M,eAC5CplB,KAAKqlB,IAAY,OAAR5M,QAAQ,IAARA,OAAQ,EAARA,EAAU0M,gBAA0B,OAAR1M,QAAQ,IAARA,OAAQ,EAARA,EAAU2M,gBACnD,KAGR,CACJ,CAGgB,EA3WXpS,EA+lBK0L,WAAa,SAACp+D,GAA0D,IAADglE,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAAzCC,EAA+B/wD,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC3E,MAAM0nC,EAAY,KACO,QAAlBgpB,EAAAhlE,EAAK01D,qBAAa,IAAAsP,OAAA,EAAlBA,EAAoBhpB,YAAc,OACb,QAArBipB,EAAAjlE,EAAK21D,wBAAgB,IAAAsP,OAAA,EAArBA,EAAuBjpB,YAAc,OACZ,QAAzBkpB,EAAAllE,EAAK41D,4BAAoB,IAAAsP,OAAA,EAAzBA,EAA2BlpB,YAAc,OACnB,QAAtBmpB,EAAAnlE,EAAK61D,yBAAiB,IAAAsP,OAAA,EAAtBA,EAAwBnpB,YAAc,IAE7C,OAAwE,QAAjEopB,EAAAla,EAAAA,EAAgBI,qBAAqBtP,GAAWyP,yBAAiB,IAAA2Z,OAAA,EAAjEA,EAAmEj1B,UAAWk1B,CACzF,EAvmBS3S,EAymBKkL,2BAA6B0H,IAAwD,IAAvD,IAAEvlE,EAAG,WAAE8yD,GAA0CyS,EACzF,MAAQze,MAAO0e,EAAW,IAAOxlE,EAC3BylE,EAAYD,EAASnyD,QAAOyoC,GAAKA,EAAE3+C,OAASu6D,EAAAA,GAASC,MACrD+N,EAAYF,EAASnyD,QAAOyoC,GAAKA,EAAE3+C,OAASu6D,EAAAA,GAASG,OAErD8N,EAAmB/rD,MAAMK,KAC3B,IAAI2rD,IACAJ,EAASxlE,KAAK87C,IAAC,IAAA+pB,EAAA,OAAKzlB,EAAAA,EAAciH,eAAyC,QAA3Bwe,EAAC/pB,EAAEqL,gCAAwB,IAAA0e,OAAA,EAA1BA,EAA4BrsB,aAAa,IAAEnmC,OAAOrL,WAIrGgrD,EAAsBL,EAAgBM,uBAAuBH,GAC7DgT,EAAiBppB,EAAAA,EAAsB+N,aAAgC,OAAnBuI,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB5iB,SAoC/E,OAlC2Du1B,EAAiB3lE,KAAK+9D,IAE7E,MAAMgI,EAAeN,EAChBpyD,QAAQyoC,IAAC,IAAAkqB,EAAA,OAAK5lB,EAAAA,EAAciH,eAAyC,QAA3B2e,EAAClqB,EAAEqL,gCAAwB,IAAA6e,OAAA,EAA1BA,EAA4BxsB,gBAAkBukB,CAAY,IACrG/9D,KAAKy2D,GACkBkI,EAAKN,WAAW5H,EAAyB,OAAnBzD,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB5iB,WAWjE61B,EAAeP,EAChBryD,QAAQyoC,IAAC,IAAAoqB,EAAA,OAAK9lB,EAAAA,EAAciH,eAAyC,QAA3B6e,EAACpqB,EAAEqL,gCAAwB,IAAA+e,OAAA,EAA1BA,EAA4B1sB,gBAAkBukB,CAAY,IACrG/9D,KAAKy2D,GACkBkI,EAAKN,WAAW5H,EAAyB,OAAnBzD,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB5iB,WAQvE,MAAO,CACH2tB,eAEAC,oBAAqB,IAAKrwB,EAAAA,EAAYC,MAAMk4B,GAAiBhf,MAAOif,EAAcI,MAAOF,EAAcG,oBAAqBrI,GAC/H,GAGyB,EAiCtC,MAAMH,EAAkD,CACpDK,cAAe,CAAC,EAChBnX,MAAO,CAAC,EACRqf,MAAO,CAAC,EACR7R,SAAU,CAAC,EACXC,UAAW,CAAC,+FCnwBT,MAAM8R,EAkBT,6BAAcC,GAA2F,IAApCrJ,EAAiB1oD,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAClF,OAD0D6Z,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAExDlB,QAAQ2oC,KAAOihB,IAAmBjhB,EAAEohB,uBACpCp9D,KAAKg8C,IAAC,IACAA,EACHrD,4BAA6BqD,EAAErD,4BACzB,IACKqD,EAAErD,4BACLN,YAAaguB,EAAmBE,qBAC5BvqB,EAAErD,4BAA4BN,YAC9B4kB,SAGNviE,EACN09C,yBAA0B4D,EAAE5D,yBACtB,IACK4D,EAAE5D,yBACLC,YAAaguB,EAAmBE,qBAC5BvqB,EAAE5D,yBAAyBC,YAC3B4kB,SAGNviE,KAElB,CAEA,+BAAc8rE,CAAyBvqB,EAA2BwqB,GAC9D,IAAIprB,GAAiB,EACrB,OAAOY,EAAUj8C,KAAKg8C,GACdX,GAAkBW,EAAE7+C,OAAS44C,EAAAA,GAAaM,SAC1CgF,GAAiB,EACV,IAAKW,EAAG2Q,yBAA0B8Z,IAEtCzqB,GAEf,CAEA,qCAAc0qB,CAA+BzqB,GACzC,IAAIZ,GAAiB,EACrB,OAAOY,EAAUj8C,KAAKg8C,GACdA,EAAE7+C,OAAS44C,EAAAA,GAAaM,SAAWgF,GACnCA,GAAiB,EACV,IAAKW,EAAGX,gBAAgB,IAE5BW,GAEf,CAEA,2BAAeuqB,CAAqB7vE,EAAsBumE,GACtD,OAAc,OAAPvmE,QAAO,IAAPA,OAAO,EAAPA,EAAS2c,QAAQq2B,KAAOuzB,IAAmBvzB,EAAE0zB,sBACxD,EApESiJ,EAEKM,aAAgB5qB,GAAmB,YAAAz6C,OAAyBy6C,GAFjEsqB,EAGKO,yBAA2B,CAACnR,EAAiB1Z,IACjD,0BAANz6C,OAAiCm0D,EAAM,cAAAn0D,OAAay6C,GAJ/CsqB,EAOKQ,iBAAmB,CAACpR,EAAiB1Z,IACzC,oBAANz6C,OAA2Bm0D,EAAM,cAAAn0D,OAAay6C,GARzCsqB,EAYKS,sBAAyBhnE,GAAW,GAAAwB,OAAgBxB,EAAE,mBAZ3DumE,EAcKU,gBAAkB,eAdvBV,EAgBKW,qBAAuB,qBAhB5BX,EAsEKY,oBAAsB,WAAkE,IAAjEhrB,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAIlE,GAAI0nC,EAAUlvC,OAAS,EAAG,CACtB,MAAMm6D,EAAyCjzB,IAAAA,KAAgBgI,GAC1DhD,OAAO+C,GACJA,EAAE7+C,OAAS44C,EAAAA,GAAaM,WAAa2F,EAAE/D,mBAAmCv9C,IAAnBshD,EAAExC,eAE5DjB,iBAEL,OAAmB,OAAZ2uB,QAAY,IAAZA,OAAY,EAAZA,EAAc1tB,YACzB,CAEJ,EApFS6sB,EAsFKc,uBAAyB,WAAoE,IAAnElrB,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACrE,MAAM,kBAAEm3C,GAAsBP,EAAAA,EAAgBI,qBAAqBtP,GACnE,OAAOyP,CACX,EAzFS2a,EA2FKe,gCAAkC,WAAoE,IAAnEnrB,EAA8B1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAI9E,OAH+C0nC,EAAUlvC,OACnDknC,IAAAA,KAAgBgI,GAAW1D,gBAAgByD,GAAoBh0C,QAAQg0C,EAAE/D,gBAAkB+D,EAAE7D,eAC7Fz9C,CAEV,wFC9FG,MAAMw4D,GAkCZmU,EAlCYnU,EAAAA,EAEKoU,qCAAuC,4BAF5CpU,EAIKE,kCAAoC,KACvC,CAAEmU,UAAWF,EAAKC,uCALpBpU,EAQKC,yBAA2B,WAAoE,IAAnErM,EAAmBvyC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAE5D,IAF8FA,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,GACjEizD,EAAAA,MACZC,EAAAA,GAAiBC,OAAQ,CAM1C,OALkC5gB,EAAMmK,MAAKwF,IACzC,MAAMkR,GAAa3/D,QAAQyuD,EAAKmR,iBAEhC,OADAD,GAAa7vE,QAAQ6Y,IAAI,2BAA4B,CAAE8lD,OAAMkR,cACtDA,CAAS,GAGxB,CACA,OAAO,CACX,EAnBSzU,EAqBK2U,iCAAoC1yE,GACvCA,EAAMoyE,YAAcF,EAAKC,qCAtB3BpU,EAyBKhtD,YAAc5R,UACxBsV,EAAAA,EAAck+D,uBAAuB,CACjC5iE,MAAOK,EAAAA,GAAKC,IAAI,yCAChBE,KAAMH,EAAAA,GAAKC,IAAI,2CACfuiE,YAAaxiE,EAAAA,GAAKC,IAAI,mBACtBwiE,cAAe9xE,IAAA,IAAC,YAAEgT,GAAahT,EAAA,OAAKgT,GAAa,KAE9C,6ECnCR,MAAM++D,EACT,mBAAcC,CAAaz/D,GACvB,MAAO0/D,GAAS1/D,EAAM2/D,eAAiB,GACvC,MAAM,GAAN9mE,OAAU6mE,EAAK,MAAA7mE,OAAKmH,EAAM+yC,QAAO,KAAAl6C,OAAImH,EAAM4/D,KAC/C,CAEA,2BAAcC,CAAqB7/D,GAC/B,MAAM8/D,EAAkB,OAAL9/D,QAAK,IAALA,OAAK,EAALA,EAAO+/D,QAC1B,GAAID,EAAY,CACZ,MAAME,EAAYF,EAAW1+B,MAAM0+B,EAAW9c,YAAY,KAAO,GACjE,OAAOpkB,EAAAA,EAAUiG,2BAA2Bm7B,EAChD,CACA,OAAOphC,EAAAA,EAAUiG,4BACrB,EAmBHo7B,EAhCYT,EAAAA,EAeKU,WAAc1sB,IAA4C,IAAD2sB,EAAAC,EAAAC,EACnE,MAAMC,EAAkB9sB,EAAUsG,MAAMhtC,GAAMA,EAAEpY,OAAS44C,EAAAA,GAAaO,UACtE,OAAqE,QAArEsyB,EAAsB,OAAfG,QAAe,IAAfA,GAA6B,QAAdF,EAAfE,EAAiB9uB,oBAAY,IAAA4uB,GAAiB,QAAjBC,EAA7BD,EAA+B5e,uBAAe,IAAA6e,OAA/B,EAAfA,EAAgDrgE,MAAMugE,gBAAQ,IAAAJ,EAAAA,EAAI,EAAE,EAjBtEX,EAoBKgB,mBAAqB,WAC/B,MAAMF,GADmDx0D,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAC1BguC,MAAMhtC,GAAMA,EAAEpY,OAAS44C,EAAAA,GAAaO,UACtE,OAAsB,OAAfyyB,QAAe,IAAfA,OAAe,EAAfA,EAAiB9uB,YAC5B,EAvBSguB,EAyBKiB,gBAAkBhzE,IAAiF,IAADizE,EAAAC,EAAA,IAA/E,YAAEC,EAAW,eAAEzJ,GAAqC1pE,EACjF,OAAkB,OAAXmzE,QAAW,IAAXA,EAAAA,EAAwE,QAA7DF,EAAIlB,EAAYgB,mBAAiC,OAAdrJ,QAAc,IAAdA,OAAc,EAAdA,EAAgB3jB,kBAAU,IAAAktB,GAAiB,QAAjBC,EAAzDD,EAA2Dlf,uBAAe,IAAAmf,OAAjB,EAAzDA,EAA4E3gE,KAAK,EA1BlGw/D,EA6BKqB,mBAAqB7nE,IAAuE,IAAtE,eAAEm+D,GAAqCn+D,EACvE,OAAOwmE,EAAYgB,mBAAiC,OAAdrJ,QAAc,IAAdA,OAAc,EAAdA,EAAgB3jB,UAAU,kGCdjE,MAAMstB,GAAAA,EACKC,aAAe,IAAIla,OAAO,yEAD/Bia,EAEKE,8BAAgC,IAAIna,OAAO,6BAGtD,MAAM4E,EAqFT,gCAAewV,CACXC,GAImB,IAADC,EAAA,IAHlBx5B,EAAwB77B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC5Bs1D,EAAsCt1D,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACtCovE,EAAyBv1D,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAEzB,MAAMqvE,EAA6B1D,EAAAA,EAAmBM,aAAagD,EAAiB7pE,IACpF,IAAIkqE,EAEJ,MAAMC,EAAcA,CAACt2D,EAAay8B,SACN11C,IAAjB01C,EAAQz8B,IAAuC,KAAjBy8B,EAAQz8B,GAG3Cu2D,EAAYA,CAACC,EAAkBx2D,EAAalZ,IAC1C0vE,EAAS1iC,SAAS9zB,GACXw2D,EAASC,WAAWz2D,EAAKlZ,GAE7B0vE,EAGX,OAAQR,EAAiBxsE,MACrB,KAAK44C,EAAAA,GAAaC,aACd,GAAI2zB,EAAiBvxB,0BACb0xB,EAAkBriC,SAASsiC,GAAqB,CAChD,MAAMM,EAAiC3tB,EAAAA,EAAsByM,iBACzDwgB,EAAiB7pE,IAErB,GAAImqE,EAAYI,EAAwBj6B,GAAU,CAC9C,MAAMk6B,EAA8Bl6B,EAAQi6B,GAEtCE,EAA0BV,EAAkBtnB,MAAMhtC,GAAMA,EAAEzV,KAAO6pE,EAAiB7pE,KACjE,OAAvByqE,QAAuB,IAAvBA,GAAAA,EAAyBnyB,yBAA0BC,YAAY5jC,SAC1DkhC,IACG,MAAM60B,EAAc9tB,EAAAA,EAAsB2M,WAAW1T,EAAO71C,IACxDwqE,IAAwBE,IACxBR,EAA0BE,EACtBJ,EACAC,EACAp0B,EAAOvuC,OAEf,GAGZ,CACJ,CAEJ,MAEJ,KAAK2uC,EAAAA,GAAaM,QACd,GAAIyzB,EAAkBriC,SAASsiC,IACvBE,EAAYF,EAAoB35B,GAAU,CAC1C,MAAMsJ,EAAUtJ,EAAQ25B,GAClBU,EAAaryE,OAAO8a,KAAKwmC,GAASrmC,QAAQkC,GAAMA,EAAE08B,SAAS,gBAAe,GAC1Ey4B,EAAiB,GAAAppE,OAAMo4C,EAAQ+wB,GAAW,MAAAnpE,OAAKgrC,SACjDoN,EAAuB,cAAgB,cAC1C,KAAAp4C,OAAIgrC,SAASoN,EAAuB,cAAgB,cAAE,KACvDswB,EAA0BE,EAAUJ,EAAmBC,EAAoBW,EAC/E,CAEJ,MAEJ,KAAK30B,EAAAA,GAAaI,OACd,GAAI2zB,EAAkBriC,SAASsiC,GAAqB,CAChD,MAAMY,EAA2BjuB,EAAAA,EAAsB0M,gBAAgBugB,EAAiB7pE,IACxF,GAAImqE,EAAYU,EAAkBv6B,GAAU,CACxC,MAAMqN,EAASrN,EAAQu6B,GACvBX,EAA0BE,EAAUJ,EAAmBC,EAAoBtsB,EAC/E,CACJ,CACA,MAEJ,KAAK1H,EAAAA,GAAaG,gBACd,GAAIyzB,EAAiBhxB,6BACbmxB,EAAkBriC,SAASsiC,GAAqB,CAChD,MAAMa,EAA4BluB,EAAAA,EAAsByM,iBAAiBwgB,EAAiB7pE,IAE1F,GAAImqE,EAAYW,EAAmBx6B,GAAU,CACzC,MAAMy6B,EAAuCz6B,EAAQw6B,GAC/CE,EACFnB,EAAiBhxB,4BAA4BN,YACxChlC,QAAQkC,GACLs1D,EAAsBpjC,SAASiV,EAAAA,EAAsB2M,WAAW9zC,EAAEzV,OAErEE,KAAKuV,GAAMA,EAAEnO,QAEtB4iE,EAA0BE,EACtBJ,EACAC,EACAe,EAAsBC,KAAK,MAEnC,CACJ,CAEJ,MAEJ,KAAKh1B,EAAAA,GAAaK,QACd,GAAI0zB,EAAkBriC,SAASsiC,GAAqB,CAChD,MAAMY,EAA2BjuB,EAAAA,EAAsB0M,gBAAgBugB,EAAiB7pE,IACxF,GAAImqE,EAAYU,EAAkBv6B,GAAU,CACxC,MAAM46B,EAAU56B,EAAQu6B,GACxBX,EAA0BE,EAAUJ,EAAmBC,EAAoBiB,EAC/E,CACJ,CACA,MAEJ,KAAKj1B,EAAAA,GAAaO,QACd,MAAMiE,EAAuC,QAAhCqvB,EAAGD,EAAiB1vB,oBAAY,IAAA2vB,OAAA,EAA7BA,EAA+BpuB,QAC/CwuB,EAA0BzvB,EACpB2vB,EAAUJ,EAAmBC,EAAoBxvB,GACjDuvB,EAGd,OAAOE,CACX,CAEA,wCAAeiB,CACX76B,EACA05B,EACAoB,GAKA,IAAK,MAAMC,KAAOD,EAAuB,CAAC,IAADE,EAAAC,EACrC,QAAgC3wE,KAArB,OAAP01C,QAAO,IAAPA,OAAO,EAAPA,EAAU+6B,EAAIG,YAAuD,MAArB,OAAPl7B,QAAO,IAAPA,OAAO,EAAPA,EAAU+6B,EAAIG,WACvDxB,EAAoBA,EAAkBv3B,QAAQ44B,EAAII,SAL5B9wE,EAK0D21C,EAAQ+6B,EAAIG,aAJ/E5uB,EAAAA,EAAsBuM,QAAU,IAAMxuD,OAKhD,SAEyCC,KAArC,OAAP01C,QAAO,IAAPA,GAAuB,QAAhBg7B,EAAPh7B,EAASonB,sBAAc,IAAA4T,OAAhB,EAAPA,EAA0BD,EAAIG,YAEc,MAArC,OAAPl7B,QAAO,IAAPA,GAAuB,QAAhBi7B,EAAPj7B,EAASonB,sBAAc,IAAA6T,OAAhB,EAAPA,EAA0BF,EAAIG,WAK9B,OAFAxB,EAAoBA,EAAkBv3B,QAAQ44B,EAAII,QAAgB,OAAPn7B,QAAO,IAAPA,OAAO,EAAPA,EAASonB,eAAe2T,EAAIG,UAG3F,CACJ,CAjB8B7wE,MAkB9B,OAAOqvE,CACX,EACH0B,EAjOYtX,EAAAA,EAEKC,aAAej+D,IAAkD,IAAjD,WAAE48D,EAAU,IAAE9yD,GAA6B9J,EACrE,MAAM,eAAE0pE,EAAc,aAAEC,EAAY,aAAEC,GAAiBhN,GAEjD,MAAEhM,EAAK,SAAEwN,EAAQ,UAAEC,GAAcv0D,EAUvC,MAAO,CAAE83D,iBAT0B,IAC5B0T,EAAKC,qBAAmC,OAAd7L,QAAc,IAAdA,OAAc,EAAdA,EAAgB3jB,cAC1CuvB,EAAKC,qBAAiC,OAAZ5L,QAAY,IAAZA,OAAY,EAAZA,EAAc5jB,cACxCuvB,EAAKC,qBAAiC,OAAZ3L,QAAY,IAAZA,OAAY,EAAZA,EAAc7jB,YAMpB2a,gBAJH4U,EAAKE,mBAA0B5kB,GAIXoR,mBAHjBsT,EAAKE,mBAA6BpX,GAGGiE,oBAFpCiT,EAAKE,mBAA8BnX,GAEsB,EAfhFL,EAkBMwX,mBAAqB,WAGhC,OAFkBn3D,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAELvU,KAAKC,IAAU,IAADi1D,EAAAC,EAAAC,EAAAC,EAC1B,IAAIpZ,EAAY,KACU,QAAlBiZ,EAAAj1D,EAAK01D,qBAAa,IAAAT,OAAA,EAAlBA,EAAoBjZ,YAAa,OACZ,QAArBkZ,EAAAl1D,EAAK21D,wBAAgB,IAAAT,OAAA,EAArBA,EAAuBlZ,YAAa,OACX,QAAzBmZ,EAAAn1D,EAAK41D,4BAAoB,IAAAT,OAAA,EAAzBA,EAA2BnZ,YAAa,OAClB,QAAtBoZ,EAAAp1D,EAAK61D,yBAAiB,IAAAT,OAAA,EAAtBA,EAAwBpZ,YAAa,IAE7C,MAAMwa,EAAOx2D,EACTw2D,EAAKtP,2BACLlL,EAAY,CAACwa,EAAKtP,4BAA6BlL,IAGnD,MADkC,CAAEh8C,OAAM62D,mBAAoB0U,EAAKC,qBAAqBxvB,GAC5E,GAEpB,EAnCSiY,EAqCMuX,qBAAuB,WAAoD,IAAnDxvB,EAAyB1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC3DuiD,EAA+B,GA4CnC,OA3CA7a,EACK5oC,QAAQ0/B,GAAa,CAAC+V,EAAAA,GAAa6iB,eAAgB7iB,EAAAA,GAAa8iB,aAAc9iB,EAAAA,GAAa+iB,cAAcpkC,SAASsL,EAASqf,gBAAyB,OAARrf,QAAQ,IAARA,OAAQ,EAARA,EAAUkF,gBACtJxjC,SAASs+B,IAAkC,IAAD+4B,EACjB,QAAtBA,EAAA/4B,EAASg5B,qBAAa,IAAAD,GAAtBA,EAAwBr3D,SAASu3D,IAC7B,GACI95B,EAAAA,EAAgB2B,+BAA+Bm4B,EAASle,qBAAsB/a,EAAS3C,SACzF,CACE,IACI05B,EADAmC,EAA2BD,EAAS7B,SAGxC,MAAM+B,EAAOD,EAAiBv5B,MAAM62B,EAAYC,cAChD,GAAI0C,EACA,IAAK,MAAMf,KAAOe,EAAM,CACpB,MAAM3B,EAA0BtuB,EAAUsG,MAAMhtC,GAAMA,EAAEzV,KAAOqrE,IAC3DZ,IACAT,EAAoB0B,EAAK9B,0BACrBa,EACAx3B,EAAS3C,QACT6L,EACAgwB,GAGZ,KACG,CACH,MAAME,EAAcvyD,MAAMK,KACtBgyD,EAAiBG,SAAS7C,EAAYE,gCACrCr0B,IAAC,CAAQm2B,QAASn2B,EAAE,GAAIk2B,SAAUl2B,EAAE,OAErC+2B,IACArC,EAAoB0B,EAAKP,kCACrBl4B,EAAS3C,QACT67B,EACAE,GAGZ,MAE0BzxE,IAAtBovE,GACAhT,EAAmBliE,KAAKk1E,EAEhC,IACF,IAEHhT,CACX,2DC1GG,IAAK7V,EAAS,SAATA,GAAS,OAATA,EAAS,8BAATA,EAAS,uCAATA,EAAS,gBAATA,CAAS,MAMd,MAAMorB,GAAAA,EACKC,aAAe,WAA+C,IAADlwB,EAGvE,OAFuC,QAAtBA,GADiC7nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,GAC1B8nC,mBAAW,IAAAD,EAAAA,EAAI,CAAC,GAVxB,cAaxB,uUCbG,MAAM13C,EAAgB,WAAiC,IAAhCysD,EAAkB58C,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,IAAAA,UAAA,GAC5C,MAAOnP,EAASmnE,GAAcn4E,EAAAA,SAAwB+8D,GAItD,MAAO,CAAE/rD,UAASN,KAFLA,IAAMynE,GAAW,GAENxmE,KAHXA,IAAMwmE,GAAW,GAGAC,OADfA,IAAMD,GAAWE,IAASA,IAE7C,gECEO,MAAMn8D,EAAgB/V,IACzBnG,EAAAA,WAAgB,KACZmG,GAAU,GAEX,GAAG,+GCRV,IAAIwsC,EAAmC,CAAC,EAEjC,MAAMxhC,GAAAA,EACKmnE,WAAcC,GAA6B5lC,EAAW4lC,EAAU5lC,SADrExhC,EAGKC,IAAO1F,GAA0BinC,EAASjnC,IAAOA,EAHtDyF,EAIK2rC,SAAYpxC,GAA0BinC,EAASjnC,GAJpDyF,EAOK6E,OAAS,SAACtK,GAA+E,IAAnE8sE,EAAgDr4D,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAChFjf,EAAUyxC,EAASjnC,IAAO,GAC9B,IAAK,MAAM+sE,KAAgBD,EAAc,CACrC,MAAME,EAAK,IAAIxd,OAAO,IAADhuD,OAAKurE,EAAY,KAAK,MAC3Cv3E,EAAUA,EAAQi9C,QAAQu6B,EAAIF,EAAaC,GAC/C,CACA,OAAOv3E,CACX,EAIG,MAAM6P,EAAUjP,IAAwC,IAAvC,GAAE4J,EAAE,OAAE+L,EAAS,CAAC,GAAiB3V,EACrD,OAAO1C,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAIA,EAAI+L,OAAQA,GAAU,EAG1CkhE,EAAcjtE,IACvB,MAAMinC,GAAWimC,EAAAA,EAAAA,KAAUjmC,SAC3B,OAAOkmC,OAAOlmC,EAASjnC,GAAI,iDChCxB,MAAMotE,EAAU,CACnBC,MAAO,oCACPC,QAAS,+BAETC,GAAI,mBAEJC,oBAAqB,8CACrBC,YAAczgB,GAAiB,uCAAAxrD,OAA4CwrD,GAG3E0gB,iBAAmBzxB,GAAkB,yBAAAz6C,OAA8By6C,GAGnE0xB,sBAAuBA,CAAC3gB,EAAmB/Q,IAAkB,uCAAAz6C,OAClBwrD,EAAS,eAAAxrD,OAAcy6C,EAAU,aAC5E2xB,qBAAuBjH,GAAkB,0BAAAnlE,OAA+BmlE,GAExEkH,yBAA0BA,CAAC7gB,EAAmB/Q,EAAoBxB,IAAe,uCAAAj5C,OACtCwrD,EAAS,eAAAxrD,OAAcy6C,EAAU,gBAAAz6C,OAAei5C,GAC3FqzB,sBAAuBA,CAAC9gB,EAAmBvS,IAAe,uCAAAj5C,OAA4CwrD,EAAS,uBAAAxrD,OAAsBi5C,GACrIszB,aAAe/gB,GAAiB,uCAAAxrD,OAA4CwrD,EAAS,WAErFghB,uBAAyBhhB,GAAiB,uCAAAxrD,OACCwrD,EAAS,wBAGpDihB,aAAc,wBACdC,YAAcC,GAAkB,yBAAA3sE,OAA8B2sE,GAC9DC,eAAiBD,GAAkB,yBAAA3sE,OAA8B2sE,GAEjEE,oBAAoB,wCAGpBC,kBAAoBC,GAAgB,yBAAA/sE,OAA8B+sE,EAAQ,eAC1EC,cAAc,2BACdC,kBAAmBA,CAACF,EAAkBG,IAAmB,yBAAAltE,OAC5B+sE,EAAQ,gBAAA/sE,OAAektE,EAAW,QAE/DC,cAAgBC,GAAe,8BAAAptE,OAAmCotE,GAElEC,UAAY/pB,GAAe,wBAAAtjD,OAA6BsjD,GAGxDgqB,kBAAoB9sE,GAAwB,wCAAAR,OAA6CQ,GAGzF+sE,cAAgBZ,GAAkB,yBAAA3sE,OAA8B2sE,EAAU,2BAG1Ea,aAAc,qCACdC,eAAe,yBACfC,wBAA0Bf,GAAkB,yBAAA3sE,OAA8B2sE,GAC1EgB,6BAA+BhB,GAAkB,yBAAA3sE,OAA8B2sE,EAAU,2BACzFiB,yBAA2BjB,GAAkB,yBAAA3sE,OAA8B2sE,GAC3EkB,eAAe,gCACfC,eAAe,gCAGfC,8BAA+B,4FCxD5B,IAAKnzD,EAAS,SAATA,GAAS,OAATA,EAAS,gBAATA,EAAS,wBAATA,EAAS,oBAATA,CAAS,qDCFd,IAAKy0B,EAAa,SAAbA,GAAa,OAAbA,EAAa,gDAAbA,EAAa,iEAAbA,EAAa,6EAAbA,EAAa,iCAAbA,EAAa,gCAAbA,EAAa,gCAAbA,EAAa,4DAAbA,EAAa,sCAAbA,EAAa,wCAAbA,EAAa,kDAAbA,CAAa,6DCMlB,IAAKsF,EAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,kBAAtBA,EAAsB,gBAAtBA,EAAsB,kBAAtBA,EAAsB,kBAAtBA,EAAsB,4BAAtBA,EAAsB,kCAAtBA,CAAsB,MAiCtBW,EAAqB,SAArBA,GAAqB,OAArBA,EAAqB,kBAArBA,EAAqB,cAArBA,EAAqB,cAArBA,EAAqB,oBAArBA,EAAqB,4BAArBA,CAAqB,qDCpC1B,IAAKhoC,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,oBAAhBA,EAAgB,cAAhBA,CAAgB,oHCCrB,IAAKk6C,EAAY,SAAZA,GAAY,OAAZA,EAAY,cAAZA,EAAY,gCAAZA,EAAY,kBAAZA,EAAY,0BAAZA,EAAY,oBAAZA,EAAY,0BAAZA,EAAY,kCAAZA,EAAY,8BAAZA,EAAY,4BAAZA,EAAY,4BAAZA,CAAY,MAeZ/S,EAAY,SAAZA,GAAY,OAAZA,EAAY,4BAAZA,EAAY,kCAAZA,EAAY,gBAAZA,EAAY,kBAAZA,EAAY,kBAAZA,EAAY,0BAAZA,EAAY,kBAAZA,CAAY,MAUZW,EAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,kBAAnBA,EAAmB,cAAnBA,EAAmB,cAAnBA,EAAmB,oBAAnBA,EAAmB,4BAAnBA,CAAmB,MAQnBwiB,EAAe,SAAfA,GAAe,OAAfA,EAAe,4BAAfA,EAAe,cAAfA,EAAe,cAAfA,EAAe,oBAAfA,EAAe,4BAAfA,CAAe,MAuCfoW,EAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,wBAAlBA,EAAkB,oCAAlBA,EAAkB,oCAAlBA,EAAkB,wBAAlBA,CAAkB,MAyClBhhB,EAA0B,SAA1BA,GAA0B,OAA1BA,EAA0B,oBAA1BA,EAA0B,wBAA1BA,CAA0B,MA2B1B4R,EAAe,SAAfA,GAAe,OAAfA,EAAe,gBAAfA,EAAe,4CAAfA,EAAe,8CAAfA,EAAe,wCAAfA,EAAe,8EAAfA,EAAe,gDAAfA,EAAe,wDAAfA,EAAe,4DAAfA,EAAe,8CAAfA,EAAe,wCAAfA,EAAe,8EAAfA,EAAe,wDAAfA,EAAe,oCAAfA,EAAe,sDAAfA,EAAe,sDAAfA,EAAe,sCAAfA,EAAe,kDAAfA,EAAe,sCAAfA,EAAe,wCAAfA,EAAe,kCAAfA,EAAe,4CAAfA,EAAe,8BAAfA,EAAe,oCAAfA,EAAe,8BAAfA,EAAe,sCAAfA,EAAe,gDAAfA,EAAe,kCAAfA,EAAe,4BAAfA,CAAe,MAiFfqP,EAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,kBAAtBA,EAAsB,8BAAtBA,CAAsB,qDCtL3B,IAAK7Q,EAAyB,SAAzBA,GAAyB,OAAzBA,EAAyB,4BAAzBA,EAAyB,cAAzBA,EAAyB,oBAAzBA,EAAyB,4BAAzBA,EAAyB,cAAzBA,CAAyB,2DCzB9B,MAAM8Q,GAuBZC,EAvBYD,EAAAA,EACKE,oBAAsB,0BAD3BF,EAEKG,iBAAmB,uBAFxBH,EAIKI,mBAAsBzyE,GAA0B,gBAATA,EAJ5CqyE,EAOKK,+BAAkC1yE,GAA0B,uBAATA,EAPxDqyE,EASKM,eAAiB,MAC3B3yE,KAAM,WACN4yE,IAAKP,EAAmBE,sBAXnBF,EAcKQ,wBAA2B7yE,GAA0B,iBAATA,EAdjDqyE,EAgBKS,YAAeC,IAAa,CACtC/yE,KAAM,WACN4yE,IAAKP,EAAmBG,iBACxBO,UAnBKV,EAsBKW,wBAA2BhzE,GAA0B,iBAATA,yFChCvD,IAAKizE,EAAe,SAAfA,GAAe,OAAfA,EAAe,2BAAfA,EAAe,gCAAfA,CAAe,MAKfC,EAAa,SAAbA,GAAa,OAAbA,EAAAA,EAAa,qBAAbA,EAAAA,EAAa,mBAAbA,CAAa,MA+DlB,MAAMC,EAkBT,sBAAcC,CAAgB9oB,GAC1B,OAAQA,GACJ,KAAK74C,EAAAA,EAAiBC,SAClB,OAAOwhE,EAAcG,OACzB,KAAK5hE,EAAAA,EAAiBM,MAClB,OAAOmhE,EAAcI,QACzB,QACI,OAEZ,EAsEHC,EAjGYJ,EAAAA,EACKK,wBAA0B,mBAD/BL,EAEKM,kCAAoC,IAFzCN,EAIKO,4BAA+B1zE,GAAiBA,IAASizE,EAAgBU,SAJ9ER,EAMKS,gBAAmBxsE,GACvB,GAANjD,OAAUgvE,EAAwBK,yBAAuBrvE,OAAGgvE,EAAwBM,mCAAiCtvE,OAAGiD,GAPnH+rE,EAUKU,gCAAmCjB,IAC7C,MAAMkB,EAAalB,EAAI/7B,MAAMs8B,EAAwBM,mCACrD,GAA0B,IAAtBK,EAAWlkE,OACX,OAAOkkE,EAAW,EAEN,EAfXX,EA6BKY,eAAkB9oB,GACrBpgD,QAAe,OAAPogD,QAAO,IAAPA,OAAO,EAAPA,EAASgiB,WAAW,IAAK,IAAIr9D,QA9BvCujE,EAiCKa,YAAeC,IACzB,MAAMC,EAAuC1jC,EAAAA,EAAYC,MAAMwjC,GAEzDlB,EAAQkB,EAAelB,OAAS,GAChCoB,EAAgBpB,EAAMqB,UAAU,EAAG,GACnCC,EAAetB,EAAMqB,UAAUrB,EAAMnjE,OAAS,EAAGmjE,EAAMnjE,QAE7D,OADAskE,EAAUnB,MAAK,GAAA5uE,OAAMgwE,EAAa,QAAAhwE,OAAOkwE,GAClCH,CAAS,EAxCXf,EA2CKmB,6BAA+Bn9E,UAKsC,IAADo9E,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAL9B,OAChDC,EAAM,YACN7I,EAAW,eACX8I,EAAc,SACdre,GACqC59D,EAErC,MAAMk8E,EAA4B,QAAjBV,EAAG5d,EAAShN,aAAK,IAAA4qB,GAA8B,QAA9BC,EAAdD,EAAiB,GAAGvqB,gCAAwB,IAAAwqB,OAA9B,EAAdA,EAA8Cn4B,aAC5D4O,EAAqB,OAAXihB,QAAW,IAAXA,OAAW,EAAXA,EAAaL,SAEvBqJ,EAAyC,CAC3Cl1E,KAAMizE,EAAgBkC,QACtBvC,IAAKO,EAAwBS,gBAAgBmB,EAAOpyE,IAEpDmuE,WAAYiE,EAAOK,oBACnBC,UAAWN,EAAOpwE,iBAClBknE,SAAU5gB,EACVqqB,aAAcP,EAAO/oE,SACrBupE,eAAgBpC,EAAwBC,gBAAgB2B,EAAOzjE,iBAE/DyhE,MAAuC,QAAlC0B,EAAgB,OAAdO,QAAc,IAAdA,GAAyB,QAAXN,EAAdM,EAAgBQ,iBAAS,IAAAd,OAAX,EAAdA,EAA2B3B,aAAK,IAAA0B,EAAAA,QAAWp9E,EAAAA,EAAYo+E,iBAC9DC,WAAY/e,EAASgf,oBAGrBC,aAAyB,OAAXX,QAAW,IAAXA,OAAW,EAAXA,EAAaY,QAC3BC,YAAwB,OAAXb,QAAW,IAAXA,OAAW,EAAXA,EAAa7gC,KAE1B2hC,cAA6B,OAAdf,QAAc,IAAdA,GAAwC,QAA1BL,EAAdK,EAAgB5S,gCAAwB,IAAAuS,OAA1B,EAAdA,EAA0C37D,QAAO,CAAC6wC,EAAK6X,IAAQ7X,GAAS,OAAH6X,QAAG,IAAHA,OAAG,EAAHA,EAAKI,YAAW,GACpGkU,YAA2B,OAAdhB,QAAc,IAAdA,GAAkC,QAApBJ,EAAdI,EAAgBiB,0BAAkB,IAAArB,OAApB,EAAdA,EAAoCsB,gBACjDC,kBAAiC,OAAdnB,QAAc,IAAdA,GAA+C,QAAjCH,EAAdG,EAAgB3S,uCAA+B,IAAAwS,OAAjC,EAAdA,EAAiDuB,mCACpEC,cAA6B,OAAdrB,QAAc,IAAdA,GAAuC,QAAzBF,EAAdE,EAAgBsB,+BAAuB,IAAAxB,OAAzB,EAAdA,EAAyCyB,YAEtDC,EAA0B,OAAdxB,QAAc,IAAdA,OAAc,EAAdA,EAAgByB,iBAQlC,OAPID,IACAtB,EAAYwB,gCAAkCF,EAAUG,0BACnDH,EAAUG,4BACXzB,EAAY0B,eAAiBJ,EAAUK,sBAIxC3B,CAAW,EAnFb/B,EAsFKn4B,QAAWk6B,IAErB,MAAM4B,EAAgBjsE,QAAQqqE,EAAYY,aAEpCiB,EAAalsE,QAAQqqE,EAAYQ,YAEjCsB,EAAazD,EAAKQ,eAAemB,EAAYrJ,UAC7CoL,EAAgBpsE,QAAQqqE,EAAYc,aAE1C,OAAQe,GAAcD,IAAmBE,GAAcC,EAAc,iDCnKtE,IAAKh3E,EAAW,SAAXA,GAAW,OAAXA,EAAW,oBAAXA,EAAW,wBAAXA,EAAW,oCAAXA,EAAW,8BAAXA,CAAW,yOCgBhB,MAAMi3E,EAAoB,WAAuD,IAAtD,MAAEzgF,KAAUkgE,GAA+Bv/C,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC7E,MAAM+/D,EAAalgF,EAAAA,OAA4B,MACzCmgF,EAAiBngF,EAAAA,OAA4B,MAE7CogF,EAAkBr3E,IAAoB,IAADu0E,EACvC,OAAiE,KAA5C,QAAdA,EAAA5d,EAAShN,aAAK,IAAA4qB,OAAA,EAAdA,EAAgBr+D,QAAQkC,GAAMA,EAAEpY,OAASA,IAAM4P,OAAY,EAGhE0nE,EAAct3E,IAAoB,IAADu3E,EACnC,OAAKF,EAAer3E,GAGbw3E,EAAAA,EAAWC,QAA4B,QAArBF,EALbv3E,IAAoBA,IAASu6D,EAAAA,GAASC,IAAM2c,EAAaC,EAK3CM,CAAO13E,GAAMpB,eAAO,IAAA24E,OAAA,EAApBA,EAAsBI,WAAW,GAFhD,EAEqD,EAuBpE,MAAO,CACHL,aACA/d,WAvBgBv5D,IAChB,IAAKq3E,EAAer3E,GAChB,OAAO4Z,QAAQlgB,QAAQ,IAE3B,MAAMk+E,EAAWN,EAAWt3E,GACZ,IAAD63E,EAAAC,EAAAC,EAAf,OAAKH,EAaEI,EAAAA,EAAqBC,aAAaL,IAZrCrkE,EAAAA,EAAOs9B,aAAa,CAChB14C,QAAS,aACT24C,MAAOC,EAAAA,EAAamnC,QACpBl4E,KAAM,iBACND,KAAM,CACFo3E,YAA8B,QAAlBU,EAAAV,EAAWv4E,eAAO,IAAAi5E,OAAA,EAAlBA,EAAoBF,YAAa,IAC7CQ,UAAqD,QAA3CL,EAAAK,SAASC,eAAe,YAADj0E,OAAanE,WAAO,IAAA83E,OAAA,EAA3CA,EAA6CH,YAAa,IACpEU,YAA0B,QAAdN,EAAAphB,EAAShN,aAAK,IAAAouB,OAAA,EAAdA,EAAgBnoE,SAAU,KAGvCgK,QAAQlgB,QAAQ,IAEuB,EAMlD4+E,QAAUt4E,IACN3J,EAAAA,EAAAA,KAACkiF,EAAa,CACVv4E,KAAMA,EACN1B,IAAK0B,IAASu6D,EAAAA,GAASC,IAAM2c,EAAaC,EAC1CpO,MAAOrS,EAASqS,MAChBrf,MAAOgN,EAAShN,MAChBwN,SAAUR,EAASQ,SACnBC,UAAWT,EAASS,UACpB3gE,MAAOA,IAIvB,EAca8hF,GAAgBC,EAAAA,EAAAA,aACzB,CAAAz/E,EAEIuF,KACE,IAFF,MAAE7H,EAAK,MAAEuyE,EAAQ,GAAE,MAAErf,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,GAAE,WAAEqhB,GAAa,EAAI,cAAEC,EAAgB,EAAC,KAAE14E,GAAMjH,EAG5G,MAAM4/E,EAAchvB,EAAMzzC,QAAQyoC,GAAMA,EAAE3+C,OAASA,IAC7C44E,EAAgBD,EAAY91E,KAAK87C,GAAMA,EAAEgJ,SACzCkxB,EAAc7P,EAAM9yD,QAAQkC,GAAMwgE,EAActuC,SAASlyB,EAAEuvC,UAC3DmxB,EAAiB3hB,EAASjhD,QAAQkC,GAAMwgE,EAActuC,SAASlyB,EAAEuvC,UACjEoxB,EAAkB3hB,EAAUlhD,QAAQkC,GAAMwgE,EAActuC,SAASlyB,EAAEuvC,UAEnEqxB,EAAS,IACRH,EAAYh2E,KAAKuV,GAAMA,EAAE6gE,WACzBF,EAAgB//D,QAA0B,CAAC3W,EAAO+V,IAAM,IAAI/V,KAAW+V,EAAE8gE,YAAc,KAAM,KAG9FC,EAAcC,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQA,IAC9D,IAAKG,EACD,OAAO,KAGX,MACMG,EAA2B,IAAlBZ,EAAsB,IAAM,IACrCa,EAAYD,EAAS,EAIrBE,EAAOL,EAAYK,KAAOD,EAC1BE,EAAON,EAAYM,KAAOF,EAC1BG,EAAOP,EAAYO,KAAOH,EAE1BrzE,EADOizE,EAAYQ,KAAOJ,EATX,GAUCE,EAVD,GAWf/1E,EAAQ8+C,KAAKqlB,IAAI6R,EAAOF,EAPb,KASXI,EAAcC,EAAcn2E,GAElC,OACIrN,EAAAA,EAAAA,KAACgX,EAAS,CAAC1K,GAAE,kBAAAwB,OAAoBnE,GAAQvJ,MAAOA,EAAMoI,UAClDyD,EAAAA,EAAAA,MAAA,OACIK,GAAE,YAAAwB,OAAcnE,GAChB1B,IAAKA,EACLw7E,MAAM,6BACNC,QAAO,GAAA51E,OAAKq1E,EAAI,KAAAr1E,OAAIs1E,EAAI,KAAAt1E,OAAIT,EAAK,KAAAS,OAAI+B,GACrCxC,MAAOA,EACPwC,OAAQA,EACR6mE,UAAS,UAAA5oE,OAAYu0E,EAAa,SAAQ75E,SAAA,EAC1CyD,EAAAA,EAAAA,MAAA,KAAGK,GAAG,YAAW9D,SAAA,EACbxI,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,cAAa9D,UACfxI,EAAAA,EAAAA,KAAC2jF,EAAAA,EAAW,CAACrwB,MAAOgvB,EAAasB,UAAQ,OAE7C5jF,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,iBAAgB9D,UAClBxI,EAAAA,EAAAA,KAAC6jF,EAAAA,EAAiB,CAAC/iB,SAAU2hB,EAAgBmB,UAAQ,OAEzD5jF,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,kBAAiB9D,UACnBxI,EAAAA,EAAAA,KAAC8jF,EAAAA,EAAe,CAAC/iB,UAAW2hB,EAAiBkB,UAAQ,OAEzD5jF,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,aAAY9D,UACdxI,EAAAA,EAAAA,KAAC+jF,EAAAA,GAAW,CAACzwB,MAAOgvB,EAAasB,UAAQ,OAE7C5jF,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,aAAY9D,UACdxI,EAAAA,EAAAA,KAACgkF,EAAAA,EAAe,CAAC1wB,MAAOgvB,EAAasB,UAAQ,EAACL,YAAaA,SAGlEnB,IAAcpiF,EAAAA,EAAAA,KAACikF,EAAM,CAACnB,YAAaA,EAAaG,OAAQA,EAAQt5E,KAAMA,QAEnE,IAKlBqN,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,SAKrC44E,EAASh2E,IAAiD,IAAhD,YAAE60E,EAAW,OAAEG,EAAM,KAAEt5E,GAAmBsE,EACtD,OACIjO,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,SAAQ9D,UACVxI,EAAAA,EAAAA,KAACkkF,EAAU,CACP53E,GAAG,aACHyV,EAAG+gE,EAAYK,KACfgB,EAAGrB,EAAYQ,KAAOL,EACtBp2E,WAAYC,EAAAA,EAASC,MAAMsD,qBAAqB7H,UAChDxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAE,kBAAAwB,OAAoBnE,QAEnC,EAINu6E,GAAat3E,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAAEK,SAAU,EAAGm3E,KAAM,UAAWC,WAAY,UAIxEb,EAAiBn2E,GACfA,EAAQ,IACD,EAEPA,EAAQ,IACD,EAEJ,iDCvLJ,MAAMs0E,EACT,mBAAcC,CAAa0C,GAKvB,OAAO,IAAI/gE,SAAgB,CAAClgB,EAASkhF,KAEjC,MAAMC,EAAS1C,SAAS2C,cAAc,UAChCC,EAAMF,EAAO3Z,WAAW,MAGxB8Z,EAAM,IAAIC,MAChBD,EAAIE,YAAc,YAElBF,EAAIG,OAAS,KAET,IAAIC,EAAgBJ,EAAIt3E,MACpB23E,EAAiBL,EAAI90E,OAIzB80E,EAAIt3E,MAlBK,KAmBTs3E,EAAI90E,OAAUm1E,EAAiBD,EAnBtB,KAsBTP,EAAOn3E,MAAQs3E,EAAIt3E,MACnBm3E,EAAO30E,OAAS80E,EAAI90E,OAGpB60E,EAAIO,UAAUN,EAAK,EAAG,EAAGA,EAAIt3E,MAAOs3E,EAAI90E,QAExCxM,EAAQmhF,EAAOU,UA7BN,YADD,GA8BoC,EAI5CZ,EACAK,EAAIQ,IAAMb,EAEVjhF,EAAQ,GACZ,GAER,EA1CSs+E,EA6CKyD,SAAW,WAA2C,IAA1C1zE,EAAaqP,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAIskE,EAAgBtkE,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAC1D,MAAMo+E,EAAQ,IAAIV,MAClBU,EAAMH,IAAME,EACZ,MAAME,EAAIxoE,OAAOjL,KAAK,cAAe,UACjCyzE,IACAA,EAAEzD,SAAS0D,MAAMF,EAAMhE,WACvBiE,EAAEzD,SAASpwE,MAAQA,EACnB6zE,EAAEE,OAEV,iDCvDG,MAAMtE,EACT,cAAcC,GAAqD,IAA7CE,EAAiBvgE,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACtC,GAAIugE,EAAW,CACX,MAAMoE,EAASpE,EAIf,OANwDvgE,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,GAGjC,6BAAA4G,OACYqzE,EAAWwE,YAAYtgF,KAAKugF,6BAA6BF,KACtFrgF,KAAKugF,6BAA6BF,EAE5C,CACA,MAAO,EACX,CAEA,mCAAcE,CAA6Bp1B,GAEvC,OAAOA,EAAEzR,QADK,kBACW8mC,IACrB,MAAMC,EAAQ,cAAchkC,KAAK+jC,GAKjC,MAxBOjP,EAAC/1D,EAAgBtS,EAAgBs3E,IACzChlE,EAAO2/B,MAAMjyC,GAAQgpE,KAAKsO,GAuBlBjP,CAHY75D,OAAOgpE,iBAAiBjE,SAAS5vE,MACL8zE,iBAAiBF,EAAM,IAEvB,IAAK,IAAI,GAEhE,CAEA,wCAAcG,CAAkCnF,GAa5C,CAGJ,kBAAc6E,CAAY/5B,GACtB,OAAO7uC,OAAOmpE,KAAKC,SAASC,mBAAmBx6B,IACnD,4ECnCG,MAAMy6B,EAA8B3jF,IAKnB,IALoB,MACxC4wD,EAAQ,GAAE,UACVyN,EAAY,GAAE,aACdkN,EAAe,GAAE,KACjBqY,GACc5jF,EACd,MAAM6jF,EAAa3lF,EAAAA,OAA+B0yD,EAAM9mD,KAAKy2D,IAAI,CAAQ3R,OAAQ2R,EAAK3R,YAChFk1B,EAAc5lF,EAAAA,OAAiD,IA2BrE,OAzBAA,EAAAA,WAAgB,KACZ,MAAM6lF,EAAiBF,EAAWh+E,SAAW,GAC7Cg+E,EAAWh+E,QAAU+qD,EAAM9mD,KAAKy2D,IAErB,IADmBwjB,EAAe13B,MAAMhtC,GAAMA,EAAEuvC,SAAW2R,EAAK3R,SACxCA,OAAQ2R,EAAK3R,UAC9C,GACH,CAACgC,KAEAgzB,GAAS9xE,QAAQy5D,EAAa10D,SAAYgtE,EAAWh+E,QAAQgR,OAG7DitE,EAAYj+E,QAAU+qD,EACjBzzC,QAAQojD,GAASgL,EAAaxQ,MAAM17C,IAAC,IAAAmsD,EAAA,OAAc,QAAdA,EAAKnsD,EAAE0wC,eAAO,IAAAyb,OAAA,EAATA,EAAWzQ,MAAM0mB,GAAMA,IAAMlhB,EAAK3R,QAAO,MACnF9kD,KAAKy2D,IAAU,IAADyjB,EAQX,OAPeC,EAAAA,EAAAA,GAA0B,CACrC1jB,OACA3P,QACAyN,YACA6lB,YAAgF,QAArEF,EAAEzY,EAAalf,MAAMhtC,IAAC,IAAAusD,EAAA,OAAc,QAAdA,EAAKvsD,EAAE0wC,eAAO,IAAA6b,OAAA,EAATA,EAAW7Q,MAAM0mB,GAAMA,IAAMlhB,EAAK3R,QAAO,WAAC,IAAAo1B,OAAA,EAAnEA,EAAqEG,WAClFC,UAAWA,IAAMP,EAAWh+E,QAAQwmD,MAAMzG,GAAMA,EAAEgJ,SAAW2R,EAAK3R,UAEzD,IAZrBk1B,EAAYj+E,QAAU,GAgBnB,CAAEi+E,YAAaA,IAAMA,EAAYj+E,QAAS,8KCnB9C,MAAMo+E,EAA4BjkF,IAM4B,IAADqkF,EAAAC,EAAA,IAN1B,KACtC/jB,EAAI,MACJ3P,EAAK,UACLyN,EAAS,YACT6lB,EAAW,UACXE,GAC8BpkF,EAC9B,MAAMukF,GAAyB,OAAXL,QAAW,IAAXA,GAAoE,QAAzDG,EAAXH,EAAaM,kBAAkBn4B,MAAMhtC,GAAMA,EAAEuvC,SAAW2R,EAAK3R,gBAAO,IAAAy1B,OAAzD,EAAXA,EAAsEI,QAAS,GAC7FA,GACS,OAAXP,QAAW,IAAXA,GAAqB,QAAVI,EAAXJ,EAAaQ,gBAAQ,IAAAJ,OAAV,EAAXA,EACMnnE,QACGpT,GACGA,EAAK6kD,SAAW2R,EAAK3R,QAAU,CAAC,WAAY,gBAAiB,eAAerd,SAASxnC,EAAK9C,QAEjG6C,IAAI66E,KAAa,GAEpBpG,EAAa,WAA+B,IAADqG,EAAAC,EAAA,IAA7BC,IAAiBzmE,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,KAAAA,UAAA,GACjC,MAAM0mE,EAASX,IACf,OAAO3F,EAAAA,EAAWC,QAAc,OAANqG,QAAM,IAANA,GAAkB,QAAZH,EAANG,EAAQ3G,kBAAU,IAAAwG,GAAS,QAATC,EAAlBD,EAAoB/+E,eAAO,IAAAg/E,OAArB,EAANA,EAA6BjG,UAAWkG,EACtE,EAOA,MAAO,CACHvkB,OACAge,aACA/d,WARe,WACf,MAAMmiB,EAAWpE,IADgBlgE,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,KAAAA,UAAA,IAEjC,OAAO4gE,EAAAA,EAAqBC,aAAayD,EAC7C,EAMIyB,YACAY,WAAY,eAAC,GAAEp7E,EAAE,MAAElM,GAAkC2gB,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OACtD/gB,EAAAA,EAAAA,KAAC2nF,EAAoB,CAEjBC,cAAgB3/E,IACZ,MAAMw/E,EAASX,IACXW,IACAA,EAAO3G,WAAa74E,EACxB,EAEJg7D,KAAMA,EACN3P,MAAOA,EACPyN,UAAWA,EACXomB,MAAOA,EACPF,YAAaA,EACb7mF,MAAOA,GAZFkM,EAaP,EAET,EAGC+6E,EAAY56E,IACd,MAAM,OAAEo7E,EAAM,OAAElF,EAAM,KAAEh5E,GAAS8C,EAG3Bq7E,EAAiBC,EAAkBC,EAAAA,EAAWC,kBAAkBtF,IAEtE,MAAO,CACHrhC,OAAQ70C,EACR9C,OACA2C,GAAIu7E,EACJK,OAAQvF,EACRwF,OAAQpF,EAAAA,EAAWqF,WAAWzF,GAC9BmF,iBACH,EA0BCH,EAAuB15E,IASR,IAADo6E,EAAAC,EAAAC,EAAAC,EAAA,IATU,cAC1BZ,EAAa,KACb3kB,EAAI,MACJ3P,EAAK,UACLyN,EAAS,MACTomB,EAAK,YACLF,EAAW,MACX7mF,EAAK,WACLqoF,GACWx6E,EACX,MAAM6yE,EAAalgF,EAAAA,OAA4B,MAE/CA,EAAAA,WAAgB,KACZgnF,EAAc9G,EAAW,GAE1B,CAACA,EAAWv4E,UAEf,MAAM,YAAEmgF,EAAW,eAAEC,EAAc,eAAEC,GAAmBC,EAAU,CAAE1B,QAAOF,gBACrE6B,EAAkB,OAAL3B,QAAK,IAALA,OAAK,EAALA,EAAOxkE,QAA0B,CAACpa,EAASwgF,IAAM,IAAIxgF,KAAYwgF,EAAEb,SAAS,IACzFpF,EAAcC,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQmG,IAC9D,IAAKhG,EACD,OAAO,KAGX,MAGMK,EAAOL,EAAYK,KAFV,GAE0B,IACnCC,EAAON,EAAYM,KAHV,GAG0B,GAGnC/1E,EAFOy1E,EAAYO,KAJV,GAMMF,EACftzE,EAFOizE,EAAYQ,KALV,GADM,IAQCF,EAEtB,OACIpjF,EAAAA,EAAAA,KAACgX,EAAS,CAAC1K,GAAE,wBAAAwB,OAA0Bm1D,EAAK3R,QAAUlxD,MAAOA,EAAMoI,UAC/DyD,EAAAA,EAAAA,MAAA,OACIK,GAAE,wBAAAwB,OAA0Bm1D,EAAK3R,QACjCrpD,IAAK64E,EACL2C,MAAM,6BACNC,QAAO,GAAA51E,OAAKq1E,EAAI,KAAAr1E,OAAIs1E,EAAI,KAAAt1E,OAAIT,EAAK,KAAAS,OAAI+B,GACrCxC,MAAOo7E,EAfC,KAe0Bp7E,EAClCwC,OAAQ44E,EAhBA,KAgB4B54E,EAAUxC,EAAQwC,EAAOrH,SAAA,EAC7DyD,EAAAA,EAAAA,MAAA,KAAGK,GAAG,YAAW9D,SAAA,EACbxI,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,UAAS9D,UACXxI,EAAAA,EAAAA,KAAC2jF,EAAAA,EAAW,CAACrwB,MAAOA,EAAOhC,OAAQ2R,EAAK3R,OAAQsyB,UAAQ,OAE5D5jF,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,cAAa9D,UACfxI,EAAAA,EAAAA,KAAC8jF,EAAAA,EAAe,CAAC/iB,UAAWA,EAAW6iB,UAAQ,EAACtyB,OAAQ2R,EAAK3R,YAEjEtxD,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,WAAU9D,SAAEkgF,KAClB1oF,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,cAAa9D,SAAEmgF,QAEzB18E,EAAAA,EAAAA,MAAA,KAAGK,GAAG,SAASoqE,UAAS,aAAA5oE,OAAeq1E,EAAO,GAAE,MAAAr1E,OAAKs1E,EAAO,GAAE,KAAI56E,SAAA,EAC9DyD,EAAAA,EAAAA,MAAA,QACIK,GAAG,eACHyV,EAAE,IACFoiE,EAAE,IACF/jF,MAAO,CAAE6M,SAAU,GAAIG,WAAY,IAAKg3E,KAAM,WAC9CC,WAAW,OAAM77E,SAAA,CAChBy6D,EAAKhhE,MACwB,QAA7BomF,EAAAplB,EAAKtP,gCAAwB,IAAA00B,GAAc,QAAdC,EAA7BD,EAA+BriC,oBAAY,IAAAsiC,OAAd,EAA7BA,EAA6CvqC,QAC1C9xC,EAAAA,EAAAA,MAAA,SAAO7L,MAAO,CAAE6M,SAAU,GAAIG,WAAY,IAAKg3E,KAAM,WAAY57E,SAAA,CAC5D,IAAI,KAC2B,QAA9B+/E,EAACtlB,EAAKtP,gCAAwB,IAAA40B,GAAc,QAAdC,EAA7BD,EAA+BviC,oBAAY,IAAAwiC,OAAd,EAA7BA,EAA6CzqC,WAI3D6qC,SAGD,EAId5xE,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,SAIrC08E,EAAqBiB,IACvB,MAAMC,EAAQC,EAAAA,EAAaD,MACrBE,EAAiBh9B,KAAKC,MAA0B,IAAnB48B,EAAW37E,MAAe47E,GACvDG,EAAkBj9B,KAAKC,MAA2B,IAApB48B,EAAWn5E,OAAgBo5E,GAE/D,MADoB,GAAAn7E,OAAMq7E,EAAc,SAAAr7E,OAAQs7E,EAAe,KAC1C,EAEnBP,EAAYltE,IAA2C,IAA1C,MAAEwrE,EAAK,YAAEF,GAA2BtrE,EAC/C0tE,EAAY,EAEhB,MAAMX,EAAsC,GACtCC,EAAyC,GACzCC,EAAyC,GAEzCU,EAAoB,UACpBC,EAAsB,UACtBC,EAAsB,UACtBC,EAAsB,UACtBC,EAAwB,UACxBC,EAAwB,UAE9B,IAAIC,EAAQ,GACRC,GAAkB,EAiItB,OAhIK,OAAL1C,QAAK,IAALA,GAAAA,EAAOlmE,SAAQ,CAAC6oE,EAAchpE,KAC1B,GAAkB,kBAAdgpE,EAAKngF,KAA0B,CAC/B,MAAMogF,EAAoB9C,EAAYoC,GAEtC,QAA0BniF,IAAtB6iF,EAAiC,CAAC,IAADC,EAEjC,MAAMC,EAAiD,QAAnCD,EAAGD,EAAkBE,sBAAc,IAAAD,OAAA,EAAhCA,EAAmC,QACnC9iF,IAAnB+iF,IACAH,EAAKI,mBAAqBnC,EAAkBC,EAAAA,EAAWC,kBAAkBgC,UAE9B/iF,IAA3C6iF,EAAkBI,uBAClBL,EAAKM,yBAA2BrC,EAC5BC,EAAAA,EAAWC,kBAAkB8B,EAAkBI,uBAG3D,CACAd,GACJ,CAEA,IAAIgB,EACAC,EACAC,EACAC,GAAY,EAEhB,OAAQV,EAAKngF,MACT,IAAK,WAWL,IAAK,cACD0gF,EAAYR,EAAkBJ,EAAsBH,EACpDgB,EAAcT,EAAkBH,EAAwBH,EACxDgB,EAAcV,EAAkB,IAAO,IACvC,MAVJ,IAAK,gBACDA,GAAmBA,EACnBS,EAAcT,EAAkBH,EAAwBH,EACxDgB,EAAc,GACdC,GAAY,EAUpB,MAAMtC,EAAS4B,EAAK5B,OAAO17E,KAAKgkD,GAAC,GAAA1iD,OAAQ0iD,EAAEzuC,EAAC,KAAAjU,OAAI0iD,EAAE2zB,KAE5CzgF,EAAkC,CACpC+mF,EAAE,IAAD38E,OAAMo6E,EAAO,GAAE,KAAAp6E,OAAIo6E,EAAO17E,KAAKk+E,GAAK,IAAA58E,OAAS48E,KAASnT,KAAK,KAAI,MAAAzpE,OAAKo6E,EAAO,IAC5EyC,OAAQL,EACRM,YAA2B,kBAAdd,EAAKngF,KAA2B,EAAI,EACjDkhF,cAAe,EACfC,gBAAiBN,EAAY,WAAQtjF,EACrCk9E,KAAMiG,EACNE,YAAaA,EACbQ,SAAU,WAKd,GAFArC,EAAYtnF,MAAKpB,EAAAA,EAAAA,KAAA,WAAwD0D,GAAK,WAAAoK,OAAvCgT,EAAC,KAAAhT,OAAI66E,EAAepvE,UAEzC,kBAAduwE,EAAKngF,KAA0B,CAC/B,MAAMjG,EAAkC,CACpC+mF,EAAE,IAAD38E,OAAMo6E,EAAO,GAAE,KAAAp6E,OAAIo6E,EAAO17E,KAAKk+E,GAAK,IAAA58E,OAAS48E,KAASnT,KAAK,KAAI,MAAAzpE,OAAKo6E,EAAO,IAC5EyC,OAAQL,EACRM,YAAa,EACbC,cAAe,EACfzG,KAAM,QACNmG,YAAaA,EACbQ,SAAU,WAEdrC,EAAYtnF,MAAKpB,EAAAA,EAAAA,KAAA,WAAqD0D,GAAK,WAAAoK,OAApCgT,EAAC,KAAAhT,OAAI46E,EAAYnvE,SAC5D,CAEkB,kBAAduwE,EAAKngF,OACLg/E,EAAevnF,MACX6K,EAAAA,EAAAA,MAAA,KAA+ByqE,UAAS,aAAA5oE,OAAeg8E,EAAK3B,OAAOpmE,EAAC,KAAAjU,OAAIg8E,EAAK3B,OAAOhE,EAAC,cAAa37E,SAAA,EAC9FxI,EAAAA,EAAAA,KAAA,UAAQsoD,EAAE,KAAK87B,KAAI,GAAAt2E,OAAK+7E,EAAkBF,EAAwBH,MAClExpF,EAAAA,EAAAA,KAACgrF,EAAQ,CAACjpE,EAAE,IAAIoiE,EAAE,IAAIE,WAAW,SAASjkF,MAAO,CAAEgkF,KAAM,WAAY57E,SAChEshF,EAAKx9E,OAHNq8E,EAAepvE,SAST,aAAduwE,EAAKngF,MAAuBmgF,EAAKI,oBAEjCtB,EAAexnF,MACXpB,EAAAA,EAAAA,KAACirF,EAAU,CAEP7/E,MAAOy+E,EAAkBF,EAAwBH,EACjD0B,KAAMtB,EACN/B,OAAQiC,EAAKx9E,GACb6+E,SAAQ,SAAAr9E,OAAWg8E,EAAKx9E,IACxB8+E,MAAK,yBAAAt9E,OAAwBg8E,EAAKhC,gBAClCuD,MAAK,gBAAAv9E,OAAeg8E,EAAKM,0BACzBkB,MAAK,8BAAAx9E,OAA0Bg8E,EAAKI,qBAP/BvB,EAAepvE,SAU5BqwE,GAAS,KACY,gBAAdE,EAAKngF,MACZi/E,EAAexnF,MACXpB,EAAAA,EAAAA,KAACirF,EAAU,CAEP7/E,MAAOy+E,EAAkBF,EAAwBH,EACjD0B,KAAMtB,EACN/B,OAAQiC,EAAKx9E,GACb6+E,SAAQ,SAAAr9E,OAAWg8E,EAAKx9E,IACxB8+E,MAAK,2BAAAt9E,OAAuBg8E,EAAKhC,iBAL5Ba,EAAepvE,SAQ5BqwE,GAAS,KAEThB,EAAexnF,MACXpB,EAAAA,EAAAA,KAACirF,EAAU,CAEP7/E,MAAOy+E,EAAkBF,EAAwBH,EACjD0B,KAAMtB,EACN/B,OAAQiC,EAAKx9E,GACb6+E,SAAQ,SAAAr9E,OAAWg8E,EAAKx9E,IACxB8+E,MAAK,yBAAAt9E,OAAwBg8E,EAAKhC,iBAL7Ba,EAAepvE,SAQ5BqwE,GAAS,KAIjBC,GAAmBA,CAAe,IAG/B,CAAER,YAAWX,cAAaC,iBAAgBC,iBAAgB,EAG/DoC,GAAWp+E,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAAEC,WAAY,aAAcO,WAAY,IAAKH,SAAU,KAajFg+E,EAAahlB,IAA8E,IAA7E,OAAE4hB,EAAM,SAAEsD,EAAQ,MAAEC,EAAK,MAAEC,EAAK,MAAEC,EAAK,MAAElgF,EAAK,KAAE8/E,GAAuBjlB,EACvF,OACIh6D,EAAAA,EAAAA,MAAA,KAAGk4E,EAAE,KAAI37E,SAAA,EACLyD,EAAAA,EAAAA,MAAA,KAAGyqE,UAAS,iBAAA5oE,OAAmBo9E,EAAI,cAAa1iF,SAAA,EAC5CxI,EAAAA,EAAAA,KAAA,UAAQsoD,EAAE,KAAK87B,KAAMh5E,KACrBpL,EAAAA,EAAAA,KAACgrF,EAAQ,CAACjpE,EAAE,IAAIoiE,EAAE,IAAIE,WAAW,SAASjkF,MAAO,CAAEgkF,KAAM,WAAY57E,SAChEq/E,QAGT57E,EAAAA,EAAAA,MAAA,QAAM8V,EAAE,KAAKoiE,EAAG+G,EAAO,EAAG9qF,MAAO,CAAEyM,WAAYC,EAAAA,EAASC,MAAMsD,qBAAsB+zE,KAAM,WAAY57E,SAAA,EAClGxI,EAAAA,EAAAA,KAACurF,EAAQ,CAACxpE,EAAE,KAAKypE,GAAG,IAAIprF,MAAO,CAAEgN,WAAY,KAAM5E,SAC9C2iF,IAEJC,IACGprF,EAAAA,EAAAA,KAACurF,EAAQ,CAACxpE,EAAE,KAAKypE,GAAG,KAAIhjF,SACnB4iF,IAGRC,IACGrrF,EAAAA,EAAAA,KAACurF,EAAQ,CAACxpE,EAAE,KAAKypE,GAAG,KAAIhjF,SACnB6iF,IAGRC,IACGtrF,EAAAA,EAAAA,KAACurF,EAAQ,CAACxpE,EAAE,KAAKypE,GAAG,KAAIhjF,SACnB8iF,SAIb,EAGNC,GAAW3+E,EAAAA,EAAAA,GAAO,QAAPA,CAAgB,CAAEQ,WAAY,IAAKH,SAAU,oZC9WvD,MAAMw+E,EAAqB/oF,IAUF,IAVG,MAC/BtC,EAAK,WACL0gF,EAAU,OACVxvB,EAAM,MACNqhB,EAAQ,GAAE,UACV5R,EAAY,GAAE,MACdzN,EAAK,SACLwN,EAAQ,SACRsmB,EAAW,GAAE,WACbqB,GACsB/lF,EACtB,MAEMgpF,EAAep4B,EAAMvE,MAAMhtC,GAAMA,EAAEuvC,SAAWA,IAC9C+wB,GAA4B,OAAZqJ,QAAY,IAAZA,OAAY,EAAZA,EAAcrJ,gBAAiB,EAG/Ca,GAD2B,IAAlBb,EAAsB,IAAM,KAChB,EAGrBM,EAAS,IACRhQ,EAAMnmE,KAAKuV,GAAMA,EAAE6gE,WACnB7hB,EAAUp+C,QAA0B,CAAC3W,EAAO+V,IAAM,IAAI/V,KAAW+V,EAAE8gE,YAAc,KAAM,OACvFuE,EAASzkE,QAA0B,CAAC3W,EAAO+V,IAAM,IAAI/V,KAAU+V,EAAE4gE,SAAS,KAG3EG,EAAcC,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQA,IAE9D,IAAKG,EACD,OAAO,KAGX,MAEMK,EAAOL,EAAYK,KAAOD,EAC1BE,EAAON,EAAYM,KAAOF,EAG1B71E,EAFOy1E,EAAYO,KAAOH,EAEXC,EANa,IAO5BtzE,EAFOizE,EAAYQ,KAAOJ,EA1BX,GA4BCE,EA5BD,GA8BfuI,EAAYlD,EAvBE,KAuByBp7E,EACvCu+E,EAAanD,EAxBC,KAwB2B54E,EAAUxC,EAAQwC,EAEjE,OACI7P,EAAAA,EAAAA,KAAA,OAAKsM,GAAG,kBAAkBlM,MAAOA,EAAMoI,UAEnCxI,EAAAA,EAAAA,KAAA,OACIsM,GAAG,qBACHrE,IAAK64E,EACL2C,MAAM,6BACNC,QAAO,GAAA51E,OAAKq1E,EAAI,KAAAr1E,OAAIs1E,EAAI,KAAAt1E,OAAIT,EAAK,KAAAS,OAAI+B,GACrCxC,MAAOs+E,EACP97E,OAAQ+7E,EACRlV,UAAS,UAAA5oE,OAAYu0E,EAAa,SAAQ75E,UAC1CyD,EAAAA,EAAAA,MAAA,KAAGK,GAAG,YAAW9D,SAAA,EACbxI,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,UAAS9D,UACXxI,EAAAA,EAAAA,KAAC2jF,EAAAA,EAAW,CAACC,UAAQ,EAACtyB,OAAQA,EAAQgC,MAAOA,OAEjDtzD,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,eAAc9D,UAChBxI,EAAAA,EAAAA,KAAC6jF,EAAAA,EAAiB,CAACD,UAAQ,EAACtyB,OAAQA,EAAQwP,SAAUA,OAE1D9gE,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,cAAa9D,UACfxI,EAAAA,EAAAA,KAAC8jF,EAAAA,EAAe,CAACF,UAAQ,EAACtyB,OAAQA,EAAQyP,UAAWA,OAEzD/gE,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,UAAS9D,UACXxI,EAAAA,EAAAA,KAAC+jF,EAAAA,GAAW,CAACH,UAAQ,EAACtyB,OAAQA,EAAQgC,MAAOA,OAEjDtzD,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,UAAS9D,UACXxI,EAAAA,EAAAA,KAACgkF,EAAAA,EAAe,CAACJ,UAAQ,EAACtyB,OAAQA,EAAQgC,MAAOA,EAAOyN,UAAWA,OAEvE/gE,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,WAAU9D,UACZxI,EAAAA,EAAAA,KAAC6rF,EAAAA,GAAgB,CAAC1E,MAAOC,EAAU91B,OAAQA,YAKrD,8HC/FP,MAAMw6B,EAAoC,CAC7C,CACI7pF,KAAM,gBACNqxD,MAAO,CACH,CACIrxD,KAAM,eACN8pF,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,OAK3B,CACIliF,KAAM,0BACNqxD,MAAO,CACH,CACIrxD,KAAM,eACNogF,cAAe,GACf0J,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,OAK3B,CACIliF,KAAM,oBACNqxD,MAAO,CACH,CACIrxD,KAAM,gBACN8pF,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,KAGnB,CACIliF,KAAM,6BACNogF,cAAe,IACf0J,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,GAAIoiE,EAAG,GACZ,CAAEpiE,EAAG,GAAIoiE,EAAG,OAK5B,CACIliF,KAAM,mBACNqxD,MAAO,CACH,CACIrxD,KAAM,mBACNogF,cAAe,GACf0J,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,GAAI,GACZ,CAAEpiE,EAAG,EAAGoiE,GAAI,GACZ,CAAEpiE,EAAG,EAAGoiE,GAAI,GACZ,CAAEpiE,EAAG,EAAGoiE,EAAG,OAK3B,CACIliF,KAAM,iBACNqxD,MAAO,CACH,CACIrxD,KAAM,qBACN8pF,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,GAAI,GACZ,CAAEpiE,EAAG,EAAGoiE,GAAI,GACZ,CAAEpiE,EAAG,EAAGoiE,EAAG,KAGnB,CACIliF,KAAM,uBACNogF,cAAe,GACf0J,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,GAAI,GACZ,CAAEpiE,EAAG,EAAGoiE,GAAI,GACZ,CAAEpiE,EAAG,EAAGoiE,EAAG,OAK3B,CACIliF,KAAM,4BACNqxD,MAAO,CACH,CACIrxD,KAAM,4BACN8pF,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,GAAIoiE,EAAG,GACZ,CAAEpiE,EAAG,GAAIoiE,EAAG,OAK5B,CACIliF,KAAM,6BACNqxD,MAAO,CACH,CACIrxD,KAAM,6BACNogF,cAAe,IACf0J,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,GAAIoiE,EAAG,GACZ,CAAEpiE,EAAG,GAAIoiE,EAAG,OAK5B,CACIliF,KAAM,+BACNqxD,MAAO,CACH,CACIrxD,KAAM,+BACNogF,eAAgB,GAChB0J,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,GAAIoiE,EAAG,GACZ,CAAEpiE,EAAG,GAAIoiE,EAAG,OAK5B,CACIliF,KAAM,wBACNqxD,MAAO,CACH,CACIrxD,KAAM,0BACN8pF,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,OAK3B,CACIliF,KAAM,8BACNqxD,MAAO,CACH,CACIrxD,KAAM,eACNogF,cAAe,GACf0J,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,EAAGoiE,EAAG,OAK3B,CACIliF,KAAM,oBACN+pF,UAAW,CACP14B,MAAO,CACH,CACIhC,OAAQ,WACRrvD,KAAM,oBACNgqF,MAAOC,EAAAA,GAAUC,OAEjB1oB,qBAAsB,MACtBG,UAAW,MACXE,YAAa,MACbsQ,gBAAiB,kCACjBgY,SAAU,qBACVjE,OAAQ,CAAEpmE,EAAG,KAAMoiE,EAAG,IACtBpjB,UAAW,CACP,CACIyB,WAAY,WACZ74D,KAAM49D,EAAAA,EAAaK,SACnB3lE,KAAM,UACNoqF,YAAaC,EAAAA,EAAQC,IACrBC,YAAaF,EAAAA,EAAQG,GACrBC,mBAAmB,EACnBr/E,MAAO,IACPwC,OAAQ,IACRq4E,OAAQ,CACJ,CAAEnmE,GAAI,GAAIoiE,GAAI,IACd,CAAEpiE,EAAG,GAAIoiE,GAAI,IACb,CAAEpiE,EAAG,GAAIoiE,EAAG,IACZ,CAAEpiE,GAAI,GAAIoiE,EAAG,IACb,CAAEpiE,GAAI,GAAIoiE,GAAI,KAElBwI,iBAAkB,CAAE5qE,EAAG,KAAMoiE,EAAG,MAChCtB,WAAY,CACR,CAAE9gE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,KACd,CAAEpiE,EAAG,KAAMoiE,EAAG,KACd,CAAEpiE,EAAG,KAAMoiE,EAAG,OAMlB7yB,OAAQ,aAGhBy6B,aAAc,CACV,CAAEhqE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,KAElB9B,cAAe,OAK/B,CACIpgF,KAAM,iCACN+pF,UAAW,CACP14B,MAAO,CACH,CACIhC,OAAQ,WACRrvD,KAAM,eACNgqF,MAAOC,EAAAA,GAAUC,OAEjBhE,OAAQ,CACJpmE,EAAG,KACHoiE,EAAG,MAEPpjB,UAAW,CACP,CACIyB,WAAY,WAEZ74D,KAAM49D,EAAAA,EAAaK,SACnB3lE,KAAM,UACNoqF,YAAaC,EAAAA,EAAQC,IACrBC,YAAaF,EAAAA,EAAQG,GACrBC,mBAAmB,EACnBr/E,MAAO,IACPwC,OAAQ,IACRq4E,OAAQ,CACJ,CAAEnmE,GAAI,GAAIoiE,GAAI,IACd,CAAEpiE,EAAG,GAAIoiE,GAAI,IACb,CAAEpiE,EAAG,GAAIoiE,EAAG,IACZ,CAAEpiE,GAAI,GAAIoiE,EAAG,IACb,CAAEpiE,GAAI,GAAIoiE,GAAI,KAElBwI,iBAAkB,CACdC,KAAM,CACFhK,MAAO,CAAE7gE,EAAG,KAAMoiE,EAAG,MACrB0I,IAAK,CAAE9qE,EAAG,KAAMoiE,EAAG,MACnB7yB,OAAQ,WACRw7B,MAAO,GAEXx7B,OAAQ,WACRvvC,EAAG,KACHoiE,EAAG,KACH4I,SAAU,GAEdlK,WAAY,CACR,CAAE9gE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,KACd,CAAEpiE,EAAG,KAAMoiE,EAAG,KACd,CAAEpiE,EAAG,KAAMoiE,EAAG,OAMlB7yB,OAAQ,aAGhBy6B,aAAc,CACV,CAAEhqE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,KAElB9B,eAAgB,OAKhC,CACIpgF,KAAM,6BACN+pF,UAAW,CACP14B,MAAO,CACH,CACIhC,OAAQ,WACRrvD,KAAM,eACNgqF,MAAOC,EAAAA,GAAUC,OAEjBhE,OAAQ,CAAEpmE,EAAG,MAAOoiE,EAAG,OACvBpjB,UAAW,GACXgrB,aAAc,CACV,CAAEhqE,EAAG,MAAOoiE,EAAG,OACf,CAAEpiE,EAAG,MAAOoiE,EAAG,OACf,CAAEpiE,EAAG,MAAOoiE,EAAG,OACf,CAAEpiE,EAAG,MAAOoiE,EAAG,SAGvB,CACI7yB,OAAQ,WACRrvD,KAAM,2BACNgqF,MAAOC,EAAAA,GAAUc,iBAMjBrpB,sBAAuB,UACvBF,qBAAsB,MACtBG,UAAW,MACXE,YAAa,MACbsQ,gBAAiB,kCACjBgY,SAAU,qBACVjE,OAAQ,CAAEpmE,EAAG,MAAOoiE,EAAG,mBACvBrjB,SAAU,GACVC,UAAW,IAEf,CACIzP,OAAQ,WACRrvD,KAAM,2BACNgqF,MAAOC,EAAAA,GAAUe,uBAOjBtpB,sBAAuB,UACvBF,qBAAsB,MACtBG,UAAW,MACXE,YAAa,MACbsQ,gBAAiB,kCACjBgY,SAAU,qBACVjE,OAAQ,CAAEpmE,EAAG,MAAOoiE,EAAG,mBACvBrjB,SAAU,GACVC,UAAW,OAK3B,CACI9+D,KAAM,sBACN+pF,UAAW,CACP14B,MAAO,CACH,CACIhC,OAAQ,WACRrvD,KAAM,eACNgqF,MAAOC,EAAAA,GAAUC,OAEjBhE,OAAQ,CACJpmE,EAAG,KACHoiE,EAAG,MAEPpjB,UAAW,GACXgrB,aAAc,CACV,CACIhqE,EAAG,KACHoiE,EAAG,IAEP,CACIpiE,EAAG,KACHoiE,EAAG,IAEP,CACIpiE,EAAG,KACHoiE,EAAG,IAEP,CACIpiE,EAAG,KACHoiE,EAAG,MAIf,CACI7yB,OAAQ,WACRrvD,KAAM,2BACNgqF,MAAOC,EAAAA,GAAUgB,gBAMjBvpB,sBAAuB,UACvBF,qBAAsB,MACtBG,UAAW,MACXE,YAAa,MACbsQ,gBAAiB,kCACjBgY,SAAU,qBACVjE,OAAQ,CAAEpmE,EAAG,GAAIoiE,EAAG,mBACpBrjB,SAAU,CACN,CACIyB,UAAW,WACX4qB,cAAe,aACfC,4BAA6B,KAC7BrjC,KAAM,IACN9nD,KAAM,QACN0H,KAAM88D,EAAAA,GAAYC,OAG1B3F,UAAW,OAK3B,CACI9+D,KAAM,8CACN+pF,UAAW,CACP14B,MAAO,CACH,CACIhC,OAAQ,WACRrvD,KAAM,qBACNgqF,MAAOC,EAAAA,GAAUC,OAEjBhE,OAAQ,CAAEpmE,EAAG,KAAMoiE,EAAG,IACtBrjB,SAAU,GACVC,UAAW,GACXgrB,aAAc,CACV,CAAEhqE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,MAGtB,CACI7yB,OAAQ,WACRrvD,KAAM,uBACNgqF,MAAOC,EAAAA,GAAUC,OAEjBhE,OAAQ,CAAEpmE,EAAG,KAAMoiE,EAAG,MACtBrjB,SAAU,CACN,CACIyB,UAAW,WACX4qB,cAAe,SACfC,4BAA6B,KAC7BrjC,KAAM,IACN9nD,KAAM,QACN0H,KAAM88D,EAAAA,GAAYC,OAG1B3F,UAAW,GACXgrB,aAAc,CACV,CAAEhqE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,OAElB9B,cAAe,OAK/B,CACIpgF,KAAM,wCACN+pF,UAAW,CACP14B,MAAO,CACH,CACIhC,OAAQ,WACRrvD,KAAM,eACNgqF,MAAOC,EAAAA,GAAUC,OAEjBhE,OAAQ,CAAEpmE,EAAG,KAAMoiE,EAAG,MACtBrjB,SAAU,GACVC,UAAW,CACP,CACIyB,WAAY,WACZ74D,KAAM49D,EAAAA,EAAaG,eACnBzlE,KAAM,8BACNoqF,YAAaC,EAAAA,EAAQG,GACrBD,YAAaF,EAAAA,EAAQG,GACrBC,mBAAmB,EACnBr/E,MAAO,IACPwC,OAAQ,GACRq4E,OAAQ,CACJ,CAAEnmE,GAAI,MAAOoiE,GAAI,IACjB,CAAEpiE,EAAG,MAAOoiE,GAAI,IAChB,CAAEpiE,EAAG,MAAOoiE,EAAG,IACf,CAAEpiE,GAAI,MAAOoiE,EAAG,IAChB,CAAEpiE,GAAI,MAAOoiE,GAAI,KAErBwI,iBAAkB,CACdC,KAAM,CACFhK,MAAO,CAAE7gE,EAAG,OAAQoiE,EAAG,MACvB0I,IAAK,CAAE9qE,EAAG,OAAQoiE,EAAG,MACrB7yB,OAAQ,WACRw7B,OAAQ,oBAEZx7B,OAAQ,WACRvvC,EAAG,OACHoiE,EAAG,KACH4I,SAAU,OAEdlK,WAAY,CACR,CAAE9gE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,MACd,CAAEpiE,EAAG,KAAMoiE,EAAG,OAMlB7yB,OAAQ,aAGhBy6B,aAAc,CACV,CAAEhqE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,KAAMoiE,EAAG,SAMlC,CACIliF,KAAM,eACN+pF,UAAW,CACP14B,MAAO,CACH,CACIhC,OAAQ,WACRrvD,KAAM,eACNgqF,MAAOC,EAAAA,GAAUC,OAEjBhE,OAAQ,CAAEpmE,EAAG,mBAAoBoiE,EAAG,MACpCrjB,SAAU,GACVC,UAAW,CACP,CACIyB,WAAY,WACZ74D,KAAM49D,EAAAA,EAAaG,eACnBzlE,KAAM,8BACNoqF,YAAaC,EAAAA,EAAQG,GACrBD,YAAaF,EAAAA,EAAQG,GACrBC,mBAAmB,EACnBr/E,MAAO,IACPwC,OAAQ,GACRq4E,OAAQ,CACJ,CAAEnmE,GAAI,MAAOoiE,GAAI,IACjB,CAAEpiE,EAAG,MAAOoiE,GAAI,IAChB,CAAEpiE,EAAG,MAAOoiE,EAAG,IACf,CAAEpiE,GAAI,MAAOoiE,EAAG,IAChB,CAAEpiE,GAAI,MAAOoiE,GAAI,KAErBwI,iBAAkB,CAAE5qE,EAAG,QAASoiE,EAAG,MACnCtB,WAAY,CACR,CAAE9gE,EAAG,QAASoiE,EAAG,MACjB,CAAEpiE,EAAG,QAASoiE,EAAG,MACjB,CAAEpiE,EAAG,QAASoiE,EAAG,MACjB,CAAEpiE,EAAG,QAASoiE,EAAG,MACjB,CAAEpiE,EAAG,QAASoiE,EAAG,OAMrB7yB,OAAQ,aAGhBy6B,aAAc,CACV,CAAEhqE,EAAG,KAAMoiE,EAAG,IACd,CAAEpiE,EAAG,MAAOoiE,EAAG,IACf,CAAEpiE,EAAG,MAAOoiE,EAAG,IACf,CAAEpiE,EAAG,KAAMoiE,EAAG,SAMlC,CACIliF,KAAM,wBACN+pF,UAAW,CACP14B,MAAO,CACH,CACIhC,OAAQ,WACRrvD,KAAM,wBACNgqF,MAAOC,EAAAA,GAAUmB,UAEjB5pB,qBAAsB,MACtBG,UAAW,MACXE,YAAa,MACbsQ,gBAAiB,kCACjBgY,SAAU,qBACVjE,OAAQ,CAAEpmE,EAAG,OAAQoiE,EAAG,MACxBrjB,SAAU,GACVC,UAAW,IAEf,CACIzP,OAAQ,WACRrvD,KAAM,2BACNgqF,MAAOC,EAAAA,GAAUmB,UAEjB5pB,qBAAsB,MACtBG,UAAW,MACXE,YAAa,MACbsQ,gBAAiB,kCACjBgY,SAAU,qBACVjE,OAAQ,CAAEpmE,EAAG,OAAQoiE,EAAG,MACxBrjB,SAAU,GACVC,UAAW,QC7nBxB,MAAMusB,EACT,0CAAcC,CAAoCC,GAAmC,IAADC,EAChF,MAAMn6B,EAAsB,GAI5B,OAHc,QAAdm6B,EAAAD,EAASl6B,aAAK,IAAAm6B,GAAdA,EAAgBxsE,SAASgiD,IACrB3P,EAAMlyD,KAAK,IAAK6hE,EAAMgpB,MAAOhpB,EAAK8oB,aAAeG,EAAAA,GAAUC,OAASlpB,EAAKgpB,OAAQ,IAE9E34B,CACX,CAEA,mBAAco6B,GAAiC,IAADC,EAC1C,MAAMC,EAAkCpqE,KAAKW,MAAgD,QAA3CwpE,EAAC3xC,aAAan4B,QAAQ,6BAAqB,IAAA8pE,EAAAA,EAAI,MACjG,MAAO,IAAI7B,KAAqB8B,EACpC,CAEA,mBAAcC,CAAaL,EAAoBvrF,GAAe,IAAD6rF,EACzD,MAAMC,EAAc,CAAE9rF,OAAM+pF,UAAW9pC,EAAAA,UAAYsrC,IAC7CI,EAAiBpqE,KAAKW,MAAgD,QAA3C2pE,EAAC9xC,aAAan4B,QAAQ,6BAAqB,IAAAiqE,EAAAA,EAAI,MAChFF,EAAexsF,KAAK2sF,GACpB/xC,aAAah5B,QAAQ,qBAAsBQ,KAAKC,UAAUmqE,IAC1D1wE,EAAAA,EAAOC,IAAI,8BAA+B,CAAE4wE,eAChD,EApBST,EAsBKU,WAAcC,IACxB,MAAMhrB,EAAOirB,EAAAA,EAAkBC,WAAWF,GAC1C,MAAO,CACH38B,OAAQ2R,EAAK3R,OACbrvD,KAAMghE,EAAKhhE,KACXgqF,MAAOhpB,EAAKgpB,MACZmC,mBAAoBnrB,EAAKmrB,mBACzBzqB,sBAAuBV,EAAKU,sBAC5BF,qBAAsBR,EAAKQ,qBAC3BG,UAAWX,EAAKW,UAChBE,YAAab,EAAKa,YAClBsQ,gBAAiBnR,EAAKmR,gBACtBgY,SAAUnpB,EAAKmpB,SACfjE,OAAQllB,EAAKklB,OACbrnB,SAAUmC,EAAKnC,SACfC,UAAWkC,EAAKlC,UAChBgrB,aAAc9oB,EAAK8oB,aACnB1J,cAAepf,EAAKof,cACvB,iBCQT,MAAMgM,EAAmB,eAYZC,EAAqB5rF,IAAyC,IAAD6rF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAAvC,QAAEj8E,GAAgClQ,EACjE,MAAM8J,GAAMsiF,EAAAA,EAAAA,MACNC,GAAUx6E,EAAAA,EAAAA,GAA4B,CAAC,IACrC/S,MAAOwtF,EAAW16E,OAAQ26E,IAAgB16E,EAAAA,EAAAA,GAA6B,CAC3E5K,KAAM+oD,EAAAA,GAAYC,QAClBu8B,UAAWC,EAAAA,GAAeC,KAC1BC,UAAW,EACXhN,cAAe,IAGnBzhF,EAAAA,WAAgB,KACZ,MAAM,WAAEyxD,EAAa,GAAE,MAAEsgB,EAAK,MAAErf,EAAK,SAAEwN,EAAQ,UAAEC,GAAcv0D,EAAI+P,WAE7D+yE,EAAkBj9B,EAAW,GAC7Bk9B,GAAkB,OAALj8B,QAAK,IAALA,OAAK,EAALA,EAAOzzC,QAAQyoC,IAAC,IAAAknC,EAAA,OAAoB,OAAfF,QAAe,IAAfA,GAAwB,QAATE,EAAfF,EAAiB78B,eAAO,IAAA+8B,OAAT,EAAfA,EAA0B/xB,MAAM17C,GAAMA,IAAMumC,EAAEgJ,QAAO,MAAK,GAC5Fm+B,GAAwB,OAAR3uB,QAAQ,IAARA,OAAQ,EAARA,EAAUjhD,QAAQq2B,GAAMq5C,EAAW9xB,MAAMnV,GAAMA,EAAEgJ,SAAWpb,EAAEob,aAAY,GAC1Fo+B,GAA0B,OAAT3uB,QAAS,IAATA,OAAS,EAATA,EAAWlhD,QAAQ8vE,GAAOJ,EAAW9xB,MAAMnV,GAAMA,EAAEgJ,SAAWq+B,EAAGr+B,aAAY,GAC9Fs+B,GAA8B,OAAfN,QAAe,IAAfA,OAAe,EAAfA,EAAiB3lF,QAAS+oD,EAAAA,GAAYC,QAAU,GAAK,EACpEk9B,GAAgD,OAAfP,QAAe,IAAfA,OAAe,EAAfA,EAAiB3lF,QAAS+oD,EAAAA,GAAYC,QAAU,GAAK,EAC5Fs8B,EAAY,CACRtlF,MAAqB,OAAf2lF,QAAe,IAAfA,OAAe,EAAfA,EAAiB3lF,OAAQ+oD,EAAAA,GAAYC,QAC3Cm9B,UAA0B,OAAfR,QAAe,IAAfA,OAAe,EAAfA,EAAiBt8B,UAC5B+8B,YAAaH,EACbI,cAA8B,OAAfV,QAAe,IAAfA,OAAe,EAAfA,EAAiBz8B,UAChCo9B,WAA2B,OAAfX,QAAe,IAAfA,OAAe,EAAfA,EAAiBx8B,gBAC7Bo9B,YAA4B,OAAfZ,QAAe,IAAfA,OAAe,EAAfA,EAAiBv8B,iBAC9BG,WAA2B,OAAfo8B,QAAe,IAAfA,OAAe,EAAfA,EAAiBp8B,WAC7Bi9B,4BAA6BN,EAC7BO,0BAA2BC,EAAAA,EAAUC,6BAA6Bf,GAClErpC,QAAwB,OAAfopC,QAAe,IAAfA,OAAe,EAAfA,EAAiBppC,UAG9B6oC,EAAQz6E,OAAO,CACX+9C,WAAYi9B,EACZ3c,QACArf,MAAOi8B,EACPzuB,SAAU2uB,EACV1uB,UAAW2uB,GACb,GAEH,IAEH,MAAO9I,EAAa2J,GAAkB3vF,EAAAA,WACtCA,EAAAA,WAAgB,KACZ,MAAM,WAAEyxD,EAAa,CAAC,EAAC,MAAEsgB,EAAQ,GAAE,MAAErf,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,IAAOguB,EAAQxyE,WACrFi0E,EAAiBH,EAAAA,EAAUI,iBAAiBp+B,GAClDm+B,EAAeE,WAAa1B,EAAUc,WAAaU,EAAeE,WAClEF,EAAeZ,aAAeZ,EAAUe,aAAeS,EAAeZ,aACtEY,EAAeG,aAAe3B,EAAUgB,eAAiBQ,EAAeG,aACxEH,EAAeI,aAAe5B,EAAUiB,YAAcO,EAAeI,aACrEJ,EAAeK,cAAgB7B,EAAUkB,aAAeM,EAAeK,cACvEL,EAAeX,+BACXb,EAAUmB,6BAA+BK,EAAeX,+BAC5DW,EAAeM,YAAc9B,EAAU97B,YAAcs9B,EAAeM,YACpEN,EAAeO,KAAO/B,EAAUrlF,MAAQ6mF,EAAeO,KAEvD,MAAMvwF,EAA4B,CAC9BgwF,iBACAl9B,QACAwN,WACAC,YACA4R,QACAyd,0BAA2BpB,EAAUoB,2BAInCxJ,EAAcoK,EAAAA,GAAQC,cAAc,IACnCzwF,EACH6uF,UAAWL,EAAUK,UACrB6B,QAJY,0BAKZC,YAAa,uBAEjB,GAAIvK,GACIoI,EAAUK,UAAazI,EAAYwK,4BAA4B73E,OAAQ,CACvE,MAAM81E,EAAYzI,EAAYwK,4BAA4B73E,OAC1D01E,EAAY,CAAEI,aAClB,CAEJkB,EAAe3J,EAAY,GAE5B,CAACoI,IAEJ,MAqBMqC,EACsB,IAAxBrC,EAAUK,WAAmBL,EAAUK,aAAyB,OAAXzI,QAAW,IAAXA,OAAW,EAAXA,EAAawK,4BAA4B73E,QAC5F+3E,GAA+B,OAAX1K,QAAW,IAAXA,OAAW,EAAXA,EAAa2K,aAAcF,EAC/CG,IAAyB,OAAX5K,QAAW,IAAXA,GAAAA,EAAa2K,aAAcD,EAC/C,OACItxF,EAAAA,EAAAA,KAACyxF,EAAAA,EAAM,CAAC3/E,MAAI,EAAC4/E,WAAY,CAAEtxF,MAAOuxF,GAAc/+E,QAASA,EAAQpK,UAC7DyD,EAAAA,EAAAA,MAAC+K,EAAS,CAAC1K,GAAG,6BAA4B9D,SAAA,EACtCyD,EAAAA,EAAAA,MAACgL,GAAM,CAAC3K,GAAG,UAAUlM,MAAO,CAAEyZ,UAAW,GAAIrR,SAAA,EACzCxI,EAAAA,EAAAA,KAAC4xF,GAAW,CAACvgF,QAASuB,KACtB5S,EAAAA,EAAAA,KAACkZ,EAAK,CAACxP,KAAM,CAAEslF,YAAWpI,cAAap6E,IAAKuiF,EAAQxyE,eACpDvc,EAAAA,EAAAA,KAAC6xF,GAAkB,CAACt7E,WAvBdtU,IAClB,MAAM,MAAEqxD,EAAQ,IAAOy7B,EAAQxyE,WAEzBu1E,EAA2B,CAAEx+B,MADhBA,EAAM9mD,IAAI8gF,EAAeU,aAE5CV,EAAeO,aAAaiE,EAAgB7vF,EAAK,QAqBzCjC,EAAAA,EAAAA,KAAC+xF,GAAgB,CAACvE,SAAUuB,EAAQvtF,MAAMwwF,aAAcC,YAlB5CC,KACpB,MAAM,MAAEvf,EAAK,MAAErf,EAAK,SAAEwN,EAAQ,UAAEC,GAAcv0D,EAAI+P,WAClDwyE,EAAQz6E,OAAO,CAAEq+D,QAAOrf,QAAOwN,WAAUC,YAAWixB,kBAAc9qF,IAClE+nF,EAAY,CAAEI,UAAW,EAAG/9B,YAAQpqD,GAAY,KAgBxC+E,EAAAA,EAAAA,MAACgL,GAAM,CAAC3K,GAAG,UAAS9D,SAAA,EAChByD,EAAAA,EAAAA,MAACkmF,GAAY,CAAA3pF,SAAA,EACTxI,EAAAA,EAAAA,KAACoyF,EAAAA,EAAW,CACR/5E,OAAQ,CACJ,CAAEpR,MAAOonF,EAAkBz6E,MAAO,YAC9Bm7E,EAAQvtF,MAAM8xD,OAAS,IAAI9mD,KAAK87C,IAAC,CAAQrhD,MAAOqhD,EAAEgJ,OAAS19C,MAAO00C,EAAErmD,UAE5EgF,MAAO+nF,EAAU19B,QAAU+8B,EAC3BgE,cAAgBprF,IACZgoF,EAAY,CAAE39B,OAAQrqD,IAAUonF,OAAmBnnF,EAAYD,GAAQ,EAE3EsK,OAAQ,CAAE1G,KAAM,CAAEgF,OAAQ,GAAIxC,MAAO,IAAKilF,UAAW,cAEzDtyF,EAAAA,EAAAA,KAACoyF,EAAAA,EAAW,CACR/5E,QACwB,QAApBk2E,EAAA/hF,EAAIhL,MAAM6wD,kBAAU,IAAAk8B,OAAA,EAApBA,EAAsB/hF,KAAKuV,IAAC,IAAAwwE,EAAA,MAAM,CAC9BtrF,MAAO8a,EAAEwwC,YACT3+C,OAAgB,QAAT2+E,EAAAxwE,EAAEmkC,eAAO,IAAAqsC,OAAA,EAATA,EAAW/S,UAAW,GAChC,MAAM,GAEXv4E,OAAwB,QAAjBunF,EAAAQ,EAAU9oC,eAAO,IAAAsoC,OAAA,EAAjBA,EAAmBzwC,OAAQ,GAClCs0C,cAAgBprF,IAAW,IAADurF,EAAAC,EAAAC,EAAAC,EACtB,MAAMtgC,EAAiC,QAAvBmgC,EAAGhmF,EAAIhL,MAAM6wD,kBAAU,IAAAmgC,OAAA,EAApBA,EAAsBzjC,MAAMhtC,GAAMA,EAAEwwC,cAAgBtrD,IACjEqsD,GACa,QAAfm/B,EAAAjmF,EAAIhL,MAAM8xD,aAAK,IAAAm/B,OAAA,EAAfA,EAAiB5yE,QAAQkC,IAAC,IAAA6xC,EAAA,OAAe,OAAVvB,QAAU,IAAVA,GAAmB,QAATuB,EAAVvB,EAAYI,eAAO,IAAAmB,OAAT,EAAVA,EAAqB6J,MAAMnV,GAAMA,IAAMvmC,EAAEuvC,QAAO,MAC/E,GACEwP,GACgB,QAAlB4xB,EAAAlmF,EAAIhL,MAAMs/D,gBAAQ,IAAA4xB,OAAA,EAAlBA,EAAoB7yE,QAAQkC,GAAMuxC,EAAMmK,MAAMnV,GAAMA,EAAEgJ,SAAWvvC,EAAEuvC,aAAY,GAC7EyP,GACiB,QAAnB4xB,EAAAnmF,EAAIhL,MAAMu/D,iBAAS,IAAA4xB,OAAA,EAAnBA,EAAqB9yE,QAAQkC,GAAMuxC,EAAMmK,MAAMnV,GAAMA,EAAEgJ,SAAWvvC,EAAEuvC,aAAY,GACpFy9B,EAAQz6E,OAAO,CAAEg/C,QAAOwN,WAAUC,YAAW1O,eAC7C48B,EAAY,CACR/oC,QAAmB,OAAVmM,QAAU,IAAVA,OAAU,EAAVA,EAAYnM,QACrBv8C,MAAgB,OAAV0oD,QAAU,IAAVA,OAAU,EAAVA,EAAY1oD,OAAQ+oD,EAAAA,GAAYC,QACtCm9B,UAAqB,OAAVz9B,QAAU,IAAVA,OAAU,EAAVA,EAAYW,UACvBg9B,cAAyB,OAAV39B,QAAU,IAAVA,OAAU,EAAVA,EAAYQ,UAC3Bo9B,WAAsB,OAAV59B,QAAU,IAAVA,OAAU,EAAVA,EAAYS,gBACxBo9B,YAAuB,OAAV79B,QAAU,IAAVA,OAAU,EAAVA,EAAYU,iBACzBG,WAAsB,OAAVb,QAAU,IAAVA,OAAU,EAAVA,EAAYa,WACxB68B,aAAuB,OAAV19B,QAAU,IAAVA,OAAU,EAAVA,EAAY1oD,QAAS+oD,EAAAA,GAAYC,QAAU,GAAK,EAC7Dw9B,6BAAuC,OAAV99B,QAAU,IAAVA,OAAU,EAAVA,EAAY1oD,QAAS+oD,EAAAA,GAAYC,QAAU,GAAK,EAC7Ey9B,0BAA2BC,EAAAA,EAAUC,6BAA6Bh9B,IACpE,EAEN/hD,OAAQ,CAAE1G,KAAM,CAAEgF,OAAQ,GAAIxC,MAAO,IAAKilF,UAAW,iBAG7DtyF,EAAAA,EAAAA,KAAC4yF,GAAO,CACJ3rF,MAAO+nF,EAAUK,UACjBwD,SAAWxD,GAAcJ,EAAY,CAAEI,cACvCiC,kBAAmBA,KAEvBtxF,EAAAA,EAAAA,KAAC8yF,GAAa,CAACd,aAAcjD,EAAQvtF,MAAMwwF,aAAcz7E,WAtF/Cy7E,IACtB,MAAMxE,EAAWwE,EAAahG,WAAagG,EACrCe,EAAczF,EAAeC,oCAAoCC,GACjEwF,EAAaC,EAAAA,EAAUF,YAAY,CAAEA,gBAC3ChE,EAAQlyE,WAAW,IAAKm2E,EAAYhB,iBACpC/C,EAAY,CAAEI,UAAW,EAAG/9B,YAAQpqD,GAAY,QAmFxClH,EAAAA,EAAAA,KAACuoE,EAAAA,EAAO,CAACj8D,GAAG,UAAUlM,MAAO,CAAEyZ,UAAW,OAC1C5N,EAAAA,EAAAA,MAACinF,GAAI,CAAC5mF,GAAG,OAAOlM,MAAO,CAAEyQ,WAAY,IAAKrI,SAAA,EACtCxI,EAAAA,EAAAA,KAACmzF,GAAQ,CACL7/B,MAAOy7B,EAAQvtF,MAAM8xD,MACrBqf,MAAOoc,EAAQvtF,MAAMmxE,MACrB7R,SAAUiuB,EAAQvtF,MAAMs/D,SACxBC,UAAWguB,EAAQvtF,MAAMu/D,UACzBzP,OAAQ09B,EAAU19B,OAClBs1B,YAAaA,KAEjB36E,EAAAA,EAAAA,MAACmnF,GAAa,CAAC9mF,GAAG,gBAAe9D,SAAA,EAC7ByD,EAAAA,EAAAA,MAAConF,GAAI,CAAC/mF,GAAG,OAAM9D,SAAA,EACXxI,EAAAA,EAAAA,KAACszF,GAAK,CAAC5hF,MAAM,SAAQlJ,UACjBxI,EAAAA,EAAAA,KAACoyF,EAAAA,EAAW,CACR/5E,OAAQ,CACJ,CAAEpR,MAAOyrD,EAAAA,GAAYC,QAAS/+C,MAAO,WACrC,CAAE3M,MAAOyrD,EAAAA,GAAYU,WAAYx/C,MAAO,gBAE5C3M,MAAO+nF,EAAUrlF,KACjB0oF,cAAgB1oF,GAASslF,EAAY,CAAEtlF,KAAMA,IAC7C4H,OAAQ,CAAE1G,KAAM,CAAEgF,OAAQ,UAiBlC7P,EAAAA,EAAAA,KAACszF,GAAK,CAAC5hF,MAAM,iBAAgBlJ,UACzBxI,EAAAA,EAAAA,KAACuzF,EAAAA,GAAO,CAAC7hF,OAA+B,QAAxB+8E,EAAAM,EAAQvtF,MAAM6wD,kBAAU,IAAAo8B,GAAS,QAATC,EAAxBD,EAA0BvoC,eAAO,IAAAwoC,OAAT,EAAxBA,EAAmClP,UAAW,GAAGh3E,UAC7DxI,EAAAA,EAAAA,KAACwzF,GAAW,CAAAhrF,SAA0B,QAA1BmmF,EAAEI,EAAQvtF,MAAM6wD,kBAAU,IAAAs8B,OAAA,EAAxBA,EAA0Bp8B,mBAGhDvyD,EAAAA,EAAAA,KAACszF,GAAK,CAAChnF,GAAG,uBAAuBoF,MAAM,oBAAmBlJ,UACtDxI,EAAAA,EAAAA,KAACyzF,GAAK,CACFxsF,MAAO+nF,EAAUc,UACjB4D,cAAgBzsF,GAAUgoF,EAAY,CAAEa,UAAWh3C,SAAS7xC,UAGpEjH,EAAAA,EAAAA,KAACszF,GAAK,CAAChnF,GAAG,yBAAyBoF,MAAM,wBAAoBlJ,UACzDxI,EAAAA,EAAAA,KAACyzF,GAAK,CACFxsF,MAAO+nF,EAAUe,YACjB2D,cAAgBzsF,GAAUgoF,EAAY,CAAEc,YAAaj3C,SAAS7xC,UAGtEjH,EAAAA,EAAAA,KAACszF,GAAK,CAAChnF,GAAG,2BAA2BoF,MAAM,mBAAkBlJ,UACzDxI,EAAAA,EAAAA,KAACyzF,GAAK,CACFxsF,MAAO+nF,EAAUgB,cACjB0D,cAAgBzsF,GAAUgoF,EAAY,CAAEe,cAAel3C,SAAS7xC,UAGxEjH,EAAAA,EAAAA,KAACszF,GAAK,CAAChnF,GAAG,wBAAwBoF,MAAM,kBAAiBlJ,UACrDxI,EAAAA,EAAAA,KAACyzF,GAAK,CACFE,GAAC,EACD1sF,MAAO+nF,EAAUiB,WACjByD,cAAgBzsF,GAAUgoF,EAAY,CAAEgB,WAAYn3C,SAAS7xC,UAGrEjH,EAAAA,EAAAA,KAACszF,GAAK,CAAChnF,GAAG,yBAAyBoF,MAAM,mBAAkBlJ,UACvDxI,EAAAA,EAAAA,KAACyzF,GAAK,CACFxsF,MAAO+nF,EAAUkB,YACjBwD,cAAgBzsF,GAAUgoF,EAAY,CAAEiB,YAAap3C,SAAS7xC,UAGtEjH,EAAAA,EAAAA,KAACszF,GAAK,CAAChnF,GAAG,sBAAsBoF,MAAM,aAAYlJ,UAC9CxI,EAAAA,EAAAA,KAACyzF,GAAK,CACFxsF,MAAO+nF,EAAU97B,WACjBwgC,cAAgBzsF,GAAUgoF,EAAY,CAAE/7B,WAAYpa,SAAS7xC,UAGrEjH,EAAAA,EAAAA,KAACszF,GAAK,CAAChnF,GAAG,yCAAyCoF,MAAM,6BAA4BlJ,UACjFxI,EAAAA,EAAAA,KAACyzF,GAAK,CACFxsF,MAAO+nF,EAAUmB,4BACjBuD,cAAgBzsF,GACZgoF,EAAY,CAAEkB,4BAA6Br3C,SAAS7xC,SAI5C,QADZ2nF,EACPG,EAAQvtF,MAAM8xD,aAAK,IAAAs7B,OAAA,EAAnBA,EAAqBpiF,KAAKy2D,IAAI,IAAA2wB,EAAA,OAC3B5zF,EAAAA,EAAAA,KAACszF,GAAK,CAAmB5hF,MAAK,gBAAA5D,OAAkBm1D,EAAKhhE,KAAI,MAAKuG,UAC1DxI,EAAAA,EAAAA,KAACoyF,EAAAA,EAAW,CACR/5E,OACI22E,EAAUrlF,OAAS+oD,EAAAA,GAAYU,WACzB,CACI,CAAEnsD,MAAO4sF,EAAAA,GAAkBC,aAAclgF,MAAO,YAChD,CACI3M,MAAO4sF,EAAAA,GAAkBE,eACzBngF,MAAO,cAEX,CACI3M,MAAO4sF,EAAAA,GAAkBG,kBACzBpgF,MAAO,gBAEX,CACI3M,MAAO4sF,EAAAA,GAAkBI,oBACzBrgF,MAAO,iBAGf,CACI,CAAE3M,MAAO4sF,EAAAA,GAAkBK,cAAetgF,MAAO,YACjD,CACI3M,MAAO4sF,EAAAA,GAAkBM,gBACzBvgF,MAAO,eAIzB3M,MAA0C,QAArC2sF,EAAE5E,EAAUoB,iCAAyB,IAAAwD,OAAA,EAAnCA,EAAsC3wB,EAAK3R,QAClD+gC,cAAgBnD,IAAe,IAADkF,EAC1B,MAAMhE,EAA+D,QAAtCgE,EAAGpF,EAAUoB,iCAAyB,IAAAgE,EAAAA,EAAI,CAAC,EAC1EhE,EAA0BntB,EAAK3R,QAAW49B,EAC1CD,EAAY,CAAEmB,6BAA4B,EAE9C7+E,OAAQ,CAAE1G,KAAM,CAAEgF,OAAQ,QAjCtBozD,EAAK3R,OAmCT,OAGfkgC,IACGvlF,EAAAA,EAAAA,MAACooF,GAAW,CAAA7rF,SAAA,GACK,OAAXo+E,QAAW,IAAXA,GAAAA,EAAa2K,cAAcvxF,EAAAA,EAAAA,KAACs0F,GAAU,CAAA9rF,SAAC,gBAC7B,OAAXo+E,QAAW,IAAXA,OAAW,EAAXA,EAAa2K,cACVtlF,EAAAA,EAAAA,MAACrL,EAAAA,SAAc,CAAA4H,SAAA,EACXxI,EAAAA,EAAAA,KAACu0F,GAAgB,CAAA/rF,SACO,QADPqmF,EACZE,EAAQvtF,MAAM8xD,aAAK,IAAAu7B,OAAA,EAAnBA,EAAqBriF,KAAKy2D,IACvBjjE,EAAAA,EAAAA,KAACw0F,GAAmB,CAEhBvxB,KAAMA,EACN3P,MAAOy7B,EAAQvtF,MAAM8xD,OAAS,GAC9ByN,UAAWguB,EAAQvtF,MAAMu/D,WAAa,GACtCrvD,MAAK,gBAAA5D,OAAkBm1D,EAAKhhE,MAC5B2kF,YAAaA,GALR3jB,EAAK3R,aAStBtxD,EAAAA,EAAAA,KAACszF,GAAK,CAAC5hF,MAAM,aAAatR,MAAO,CAAEyZ,UAAW,IAAKrR,UAC/CxI,EAAAA,EAAAA,KAACy0F,GAAe,CAAAjsF,SAAa,OAAXo+E,QAAW,IAAXA,OAAW,EAAXA,EAAaA,YAAYz2B,QAAQ,QAEvDnwD,EAAAA,EAAAA,KAACszF,GAAK,CAAC5hF,MAAM,yBAAwBlJ,UACjCxI,EAAAA,EAAAA,KAACy0F,GAAe,CAAAjsF,SACA,OAAXo+E,QAAW,IAAXA,OAAW,EAAXA,EAAa8N,mBACT/xE,QAAO,CAACgxE,EAAG5K,IAAM4K,EAAI5K,EAAExvE,QAAQ,GAC/B42C,QAAQ,uBAU5C,EAMXwhC,EAA4B,CAC9B33E,SAAU,WACV3M,MAAO,OACPgN,SAAU,oBACVxK,OAAQ,OACR8kF,aAAc,GAGZ39E,GAAYpK,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAC5BoN,SAAU,WACV3M,MAAO,OACPwC,OAAQ,OACR3C,QAAS,qBAGPgM,EAAQjL,IAA8B,IAA7B,KAAEvE,GAAqBuE,EAClC,MAAM2mF,GAAa1jF,EAAAA,EAAAA,KACb8F,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BvB,QAAS,OACTuO,eAAgB,SAChB3M,SAAU,GACV4N,OAAQ,YAEZ,OACI5O,EAAAA,EAAAA,MAACrL,EAAAA,SAAc,CAAA4H,SAAA,EACXxI,EAAAA,EAAAA,KAACgX,EAAS,CAAC3F,QAASujF,EAAWtjF,KAAK9I,SAAC,6BACpCosF,EAAWhjF,UAAW5R,EAAAA,EAAAA,KAAC60F,EAAAA,EAAW,CAACnjF,MAAM,eAAehI,KAAMA,EAAMkJ,QAASgiF,EAAWriF,SAC5E,EAInB0E,IAASrK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEoN,SAAU,WAAY3O,QAAS,OAAQypF,oBAAqB,gBACrF3C,IAAevlF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQ+E,IAAK,KACrD2kF,IAAcnoF,EAAAA,EAAAA,GAAOooF,EAAAA,EAAPpoF,CAAe,CAC/B+nF,aAAc,EACd36E,SAAU,WACVG,IAAK,EACL86E,OAAQ,EACR/6E,MAAO,EACP+oE,OAAQ,OACR51E,MAAO,IACPD,WAAY,IACZH,SAAU,KAGRimF,IAAOtmF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQgC,MAAO,OAAQwC,OAAQ,OAAQyK,KAAM,EAAGlK,IAAK,GAAIoK,UAAW,WACpG44E,IAAgBxmF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAES,MAAO,cAAeQ,YAAa,KACnEwlF,IAAOzmF,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAAEwD,IAAK,KAE5BikF,IAAcznF,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAC9BiN,UAAW,GACX3J,OAAQ,kBACRhD,QAAS,GACTynF,aAAc,EACdvkF,IAAK,IAGHkkF,IAAa1nF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAExB,MAAO,MAAO6B,SAAU,GAAIK,UAAW,SAAUD,MAAO,SACrFonF,IAAkB7nF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEQ,WAAY,IAAKH,SAAU,GAAI7B,MAAO,QAASkC,UAAW,QAASgN,KAAM,IAW3Gs4E,GAAUj3E,IAA+D,IAA9D,MAAE1U,EAAQ,EAAC,SAAE4rF,EAAQ,kBAAEvB,GAAiC31E,EACrE,MAMMu5E,GAAQtoF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACxBS,MAAO,GACPD,WAAY,IACZH,SAAU,GACVyN,WAAY,OACZpN,UAAW,SACXlC,MAAO,YAGX,OACIa,EAAAA,EAAAA,MAACkpF,GAAc,CAAC7oF,GAAG,UAAS9D,SAAA,EACxBxI,EAAAA,EAAAA,KAACo1F,GAAS,CAAC/jF,QAhBDgkF,KACd,MAAM/vF,EAAS2B,EAAQ,EACvB4rF,EAASvtF,GAAU,EAAIA,EAAS,EAAE,EAcCgH,GAAG,QAAO9D,UACrCxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOumF,UAAS,OAErBt1F,EAAAA,EAAAA,KAACk1F,EAAK,CAAC5oF,GAAG,eAAc9D,SAAEvB,KAC1BjH,EAAAA,EAAAA,KAACo1F,GAAS,CACN/jF,QAtBMkkF,IAAM1C,EAAS5rF,EAAQ,GAuB7BqF,GAAG,OACH0E,SAAUsgF,EACVlxF,MAAO,CACHo1F,QAASlE,EAAoB,GAAM,EACnCjxF,WAAYixF,EAAoB,UAAY,cAC5Cz2E,OAAQy2E,EAAoB,cAAgB,UAC5CmE,cAAmC,QACrCjtF,UACFxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAO2mF,SAAQ,QAEP,EAGnBP,IAAiBvoF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACjCvB,QAAS,OACT4E,WAAY,SACZJ,OAAQ,GACRK,OAAQ,4BACRylF,YAAa,WAGXP,IAAYxoF,EAAAA,EAAAA,GAAOooF,EAAAA,EAAPpoF,CAAe,CAAE+nF,aAAc,EAAGtnF,MAAO,GAAIwC,OAAQ,SAejEsjF,GAAWltB,IAQK,IARJ,MACd3S,EAAQ,GAAE,SACVwN,EAAW,GAAE,UACbC,EAAY,GAAE,MACd4R,EAAQ,GAAE,OACVrhB,EAAM,YACNs1B,EAAW,WACX6B,GACYxiB,EACZ,MAAM6a,EAAalgF,EAAAA,OAA4B,MAC/C,OACIZ,EAAAA,EAAAA,KAAC41F,GAAc,CAACtpF,GAAG,WAAU9D,UACzBxI,EAAAA,EAAAA,KAACyrF,EAAkB,CACf3K,WAAYA,EACZnO,MAAOA,EACPrf,MAAOA,EACPyN,UAAWA,EACXD,SAAUA,EACVxP,OAAQA,EACR81B,SAAqB,OAAXR,QAAW,IAAXA,OAAW,EAAXA,EAAaQ,SACvBhnF,MAAO,CAAEiL,QAAS,QAClBo9E,WAAYA,KAEH,EAInBmN,IAAiBhpF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACjCoN,SAAU,WACV3O,QAAS,OACTiP,KAAM,EACNQ,SAAU,SACVN,UAAW,SACXq7E,UAAW,WAQTvC,GAA8BhpB,IAAqC,IAApC,GAAEh+D,EAAE,MAAEoF,EAAK,MAAEtR,EAAK,SAAEoI,GAAU8hE,EAC/D,MAAMpxD,GAAQtM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACxBQ,WAAY,IACZH,SAAU,GACV7B,MAAO,UACPkC,UAAW,QACXgN,KAAM,EACNjN,MAAO,gBAGX,OACIpB,EAAAA,EAAAA,MAAC6pF,GAAc,CAACxpF,GAAIA,EAAIlM,MAAOA,EAAMoI,SAAA,EACjCxI,EAAAA,EAAAA,KAACkZ,EAAK,CAAA1Q,SAAEkJ,KACR1R,EAAAA,EAAAA,KAAC+1F,GAAY,CAAAvtF,SAAEA,MACF,EAGnBstF,IAAiBlpF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQ2O,SAAU,WAAY/J,WAAY,SAAUG,IAAK,IACnG2lF,IAAenpF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQ4E,WAAY,SAAU5C,MAAO,MAG7EomF,GAAQ1hB,IAAgE,IAA/D,MAAE9qE,EAAK,cAAEysF,EAAa,EAAEC,GAAI,KAAUjwF,GAAmBquE,EACpE,MACM,UAAEikB,EAAS,SAAEnD,IAAaoD,EAAAA,EAAAA,IAAoB,CAChD3/E,aAAcrP,EACdivF,cAAexC,EACfyC,MAAO,MAUX,OAPAC,EAAAA,EAAAA,YAAU,KACFnvF,IAAU+uF,GACVnD,EAAS5rF,EACb,GAED,CAACA,KAGAjH,EAAAA,EAAAA,KAACq2F,EAAAA,EAAW,CACRpvF,MAAO+uF,EACPnD,SAAW/4B,GAAM+4B,EAAS/4B,EAAEj5C,OAAO5Z,OACnC7G,MAlB0B,CAAEyZ,UAAW,EAAGhK,OAAQ,GAAI3C,QAAS,aAmB/DopF,YAAY,MACR5yF,GACN,EAMJ8vF,IAAc5mF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC9BK,SAAU,GACVG,WAAY,IACZE,UAAW,SACXD,MAAO,OACPjC,MAAO,UAKLmpF,IAAmB3nF,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAAES,MAAO,cAAe+C,IAAK,IAS9DokF,GAAsB+B,IAA+E,IAA9E,MAAE7kF,EAAK,KAAEuxD,EAAI,MAAE3P,EAAK,UAAEyN,EAAS,YAAE6lB,GAAuC2P,EACjG,MAAMC,EAAY51F,EAAAA,OAAwB,CAAE0wD,OAAQ2R,EAAK3R,SAEnDmlC,GAAW9P,EAAAA,EAAAA,GAA0B,CACvC1jB,OACA3P,QACAyN,YACA6lB,cACAE,UAAWA,IAAM0P,EAAUjuF,UAEzByO,GAAYpK,EAAAA,EAAAA,GAAOooF,EAAAA,EAAPpoF,CAAe,CAC7BiO,OAAQ,UACRxP,QAAS,OACT4E,WAAY,SACZ2J,eAAgB,aAChBxO,MAAO,UACPupF,aAAc,EACdznF,QAAS,qBAEb,OACIjB,EAAAA,EAAAA,MAAC+K,EAAS,CAAC3F,QAASA,IAAMswE,EAAAA,EAAqByD,SAASniB,EAAKhhE,KAAOw0F,EAASxV,cAAcz4E,SAAA,EACvFxI,EAAAA,EAAAA,KAAC02F,EAAAA,EAAY,CAACt2F,MAAO,CAAEyN,YAAa,KACnC6D,EACA+kF,EAAS/O,eACF,EASdmK,GAAqB8E,IAA8C,IAA7C,WAAEpgF,GAAqCogF,EAC/D,MAAO7kF,EAAM8kF,GAAWh2F,EAAAA,UAAe,GACvC,OACIqL,EAAAA,EAAAA,MAACrL,EAAAA,SAAc,CAAA4H,SAAA,EACXxI,EAAAA,EAAAA,KAAC+0F,GAAW,CAAC1jF,QAASA,IAAMulF,GAAQ,GAAMpuF,SAAC,4BAC1CsJ,IACG9R,EAAAA,EAAAA,KAAC62F,EAAAA,EAAe,CACZ/kF,MAAI,EACJJ,MAAO,cACPO,SAAS,4BACT2D,YAAY,GACZU,aAAa,GACbggF,YAAY,sCACZ//E,WAAad,IACTc,EAAWd,GACXmhF,GAAQ,EAAM,EAElBhkF,QAASA,IAAMgkF,GAAQ,OAGlB,EASnB9D,GAAgBgE,IAAuD,IAAtD,aAAE9E,EAAY,WAAEz7E,GAAgCugF,EACnE,MAAMC,EAAen2F,EAAAA,OAAa,MAC5BsC,GAAUgO,EAAAA,EAAAA,KAEV8lF,EAA6B1J,EAAeI,gBAC3CvrC,EAAQ80C,GAAar2F,EAAAA,WAE5BA,EAAAA,WAAgB,KACPoxF,EAEM7vC,IAAW6vC,EAAa/vF,MAC/Bg1F,EAAUjF,EAAa/vF,MAFvBg1F,OAAU/vF,EAGd,GAED,CAAChE,EAAQ0O,UAEZ,MAAMslF,GAAgBtqF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEM,QAAS,qBAAsBG,MAAO,MACtE8pF,GAAevqF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC/BvB,QAAS,OACT2O,SAAU,WACVJ,eAAgB,SAChB3J,WAAY,SACZ1C,aAAc,oBACdsC,OAAQ,GACR5C,SAAU,KAGRmqF,GAAaxqF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC7BiN,UAAW,GACXxO,QAAS,OACTuO,eAAgB,SAChB3J,WAAY,SACZG,IAAK,GACLnD,SAAU,GACVG,WAAY,MAGhB,OACInB,EAAAA,EAAAA,MAACrL,EAAAA,SAAc,CAAA4H,SAAA,EACXxI,EAAAA,EAAAA,KAAC+0F,GAAW,CAAC9sF,IAAK8uF,EAAc1lF,QAASnO,EAAQoO,KAAK9I,SAAC,aAGvDxI,EAAAA,EAAAA,KAACq3F,EAAAA,GAAO,CACJvlF,KAAM5O,EAAQ0O,QACdgB,QAAS1P,EAAQqP,KACjB+kF,SAAUP,EAAaxuF,QACvBgvF,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChDC,gBAAiB,CAAEF,UAAW,GAAIC,WAAY,SAAUjvF,UACxDyD,EAAAA,EAAAA,MAACirF,EAAa,CAAA1uF,SAAA,EACVxI,EAAAA,EAAAA,KAACm3F,EAAY,CAAA3uF,SAAC,iBACdxI,EAAAA,EAAAA,KAACo3F,EAAU,CAAA5uF,UACPxI,EAAAA,EAAAA,KAACoyF,EAAAA,EAAW,CACRnrF,MAAOk7C,EACP9pC,OAAQ2+E,EAAUxqF,KAAKC,IAAI,CAAQxF,MAAOwF,EAAKxK,KAAM2R,MAAOnH,EAAKxK,SACjEowF,cAAe4E,EACf1lF,OAAQ,CAAE1G,KAAM,CAAEyP,KAAM,IACxBg8E,YAAY,sCAGpBt2F,EAAAA,EAAAA,KAAC23F,EAAAA,GAAU,CACPtmF,QAASA,KACLnO,EAAQqP,OACRgE,EAAWygF,EAAUjoC,MAAM6oC,GAAMA,EAAE31F,OAASkgD,IAAS,EAEzDnxC,UAAWmxC,GAAUA,KAAuB,OAAZ6vC,QAAY,IAAZA,OAAY,EAAZA,EAAc/vF,MAC9CyP,MAAM,UACNH,OAAQ,CAAE1G,KAAM,CAAEwC,MAAO,OAAQwM,UAAW,QAEhD7Z,EAAAA,EAAAA,KAAC4xF,GAAW,CACRvgF,QAASnO,EAAQqP,KACjBnS,MAAO,CAAEiN,MAAO,GAAIwC,OAAQ,GAAImK,SAAU,WAAYG,IAAK,EAAGD,MAAO,YAIpE,EAKnB63E,GAAmB8F,IAAuD,IAAtD,SAAErK,EAAQ,YAAEyE,GAAoC4F,EACtE,MAAM7gF,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BvB,QAAS,OACTgC,MAAO,OACP0M,aAAc,GACdH,eAAgB,SAChB3M,SAAU,GACVgD,WAAY,WAEV6nF,GAAOlrF,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAAEQ,WAAY,IAAKQ,WAAY,IAE3D,OAAQ4/E,GACJvhF,EAAAA,EAAAA,MAAC+K,EAAS,CAAC1K,GAAG,mBAAkB9D,SAAA,CAAC,iBAChBxI,EAAAA,EAAAA,KAAC83F,EAAI,CAAAtvF,SAAEglF,EAASvrF,QAC7BjC,EAAAA,EAAAA,KAACuzF,EAAAA,GAAO,CAAC7hF,MAAM,wBAAuBlJ,UAClCxI,EAAAA,EAAAA,KAAC4xF,GAAW,CAACvgF,QAAS4gF,SAJf,IAOlB,EAKCL,GAAcmG,IAA8C,IAA7C,QAAE1mF,EAAO,MAAEjR,GAA4B23F,EACxD,MAAMC,EAAYA,KAEV/rF,EAAAA,EAAAA,MAAA,OAAKoB,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,QAAO57E,SAAA,EACxDxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,kTACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,gTAIpB,OACIzqF,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAU,CAACS,QAASA,EAASjR,MAAO,CAAEkyF,UAAW,SAAUjlF,MAAO,GAAIwC,OAAQ,MAAOzP,GAAQoI,UAC1FxI,EAAAA,EAAAA,KAACg4F,EAAS,KACD,ECzwBd,MCnCMC,GAAoBr3F,EAAAA,cAA4C,CACzEs3F,WAAY,CACRC,MAAOA,OACPC,iBAAkBA,OAClBC,iBAAiB,EAEjBC,mBAAoBA,IAAM,KAE1BC,SAAUA,OACVC,UAAWA,OACXC,WAAYA,UAIPC,GAAgBA,IAAM93F,EAAAA,WAAiBq3F,IAEpD,IAAIzrF,GAAqB,GAElB,MAAMmsF,GAAoCj2F,IAAmB,IAAlB,SAAE8F,GAAU9F,EAC1D,MAAMw1F,EDgB6BU,MACnC,MAAMC,GAAeC,EAAAA,EAAAA,OACdC,EAAkBC,GAAgBp4F,EAAAA,UAAwB,IAC1Dq4F,EAAYC,GAAet4F,EAAAA,UAAwB,IAKnDy3F,EAAiBc,GAAsBv4F,EAAAA,UAAwB,GAChE4L,GAAMsiF,EAAAA,EAAAA,OAEN,MAAEx7B,EAAQ,GAAE,kBAAE8lC,EAAoB,IAAO5sF,EAAIhL,MAC7C8P,EAAOkD,QAAa,OAAL8+C,QAAK,IAALA,OAAK,EAALA,EAAO/5C,UAAY/E,QAAQ4kF,EAAkB7/E,SAAW/E,QAAQ6jF,IAErFz3F,EAAAA,WAAgB,KACR0Q,IAASynF,GACTC,GAAa,EACjB,GAED,CAAC1nF,IAEJ,MAUM6mF,EAAQ,WAA2C,IAA1C,UAAEkB,GAA6Bt4E,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9CvU,EAAI8H,OAAO,CACP+D,OAAQ,CAAE+gF,kBAAmB,IAC7BtgC,KAAM,CAAEwgC,MAAO,gCAAiCD,eAEpDF,GAAmB,GACfE,GACAh8C,EAAAA,EAAMk8C,SAAS,CAAE7nF,MAAO,yBAAuB0pC,QAAS,uBAEhE,EASA,MAAO,CACH9pC,OACAkoF,iBAAkBhtF,EAAIhL,MAAM43F,kBAC5BjB,QAEAE,kBACAD,iBAbqB,WACrBD,EAD8Cp3E,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,GAElDo4E,GAAmB,EACvB,EAYIb,mBAVuBA,KAAMt4F,EAAAA,EAAAA,KAACsuF,EAAkB,CAAC17E,QAASulF,IAY1Dc,aACAV,SAvDaA,IAAMW,GAAY,GAwD/BV,UAvDcA,IAAMU,GAAY,GAyDhCH,mBACAN,WA3CeA,KACfO,GAAa,GACbE,GAAY,GACZL,EAAavkF,OAAO,CAAEmlF,4BAA4B,IAClDjtF,EAAI8H,OAAO,CACP+D,OAAQ,CAAE+gF,kBAAmB,IAC7BtgC,KAAM,CAAEwgC,MAAO,uCACjB,EAqCL,ECjFkBV,GAwBbc,EAAc5/B,GAAsBttD,GAAMA,GAAIqT,QAAQkC,GAAMA,IAAM+3C,EAAE/b,OAEpE47C,EAAa7/B,KACc,IAAzBttD,GAAI4W,QAAQ02C,EAAE/b,MACdvxC,GAAIpL,KAAK04D,EAAE/b,MACW,IAAfvxC,GAAI+M,SACX/M,GAAI,GAAKstD,EAAE/b,MA5BQvxC,KACvB,MAAMotF,EAAWptF,EAAI,GACfqtF,EAAYrtF,EAAI,GAChBhM,EAA2B,CAAE64F,WAAW,GAC9C,GAAiB,SAAbO,EACA,OAAQC,GACJ,IAAK,SACL,IAAK,UAED3B,EAAWC,MAAM33F,GACjB,MACJ,IAAK,SACL,IAAK,UAED03F,EAAWE,mBAKvB,EAWA0B,CAAkBttF,GAAI,EAkB1B,OAfA5L,EAAAA,WAAgB,KACZkhF,SAASiY,iBAAiB,UAAWJ,GAC9B,KACH7X,SAASkY,oBAAoB,UAAWL,EAAU,IAGvD,IAEH/4F,EAAAA,WAAgB,KACZkhF,SAASiY,iBAAiB,QAASL,GAC5B,KACH5X,SAASkY,oBAAoB,QAASN,EAAW,IAEtD,KAGCztF,EAAAA,EAAAA,MAACgsF,GAAkBh7E,SAAQ,CAAChW,MAAO,CAAEixF,cAAa1vF,SAAA,CAC7CA,EACA0vF,EAAWG,kBAAmBr4F,EAAAA,EAAAA,KAACk4F,EAAWI,mBAAkB,MACpC,wKC5CrC,MAAM2B,EAAyBr5F,EAAAA,cAA0C,CACrEY,MAAO04F,EAAuB,CAAC,GAC/B5lF,OAAQA,OACR6lF,gBAAiBA,OACjBC,qBAAsBA,SAEbC,EAAqBA,IAAMz5F,EAAAA,WAAiBq5F,GAC5CK,EAA0BA,IAAM15F,EAAAA,WAAiBq5F,GAAwBz4F,MA8BzE+4F,EAA0B73F,IAAgD,IAA/C,SAAE8F,GAAuC9F,EAC7E,MAAM83F,GAAc1L,EAAAA,EAAAA,MAAgBttF,OAE7Bi5F,EAAcN,GAAmBv5F,EAAAA,YACjC85F,EAAmBN,GAAwBx5F,EAAAA,YAC3CgmF,EAAa2J,GAAkB3vF,EAAAA,YAChC,MAAEY,EAAK,SAAE+a,EAAQ,OAAEjI,IAAWC,EAAAA,EAAAA,GAAmC2lF,EAAuBM,IAwC9F,OAtCA55F,EAAAA,WAAgB,KACZ,MAAM,WAAEyxD,EAAa,CAAC,EAAC,MAAEiB,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,IAAOxkD,IACjEi0E,EAAiBH,EAAAA,EAAUI,iBAAiBp+B,GAClDm+B,EAAeE,WAAalvF,EAAMsuF,WAAaU,EAAeE,WAC9DF,EAAeZ,aAAepuF,EAAMuuF,aAAeS,EAAeZ,aAClEY,EAAeG,aAAenvF,EAAMwuF,eAAiBQ,EAAeG,aACpEH,EAAeI,aAAepvF,EAAMyuF,YAAcO,EAAeI,aACjEJ,EAAeK,cAAgBrvF,EAAM0uF,aAAeM,EAAeK,cACnEL,EAAeX,+BACXruF,EAAM2uF,6BAA+BK,EAAeX,+BACxDW,EAAeM,YAActvF,EAAM0xD,YAAcs9B,EAAeM,YAChEN,EAAeO,KAAOvvF,EAAMs9D,aAAe0xB,EAAeO,KAE1D,MAAMvwF,EAA4B,CAC9BgwF,iBACAl9B,QACAwN,WACAC,YACA4R,MAAO6nB,EAAY7nB,OAAS,GAC5Byd,0BAA2B5uF,EAAM4uF,2BAI/BxJ,EAAcoK,EAAAA,GAAQC,cAAc,IACnCzwF,EACH6uF,UAAW7tF,EAAM6tF,UACjB6B,QAJY,+BAKZC,YAAa,4BAGX9B,EAqEd,SAA4BsL,EAAwB/T,GAChD,GAAIA,GAAe+T,EAAiB/T,EAAYwK,4BAA4B73E,OAAQ,CAEhF,OADkBqtE,EAAYwK,4BAA4B73E,MAE9D,CACA,OAAOohF,CACX,CA3E0BC,CAAmBp5F,EAAM6tF,UAAYzI,GACnDplF,EAAM6tF,YAAcA,GACpB/6E,EAAO,CAAE+6E,cAGbkB,EAAe3J,EAAY,GAC5B,CAACplF,KAGAxB,EAAAA,EAAAA,KAACi6F,EAAuBh9E,SAAQ,CAC5BhW,MAAO,CACH2/E,cACAplF,QACA8S,SACAmmF,eACAN,kBACAO,oBACAN,wBACF5xF,SACDA,GAC6B,EAI1C,SAAS0xF,EAAuB1tF,GAC5B,MAAM,WAAE6lD,EAAa,GAAE,MAAEiB,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,IAAOv0D,EAEjE4/E,EAAWloB,EAAAA,GAASC,IACpB02B,EAAWvnC,EAAMzzC,QAAQyoC,GAAMA,EAAE3+C,OAASyiF,IAI1CkD,EAHgBj9B,EAAWxyC,QAAQi7E,IAAE,IAAAC,EAAA,OAC7B,QAD6BA,EACvCD,EAAGroC,eAAO,IAAAsoC,OAAA,EAAVA,EAAYt9B,MAAMnM,GAAWupC,EAASruF,KAAK87C,GAAMA,EAAEgJ,SAASrd,SAASqd,IAAQ,IAE3C,GAChCi+B,EAAasL,EAASh7E,QAAQyoC,IAAC,IAAAknC,EAAA,OAA4B,QAA5BA,EAAKF,EAAgB78B,eAAO,IAAA+8B,OAAA,EAAvBA,EAAyB/xB,MAAM17C,GAAMA,IAAMumC,EAAEgJ,QAAO,IACxFm+B,EAAgB3uB,EAASjhD,QAAQq2B,GAAMq5C,EAAW9xB,MAAMnV,GAAMA,EAAEgJ,SAAWpb,EAAEob,WAC7Eo+B,EAAiB3uB,EAAUlhD,QAAQ8vE,GAAOJ,EAAW9xB,MAAMnV,GAAMA,EAAEgJ,SAAWq+B,EAAGr+B,WACjFs+B,GAA8B,OAAfN,QAAe,IAAfA,OAAe,EAAfA,EAAiB3lF,QAAS+oD,EAAAA,GAAYC,QAAU,GAAK,EACpEk9B,GAAgD,OAAfP,QAAe,IAAfA,OAAe,EAAfA,EAAiB3lF,QAAS+oD,EAAAA,GAAYC,QAAU,GAAK,EAE5F,MAAO,CACHqoC,UAAW,CACP3oC,WAAYA,EACZsgB,MAAOnmE,EAAImmE,OAAS,GACpBrf,MAAO9mD,EAAI8mD,OAAS,GACpBwN,SAAUt0D,EAAIs0D,UAAY,GAC1BC,UAAWv0D,EAAIu0D,WAAa,IAEhCqrB,WACA94B,MAAOi8B,EACPzuB,SAAU2uB,EACV1uB,UAAW2uB,EAEXL,UAAW,EACXhN,cAAe,EAEfhwB,WAAYi9B,EACZQ,UAA0B,OAAfR,QAAe,IAAfA,OAAe,EAAfA,EAAiBt8B,UAC5B+8B,YAAaH,EACbI,cAA8B,OAAfV,QAAe,IAAfA,OAAe,EAAfA,EAAiBz8B,UAChCo9B,WAA2B,OAAfX,QAAe,IAAfA,OAAe,EAAfA,EAAiBx8B,gBAC7Bo9B,YAA4B,OAAfZ,QAAe,IAAfA,OAAe,EAAfA,EAAiBv8B,iBAC9BG,WAA2B,OAAfo8B,QAAe,IAAfA,OAAe,EAAfA,EAAiBp8B,WAC7Bi9B,4BAA6BN,EAC7BO,0BAA2BC,EAAAA,EAAUC,6BAA6Bf,GAClErpC,QAAwB,OAAfopC,QAAe,IAAfA,OAAe,EAAfA,EAAiBppC,QAC1B4Y,aAA4B,OAAfwwB,QAAe,IAAfA,OAAe,EAAfA,EAAiB3lF,OAAQ+oD,EAAAA,GAAYC,QAE1D,CAUO,SAASsoC,IAGb,IADC7K,EAAoDrvE,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAExD,OAHiBA,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAGJvU,KAAK0uF,IACjB,MAAMC,EAAoB/K,EAA0B8K,EAAQ5pC,QAI5D,OAHI98C,QAAQ2mF,IAAsBD,EAAQC,oBAAsBA,IAC5DD,EAAQC,kBAAoBA,GAEzBD,CAAO,GAEtB,iJC5LO,MAAME,EAAe1Q,GAAiB,GAAA58E,OAAQ48E,EAAM3oE,EAAC,KAAAjU,OAAI48E,EAAMvG,GAEzDkX,EAAaA,KACtB,MAAM,MAAE/nC,EAAQ,KAAOgnC,EAAAA,EAAAA,MACvB,OACIt6F,EAAAA,EAAAA,KAAA,KAAGsM,GAAG,WAAU9D,SACX8qD,EAAM9mD,KAAKy2D,IACRjjE,EAAAA,EAAAA,KAACs7F,EAAc,IAAuBr4B,GAAjBA,EAAK3R,WAE9B,EAINgqC,EAAkBr4B,IAAiB,IAADs4B,EACpC,MAAMC,EAA4B,QAAbD,EAAGt4B,EAAK0P,aAAK,IAAA4oB,OAAA,EAAVA,EAAY/uF,KAAK+4E,GAAM6V,EAAY7V,EAAE3C,SAAQrL,KAAK,KACpEqV,EAAO3pB,EAAK0P,MAAO,GACnBgQ,EAAM,GAAA70E,OAAM0tF,EAAe,KAAA1tF,OAAIstF,EAAYxO,EAAKhK,QAEhD6Y,EAAYC,EAAcz4B,GAC1Bv/D,EAA2C,CAC7C4I,GAAIqvF,EAAAA,GAASC,YAAYhP,EAAKt7B,QAC9BqxB,SACAiI,YAAa,EACbD,OAAQ8Q,EAAY,UAAY,wBAChCrX,KAAMqX,EAAY,UAAY,4BAGlC,OAAOz7F,EAAAA,EAAAA,KAAC67F,EAAO,CAACC,UAAW74B,EAAKgpB,QAAUC,EAAAA,GAAU6P,yBAA2Br4F,GAAS,EAItFm4F,EAAUn5F,IAA6C,IAA5C,UAAEo5F,KAAcp4F,GAAsBhB,EACnD,OAAOo5F,GAAY97F,EAAAA,EAAAA,KAAA,cAAa0D,KAAY1D,EAAAA,EAAAA,KAAA,eAAc0D,GAAS,EAG1Dg4F,EAAiBz4B,IAAiB,IAADolB,EAE1C,OADoBz7B,EAAAA,EAAc4F,eAA4C,QAA9B61B,EAACplB,EAAKtP,gCAAwB,IAAA00B,OAAA,EAA7BA,EAA+BriC,eAG5Eid,EAAKk4B,oBACJ,CAACtH,EAAAA,GAAkBI,oBAAqBJ,EAAAA,GAAkBG,mBAAmB//C,SAASgvB,EAAKk4B,kBAAmB,8FC5ChH,IAAKtH,EAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,8BAAjBA,EAAiB,kCAAjBA,EAAiB,4BAAjBA,EAAiB,gCAAjBA,EAAiB,sCAAjBA,EAAiB,0CAAjBA,CAAiB,MAajB1E,EAAc,SAAdA,GAAc,OAAdA,EAAc,oBAAdA,EAAc,wBAAdA,EAAc,sBAAdA,EAAc,WAAdA,CAAc,MAOdz8B,EAAW,SAAXA,GAAW,OAAXA,EAAW,wBAAXA,EAAW,kBAAXA,CAAW,MAKXspC,EAAQ,SAARA,GAAQ,OAARA,EAAQ,eAARA,EAAQ,qBAARA,EAAQ,yBAARA,EAAQ,kCAARA,EAAQ,iCAARA,EAAQ,oDAARA,CAAQ,MASRC,EAAS,SAATA,GAAS,OAATA,EAAS,0BAATA,EAAS,0BAATA,CAAS,MAoBd,MAAM3pC,EAAkC,CAC3CC,YAAa,GACb5oD,UAAMzC,EACN8rD,UAAW,IACXE,WAAY,IACZL,UAAW,EACXC,gBAAiB,EACjBC,iBAAkB,EAClBN,QAAS,uFCON,MAAM49B,EACT,kBAAc6L,CAAY17F,GACtB,OAAOwwF,EAAAA,GAAQC,cAAc,IAAKzwF,GACtC,CAEA,gCAAc27F,CAA0B9pC,GACpC,MAAM+pC,EAAqB,CACvBppC,UAAqB,OAAVX,QAAU,IAAVA,OAAU,EAAVA,EAAYW,UACvBE,WAAsB,OAAVb,QAAU,IAAVA,OAAU,EAAVA,EAAYa,WACxBL,UAAqB,OAAVR,QAAU,IAAVA,OAAU,EAAVA,EAAYQ,UACvBC,gBAA2B,OAAVT,QAAU,IAAVA,OAAU,EAAVA,EAAYS,gBAC7BC,iBAA4B,OAAVV,QAAU,IAAVA,OAAU,EAAVA,EAAYU,kBAGlC,OAAO7Q,EAAAA,QAAUk6C,EAAoB,CACjCppC,UAAW,EACXE,WAAY,EACZL,UAAW,EACXC,gBAAiB,EACjBC,iBAAkB,GAE1B,EArBSs9B,EAuBKI,iBAAoBp+B,IACvB,CACHgqC,YAAahqC,EAGb0+B,KAAgB,OAAV1+B,QAAU,IAAVA,OAAU,EAAVA,EAAY1oD,KAElBkmF,gCAA0C,OAAVx9B,QAAU,IAAVA,OAAU,EAAVA,EAAY1oD,QAAS+oD,EAAAA,GAAYC,QAAU,GAAK,EAChFi9B,cAAwB,OAAVv9B,QAAU,IAAVA,OAAU,EAAVA,EAAY1oD,QAAS+oD,EAAAA,GAAYC,QAAU,GAAK,EAE9Dg+B,eAAyB,OAAVt+B,QAAU,IAAVA,OAAU,EAAVA,EAAY1oD,QAAS+oD,EAAAA,GAAYC,QAAUN,EAAWQ,UAAY,IAAM,EACvFg+B,gBAA0B,OAAVx+B,QAAU,IAAVA,OAAU,EAAVA,EAAY1oD,QAAS+oD,EAAAA,GAAYC,QAAUN,EAAWU,iBAAmB,IAAM,EAC/F69B,eAAyB,OAAVv+B,QAAU,IAAVA,OAAU,EAAVA,EAAY1oD,QAAS+oD,EAAAA,GAAYC,QAAUN,EAAWS,gBAAkB,IAAM,EAC7F49B,WAAYr+B,EAAWW,WAAa,IACpC89B,YAAaz+B,EAAWa,YAAc,MArCrCm9B,EAyCKiM,oCACVC,IAEA,MAAM,eAAE/L,EAAc,SAAE1vB,EAAQ,UAAEC,EAAS,MAAEzN,EAAK,MAAEqf,GAAU4pB,EACxDC,EAAgB17B,EAASt0D,KAC1BuV,IAAC,CAEMuvC,OAAQvvC,EAAEuvC,OACVw7B,MAAO/qE,EAAE+qE,MACT2P,MAAO16E,EAAE06E,MACTl6B,UAAWxgD,EAAEwgD,UACbxY,KAAMhoC,EAAEgoC,KACRhoC,EAAGA,EAAEA,EACLoiE,EAAGpiE,EAAEoiE,MAGXuY,EAAiB37B,EAAUv0D,KAC5BuV,IAAC,CAEMuvC,OAAQvvC,EAAEuvC,OACVuxB,WAAY9gE,EAAE8gE,WACdwJ,YAAatqE,EAAEsqE,gBAGrBsQ,EAAgBhqB,IAAmB,IAAAiqB,EAAA,OAQpC,QARoCA,EAChC,OAALjqB,QAAK,IAALA,OAAK,EAALA,EAAOnmE,KACFuV,IAAC,CAEMuvC,OAAQvvC,EAAEuvC,OACVsxB,MAAO7gE,EAAE6gE,MACTiK,IAAK9qE,EAAE8qE,eAElB,IAAA+P,EAAAA,EAAI,EAAE,EACLC,EAAaF,EAAahqB,GAWhC,MAAO,CACH6d,iBACA1vB,SAAU07B,EACVz7B,UAAW27B,EACXppC,MAdeA,EAAM9mD,KACpBuV,IAAC,CAEMmmE,OAAQnmE,EAAEmmE,OACViT,kBAAmBp5E,EAAEo5E,kBACrB7pC,OAAQvvC,EAAEuvC,OACV+wB,cAAetgE,EAAEsgE,cACjB1P,MAAOgqB,EAAa56E,EAAE4wD,WAQ9BA,MAAOkqB,EACV,EA3FIxM,EA8FKC,6BAAgCh9B,GACnCA,EAAM3wC,QAAO,CAAC6wC,EAAKyP,KAClBA,EAAKk4B,oBAAmB3nC,EAAIyP,EAAK3R,QAAW2R,EAAKk4B,mBAC9C3nC,IACR,CAAC,wFCjJL,MAAMw0B,EACT,0BAAc8U,CAAmBp6F,GAMkB,IANjB,YAC9Bq6F,EAAW,UACXjN,EAAS,UACTZ,EAAS,YACT8N,EAAW,iBACXC,GACwBv6F,EACxB,MAAMw6F,EAAgBH,EAAYI,iBAC5BC,EAAqBra,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQua,IAE/DG,EACFnO,IAAc+M,EAAAA,GAAUqB,YAClBF,EAAmBja,KAAO8Z,EAC1BG,EAAmB/Z,KAAO4Z,EAC9BM,EAAezN,EAAYkN,EAC3BQ,EACFtO,IAAc+M,EAAAA,GAAUqB,YAAcD,EAAgBE,EAAeF,EAAgBE,EAEnFE,EAAkBT,EAAc,EAChCU,EACFxO,IAAc+M,EAAAA,GAAUqB,YAAcD,EAAgBI,EAAkBJ,EAAgBI,EACtFE,EACFzO,IAAc+M,EAAAA,GAAUqB,YAAcI,EAAiB5N,EAAY4N,EAAiB5N,EAElF8N,EAAyB,CAC3B,CAAE77E,EAAGs7E,EAAelZ,EAAGiZ,EAAmBha,MAC1C,CAAErhE,EAAGy7E,EAAarZ,EAAGiZ,EAAmBha,MACxC,CAAErhE,EAAGy7E,EAAarZ,EAAGiZ,EAAmB9Z,MACxC,CAAEvhE,EAAGs7E,EAAelZ,EAAGiZ,EAAmB9Z,OAGxCua,EAA2BC,EAAAA,EAAUC,kBAAkBH,GAAwB,GAGrF,MAAO,CACHF,iBACAC,eACAN,gBACAG,cACAQ,aAPiBjB,EAAYiB,aAAaH,GAA0BI,OAAO,GASnF,CAEA,eAAcC,CAAQjwF,GAAyE,IAAxE,mBAAEkwF,EAAkB,eAAEC,GAAgCnwF,EACzE,MAAMowF,EAAqBtb,EAAAA,EAAWub,mBAAmBH,EAAmBH,cAEtEO,EAAOpyC,KAAKklB,OAAOgtB,EAAmB7xF,KAAKgkD,GAAMA,EAAE2zB,KACnDqa,EAAOryC,KAAKqlB,OAAO6sB,EAAmB7xF,KAAKgkD,GAAMA,EAAE2zB,KAEnDuZ,EAAiBS,EAAmBT,eACpCC,EAAeQ,EAAmBR,aAElCN,EAAgBc,EAAmBd,cACnCG,EAAcW,EAAmBX,YAEjCiB,EAAaF,EAAOH,EAAiB,EACrCM,EAAWF,EAAOJ,EAAiB,EAEzC,MAAO,CACHO,cAAe,CACX,CAAE58E,EAAGs7E,EAAelZ,EAAGsa,GACvB,CAAE18E,EAAGy7E,EAAarZ,EAAGsa,GACrB,CAAE18E,EAAGy7E,EAAarZ,EAAGua,GACrB,CAAE38E,EAAGs7E,EAAelZ,EAAGua,IAE3BE,SAAU,CACN,CAAE78E,EAAG27E,EAAgBvZ,EAAGsa,GACxB,CAAE18E,EAAG47E,EAAcxZ,EAAGsa,GACtB,CAAE18E,EAAG47E,EAAcxZ,EAAGua,GACtB,CAAE38E,EAAG27E,EAAgBvZ,EAAGua,IAGpC,EAmBHG,EA5FY7W,EAAAA,EA2EKC,kBAAqBtF,IACxB,CAAEt1E,MAAO26E,EAAW8W,aAAa,CAAEhV,KAAMnH,IAAW9yE,OAAQm4E,EAAW+W,cAAc,CAAEjV,KAAMnH,MA5E/FqF,EA+EK+W,cAAgBpjF,IAA8B,IAA7B,KAAEmuE,GAAqBnuE,EAClD,MAAMqjF,EAAUlV,EAAKt9E,KAAKgkD,GAAMA,EAAE2zB,IAC5Boa,EAAOpyC,KAAKklB,OAAO2tB,GAEzB,OADa7yC,KAAKqlB,OAAOwtB,GACXT,CAAI,EAnFbvW,EAsFK8W,aAAe74B,IAA8B,IAA7B,KAAE6jB,GAAqB7jB,EACjD,MAAMg5B,EAAUnV,EAAKt9E,KAAKgkD,GAAMA,EAAEzuC,IAC5Bm9E,EAAO/yC,KAAKklB,OAAO4tB,GAEzB,OADa9yC,KAAKqlB,OAAOytB,GACXC,CAAI,uLCxFnB,MAAMC,EACT,uBAAcC,CAAgB18F,GAAiD,IAAhD,aAAEurE,EAAY,UAAEohB,GAA6B3sF,OACtDwE,IAAdmoF,IACAA,EAAYphB,EAAa10D,QAG7B,IAAK,IAAIuH,EAAI,EAAGA,EAAImtD,EAAa10D,QAAUuH,EAAIuuE,EAAWvuE,IAAK,CAAC,IAADu+E,EAAAC,EAC3D,MAAMC,EAAoBtxB,EAAantD,GACjC0+E,EAAYD,EAAkBnxB,aAAe,OAAS,MACtDqxB,EAAWF,EAAkBnxB,aAAY,GAAAtgE,OACtCgT,EAAI,EAAC,gCAAAhT,OACLgT,EAAI,EAAC,qBAERnX,EAAO41F,EAAkBnxB,aAAe4tB,EAAAA,GAAS0D,OAAS1D,EAAAA,GAAS2D,IAGzE,IAAI9X,EAAS/mE,EAAI,EAEjB,GAAIy+E,EAAkBnxB,aAAc,CAEhCyZ,EADmB5Z,EAAalf,MAAMhtC,GAAMA,EAAEzV,KAAOizF,EAAkBK,iBACnD/X,MACxB,CAuCA,GAtCA0X,EAAkB1X,OAASA,EAE3BxiF,KAAKw6F,SAAS,CACVvzF,GAAIwzF,EAAAA,EAAYC,WAChBpd,OAAQ4c,EAAkBS,qBAC1BC,kBAAmBV,EAAkBW,SACrCC,WAAYZ,EAAkBY,WAC9BrQ,UAAWyP,EAAkBzP,UAC7BsQ,qBAAsBb,EAAkBc,mBACxCC,SAAUb,EACVr0F,MAAOo0F,EACP5U,YAAa,EACb5wE,SAAU,SACVs3C,OAAQiuC,EAAkBjuC,OAC1B3nD,OACAk+E,SACA0Y,eAAe,EACfC,aAAa,EACbC,QAAQ,IAGZp7F,KAAKw6F,SAAS,CACVvzF,GAAIwzF,EAAAA,EAAYC,WAChBpd,OAAQ4c,EAAkBS,qBAC1BC,kBAAmD,QAAlCZ,EAAEE,EAAkBmB,sBAAc,IAAArB,OAAA,EAAhCA,EAAkCsB,gCACrDR,WAAYZ,EAAkBY,WAC9BrQ,UAAWyP,EAAkBzP,UAC7B1kF,MAAO,gBACPw/E,YAAa,EACb5wE,SAAU,MACVs3C,OAAQiuC,EAAkBjuC,OAC1Bu2B,OAAQ0X,EAAkB1X,OAC1Bl+E,KAAMqyF,EAAAA,GAAS4E,eACfL,eAAe,EACflW,UAAW,QACXmW,aAAa,IAGmB,QAApClB,EAAIC,EAAkBmB,sBAAc,IAAApB,GAAhCA,EAAkCrV,eAAe1wE,OAAQ,CACnCgmF,EAAkBmB,eAAezW,eAEzChpE,SAAS4/E,IACnBx7F,KAAKw6F,SAAS,CACVvzF,GAAIwzF,EAAAA,EAAYC,WAChBpd,OAAQke,EACRV,WAAYZ,EAAkBY,WAC9BrQ,UAAWyP,EAAkBzP,UAC7BwQ,SAAS,wBACTl1F,MAAO,SACPw/E,YAAa,GACb5wE,SAAU,MACV6tE,OAAQ0X,EAAkB1X,OAC1Bv2B,OAAQiuC,EAAkBjuC,OAC1B3nD,KAAMqyF,EAAAA,GAAS8E,SACfP,eAAe,EACflW,UAAW,SACXmW,aAAa,EACbC,QAAQ,GACV,GAEV,CACJ,CACJ,CAEA,iCAAcM,CAA2BC,EAA2B3e,GAEhEh9E,KAAKw6F,SAAS,CACVvzF,GAAIwzF,EAAAA,EAAYC,WAChBpd,OAAQqe,EAAU9D,cAClBiD,WAAYa,EAAUb,WACtBrQ,UAAWkR,EAAUlR,UACrB1kF,MAAO,OACPw/E,YAAa,EACb5wE,SAAU,MACVs3C,OAAQ0vC,EAAU1vC,OAClB3nD,KAAMqyF,EAAAA,GAASiF,wBACfV,eAAe,EACflW,UAAW,OACXmW,aAAa,IAGjBn7F,KAAKw6F,SAAS,CACVvzF,GAAIwzF,EAAAA,EAAYC,WAChBpd,OAAQqe,EAAUpC,SAClBuB,WAAYa,EAAUb,WACtBrQ,UAAWkR,EAAUlR,UACrBwQ,SAAU,oBACVl1F,MAAO,UACPw/E,YAAa,EACb5wE,SAAU,SACVs3C,OAAQ0vC,EAAU1vC,OAClB3nD,KAAMqyF,EAAAA,GAASkF,aACfX,eAAe,EACfC,iBAA+Bt5F,IAAlBm7E,EACboe,QAAQ,GAEhB,CAEA,eAAcZ,CAASpzF,GACnB00F,EAAcC,UAAUhgG,KAAKqL,EAyHjC,ECvOG,MAAM40F,EAKT,wBAAcC,CAAkB59F,GAC5B,MAAM,eAAE8sF,EAAc,mBAAE+Q,GAAuB79F,EAC/C,GAAI8sF,EAAeO,OAASr+B,EAAAA,GAAYC,QAAS,CAG7C,MAAM,gBAAE6uC,EAAe,gCAAEb,GAAoCt7F,KAAKo8F,iCAAiC/9F,GACnG,OAAO2B,KAAKq8F,oBAAoBF,EAAiBhR,EAAgB+Q,EAAmBpE,iBAAkBwD,EAC1G,CACI,OAAOt7F,KAAKs8F,YAAYj+F,EAEhC,CAEA,kBAAci+F,CAAWj/F,GAIoB,IAJnB,eACtB8tF,EAAc,mBACd+Q,EAAkB,WAClBK,GACsBl/F,EACtB,MAAMynF,EAAuBoX,EAAmBpE,iBAC1C0E,EAA8B9e,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQwH,IACxE2X,EAAkB/e,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQif,IAE5DG,EAAiBF,EAA4B1e,KAC7C6e,EAAeF,EAAgBze,KAC/B4e,EAAiBJ,EAA4Bve,KAE7C4e,EADuBJ,EAAgB1e,KACDoN,EAAeM,YAErD7G,EAAoC,CACtC,CAAEloE,EAAGggF,EAAgB5d,EAAG8d,GACxB,CAAElgF,EAAGigF,EAAc7d,EAAG8d,GACtB,CAAElgF,EAAGigF,EAAc7d,EAAG+d,GACtB,CAAEngF,EAAGggF,EAAgB5d,EAAG+d,IAK5B,OAFuBla,EAAAA,EAAW+W,cAAc,CAAEjV,KAAMG,IAEnCuG,EAAeK,cACzB,CACH5G,eAAgB,GAChBE,uBACAwW,gCAAiCxW,GAGlC,CACHF,eAAgB,CAACA,GACjBE,uBACAwW,gCAAiCxW,EAEzC,CAEA,0BAAcuX,CACVF,EACAhR,EACArG,EACAwW,GAEA,MAAMwB,EAAmB/7E,QACnBg8E,EAAmBZ,EAAgBa,mBACzC,GAAyB,IAArBD,EACA,MAAO,CACHnY,eAAgB,GAChBE,uBACAwW,mCAGJ,IAAK,IAAI7/E,EAAI,EAAGA,EAAIshF,EAAkBthF,IAAK,CACvC,MAAMwhF,EAAWd,EAAgBe,aAAazhF,GAC9C,GAA2B,IAAvBwhF,EAASE,UAAiB,CACZxa,EAAAA,EAAW8W,aAAa,CAAEhV,KAAMwY,EAASnF,mBAC3C3M,EAAeZ,cACvBuS,EAAiB/gG,KAAKkhG,EAE9B,CACJ,CAEA,MAAO,CACHrY,eAAgBkY,EAAiB31F,KAAK81F,GAAaA,EAASnF,mBAC5DhT,uBACAwW,kCAGZ,CAEA,2CAAc8B,CAAoCx0F,GAOgE,IAP/D,eAC/CuiF,EAAc,mBACd+Q,EAAkB,gBAClBmB,EAAe,eACftE,EAAc,iBACdnB,EAAgB,eAChB0F,GAC0B10F,EAC1B,MAAMk8E,EAAuBoX,EAAmBpE,iBAChD,IAAIyF,EAAuBD,IAAmB1G,EAAAA,GAAUqB,YAAc,GAAK,EAE3E,MAAMuF,EAAiBrS,EAAeX,+BAAiC,EACjEiT,EAAUF,EAAuBC,EACjCE,EAAeH,GAAwB3F,EAAmB4F,GAC1DG,EAAU5E,EAAiB,EAEjC,IAAIoD,EAAkBkB,EAClBO,EAAOzS,EAAeZ,aAC1B,MAAMsT,EAAcA,CAACC,EAAgBC,EAAcC,EAAgBC,KAC/D,MAAMC,EAAkBrb,GACnBsZ,EAAkBA,EAAgBgC,WAAW1F,EAAAA,EAAUC,kBAAkB7V,IAC9E,IAAIub,EAAgBN,EAChBO,EAAgBL,EAGpB,EAAG,CAGCE,EADerhD,EAAAA,UAAYioC,GAAsB39E,KAAIorF,GAAK7U,EAAAA,EAAW4gB,YAAY/L,EAAG,CAAE71E,EAAG0hF,EAAOtf,EAAGuf,OAGnGD,GAASR,GAAQE,IAAWC,EAAO,EAAID,EAASC,EAAO,GAAK,GAC5DM,GAAST,GAAQI,IAAWC,EAAO,EAAID,EAASC,EAAO,GAAK,EAChE,SARMH,EAASC,EAAOK,EAAQL,EAAOK,EAAQL,KAAUC,EAASC,EAAOI,EAAQJ,EAAOI,EAAQJ,KAAUL,EAAO,GAU/GM,EADerhD,EAAAA,UAAYioC,GAAsB39E,KAAIorF,GAAK7U,EAAAA,EAAW4gB,YAAY/L,EAAG,CAAE71E,EAAGqhF,EAAMjf,EAAGmf,MAC5E,EAG1BJ,GAAaH,EAAcD,GAAUE,GAAUA,GAE/CE,EAAYJ,EAASA,GAAUE,EAASA,GAExCE,EAAYJ,GAAUC,EAAcC,EAASA,GAE7CE,GAAaH,GAAeA,EAAcC,GAAUA,GAEpD,MAAMY,EAA2BlB,EAAgBc,WAAWhC,GAAiBvD,OAAO,GAEpF,MAAO,CAAEuD,kBAAiBb,gCAAiCiD,EAAyBzG,iBACxF,CAEA,uCAAcsE,CAAiCjhG,GAC3C,MAAM,WAAEohG,GAAephG,EACjBshG,EAAkB/e,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQif,IAC5Dc,EAAkB5E,EAAAA,EAAU+F,iCAAiC/B,GACnE,OAAOT,EAAcoB,qCAAqC,CAAEC,qBAAoBliG,GACpF,CAEA,2CAAcsjG,CAAqCtjG,GAC/C,MAAM,WAAEohG,GAAephG,EACjBshG,EAAkB/e,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQif,IAC5Dc,EAAkB5E,EAAAA,EAAU+F,iCAAiC/B,IAC7D,gBAAEN,GAAoBH,EAAcI,iCAAiCjhG,GAE3E,OADyBkiG,EAAgBc,WAAWhC,EAExD,CAEA,mCAAcuC,CAA4BpoF,GAOA,IAPC,eACvC60E,EAAc,mBACd+Q,EAAkB,WAClBK,EAAU,eACVxD,EAAc,iBACdnB,EAAgB,eAChB0F,GACsBhnF,EACtB,MAAMwuE,EAAuBoX,EAAmBpE,iBAC1C2E,EAAkB/e,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQif,IAClE,IAAIgB,EAA+B,EACnC,OAAQD,GACJ,IAAK,cACDC,EAAuB,EACvB,MACJ,IAAK,cACDA,GAAwB,EAGhC,MAAMoB,EAA0BpB,GAAwBpS,EAAeZ,aAAe,GAChFqU,EAAuBrB,GAAwB3F,EAAmB+G,GAClEE,EAAwB9F,EAAiB,EACzC+F,EAAWjiD,EAAAA,UAAYioC,GAAsB39E,KAAKorF,GACpD7U,EAAAA,EAAW4gB,YAAY/L,EAAG,CAAE71E,EAAGiiF,EAAyB7f,GAAI+f,MAE1DE,EAAUliD,EAAAA,UAAYioC,GAAsB39E,KAAKorF,GACnD7U,EAAAA,EAAW4gB,YAAY/L,EAAG,CAAE71E,GAAIkiF,EAAsB9f,GAAI+f,MAExDG,EAAcniD,EAAAA,UAAYioC,GAAsB39E,KAAKorF,GACvD7U,EAAAA,EAAW4gB,YAAY/L,EAAG,CAAE71E,EAAGiiF,EAAyB7f,EAAG+f,MAEzDI,EAAapiD,EAAAA,UAAYioC,GAAsB39E,KAAKorF,GACtD7U,EAAAA,EAAW4gB,YAAY/L,EAAG,CAAE71E,GAAIkiF,EAAsB9f,EAAG+f,MAEvDxB,EAAkB5E,EAAAA,EAAU+F,iCAAiC/B,GAE7DyC,EAAe7B,EAAgBc,WAAW1F,EAAAA,EAAUC,kBAAkBoG,IACtEK,EAAc9B,EAAgBc,WAAW1F,EAAAA,EAAUC,kBAAkBqG,IACrEK,EAAkB/B,EAAgBc,WAAW1F,EAAAA,EAAUC,kBAAkBsG,IACzEK,EAAiBhC,EAAgBc,WAAW1F,EAAAA,EAAUC,kBAAkBuG,IAO9E,OALwBC,EACnBvG,aAAawG,GACbxG,aAAayG,GACbzG,aAAa0G,EAGtB,CAEA,gCAAcC,CAAyB1+B,GAOG,IAPF,eACpCuqB,EAAc,mBACd+Q,EAAkB,WAClBK,EAAU,eACVxD,EAAc,iBACdnB,EAAgB,eAChB0F,GACsB18B,EACtB,MAAMkkB,EAAuBoX,EAAmBpE,iBAC1C2E,EAAkB/e,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQif,IAE5Dc,EAAkB5E,EAAAA,EAAU+F,iCAAiC/B,GACnE,IAAI8C,EAAwB7hB,EAAAA,EAAW8hB,iBACnC1a,EACA8S,EAAmB,EAAIzM,EAAeZ,aAAe,EACrDwO,EAAiB,GAEjB0G,EAAqB,CAAE/iF,EAAG,EAAGoiE,EAAG,GACpC,OAAQwe,GACJ,IAAK,cACDmC,EAAS,CAAE/iF,GAAIk7E,EAAmB,EAAG9Y,EAAG,GACxC,MACJ,IAAK,cACD2gB,EAAS,CAAE/iF,EAAGk7E,EAAmB,EAAG9Y,EAAG,GAG/CygB,EAAwBA,EAAsBp4F,KAAKorF,GAAM7U,EAAAA,EAAW4gB,YAAY/L,EAAGkN,KAEnF,MAAMC,EAAkBjH,EAAAA,EAAUC,kBAAkB6G,GAEpD,OADwBlC,EAAgBc,WAAWuB,EAEvD,CAQA,uBAAcC,CAAgB16B,GAA8E,IAA7E,KAAEwf,EAAI,UAAEmb,GAAmC36B,EACtE,GAAyB,IAArB26B,EAAU1rF,OACV,OAGJ,MAAMuvE,EAAa5mC,EAAAA,UAAY4nC,GAE/B,IAAIob,EAA6C,GASjD,GARAD,EAAUhkF,SAASqhF,IACf,MAAMh9F,EAASD,KAAK8/F,6BAA6B,CAAErc,aAAYsc,QAAS9C,EAAS+C,kBACjF,GAAI//F,EAAQ,CACR,MAAQggG,KAAMC,EAAuBvH,aAAcwH,GAA8BlgG,EACjF4/F,EAAgB9jG,KAAK,CAAEkhG,WAAUiD,wBAAuBC,6BAC5D,KAGAN,EAAgB3rF,OAAS,EAAG,CAC5B,MAAMksF,EAAkBP,EAAgBviF,QAAO,CAAC1Z,EAAKy8F,IAC7CA,EAAgBpD,SAAS+C,gBAAgB7C,UAAYv5F,EAAIq5F,SAAS+C,gBAAgB7C,UAC3EkD,EAEAz8F,IAOf,OAHAw8F,EAAgBnD,SAAS+C,gBAAkBI,EAAgBF,sBAC3DE,EAAgBnD,SAASjC,mBAAqBoF,EAAgBD,0BAEvDC,EAAgBnD,QAC3B,CAGJ,CAEA,mCAAc6C,CAA4BpzB,GAA+D,IAA9D,WAAE+W,EAAU,QAAEsc,GAA6CrzB,EAClG,MAAM4zB,EAAkB7H,EAAAA,EAAU8H,kBAC5BC,EAAgBT,EAAQjI,iBAExBgD,EAAanY,EAAAA,EAAW+W,cAAc,CAAEjV,KAAMhB,IAC9CgH,EAAY9H,EAAAA,EAAW8W,aAAa,CAAEhV,KAAMhB,IAC5Cgd,EAAgB9d,EAAAA,EAAW+W,cAAc,CAAEjV,KAAM+b,IACjDE,EAAe/d,EAAAA,EAAW8W,aAAa,CAAEhV,KAAM+b,IAErD,KAAI1F,EAAa2F,GAAiBhW,EAAYiW,GAI9C,IAAK,MAAMC,KAAald,EACpB,IAAK,MAAMmd,KAAaJ,EAAe,CACnC,MAEMf,EAAS,CAAE/iF,EAFDkkF,EAAUlkF,EAAIikF,EAAUjkF,EAEXoiE,EADb8hB,EAAU9hB,EAAI6hB,EAAU7hB,GAElC+hB,EAAiBpd,EAAWt8E,KAAK25F,GAAUpjB,EAAAA,EAAW4gB,YAAYwC,EAAOrB,KAEzEsB,EAAWtI,EAAAA,EAAUC,kBAAkBmI,GAAgB,EAAMP,GAAiB1H,OAAO,GAC3F,GAAImH,EAAQiB,SAASD,GACjB,MAAO,CACHd,KAAMF,EAAQ5B,WAAW4C,GACzBpI,aAAcoH,EAAQpH,aAAaoI,GAG/C,CAIR,mBC5QG,MAAME,EACT,iCAAcC,CAA0B7jG,GAWF,IAAD8jG,EAAA,IAXI,eACrChW,EAAc,KACdvtB,EAAI,UACJlC,EAAS,MACT4R,EAAK,UACL0c,EAAS,cACToX,EAAa,eACbC,EAAc,kBACdC,EAAiB,uBACjBC,GAAyB,EAAK,yBAC9BC,GAC+BnkG,EAC/B,MAAMokG,EAAc7jC,EAAKof,cACnB0kB,EAAahkB,EAAAA,EAAWqF,WAAWnlB,EAAKilB,QACxC8e,EAAiB,CAAEla,MAAO7pB,EAAKof,eAAiB,EAAG8F,OAAQ4e,GAC3DE,EAA2D,QAAvCT,EAAgB,OAAbC,QAAa,IAAbA,OAAa,EAAbA,EAAej6F,KAAKuV,GAAMA,EAAEwiD,iBAAQ,IAAAiiC,EAAAA,EAAI,GAC/DU,EAAe7hG,KAAK8hG,gBAAgB,CAAElkC,OAAMlC,YAAW4R,UACvDy0B,EAA6C,GAEnD,IAAK,IAAIC,KAAeH,EAAc,CAElC,MAAMpmC,EAAWz7D,KAAKiiG,mBAAmB,CAAEvK,YAAasK,EAAavmC,SAAUmmC,IACzEM,EAAkBrlD,EAAAA,UAAY4e,GACpCymC,EAAgBtmF,SAASsjD,IACrB,MAAMoe,EAA4B,CAAC,CAAE5gE,EAAGwiD,EAAQxiD,EAAIoiE,EAAG5f,EAAQ4f,MAAS5f,EAAQk4B,OAChF1Z,EAAAA,EAAWykB,SAAS7kB,EAAQqkB,EAAela,MAAOka,EAAe7e,QACjE5jB,EAAQxiD,EAAI4gE,EAAO,GAAG5gE,EACtBwiD,EAAQ4f,EAAIxB,EAAO,GAAGwB,CAAC,IAI3B,MAAM+D,EAASmf,EAAYlK,iBAC3Bpa,EAAAA,EAAW0kB,mBAAmBvf,EAAQ8e,GACtC,MAAMU,EAAqB5J,EAAAA,EAAUC,kBAAkB7V,GAGjDyf,EAAiD,GACjDC,EAAqB1Y,IACvB,MAAM8R,EAAYhQ,EAAQ6W,sBAAsB,CAC5CrX,iBACAuM,YAAa2K,EACbxY,YACA59B,OAAQ2R,EAAK3R,OACbi2C,kBACAb,iBACAE,yBACAC,6BAEJ,GAAI7F,EAAW,CACX,MAAM8G,EAAa,CACfx7F,GAAIwzF,EAAAA,EAAYC,WAChBzuC,OAAQ2R,EAAK3R,OACbyrC,YAAa2K,EACbK,oBAAqBL,EACrBM,mBAAoBhH,EACpBgG,eAAgBA,EAChBrE,eAAgBzT,EAChBpuB,SAAUwlC,EAAcgB,mBAAmB,CACvCvK,YAAae,EAAAA,EAAUC,kBAAkBiD,EAAU9D,eAAe,GAClEp8B,SAAUymC,KAGlBH,EAAkBhmG,KAAK0mG,GACvBH,EAAwBvmG,KAAK4/F,EACjC,GAOJ,GAJA4G,EAAkB3L,EAAAA,GAAUqB,aAC5BsK,EAAkB3L,EAAAA,GAAUgM,aAGV,IAAd5Y,EAAiB,CACjB,MAAM6Y,EAAgChmD,EAAAA,UAAYylD,GAC9Cb,EACAoB,EAA8BjnF,SAAS+/E,IACnCje,EAAAA,EAAWykB,SAASxG,EAAUpC,UAAYoI,EAAela,MAAOka,EAAe7e,QAC/EpF,EAAAA,EAAWykB,SAASxG,EAAUrC,eAAiBqI,EAAela,MAAOka,EAAe7e,QACpFpF,EAAAA,EAAWykB,SAASxG,EAAU9D,eAAiB8J,EAAela,MAAOka,EAAe7e,QACpFgX,EAAW4B,2BAA2BC,EAAW/9B,EAAKof,cAAc,IAGxE6lB,EAA8BjnF,SAAS+/E,IACnC7B,EAAW4B,2BAA2BC,EAAU,GAG5D,CACJ,CACA,OAAOoG,EAAkBvnF,QAAQkC,IAAC,IAAAomF,EAAA,QAAMxB,IAA+C,QAAvBwB,EAAGpmF,EAAEimF,0BAAkB,IAAAG,OAAA,EAApBA,EAAsBC,aAAY,GACzG,CAOA,kCAAcC,CAA2Bp6F,GAE4B,IAF3B,kBACtCm5F,GACgCn5F,EA0BhC,OAzB+Bm5F,EAAkBzkF,QAAO,CAAC2lF,EAA0BC,KAAsB,IAADC,EAAAC,EACpG,MAAMC,EAAgBH,EAAiBP,mBACjCW,EAAgD,OAAxBL,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BN,mBAExD,IAAKU,EAAe,OAAOJ,EAC3B,IAAKK,EAAuB,OAAOJ,EAEnC,MAAMK,EAA8C,QAA3BJ,EAAGE,EAAcvI,kBAAU,IAAAqI,EAAAA,EAAI,EAClDK,EAA8D,QAAnCJ,EAAGE,EAAsBxI,kBAAU,IAAAsI,EAAAA,EAAI,EAGxE,GAAIG,EAAsBC,EACtB,OAAON,EACJ,GAAIK,EAAsBC,EAC7B,OAAOP,EAGL,IAADQ,EAAAC,EAGD,OAFsD,QAA5BD,EAAGJ,EAAcM,mBAAW,IAAAF,EAAAA,EAAI,IACY,QAApCC,EAAGJ,EAAsBK,mBAAW,IAAAD,EAAAA,EAAI,GAEpER,EACAD,CACV,QACDphG,EAEP,CAOA,sBAAcigG,CAAexrF,GAA+C,IAA9C,KAAEsnD,EAAI,UAAElC,EAAS,MAAE4R,GAAwBh3D,EACjEstF,EAAsBC,EAAAA,EAAcC,6BACpClmC,EACAlC,EACA4R,GACFy2B,oBAEEC,EAA+B,GACnC,MAAMC,EAAcL,EAAoB5G,mBACxC,IAAK,IAAIvhF,EAAI,EAAGA,EAAIwoF,EAAaxoF,IAAK,CAClC,MAAMmwD,EAAUg4B,EAAoB1G,aAAazhF,GACvB,IAAtBmwD,EAAQuxB,WACR6G,EAASjoG,KAAK6vE,EAEtB,CACA,OAAOo4B,CACX,CAKA,yBAAc/B,CAAkBrhC,GAAuD,IAAtD,YAAE82B,EAAW,SAAEj8B,GAAoCmF,EAIhF,OAHwBnF,EAASjhD,QAAQ0pF,GAC9BxmB,EAAAA,EAAWymB,uBAAuB1L,EAAAA,EAAU2L,iBAAiBF,EAAGxnF,EAAIwnF,EAAGplB,GAAK4Y,IAG3F,CAEA,8BAAc2M,CAAuBp/B,GAMtB,IANuB,gBAClCq/B,EAAe,YACfC,GAIHt/B,EACG,MAAMu/B,EAAwB9mB,EAAAA,EAAW+mB,UAAUH,EAAgBxM,kBAC7D4M,EAAoBhnB,EAAAA,EAAW+mB,UAAUF,EAAYzM,kBAE3D,OAAO0M,EAAsB9nF,EAAIgoF,EAAkBhoF,EAAIk6E,EAAAA,GAAUqB,YAAcrB,EAAAA,GAAUgM,WAC7F,ECvIJ,MAAM+B,EAAuC,CAAE5I,UAAW,IACnD,IAAID,EAA+B6I,EAE/BC,EAAsC,GAC1C,MAAMC,EAAe,SAACvnB,EAAsBwd,EAAqBrQ,GAAkD,IAA9B1kF,EAAa2V,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,SACxGkpF,EAAY7oG,KAAK,CACbkL,GAAIwzF,EAAAA,EAAYC,WAChBpd,OAAQA,EACRwd,WAAYA,EACZrQ,UAAWA,EACXx+B,OAAQ,GACRt3C,SAAU,MACVrQ,KAAMqyF,EAAAA,GAAS4E,eACfx1F,MAAO,MACPi/E,UAAWj/E,GAEnB,EACO,MAAM4lF,EA6NT,0BAAcmZ,CAAoB1D,EAAgCnzC,GAC9D,MAAM82C,EAAoBloD,EAAAA,UAAYukD,GACtC,IAAI4D,EAAYnoD,EAAAA,UAAYoR,GAC5B,MAAMg3C,EAA0B,GAChC,KAAOF,EAAkB7wF,OAAS,GAAG,CACjC,MAAMgxF,EAAYH,EAAkB,GAC9BI,EAAuB,CACzB/D,cAAe,CAAC8D,GAChB93C,QAAS,IAAI2f,IAAIm4B,EAAU93C,SAC3Ba,MAAO,IAAI8e,IAAI9e,EAAMzzC,QAAQkC,GAAMwoF,EAAU93C,QAAQxe,SAASlyB,EAAEuvC,WAChEm5C,iBAAavjG,EACbwjG,cAAe,IAAIt4B,IACnBs0B,eAAgB,IAAIt0B,IACpBu4B,eAAgB,IAAIv4B,KAExBi4B,EAAYA,EAAUxqF,QAAQkC,IAAOwoF,EAAU93C,QAAQxe,SAASlyB,EAAEuvC,UAClEg5C,EAAWlpG,KAAKopG,GAChBJ,EAAkBljF,OAAO,EAAG,GAC5B,IAAIpG,EAAI,EACR,KAAOA,EAAIspF,EAAkB7wF,QAAQ,CACjC,MAAM0pD,EAAOmnC,EAAkBtpF,GACHspF,EAAkB3sC,MAAM17C,GAChDA,EAAE0wC,QAAQgL,MAAMnM,GAAWk5C,EAAU/3C,QAAQm4C,IAAIt5C,QAGjDk5C,EAAU/D,cAAcrlG,KAAK6hE,GAC7BA,EAAKxQ,QAAQxxC,SAASqwC,GAAWk5C,EAAU/3C,QAAQo4C,IAAIv5C,KACvDgC,EAAMzzC,QAAQkC,GAAMkhD,EAAKxQ,QAAQxe,SAASlyB,EAAEuvC,UAAUrwC,SAASgiD,GAASunC,EAAUl3C,MAAMu3C,IAAI5nC,KAC5FmnC,EAAkBljF,OAAOpG,EAAG,GAC5BupF,EAAYA,EAAUxqF,QAAQkC,IAAOkhD,EAAKxQ,QAAQxe,SAASlyB,EAAEuvC,WAE7DxwC,GAER,CACJ,CAaA,OAZAupF,EAAUppF,SAASc,IACf,MAAMyoF,EAAuB,CACzB/D,cAAe,GACfh0C,QAAS,IAAI2f,IAAI,CAACrwD,EAAEuvC,SACpBgC,MAAO,IAAI8e,IAAI,CAACrwD,IAChB0oF,iBAAavjG,EACbwjG,cAAe,IAAIt4B,IACnBs0B,eAAgB,IAAIt0B,IACpBu4B,eAAgB,IAAIv4B,KAExBk4B,EAAWlpG,KAAKopG,EAAU,IAEvBF,CACX,CAOA,8BAAcQ,CAAwBN,GAClC,MAAMO,EAAiB7oD,EAAAA,UAAYsoD,GACnC,MAAO,CACH/D,cAAesE,EAAetE,cAC9Bh0C,QAASrsC,MAAMK,KAAKskF,EAAet4C,SACnCg4C,YAAaM,EAAeN,YAC5BC,cAAetkF,MAAMK,KAAKskF,EAAeL,eACzCp3C,MAAOltC,MAAMK,KAAKskF,EAAez3C,OACjCozC,eAAgBtgF,MAAMK,KAAKskF,EAAerE,gBAC1CiE,eAAgBvkF,MAAMK,KAAKskF,EAAeJ,gBAElD,CASA,kCAAcK,CAA2BtoG,GAOiC,IAPhC,eACtC8tF,EAAc,MACd7d,EAAK,SACL7R,EAAQ,UACRC,EAAS,MACTzN,EAAK,UACL+7B,GACgC3sF,EAChC,MAAM+jG,EAAgBwE,EAAAA,EAAUC,uBAC5Bv4B,EACA7R,EACAxN,EAAM9mD,KAAKuV,GAAMA,EAAEuvC,UAEjBg5C,EAAatZ,EAAQmZ,oBAAoB1D,EAAenzC,GACxD2a,EAAuC,GAC7C,IAAIk9B,EAAoC,GACpClG,EAAsC,GACtCmG,EAAwC,GAExCC,EAAmB,EACvB,IAAK,MAAMb,KAAaF,EAAY,CAEhC,MAAMgB,EAA6D,CAAC,EACpE,IAAK,MAAMC,KAAgBf,EAAU/D,cACjC,IAAK,MAAMn1C,KAAUi6C,EAAa94C,QACzB64C,EAAwBh6C,KACzBg6C,EAAwBh6C,GAAU,IAAI8gB,KAE1Ck5B,EAAwBh6C,GAAQu5C,IAAIU,EAAa94C,QAAQ,IAGjE,MAAM+4C,EAAsB5mG,OAAO8a,KAAK4rF,GAAyBzrF,QAC5DkC,GACGupF,EAAwBvpF,GAAGgoC,OAC3BoC,KAAKqlB,OAAO5sE,OAAOyT,OAAOizF,GAAyB9+F,KAAKuV,GAAMA,EAAEgoC,UAExE,IAAI0hD,EAAoBrlF,MAAMK,KAAK+jF,EAAUl3C,OACzCk4C,EAAoBjyF,SACpBkyF,EAAoBA,EAAkB5rF,QAAQkC,GAAMypF,EAAoBv3D,SAASlyB,EAAEuvC,WAEvF,IAAK,IAAIxwC,EAAI,EAAGA,EAAI2qF,EAAkBlyF,OAAQuH,IAAK,CAC/C,MAAM4qF,EAAe5qF,EAAI,EAAI2qF,EAAkB3qF,EAAI,QAAK5Z,EAClD+7D,EAAOwoC,EAAkB3qF,GACzBsmF,EAAoBd,EAAcC,2BAA2B,CAC/D/V,iBACAvtB,OACAlC,YACA4R,QACA0c,YACAoX,cAAe+D,EAAU/D,cACzBC,eAAgB,IAAIt0B,IACpBu0B,mBAAmB,EACnBE,yBAA0B5jC,EAAKk4B,qBAAkC,OAAZuQ,QAAY,IAAZA,OAAY,EAAZA,EAAcvQ,qBAEvEiQ,EAAahqG,QAAQgmG,EACzB,CACJ,CAIA,KAAOgE,EAAa7xF,OAAS,GAAK+wF,EAAW7sC,MAAM17C,GAAMA,EAAE2oF,cAAc3gD,KAAOhoC,EAAE0wC,QAAQ1I,QAAO,CAAC,IAAD4hD,EAC7F,GAAIN,EAAmB,IAAK,CACxBhuD,EAAAA,EAAMC,UAAU,CAAElC,QAAQ,6CAADttC,OAA+C0iF,EAAe6L,YAAY9pC,eACnG,KACJ,CACA,GACIi+B,EAAeO,OAASr+B,EAAAA,GAAYU,aACnC/tD,KAAKumG,4BAA4BR,EAAc5a,EAAeM,aAE/D,MAAO,CAAEqa,kBAAiBl9B,aAAc,IAG5C,MAAM49B,EAAqBxc,IAAcgc,EAEzC,GAAIQ,GAAsBxmG,KAAKymG,UAAW,CACtC,MAAMC,EAAS,CAAC,MAAO,OAAQ,SAAU,SAAU,UACnDX,EAAanqF,SAAQ,CAACc,EAAGjB,KAAO,IAADqnF,EACH,QAAxBA,EAAIpmF,EAAEimF,0BAAkB,IAAAG,GAApBA,EAAsBxJ,eACtBuL,EACInoF,EAAEimF,mBAAmBrJ,cACrB58E,EAAEimF,mBAAmB7H,WACrBp+E,EAAEimF,mBAAmBlY,UACrBic,EAAOjrF,EAAIirF,EAAOxyF,QACrB,GAEb,CAEA,GAA4B,IAAxB6xF,EAAa7xF,OACb,IAAK,MAAMixF,KAAaF,EAAWzqF,QAAQkC,GAAMA,EAAE2oF,cAAc3gD,KAAOhoC,EAAE0wC,QAAQ1I,OAAO,CACrF,MAAMiiD,EAAkB5lF,MAAMK,KAAK+jF,EAAUl3C,OAAOzzC,QAC/CkC,IAAOyoF,EAAUE,cAAcE,IAAI7oF,EAAEuvC,UAE1C,IAAK,IAAIxwC,EAAI,EAAGA,EAAIkrF,EAAgBzyF,OAAQuH,IAAK,CACxBA,EAAI,GAAIkrF,EAAgBlrF,EAAI,GAAjD,MACMmiD,EAAO+oC,EAAgBlrF,GACvBsmF,EAAoBd,EAAcC,2BAA2B,CAC/D/V,iBACAvtB,OACAlC,YACA4R,QACA0c,YACAoX,cAAe+D,EAAU/D,cACzBC,eAAgB,IAAIt0B,IACpBu0B,mBAAmB,EACnBC,wBAAwB,EACxBC,0BAA0B,IAE9BuE,EAAahqG,QAAQgmG,EACzB,CACJ,CAIJ,MAAMxgB,EAA+BvhF,KAAK4mG,iBAAiB,CACvDC,oBAA8C,QAA3BP,EAAE19B,EAAa53B,OAAO,GAAG,UAAE,IAAAs1D,OAAA,EAAzBA,EAA2Br6C,OAChDk/B,iBACA2b,gBAAiBf,EACjBnG,YACAqF,aACA33B,QACA5R,cAQJ,GALI8qC,IACAV,EAAkBb,EAAW99F,IAAIwkF,EAAQ8Z,0BAIzClkB,EAAa,CAAC,IAADwlB,EAAAC,EAAAC,EAEb,MAAMC,EAAwB,CAC1Bzf,QAAkC,QAA3Bsf,EAACxlB,EAAYogB,sBAAc,IAAAoF,OAAA,EAA1BA,EAA4Btf,OACpC3E,OAAkC,QAA5BkkB,EAAEzlB,EAAYogB,sBAAc,IAAAqF,OAAA,EAA1BA,EAA4BlkB,QAsBxC,GApBIokB,EAAsBzf,QACtB/J,EAAAA,EAAWykB,SACP5gB,EAAYoZ,qBACZuM,EAAsBzf,MACtByf,EAAsBpkB,QAE1BpF,EAAAA,EAAWykB,SACP5gB,EAAYsZ,SACZqM,EAAsBzf,MACtByf,EAAsBpkB,QAEtBvB,EAAY8Z,iBACZ9Z,EAAY8Z,eAAezW,eAAehpE,SAASc,GAC/CghE,EAAAA,EAAWykB,SAASzlF,EAAGwqF,EAAsBzf,MAAOyf,EAAsBpkB,UAE1EvB,EAAY8Z,eAAeC,iCAC3B5d,EAAAA,EAAWykB,SAAS5gB,EAAY8Z,eAAeC,gCAAiC4L,EAAsBzf,MAAOyf,EAAsBpkB,UAI3IvB,EAAYyZ,oBAA4D,QAA1CiM,EAAI1lB,EAAY4lB,kCAA0B,IAAAF,GAAtCA,EAAwCxf,MAAO,CAAC,IAAD2f,EAAAC,EAEjF,MAAMC,EAAoC,CACtC7f,QAA8C,QAAvC2f,EAAC7lB,EAAY4lB,kCAA0B,IAAAC,OAAA,EAAtCA,EAAwC3f,OAChD3E,OAA8C,QAAxCukB,EAAE9lB,EAAY4lB,kCAA0B,IAAAE,OAAA,EAAtCA,EAAwCvkB,QAEpDpF,EAAAA,EAAWykB,SAAS5gB,EAAYyZ,mBAAoBsM,EAAkC7f,MAAO6f,EAAkCxkB,OACnI,CACAla,EAAa7sE,KAAKwlF,GAClB,MAAMgmB,EAAoBtC,EAAWv7C,MAAMhtC,GAAMA,EAAE0wC,QAAQm4C,IAAIhkB,EAAYt1B,UAC3E2zC,EAAYre,EAAYqe,UACxBmG,EAAexkB,EAAYwkB,aAC3B,MAAMyB,EAAkB/O,EAAAA,EAAUC,kBAAkBnX,EAAYoZ,sBAChE4M,EAAkBnC,YAAcmC,EAAkBnC,YAC5CmC,EAAkBnC,YAAYqC,MAAMD,GACpCA,CACV,MACI5H,EAAY,GACZmG,EAAe,GAEnBC,GACJ,CAMA,OAJ+B,IAA3BF,EAAgB5xF,SAChB4xF,EAAkBb,EAAW99F,IAAIwkF,EAAQ8Z,0BAGtC,CAAEK,kBAAiBl9B,eAC9B,CAEA,kCAAe29B,CAA4BO,GAAwE,IAA9Bj5C,EAAkBnyC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAClGgsF,GAAe,EACnB,IAAK,IAAIjsF,EAAI,EAAGA,EAAIqrF,EAAgB5yF,OAAQuH,IAAK,CAI7C,GAHuBqrF,EAAgBrrF,GAGpBknF,mBAAoBgF,cAAgB,EAAI95C,EAAY,CACnE65C,GAAe,EACf,KACJ,CACJ,CACA,OAAOA,CACX,CAWA,uBAAed,CAAgBh+F,GAQ0B,IAADg/F,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IARxB,oBAC5BvB,EAAmB,eACnB1b,EAAc,gBACd2b,EAAe,UACflH,EAAS,UACTlkC,EAAS,MACT4R,EAAK,WACL23B,GACqBr8F,EACjBm5F,EAA6ChhF,MAAMK,KAAK0lF,GACxDuB,EAAepH,EAAc+B,4BAA4B,CAAEjB,sBAE/D,GAAiB,QAAb6F,EAACS,SAAY,IAAAT,IAAZA,EAAcjF,qBAAuB0F,EACtC,OAGJA,EAAepH,EAAc+B,4BAA4B,CAAEjB,sBAC3D,MAAMuG,EAAiBD,EAAa1F,oBAE9B,cAAEvB,EAAa,cAAEiE,EAAa,MAAEp3C,EAAK,QAAEb,EAAO,eAAEi0C,EAAc,eAAEiE,GAAmBL,EAAWv7C,MAAMhtC,GACtGA,EAAE0wC,QAAQm4C,IAAI8C,EAAcp8C,UAGL,IAAvBo5C,EAAc3gD,OAIdq9C,EAAoBA,EAAkBvnF,QAAQkC,IAAO0wC,EAAQm4C,IAAI7oF,EAAEuvC,WAElEo5C,EAAcE,IAAI8C,EAAcp8C,UACjC81C,EAAoBA,EAAkBvnF,QAAQkC,IAAC,IAAA6rF,EAAA,OAAiB,QAAZA,EAAAF,SAAY,IAAAE,OAAA,EAAZA,EAAct8C,UAAWvvC,EAAEuvC,MAAM,KAEzFo5C,EAAcG,IAAI6C,EAAap8C,QAE/B,MAAM80C,EAAWtI,EAAAA,EAAUC,kBAAkB4P,EAAehP,eAAe,GACrEkP,EAAiBH,EAAa3Q,YAAYyG,WAAW4C,GACrD0H,EAAiBJ,EAAa3Q,YAAYiB,aAAaoI,GAAUnI,OAAO,GACxE+B,EAAuB99C,EAAAA,UAAY4rD,EAAe3Q,kBAGlD4Q,EAA0B1M,EAAcC,kBAAkB,CAC5D9Q,iBACA+Q,mBAAoBuM,EACpBlM,WAAY+L,EAAe/O,SAE3BR,eAA6C,QAA/B8O,EAAES,EAAevP,sBAAc,IAAA8O,EAAAA,EAAI,EACjDjQ,iBAAiD,QAAjCkQ,EAAEQ,EAAe1Q,wBAAgB,IAAAkQ,EAAAA,EAAI,EACrDxK,eAAgB+K,EAAa/K,iBAOjC,IAAIqL,EACJ,MAAMC,EAAa7nF,MAAMK,KAAK6sC,GACxB46C,EAEL,QAFqCd,EAAGa,EAAWl/C,MAC/ChtC,GAAMA,EAAEuvC,SAAW46C,WACvB,IAAAkB,OAAA,EAFwCA,EAEtC/qB,cACG8rB,EAAwF,QAA5Dd,EAAGY,EAAWl/C,MAAMhtC,IAAC,IAAAqsF,EAAA,OAAKrsF,EAAEuvC,UAAuB,QAAjB88C,EAAKV,SAAY,IAAAU,OAAA,EAAZA,EAAc98C,OAAO,eAAA+7C,OAAA,EAAzDA,EAA2DhrB,cAC1FgsB,EAA4BnC,KAAoC,QAAjBoB,EAAKI,SAAY,IAAAJ,OAAA,EAAZA,EAAch8C,QAClEu1C,EAA2BqH,IAAqCC,EAEtE,GAAIJ,EAAyB,CAAC,IAADO,EAAAC,EACzB,MAAMC,EAAwBxd,EAAQwd,sBAClCd,EAAa5sC,SACbg9B,EAAAA,EAAUC,kBAAkBgQ,EAAwB5jB,sBACpDuc,GAqBJsH,EAlByB3M,EAAcyC,qCAAqC,CACxEtT,iBACA+Q,mBAAoBzD,EAAAA,EAAUC,kBAAkBgQ,EAAwB5jB,sBACxEyX,WAAY+L,EAAe/O,SAC3B3B,iBACIzM,EAAeZ,cACd4e,EAAsBC,sBAAwB5H,GACd,QADsCyH,EACjE9d,EAAeI,oBAAY,IAAA0d,EAAAA,EAC3B,IACLD,EAA4B7d,EAAeG,aAAe,EAAI,GACnEyN,eACI5N,EAAeZ,cACd4e,EAAsBE,oBAAsB7H,GACX,QADmC0H,EAC/D/d,EAAeK,qBAAa,IAAA0d,EAAAA,EAC5B,IACLF,EAA4B7d,EAAeG,aAAe,EAAI,GACnEgS,eAAgB+K,EAAa/K,iBAEMxF,gBAC3C,MACI6Q,EAAsBL,EAAe/O,SAGzC,MAAM+P,EAAetN,EAAc2D,iBAAiB,CAChDlb,KAAMkkB,EACN/I,UAAWA,IAET72B,EAAe55D,QAAQm6F,IAIxBvgC,GAAgB2/B,GACjBA,EAAwB9jB,eAAehpE,SAASinE,IAAM,IAAA0mB,EAAA,OAClD3J,EAAU7jG,KAAK,CACXkL,GAAIohG,EAAcphG,GAClB+4F,gBAAiBvH,EAAAA,EAAUC,kBAAkB7V,GAAQ,GACrD8e,eAA4B,QAAd4H,EAAElB,SAAY,IAAAkB,OAAA,EAAZA,EAAc5H,gBAChC,IAOV,IAAI6H,EAAmB,GASvB,GARIhB,EAAeiB,YACfD,EAAmBhB,EAAeiB,YAElCD,EAAiBztG,KAAKysG,GAE1BgB,EAAmBA,EAAiBhvF,QAAQkC,GAAMA,EAAEygF,UAAY,IAG5DkL,EAAa5sC,SAASvnD,OAAQ,CAE9B,IAAIw1F,EAAoB,IAAI38B,IAC5B,MAAM48B,EAAatB,EAAa5sC,SAASt0D,KAAKuV,GAAMA,EAAEwgD,YAAY1iD,QAAQvT,IAAQq+F,EAAeC,IAAIt+F,KACrG,IAAK,IAAIA,KAAM0iG,EACPtI,EAAekE,IAAIt+F,IACnBo6F,EAAen9C,OAAOj9C,GACtBq+F,EAAeE,IAAIv+F,KAEnBo6F,EAAemE,IAAIv+F,GACnByiG,EAAkBlE,IAAIv+F,IAK9B,MAAMmmD,EAAUg0C,EACX5mF,QAAQkC,GAAMgtF,EAAkBnE,IAAI7oF,EAAEwiD,QAAQhC,aAC9C0sC,SAASltF,GAAMA,EAAE0wC,UACjB5yC,QAAQkC,IAAO2oF,EAAcE,IAAI7oF,KACtC,IAAK,IAAIuvC,KAAUmB,EAAS,CACxB,MAAMwQ,EAAO78C,MAAMK,KAAK6sC,GAAOvE,MAAMhtC,GAAMA,EAAEuvC,SAAWA,IACxD,GAAI2R,EAAM,CACN,MAAMisC,EAAW5I,EAAcC,2BAA2B,CACtD/V,iBACAvtB,OACAlC,YACA4R,QACA8zB,gBACAC,iBACAC,mBAAmB,EACnBE,6BAEJO,EAAkBhmG,QAAQ8tG,EAC9B,CACJ,CACJ,CAGA9H,EAAoBA,EAAkBvnF,QAAQkC,IAAC,IAAAotF,EAAA,OAAiB,QAAZA,EAAAzB,SAAY,IAAAyB,OAAA,EAAZA,EAAc7iG,MAAOyV,EAAEzV,EAAE,IAE7E,MAAMigG,EAAwB,CAC1Bzf,QAAmC,QAA5BygB,EAACG,EAAa1G,sBAAc,IAAAuG,OAAA,EAA3BA,EAA6BzgB,OACrC3E,OAAmC,QAA7BqlB,EAAEE,EAAa1G,sBAAc,IAAAwG,OAAA,EAA3BA,EAA6BrlB,QAIzC,IAAK,MAAMkf,KAAewH,EAAkB,CACxC,MAAM7G,EAAqB3iG,KAAKwiG,sBAAsB,CAClDrX,iBACAuM,YAAasK,EACbnY,UAAWoX,EAAcoD,wBAAwB,CAC7CC,gBAAiB+D,EAAa3F,oBAC9B6B,YAAavC,IAEjB/1C,OAAQo8C,EAAap8C,OAGrBi2C,gBAAiB,GACjB6H,qBAAqB,EACrB1I,iBACAG,6BAEEwI,EAA0CntD,EAAAA,UAA8B,OAAlB8lD,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB9K,eAC5EqP,EAAsBzf,OACtB/J,EAAAA,EAAWykB,SACgC,OAAvC6H,QAAuC,IAAvCA,EAAAA,EAA2C,GAC3C9C,EAAsBzf,MACtByf,EAAsBpkB,QAG9B,MAAMmnB,EAAqBhJ,EAAcgB,mBAAmB,CACxDvK,YAAae,EAAAA,EAAUC,kBAAkBsR,GAAyC,GAClFvuC,SAAU2lC,EAAcj6F,KAAKuV,GAAMA,EAAEwiD,YAEnCujC,EAA+B,CACjCx7F,GAAIwzF,EAAAA,EAAYC,WAChBzuC,OAAQo8C,EAAap8C,OACrByrC,YAAasK,EACbU,oBAAqBV,EACrBW,qBACAhB,eAAgB0G,EAAa1G,eAC7BlmC,SAAUwuC,EACV3M,eAAgB+K,EAAa/K,gBAEjCyE,EAAkBhmG,KAAK0mG,EAC3B,CAGA,MAAM5H,EAAW9xB,EAAe4/B,EAAsBL,EAAe/O,SAErE,MAAO,CACHtyF,GAAIohG,EAAaphG,GACjB4zF,SAAUA,EACVF,qBAAsBA,EACtBgH,eAAgB0G,EAAa1G,eAC7BoE,aAAchE,EACd91C,OAAQq8C,EAAer8C,OACvB6uC,WAAYwN,EAAexN,WAC3BrQ,UAAW6d,EAAe7d,UAC1B4Q,eAAgBtyB,OAAelnE,EAAY6mG,EAC3C3/B,aAAcA,EACdwxB,eAA4B,OAAZ+O,QAAY,IAAZA,OAAY,EAAZA,EAAcriG,GAC9B+zF,mBAAgC,OAAZsO,QAAY,IAAZA,GAAgC,QAApBlB,EAAZkB,EAActO,0BAAkB,IAAAoN,OAApB,EAAZA,EAAkCxP,OAAO,GAAGd,iBAChEqP,2BAAwC,OAAZmC,QAAY,IAAZA,OAAY,EAAZA,EAAc3H,eAC1C/B,UAAWA,EACXjV,cAAe2d,EAAe3d,cAEtC,CA0CA,4BAAc6X,CAAqBlsF,GAU0B,IAAD4zF,EAAA,IAVxB,eAChC/e,EAAc,YACduM,EAAW,UACX7N,EAAS,OACT59B,EAAM,gBACNi2C,EAAkB,GAAE,oBACpB6H,GAAsB,EAAK,eAC3B1I,EAAc,uBACdE,GAAyB,EAAK,yBAC9BC,GAC0BlrF,EAC1B,MAAMqhF,EAAcxM,EAAeZ,aACnC,IAAIqN,EAAmBmS,EACjB5e,EAAeX,+BAAiCW,EAAeI,aAC/D,EACFwN,EAAiBgR,EACf5e,EAAeZ,aAAeY,EAAeG,aAC7CH,EAAeZ,aAejB4f,EAPqBxnB,EAAAA,EAAW8U,oBAAoB,CACpDC,cACAjN,UAAWU,EAAeE,WAC1BxB,YACA8N,cACAC,qBAEuCe,aAE3C,GAAIwR,EAAkBhN,WAAa,EAC/B,OAGJ,IAAIiN,EAAc,QACoBvoG,IAAlCsoG,EAAkBV,YAClBW,EAAcD,EAAkBV,YAEhCW,EAAYruG,KAAKouG,GAErB,IACIE,EADAtH,GAAe,EAEnB,IAAK,IAAIuH,KAAcF,EAAa,CAChC,IAAIG,EAAwB3S,EACxB4S,EAAsBzR,EAC1B,IAAKgR,EAAqB,CACtB,MAAMZ,EAAwBxd,EAAQwd,sBAClCjH,EACAoI,EACAjJ,IAEC8H,EAAsBsB,qBAAuBlJ,IAA2BC,KACrE2H,EAAsBC,sBAAwB7H,KAC9CgJ,GAAyBpf,EAAeI,eAExC4d,EAAsBE,oBAAsB9H,KAC5CiJ,GAAuBrf,EAAeK,eAE1CuX,GAAe,EAEvB,CAEA,MAAM2H,EAAwB/nB,EAAAA,EAAW8U,oBAAoB,CACzDC,YAAa4S,EACb7f,UAAWU,EAAeE,WAC1BxB,YACA8N,cACAC,iBAAkB2S,IAEhBzoB,EAAQa,EAAAA,EAAWkW,SAAS,CAC9BC,mBAAoB4R,EACpB3R,eAAgByR,IAEdjR,EAAWzX,EAAMyX,SACjBoR,EAAiBhoB,EAAAA,EAAW+W,cAAc,CAAEjV,KAAM8U,IAClDoO,EAAgBgD,EAAiBH,EACjCI,EAAczf,EAAeE,WAAasf,EAC1CzH,EAAmC,CACrCpK,mBAAoB4R,EACpB5oB,QACA6oB,iBACAhD,gBACAiD,cACAhT,iBAAkB2S,EAClBxR,eAAgByR,KAIfH,GACDM,EAAiBN,EAAavP,YAC7B6P,IAAmBN,EAAYvP,YAAc8P,EAAcP,EAAaO,eAEzEP,EAAcnH,EAEtB,CAEA,MAAMphB,EAAmB,QAAdooB,EAAGG,SAAW,IAAAH,OAAA,EAAXA,EAAapoB,MACrB6W,EAAe0R,EAAavR,mBAAoBH,aAEtD,MAAO,CACHW,cAAexX,EAAMwX,cACrBC,SAAUzX,EAAMyX,SAChB1B,cAAec,EAAab,iBAC5B6L,YAAahL,EAAawE,UAC1BwK,cAAe0C,EAAa1C,cAC5B7M,WAAYuP,EAAaM,eACzBlgB,UAAWU,EAAeE,WAC1Bp/B,OAAQA,EACR0+B,cAAeof,EAAsBM,EAAa1C,cAAgB,EAElE/P,iBAAkByS,EAAazS,iBAC/BmB,eAAgBsR,EAAatR,eAC7BgK,aAAcA,EAEtB,CAEA,wBAAc8H,CAAkBC,EAA6BC,GACzD,OAAID,EAAuBnD,cAAgBoD,EAAwBpD,cACxD/Q,EAAAA,GAAUqB,YACV6S,EAAuBnD,cAAgBoD,EAAwBpD,eAE/DmD,EAAuBnH,YAAcoH,EAAwBpH,YAD7D/M,EAAAA,GAAUgM,YAIVhM,EAAAA,GAAUqB,WAEzB,CAGA,qBAAc+S,CAAcpqC,GAAiE,IAAhE,aAAEgI,GAAoChI,EAC3DqqC,EAAyB,GACzBC,EAA4B,GAC5BC,EAA0C,GAC1CC,EAA6B,GAEjC,GAA4B,IAAxBxiC,EAAa10D,OACb,MAAO,CACHg4E,YAAY,EACZ3K,YAAa,EACb8pB,iBAAkB,GAClBxpB,kBAAmB,GACnBkK,4BAA6B,GAC7BsD,mBAAoB,GACpBtE,0BAA2B,CAAC,EAC5BugB,kCAAmC,CAAC,GAI5C,IAAI7vF,EAAI,EACR,IAAK,IAAIxb,KAAU2oE,EAAc,CAAC,IAAD2iC,EAAAC,EAC7B,MAAM/mB,EAAkB,CACpBx9E,GAAIwU,IACJvH,OAAQ2oC,EAAAA,MAAQ58C,EAAO66F,WAAajX,EAAAA,EAAaD,MAAO,GACxD7a,aAAc9oE,EAAO8oE,aACrB9c,OAAQhsD,EAAOgsD,OACf24B,eAAqC,QAAvB2mB,EAAEtrG,EAAOo7F,sBAAc,IAAAkQ,OAAA,EAArBA,EAAuB3mB,eACvCE,qBAA2C,QAAvB0mB,EAAEvrG,EAAOo7F,sBAAc,IAAAmQ,OAAA,EAArBA,EAAuB1mB,sBAGjDqmB,EAAsBpvG,KAAK0oF,GAGtBxkF,EAAO8oE,cACRqiC,EAAYrvG,KAAK0oF,EAAKvwE,QAG1B,IAAIu3F,EAAYR,EAAWvhD,MAAMhtC,GAAMA,EAAEuvC,SAAWhsD,EAAOgsD,SACtDw/C,IACDA,EAAY,CACRx/C,OAAQhsD,EAAOgsD,OACf61B,MAAO,GACP4pB,qCAAqC,GAEzCT,EAAWlvG,KAAK0vG,IAEpBA,EAAU3pB,MAAM/lF,KAAK0oF,GACrBgnB,EAAUC,oCACND,EAAUC,qCAAuCzrG,EAAO8oE,aAE5D,IAAI4iC,EAAcT,EAAcxhD,MAAMhtC,GAAMA,EAAEuvC,SAAWhsD,EAAOgsD,SAC3D0/C,IACDA,EAAc,CAAE1/C,OAAQhsD,EAAOgsD,OAAQ/3C,OAAQ,GAC/Cg3F,EAAcnvG,KAAK4vG,IAEvBA,EAAYz3F,QAAU2oC,EAAAA,MAAQ58C,EAAO0qF,cAAgB9G,EAAAA,EAAaD,MAAO,EAC7E,CACA,MAAO,CACHsI,YAAY,EACZ3K,YAAa6pB,EAAY9tF,QAAO,CAACgxE,EAAG5K,IAAM4K,EAAI5K,GAAG,GACjD2nB,iBAAkBD,EAClBvpB,kBAAmBopB,EACnBlf,4BAA6Bof,EAC7B9b,mBAAoB6b,EAE5B,EACHU,EA98BYjgB,EAAAA,EACM8a,WAAY,EADlB9a,EAGKC,cAAiBsL,IAC3B,MAAM,eACF/L,EAAc,MACdl9B,EAAK,sBACL49C,EAAqB,UACrB7hB,EAAS,QACT6B,EAAU,GAAE,YACZC,EACAf,0BAA2B+gB,GAC3B5U,EACJ,QAA4Br1F,IAAxBspF,EAAeO,KACf,MAAO,CACHQ,YAAY,EACZ3K,YAAa,EACb8pB,iBAAkB,GAClBxpB,kBAAmB,GACnBkK,4BAA6B,GAC7BsD,mBAAoB,GACpBtE,0BAA2B,CAAC,EAC5BugB,kCAAmC,CAAC,GAI5C,GAAItgB,EAAAA,EAAU8L,0BAA0B3L,EAAe6L,aACnD,OAGJn/E,EAAAA,EAAOg9B,gBACH51C,QAAQwhF,MAAM,8BAADh4E,OAA+BojF,GAAW,CAAEigB,yBAAwBD,0BAErF/P,EAAgB,IAAK6I,EAAuB5I,UAAW,IACvD6I,EAAc,GAGd,IAAImH,EAAsBH,EAAKI,iBAAiBH,GAC5CI,EAAYpvD,EAAAA,UAAYoR,GAC5B,MAAM88B,EAAqE,CAAC,EACtEmhB,EAEF,CAAC,EACCZ,EAA+E,CAAC,OAG1DzpG,IAAxBkqG,GACAE,EAAUrwF,SAASgiD,IACf,GAAIutB,EAAeO,OAASr+B,EAAAA,GAAYU,WAAY,CAChD,MAAMo+C,EAAoBnhB,EAAAA,EAAU6L,YAAY,IACzCK,EACHjpC,MAAO,CAAC2P,GACRiuC,sBAAuB/hB,EAAAA,GAAesiB,SACtCvgB,QAAQ,gCAADpjF,OAAkCm1D,EAAK3R,UAE5CogD,EAAsBrhB,EAAAA,EAAU6L,YAAY,IAC3CK,EACHjpC,MAAO,CAAC2P,GACRiuC,sBAAuB/hB,EAAAA,GAAewiB,WACtCzgB,QAAQ,kCAADpjF,OAAoCm1D,EAAK3R,UAEpD6vC,EAAgB,IAAK6I,EAAuB5I,UAAW,IACvDmQ,EAAkBtuC,EAAK3R,QAAW,CAC9B,CAACuiC,EAAAA,GAAkBE,gBAAiB2d,EACpC,CAAC7d,EAAAA,GAAkBC,cAAe0d,GAEtCb,EAAkC1tC,EAAK3R,QAAW,CAC9CuiC,EAAAA,GAAkBI,oBAClBJ,EAAAA,GAAkBG,oBAEL,OAAjBwd,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBjgB,aACfof,EAAkC1tC,EAAK3R,QAASlwD,KAAKyyF,EAAAA,GAAkBC,eACxD,OAAnB4d,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBngB,aACjBof,EAAkC1tC,EAAK3R,QAASlwD,KAAKyyF,EAAAA,GAAkBE,eAC/E,MACI4c,EAAkC1tC,EAAK3R,QAAW,CAC9CuiC,EAAAA,GAAkBK,cAClBL,EAAAA,GAAkBM,gBAE1B,SAKoBjtF,IAAxBkqG,EACAE,EAAUrwF,SAASgiD,GAAUA,EAAKof,cAAgB+uB,IAK7CD,GAA0BvsG,OAAO8a,KAAKyxF,GAAwB53F,OAAS,GAC5E+3F,EACKzxF,QAAQojD,GAASkuC,EAAuBluC,EAAK3R,UAC7CrwC,SAASgiD,GAAUmtB,EAA0BntB,EAAK3R,QAAW6/C,EAAuBluC,EAAK3R,UAE9FggD,EAAYA,EAAUzxF,QACjBojD,GACGkuC,EAAuBluC,EAAK3R,UAAauiC,EAAAA,GAAkBI,qBAC3Dkd,EAAuBluC,EAAK3R,UAAauiC,EAAAA,GAAkBG,oBAEnEsd,EAAUrwF,SACLgiD,GAAUA,EAAKof,cAAgB4uB,EAAKW,yBAAyBT,EAAuBluC,EAAK3R,YAS9FggD,EAAUrwF,SAAQ,CAACgiD,EAAMhiB,EAAO4wD,KAC5B,GAAI5uC,EAAKk4B,kBACL,GACIl4B,EAAKk4B,oBAAsBtH,EAAAA,GAAkBG,mBAC7C/wB,EAAKk4B,oBAAsBtH,EAAAA,GAAkBI,oBAE7C4d,EAAM3qF,OAAO+5B,EAAO,GACpBmvC,EAA0BntB,EAAK3R,QAAW2R,EAAKk4B,sBAC5C,CAAC,IAAD2W,EACH,MAAMC,EAAsC,QAAlCD,EAAGP,EAAkBtuC,EAAK3R,eAAQ,IAAAwgD,OAAA,EAA/BA,EAAkC7uC,EAAKk4B,mBAChD3K,EAAeO,OAASr+B,EAAAA,GAAYU,YAAmB,OAAJ2+C,QAAI,IAAJA,GAAAA,EAAMxgB,WAIzDnB,EAA0BntB,EAAK3R,QAAW2R,EAAKk4B,mBAH/C0W,EAAM3qF,OAAO+5B,EAAO,GACpBmvC,EAA0BntB,EAAK3R,QAAWuiC,EAAAA,GAAkBI,qBAIhEhxB,EAAKof,cAAgB4uB,EAAKW,yBAAyB3uC,EAAKk4B,kBAC5D,MAEA,GAAI3K,EAAeO,OAASr+B,EAAAA,GAAYC,QAAS,CAC7C,MAAM6+C,EAAoBnhB,EAAAA,EAAU6L,YAAY,IACzCK,EACHjpC,MAAO,CAAC2P,GACRiuC,sBAAuB/hB,EAAAA,GAAesiB,SACtCvgB,QAAQ,mCAADpjF,OAAqCm1D,EAAK3R,UAE/CogD,EAAsBrhB,EAAAA,EAAU6L,YAAY,IAC3CK,EACHjpC,MAAO,CAAC2P,GACRiuC,sBAAuB/hB,EAAAA,GAAewiB,WACtCzgB,QAAQ,qCAADpjF,OAAuCm1D,EAAK3R,UAEjD0gD,EACqB,OAAnBN,QAAmB,IAAnBA,IAAAA,EAAqBngB,YAAgC,OAAjBigB,QAAiB,IAAjBA,GAAAA,EAAmBjgB,YAE5B,OAAnBmgB,QAAmB,IAAnBA,GAAAA,EAAqBngB,YAA+B,OAAjBigB,QAAiB,IAAjBA,IAAAA,EAAmBjgB,cAG7B,QAAjC0gB,EAAoB,OAAnBP,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB9qB,mBAAW,IAAAqrB,EAAAA,EAAI,IAAoC,QAAnCC,EAAsB,OAAjBV,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB5qB,mBAAW,IAAAsrB,EAAAA,EAAI,GAEtE/iB,EAAAA,GAAewiB,WAJfxiB,EAAAA,GAAesiB,SAFftiB,EAAAA,GAAewiB,WAU9B1uC,EAAKof,cAAgB4uB,EAAKI,iBAAiBW,GAC3C5hB,EAA0BntB,EAAK3R,QAC3B0gD,IAAsB7iB,EAAAA,GAAewiB,WAC/B9d,EAAAA,GAAkBM,gBAClBN,EAAAA,GAAkBK,aAChC,MACI2d,EAAM3qF,OAAO+5B,EAAO,GACpBmvC,EAA0BntB,EAAK3R,QAAWuiC,EAAAA,GAAkBI,oBAnBlC,IAACge,EAAAC,CAqBnC,IAIR,MAAM1xG,EAAS6vF,EAAAA,EAAUiM,oCAAoC,IAAKC,EAAajpC,MAAOg+C,IACtFp0F,EAAAA,EAAOC,IAAI,WAAY3c,GACvB,MAAM,aAAEytE,EAAY,gBAAEk9B,GAAoB8F,EAAKjG,4BAA4BxqG,GAC3E2+F,EAAWC,iBAAiB,CAAEnxB,eAAcohB,UAAWA,IACvD,MAAMzI,EAAcqqB,EAAKZ,eAAe,CAAEpiC,iBAG1C,OADA/wD,EAAAA,EAAOg9B,gBAAkB51C,QAAQ6tG,WAC1B,IACAvrB,EACHQ,SAAU,IAAI+Z,EAAcC,aAAc6I,GAC1C5a,YACA8B,cACAf,4BACAugB,oCACAxF,kBACH,EAtLIna,EA6LKqgB,iBAAoBniB,IAC9B,GAAIA,EACA,OAAQA,GACJ,KAAKC,EAAAA,GAAesiB,SAChB,OAAO,EACX,KAAKtiB,EAAAA,GAAewiB,WAChB,OAAO,GAEnB,EArMK3gB,EA4MK4gB,yBAA4BzW,IACtC,OAAQA,GACJ,KAAKtH,EAAAA,GAAkBK,cACvB,KAAKL,EAAAA,GAAkBC,aACnB,OAAO,EACX,KAAKD,EAAAA,GAAkBM,gBACvB,KAAKN,EAAAA,GAAkBE,eACnB,OAAO,GACf,EApNK/C,EA+tBKwd,sBAAwB,CAClCjH,EACA6K,EACA1L,KAEA,IAAI2L,EACJ,CACI3D,oBAAoB,EACpBD,sBAAsB,EACtBqB,qBAAqB,GAGzB,IAAK,MAAMvrC,KAAWgjC,EAAiB,CAKnC,GAJ2BxkB,EAAAA,EAAWymB,uBAClC1L,EAAAA,EAAU2L,iBAAiBllC,EAAQxiD,EAAIwiD,EAAQ4f,GAC/CiuB,IAGI1L,EAAekE,IAAIrmC,EAAQhC,WAAa,CAAC,IAAD+vC,EAAAC,EAAAC,EAAAC,EACxCJ,EAAYvC,qBAAsB,EAElC,MAAM4C,GAA0B,QAAbJ,EAAA/tC,EAAQk4B,aAAK,IAAA6V,OAAA,EAAbA,EAAgB,GAAGvwF,MAAmB,QAAlBwwF,EAAKhuC,EAAQk4B,aAAK,IAAA8V,OAAA,EAAbA,EAAgB,GAAGxwF,GACzD4wF,GAA4B,QAAbH,EAAAjuC,EAAQk4B,aAAK,IAAA+V,OAAA,EAAbA,EAAgB,GAAGruB,MAAmB,QAAlBsuB,EAAKluC,EAAQk4B,aAAK,IAAAgW,OAAA,EAAbA,EAAgB,GAAGtuB,GAOjE,OANIuuB,EACAL,EAAY3D,oBAAqB,EAC1BiE,IACPN,EAAY5D,sBAAuB,GAGhC4D,CACX,CAER,CACA,OAAOA,CAAW,qJCz3BnB,MAAMO,EAAgBA,KACzB,MAAM,aAAE3kC,EAAe,KAAO4kC,EAAAA,EAAAA,MACxB3a,EAAyB,OAAZjqB,QAAY,IAAZA,OAAY,EAAZA,EAAczhE,KAAKuV,GAAMA,EAAE8kE,aAE9C,OADmBryE,SAAQskF,EAAAA,EAAAA,MAAkBt3F,MAAMi4F,6BAE/Cz5F,EAAAA,EAAAA,KAAC6rF,EAAgB,CACb1E,MAAiB,OAAV+Q,QAAU,IAAVA,OAAU,EAAVA,EAAYv1E,QAAO,CAAC6wC,EAAKC,KAAI,IAAAq/C,EAAA,MAAK,IAAIt/C,KAAuB,QAAlBs/C,EAAQ,OAAJr/C,QAAI,IAAJA,OAAI,EAAJA,EAAM2zB,gBAAQ,IAAA0rB,EAAAA,EAAI,GAAI,GAAE,MAFjE,IAIpB,EAIQjnB,EAAmBnpF,IAA+C,IAA9C,MAAEykF,EAAK,OAAE71B,GAA+B5uD,EACrE,OACI1C,EAAAA,EAAAA,KAACY,EAAAA,SAAc,CAAA4H,SACL,OAAL2+E,QAAK,IAALA,OAAK,EAALA,EACKtnE,QAAQpT,IAAU6kD,GAAS7kD,EAAK6kD,SAAWA,IAC5C9kD,KAAI,CAACC,EAAMw0C,KACRjhD,EAAAA,EAAAA,KAAC+yG,EAAK,IAAiBtmG,GAAXw0C,MAEP,EAIZ8xD,EAAStmG,IAEdR,EAAAA,EAAAA,MAAA,KAAGK,GAAIqvF,EAAAA,GAASqX,gBAAgBvmG,EAAK6kD,OAAS7kD,EAAK6zF,UAAWr2F,UAAW0xF,EAAAA,GAASsX,MAAMxmG,EAAK6kD,QAAS9oD,SAAA,CACjGiE,EAAK+zF,cAAexgG,EAAAA,EAAAA,KAAC+V,EAAW,IAAKtJ,KACtCzM,EAAAA,EAAAA,KAACkzG,EAAO,IAAKzmG,OAKnBymG,EAAUjlG,IASQ,IATP,OACb00E,EAAM,kBACNsd,EAAiB,MACjB70F,EAAQ,MAAK,YACbw/E,EAAc,EAAC,KACfjhF,EAAI,OACJk+E,EAAM,UACNwC,EAAY,OAAM,OAClBoW,GAAS,GACKxyF,EACd,MAAMklG,EAA6C,CAC/CxpG,KAAMA,EAENk+E,OAAQA,EACRlF,QAA0B,OAAjBsd,QAAiB,IAAjBA,EAAAA,EAAqBtd,GAAQn2E,KAAKgkD,GAAC,GAAA1iD,OAAQ0iD,EAAEzuC,EAAC,KAAAjU,OAAI0iD,EAAE2zB,KAAK5M,KAAK,KACvEoT,OAAQv/E,EACRw/E,cACAxG,KAAMiG,EACNmL,QAAuB,SAAdnL,EAAuB,GAAM,EACtCS,gBAAiB2V,EAAS,QAAU,IAExC,OAAOzgG,EAAAA,EAAAA,KAAA,cAAamzG,GAAoB,EAGtCp9F,EAAc4F,IAUI,IAVH,OACjBgnE,EAAM,kBACNsd,EAAiB,SACjBK,EAAW,GAAE,MACbl1F,EAAQ,MAAK,SACb4O,EAAW,MAAK,KAChBrQ,EAAI,QACJsnE,EAAO,cACPsvB,GAAgB,EAAI,YACpBC,GAAc,GACA7kF,EACd,MAAMstE,EAAQC,EAAAA,EAAaD,MAErBmqB,EAAOrwB,EAAAA,EAAWC,qBAAqB,CAAEL,OAAyB,OAAjBsd,QAAiB,IAAjBA,EAAAA,EAAqBtd,IACtE0wB,EAAU,CAAEtxF,EAAGw+E,EAAgB6S,EAAKjwB,KAAOiwB,EAAK/vB,KAAO,IAAKc,EAAGivB,EAAKhwB,KAAO,IAC3E/1E,EAAQimG,EAAAA,EAAKC,QAAQ,CAAExxF,EAAGqxF,EAAKjwB,KAAMgB,EAAGivB,EAAKhwB,MAAQ,CAAErhE,EAAGqxF,EAAK/vB,KAAMc,EAAGivB,EAAKhwB,OAC7EvzE,EAASyjG,EAAAA,EAAKC,QAAQ,CAAExxF,EAAGqxF,EAAKjwB,KAAMgB,EAAGivB,EAAKhwB,MAAQ,CAAErhE,EAAGqxF,EAAKjwB,KAAMgB,EAAGivB,EAAK9vB,OAKpF,MACMkwB,EAAgBH,EAAQlvB,GAAkB,QAAbnqE,EAAqB,EAAInK,GAEtD4jG,EAA6C,CAC/C/8B,UAAU,aAAD5oE,OAJSulG,EAAQtxF,EAAmB,EAIR,KAAAjU,OAAI0lG,EAAa,MAAA1lG,OAA8B,KAGlFlB,EAAwB,CAAEw3E,KAAMh5E,EAAO6B,SAAU,GAAIJ,WAAY,SAAUw3E,WAAY,SAGvF8E,EAAiBh9B,KAAKC,MAAe,IAAR/+C,EAAe47E,GAC5CG,EAAkBj9B,KAAKC,MAAgB,IAATv8C,EAAgBo5E,GAC9CyqB,EAAc,GAAA5lG,OAAMq7E,EAAc,SAAAr7E,OAAQs7E,EAAe,MAiBzDuqB,EAAQ1tC,IAAyD,IAAxD,MAAEryD,EAAK,IAAEggG,EAAG,OAAEhnG,EAAM,GAAEN,EAAE,MAAEunG,EAAQ,CAAC,GAAe5tC,EAC7D,OACIjmE,EAAAA,EAAAA,KAAA,QAAMsM,GAAIA,EAAIyV,EAAG6xF,EAAI7xF,EAAGoiE,EAAGyvB,EAAIzvB,EAAG/jF,MAAOwM,EAAQy3E,WAAW,YAAawvB,EAAKrrG,SACzEoL,GACE,EAIf,OAAQ4sF,GACJv0F,EAAAA,EAAAA,MAAA,QAAOwnG,EAAgBjrG,SAAA,EACnBxI,EAAAA,EAAAA,KAAC2zG,EAAK,CACFrnG,GAAE,kBAAAwB,OAAoBulG,EAAQtxF,EAAC,KAAAjU,OAAIulG,EAAQlvB,GAC3CvwE,MAAO0sF,EACPsT,IAAK,CAAE7xF,EAAiB,EAAGoiE,EAAG,IAC9Bv3E,OAAQA,EACRinG,MAAO,CAAElqG,WAEXsnE,IACEjxE,EAAAA,EAAAA,KAAC2zG,EAAK,CACFrnG,GAAE,kBAAAwB,OAAoBulG,EAAQtxF,EAAC,KAAAjU,OAAIulG,EAAQlvB,EAAC,MAC5CvwE,MAAO8/F,EACPE,IAAK,CAAE7xF,EAAiB,EAAGoiE,EAAG,IAC9Bv3E,OAAQA,EACRinG,MAAO,CACHlqG,OACA,eAAgB,YAChB,aAAcw/E,EACd,cAAeC,KAI1BnY,IACGjxE,EAAAA,EAAAA,KAAC2zG,EAAK,CACFrnG,GAAE,kBAAAwB,OAAoBulG,EAAQtxF,EAAC,KAAAjU,OAAIulG,EAAQlvB,EAAC,MAC5CvwE,MAzCQq9D,KACpB,MAAM6iC,EAAiB3nD,KAAKC,MAAM6kB,EAAUgY,EAAQ,KAEpD,MADiB,sBAAAn7E,OAAyBgmG,EAAc,KACtC,EAsCCC,CAAe9iC,GACtB2iC,IAAK,CAAE7xF,EAAiB,EAAGoiE,EAAG,IAC9Bv3E,OAlDqB,CACjCxB,MAAO,UACP6B,SAAU,GACVJ,WAAY,SACZw3E,WAAY,QACZj3E,WAAY,QA8CAymG,MAAO,CAAElqG,aA7BH,IAiCrB,6QC1IE,MAAMqqG,EAAiBtxG,IAA6E,IAADuxG,EAAAC,EAAA,IAA3E,SAAEC,EAAQ,MAAEltG,EAAQ,GAAE,WAAEsP,EAAU,QAAE3D,GAAkClQ,EACjG,MAAM,MAAElB,EAAK,OAAE8S,IAAWC,EAAAA,EAAAA,GAA4B,CAAE6/F,OAAQt7D,SAAS7xC,KAEnEotG,EAAYv6C,IACb,OAADA,QAAC,IAADA,GAAAA,EAAGw6C,iBACH,MAAM,OAAEF,EAAM,MAAE3X,GAAUj7F,EACpB+yG,IAAsBH,IAAgB,OAAL3X,QAAK,IAALA,OAAK,EAALA,EAAOprB,MAAQ+iC,IAAgB,OAAL3X,QAAK,IAALA,OAAK,EAALA,EAAOjrB,MACxEl9D,EAAO,CAAEigG,sBACJA,GACDh+F,EAAW69F,EACf,EAEJxzG,EAAAA,WAAgB,KACZ,GAAIY,EAAM+yG,kBAAmB,CACzB,MAAM,OAAEH,EAAM,MAAE3X,GAAUj7F,EACpB+yG,IAAsBH,IAAgB,OAAL3X,QAAK,IAALA,OAAK,EAALA,EAAOprB,MAAQ+iC,IAAgB,OAAL3X,QAAK,IAALA,OAAK,EAALA,EAAOjrB,MACxEl9D,EAAO,CAAEigG,qBACb,IAED,CAAC/yG,EAAM4yG,SAEVxzG,EAAAA,WAAgB,KACZ0T,EAAO,CAAEmoF,MAAe,OAAR0X,QAAQ,IAARA,OAAQ,EAARA,KAAe,GAEhC,CAACA,IAEJ,MAAMK,GAAW7nG,EAAAA,EAAAA,MACX8nG,GAAWC,EAAAA,EAAAA,QAAyB,MAC1C,OACIzoG,EAAAA,EAAAA,MAAC0oG,EAAAA,EAAU,CACPjjG,OAAO1R,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,yBACnB2F,UAAUjS,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,0CACtBsG,QAASA,EAAQpK,SAAA,EACjBxI,EAAAA,EAAAA,KAACkzF,EAAI,CAAC9yF,MAAO,CAAEgL,MAAO5J,EAAM+yG,kBAAoB,UAAY,WAAY/rG,UACpExI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CACJrF,GAAG,8CACH+L,OAAQ,CAAEg5D,IAAgB,QAAb4iC,EAAEzyG,EAAMi7F,aAAK,IAAAwX,OAAA,EAAXA,EAAa5iC,IAAKG,IAAgB,QAAb0iC,EAAE1yG,EAAMi7F,aAAK,IAAAyX,OAAA,EAAXA,EAAa1iC,UAG3DvlE,EAAAA,EAAAA,MAAC2oG,EAAM,CACHx0G,MAAO,CAAE8P,OAAO,aAADpC,OAAetM,EAAM+yG,kBAAoB,UAAY,YACpEljG,QAAUyoD,GAAMA,EAAE+6C,kBAClBC,YAAch7C,GAAMA,EAAE+6C,kBACtBE,UAAYj7C,GAAMA,EAAE+6C,kBACpBG,aAAel7C,GAAMA,EAAE+6C,kBACvBI,WAAan7C,GAAMA,EAAE+6C,kBACrBR,SAAUA,EAAS7rG,SAAA,EACnBxI,EAAAA,EAAAA,KAACq2F,EAAAA,EAAW,CACRoe,SAAUA,EACVxtG,MAAOzF,EAAM4yG,OACbvhB,SAAWyG,GAAUhlF,EAAO,CAAE8/F,OAAQt7D,SAASwgD,EAAMz4E,OAAO5Z,SAC5D7G,MAAO80G,EACP7jG,QAASA,KAAA,IAAA8jG,EAAA,OAAsB,QAAtBA,EAAMV,EAASlsG,eAAO,IAAA4sG,OAAA,EAAhBA,EAAkBC,OAAO,EACxCC,WAAYb,KAEhBx0G,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTvJ,KAAK,SACL0H,QAASgjG,EACTrjG,UAAWxP,EAAM4yG,OACjBppG,QAASyI,EAAAA,EAAcS,KACvBxC,OAAO1R,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,oBACnBiF,OAAQ,CAAE1G,KAAMyqG,UAGf,EAIfpiB,GAAOtmF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACvBiN,UAAW,EACXhN,WAAY,SACZO,WAAY,IACZH,SAAU,GACVyN,WAAY,YAGVk6F,GAAShoG,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAC1BiN,UAAW,GACXxO,QAAS,OACT4E,WAAY,SACZC,OAAQ,oBACRL,OAAQ,KAENylG,EAA0B,CAAEjoG,MAAO,IAAKkoG,UAAW,IACnDL,EAA6B,CAAEjyB,OAAQ,EAAG5iF,WAAY,UAAWia,KAAM,wCCvEtE,MAAMk7F,EAAkB9yG,IAAyC,IAAxC,SAAEkhF,EAAQ,OAAEtyB,GAAsB5uD,EAC9D,MAAM,eAAE+yG,EAAc,mBAAEC,EAAkB,kBAAEC,EAAiB,KAAEhsG,EAAI,MAAE2pD,EAAQ,KAAOu/C,EAAAA,EAAAA,MAC9EpgD,EAAUa,EAAMzzC,QAAQojD,GAASA,EAAKt5D,OAASA,IAAM6C,KAAKy2D,GAASA,EAAK3R,SACxEi+B,EAAaj8B,EAAMzzC,QAAQpT,GAASgmD,EAAQxe,SAASxnC,EAAK6kD,UAAa7kD,EAAK6kD,SAClF,OACItxD,EAAAA,EAAAA,KAACgkF,EAAe,CACZrR,MAAO4c,EAAW0f,SAAShsC,GAASA,EAAK0P,OAAS,KAClDrf,MAAOi8B,EACPxuB,UAAWwuB,EAAW0f,SAAShsC,GAASA,EAAKlC,WAAa,KAC1D00C,eAAgBA,EAChBC,mBAAoBA,EACpBC,kBAAmBA,EACnB/xB,SAAUA,EACVtyB,OAAQA,GACV,EAIG0yB,EAAkB/1E,IAWV,IAXW,SAC5B21E,EAAQ,OACRtyB,EACAqhB,MAAOijC,EAAW,GAAE,MACpBtiD,EAAQ,GAAE,UACVyN,EAAY,GAAE,eACd00C,EAAc,mBACdC,EAAkB,kBAClBC,EAAiB,KACjBhsG,EAAI,YACJ45E,GACWt1E,EACX,MAAQqlD,MAAO0e,EAAW,GAAIW,MAAOkjC,EAAW,GAAI90C,UAAW+0C,EAAe,KAAOjD,EAAAA,EAAAA,MACrF,IAAIkD,EAAiBziD,EACjB0iD,EAAqBj1C,EACrBk1C,EAAiBL,EACrB,GAAIjsG,EAAM,CACN,MAAM8oD,EAAUa,EAAMzzC,QAAQojD,GAASA,EAAKt5D,OAASA,IAAM6C,KAAKy2D,GAASA,EAAK3R,SAC9EykD,EAAiB/jC,EAASnyD,QAAQpT,GAASgmD,EAAQxe,SAASxnC,EAAK6kD,UAAa7kD,EAAK6kD,SACnF2kD,EAAiBJ,EAASh2F,QAAQpT,GAASgmD,EAAQxe,SAASxnC,EAAK6kD,UAAa7kD,EAAK6kD,SACnF0kD,EAAqBF,EAAaj2F,QAAQpT,GAASgmD,EAAQxe,SAASxnC,EAAK6kD,UAAa7kD,EAAK6kD,QAC/F,CACA,MAAM4kD,GAAUC,EAAAA,EAAAA,MAAoB30G,MAC9B40G,EAAgBH,EAAep2F,QAAQ+sE,GAASA,EAAKt7B,SAAWA,IAAWA,IAC3E+kD,EAAgBpL,EAAAA,EAAUqL,qBAAqBF,EAAeA,EAAeJ,GASnF,OACIh2G,EAAAA,EAAAA,KAACY,EAAAA,SAAc,CAAA4H,SACVutG,EACIl2F,QAAQpT,IAAU6kD,GAAS7kD,EAAK6kD,SAAWA,IAC3CzxC,QAXMojD,GACf2gB,KACC8xB,GAAsBC,GAAqBO,EAAQ1zC,YAAc0zC,EAAQ3zC,cAEpEkzC,GACAxyC,EAAK3R,SAAWmkD,KAObjpG,KAAKy2D,IAEEjjE,EAAAA,EAAAA,KAACu2G,EAAY,CAETjlD,OAAQ2R,EAAK3R,OACbskD,SAAU3yC,EAAK0P,MACf0jC,cAAeA,EACfG,eAAgB5yB,EAChBL,YAAaA,GAAY,qBAAAz1E,OALCm1D,EAAK3R,YASlC,EAYnBilD,EAAe56F,IAAyF,IAAxF,OAAE21C,EAAM,SAAEskD,EAAQ,cAAES,EAAa,eAAEG,EAAc,YAAEjzB,GAA+B5nE,EACpG,MAAM86F,EAAY7pB,GAAe0mB,EAAAA,EAAKC,QAAQ3mB,EAAKhK,MAAOgK,EAAKC,MACxD6pB,EAAgBC,GAAqB/1G,EAAAA,WACtC4L,GAAMsiF,EAAAA,EAAAA,MACN8nB,GAAWC,EAAAA,EAAAA,MA8CXnzG,EAAqC,CACvC4I,GAAIqvF,EAAAA,GAASmb,WAAWxlD,GACxBrnD,UAAW0xF,EAAAA,GAASsX,MAAM3hD,IAE9B,OACIrlD,EAAAA,EAAAA,MAACrL,EAAAA,SAAc,CAAA4H,SAAA,EACXxI,EAAAA,EAAAA,KAAA,QAAO0D,EAAK8E,SACPotG,EAASppG,KAAI,CAACogF,EAAM3rC,KACjB,MAAM81D,EAAUV,EAActnD,MAAMhtC,GAAMA,EAAE,KAAO6qE,IACnD,OACI5sF,EAAAA,EAAAA,KAACg3G,EAAW,CACRC,OAAO,+BACPpD,MAAOnwG,EAEP4tD,OAAQs7B,EAAKt7B,OACb9B,GAAIo9B,EAAKhK,MACTnzB,GAAIm9B,EAAKC,IACTqqB,MAAOH,GAAWP,EAAiB,SAAW,UAC9CW,KAAMvqB,EAAKwqB,SACXnwG,MAAOwvG,EAAS7pB,GAChBE,MAAOF,EAAKE,OAAS,IAAM3gC,KAAKkrD,IAChCC,kBAAmBd,EAAiBttB,EAAAA,EAAaquB,cAAgB,EACjEC,YACId,IACM9pB,EAAKt7B,SAAWolD,EAAeplD,QAAUs7B,EAAKwqB,WAAaV,EAAeU,UAGpFK,SAAW39C,GAAM68C,EAAkB/pB,GACnCrJ,YAAaA,GAfRtiC,EAgBP,MAIby1D,IACG12G,EAAAA,EAAAA,KAACg0G,EAAc,CACX/sG,MAAOwvG,EAASC,GAAgBvmD,QAAQ,GACxC55C,WAhFI69F,IAChB,GAAIsC,EAAgB,CAChBE,EAAS3hG,MAAMzI,EAAI+P,YAEnB,MAAM,MAAEo2D,EAAQ,GAAE,MAAErf,EAAQ,GAAE,SAAEwN,EAAW,IAAOt0D,EAAI+P,WAChDqwE,EAAO8qB,EAAAA,EAASC,oBAAoBjB,GAC1C,IAAIkB,EAAaF,EAAAA,EAASG,gBAAgBnB,EAAgB9pB,EAAMwnB,EAAQtzC,EAAUxN,EAAOqf,GACzF,IAAKilC,EAAWE,gBAAiB,CAC7B,MAAMlrB,EAAO8qB,EAAAA,EAASC,oBAAoBjB,GAAgB,GAAO,GACjEkB,EAAaF,EAAAA,EAASG,gBAAgBnB,EAAgB9pB,EAAMwnB,EAAQtzC,EAAUxN,EAAOqf,EACzF,CAEA,GADuBolC,EAAAA,EAAyBC,kBAAkBJ,EAAWtkD,MAAOhC,GACjE/3C,OAAS,EAAG,CAC3B8jC,EAAAA,EAAM17C,MAAM,2BACZ,MAAMs2G,EAAYrB,EAASsB,OAC3B1rG,EAAI8H,OAAO,CACP+D,OAAQ,IAAK4/F,EAAW3xB,MAAM,GAC9BxtB,KAAM,CAAEwgC,MAAO,gCAAiC8a,WAExD,MACI5nG,EAAI8H,OAAO,CACP+D,OAAQ,CACJs6D,MAAOilC,EAAWjlC,MAClBrf,MAAOskD,EAAWtkD,MAClBwN,SAAU82C,EAAW92C,SACrBwlB,MAAM,GAEV6xB,aAAa,EACbr/C,KAAM,CAAEwgC,MAAO,kCAAmC8a,YAG1DuC,OAAkBzvG,GACLosD,EAAMvE,MAAMhtC,GAAMA,EAAEuvC,SAAWs7B,EAAKt7B,UAE7C8mD,EAAAA,EAAaC,uBAAuBT,EAAW92C,SAAU82C,EAAWjlC,MAE5E,GA6CY//D,QAASA,IAAM+jG,OAAkBzvG,GACjCitG,SAAUA,IA3CHuC,KACnB,MAAM,MAAE/jC,EAAQ,GAAE,MAAErf,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,IAAOv0D,EAAI+P,WACtE,OAAO+7F,EAAoB5B,EAAgB/jC,EAAO7R,EAAUxN,EAAOyN,EAAU,EAyCjDw3C,CAAc7B,OAGzB,EAoBnBM,EAAc/wC,IAaK,IAbJ,OACjB3U,EAAM,GACN9B,EAAE,GACFC,EAAE,MACFynD,EAAK,KACLC,EAAI,MACJlwG,EAAK,MACL6lF,EAAK,OACLmqB,EAAM,kBACNK,EAAoB,EAAC,UACrBE,EAAS,SACTC,EAAQ,YACRl0B,GACetd,EACf,MAAMuyC,EAAYlF,EAAAA,EAAKmF,OAAOjpD,EAAGztC,EAAGytC,EAAG20B,EAAG10B,EAAG1tC,EAAG0tC,EAAG00B,GAC7CovB,EAAUD,EAAAA,EAAKC,QAAQ/jD,EAAIC,GAAM6nD,EACjCoB,EAAgBzxG,EAAQ0xG,EAAAA,GAAcC,0BAA0Br1B,GAEhEs1B,EAAW5xG,EAAMkpD,QAAQ,GAAK,IAAMwoD,EAAAA,GAAcG,WAClDC,GAAiBC,EAAAA,EAAAA,IAAqBH,EAASt/F,QAC/CtM,GAAWgsG,EAAAA,EAAAA,OAETnsB,MAAOosB,EAAQ,WAAEC,EAAU,SAAEC,GAAaC,EAAAA,GAAUC,eAAepC,EAAOpqB,EAAOvJ,GACnFg2B,EAAoBF,EAAAA,GAAUG,2BAA2BJ,EAAUV,EAAen1B,GAElF7/E,EAAqC,CACvC4I,GAAG,aAADwB,OAAewjD,EAAM,aAAAxjD,OAASqpG,EAAI,cAAArpG,OAAU7G,EAAMkpD,QAAQ,GAAE,WAAAriD,OAAUmpG,EAAS,OAAMA,EAAS,IAChGhtG,UAAW,OACXysE,UAAU,UAAD5oE,OAAYorG,EAAQ,KAAAprG,OAAI0qG,EAAUz2F,EAAC,KAAAjU,OAAI0qG,EAAUr0B,EAAC,gBAAAr2E,OAAe0qG,EAAUz2F,EAAC,KAAAjU,OACjF0qG,EAAUr0B,GAAKg1B,EAAaI,GAAkB,MAItD,OACIttG,EAAAA,EAAAA,MAAA,QAAOvI,EAAK8E,SAAA,EACRxI,EAAAA,EAAAA,KAACy5G,EAAAA,GAAQ,CAAClG,QAASA,KACnBvzG,EAAAA,EAAAA,KAAC05G,EAAAA,GAAW,CACR33F,GAAIwxF,EAAU,EACd4F,WAAYA,EAAaI,EACzBH,SAAUA,EACVlC,MAAOA,EACP3zB,YAAaA,KAEjBvjF,EAAAA,EAAAA,KAAC05G,EAAAA,GAAW,CACR33F,EAAGwxF,EAAU,EACb4F,WAAYA,EAAaI,EACzBH,SAAUA,EACVlC,MAAOA,EACP3zB,YAAaA,KAEjBvjF,EAAAA,EAAAA,KAAC25G,EAAAA,GAAY,CAAC53F,GAAIwxF,EAAU,EAAG6F,UAAQ,EAAC71B,YAAaA,KACrDvjF,EAAAA,EAAAA,KAAC25G,EAAAA,GAAY,CAAC53F,EAAGwxF,EAAU,EAAGhwB,YAAaA,KAE3CvjF,EAAAA,EAAAA,KAAC45G,EAAAA,GAAS,CAACC,WAAYd,EAAgBvB,UAAWA,EAAWj0B,YAAaA,KAC1EvjF,EAAAA,EAAAA,KAAC85G,EAAAA,GAAY,CACTC,KAAMlB,EACN5rG,SAAUA,EACV6/E,MAAOosB,EACP7nG,QAASomG,EACTl0B,YAAaA,MAEjB,EAIN+0B,EAAsB,SACxB1rB,EACAja,GAOA,MAAO,CAAEtB,IAFGub,EAAKotB,YAEHxoC,IADFkmC,EAAAA,EAASuC,yBAEzB,gMClRO,MAAMC,EAAcA,KACvB,MAAM,MAAE5mD,EAAQ,GAAE,eAAEmiD,IAAmB5C,EAAAA,EAAAA,MACvC,OAAO7yG,EAAAA,EAAAA,KAAC2jF,EAAW,CAACrwB,MAAOA,EAAOmiD,eAAgBA,GAAkB,EAG3D9xB,EAAcjhF,IAA4E,IAA3E,SAAEkhF,EAAQ,OAAEtyB,EAAM,MAAEgC,EAAQ,GAAE,eAAEmiD,EAAc,KAAE9rG,GAAqBjH,EAC7F,MAAQiH,KAAMwwG,IAAgBtH,EAAAA,EAAAA,MAC9B,OACI7yG,EAAAA,EAAAA,KAACY,EAAAA,SAAc,CAAA4H,SACV8qD,EACIzzC,QAAQpT,IAAU6kD,GAAS7kD,EAAK6kD,SAAWA,IAC3CzxC,QAAQojD,GAAS2gB,GAAY3gB,EAAKt5D,QAAUA,GAAQwwG,KACpD3tG,KAAKy2D,IACFjjE,EAAAA,EAAAA,KAACo6G,EAAO,CAEJn3C,KAAMA,EACN14D,SAAU04D,EAAK3R,SAAWmkD,EAC1B7xB,SAAUA,GAAS,WAAA91E,OAHHm1D,EAAK3R,YAMpB,EAMnB8pC,EAAe1Q,GAAiB,GAAA58E,OAAQ48E,EAAM3oE,EAAC,KAAAjU,OAAI48E,EAAMvG,GAEzDi2B,EAAUnsG,IAAiD,IAADstF,EAAA8e,EAAA,IAA/C,KAAEp3C,EAAI,SAAE14D,EAAQ,SAAEq5E,GAAwB31E,EACvD,MAAM,KAAEtE,IAASkpG,EAAAA,EAAAA,MACXyH,EAAUC,EAAmBt3C,GAC7Bu3C,GAAiBrE,EAAAA,EAAAA,MACjB3a,EAA4B,QAAbD,EAAGt4B,EAAK0P,aAAK,IAAA4oB,OAAA,EAAVA,EAAY/uF,KAAK+4E,GAAM6V,EAAY7V,EAAE3C,SAAQrL,KAAK,KACpEqV,EAAO3pB,EAAK0P,MAAO,GACnBgQ,EAAS6Y,EAAkB,IAAMJ,EAAYxO,EAAKhK,OAClDj+B,GAAiF,KAAnC,QAApC01D,EAACG,EAAeh5G,MAAMi5G,sBAAc,IAAAJ,EAAAA,EAAI,IAAIj3F,QAAQ6/C,EAAK3R,QACnEopD,EAAenwG,EAAW,UAAY,YAC5C,IAAIowG,EAAa,UACbhwB,EAAS,UACR/G,IACGj6E,IAASu6D,EAAAA,GAASC,KAClBw2C,EAAapwG,EAAW,UAAY,YACpCogF,EAAoB,YAEpBgwB,EAAapwG,EAAW,UAAY,YACpCogF,EAAS,YAIjB,MAAMjnF,EAA2C,CAC7C4I,GAAIqvF,EAAAA,GAASC,YAAYhP,EAAKt7B,QAC9BrnD,UAAW0xF,EAAAA,GAASsX,MAAMrmB,EAAKt7B,QAC/B8yB,KAAMR,GAAwBj/B,EAAbg2D,EAAoCD,EACrD/vB,SACAC,YAAa1B,EAAAA,EAAaquB,cAC1B50B,SAEA,cAAeyY,EAAYxO,EAAKhK,OAChC6S,cAAe,QAGnB,OACIz1F,EAAAA,EAAAA,KAAC67F,EAAO,CACJC,UAAW74B,EAAKgpB,QAAUC,EAAAA,GAAU6P,yBAChCr4F,EACJoxG,YAAawF,EAAQM,YACrB5F,aAAcsF,EAAQM,YACtB7F,UAAWuF,EAAQvF,UACnBE,WAAYqF,EAAQrF,YACtB,EAKJpZ,EAAUlgF,IAA6C,IAA5C,UAAEmgF,KAAcp4F,GAAsBiY,EACnD,OAAOmgF,GAAY97F,EAAAA,EAAAA,KAAC66G,EAAW,IAAKn3G,EAAOtD,MAAO,CAAEya,OAAQ,cAAkB7a,EAAAA,EAAAA,KAAC86G,EAAY,IAAKp3G,GAAS,EAIvGm3G,GAAcjuG,EAAAA,EAAAA,GAAO,UAAPA,CAAkB,CAAE,UAAW,CAAC,IAC9CkuG,GAAeluG,EAAAA,EAAAA,GAAO,WAAPA,CAAmB,CAAE,UAAW,CAAC,IAEhD2tG,EAAsBt3C,IACxB,MAAMuxC,GAAW7nG,EAAAA,EAAAA,MACXH,GAAMuuG,EAAAA,EAAAA,MACNC,GAAUnE,EAAAA,EAAAA,MACVoE,GAAcC,EAAAA,EAAAA,MACdC,GAAYC,EAAAA,EAAAA,MACZZ,GAAiBrE,EAAAA,EAAAA,MAEjBkF,GAAaC,EAAAA,EAAAA,MAoEnB,MAAO,CAAEV,YAlEYW,IACjB,IAAKF,EAAWG,iBAAiBD,GAAqC,CAClE,MAAM,aAAEE,GAAiBjvG,EAAI+P,WAE7B,QAA0BrV,IAAtBgiF,EAAAA,EAAawyB,OAAuBD,EAAc,CAAC,IAADE,EAAAz9B,EAClDs8B,EAAelmG,OAAO,CAAEsnG,aAAa,IACrC,MAAMC,EAAOC,EAAAA,EAAWC,6BACpBR,EACAryB,EAAAA,EAAa8yB,UACbb,EAAUl0G,MACU,QADL00G,EACdR,EAAUc,iBAAS,IAAAN,OAAA,EAApBA,EAA8BO,WAE5B57C,EAAW9zD,EAAI+P,WACrBy+F,EAAQ/lG,MAAMqrD,GACd9zD,EAAI8H,OAAO,CACP+D,OAAQ,CACJ8jG,SAAUl5C,EAAK3R,OACfmqD,aAAcR,EAAYmB,cACtBP,EACc,QADV39B,EACJ5d,EAAShN,aAAK,IAAA4qB,OAAA,EAAdA,EAAgBnvB,MAAMzG,GAAMA,EAAEgJ,SAAW2R,EAAK3R,UAElD+qD,iBAAiB,GAErBvjD,KAAM,CAAEwgC,MAAO,oCAEnBpQ,EAAAA,EAAawyB,KAAOY,EAAAA,EAAQC,mBAChC,CACJ,GAuCkBxH,UApCJA,KACd,MAAM,YAAE6G,EAAW,sBAAEY,GAA0BhC,EAAej+F,YAEzDi4F,GACDoH,GACAY,IAA0Bv5C,EAAK3R,QAC/B43B,EAAAA,EAAawyB,OAASY,EAAAA,EAAQC,sBAE9B/B,EAAelmG,OAAO,IAAKmoG,EAAAA,GAA4BD,sBAAuBv5C,EAAK3R,SAC/E9kD,EAAI+P,WAAWk5F,iBAAmBxyC,EAAK3R,QAAWkjD,GAClDhoG,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAEo9F,eAAgBxyC,EAAK3R,OAAQ+qD,iBAAiB,EAAO/1B,MAAM,KAExF4C,EAAAA,EAAawyB,UAAOx0G,EACxB,EAuB6B+tG,WApBdr0G,EAAAA,aACd04F,IACuBkhB,EAAeh5G,MAAMo6G,aAGrC1yB,EAAAA,EAAawyB,OAASY,EAAAA,EAAQK,2BAC9BzzB,EAAAA,EAAawyB,OAASY,EAAAA,EAAQM,8BAE1BpC,EAAeh5G,MAAMg7G,wBAA0Bv5C,EAAK3R,OACpDkpD,EAAelmG,OAAO,IAAKmoG,EAAAA,GAA4BD,sBAAuBv5C,EAAK3R,SAEnFkpD,EAAeriB,QAEnB3rF,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAEgkG,iBAAiB,EAAO/1B,MAAM,KAC3D,GAGJ,CAACk0B,EAAeh5G,MAAMo6G,YAAapB,EAAeh5G,MAAMg7G,wBAGf,4FCtLjD,MAAMK,EAAa,IAENC,EAAkBA,KAAO,IAADC,EAAAC,EACjC,MAAMC,EAAwC,QAAjCF,EAA8B,QAA9BC,GAAG5B,EAAAA,EAAAA,MAAsBn0G,aAAK,IAAA+1G,OAAA,EAA3BA,EAA6BrpB,SAAC,IAAAopB,EAAAA,EAAI,EAElD,OADcE,EAAU,EAAI,EAAI,EAAIA,CACxB,EAsBT,SAAShE,IAAwD,IAAnCiE,EAAmBn8F,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACvD,MAAMk8F,GAAU7B,EAAAA,EAAAA,MAAsBn0G,MAAM0sF,EAG5C,OAFespB,EAAU,GAAKA,EAAUJ,EAAc,EAAI,EAAII,GACzCC,CAEzB,CAEO,MAAMlE,EAAwBD,IACjC,MAAMkE,GAAU7B,EAAAA,EAAAA,MAAsBn0G,MAAM0sF,EAG5C,OAD0BolB,GADXkE,EAAU,GAAKA,EAAUJ,EAAc,EAAI,EAAII,EAEtC,EAGfE,EAA2B,WAA8B,IAADC,EAAAC,EAAA,IAA5B95B,EAAmBxiE,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAC3D,MAAMk8F,EAAwC,QAAjCG,EAA8B,QAA9BC,GAAGjC,EAAAA,EAAAA,MAAsBn0G,aAAK,IAAAo2G,OAAA,EAA3BA,EAA6B1pB,SAAC,IAAAypB,EAAAA,EAAI,EAElD,OADeH,EAAU,GAAKA,EAAUJ,EAAc,EAAI,EAAII,GAC/C15B,CACnB,iKCxCO,MAAMo1B,EAAgB,CACzBG,WAAY,KAEZ7rG,SAAU,WAAwB,OAAK,IAAT8T,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAAsB,EACvD0B,MAAO,WAAwB,OAAK,GAAT1B,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAAqB,EACnDu8F,YAAa,WAAwB,OAAK,IAATv8F,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAAsB,EAC1Dw8F,YAAa,WAAwB,OAAK,IAATx8F,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAAsB,EAC1Dy8F,mBAAoB,WAAwB,OAAK,GAATz8F,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAAqB,EAChE08F,UAAW,WAAwB,OAAK,GAAT18F,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAAqB,EACvD28F,cAAe,WAAwB,OAAK,KAAT38F,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAAuB,EAC7D63F,0BAA2B,WAAwB,OAAK,IAAT73F,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAAsB,GAI/D04F,EAAW/2G,IAA0C,IAAzC,QAAE6wG,KAAYoK,GAAqBj7G,EACxD,MAAMgB,EAAwC,CAC1Ck6G,IAAKrK,EAAU,EACfsK,GAAItK,EAAU,EACduK,GAAI,EACJC,GAAI,EACJpzB,OAAQ,UACRC,YAAa,KACV+yB,GAEP,OAAO39G,EAAAA,EAAAA,KAAA,WAAU0D,GAAS,EAIjBg2G,EAAczrG,IAAwE,IAAvE,EAAE8T,EAAC,WAAEo3F,EAAU,SAAEC,EAAQ,MAAElC,EAAK,YAAE3zB,GAA+Bt1E,EACzF,MAAMvK,EAAQ,CACVk6G,GAAI77F,EACJ+7F,GAAI1E,GAAsB,WAAVlC,EAAqB,GAAK,EAC1C2G,GAAI97F,EACJg8F,IACK5E,GAEAC,EAAsB,WAAVlC,EACPyB,EAAc6E,mBAAmBj6B,IAChCo1B,EAAc6E,mBAAmBj6B,IAC5CoH,OAAQ,YACRC,YAAa,GAEjB,OAAO5qF,EAAAA,EAAAA,KAAA,WAAU0D,GAAS,EAGjBi2G,EAAeh+F,IAAsD,IAArD,EAAEoG,EAAC,SAAEq3F,EAAQ,YAAE71B,GAAgC5nE,EACxE,MAAM8hG,EAAY9E,EAAc8E,UAAUl6B,GACpC7/E,EAAQ,CACVi/E,OAAQy2B,EACFr3F,SAAqBA,EAAI07F,GAAa,IAAMA,EAAY,EAAI,KAAO17F,EAAI07F,GAAa,KAAOA,EAAY,EACvG17F,SAAqBA,EAAI07F,GAAa,IAAMA,EAAY,EAAI,KAAO17F,EAAI07F,GAAa,KAAOA,EAAY,EAC7Gr5B,KAAM,WAEV,OAAOpkF,EAAAA,EAAAA,KAAA,cAAa0D,GAAS,EAIpBk2G,EAAY3zC,IAAuE,IAAtE,WAAE4zC,EAAU,UAAErC,EAAS,YAAEj0B,KAAgBswB,GAAuB5tC,EACtF,MAAM+3C,EAAarF,EAAc+E,cAAcn6B,GAAes2B,EACxD0D,GAActE,EAAAA,EAAAA,IAAqBN,EAAc4E,YAAYh6B,IAC7D7/E,EAAsC,CACxC2J,MAAO2wG,EACPnuG,OAAQ0tG,EACRx7F,GAAIi8F,EAAa,EACjB75B,GAAIo5B,EAAc,EAClBn5B,KAAM,UACNuG,OAAQ6sB,EAAY,UAAY,UAChC5sB,YAAa4sB,EAAY,EAAI,KAC1B3D,GAEP,OAAO7zG,EAAAA,EAAAA,KAAA,WAAU0D,EAAOtD,MAAO,CAAEya,OAAQ,YAAe,EAU/Ci/F,EAAexvC,IAAwF,IAAvF,KAAEyvC,EAAI,SAAE9sG,EAAW,GAAE,MAAE6/E,EAAK,QAAEz7E,EAAO,YAAEkyE,KAAgBswB,GAA0BvpC,EAC1G,MAAMlqE,EAAuB,CACzBya,OAAQ,UACR67D,WAAsB,MAAXoW,GAA4B,KAAVA,EAAe,iBAAmB,QAG7DuuB,GAAaC,EAAAA,EAAAA,MAOnB,IAAI2C,GAAQd,EAAAA,EAAAA,IAAyB55B,GACrC,OACIvjF,EAAAA,EAAAA,KAAA,QACImkF,EAAG,EAAI85B,EACP55B,WAAW,SACXsG,OAAO,UACPC,YAAa,GACb/9E,WAAYC,EAAAA,EAASC,MAAMsD,qBAC3BjD,WAAY,IACZg3E,KAAK,UACLhkF,MAAOA,EACP6M,SAAUs2E,EAAco1B,EAAc1rG,SAASs2E,GAAet2E,EAC9DoE,QAASA,EACT4jG,WAnBgB3b,IACf+hB,EAAWG,iBAAiBliB,IACtB,OAAPjoF,QAAO,IAAPA,GAAAA,EAAUioF,EACd,KAiBQua,EAAKrrG,SACRuxG,GACE,EAIR,MAAMV,EAaT,iCAAcG,CAA2BJ,EAAmBV,EAAwBn1B,GAChF,OAAKm1B,EAGEU,EAAWT,EAAc2E,YAAY/5B,IAAgBo1B,EAAc2E,YAAY/5B,GAF3E,CAGf,EAlBS81B,EACKC,eAAiB,CAACnC,EAAcrqB,EAAevJ,KACzD,IAAI41B,EACS,WAAThC,EAAuD,EAAnCwB,EAAcl2F,MAAM8gE,GAAuD,GAAnCo1B,EAAcl2F,MAAM8gE,GAChF61B,GAAW,EAMf,OALItsB,EAAQ,IAAMA,GAAS,MACvBA,GAAS,IACTssB,GAAW,EACXD,GAAcA,GAEX,CAAErsB,QAAOqsB,aAAYC,WAAU,oIChIvC,MAAM8E,EAAax7G,IAA0C,IAAzC,MAAEtC,GAAiCsC,EAC1D,OACIuJ,EAAAA,EAAAA,MAAA,OAAKoB,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,OAAOhkF,MAAOA,EAAMoI,SAAA,EACrExI,EAAAA,EAAAA,KAAA,UAAQm+G,GAAG,IAAIC,GAAG,IAAI91D,EAAE,IAAIqiC,OAAO,UAAUC,YAAY,OACzD5qF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,iEACFE,OAAO,UACPC,YAAY,IACZyzB,cAAc,YAEhB,EAIDC,EAAWrwG,IAA0C,IAAzC,MAAE7N,GAAiC6N,EACxD,OACIjO,EAAAA,EAAAA,KAAA,OAAKqN,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,UAAUhkF,MAAOA,EAAMoI,UACxExI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,gyEACN,EAID8zB,EAAgB5iG,IAA0C,IAAzC,MAAEvb,GAAiCub,EAC7D,OACI3b,EAAAA,EAAAA,KAAA,OAAKqN,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,QAAQhkF,MAAOA,EAAMoI,UACtExI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,siCACN,EAID+zB,EAAav4C,IAA0C,IAAzC,MAAE7lE,GAAiC6lE,EAC1D,OACIh6D,EAAAA,EAAAA,MAAA,OAAKoB,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYtjF,MAAOA,EAAOgkF,KAAK,UAAS57E,SAAA,EACxExI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,m3BACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,kaACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,maACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,saACN,EAIDg0B,EAAgBn0C,IAA0C,IAAzC,MAAElqE,GAAiCkqE,EAC7D,OACIr+D,EAAAA,EAAAA,MAAA,OAAKoB,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,OAAOhkF,MAAOA,EAAMoI,SAAA,EACrExI,EAAAA,EAAAA,KAAA,QAAMokF,KAAK,OAAOqG,EAAE,0BACpBzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,mCAAmCrG,KAAK,UAChDpkF,EAAAA,EAAAA,KAAA,QACI,YAAU,UACV,YAAU,UACVyqF,EAAE,0bACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACI,YAAU,UACV,YAAU,UACVyqF,EAAE,wMACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,wFACFrG,KAAK,UACLuG,OAAO,WAET,qCCjDP,MAAM+zB,EAAUh7G,IACZ1D,EAAAA,EAAAA,KAAC2+G,EAAY,CAACltG,MAAMzR,EAAAA,EAAAA,KAAC4+G,EAAgB,IAAKltG,MAAOK,EAAAA,GAAKC,IAAI,4BAA8BtO,IAGtFm7G,EAAQn7G,IAEb1D,EAAAA,EAAAA,KAAC2+G,EAAY,IACLj7G,EACJ+N,MAAMzR,EAAAA,EAAAA,KAAC4+G,EAAc,IACrBltG,MAAOK,EAAAA,GAAKC,IAAI,uBAChB8sG,qBAAmB,IAKlBC,EAAar7G,IAElB1D,EAAAA,EAAAA,KAAC2+G,EAAY,IACLj7G,EACJ+N,MAAMzR,EAAAA,EAAAA,KAAC4+G,EAAmB,IAC1BltG,MAAOK,EAAAA,GAAKC,IAAI,4BAChB8sG,qBAAmB,IAKlBE,EAAct7G,IAChB1D,EAAAA,EAAAA,KAAC2+G,EAAY,IAAKj7G,EAAO+N,MAAMzR,EAAAA,EAAAA,KAAC4+G,EAAmB,IAAKltG,MAAOK,EAAAA,GAAKC,IAAI,wBAGtEitG,EAAUv7G,IAEf1D,EAAAA,EAAAA,KAAC2+G,EAAY,IACLj7G,EACJ+N,MAAMzR,EAAAA,EAAAA,KAAC4+G,EAAgB,IACvBltG,MAAOK,EAAAA,GAAKC,IAAI,yBAChB8sG,qBAAmB,IAOzBH,EAAej8G,IAAiF,IAAhF,QAAE2O,EAAO,KAAEI,EAAI,MAAEC,EAAK,oBAAEotG,EAAmB,aAAEI,GAA6Bx8G,EAC5F,MAAMy8G,EAAYC,IAAW,CAAEC,iBAAkBP,EAAqBI,iBACtE,OACIjzG,EAAAA,EAAAA,MAAC+K,EAAS,CAAC3F,QAASA,EAAS2jG,aAAc3jG,EAASpH,UAAWk1G,EAAU32G,SAAA,EACrExI,EAAAA,EAAAA,KAACs/G,EAAa,CAAA92G,SAAEiJ,KAChBzR,EAAAA,EAAAA,KAACkZ,EAAK,CAAA1Q,SAAEkJ,MACA,EAIdsF,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BvB,QAAS,OACT4E,WAAY,SACZ4K,OAAQ,UACRhL,OAAQ,GACRzE,MAAO,UACP,iBAAkB,CACd,UAAW,CAAE/K,WAAY,UAAW+K,MAAO,WAC3C,2BAA4B,CAAEu/E,OAAQ,YAE1C,iBAAkB,CACdt/E,QAAS,OACT,CAAC,sBAADyC,OAAuB,IAAG,QAAQ,CAAEzC,QAAS,WAI/Ci0G,GAAgB1yG,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAES,MAAO,GAAIhC,QAAS,OAAQuO,eAAgB,WAE5EV,GAAQtM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACxBC,WAAY,SACZO,WAAY,IACZH,SAAU,GACVyN,WAAY,SAGH6tD,GAAU37D,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACjCq2E,OAAQ,UACRz1E,UAAW,oBACX,iBAAkB,CACdnC,QAAS,OACT,CAAC,sBAADyC,OAAuB,IAAG,QAAQ,CAAEzC,QAAS,2IC3F9C,MAAMk0G,EAAiBA,KAC1B,MAAMxoB,EAAen2F,EAAAA,OAAa,OAC3B4+G,EAAiBC,GAAsB7+G,EAAAA,UAAwB,GAMhE45G,GAAiBrE,EAAAA,EAAAA,MAEjBuJ,GAAYC,EAAAA,EAAAA,MAGZC,EAAQh/G,EAAAA,aAAmBk5D,IAC5B,OAADA,QAAC,IAADA,GAAAA,EAAGw6C,iBACHmL,GAAmB,GACnBjF,EAAeqF,mBACfH,EAAU,CACNrnG,OAAQ,CAAE8jG,cAAUj1G,EAAWu0G,kBAAcv0G,GAC7C4xD,KAAM,CAAEwgC,MAAO,sBACjB,GAEH,IAEGwmB,EAAYl/G,EAAAA,aACd8B,IAAiD,IAAhD,SAAE8F,GAAwC9F,EACvC,OACIuJ,EAAAA,EAAAA,MAACorF,EAAAA,GAAO,CACJvlF,KAAM0tG,EACNloB,SAAUP,EAAaxuF,QACvBgvF,aAAc,CAAEC,SAAU,SAAUC,WAAY,UAChDC,gBAAiB,CAAEF,SAAU,MAAOC,WAAY,UAChD/F,WAAY,CAAEtxF,MAAO2/G,GACrBC,cAAe,CACX5/G,MAAO,CAAEo1F,QAAS,GAClBnkF,QAASuuG,EACT3K,WAAY2K,GAEhBK,eAAgBA,OAASz3G,SAAA,EACzBxI,EAAAA,EAAAA,KAACkgH,EAAQ,KACTlgH,EAAAA,EAAAA,KAACgX,EAAS,CAAAxO,SAAEA,MACN,GAGlB,CAACg3G,EAAiBI,IAGtB,MAAO,CAAE7oB,eAAcyoB,kBAAiBW,eA3CvBrmD,IACZ,OAADA,QAAC,IAADA,GAAAA,EAAG+6C,kBACH4K,GAAoBxmC,IAAUA,GAAK,EAyC0B6mC,YAAWF,QAAOtuG,KAnCtEA,IAAMmuG,GAAmB,GAmCmD,EAGhFM,EAAuC,CAChD7yG,QAAS,EACTynF,aAAc,EACdnpF,gBAAiB,cACjBH,QAAS,OACToP,cAAe,SACfxK,WAAY,SACZmwG,UAAW,QAGTF,GAAWtzG,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC3ByzG,WAAY,yBACZC,YAAa,yBACb9yG,UAAW,yBACXD,aAAc,qBAGZyJ,GAAYpK,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAC5BS,MAAO,IACP7B,gBAAiB,QACjBy3E,OAAQ,gBACRm9B,UAAW,mGC1ER,MAAMG,EAAsB79G,IAAgD,IAA/C,cAAE89G,GAAuC99G,EACzE,MAAO+9G,EAAYC,GAAiB9/G,EAAAA,UAAwB,GAa5D,MAAO,CAAE6/G,aAAYE,SATJA,KACbD,GAAc,GACD,OAAbF,QAAa,IAAbA,GAAAA,GAAiB,EAOUI,cAZR9mD,IACnB4mD,GAAc,EAAK,EAWuBd,MAJ/Bn5F,IACXi6F,GAAc,EAAM,EAG6B,sQCHlD,MAAMG,EAAiBn+G,IAA8C,IAA7C,KAAE+J,EAAI,SAAEm3E,GAA+BlhF,EAGlE,MAEMo+G,EAAiB,aAAAhzG,OAAgBrB,EAAKsV,GAAK,EAAC,KAAAjU,OAAIrB,EAAK03E,GAAK,EAAC,YAAAr2E,OADlB,EACwC,QACjF4oE,EAAS,UAAA5oE,OAAarB,EAAKqgF,MAAK,SAChCnjF,EAAO8C,EAAK9C,KACZogD,EAAOt9C,EAAKs9C,KAEZx/C,GAAWsoG,EAAAA,EAAAA,MAAqB8C,oBAAsBlpG,EAAK81D,WAE3D,OAAEw+C,EAAM,YAAEC,EAAW,SAAEC,EAAQ,SAAEN,EAAQ,YAAEO,EAAW,aAAEC,EAAY,SAAEC,GCfpC30G,KACxC,MAAMD,GAAMuuG,EAAAA,EAAAA,MACNvG,GAAW7nG,EAAAA,EAAAA,MACX0uG,GAAaC,EAAAA,EAAAA,MACb4F,GAAc3B,EAAAA,EAAAA,KACd3I,GAAWC,EAAAA,EAAAA,MACX2D,GAAiBrE,EAAAA,EAAAA,MAEjByE,EAAch6G,EAAAA,aACf04F,IACG,IAAK+hB,EAAWG,iBAAiBliB,KACxB4nB,EAAY1B,kBAAoBt2B,EAAAA,EAAawyB,KAAM,CACpD9E,EAAS3hG,MAAMzI,EAAI+P,YAEnBi+F,EAAelmG,OAAO,CAAEsnG,aAAa,EAAMr5C,UAAW91D,EAAK81D,YAC3D,MAAM,SAAEzB,EAAW,IAAOt0D,EAAI+P,WACxB8kG,EAAkBvgD,EAASt0D,KAAK0pC,IAC9BA,EAAEqsB,YAAc91D,EAAK81D,YAAWrsB,EAAEorE,UAAW,GAC1CprE,KAELqrE,EAA2BpnE,EAAAA,EAAYC,MAAM0mB,EAAS/R,MAAM7Y,GAAMA,EAAEqsB,YAAc91D,EAAK81D,aAC7F/1D,EAAI8H,OAAO,CACP+D,OAAQ,CAAEkpG,2BAA0BzgD,SAAUugD,EAAiBhF,iBAAiB,EAAM/1B,MAAM,GAC5FxtB,KAAM,CAAEwgC,MAAO,0CAA2CioB,8BAE9Dr4B,EAAAA,EAAawyB,KAAOY,EAAAA,EAAQkF,sBAChC,CACJ,GAGJ,CAACN,EAAY1B,kBAGXzK,EAAYn0G,EAAAA,aACb04F,IACG,IAAKkb,GAAYgG,EAAej+F,WAAWq/F,cAAgBsF,EAAY1B,gBAAiB,CACpF0B,EAAY5vG,OACZ,MAAM,kBAAEqkG,GAAsBnpG,EAAI+P,WAC9Bo5F,IAAsBlpG,EAAK81D,WAC3B/1D,EAAIkwG,SAAS,CACTrkG,OAAQ,CAAEs9F,kBAAmBlpG,EAAK81D,UAAW85C,iBAAiB,EAAO/1B,MAAM,KAGnFk0B,EAAeriB,QACfjP,EAAAA,EAAawyB,UAAOx0G,CACxB,IAGJ,CAACg6G,EAAY1B,gBAAiBhL,IAG5BS,EAAar0G,EAAAA,aACd04F,IACGA,EAAMgb,iBACF4M,EAAY1B,kBACZ0B,EAAYtB,QACZtmB,EAAMub,mBAEN2F,EAAej+F,WAAWq/F,cAAgBsF,EAAY1B,kBACtD0B,EAAY5vG,OACZ9E,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAEgkG,iBAAiB,EAAO/1B,MAAM,KACvDk0B,EAAeqF,mBACf32B,EAAAA,EAAawyB,UAAOx0G,EACxB,GAGJ,CAACg6G,EAAY1B,kBAIXuB,EAASngH,EAAAA,aAAmB04F,IAC9B,IAAKpQ,EAAAA,EAAawyB,KAAM,CACpBwF,EAAYtB,QACZ,MAAM,SAAE9+C,EAAW,IAAOt0D,EAAI+P,WACxB8kG,EAAkBvgD,EAASt0D,KAAK0pC,IAC9BA,EAAEqsB,YAAc91D,EAAK81D,YAAWrsB,EAAEorE,UAAW,GAC1CprE,KAEX1pC,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAEyoD,SAAUugD,EAAiBhF,iBAAiB,EAAM/1B,MAAM,KACjFk0B,EAAelmG,OAAO,CAAEiuD,UAAW91D,EAAK81D,YACxC2mB,EAAAA,EAAawyB,KAAOY,EAAAA,EAAQkF,sBAChC,IAED,IAEGL,GAAeZ,EAAAA,EAAAA,GAAoB,CAAEC,cAAeA,IAAMh0G,EAAIi1G,cAAch1G,EAAK81D,aA2CvF,MAAO,CACHw+C,SACAE,SA3CargH,EAAAA,aAAmB04F,IAC3BpQ,EAAAA,EAAawyB,OACdwF,EAAYtB,QACZpzG,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAEs9F,kBAAmBlpG,EAAK81D,aACrD,GAED,IAsCCy+C,YApCgBpgH,EAAAA,aAAmB04F,IACnC,IAAKpQ,EAAAA,EAAawyB,KAAM,CACpBwF,EAAYtB,QACZ,MAAM9+C,EAAWt0D,EAAI+P,WAAWukD,UAAY,GACtC4gD,EAAc5gD,EAAS/R,MAAM7Y,GAAMA,EAAEqsB,YAAc91D,EAAK81D,YAExDtgE,EAAO0/G,EAAAA,EAAeC,WAAWF,EAAa5gD,GAC9C+gD,EAAaF,EAAAA,EAAeG,cAAc,IACzCJ,EACHz/G,OACA8f,OAAG7a,EACHi9E,OAAGj9E,EACHu1F,MAAO,KAEL4kB,EAAkB,IAAIvgD,EAAU+gD,GACtCr1G,EAAIkwG,SAAS,CACTrkG,OAAQ,CAAEyoD,SAAUugD,EAAiBhF,iBAAiB,EAAM/1B,MAAM,GAClE6xB,aAAa,IAEjBqC,EAAelmG,OAAO,CAAEiuD,UAAWs/C,EAAWt/C,YAC9C2mB,EAAAA,EAAawyB,KAAOY,EAAAA,EAAQK,yBAChC,IAED,IAcCgE,SAZa//G,EAAAA,aAAmB04F,IAC3BpQ,EAAAA,EAAawyB,OACdwF,EAAYtB,QACZuB,EAAaP,gBACjB,GAED,IAOCQ,SAAU,CACNtM,YAAa8F,EACb7F,YACAC,aAAc4F,EACd3F,cAEJiM,cACAC,eACH,ED7HGY,CAA4Bt1G,GAC1Bu1G,EAAgBp+B,EAAW,CAAC,EAAIw9B,EAChC5M,GAAW7nG,EAAAA,EAAAA,MACX3C,EAAUi4G,EAAU,CAAEX,SAAU70G,EAAK60G,SAAU5F,KAAMxyB,EAAAA,EAAawyB,KAAMnxG,WAAUq5E,WAAU4wB,aAC5F0N,EAAa,2EAAAp0G,OAEKq0G,EAAAA,GAAoC,mCAAAr0G,OACnCq0G,EAAAA,GAAmC,yFAAAr0G,OAElBq0G,EAAAA,GAAoC,cAAAr0G,OAAaq0G,EAAAA,GAAmC,+BAAAr0G,OACzGq0G,EAAAA,GAAmC,uDAGxD,OACIl2G,EAAAA,EAAAA,MAACm2G,EAAY,CAAC91G,GAAIqvF,EAAAA,GAAS0mB,cAAc51G,EAAK6kD,QAAUrnD,UAAW0xF,EAAAA,GAASsX,MAAMxmG,EAAK6kD,QAAS9oD,SAAA,EAC5FyD,EAAAA,EAAAA,MAACq2G,EAAK,CAAC5rC,UAAWoqC,KAAuBkB,EAAe/5G,IAAKi5G,EAAYnqB,aAAavuF,SAAA,EAClFxI,EAAAA,EAAAA,KAAA,SAAO2J,KAAK,WAAUnB,SAAEo7E,GAAYs+B,KACpCj2G,EAAAA,EAAAA,MAAA,KAAGhC,UAAWD,EAAQa,KAAKrC,SAAA,CACtBmB,IAAS88D,EAAAA,GAAYC,OAAQ1mE,EAAAA,EAAAA,KAACmiH,EAAAA,GAAqB,CAACp4D,KAAMA,EAAM2sB,UAAWA,IAC3E/sE,IAAS88D,EAAAA,GAAYG,cAClB5mE,EAAAA,EAAAA,KAACmiH,EAAAA,GAA4B,CAACp4D,KAAMA,EAAM2sB,UAAWA,IAExD/sE,IAAS88D,EAAAA,GAAYO,aAClBhnE,EAAAA,EAAAA,KAACmiH,EAAAA,GAA2B,CAACp4D,KAAMA,EAAM2sB,UAAWA,IAEvD/sE,IAAS88D,EAAAA,GAAYK,YAAa9mE,EAAAA,EAAAA,KAACmiH,EAAAA,GAA0B,CAACp4D,KAAMA,EAAM2sB,UAAWA,IACrF/sE,IAAS88D,EAAAA,GAAYW,YAAapnE,EAAAA,EAAAA,KAACmiH,EAAAA,GAA0B,CAACp4D,KAAMA,EAAM2sB,UAAWA,IACrF/sE,IAAS88D,EAAAA,GAAY87C,SAAUviH,EAAAA,EAAAA,KAACmiH,EAAAA,GAAuB,CAACp4D,KAAMA,EAAM2sB,UAAWA,IAC/E/sE,IAAS88D,EAAAA,GAAYS,UAAWlnE,EAAAA,EAAAA,KAACmiH,EAAAA,GAAwB,CAACp4D,KAAMA,EAAM2sB,UAAWA,KAChFkN,IAAY5jF,EAAAA,EAAAA,KAACmiH,EAAAA,GAAuB,CAACp4D,KAAMA,EAAM2sB,UAAWA,QAElEzqE,EAAAA,EAAAA,MAACi1G,EAAYpB,UAAS,CAAAt3G,SAAA,EAClBxI,EAAAA,EAAAA,KAACwiH,EAAAA,GAAsB,CAACnxG,QAAS4vG,KACjCjhH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,KACxBxiH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAoB,CAACnxG,QAAS0vG,KAC/B/gH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,KACxBxiH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAyB,CAACnxG,QAAS2vG,KACpChhH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,KACxBxiH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAsB,CAACnxG,QAASsvG,UAGxCQ,EAAaV,aACVzgH,EAAAA,EAAAA,KAAC6R,EAAAA,EAAiB,CACdH,MAAM,yBACNO,SAAQ,2BAAAnE,OAA4BrB,EAAKxK,KAAI,KAC7CkQ,WAAYgvG,EAAaR,SACzBhuG,UAAWA,IAAMwuG,EAAavB,MAAM,kBACpChtG,QAASA,IAAMuuG,EAAavB,MAAM,gBAClC6C,oBAAoB,EACpB5vG,aAAW,MAGR,EAYjBuvG,GATa,2EAAAt0G,OAESq0G,EAAAA,GAAoC,mCAAAr0G,OACnCq0G,EAAAA,GAAmC,yFAAAr0G,OAElBq0G,EAAAA,GAAoC,cAAAr0G,OAAaq0G,EAAAA,GAAmC,+BAAAr0G,OACzGq0G,EAAAA,GAAmC,wDAGvCv1G,EAAAA,EAAAA,GAAO,IAAPA,CAAY,CAAC,IAC5B01G,GAAQ11G,EAAAA,EAAAA,GAAO,IAAPA,CAAY,CAAEiO,OAAQ,YAG9BonG,GAAYS,EAAAA,EAAAA,GAA+B,CAC7C73G,KAAOnH,IAAkB,CACrBmX,OAAQnX,EAAMkgF,SAAW,UAAY,OACrC,qBAAsB,CAAEv4E,QAAS3H,EAAM49G,SAAW,SAAW,QAC7D,YACI59G,EAAM6G,UAAY7G,EAAM49G,SAClB,CAAE32B,OAAQw3B,EAAAA,IACV,CAAEx3B,OAAQw3B,EAAAA,IACpB,aAAcz+G,EAAM49G,SACd,CAAE32B,OAAQw3B,EAAAA,IACVz+G,EAAM6G,SACN,CAAEogF,OAAQ,SACV,CAAEA,OAAQw3B,EAAAA,IAChB,cAAez+G,EAAM49G,SAAW,CAAEj2G,QAAS,UAAa,CAAEA,QAAS,QACnE,eAAgB3H,EAAM49G,SAChB,CAAEj2G,QAAS,QACX,CACIA,QAAS,SACT+4E,KAAM1gF,EAAM6G,SAAW,UAAY43G,EAAAA,GACnCx3B,OAAQjnF,EAAM6G,SAAW,QAAU43G,EAAAA,IAE7C,WAAY,CAAE/9B,KAAM1gF,EAAM6G,SAAW,QAAU43G,EAAAA,IAC/C,UACIz+G,EAAMg4G,OAASY,EAAAA,EAAQK,2BAA8Bj5G,EAAMkgF,UAAalgF,EAAM8wG,SAOxE,CAAC,EAND,CACI,qBAAsB,CAAEnpG,QAAS,UACjC,YAAa,CAAEs/E,OAAQw3B,EAAAA,IACvB,cAAe,CAAE92G,QAAS,UAC1B,eAAgB,CAAEA,QAAS,aEpHpCs3G,EAAuBA,KAChC,MAAM,KAAEh5G,EAAI,SAAEm3D,EAAW,GAAE,MAAExN,EAAQ,KAAOu/C,EAAAA,EAAAA,MACtCpgD,EAAUa,EAAMzzC,QAAQojD,GAASA,EAAKt5D,OAASA,IAAM6C,KAAKy2D,GAASA,EAAK3R,SACxEsxD,EAAoB9hD,EAASjhD,QAAQpT,GAASgmD,EAAQxe,SAASxnC,EAAK6kD,UAAa7kD,EAAK6kD,SAC5F,OAAOtxD,EAAAA,EAAAA,KAAC6jF,EAAiB,CAAC/iB,SAAU8hD,GAAqB,EAGhD/+B,EAAoBnhF,IAAqE,IAApE,SAAEo+D,EAAW,GAAE,SAAE8iB,EAAQ,OAAEtyB,EAAM,KAAE3nD,GAA2BjH,EAC5F,MAAM83G,GAAiBrE,EAAAA,EAAAA,OACjB,MAAE7iD,EAAQ,KAAOu/C,EAAAA,EAAAA,MACvB,IAAI+P,EAAoB9hD,EACxB,GAAIn3D,EAAM,CACN,MAAM8oD,EAAUa,EAAMzzC,QAAQojD,GAASA,EAAKt5D,OAASA,IAAM6C,KAAKy2D,GAASA,EAAK3R,SAC9EsxD,EAAoBA,EAAkB/iG,QAAQpT,GAASgmD,EAAQxe,SAASxnC,EAAK6kD,UAAa7kD,EAAK6kD,QACnG,CACA,OACItxD,EAAAA,EAAAA,KAACY,EAAAA,SAAc,CAAA4H,SACVo6G,EACI/iG,QAAQpT,IAAU,IAAD4tG,EACd,OAAO/oD,GACD7kD,EAAK6kD,SAAWA,KAAiD,QAAvC+oD,EAACG,EAAeh5G,MAAMqhH,yBAAiB,IAAAxI,GAAtCA,EAAwCpmE,SAASxnC,EAAK81D,WAC7E,IAEb/1D,KAAK+3D,IACFvkE,EAAAA,EAAAA,KAAC8iH,EAAoB,CAAyBr2G,KAAM83D,EAASqf,SAAUA,GAA5Crf,EAAQhC,cAE9B,EAKnBugD,EAAuB70G,IAAoD,IAAnD,KAAExB,EAAI,SAAEm3E,GAAqC31E,EACvE,OACIjO,EAAAA,EAAAA,KAACY,EAAAA,SAAc,CAAA4H,UACXxI,EAAAA,EAAAA,KAAC6gH,EAAc,CAAsBp0G,KAAMA,EAAMm3E,SAAUA,GAAtCn3E,EAAK81D,YACb,gLCrCzB,MAEawgD,EAAsB,UACtBC,EAAqB,UAS5BC,EAAqCvgH,IAA0D,IAAzD,KAAEqnD,EAAI,UAAE2sB,EAAS,cAAEwsC,EAAa,MAAErP,EAAK,SAAErrG,GAAU9F,EAC3F,OACIuJ,EAAAA,EAAAA,MAAA,QAAO4nG,EAAKrrG,SAAA,EACRxI,EAAAA,EAAAA,KAAA,QACIiK,UAAU,UACV2zG,KAAM7zD,EAAO,EAAI,KAAKr7C,WACtBovG,GAAI,EACJD,IAAK9zD,EAAO,EAAI,KAAKr7C,WACrBqvG,GAAI,EACJ39G,MAAO,CAAEwqF,YAAa,IACtByzB,cAAc,QACd3nC,UAAWA,KAEf12E,EAAAA,EAAAA,KAAA,UACIiK,UAAU,YACVk0G,GAAI,EACJC,GAAI,EACJ91D,EA5BU,GA6BV87B,KAAM2+B,EACN3iH,MAAO,CAAEwqF,YAAa,GACtBlU,UAAWA,KAEf12E,EAAAA,EAAAA,KAAA,QACIiK,UAAU,SACV2zG,KAAM7zD,EAAO,EAAI,KAAKr7C,WACtBovG,GAAI,EACJD,IAAK9zD,EAAO,EAAI,KAAKr7C,WACrBqvG,GAAI,EACJ39G,MAAO,CAAEwqF,YAAa,GACtByzB,cAAc,QACd3nC,UAAWA,KAEf12E,EAAAA,EAAAA,KAAA,UACIiK,UAAU,WACVk0G,GAAI,EACJC,GAAI,EACJ91D,EA/CU,GAgDV87B,KAAK,QACL1N,UAAWA,EACXrrE,QAAQ,OACRjL,MAAO,CAAEuqF,OAAQq4B,EAAoBp4B,YAAa,MAEtD5qF,EAAAA,EAAAA,KAAA,KACIiK,UAAU,QACV8X,IAAG,KAAkBrT,WACrBy1E,IAAG,KAAkBz1E,WACrBrB,MA1DG,GA2DHwC,OA3DG,GA4DH6mE,UAAWwsC,EAAc16G,SACxBA,MAEL,EAICk+D,EAAQhjE,IAGb1D,EAAAA,EAAAA,KAACijH,EAAI,IAAKv/G,EAAOw/G,cAFC,mCAE6BrP,MAAO,CAAE5oG,KAAM,QAASzC,UACnExI,EAAAA,EAAAA,KAACmjH,EAAAA,EAAez8C,KAAI,MAKnBE,EAAeljE,IAGpB1D,EAAAA,EAAAA,KAACijH,EAAI,IAAKv/G,EAAOw/G,cAFC,mCAE6BrP,MAAO,CAAE5oG,KAAM,eAAgBzC,UAC1ExI,EAAAA,EAAAA,KAACmjH,EAAAA,EAAev8C,YAAW,MAK1BI,EAActjE,IAGnB1D,EAAAA,EAAAA,KAACijH,EAAI,IAAKv/G,EAAOw/G,cAFC,mCAE6BrP,MAAO,CAAE5oG,KAAM,cAAezC,UACzExI,EAAAA,EAAAA,KAACmjH,EAAAA,EAAen8C,WAAU,MAKzBF,EAAapjE,IAGlB1D,EAAAA,EAAAA,KAACijH,EAAI,IAAKv/G,EAAOw/G,cAFC,sCAE6BrP,MAAO,CAAE5oG,KAAM,aAAczC,UACxExI,EAAAA,EAAAA,KAACmjH,EAAAA,EAAer8C,UAAS,MAKxBM,EAAa1jE,IAGlB1D,EAAAA,EAAAA,KAACijH,EAAI,IAAKv/G,EAAOw/G,cAFC,mCAE6BrP,MAAO,CAAE5oG,KAAM,aAAczC,UACxExI,EAAAA,EAAAA,KAACmjH,EAAAA,EAAe/7C,UAAS,MAKxBm7C,EAAU7+G,IAGf1D,EAAAA,EAAAA,KAACijH,EAAI,IAAKv/G,EAAOw/G,cAFC,mCAE6BrP,MAAO,CAAE5oG,KAAM,UAAWzC,UACrExI,EAAAA,EAAAA,KAACmjH,EAAAA,EAAeZ,OAAM,MAKrBr7C,EAAWxjE,IAGhB1D,EAAAA,EAAAA,KAACijH,EAAI,IAAKv/G,EAAOw/G,cAFC,mCAE6BrP,MAAO,CAAE5oG,KAAM,WAAYzC,UACtExI,EAAAA,EAAAA,KAACmjH,EAAAA,EAAej8C,QAAO,MAKtBk8C,EAAU1/G,IAGf1D,EAAAA,EAAAA,KAACijH,EAAI,IAAKv/G,EAAOw/G,cAFC,sBAE6BrP,MAAO,CAAE5pG,UAAW,mBAAoBzB,UACnFxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOs0G,gBAAe,4EC3I5B,MAAMF,GAAAA,EACKz8C,KAAO,KAEbz6D,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,2fACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,qPALX04B,EAUKv8C,YAAc,KAEpB36D,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,w3BACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,qkDAdX04B,EAmBKn8C,WAAa,KAEnB/6D,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,0UACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,waACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,81BACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,4cACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,+mBA1BX04B,EA+BKr8C,UAAY,KAElB76D,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,iNACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,6jBACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,kLApCX04B,EAyCK/7C,UAAY,KAElBpnE,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,uwBA3CP04B,EA+CKZ,OAAS,KAEft2G,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,2KACF/T,UAAU,gEAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,mtEACF/T,UAAU,gEAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,2KACF/T,UAAU,gEAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,sgBACF/T,UAAU,gEAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,2KACF/T,UAAU,gEAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,8rEACF/T,UAAU,gEAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,0KACF/T,UAAU,kEA5EjBysC,EAkFKj8C,QAAU,KAEhBlnE,EAAAA,EAAAA,KAAA,WAAS2iF,OAAO,0XC7DrB,MAAM2gC,EAAkB5gH,IAA+C,IAAD6gH,EAAAlJ,EAAA,IAA7C,KAAE5tG,EAAI,SAAEm3E,GAAgClhF,EACpE,MAAM83G,GAAiBrE,EAAAA,EAAAA,MACjBn8F,EAAWvN,EAAKkgF,iBAChBm0B,EAAiB,aAAAhzG,OAAgBkM,EAAS+H,EAAC,KAAAjU,OAAIkM,EAASmqE,EAAC,MACzD,mBAAEuxB,EAAkB,MAAEpiD,EAAQ,KAAOu/C,EAAAA,EAAAA,MACrClpG,EAAkD,QAA9C45G,EAAGjwD,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAW7kD,EAAK6kD,gBAAO,IAAAiyD,OAAA,EAA3CA,EAA6C55G,KACpDY,EAAWmrG,IAAuBjpG,EAAK+1D,YACvC,OAAEu+C,EAAM,YAAEC,EAAW,SAAEC,EAAQ,SAAEN,EAAQ,YAAEO,EAAW,aAAEC,EAAY,SAAEC,GClBnC30G,KACzC,MAAMD,GAAMuuG,EAAAA,EAAAA,MACNvG,GAAW7nG,EAAAA,EAAAA,MACX0uG,GAAaC,EAAAA,EAAAA,MACb4F,GAAc3B,EAAAA,EAAAA,KACd3I,GAAWC,EAAAA,EAAAA,MACX2D,GAAiBrE,EAAAA,EAAAA,MAEjByE,EAAch6G,EAAAA,aACf04F,IACG,IAAK+hB,EAAWG,iBAAiBliB,KACxB4nB,EAAY1B,kBAAoBt2B,EAAAA,EAAawyB,KAAM,CACpD9E,EAAS3hG,MAAMzI,EAAI+P,YAEnBi+F,EAAelmG,OAAO,CAAEsnG,aAAa,EAAMp5C,WAAY/1D,EAAK+1D,aAE5D,MAAM,UAAEzB,EAAY,IAAOv0D,EAAI+P,WACzBinG,EAA4BrpE,EAAAA,EAAYC,MAAM2mB,EAAUhS,MAAMhtC,GAAMA,EAAEygD,aAAe/1D,EAAK+1D,cAChGh2D,EAAI8H,OAAO,CACP+D,OAAQ,CAAEmrG,4BAA2BnH,iBAAiB,EAAM/1B,MAAM,GAClExtB,KAAM,CAAEwgC,MAAO,8CAEnBpQ,EAAAA,EAAawyB,KAAOY,EAAAA,EAAQmH,wBAChC,CACJ,GAGJ,CAACvC,EAAY1B,kBAGXzK,EAAYn0G,EAAAA,aACb04F,IACG,IAAKkb,GAAYgG,EAAej+F,WAAWq/F,cAAgBsF,EAAY1B,gBAAiB,CACpF0B,EAAY5vG,OACZ,MAAM,mBAAEokG,GAAuBlpG,EAAI+P,WAC/Bm5F,IAAuBjpG,EAAK+1D,YAC5Bh2D,EAAIkwG,SAAS,CACTrkG,OAAQ,CAAEq9F,mBAAoBjpG,EAAK+1D,WAAY65C,iBAAiB,EAAO/1B,MAAM,KAGrFk0B,EAAeriB,QACfjP,EAAAA,EAAawyB,UAAOx0G,CACxB,IAGJ,CAACg6G,EAAY1B,gBAAiBhL,IAG5BS,EAAar0G,EAAAA,aACd04F,IACGA,EAAMgb,iBACF4M,EAAY1B,kBACZ0B,EAAYtB,QACZtmB,EAAMub,mBAEN2F,EAAej+F,WAAWq/F,cAAgBsF,EAAY1B,kBACtD0B,EAAY5vG,OACZ9E,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAEgkG,iBAAiB,EAAO/1B,MAAM,KACvDk0B,EAAeriB,QACfjP,EAAAA,EAAawyB,UAAOx0G,EACxB,GAGJ,CAACg6G,EAAY1B,kBAIXuB,EAASngH,EAAAA,aAAmB04F,IAC9B,IAAKpQ,EAAAA,EAAawyB,KAAM,CACpBwF,EAAYtB,QACZ,MAAM,UAAE7+C,EAAY,IAAOv0D,EAAI+P,WACzBmnG,EAAmB3iD,EAAUv0D,KAAK87C,IAChCA,EAAEka,aAAe/1D,EAAK+1D,aAAYla,EAAEg5D,UAAW,GAC5Ch5D,KAEX97C,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAE0oD,UAAW2iD,EAAkBrH,iBAAiB,EAAM/1B,MAAM,KACnFk0B,EAAelmG,OAAO,CAAEkuD,WAAY/1D,EAAK+1D,aACzC0mB,EAAAA,EAAawyB,KAAOY,EAAAA,EAAQmH,wBAChC,IAED,IAEGtC,GAAeZ,EAAAA,EAAAA,GAAoB,CACrCC,cAAeA,IAAMh0G,EAAIm3G,eAAel3G,EAAK+1D,cAsCjD,MAAO,CACHu+C,SACAE,SArCargH,EAAAA,aAAmB04F,IAC3BpQ,EAAAA,EAAawyB,OACdwF,EAAYtB,QACZpzG,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAEq9F,mBAAoBjpG,EAAK+1D,cACtD,GAED,IAgCCw+C,YA9BgBpgH,EAAAA,aAAmB04F,IACnC,IAAKpQ,EAAAA,EAAawyB,KAAM,CACpBwF,EAAYtB,QACZ,MAAM7+C,EAAYv0D,EAAI+P,WAAWwkD,WAAa,GACxC6iD,EAAe7iD,EAAUhS,MAAMzG,GAAMA,EAAEka,aAAe/1D,EAAK+1D,aAE3DvgE,EAAO4hH,EAAAA,EAAgBjC,WAAWgC,EAAc7iD,GAChD+iD,EAAcD,EAAAA,EAAgBE,eAAe,IAAKH,EAAc3hH,SAChE+hH,EAAmB,IAAIjjD,EAAW+iD,GACxCt3G,EAAIkwG,SAAS,CACTrkG,OAAQ,CAAE0oD,UAAWijD,EAAkB3H,iBAAiB,EAAM/1B,MAAM,GACpE6xB,aAAa,IAEjBqC,EAAelmG,OAAO,CAAEkuD,WAAYshD,EAAYthD,aAChD0mB,EAAAA,EAAawyB,KAAOY,EAAAA,EAAQM,2BAChC,IAED,IAcC+D,SAZa//G,EAAAA,aAAmB04F,IAC3BpQ,EAAAA,EAAawyB,OACdwF,EAAYtB,QACZuB,EAAaP,gBACjB,GAED,IAOCQ,SAAU,CACNtM,YAAa8F,EACb7F,YACAC,aAAc4F,EACd3F,cAEJiM,cACAC,eACH,EDnHG8C,CAA6Bx3G,GAC3B+nG,GAAW7nG,EAAAA,EAAAA,MACXg4C,GAAyF,KAAvC,QAAxC01D,EAACG,EAAeh5G,MAAM0iH,0BAAkB,IAAA7J,EAAAA,EAAI,IAAIj3F,QAAQ3W,EAAK+1D,YACvEx4D,EAAUi4G,EAAU,CACtBX,SAAU70G,EAAK60G,SACf/2G,WACAmxG,KAAMxyB,EAAAA,EAAawyB,KACnB93B,WACA4wB,WACA7vD,UACAw/D,gBAAiB3J,EAAeh5G,MAAMghE,aAAe/1D,EAAK+1D,WAC1D74D,SAGEq4G,EAAgBp+B,EAAW,CAAC,EAAIw9B,EAChCc,EAA+B,CAAE99B,KAAMggC,EAAAA,GAAqBz6G,GAAOghF,OAAQ05B,EAAAA,GAAoB16G,IACrG,OACIsC,EAAAA,EAAAA,MAACm2G,EAAY,CACT91G,GAAIqvF,EAAAA,GAASn5B,WAAW/1D,EAAK6kD,QAC7BrnD,UAAW0xF,EAAAA,GAASsX,MAAMxmG,EAAK6kD,QAC/B,kBAAiB7kD,EAAK+1D,WAAWh6D,SAAA,EACjCyD,EAAAA,EAAAA,MAACq2G,EAAK,CACFliH,MAAOwjF,EAAWs+B,EAAgB,CAAC,EACnCj4G,UAAWD,EAAQa,KACnB6rE,UAAWoqC,EACX74G,IAAKi5G,EAAYnqB,gBACbirB,EAAax5G,SAAA,EACjBxI,EAAAA,EAAAA,KAAA,WACI2iF,OAAQl2E,EAAKy7E,OAAQ17E,IAAI4uF,EAAAA,IAAa7jB,KAAK,KAC3CqT,YAAa,EACbE,gBAAgB,OAChB,kBAAiBr+E,EAAKo2E,WAAYr2E,IAAI4uF,EAAAA,IAAa7jB,KAAK,QAE5DtrE,EAAAA,EAAAA,MAAA,KAAAzD,SAAA,EACIxI,EAAAA,EAAAA,KAAA,UAAQsoD,EAAG,GAAI87B,KAAK,WACpBn4E,EAAAA,EAAAA,MAAA,KAAGhC,UAAU,gBAAezB,SAAA,CAEvBiE,EAAK9C,OAAS49D,EAAAA,EAAaC,gBAAiBxnE,EAAAA,EAAAA,KAACskH,EAAAA,GAAyB,IACtE73G,EAAK9C,OAAS49D,EAAAA,EAAaG,iBAAkB1nE,EAAAA,EAAAA,KAACskH,EAAAA,GAA0B,IACxE73G,EAAK9C,OAAS49D,EAAAA,EAAaK,WAAY5nE,EAAAA,EAAAA,KAACskH,EAAAA,GAAoB,IAC5D73G,EAAK9C,OAAS49D,EAAAA,EAAaO,mBAAoB9nE,EAAAA,EAAAA,KAACskH,EAAAA,GAA4B,IAC5E73G,EAAK9C,OAAS49D,EAAAA,EAAaS,OAAQhoE,EAAAA,EAAAA,KAACskH,EAAAA,GAAgB,IACpD73G,EAAK9C,OAAS49D,EAAAA,EAAaW,YAAaloE,EAAAA,EAAAA,KAACskH,EAAAA,GAAqB,IAC9D73G,EAAK9C,OAAS49D,EAAAA,EAAaL,UAAWlnE,EAAAA,EAAAA,KAACskH,EAAAA,GAAmB,IAC1D73G,EAAK9C,OAAS49D,EAAAA,EAAac,SAAUroE,EAAAA,EAAAA,KAACskH,EAAAA,GAAkB,IACxD73G,EAAK9C,OAAS49D,EAAAA,EAAagB,UAAWvoE,EAAAA,EAAAA,KAACskH,EAAAA,GAAmB,IAC1D73G,EAAK9C,OAAS49D,EAAAA,EAAakB,eAAgBzoE,EAAAA,EAAAA,KAACskH,EAAAA,GAAwB,IACpE73G,EAAK9C,OAAS49D,EAAAA,EAAaoB,aAAc3oE,EAAAA,EAAAA,KAACskH,EAAAA,GAAsB,IAEhE73G,EAAK9C,OAAS49D,EAAAA,EAAab,OAAQ1mE,EAAAA,EAAAA,KAACskH,EAAAA,GAAgB,IACpD73G,EAAK9C,OAAS49D,EAAAA,EAAag7C,SAAUviH,EAAAA,EAAAA,KAACskH,EAAAA,GAAkB,IACxD73G,EAAK9C,OAAS49D,EAAAA,EAAag9C,aAAcvkH,EAAAA,EAAAA,KAACskH,EAAAA,GAAsB,QAEnE1gC,IAAY5jF,EAAAA,EAAAA,KAACskH,EAAAA,GAAkB,QAErCr4G,EAAAA,EAAAA,MAACi1G,EAAYpB,UAAS,CAAAt3G,SAAA,EAClBxI,EAAAA,EAAAA,KAACwiH,EAAAA,GAAsB,CAACnxG,QAAS4vG,KACjCjhH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,KACxBxiH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAoB,CAACnxG,QAAS0vG,KAC/B/gH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,KACxBxiH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAyB,CAACnxG,QAAS2vG,KACpChhH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,KACxBxiH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAsB,CAACnxG,QAASsvG,UAGxCQ,EAAaV,aACVzgH,EAAAA,EAAAA,KAAC6R,EAAAA,EAAiB,CACdH,MAAM,yBACNO,SAAQ,gCAAAnE,OAA8BrB,EAAKxK,KAAI,KAC/CkQ,WAAYgvG,EAAaR,SACzBhuG,UAAWA,IAAMwuG,EAAavB,MAAM,kBACpChtG,QAASA,IAAMuuG,EAAavB,MAAM,gBAClC6C,oBAAoB,EACpB5vG,aAAW,MAGR,EAIjBuvG,GAAex1G,EAAAA,EAAAA,GAAO,IAAPA,CAAY,CAAC,GAC5B01G,GAAQ11G,EAAAA,EAAAA,GAAO,IAAPA,CAAY,CAAEiO,OAAQ,UAAW8vE,OAAQ,YAajDs3B,GAAYS,EAAAA,EAAAA,GAA+B,CAC7C73G,KAAOnH,IAAkB,CACrBmX,OAAQnX,EAAMkgF,SAAW,UAAY,OACrC,oBAAqB,CAAEv4E,QAAS3H,EAAM49G,SAAW,SAAW,QAC5D,mBAAoB,CAAEj2G,QAAS3H,EAAM49G,SAAW,OAAS,UACzD,UACI59G,EAAMg4G,OAASY,EAAAA,EAAQM,6BACtBl5G,EAAMkgF,UACNlgF,EAAM8wG,UACN9wG,EAAMygH,gBAQD,CAAC,EAPD,CACI,oBAAqB,CAAE94G,QAAS,UAChC,mBAAoB,CAAEA,QAAS,QAC/B+4E,KAAM1gF,EAAMihD,QACN6/D,EAAAA,GAAsB9gH,EAAMiG,MAC5B86G,EAAAA,GAA6B/gH,EAAMiG,OAGvDy6E,KAAMsgC,EAAShhH,EAAM6G,SAAW7G,EAAM49G,SAAW59G,EAAMkgF,SAAWlgF,EAAMihD,QAAUjhD,EAAMiG,MACxFghF,OAAQ05B,EAAAA,GAAoB3gH,EAAMiG,UAGpC+6G,EAAWA,CAACn6G,EAAmB+2G,EAAmB19B,EAAmBj/B,EAAkBh7C,IACpFg7C,IAAY28D,IAAY/2G,EACxBo6C,EACD28D,GACA/2G,EADiBi6G,EAAAA,GAAsB76G,GAEtBy6G,EAAAA,GAAqBz6G,GAHrBg7G,EAAAA,GAAqBh7G,GADK86G,EAAAA,GAA6B96G,GE9InEi7G,EAAkBA,KAC3B,MAAM,KAAEj7G,EAAI,UAAEo3D,EAAY,GAAE,MAAEzN,EAAQ,KAAOu/C,EAAAA,EAAAA,MACvCpgD,EAAUa,EAAMzzC,QAAQojD,GAASA,EAAKt5D,OAASA,IAAM6C,KAAKy2D,GAASA,EAAK3R,SACxE0kD,EAAqBj1C,EAAUlhD,QAAQpT,GAASgmD,EAAQxe,SAASxnC,EAAK6kD,UAAa7kD,EAAK6kD,SAC9F,OAAOtxD,EAAAA,EAAAA,KAAC8jF,EAAe,CAAC/iB,UAAWi1C,GAAsB,EAGhDlyB,EAAkBphF,IAAoE,IAAnE,SAAEkhF,EAAQ,OAAEtyB,EAAM,UAAEyP,EAAY,GAAE,KAAEp3D,GAAyBjH,EACzF,MAAM,MAAE4wD,EAAQ,KAAOu/C,EAAAA,EAAAA,MACvB,IAAImD,EAAqBj1C,EACzB,GAAIp3D,EAAM,CACN,MAAM8oD,EAAUa,EAAMzzC,QAAQojD,GAASA,EAAKt5D,OAASA,IAAM6C,KAAKy2D,GAASA,EAAK3R,SAC9E0kD,EAAqBj1C,EAAUlhD,QAAQpT,GAASgmD,EAAQxe,SAASxnC,EAAK6kD,UAAa7kD,EAAK6kD,QAC5F,CACA,OACItxD,EAAAA,EAAAA,KAACY,EAAAA,SAAc,CAAA4H,SACVwtG,EACIn2F,QAAQpT,IAAU6kD,GAAS7kD,EAAK6kD,SAAWA,IAC3C9kD,KAAKo4D,IACF5kE,EAAAA,EAAAA,KAAC6kH,EAAW,CAA2Bp4G,KAAMm4D,EAAUgf,SAAUA,GAA/Chf,EAASpC,eAEtB,EAKnBqiD,EAAc52G,IAA2C,IAA1C,KAAExB,EAAI,SAAEm3E,GAA4B31E,EACrD,OACIjO,EAAAA,EAAAA,KAACY,EAAAA,SAAc,CAAA4H,UACXxI,EAAAA,EAAAA,KAACsjH,EAAe,CAAuB72G,KAAMA,EAAMm3E,SAAUA,GAAvCn3E,EAAK+1D,aACd,qRCjCzB,MAAMsiD,EAAY,UACLL,EAA+B,CAAE,CAACvgD,EAAAA,GAASC,KAAM,UAAW,CAACD,EAAAA,GAASG,MAAO,WAC7EsgD,EAAuB,CAAE,CAACzgD,EAAAA,GAASC,KAAM,UAAW,CAACD,EAAAA,GAASG,MAAO,WAErE+/C,EAAuB,CAAE,CAAClgD,EAAAA,GAASC,KAAM,UAAW,CAACD,EAAAA,GAASG,MAAO,WACrEmgD,EAAwB,CAAE,CAACtgD,EAAAA,GAASC,KAAM,UAAW,CAACD,EAAAA,GAASG,MAAO,WACtEggD,EAAsB,CAAE,CAACngD,EAAAA,GAASC,KAAM,UAAW,CAACD,EAAAA,GAASG,MAAO,WAE3E0gD,EAA2CriH,IAA6B,IAA5B,SAAE8F,KAAaqrG,GAAOnxG,EACpE,OAAO1C,EAAAA,EAAAA,KAAA,QAAO6zG,EAAKrrG,SAAGA,GAAa,EAG1Bg/D,EAAgBA,KAErBv7D,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,sBAAsB0N,KAAM0gC,EAAWn6B,OAAO,cAAaniF,SAAA,EACvExI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,6yCACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,ikCAIP/iB,EAAiBA,KAEtBz7D,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,sBAAsB0N,KAAM0gC,EAAWn6B,OAAO,cAAaniF,SAAA,EACvExI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,klDACF/T,UAAU,yEAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,kWACF/T,UAAU,yEAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,yNACF/T,UAAU,2EAKb9O,EAAWA,KAEhB37D,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,sBAAsB0N,KAAM0gC,EAAWn6B,OAAO,cAAaniF,SAAA,EACvExI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,mSACF/T,UAAU,2EAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,uKACF/T,UAAU,2EAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,yhCACF/T,UAAU,2EAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,8WACF/T,UAAU,6EAKb5O,EAAmBA,KAExB77D,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,sBAAsB0N,KAAM0gC,EAAWn6B,OAAO,cAAaniF,SAAA,EACvExI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,yuBACF/T,UAAU,2GAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,sgBACF/T,UAAU,2GAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,o/CACF/T,UAAU,6GAKb1O,EAAOA,KAEZ/7D,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,sBAAsB0N,KAAK,cAAcuG,OAAQm6B,EAAUt8G,SAAA,EACvExI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,gGACF/T,UAAU,uCAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,wHACF/T,UAAU,uCAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,8HACF/T,UAAU,uCAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,ulBACF/T,UAAU,yCAKbxO,EAAYA,KAEjBj8D,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,sBAAsB0N,KAAM0gC,EAAWn6B,OAAO,cAAaniF,SAAA,EACvExI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,8HACF/T,UAAU,2EAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,86CACF/T,UAAU,2EAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,kIACF/T,UAAU,6EAKbxP,EAAUA,KAEfj7D,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,sBAAsB0N,KAAK,cAAcuG,OAAQm6B,EAAUt8G,SAAA,EACvExI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,gGACF/T,UAAU,uCAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,mHACF/T,UAAU,uCAEd12E,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,gEACF/T,UAAU,yCAKbrO,EAASA,KAEdroE,EAAAA,EAAAA,KAAC+kH,EAAI,CAACruC,UAAU,sBAAsB0N,KAAM0gC,EAAWn6B,OAAO,cAAaniF,UACvExI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,wSACFrG,KAAK,OACL,YAAU,cAKb7b,EAAUA,KAEft8D,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,sBAAsB0N,KAAK,cAAcuG,OAAQm6B,EAAUt8G,SAAA,EACvExI,EAAAA,EAAAA,KAAA,QAAM4qF,YAAY,OAAOo6B,eAAe,QAAQv6B,EAAE,4CAClDzqF,EAAAA,EAAAA,KAAA,QACI4qF,YAAY,OACZyzB,cAAc,QACd2G,eAAe,QACfv6B,EAAE,wDAENzqF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,qEACFG,YAAY,OACZE,gBAAgB,yCAEpB9qF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,6BAIPhiB,EAAeA,KACxB,MAAMw8C,EAAaC,IAEXllH,EAAAA,EAAAA,KAAA,QACI2qF,OAAO,QACPC,YAAY,WACZu6B,iBAAiB,KACjB9G,cAAc,QACd2G,eAAe,WACXE,IAIhB,OACIj5G,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,kCAAkC0N,KAAK,cAAcuG,OAAQm6B,EAAUt8G,SAAA,EACnFxI,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,oKACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,sFACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,6DACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,6DACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,6DACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,6DACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,oNACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,2PACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,6EACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,oKACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,gNACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,sEACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,qYACbzqF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,2NACbx+E,EAAAA,EAAAA,MAAA,KAAGm5G,SAAS,uBAAsB58G,SAAA,EAC9BxI,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,2BAA2BG,YAAY,cACpD5qF,EAAAA,EAAAA,KAAA,QACIsM,GAAG,iBAEHlM,MAAO,CAAEilH,SAAU,aACnBC,UAAU,iBACVvjG,EAAE,KACFoiE,EAAE,IACF92E,MAAM,KACNwC,OAAO,KAAIrH,UACXxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,mDAAmDrG,KAAK,aAEpEn4E,EAAAA,EAAAA,MAAA,KAAGs5G,KAAK,uBAAsB/8G,SAAA,EAC1BxI,EAAAA,EAAAA,KAACilH,EAAS,CACNx6B,EAAE,2IACFG,YAAY,cAEhB5qF,EAAAA,EAAAA,KAACilH,EAAS,CACNx6B,EAAE,2IACFG,YAAY,cAEhB5qF,EAAAA,EAAAA,KAACilH,EAAS,CACNx6B,EAAE,+OACFG,YAAY,cAEhB5qF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,2BAA2BG,YAAY,cACpD5qF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,2BAA2BG,YAAY,cACpD5qF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,2BAA2BG,YAAY,cACpD5qF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,2BAA2BG,YAAY,cACpD5qF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,0BAA0BG,YAAY,cACnD5qF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,2BAA2BG,YAAY,cACpD5qF,EAAAA,EAAAA,KAACilH,EAAS,CAACx6B,EAAE,2BAA2BG,YAAY,cACpD5qF,EAAAA,EAAAA,KAACilH,EAAS,CACNx6B,EAAE,mIACFG,YAAY,cAEhB5qF,EAAAA,EAAAA,KAACilH,EAAS,CACNx6B,EAAE,iIACFG,YAAY,cAEhB5qF,EAAAA,EAAAA,KAACilH,EAAS,CACNx6B,EAAE,mIACFG,YAAY,cAEhB5qF,EAAAA,EAAAA,KAACilH,EAAS,CACNx6B,EAAE,iJACFG,YAAY,oBAIxB5qF,EAAAA,EAAAA,KAAA,QAAAwI,UACIxI,EAAAA,EAAAA,KAAA,YAAUsM,GAAG,iBAAgB9D,UACzBxI,EAAAA,EAAAA,KAAA,QAAMqN,MAAM,UAAUwC,OAAO,UAAUu0E,KAAK,QAAQ1N,UAAU,qCAGnE,EAGF/N,EAAaA,KAElB18D,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,sBAAsB0N,KAAK,cAAcuG,OAAQm6B,EAAUt8G,SAAA,EACvEyD,EAAAA,EAAAA,MAAA,KAAGm5G,SAAS,uBAAsB58G,SAAA,EAC9BxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,8SACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,+/DACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,8NACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,gOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,6NACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,mOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,kOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,gOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,qOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,uOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,iOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,oOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,iOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,uOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,4NACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,8NACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,0NACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,gOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,oOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,8NACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,8NACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,uOACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,2NACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,8NACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,qNACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,iOAEZzqF,EAAAA,EAAAA,KAAA,QAAAwI,UACIxI,EAAAA,EAAAA,KAAA,YAAUsM,GAAG,iBAAgB9D,UACzBxI,EAAAA,EAAAA,KAAA,QAAMqN,MAAM,KAAKwC,OAAO,KAAKu0E,KAAK,iBAOzCg/B,EAASA,KAEdpjH,EAAAA,EAAAA,KAAC+kH,EAAI,CAACruC,UAAU,sBAAsB0N,KAAK,cAAcuG,OAAO,cAAc1gF,UAAU,iBAAgBzB,UACpGxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOs0G,gBAAe,MAKtB38C,EAAOA,KAEZ1mE,EAAAA,EAAAA,KAAC+kH,EAAI,CAACruC,UAAU,kCAAkC0N,KAAK,cAAcuG,OAAQm6B,EAAUt8G,UACnFxI,EAAAA,EAAAA,KAACmjH,EAAAA,EAAez8C,KAAI,MAKnB67C,EAASA,KAEdviH,EAAAA,EAAAA,KAAC+kH,EAAI,CAACruC,UAAU,kCAAiCluE,UAC7CyD,EAAAA,EAAAA,MAAA,KAAG0+E,OAAQm6B,EAAUt8G,SAAA,EACjBxI,EAAAA,EAAAA,KAAA,QACI,YAAU,UACV,YAAU,UACVyqF,EAAE,wKAENzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,sJACRzqF,EAAAA,EAAAA,KAAA,QACI,YAAU,UACV,YAAU,UACVyqF,EAAE,uuBAENzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,2MACRzqF,EAAAA,EAAAA,KAAA,QACI,YAAU,UACV,YAAU,UACVyqF,EAAE,4xBAENzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,uJACRzqF,EAAAA,EAAAA,KAAA,QACI,YAAU,UACV,YAAU,UACVyqF,EAAE,ggBAENzqF,EAAAA,EAAAA,KAAA,QACI,YAAU,UACV,YAAU,UACVyqF,EAAE,8KAENzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,+IACRzqF,EAAAA,EAAAA,KAAA,QACI,YAAU,UACV,YAAU,UACVyqF,EAAE,wwBAENzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,qNACRzqF,EAAAA,EAAAA,KAAA,QACI,YAAU,UACV,YAAU,UACVyqF,EAAE,mvBAENzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,qJAMX85B,EAAaA,KAElBt4G,EAAAA,EAAAA,MAAC84G,EAAI,CAACruC,UAAU,iCAAgCluE,SAAA,EAC5CxI,EAAAA,EAAAA,KAAA,KAAG,YAAU,UAAU2qF,OAAO,OAAMniF,UAChCxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,yYAEZzqF,EAAAA,EAAAA,KAAA,QAAAwI,UACIxI,EAAAA,EAAAA,KAAA,YAAUsM,GAAG,IAAG9D,UACZxI,EAAAA,EAAAA,KAAA,QAAMokF,KAAK,OAAOqG,EAAE,+ZClVxC,MAAM+6B,EAAkB,GASXC,EAAc/iH,IAA0C,IAAzC,SAAEkhF,EAAQ,OAAEtyB,GAAuB5uD,EAC3D,MAAM,MAAE4wD,EAAQ,GAAE,eAAEmiD,IAAmB5C,EAAAA,EAAAA,MACvC,OAAO7yG,EAAAA,EAAAA,KAAC+jF,EAAW,CAACzwB,MAAOA,EAAOswB,SAAUA,EAAU6xB,eAAgBA,EAAgBnkD,OAAQA,GAAU,EAG/FyyB,EAAc91E,IAA4E,IAA3E,SAAE21E,EAAQ,OAAEtyB,EAAM,MAAEgC,EAAQ,GAAE,eAAEmiD,EAAc,KAAE9rG,GAAqBsE,EAC7F,MAAQtE,KAAMwwG,IAAgBtH,EAAAA,EAAAA,MAC9B,OACI7yG,EAAAA,EAAAA,KAACY,EAAAA,SAAc,CAAA4H,SACV8qD,EACIzzC,QAAQojD,GAAS2gB,GAAY3gB,EAAKt5D,QAAUA,GAAQwwG,KACpDt6F,QAAQpT,IAAU6kD,GAAS7kD,EAAK6kD,SAAWA,IAC3C9kD,KAAKy2D,IAAU,IAADyiD,EAAAC,EACX,MAAMC,EAAWC,EAAAA,EAAeC,UAAU,CAAY,QAAZJ,EAACziD,EAAKilB,cAAM,IAAAw9B,OAAA,EAAXA,EAAal5G,KAAKgkD,GAAM,CAACA,EAAEzuC,EAAGyuC,EAAE2zB,MAAM,GACjF,OACInkF,EAAAA,EAAAA,KAAC+lH,EAAe,CAAAv9G,UACZxI,EAAAA,EAAAA,KAACgmH,EAAO,CACJ/iD,KAAMA,EACN2iD,SAAUA,EACVr7G,SAAU04D,EAAK3R,SAAWmkD,EAC1B9rG,KAA2B,QAAvBg8G,EAAE1iD,EAAKgjD,wBAAgB,IAAAN,OAAA,EAArBA,EAAuBO,cAC7BtiC,SAAUA,KANI3gB,EAAK3R,OAQT,KAGjB,EAMnB00D,EAAUrqG,IAAgF,IAAD0sE,EAAA89B,EAAA79B,EAAAC,EAAA,IAA9E,KAAEtlB,EAAI,SAAE2iD,EAAQ,SAAEr7G,EAAQ,KAAEZ,EAAOy8G,EAAAA,EAAQC,KAAI,SAAEziC,GAAwBjoE,EACtF,MAAMC,GAAYC,EAAAA,EAAAA,KACZyqG,GAAWC,EAAAA,EAAAA,KACXC,EAAiBC,IACjBj6G,GAAMuuG,EAAAA,EAAAA,MACNvG,GAAW7nG,EAAAA,EAAAA,MAEX+5G,EAAwBlyG,QAC1BoH,GAAaqnD,EAAKk4B,oBAAkD,QAAjC9S,EAAIplB,EAAKtP,gCAAwB,IAAA00B,OAAA,EAA7BA,EAA+BriC,eAEpE2gE,EAAkBnyG,QAA4B,QAArB2xG,EAACK,EAAehlH,aAAK,IAAA2kH,OAAA,EAApBA,EAAsBS,UAEhDC,EAAoBF,GAAmBD,EAGvCI,EAAmBljC,EAAW,EAAI,GAElCmjC,EAAiBnjC,EAAW,EAAI4hC,EAChCr9B,EAAS,CACXpmE,EAAG6jG,EAAS7jG,EACZoiE,EACIyhC,EAASzhC,GACR0iC,EAAoB,GAAK,GAC1BG,EACAF,EAAmB,EACnBG,EACAF,EAAiB,GAGnB3T,EAAYrwB,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQ1f,EAAKilB,SAC3D76E,EAAQimG,EAAAA,EAAKC,QAAQ,CAAExxF,EAAGqxF,EAAKjwB,KAAMgB,EAAGivB,EAAKhwB,MAAQ,CAAErhE,EAAGqxF,EAAK/vB,KAAMc,EAAGivB,EAAKhwB,OAC7EvzE,EAASyjG,EAAAA,EAAKC,QAAQ,CAAExxF,EAAGqxF,EAAKjwB,KAAMgB,EAAGivB,EAAKhwB,MAAQ,CAAErhE,EAAGqxF,EAAKjwB,KAAMgB,EAAGivB,EAAK9vB,OAC9E4jC,EAAqC,IAA1B/6D,KAAKklB,IAAIhkE,EAAOwC,GAAiB,GAC5CouG,EAAQiJ,EAAU,GAAK,GAAMA,EAAU,IAAM,GAAMA,EAAU,IAAM,GAAMA,EAAU,IAAM,GAAM,EAE/FC,GAAuB,GACvBC,EAA4B,CAAErlG,EAAG2kG,EAAwBS,EAAmB,GAAKA,EAAkBhjC,EAAG,GACtGkjC,EAAwC,CAC1CtlG,EAAG4kG,EAAkBQ,EAAmB,GAAK,EAAIA,EACjDhjC,EAAG,GAIDmjC,EAAgC,CAAEvlG,EAAG,EAAGoiE,EAAG0iC,EARb,GAQoD,GAD5E,EACuF,GAE7FU,EAAsC3jC,EACtC,CAAE7hE,EAAG,EAAGoiE,EAAGmjC,EAAkBnjC,GAC7B,CAAEpiE,EAAG,EAAGoiE,EAAGlhB,EAAKhhE,KAAOqlH,EAAkBnjC,EAAI,GAAK,GAElDqjC,EAAuC5jC,EACvC,CAAE7hE,EAAG,EAAGoiE,EAAGmjC,EAAkBnjC,EAAI,GAR3B,GASN,CAAEpiE,EAAG,EAAGoiE,EAAGojC,EAAwBpjC,EAAI,GATjC,GAUNsjC,EAA2B,CAC7B1lG,EAAG,EACHoiE,GAAIlhB,EAAKykD,aAAeF,EAAyBrjC,EAAIojC,EAAwBpjC,GAZrE,GAsDZ,OACInkF,EAAAA,EAAAA,KAAA,KAAGsM,GAAIqvF,EAAAA,GAASgsB,WAAW1kD,EAAK3R,QAAUrnD,UAAW0xF,EAAAA,GAASsX,MAAMhwC,EAAK3R,QAAS9oD,UAC9EyD,EAAAA,EAAAA,MAAA,KAAGyqE,UAAS,aAAA5oE,OAAeq6E,EAAOpmE,EAAC,KAAAjU,OAAIq6E,EAAOhE,EAAC,YAAAr2E,OAAWmwG,EAAK,KAAIz1G,SAAA,EAC7Do7E,IAAY5jF,EAAAA,EAAAA,KAAC4nH,EAAgB,CAAC3kD,KAAMA,EAAM2wC,IAAKwT,EAAe/1G,QAtBhDw2G,KAAO,IAADC,EAC9Bt7G,EAAIkwG,SAAS,CACTrkG,OAAQ,CACJo9F,eAAgBxyC,EAAK3R,OACrBgC,MAAsB,QAAjBw0D,EAAEt7G,EAAIhL,MAAM8xD,aAAK,IAAAw0D,OAAA,EAAfA,EAAiBt7G,KAAKuV,GACrBA,EAAEuvC,SAAW2R,EAAK3R,OACX,IAAKvvC,EAAGgmG,aAAc,CAAEC,OAAO,IAEnCjmG,KAGfkmG,YAAaA,KACT5gH,YAAW,KACPi/G,EAAS4B,YAAYC,EAAAA,EAASC,GAAIC,EAAAA,EAAYC,iBAAkB9T,EAAS,GAC1E2T,EAAAA,EAASI,WAAW,GAE7B,IAOO7B,IACGz6G,EAAAA,EAAAA,MAACu8G,EAAU,CAACn3G,QA3CHo3G,KAAO,IAADh2B,EAC3BjmF,EAAIkwG,SAAS,CACTrkG,OAAQ,CACJo9F,eAAgBxyC,EAAK3R,OACrBgC,MAAsB,QAAjBm/B,EAAEjmF,EAAIhL,MAAM8xD,aAAK,IAAAm/B,OAAA,EAAfA,EAAiBjmF,KAAKuV,GACrBA,EAAEuvC,SAAW2R,EAAK3R,OACX,IAAKvvC,EAAGgmG,aAAc,CAAE5lD,eAAe,IAE3CpgD,KAGfkmG,YAAaA,KACT5gH,YAAW,KACPi/G,EAAS4B,YAAYC,EAAAA,EAASC,GAAIC,EAAAA,EAAYx0B,kBAAmB2gB,EAAS,GAC3E2T,EAAAA,EAASI,WAAW,GAE7B,EA2BgD//G,SAAA,EAClCxI,EAAAA,EAAAA,KAAA,UAAQm+G,GAAI,GAAIC,GAAI,GAAI91D,EAAG,GAAI87B,KAAK,iBACpCpkF,EAAAA,EAAAA,KAAA,KACI02E,UAAS,aAAA5oE,OAAeu5G,EAA0BtlG,EAAC,MAAAjU,OAAKu5G,EAA0BljC,EAAC,iBAAgB37E,UACnGxI,EAAAA,EAAAA,KAAC0oH,EAAAA,EAAqB,CAClBx5B,UAAWjsB,EAAKk4B,kBAChBr8B,YAAalS,EAAAA,EAAc4F,eAAeyQ,EAAKtP,yBAA0B3N,cACzEtiD,MAAO,CAAE2mF,UAAW9/E,EAAW,eAAYrD,UAK1D+7D,EAAKhhE,OACFjC,EAAAA,EAAAA,KAAC2oH,EAAa,CAAC1lD,KAAMA,EAAM2wC,IAAK0T,EAAmB/8G,SAAUA,EAAUq5E,SAAUA,KAEnFA,IACE5jF,EAAAA,EAAAA,KAAC4oH,EAAe,CAACj/G,KAAMA,EAAMs5D,KAAMA,EAAM2wC,IAAK2T,EAAyBh9G,SAAUA,IAEpF04D,EAAKykD,eACF1nH,EAAAA,EAAAA,KAAC6oH,EAAa,CAAC5lD,KAAMA,EAAM2wC,IAAK4T,EAA0Bj9G,SAAUA,EAAUq5E,SAAUA,IAE3FA,IAAyC,QAAjC0E,EAAIrlB,EAAKtP,gCAAwB,IAAA20B,GAAc,QAAdC,EAA7BD,EAA+BtiC,oBAAY,IAAAuiC,OAAd,EAA7BA,EAA6CxqC,QACtD/9C,EAAAA,EAAAA,KAAA,QACImkF,EAAGqjC,EAAyBrjC,EAAI,GAChCE,WAAW,SACXx3E,WAAYC,EAAAA,EAASC,MAAMsD,qBAAqB7H,SAC/Cy6D,EAAKtP,yBAAyB3N,aAAajI,QAGlD6lC,IAAY5jF,EAAAA,EAAAA,KAAC8oH,EAAQ,CAAC7lD,KAAMA,EAAM2wC,IAAK6T,EAAcl9G,SAAUA,QAErE,EAINi+G,GAAa57G,EAAAA,EAAAA,GAAO,IAAPA,CAAY,CAAEiO,OAAQ,YAGnC8tG,EAAgB1iD,IAAqD,IAApD,KAAEhD,EAAI,IAAE2wC,EAAG,SAAErpG,EAAQ,SAAEq5E,GAAuB3d,EACjE,IAAK2tC,EACD,OAAO,KAGX,MAAMxzG,EAAuB,CACzBgN,WAAY,IACZH,SAAU,GACVm3E,MAAOR,GAAYr5E,EAAW,UAAY,UAC1CkrF,cAAe,OACfszB,YAAa,QAGXn1G,EAAQo1G,EAAqB/lD,EAAKhhE,KAAM,IAC9C,OACIgK,EAAAA,EAAAA,MAAA,QAAM8V,EAAG6xF,EAAI7xF,EAAGoiE,EAAGyvB,EAAIzvB,EAAG/jF,MAAOA,EAAOikF,WAAW,SAASx3E,WAAYC,EAAAA,EAASC,MAAMsD,qBAAqB7H,SAAA,CACvGoL,GACD5T,EAAAA,EAAAA,KAAA,SAAAwI,SAAQy6D,EAAKhhE,SACV,EAIT2mH,EAAkBt+C,IAAqD,IAApD,IAAEspC,EAAG,KAAEjqG,GAAuC2gE,EACnE,IAAKspC,EACD,OAAO,KAGX,MAAMqV,EAAiC,CACnCxzB,cAAe,QAGbyzB,EAA2B,CAC7B97G,WAAY,IACZH,SAAU,QACVk8G,cAAe,YACf1zB,cAAe,QAGnB,OAAQ9rF,GACJ,KAAKy8G,EAAAA,EAAQC,KACT6C,EAAU9kC,KAAO,UACjB6kC,EAAgB7kC,KAAO,UACvB,MACJ,KAAKgiC,EAAAA,EAAQgD,KACTF,EAAU9kC,KAAO,QACjB6kC,EAAgB7kC,KAAO,UACvB,MACJ,KAAKgiC,EAAAA,EAAQrkH,MACTmnH,EAAU9kC,KAAO,UACjB6kC,EAAgB7kC,KAAO,YAI/B,OACIn4E,EAAAA,EAAAA,MAAA,KAAAzD,SAAA,CACKmB,IAASy8G,EAAAA,EAAQrkH,QAAS/B,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOs6G,UAAS,CAACC,KAAM,CAAEvnG,EAAG6xF,EAAI7xF,EAAI,GAAIoiE,EAAGyvB,EAAIzvB,EAAI,MAC/EnkF,EAAAA,EAAAA,KAAA,QAAMI,MAAO6oH,EAAiB57G,MAAO,GAAIwC,OAAQ,GAAIkS,EAAG6xF,EAAI7xF,EAAI,GAAQoiE,EAAGyvB,EAAIzvB,EAAI,QACnFnkF,EAAAA,EAAAA,KAAA,QAAMI,MAAO8oH,EAAW7kC,WAAW,SAAStiE,EAAGpY,IAASy8G,EAAAA,EAAQrkH,MAAQ6xG,EAAI7xF,EAAI,EAAI6xF,EAAI7xF,EAAGoiE,EAAGyvB,EAAIzvB,EAAI,EAAE37E,SACnGuJ,EAAAA,GAAKC,IAAI,WAADlE,OAAYnE,QAEzB,EAINk/G,EAAgB92C,IAAqD,IAADw3C,EAAA,IAAnD,KAAEtmD,EAAI,IAAE2wC,EAAG,SAAErpG,EAAQ,SAAEq5E,GAAuB7R,EACjE,MAAMkX,EAAQC,EAAAA,EAAaD,MAErBugC,EAAUlxG,IAAkBA,GAAQ2wE,EAAQA,IAAQ94B,QAAQ,GAC5D/vD,EAAuB,CACzBgN,WAAY,IACZH,SAAU,GACVm3E,MAAOR,GAAYr5E,EAAW,UAAY,UAC1CkrF,cAAe,OACfszB,YAAa,QAGjB,OACI/oH,EAAAA,EAAAA,KAAA,QAAM+hB,EAAG6xF,EAAI7xF,EAAGoiE,EAAGyvB,EAAIzvB,EAAG/jF,MAAOA,EAAOikF,WAAW,SAASx3E,WAAYC,EAAAA,EAASC,MAAMsD,qBAAqB7H,UACzF,QAAd+gH,EAAAtmD,EAAKlC,iBAAS,IAAAwoD,OAAA,EAAdA,EAAgBhwG,QAAU,GACvBvZ,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CACJrF,GAAG,wBACH+L,OAAQ,CACJC,KAAMkxG,EAAOvmD,EAAK3qD,MAClBmxG,qBAAsBD,EAAOvmD,EAAKwmD,sBAAwBxmD,EAAK3qD,UAIvEtY,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,YAAY+L,OAAQ,CAAEC,KAAMkxG,EAAOvmD,EAAK3qD,UAErD,EAITwwG,EAAWvyB,IAAiC,IAAhC,KAAEtzB,EAAI,IAAE2wC,GAAkBrd,EACxC,MAAM/pF,GAAMuuG,EAAAA,EAAAA,MACNmG,GAAc3B,EAAAA,EAAAA,KACd7jD,GAAkBguD,EAAAA,EAAAA,MAClBvI,GAAeZ,EAAAA,EAAAA,GAAoB,CACrCC,cAAeA,KACXh0G,EAAIm9G,WAAW1mD,EAAK3R,QACpBoK,EAAgBl/C,MAAMymD,EAAK3R,OAAO,IAIpCyvD,EAASngH,EAAAA,aACVk5D,IAAkC,IAAD8vD,EAC9B1I,EAAYtB,QACZ,MAAMgG,EAAWC,EAAAA,EAAeC,UAAU,CAAY,QAAZ8D,EAAC3mD,EAAKilB,cAAM,IAAA0hC,OAAA,EAAXA,EAAap9G,KAAKgkD,GAAM,CAACA,EAAEzuC,EAAGyuC,EAAE2zB,MAAM,GACjF33E,EAAI8H,OAAO,CACP+D,OAAQ,CACJ8jG,SAAUl5C,EAAK3R,OACfmqD,aAAc,CAAEmC,GAAIgI,EAAS7jG,EAAG+7F,GAAI8H,EAASzhC,EAAG05B,GAAI+H,EAAS7jG,EAAGg8F,GAAI6H,EAASzhC,GAC7Ek4B,iBAAiB,EACjB/1B,MAAM,GAEVxtB,KAAM,CAAEwgC,MAAO,kBAAmBr2B,UAEtCimB,EAAAA,EAAawyB,KAAOY,EAAAA,EAAQC,oBAC3B,OAADziD,QAAC,IAADA,GAAAA,EAAG+6C,kBACF,OAAD/6C,QAAC,IAADA,GAAAA,EAAGw6C,gBAAgB,GAGvB,CAACrxC,IAGC4mD,EAAgBjpH,EAAAA,aAAkB,KAC/BsoF,EAAAA,EAAawyB,OACdwF,EAAYtB,QACZpzG,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAEo9F,eAAgBxyC,EAAK3R,UAClD,GAED,IAEGw4D,EAAoBlpH,EAAAA,aAAkB,KACnCsoF,EAAAA,EAAawyB,OACdwF,EAAYtB,QACZpzG,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAE0xG,sBAAuB,CAAEz4D,OAAQ2R,EAAK3R,WACnE,GAED,IAEG0vD,EAAcpgH,EAAAA,aAAkB,KAClC,IAAKsoF,EAAAA,EAAawyB,KAAM,CACpBwF,EAAYtB,QACZ,MAAM,MAAEjtC,EAAQ,GAAE,MAAErf,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,IAAOv0D,EAAI+P,WAChE0xE,EAAW9zC,EAAAA,EAAYC,MAAMkZ,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAW2R,EAAK3R,UAEjErvD,EAAO+nH,EAAAA,EAAYC,cAAch8B,EAAShsF,MAC1C+nH,EAAAA,EAAYE,iBAAiBj8B,EAAU36B,GACvC02D,EAAAA,EAAYG,aAAa72D,EAAO26B,EAAS7B,SAAU6B,EAASrqB,YAE1DX,KAAMmnD,GAAYl8B,EAAAA,EAAkBm8B,UAAUp8B,EAAUhsF,EAAM0wE,EAAO7R,EAAUC,GACvFv0D,EAAI89G,SAAS,CAAEh3D,MAAO,CAAC82D,GAAUG,eAAe,EAAMpS,aAAa,GACvE,IAED,IAEGqS,EAAkB5pH,EAAAA,aAAkB,KACtCsgH,EAAYtB,QACZuB,EAAaP,gBACb13B,EAAAA,EAAawyB,UAAOx0G,CAAS,GAE9B,IAEGgvG,GAAUC,EAAAA,EAAAA,MAChBv1G,EAAAA,WAAgB,KACRs1G,EAAQ10G,MAAMg7G,wBAA0Bv5C,EAAK3R,QAC7C4vD,EAAY5vG,MAChB,GAED,CAAC4kG,EAAQ10G,MAAMg7G,wBAElB,MAAM8E,EAAWp4B,EAAAA,EAAawyB,OAASY,EAAAA,EAAQC,qBAAuB/vG,EAAIhL,MAAM26G,WAAal5C,EAAK3R,OAC5F2sD,GAAQnB,EAAAA,EAAAA,MACd,OACI7wG,EAAAA,EAAAA,MAAA,KACIhE,IAAKi5G,EAAYnqB,aACjBrgB,UAAS,aAAA5oE,QAAgB8lG,EAAI7xF,EAAIyjG,GAAuBvH,EAAK,MAAAnwG,OAAK8lG,EAAIzvB,EAAIqhC,EAAe,KACzFplH,MAAO,CAAEq1F,cAAe,OAAQszB,YAAa,QAASvgH,SAAA,EACtDxI,EAAAA,EAAAA,KAACyqH,EAAsB,IACtBnJ,GAAWthH,EAAAA,EAAAA,KAAC0qH,EAAU,KAAM1qH,EAAAA,EAAAA,KAAC2qH,EAAY,KAC1C1+G,EAAAA,EAAAA,MAACi1G,EAAYpB,UAAS,CAAAt3G,SAAA,EAClBxI,EAAAA,EAAAA,KAACwiH,EAAAA,GAAsB,CACnBnxG,QAASw4G,EACTn4G,MAAOK,EAAAA,GAAKC,IAAI,2BAChBktG,cAAY,KAEhBl/G,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,CAACv4G,UAAU,kBACnCjK,EAAAA,EAAAA,KAACwiH,EAAAA,GAA0B,CAACnxG,QAASy4G,KACrC9pH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,KACxBxiH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAoB,CAACnxG,QAAS0vG,KAC/B/gH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,KACxBxiH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAyB,CAACnxG,QAAS2vG,KACpChhH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAuB,KACxBxiH,EAAAA,EAAAA,KAACwiH,EAAAA,GAAsB,CAACnxG,QAASm5G,OAGpCrJ,EAAaV,aACVzgH,EAAAA,EAAAA,KAAC6R,EAAAA,EAAiB,CACdH,MAAM,yBACNO,SAAUF,EAAAA,GAAK6E,OAAO,4BAA6B,CAAE3U,KAAMghE,EAAKhhE,OAChEkQ,WAAYgvG,EAAaR,SACzBhuG,UAAWA,IAAMwuG,EAAavB,MAAM,kBACpChtG,QAASA,IAAMuuG,EAAavB,MAAM,gBAClC6C,oBAAoB,EACpB5vG,aAAW,MAGnB,EAIN63G,EAAaA,KACf,MAAMzM,GAAQnB,EAAAA,EAAAA,MACR8N,GAAa,IAAT3M,EACV,OACIj+G,EAAAA,EAAAA,KAAA,KAAG02E,UAAS,aAAA5oE,OAAe88G,EAAC,MAAA98G,OAAK88G,EAAC,YAAA98G,OAAWmwG,EAAK,KAAK75B,KAAK,UAAS57E,UACjExI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOs0G,gBAAe,KACvB,EAINoH,EAAyBA,KAC3B,MAAMxM,GAAQnB,EAAAA,EAAAA,MACRwM,EAA8C,CAChDnL,GAAKF,EAAQuH,EAAmB,EAChCpH,GAAKH,EAAQuH,EAAmB,EAChCl9D,EAAG21D,EAAQuH,EACXphC,KAAM,WAEV,OAAOpkF,EAAAA,EAAAA,KAAA,aAAYspH,GAAQ,EAGzBqB,EAAeA,KACjB,MAAM1M,GAAQnB,EAAAA,EAAAA,MACd,OACI7wG,EAAAA,EAAAA,MAAA,KAAGyqE,UAAS,2BAAA5oE,OAA6BmwG,EAAK,KAAK75B,KAAK,UAAS57E,SAAA,EAC7DxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,8nBACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,iOACR,EAICu+B,EAAuB,WAAwC,IAAvCjP,EAAYh5F,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAIxH,EAAcwH,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAClE,OAAO6yG,EAAKxgG,OAASA,EAASwgG,EAAKh8B,UAAU,EAAGxkE,GAAU,MAAQwgG,CACtE,EAEM6N,EAAmBjxB,IAA0C,IAADnO,EAAAqiC,EAAAC,EAAAC,EAAA,IAAxC,IAAEnX,EAAG,KAAE3wC,EAAI,QAAE5xD,GAAsBslF,EACzD,MAAMpkC,EAA2C,QAAhCi2B,EAAGvlB,EAAKtP,gCAAwB,IAAA60B,GAAc,QAAdqiC,EAA7BriC,EAA+BxiC,oBAAY,IAAA6kE,OAAd,EAA7BA,EAA6C9sE,KAC3DitE,EAAWz4D,EAAc/I,EAAAA,EAAmBC,WAAW8I,EAAa,IAAM,GAE1E04D,EAAUxE,IAMhB,OALA7lH,EAAAA,WAAgB,KACZqqH,EAAQzuG,OAAO,GAEhB,CAACwuG,IAECpX,GAAQoX,IAA0B,QAAbF,EAAAG,EAAQzpH,aAAK,IAAAspH,IAAbA,EAAeI,aAA6B,QAAdH,EAACE,EAAQzpH,aAAK,IAAAupH,GAAbA,EAAenE,WAKpE36G,EAAAA,EAAAA,MAAA,KAAGyqE,UAAS,aAAA5oE,OAAe8lG,EAAI7xF,EAAC,MAAAjU,OAAK8lG,EAAIzvB,EAAC,KAAI37E,SAAA,EAC1CxI,EAAAA,EAAAA,KAAA,QAAMsM,GAAG,eAAc9D,UACnBxI,EAAAA,EAAAA,KAAA,UAAQokF,KAAK,QAAQ+5B,GAAI,GAAIC,GAAI,GAAI91D,EAAG,QAE5CtoD,EAAAA,EAAAA,KAACwoH,EAAU,CAACjD,KAAK,qBAAqBl0G,QAASA,EAAQ7I,UACnDxI,EAAAA,EAAAA,KAAA,SACIqN,MAAO,GACPwC,OAAQ,GACRs7G,oBAAoB,iBACpBC,KAAMJ,EACNjoH,OAAQkoH,EAAQI,cAChBC,QAASA,IAAML,EAAQM,qBAAqBP,UAfjD,IAkBH,EAWNQ,EAAiB5qH,EAAAA,cAAyC,CAC5DyqH,cAAeA,OACfE,qBAAsBA,OACtB/uG,MAAOA,SAGLiqG,EAAoBA,IAAM7lH,EAAAA,WAAiB4qH,GAE3CzF,EAA4BjvB,IAAmB,IAAlB,SAAEtuF,GAAUsuF,EAC3C,MAAOt1F,EAAOuF,GAAYnG,EAAAA,SAAoC,CAAE6qH,cAAc,IAW9E,OACIzrH,EAAAA,EAAAA,KAACwrH,EAAevuG,SAAQ,CACpBhW,MAAO,CACHzF,QACA6pH,cAZUA,KAClBtkH,GAAUkyE,IAAI,CAAQwyC,cAAc,EAAOP,aAAa,EAAMtE,UAAU,KAAQ,EAYxE2E,qBAVkBP,IAC1BjkH,GAAUkyE,IAAI,CAAQwyC,cAAc,EAAOP,aAAa,EAAMtE,UAAU,MACxEtiH,QAAQ3C,MAAM,iCAAkCqpH,EAAS,EASjDxuG,MAfEA,IAAMzV,GAAUkyE,IAAI,IAAWA,EAAMiyC,aAAa,EAAOtE,UAAU,OAgBvEp+G,SACDA,GACqB,2GC3gB3B,MAAMkjH,EAAkB9qH,EAAAA,cAA0C,CACrEY,MAAO,CAAC,EACR8S,OAAS+D,QAEAszG,EAAqBA,IAAM/qH,EAAAA,WAAiB8qH,GAI5CE,EAA6BlpH,IAAmB,IAAlB,SAAE8F,GAAU9F,EACnD,MAAM,MAAElB,EAAK,OAAE8S,IAAWC,EAAAA,EAAAA,KAS1B,OAPA3T,EAAAA,WAAgB,KACRY,EAAMqqH,WACN3iC,EAAAA,EAAawyB,KAAOY,EAAAA,EAAQwP,6BACrB5iC,EAAAA,EAAawyB,OAASY,EAAAA,EAAQwP,+BACrC5iC,EAAAA,EAAawyB,UAAOx0G,EACxB,GACD,CAAC1F,KACGxB,EAAAA,EAAAA,KAAC0rH,EAAgBzuG,SAAQ,CAAChW,MAAO,CAAEzF,QAAO8S,UAAS9L,SAAEA,GAAoC,wICO7F,MAAMujH,EAAiBnrH,EAAAA,cAAyC,CACnEY,MAAO,CAAC,EACR+a,SAAUA,KAAA,CAAS,GACnBjI,OAAQA,OACR6jF,MAAOA,OACP6zB,iBAAkBA,OAClBC,iBAAkBA,OAClBpM,iBAAkBA,SAET1J,EAAoBA,IAAMv1G,EAAAA,WAAiBmrH,GAE3CG,EAA2C,CACpDtQ,iBAAa10G,EACbq7D,eAAWr7D,EACXs7D,gBAAYt7D,EACZs1G,2BAAuBt1G,GAGdilH,EAA4BzpH,IAAmB,IAAlB,SAAE8F,GAAU9F,EAClD,MAAM,MAAElB,EAAK,SAAE+a,EAAQ,OAAEjI,IAAWC,EAAAA,EAAAA,GAA2B23G,IAC/DpvG,EAAAA,EAAAA,IAAa,IAAOC,OAAOqvG,aAAe7vG,IAuB1C,OACIvc,EAAAA,EAAAA,KAAC+rH,EAAe9uG,SAAQ,CACpBhW,MAAO,CAAEzF,QAAO+a,WAAUjI,SAAQ6jF,MAvB5BA,IAAM7jF,EAAO43G,GAuBsBF,iBAtBxBA,KACjBzvG,IAAWq/F,aACXtnG,EAAO,CAAEsnG,aAAa,GAC1B,EAmB+DqQ,iBAhB1CA,KACrB,MAAM,mBAAEI,EAAkB,qBAAEC,GAAyB/vG,KACjD8vG,GAAsBC,IACtBh4G,EAAO,CAAE+3G,wBAAoBnlH,EAAWolH,0BAAsBplH,GAClE,EAYiF24G,iBAT5DA,KACrB,MAAM,sBAAErD,GAA0BjgG,IAC9BigG,GACAloG,EAAO,CAAEkoG,2BAAuBt1G,GACpC,GAKoGsB,SAC/FA,GACqB,EAIrB8yG,EAAgBA,KAgBlB,CAAEE,iBAfiB+Q,IAAkC,IAADC,EACvD,IAAc,OAAVD,QAAU,IAAVA,GAAmB,QAATC,EAAVD,EAAYE,eAAO,IAAAD,OAAT,EAAVA,EAAqBjzG,QAAS,EAAG,CAUjC,MATc,CACV+iG,EAAAA,EAAQC,oBACRD,EAAAA,EAAQoQ,yBACRpQ,EAAAA,EAAQmH,yBACRnH,EAAAA,EAAQqQ,+BAEF14E,SAASi1C,EAAAA,EAAawyB,QAC5BxyB,EAAAA,EAAawyB,UAAOx0G,IAEjB,CACX,CACA,OAAO,CAAK,4MCrFb,MAAM0lH,EAAoC,4BAkBpCC,EAAyBjsH,EAAAA,cAAiD,CACnFY,MAAO,CAAC,EACR8S,OAAQA,OACRkI,MAAOA,OACPswG,0BAA2BA,SAGlBpD,EAA4BA,IAAM9oH,EAAAA,WAAiBisH,GAEnDE,EAAoCrqH,IAAmB,IAAlB,SAAE8F,GAAU9F,EAC1D,MAAMsqH,GAAoBz4G,EAAAA,EAAAA,KACpB/H,GAAMsiF,EAAAA,EAAAA,MACNw3B,GAAWC,EAAAA,EAAAA,KACX/R,GAAW7nG,EAAAA,EAAAA,OAWjBmQ,EAAAA,EAAAA,IAAa,IAAOC,OAAOkwG,qBAAuBD,EAAkBzwG,WAUpE,MAAO2wG,EAASC,GAAcvsH,EAAAA,WAqCxBwsH,EAAa54G,QAAe,OAAP04G,QAAO,IAAPA,OAAO,EAAPA,EAASG,KACvB,OAAPH,QAAO,IAAPA,OAAO,EAAPA,EAASG,KACF,OAAPH,QAAO,IAAPA,OAAO,EAAPA,EAASvjH,QAASoyE,EAAAA,GAAuBl5B,QACzC9wC,EAAAA,GAAKC,IAAI,aACTD,EAAAA,GAAKC,IAAI,8CAETs7G,GACK,OAAPJ,QAAO,IAAPA,OAAO,EAAPA,EAASvjH,QAASoyE,EAAAA,GAAuBl5B,QACnC9wC,EAAAA,GAAKC,IAAI,aACTD,EAAAA,GAAKC,IAAI,yDA4BnB,OA1BApR,EAAAA,WAAgB,KAAO,IAAD6xF,EAClB,MAAM86B,EAA8C,CAAC,EACrD,GAAmB,QAAnB96B,EAAIjmF,EAAIhL,MAAM8xD,aAAK,IAAAm/B,GAAfA,EAAiBl5E,OAAQ,CACzB,MAAMi0G,EAAwBA,CAAC/gH,EAAgB8rD,KAAoC,IAADmJ,EAAAC,EAAAC,EAAAC,EAC9E,MAAMpZ,EAAY8P,EAAkB,CAACA,GAAmB,GACxD9P,EAAUrnD,SACgB,QAAlBsgE,EAAAj1D,EAAK01D,qBAAa,IAAAT,OAAA,EAAlBA,EAAoBjZ,YAAc,OACb,QAArBkZ,EAAAl1D,EAAK21D,wBAAgB,IAAAT,OAAA,EAArBA,EAAuBlZ,YAAc,OACZ,QAAzBmZ,EAAAn1D,EAAK41D,4BAAoB,IAAAT,OAAA,EAAzBA,EAA2BnZ,YAAc,OACnB,QAAtBoZ,EAAAp1D,EAAK61D,yBAAiB,IAAAT,OAAA,EAAtBA,EAAwBpZ,YAAc,IAE9C,MAAM6S,EAA2B3D,EAAAA,EAAgB2D,yBAAyB7S,GACtE6S,EAAyBE,sBACzB+xD,EAAsB9gH,EAAK6kD,QAAWgK,EAC1C,EAEJ9uD,EAAIhL,MAAM8xD,MAAMryC,SAASgiD,IAAU,IAADsmD,EAAAkE,EAC9BD,EAAsBvqD,EAAMA,EAAKtP,0BACnB,QAAd41D,EAAAtmD,EAAKlC,iBAAS,IAAAwoD,GAAdA,EAAgBtoG,SAASxU,GAAS+gH,EAAsB/gH,KAC3C,QAAbghH,EAAAxqD,EAAKnC,gBAAQ,IAAA2sD,GAAbA,EAAexsG,SAASxU,GAAS+gH,EAAsB/gH,IAAM,IAEjEugH,EAAkBnwG,WAAW0wG,EACjC,IAED,CAAC/gH,EAAIhL,MAAM8xD,SAGVrnD,EAAAA,EAAAA,MAAC4gH,EAAuB5vG,SAAQ,CAC5BhW,MAAO,CACHzF,MAAOwrH,EAAkBxrH,MACzB8S,OAAQ04G,EAAkB14G,OAC1BkI,MAnGG80C,IACP1sD,OAAO8a,KAAKstG,EAAkBzwG,YAAYhD,SACtC+3C,EACA07D,EAAkB14G,OAAO,CAAE,CAACg9C,QAASpqD,IAErC8lH,EAAkBnwG,aAE1B,EA6FQiwG,0BA9EsBA,CAC9Bx7D,EACAo8D,EACAC,KACE,IAADC,EACD,MAAM,oBAAEpyD,GAAwBkyD,EAC1B/jH,EAA8D,OAAnB6xD,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7xD,KAChE7H,EAAkD,QAAnC8rH,EAAsB,OAAnBpyD,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBqyD,mBAAW,IAAAD,EAAAA,EAAI77G,EAAAA,GAAKC,IAAI,+BACrE,IAAuB,OAAnBwpD,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7xD,QAASoyE,EAAAA,GAAuB+xC,cAAe,CACpE,MAAMT,EAAiC,OAAnB7xD,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB6xD,IACzCF,EAAW,CACPxjH,OACA4xC,IAAKigB,EAAoBuyD,aACzBC,WAAYL,EACZ7rH,UACAurH,OAER,KAAO,CACHL,EAAkB14G,OAAO,CAAE,CAACg9C,GAASo8D,IAcrCP,EAAW,CAAExjH,OAAMskH,SAbFA,KACb,MAAM36D,EAAQ9mD,EAAI+P,WAAW+2C,OACX,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOvE,MAAMkU,GAASA,EAAK3R,SAAWA,KAC9Cy2D,aAAe,CAAEC,OAAO,GAC7Bx7G,EAAIkwG,SAAS,CACTrkG,OAAQ,CAAEo9F,eAAgBnkD,EAAQgC,SAClCwF,KAAM,CAAEwgC,MAAO,qCAAsChoC,SAAQo8D,oCAEjErmH,YACI,IAAMi/G,EAAS4B,YAAYC,EAAAA,EAASC,GAAIC,EAAAA,EAAYC,iBAAkB9T,IACtE2T,EAAAA,EAASI,WACZ,EAEkCzmH,WAC3C,IA8CM0G,SAAA,CACDA,EACA0kH,IACGltH,EAAAA,EAAAA,KAAC6R,EAAAA,EAAiB,CACdH,MAAOK,EAAAA,GAAKC,IAAI,qCAChBC,SAAUi7G,EAAQprH,QAClBqQ,WAAYA,KAAO,IAAD+7G,EAAAC,EACH,OAAPjB,QAAO,IAAPA,GAAAA,EAAS3xE,KACTx+B,OAAOjL,KAAY,OAAPo7G,QAAO,IAAPA,OAAO,EAAPA,EAAS3xE,KAEzB4xE,OAAWjmH,GACJ,OAAPgmH,QAAO,IAAPA,GAAmB,QAAZgB,EAAPhB,EAASc,kBAAU,IAAAE,GAAnBA,EAAA9oH,KAAA8nH,GACO,OAAPA,QAAO,IAAPA,GAAiB,QAAViB,EAAPjB,EAASe,gBAAQ,IAAAE,GAAjBA,EAAA/oH,KAAA8nH,EAAqB,EAEzBt6G,QAASA,KAAO,IAADw7G,EACXjB,OAAWjmH,GACJ,OAAPgmH,QAAO,IAAPA,GAAmB,QAAZkB,EAAPlB,EAASc,kBAAU,IAAAI,GAAnBA,EAAAhpH,KAAA8nH,EAAuB,EAE3Bv6G,UAAWA,KAAO,IAAD07G,EACblB,OAAWjmH,GACJ,OAAPgmH,QAAO,IAAPA,GAAmB,QAAZmB,EAAPnB,EAASc,kBAAU,IAAAK,GAAnBA,EAAAjpH,KAAA8nH,EAAuB,EAE3BE,WAAYA,EACZE,YAAaA,EACb/7G,OAAQ,CAAE+7G,YAAa,CAAEhzG,KAAM,UAC/BzH,aAAa,EACby7G,cAAY,MAGU,qFC5KnC,MAAMC,EAAmB3tH,EAAAA,cAA2C,CAAE4tH,QAAQ,EAAOC,UAAWA,SAC1FC,EAAsBA,IAAM9tH,EAAAA,WAAiB2tH,GAE7CI,EAA8BjsH,IAAmB,IAAlB,SAAE8F,GAAU9F,EACpD,MAAO8rH,EAAQC,GAAa7tH,EAAAA,UAAwB,GACpD,OAAOZ,EAAAA,EAAAA,KAACuuH,EAAiBtxG,SAAQ,CAAChW,MAAO,CAAEunH,SAAQC,aAAYjmH,SAAEA,GAAqC,sXCJ1G,MAAMomH,EAAiBA,CAACC,EAAoBnjH,KACxC,MAAMiuF,EAAa7/B,KACVA,EAAEg1D,SAAWh1D,EAAEi1D,UAAYj1D,EAAE35C,IAAI6uG,gBAAkBH,EAAWG,gBAC/Dl1D,EAAEw6C,iBACF5oG,IACJ,EAEJ9K,EAAAA,WAAgB,KACZkhF,SAASiY,iBAAiB,UAAWJ,GAC9B,KACH7X,SAASkY,oBAAoB,UAAWL,EAAU,IAGvD,GAAG,EAGH,SAASs1B,EAAuBvsH,GAAkD,IAAjD,SAAE8F,GAA4C9F,EAClF,MAAM8J,EAAMsiF,IACNksB,GAAUnE,EAAAA,EAAAA,MAmBhB,OAHA+X,EAAe,KAdF1W,KACT,MAAMrxG,EAAYm0G,EAAQ9C,KAAK1rG,EAAI+P,WAAW5S,MAC1C9C,GACA2F,EAAI8H,OAAO,CAAE+D,OAAQxR,EAAWsxG,aAAa,EAAMr/C,KAAM,CAAEwgC,MAAO,gCACtE,IAWJs1B,EAAe,KARFM,KACT,MAAMroH,EAAYm0G,EAAQkU,KAAK1iH,EAAI+P,WAAW5S,MAC1C9C,GACA2F,EAAI8H,OAAO,CAAE+D,OAAQxR,EAAWsxG,aAAa,EAAMr/C,KAAM,CAAEwgC,MAAO,gCACtE,KAMGt5F,EAAAA,EAAAA,KAAAmR,EAAAA,SAAA,CAAA3I,SAAGA,GACd,gBCNO,MAAM2mH,EAA4C,CACrD1Z,oBAAgBvuG,EAChByuG,uBAAmBzuG,EACnBwuG,wBAAoBxuG,EACpB6iH,2BAAuB7iH,EACvBkoH,qBAAqB,EACrBC,cAAc,EACdC,gBAAgB,EAChBC,mBAAmB,EACnBC,kBAAkB,GA6JtB,MAAMC,EAAa7uH,EAAAA,cAAqC,CACpDY,MAAO,CAAE66G,iBAAiB,GAC1B9/F,SAAUA,KAAA,CAAS,GACnBM,WAAYA,KAAA,CAAS,GACrBvI,OAAQA,OACRg2G,SAAUA,OACV5N,SAAUA,OACVgT,iBAAkBA,KAAA,CAAS,GAC3BC,UAAWA,OACXC,iBAAkBA,SAGT9gC,EAAgBA,IAAMluF,EAAAA,WAAiB6uH,GACvC5c,EAAqBA,IAAMjyG,EAAAA,WAAiB6uH,GAAYjuH,MACxDm+G,EAAsBA,IAAM/+G,EAAAA,WAAiB6uH,GAAYn7G,OAEzDu7G,EAA6BntH,IAAmB,IAAlB,SAAE8F,GAAU9F,EACnD,MAAM8xG,GAAW7nG,EAAAA,EAAAA,MACXH,GAAM+H,EAAAA,EAAAA,GAA8B,CACtC89C,WAAY,GACZ4b,aAAc,GACdmrB,kBAAmB,GACnBzvF,KAAMu6D,EAAAA,GAASC,OAGnBrnD,EAAAA,EAAAA,IAAa,IAAOC,OAAO+yG,SAAWtjH,EAAI+P,WAE1C,MAAMwzG,EAAgBnvH,EAAAA,SAKhB0T,EAASrG,IAAkE,IAAjE,OAAEoK,EAAM,YAAE8/F,EAAW,KAAEr/C,EAAI,YAAEmvD,GAA8Bh6G,EACvEiP,EAAAA,EAAOg9B,gBAAkB51C,QAAQwhF,MAAM,sBAEvC,MACMj/E,EAA6B,IADlB2F,EAAI+P,cACgClE,GAC/C23G,EAAgB7X,GAAe4X,EAAcxnH,QAAUwnH,EAAcxnH,QAAQ0nH,MAAMppH,GAAa,CAAC,EAEjGy5D,EAAW,IAAKz5D,KAAcmpH,EAAel3D,QACnD57C,EAAAA,EAAOC,IAAI,0BAA2B,CAAEmjD,WAAUxH,SAClDtsD,EAAI8H,OAAOgsD,EAAU2nD,GAErB/qG,EAAAA,EAAOg9B,gBAAkB51C,QAAQ6tG,UAAU,EAgH/C,OACInyG,EAAAA,EAAAA,KAACkwH,EAAAA,GAAgB,CAAA1nH,UACbxI,EAAAA,EAAAA,KAACmsH,EAAAA,GAAe,CAAA3jH,UACZxI,EAAAA,EAAAA,KAAC2uH,EAAAA,GAAiB,CAAAnmH,UACdxI,EAAAA,EAAAA,KAAC4rH,EAAAA,GAAgB,CAAApjH,UACbxI,EAAAA,EAAAA,KAACyvH,EAAWxyG,SAAQ,CAChBhW,MAAO,IACAuF,EACH8H,SACAs7G,iBAxIF3oH,GAA0B8oH,EAAcxnH,QAAUtB,EAyIhDqjH,SA/GXrkD,IAAgF,IAA/E,MAAE3S,EAAQ,GAAE,cAAEi3D,EAAa,YAAEpS,EAAW,KAAEr/C,KAAS6kD,GAAsB13C,EACvF,MAAQ3S,MAAO68D,EAAW,GAAIx9C,MAAOy9C,EAAW,GAAE,SAAEtvD,EAAW,GAAE,UAAEC,EAAY,IAAOv0D,EAAI+P,WAE1F,IAAI8zG,EAAeD,EACfE,EAAeH,EACf9O,EAAkBvgD,EAClBkjD,EAAmBjjD,EA8BvB,GA5BAzN,EAAMryC,SAASgtE,IACX,MAAMsB,EAAa+gC,EAAazwG,QAAQkC,GAAMA,EAAEpY,OAAS6C,EAAIhL,MAAMmI,OAC7D4mH,EAAahhC,EAAW0f,SAASltF,IAAC,IAAAyuG,EAAA,OAAY,QAAZA,EAAKzuG,EAAE4wD,aAAK,IAAA69C,EAAAA,EAAI,EAAE,IAC1DviC,EAAShsF,KAAOgsF,EAAShsF,MAAQ+nH,EAAAA,EAAYyG,YAAYlhC,EAAWh2E,OAAQ/M,EAAIhL,MAAMmI,MACtFskF,EAAStkF,KAAO6C,EAAIhL,MAAMmI,KAC1B,MAAM,KAAEs5D,EAAI,UAAEiP,EAAY,IAAOgc,EAAAA,EAAkBwiC,WAAWziC,EAAUsiC,GACxEF,EAAe,IAAIA,KAAiBn+C,GACpCjP,EAAK0P,MAAQT,EAEbo+C,EAAe,IAAIA,EAAcrtD,GACjC0tD,EAAAA,EAAOC,UAAUP,EAAcC,GAG/BlY,EAAAA,EAAayY,oBAAoB5tD,EAAMA,EAAKnC,SAAUuvD,GAEtDhP,EAAkB,IAAIA,KAAqBp+C,EAAKnC,UAAY,IAC5DkjD,EAAmB,IAAIA,KAAsB/gD,EAAKlC,WAAa,IAC/DkqC,EAAAA,EAAU6lB,wCAAwCT,EAAchP,GAEhEp+C,EAAK8kD,aAAe,CAAEC,MAAOuC,EAAe,IAGhD+F,EAAarvG,SAASgiD,IACd8tD,EAAAA,EAAeC,sCAAsC/tD,KACrDA,EAAKguD,sBAAwBC,EAAAA,EAAgBC,2BACjD,IAGA79D,EAAM/5C,OAAQ,CACd,MAAM63G,EAAkB7G,EAAgBj3D,EAAM,GAAGhC,YAASpqD,EAC1DoN,EAAO,CACH+D,OAAQ,CACJs6D,MAAO09C,EACP/8D,MAAOg9D,EACPxvD,SAAUugD,EACVtgD,UAAWijD,KACRmL,EACH1Z,eAAgBjB,OAAWttG,EAAYkqH,KACpCzT,GAEPxF,cACAr/C,SAEJu4D,EAAAA,EAAUC,gBAAgBhB,EAAazwG,QAAQkC,GAAMA,EAAEpY,OAAS6C,EAAIhL,MAAMmI,QAClD,IAApBwmH,EAAS52G,QAAiB/M,EAAIhL,MAAM+vH,sBAAyB/c,GAC7DhoG,EAAI8H,OAAO,CAAE+6G,cAAc,EAAMkC,sBAAsB,GAE/D,GAyDwB7U,SAxHX/gG,IAAmD,IAAlD,OAAEtD,EAAM,KAAEygD,KAASt4D,GAAyBmb,EAC1DrH,EAAO,IACA9T,EACH6X,OAAQ,IAAK82G,KAAoB92G,GACjCygD,KAAM,IAAKA,EAAM4jD,SAAU,0BAC7B,EAoHsBgT,iBArDFpvD,IACtB,MAAM,MAAEhN,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,GAAE,MAAE4R,EAAQ,IAAOrS,EAClE,GAAKhN,EAAM/5C,OAEJ,CACHo3G,EAAAA,EAAOC,UAAUj+C,EAAOrf,GACxBA,EAAMryC,SAASgiD,IACXm1C,EAAAA,EAAaoZ,mBAAmBvuD,EAAMnC,GACtC2wD,EAAAA,EAAcC,gBAAgBzuD,EAAMlC,GACpCmoC,EAAAA,EAAcyoB,sBAAsB1uD,EAAMlC,EAAW4R,EAAM,IAE/Ds4B,EAAAA,EAAU6lB,wCAAwCn+C,EAAO7R,GAEzD,MAAM8wD,EAAgBhlE,EAAAA,EAAcyG,kBAAkBC,IAElDA,MAAOg9D,EACPxvD,SAAUugD,EACVtgD,UAAWijD,KACRrG,GACHkU,EAAAA,EAAUC,UAAU,CACpBx+D,QACAyN,YACA4R,QACA7R,WACAzO,WAAYu/D,EACZ94D,KAAM,4BAEV,MAAO,CACHxF,MAAOg9D,EACPxvD,SAAUugD,EACVtgD,UAAWijD,EACX3xD,WAAYu/D,KACTjU,EAEX,CA/BI,MAAO,CAAC,CA+BZ,EAoBwBgS,UA1IVA,KAAA,IAAAoC,EAAA,OAAMV,EAAAA,EAAUC,gBAAoC,QAArBS,EAACvlH,EAAI+P,WAAW+2C,aAAK,IAAAy+D,OAAA,EAApBA,EAAsBlyG,QAAQkC,GAAMA,EAAEpY,OAAS6C,EAAIhL,MAAMmI,OAAM,GA2IvFnB,UACFxI,EAAAA,EAAAA,KAACgyH,EAAAA,GAAmB,CAAAxpH,UAChBxI,EAAAA,EAAAA,KAACivH,EAAuB,CAAAzmH,UACpBxI,EAAAA,EAAAA,KAAC24F,EAAAA,GAAkB,CAAAnwF,UACfxI,EAAAA,EAAAA,KAACiyH,EAAAA,EAAiB,CAAAzpH,SAAEA,mBAQjC,EAIduyG,EAAiBA,KAC1B,MAAMvuG,EAAMsiF,IACNksB,GAAUnE,EAAAA,EAAAA,MAkDhB,MAAO,IAAKrqG,EAAKm9G,WAhDGr4D,IAChB,MAAMgP,EAAW9zD,EAAI+P,WACrBy+F,EAAQ/lG,MAAMqrD,GACd,MAAM,MAAEqS,EAAQ,GAAE,MAAErf,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,GAAE,eAAE00C,GAAmBn1C,EAClF9zD,EAAI8H,OAAO,CACP+D,OAAQ,CACJi7C,MAAOA,EAAMzzC,QAAQyoC,GAAMA,EAAEgJ,SAAWA,IACxCwP,SAAUA,EAASjhD,QAAQq2B,GAAMA,EAAEob,SAAWA,IAC9CyP,UAAWA,EAAUlhD,QAAQ8vE,GAAOA,EAAGr+B,SAAWA,IAClDqhB,MAAOA,EAAM9yD,QAAQ0lE,GAAMA,EAAEj0B,SAAWA,IAAQzxC,QAAQ0lE,GAAMA,EAAEj0B,SAChEmkD,eAAgBA,IAAmBnkD,OAASpqD,EAAYuuG,EACxDnvB,MAAM,GAEV6xB,aAAa,EACbr/C,KAAM,CAAEwgC,MAAO,aAAchoC,WAC/B,EAiCuBmwD,cA9BNl/C,IACnB,MAAMjC,EAAW9zD,EAAI+P,WACrBy+F,EAAQ/lG,MAAMqrD,GACd,MAAM,SAAEQ,EAAW,GAAE,kBAAE60C,GAAsBr1C,EAC7C9zD,EAAI8H,OAAO,CACP+D,OAAQ,CACJyoD,SAAUA,EAASjhD,QAAQpT,GAASA,EAAK81D,YAAcA,IACvDozC,kBAAmBA,IAAsBpzC,OAAYr7D,EAAYyuG,EACjErvB,MAAM,GAEV6xB,aAAa,EACbr/C,KAAM,CAAEwgC,MAAO,gBAAiB/2B,cAClC,EAkBsCohD,eAfpBnhD,IACpB,MAAMlC,EAAW9zD,EAAI+P,WACrBy+F,EAAQ/lG,MAAMqrD,GACd,MAAM,UAAES,EAAY,GAAE,mBAAE20C,GAAuBp1C,EAC/C9zD,EAAI8H,OAAO,CACP+D,OAAQ,CACJ0oD,UAAWA,EAAUlhD,QAAQpT,GAASA,EAAK+1D,aAAeA,IAC1DkzC,mBAAoBA,IAAuBlzC,OAAat7D,EAAYwuG,EACpEpvB,MAAM,GAEV6xB,aAAa,EACbr/C,KAAM,CAAEwgC,MAAO,iBAAkB92B,eACnC,EAGsD,+HC1ahE,MAAM0vD,EAAmBtxH,EAAAA,cAA2C,CAChEqgF,WAAYA,IAAM,GAClB/d,WAAYA,IAAM3/C,QAAQlgB,QAAQ,IAClC2/D,gBAAiBA,IAAM,KAGdmvD,EAAeA,IAAMvxH,EAAAA,WAAiBsxH,GAEtCD,EAA8BvvH,IAAmB,IAAlB,SAAE8F,GAAU9F,EACpD,MAAM49D,GAAWuyC,EAAAA,EAAAA,OACX,QAAE5wB,EAAO,WAAEhB,EAAU,WAAE/d,IAAe2d,EAAAA,EAAAA,GAAkBvgB,IACtDkmB,YAAaxjB,IAAoBqjB,EAAAA,EAAAA,GAA4B/lB,GAErE,OACIr0D,EAAAA,EAAAA,MAACimH,EAAiBj1G,SAAQ,CAAChW,MAAO,CAAEg6E,aAAY/d,aAAYF,mBAAkBx6D,SAAA,CACzEA,EACAy5E,EAAQ/d,EAAAA,GAASC,KACjB8d,EAAQ/d,EAAAA,GAASG,MACjBrB,IAAkBx2D,KAAKC,GAASA,EAAKi7E,WAAW,CAAEp7E,GAAIG,EAAKw2D,KAAK3R,aACzC,oHCvBpC,MAAM8gE,EAAkBxxH,EAAAA,cAAmC,CAAEyxH,OAAO,EAAOC,SAAUA,KAAA,CAAS,KACjFC,EAAcA,IAAM3xH,EAAAA,WAAiBwxH,GAErClC,EAAkCxtH,IAAmB,IAAlB,SAAE8F,GAAU9F,EACxD,MAAO2vH,EAAOC,GAAY1xH,EAAAA,UAAwB,GAClD,OAAOZ,EAAAA,EAAAA,KAACoyH,EAAgBn1G,SAAQ,CAAChW,MAAO,CAAEorH,QAAOC,YAAW9pH,SAAEA,GAAoC,EAM/F,SAASgqH,EAAQvkH,GAAkD,IAAjD,SAAEzF,GAA4CyF,EACnE,MAAMzB,GAAMsiF,EAAAA,EAAAA,OACN,MAAEujC,EAAK,SAAEC,GAAaC,KACtB,qBAAEhB,EAAoB,aAAElC,EAAY,iBAAEG,GAAqBhjH,EAAIhL,OAC/D,QAAErB,EAAO,YAAE4lE,EAAW,wBAAE0sD,IAA4BC,EAAAA,EAAAA,MAAkBlxH,MACtE8P,EACFy0D,IACCvxD,QAAQrU,GAAWsyH,GAA4BpD,IAAiBkC,GAAyB/B,GAQ9F,OANA5uH,EAAAA,WAAgB,KACRyxH,IAAU/gH,GACVghH,EAAS99G,QAAQlD,GACrB,GACD,CAACA,EAAM+gH,EAAOC,KAEVtyH,EAAAA,EAAAA,KAAAmR,EAAAA,SAAA,CAAA3I,SAAGA,GACd,qFC1BA,MAAMmqH,EAAqB,CACvBzkH,QAAS,EACTwtG,KAAM,OACNtG,OAAO,EACPzhB,EAAG,EACH5K,EAAG,EACH6O,EAAG,EACHnN,EAAG,EACH3wB,EAAG,EACH84D,EAAG,EACHC,YAAa,EACbC,aAAc,EACdC,SAAU,EACVC,UAAW,EACXC,eAAe,GAENC,EAAmBtyH,EAAAA,cAA2C,CACvEqG,MAAO0rH,EACPtgC,cAAeA,OACf8gC,UAAWA,SAEF/X,EAAsBA,IAAMx6G,EAAAA,WAAiBsyH,GAC7CE,EAA8B1wH,IAAmB,IAAlB,SAAE8F,GAAU9F,EACpD,MAAOuE,EAAOorF,GAAiBzxF,EAAAA,SAAsB+xH,IAC9C1W,EAAWkX,GAAavyH,EAAAA,WAE/B,OACIZ,EAAAA,EAAAA,KAACkzH,EAAiBj2G,SAAQ,CAAChW,MAAO,CAAEA,QAAOorF,gBAAe4pB,YAAWkX,aAAY3qH,SAC5EA,GACuB,4IC5BpC,MAAM6qH,EAAsE,CACxE92G,SAAUA,KAAA,CAAS,GACnB27F,KAAMA,KAAA,CAAS,GACfgX,KAAMA,KAAA,CAAS,GACfj6G,MAAOA,KAAA,CAAS,GAChBkjF,MAAOA,KAAA,CAAS,GAChBm7B,SAAS,EACTC,SAAS,GAWPC,EAAqB5yH,EAAAA,cAA6C,CACpE6yH,IAAKJ,EACLzmC,KAAMymC,EACNp+G,MAAOA,KAAA,CAAS,GAChBijG,KAAMA,KAAA,CAAS,GACfgX,KAAMA,KAAA,CAAS,GACf/2B,MAAOA,KAAA,CAAS,KAEP0e,EAAiBA,IAAMj2G,EAAAA,WAA0C4yH,GAEvE,SAASxB,EAAmBtvH,GAAkD,IAAjD,SAAE8F,GAA4C9F,EAC9E,MAAM8J,GAAMsiF,EAAAA,EAAAA,MACN2kC,EAAMC,EAA6B,CAAEC,WAAYA,IAAMC,EAAmBpnH,EAAI+P,cAC9EqwE,EAAO8mC,EAA6B,CAAEC,WAAYA,IAAMC,EAAmBpnH,EAAI+P,cAuCrF,OAHAO,EAAAA,EAAAA,IAAa,IAAOC,OAAO82G,oBAAsBJ,EAAIl3G,YACrDO,EAAAA,EAAAA,IAAa,IAAOC,OAAO+2G,qBAAuBlnC,EAAKrwE,YAGnDvc,EAAAA,EAAAA,KAACwzH,EAAmBv2G,SAAQ,CAAChW,MAAO,CAAEwsH,MAAK7mC,OAAMsrB,KAtCvCvuG,IACV,MACMoqH,GADiB,OAAJpqH,QAAI,IAAJA,EAAAA,EAAQ6C,EAAI+P,WAAW5S,QACVu6D,EAAAA,GAASC,IAAMsvD,EAAIvb,OAAStrB,EAAKsrB,OACjE,GAAI6b,EACA,OAAOC,EAA0BD,EAAUvnH,EAAI+P,WAEnC,EAgCuC2yG,KA7B7CvlH,IACV,MACMoqH,GADiB,OAAJpqH,QAAI,IAAJA,EAAAA,EAAQ6C,EAAI+P,WAAW5S,QACVu6D,EAAAA,GAASC,IAAMsvD,EAAIvE,OAAStiC,EAAKsiC,OACjE,GAAI6E,EACA,OAAOC,EAA0BD,EAAUvnH,EAAI+P,WAEnC,EAuB6CtH,MApBlDqrD,IACPA,EAAS32D,OAASu6D,EAAAA,GAASC,IAC3BsvD,EAAIx+G,MAAM2+G,EAAmBtzD,IAE7BssB,EAAK33E,MAAM2+G,EAAmBtzD,GAClC,EAeoE63B,MAb1D,WAA2E,IAA1E,KAAExuF,EAAI,WAAEsqH,GAAuDlzG,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,GACvD,OAAJpX,QAAI,IAAJA,EAAAA,EAAQ6C,EAAI+P,WAAW5S,QACvBu6D,EAAAA,GAASC,IACxBsvD,EAAIt7B,MAAM87B,GAEVrnC,EAAKuL,MAAM87B,EAEnB,GAMgFzrH,SACvEA,GAGb,CACO,MAAMorH,EAAsBpyH,IAAsB,CACrDmxE,MAAOx4B,EAAAA,EAAYC,MAAM54C,EAAMmxE,OAC/Brf,MAAOnZ,EAAAA,EAAYC,MAAM54C,EAAM8xD,OAC/BwN,SAAU3mB,EAAAA,EAAYC,MAAM54C,EAAMs/D,UAClCC,UAAW5mB,EAAAA,EAAYC,MAAM54C,EAAMu/D,WACnC00C,eAAgBj0G,EAAMi0G,eACtBE,kBAAmBn0G,EAAMm0G,kBACzBD,mBAAoBl0G,EAAMk0G,mBAC1BqU,sBAAuBvoH,EAAMuoH,sBAC7BqF,oBAAqB5tH,EAAM4tH,oBAC3BE,eAAgB9tH,EAAM8tH,eACtBE,iBAAkBhuH,EAAMguH,iBACxBD,kBAAmB/tH,EAAM+tH,kBACzBz2D,KAAMt3D,EAAMs3D,OAGHk7D,EAA4BA,CAACE,EAAsB3rH,KAC5D,MACI+qD,MAAO68D,EAAW,GAClBrvD,SAAUqzD,EAAc,GACxBpzD,UAAWqzD,EAAe,GAC1BzhD,MAAOy9C,EAAW,MACf5uH,GACH0yH,GACE,MAAE5gE,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,IAAOx4D,EAEhD0nH,EAAQA,CACVoE,EACAC,EACAC,EACAC,IAEOH,EAAK7nH,KAAK0nH,IACb,MAAM3rH,EAAU+rH,EAASvlE,MAAM6oC,GAAM28B,EAAOL,EAAKt8B,KAC3CtyF,EAAUiD,EAEV,IACO2rH,EACHnM,aAAcx/G,EAAQw/G,gBACnByM,EAAKjsH,MACLksH,EAAclsH,IALrB2rH,EAON,OAAO/5E,EAAAA,EAAYC,MAAM90C,EAAO,IAIxC,MAAO,CACHguD,MAAO28D,EAAME,EAAU78D,GAAO,CAACpd,EAAG0hD,IAAM1hD,EAAEob,SAAWsmC,EAAEtmC,QAAQojE,GAC/D5zD,SAAUmvD,EAAMkE,EAAarzD,GAAU,CAAC5qB,EAAG0hD,IAAM1hD,EAAEqsB,YAAcq1B,EAAEr1B,WAAWoyD,GAC9E5zD,UAAWkvD,EAAMmE,EAAcrzD,GAAW,CAAC7qB,EAAG0hD,IAAM1hD,EAAEssB,aAAeo1B,EAAEp1B,YAAYoyD,GACnFjiD,MAAOx4B,EAAAA,EAAYC,MAAMg2E,GACzB3a,eAAgBj0G,EAAMi0G,eACtBE,kBAAmBn0G,EAAMm0G,kBACzBD,mBAAoBl0G,EAAMk0G,mBAC1BqU,sBAAuBvoH,EAAMuoH,sBAC7BqF,oBAAqB5tH,EAAM4tH,oBAC3BE,eAAgB9tH,EAAM8tH,eACtBE,iBAAkBhuH,EAAMguH,iBACxBD,kBAAmB/tH,EAAM+tH,kBACzBz2D,KAAMt3D,EAAMs3D,KACf,EAGC27D,EAAiBhoH,IACZ,CACHxK,KAAMwK,EAAKxK,KACX4yH,YAAapoH,EAAKooH,YAElBpzD,qBAAsBh1D,EAAKg1D,qBAC3BqzD,aAAcroH,EAAKqoH,aACnB3yD,cAAe11D,EAAK01D,cACpBC,iBAAkB31D,EAAK21D,iBACvBC,qBAAsB51D,EAAK41D,qBAC3BC,kBAAmB71D,EAAK61D,kBACxB2uD,sBAAuBxkH,EAAKwkH,wBAG9ByD,EAAYzxD,IACP,CACHtP,yBAA0BsP,EAAKtP,yBAC/By4B,SAAUnpB,EAAKmpB,SACf2oC,aAAc9xD,EAAK8xD,aACnBnxD,UAAWX,EAAKW,UAChBkH,SAAU7H,EAAK6H,SACfrH,qBAAsBR,EAAKQ,qBAC3BE,sBAAuBV,EAAKU,sBAC5BG,YAAab,EAAKa,YAClBsQ,gBAAiBnR,EAAKmR,gBACtB+mB,kBAAmBl4B,EAAKk4B,kBACxBn3B,eAAgBf,EAAKe,iBAGvB2wD,EAAepwD,IACV,CACH56D,KAAM46D,EAAQ56D,KACdogD,KAAMwa,EAAQxa,KACdirE,WAAYzwD,EAAQywD,aAGtBJ,EAAgBhwD,IACX,CACHj7D,KAAMi7D,EAASj7D,KACf0iF,YAAaznB,EAASynB,YACtBG,YAAa5nB,EAAS4nB,YACtBn/E,MAAOu3D,EAASv3D,MAChBwC,OAAQ+0D,EAAS/0D,OACjBolH,SAAUrwD,EAASqwD,SACnBvoC,kBAAmB9nB,EAAS8nB,oBAmBpC,SAASgnC,EAAWzlH,GAA+D,IAA3D,WAAE0lH,GAA+B1lH,EACrD,MACIzM,OAAO,KAAE0zH,EAAO,GAAE,OAAEC,EAAS,IAAI,SACjC54G,EAAQ,OACRjI,IACAC,EAAAA,EAAAA,GAA+B,CAAE2gH,KAAM,GAAIC,OAAQ,KAqCvD,MAAO,CACH54G,WACA27F,KA3BSA,KACT,MAAM,KAAEgd,EAAO,GAAE,OAAEC,EAAS,GAAE,QAAEC,GAAY74G,IAEtC84G,EAAaD,GAAWzB,IACxB2B,EAAWn7E,EAAAA,EAAYC,MAAM86E,EAAKA,EAAK37G,OAAS,IAChDg8G,EAAUp7E,EAAAA,EAAYC,MAAM86E,EAAK7+E,MAAM,EAAG6+E,EAAK37G,OAAS,IACxDi8G,EAAYr7E,EAAAA,EAAYC,MAAM,CAACi7E,KAAeF,IAGpD,OAFA7gH,EAAO,CAAE4gH,KAAMK,EAASH,QAASE,EAAUH,OAAQK,IAE5CF,CAAQ,EAmBfpG,KAhBSA,KACT,MAAM,KAAEgG,EAAO,GAAE,OAAEC,EAAS,GAAE,QAAEC,GAAY74G,IAEtC84G,EAAaD,GAAWzB,IACxBrsG,EAAO6yB,EAAAA,EAAYC,MAAM+6E,EAAO,IAChCK,EAAYr7E,EAAAA,EAAYC,MAAM+6E,EAAO9+E,MAAM,IAC3Ck/E,EAAUp7E,EAAAA,EAAYC,MAAM,IAAI86E,EAAMG,IAI5C,OAFA/gH,EAAO,CAAE4gH,KAAMK,EAASH,QAAS9tG,EAAM6tG,OAAQK,IAExCluG,CAAI,EAOXrS,MA/BWmgH,GAAe9gH,EAAO,CAAE4gH,KAAM,IAAIA,EAAME,GAAUD,OAAQ,GAAIC,aAASluH,IAgClFixF,MAxCW87B,IACX,MAAMiB,EAAO34G,IAAW24G,MAAQ,GAChC5gH,EACI2/G,EACM,CAAEiB,KAAMA,EAAK7+E,MAAM,EAAG6+E,EAAK37G,OAAS,GAAI47G,OAAQ,GAAIC,aAASluH,GAC7D,CAAEguH,KAAM,GAAIC,OAAQ,GAAIC,aAASluH,GAC1C,EAmCDqsH,QAAS/+G,QAAQ0gH,EAAK37G,QACtB+5G,QAAS9+G,QAAQ2gH,EAAO57G,QAEhC,8GClQO,MAAMooG,EAaT,uBAAcuI,CAAiB3lD,EAAmBzD,GAC9C,MAAM20D,EAAiB30D,EAASjhD,OAAOxa,KAAK4kH,eAAez9G,KAAK0pC,IAC5D,MAAMw/E,EAAMx/E,EAAEj0C,KAAMu+C,MAAM,KAAK,GAC/B,OAAO1H,SAAS48E,EAAI,IAExB,GAAID,EAAel8G,OAAQ,CACvB,MAAMtX,EAAOsiE,EAAQtiE,KAAMu+C,MAAM,KAAK,GAChCgxB,EAAMrlB,KAAKqlB,OAAOikD,GAAkB,EAC1C,MAAM,GAAN3nH,OAAU7L,EAAI,KAAA6L,OAAI0jE,EACtB,CACA,MAAM,GAAN1jE,OAAUy2D,EAAQtiE,KAAI,KAC1B,EAiEH0zH,EAzFYhU,EAAAA,EACKiU,iBAAmB,GADxBjU,EAEKC,WAAa,CAACF,EAAuB5gD,IACxC6gD,EAAesI,cAAcvI,GAC9BC,EAAeuI,iBAAiBxI,EAAa5gD,GAC7C6gD,EAAewI,aAAazI,EAAY/3G,KAAOm3D,GALhD6gD,EAQK8O,YAAc,WAAyB,mBAAA3iH,QAAJiT,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAkC,EAAC,EAR9E4gG,EASKsI,cAAiB1lD,IAC3B,MAAOtiE,EAAMyzH,GAAOnxD,EAAQtiE,KAAMu+C,MAAM,KACxC,MAAgB,cAATv+C,GAAwBuS,QAAQkhH,EAAIn8G,SAAWopC,OAAOkzE,SAAS/8E,SAAS48E,GAAK,EAX/E/T,EA0BKwI,aAAe,CAACxgH,EAAmBm3D,KAC7C,IAAIg1D,EAAW,GAEf,OAAQnsH,GACJ,KAAK88D,EAAAA,GAAYG,YACbkvD,EAAW/jH,EAAAA,GAAKC,IAAI,uBACpB,MACJ,KAAKy0D,EAAAA,GAAYC,KACbovD,EAAW/jH,EAAAA,GAAKC,IAAI,gBACpB,MACJ,KAAKy0D,EAAAA,GAAYO,WACb8uD,EAAW/jH,EAAAA,GAAKC,IAAI,sBACpB,MACJ,KAAKy0D,EAAAA,GAAYK,UACbgvD,EAAW/jH,EAAAA,GAAKC,IAAI,qBACpB,MACJ,KAAKy0D,EAAAA,GAAYW,UACb0uD,EAAW/jH,EAAAA,GAAKC,IAAI,qBACpB,MACJ,KAAKy0D,EAAAA,GAAYS,QACb4uD,EAAW/jH,EAAAA,GAAKC,IAAI,mBAkB5B,MAfmB+jH,MACf,IAAIC,EAAaF,EACjB,GAAKh1D,EAASrD,MAAM17C,GAAMA,EAAE9f,OAAS+zH,IAE9B,CACH,IAAIl1G,EAAI,EAGR,IAFAk1G,EAAU,GAAAloH,OAAMgoH,EAAQ,KAAAhoH,OAAIgT,GAErBggD,EAASrD,MAAM17C,GAAMA,EAAE9f,OAAS+zH,KACnCl1G,IACAk1G,EAAU,GAAAloH,OAAMgoH,EAAQ,KAAAhoH,OAAIgT,GAEhC,OAAOk1G,CACX,CAVI,OAAOA,CAUX,EAEGD,EAAY,EAhEdpU,EAqEKG,cAAgBp/G,IAAiE,IAAhE,KAAET,EAAI,KAAE0H,EAAI,KAAEogD,KAAS4zD,GAAyBj7G,EAC3E,MAAMuzH,EAAQN,EAAKC,iBAiBnB,OAhBiCz7E,EAAAA,EAAYC,MAAM,IAC5CujE,EACHuY,OAAQ,SACRvsH,OACAmjF,MAAO,EACPqpC,UAAW,EACXpsE,OACA9nD,OACAm0H,MAAO,SACPH,QACAx5B,MAAO,GACPwhB,MAAO,CAAEl8F,EAAG,EAAGoiE,EAAG,GAClB92E,OAAQ08C,EAAQm/B,EAAAA,EAAaD,OAAO94B,QAAQ,GAC5CtgD,QAASomH,EAAQ/sC,EAAAA,EAAaD,OAAO94B,QAAQ,GAC7CoS,UAAWu9B,EAAAA,EAAYC,YAEN,6ECzF7B,MAAMs2B,EAAkB,CACpB1sH,KAAMu6D,EAAAA,GAASC,IACfliE,KAAM,GACNmqF,SAAU,GACVxoB,UAAW,GACXH,qBAAsB,GACtBE,sBAAuB,GACvBG,YAAa,GACbsQ,gBAAiB,GACjBtT,SAAU,GACVC,UAAW,IAGTu1D,EAAsBA,CAACjpH,EAAewC,KACxC,MACM0mH,EADMpqE,KAAKklB,IAAIhkE,EAAOwC,GACR,IACd2mH,EAAerqE,KAAKsqE,KAAKtqE,KAAKuqE,IAAIH,EAAO,GAAK,GAIpD,MAAO,CAAEI,WAHUtpH,EAAQmpH,EAGND,QAAOK,YAFR/mH,EAAS2mH,EAEY,EAGvCK,EAAyB,GAExB,MAAM7M,EAWT,uBAAcE,CAAiBjnD,EAAa3P,GACxC,MAAMwjE,EAAcxjE,EACfzzC,QAAQyoC,GAAMA,EAAErmD,OAChBuK,KAAK87C,IACF,MAAMotE,EAAMptE,EAAErmD,KAAMu+C,MAAM,KAAK,GAC/B,OAAO1H,SAAS48E,EAAI,IAE5B,GAAIoB,EAAYv9G,OAAQ,CACpB,MAAMtX,EAAOghE,EAAKhhE,KAAMu+C,MAAM,KAAK,GAC7BgxB,EAAMrlB,KAAKqlB,OAAOslD,GAAe,EACvC,MAAM,GAANhpH,OAAU7L,EAAI,KAAA6L,OAAI0jE,EACtB,CACA,MAAM,GAAN1jE,OAAUm1D,EAAKhhE,KAAI,KACvB,EAyRH80H,EAjTY/M,EAAAA,EAGKyG,YAAc,eAACuG,EAAiBj2G,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAAgC,QAAfA,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAGmjD,EAAAA,GAASC,OAChED,EAAAA,GAASC,IAAM,WAAU,OAAK,IAAAr2D,OAAQkpH,EAAY,EAAI,EAJ3DhN,EAMKC,cAAgB,WAA4B,IAA3BgN,EAAgBl2G,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC9C,MAAO9e,EAAMyzH,GAAOuB,EAASz2E,MAAM,KACnC,MAAgB,aAATv+C,GAAoBuS,QAAQkhH,EAAIn8G,SAAWopC,OAAOkzE,SAAS/8E,SAAS48E,GAC/E,EATS1L,EA0BKG,aAAe,SAAC72D,GAAwE,IAAnD84B,EAAgBrrE,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAI6iD,EAAiB7iD,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAEtF6iD,IAAc7xD,EAAAA,GAAKC,IAAI,0CACvB4xD,IAAc7xD,EAAAA,GAAKC,IAAI,0CAEvB4xD,EAAY7xD,EAAAA,GAAKC,IAAI,uCAGzB,IAAIklH,EADmB,WAAsC,SAAAppH,OAAzBiT,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAkC,CACpDo2G,CAAe/qC,EAAUxoB,GAC9C,GAAKtQ,EAAMmK,MAAM17C,GAAMA,EAAE9f,OAASi1H,IAE3B,CACH,IAAIp2G,EAAI,EAGR,IAFAo2G,EAAc,GAAAppH,OAAMs+E,EAAQ,KAAAt+E,OAAIgT,GAEzBwyC,EAAMmK,MAAM17C,GAAMA,EAAE9f,OAASi1H,KAChCA,EAAc,GAAAppH,OAAMs+E,EAAQ,KAAAt+E,OAAIgT,GAChCA,IAEJ,OAAOo2G,CACX,CAVI,OAAOA,CAWf,EA/CSlN,EAmDKoN,eAAiB,SAC3BC,EACAhqH,EACAwC,GAES,IADTlG,EAAcoX,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAGmjD,EAAAA,GAASC,IAE1B,OAAQkzD,GACJ,KAAKnrC,EAAAA,GAAUmB,UACX,OAAO0pC,EAAKO,gBAAgBjqH,EAAOwC,EAAQlG,GAC/C,KAAKuiF,EAAAA,GAAU6P,sBACX,OAAOg7B,EAAKQ,0BAA0BlqH,EAAOwC,EAAQlG,GACzD,KAAKuiF,EAAAA,GAAUgB,gBACX,OAAO6pC,EAAKS,qBAAqBnqH,EAAOwC,EAAQlG,GACpD,KAAKuiF,EAAAA,GAAUc,iBACX,OAAO+pC,EAAKU,sBAAsBpqH,EAAOwC,EAAQlG,GACrD,KAAKuiF,EAAAA,GAAUwrC,mBACX,OAAOX,EAAKY,wBAAwBtqH,EAAOwC,GAC/C,KAAKq8E,EAAAA,GAAU0rC,oBACX,OAAOb,EAAKc,yBAAyBxqH,EAAOwC,GAEhD,KAAKq8E,EAAAA,GAAU4rC,mBACX,OAAOf,EAAKgB,wBAAwB1qH,EAAOwC,GAC/C,KAAKq8E,EAAAA,GAAU8rC,oBACX,OAAOjB,EAAKkB,yBAAyB5qH,EAAOwC,GAChD,KAAKq8E,EAAAA,GAAUgsC,sBACX,OAAOnB,EAAKoB,2BAA2B9qH,EAAOwC,GAClD,KAAKq8E,EAAAA,GAAUe,uBACX,OAAO8pC,EAAKqB,4BAA4B/qH,EAAOwC,GAEnD,KAAKq8E,EAAAA,GAAUmsC,MACX,OAAOtB,EAAKuB,QAAQjrH,EAAOwC,EAAQ,EAAGq8E,EAAAA,GAAUmsC,OACpD,KAAKnsC,EAAAA,GAAUqsC,QACX,OAAOxB,EAAKuB,QAAQjrH,EAAOwC,EAAQ,GAAIq8E,EAAAA,GAAUqsC,SACrD,KAAKrsC,EAAAA,GAAUssC,SACX,OAAOzB,EAAKuB,QAAQjrH,EAAOwC,EAAQ,IAAKq8E,EAAAA,GAAUssC,UACtD,KAAKtsC,EAAAA,GAAUusC,OACX,OAAO1B,EAAKuB,QAAQjrH,EAAOwC,EAAQ,IAAKq8E,EAAAA,GAAUusC,QAEtD,KAAKvsC,EAAAA,GAAUwsC,KACX,OAAO3B,EAAK4B,WAAWtrH,EAAOwC,GAElC,QACI,MAAM,IAAI9N,MAAM,OAAD+L,OAAQupH,EAAS,sBAE5C,EA/FSrN,EAkGMsN,gBAAkB,CAACjqH,EAAewC,EAAgBlG,KACtD,IACA0sH,EACH1sH,OACAsiF,MAAOC,EAAAA,GAAUmB,UAEjBe,mBAAoB,CAAE/gF,QAAOwC,YAxG5Bm6G,EA4GMuN,0BAA4B,CAAClqH,EAAewC,EAAgBlG,KAChE,IACA0sH,EACH1sH,OACAsiF,MAAOC,EAAAA,GAAU6P,sBAEjB3N,mBAAoB,CAAE/gF,QAAOwC,YAlH5Bm6G,EAyHMwN,qBAAuB,CAACnqH,EAAewC,EAAgBlG,KAC3D,IACA0sH,EACHpqC,MAAOC,EAAAA,GAAUgB,gBAMjBkB,mBAAoBkoC,EAAoBzmH,EAAQxC,KAlI/C28G,EAqIMyN,sBAAwB,CAACpqH,EAAewC,EAAgBlG,KAC5D,IACA0sH,EACH1sH,OACAsiF,MAAOC,EAAAA,GAAUc,iBAMjBoB,mBAAoBkoC,EAAoBjpH,EAAOwC,KA/I9Cm6G,EAkJM2N,wBAA0B,CAACtqH,EAAewC,KAC9C,IACAwmH,EACHpqC,MAAOC,EAAAA,GAAUwrC,mBAEjBtpC,mBAAoBkoC,EAAoBjpH,EAAOwC,KAvJ9Cm6G,EA0JM6N,yBAA2B,CAACxqH,EAAewC,KAC/C,IACAwmH,EACHpqC,MAAOC,EAAAA,GAAU0rC,oBAEjBxpC,mBAAoBkoC,EAAoBzmH,EAAQxC,KA/J/C28G,EAsKM+N,wBAA0B,CAAC1qH,EAAewC,KACrD,MAAM+oH,EAAsBvrH,EAAQwpH,EAI9B7tC,EAAa,CAAE6vC,cAFChpH,EAAS,EAEK+oH,sBAAqBE,mBAD9BjpH,EAAS,EACyCkpH,aAHxD1rH,EAAQurH,GAI7B,MAAO,IACAvC,EACH2C,iBAAkB,yFAClB/sC,MAAOC,EAAAA,GAAU4rC,mBAEjB1pC,mBAAoBpF,EACvB,EAlLIghC,EAoLMiO,yBAA2B,CAAC5qH,EAAewC,KACtD,MAAMipH,EAAqBzrH,EAAQwpH,EAI7B7tC,EAAa,CAAE6vC,cAHCxrH,EAAQyrH,EAGMF,oBAFR/oH,EAAS,EAEoBipH,qBAAoBC,aADxDlpH,EAAS,GAE9B,MAAO,IACAwmH,EACH2C,iBAAkB,yFAClB/sC,MAAOC,EAAAA,GAAU8rC,oBAEjB5pC,mBAAoBpF,EACvB,EAhMIghC,EAkMMmO,2BAA6B,CAAC9qH,EAAewC,KACxD,MAAMipH,EAAqBzrH,EAAQwpH,EAI7B7tC,EAAa,CAAE6vC,cAHCxrH,EAAQyrH,EAGMF,oBAFR/oH,EAAS,EAEoBipH,qBAAoBC,aADxDlpH,EAAS,GAE9B,MAAO,IACAwmH,EACH2C,iBAAkB,yFAClB/sC,MAAOC,EAAAA,GAAUgsC,sBAEjB9pC,mBAAoBpF,EACvB,EA9MIghC,EAgNMoO,4BAA8B,CAAC/qH,EAAewC,KACzD,MAAM+oH,EAAsBvrH,EAAQwpH,EAI9B7tC,EAAa,CAAE6vC,cADChpH,EAAS,EACK+oH,sBAAqBE,mBAF9BjpH,EAAS,EAEyCkpH,aAHxD1rH,EAAQurH,GAI7B,MAAO,IACAvC,EACH2C,iBAAkB,yFAClB/sC,MAAOC,EAAAA,GAAUe,uBAEjBmB,mBAAoBpF,EACvB,EA5NIghC,EAkOMsO,QAAU,CAACjrH,EAAewC,EAAgBi9E,EAAkBb,KACvE,IAAIgtC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEJh1H,QAAQ6Y,IAAI,CAAE9P,QAAOwC,SAAQi9E,UAC7B,MAAMysC,EACQ,IAAVzsC,GAAyB,MAAVA,EACT3gC,KAAKqtE,KAJK,KAIAnsH,EAAsB,KAAO,IACvC8+C,KAAKqtE,KALK,KAKA3pH,EAAuB,KAAO,IAClD,OAAQi9E,GACJ,QACA,KAAK,EACL,KAAK,IACDmsC,EAAgB5rH,EAChB6rH,EAAqBrpH,EACrBspH,EAAWI,EACXH,EAAqBvpH,EAAS,EAC9BwpH,EAAYE,EACZD,EAAsBzpH,EACtB,MACJ,KAAK,GACL,KAAK,IACDopH,EAAgBppH,EAChBqpH,EAAqB7rH,EACrB8rH,EAAWI,EACXH,EAAqBvpH,EAAS,EAC9BwpH,EAAYE,EACZD,EAAsBjsH,EAI9B,MAAM27E,EAAa,CACfiwC,gBACAC,qBACAC,WACAC,qBACAC,YACAC,uBAEJ,MAAO,IAAKjD,EAAUpqC,QAAOmC,mBAAoBpF,EAAY,EA7QxDghC,EAgRM2O,WAAa,CAACtrH,EAAewC,KACxC,MAAM4pH,EAAoB,IAARpsH,EACZqsH,EAAkBD,EAAYA,EAAY,EAE1CE,EAAgCD,EAAiB,EAAI,IAErDE,GADoBF,EAAiB,IACEC,GAAiC,EAExEE,EAAsB,IAAThqH,EACbiqH,EAAmBD,EAAaA,EAAa,EAC7CE,EAA8BD,EAAkB,EAAI,IAGpDE,GADqBF,EAAkB,IACDC,GAA+B,EAC3E,MAAO,IACA1D,EACHpqC,MAAOC,EAAAA,GAAUwsC,KACjB3sC,aAAc,CACV,CAAEhqE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG63G,EAAiBz1C,EAAG,GACzB,CAAEpiE,EAAG63G,EAAiBz1C,EAAG61C,GACzB,CAAEj4G,EAAG63G,EAAkBD,EAA+Bx1C,EAAG61C,GACzD,CAAEj4G,EAAG63G,EAAkBD,EAA+Bx1C,EAAG61C,EAAgBD,GACzE,CAAEh4G,EAAG63G,EAAiBz1C,EAAG61C,EAAgBD,GACzC,CAAEh4G,EAAG63G,EAAiBz1C,EAAmB,EAAhB61C,EAAoBD,GAC7C,CAAEh4G,EAAG,EAAGoiE,EAAmB,EAAhB61C,EAAoBD,GAC/B,CAAEh4G,EAAG,EAAGoiE,EAAG61C,EAAgBD,GAC3B,CAAEh4G,GAAI63G,EAAiBz1C,EAAG61C,EAAgBD,GAC1C,CAAEh4G,GAAI63G,EAAiBz1C,EAAG61C,GAC1B,CAAEj4G,EAAG,EAAGoiE,EAAG61C,IAElB,8GCtUF,MAAMnW,EAaT,uBAAcqG,CAAiBtlD,EAAqB7D,GAChD,MAAMk5D,EAAkBl5D,EAAUlhD,OAAOxa,KAAK4kH,eAAez9G,KAAK8sE,IAC9D,MAAMo8C,EAAMp8C,EAAGr3E,KAAMu+C,MAAM,KAAK,GAChC,OAAO1H,SAAS48E,EAAI,IAExB,GAAIuE,EAAgB1gH,OAAQ,CACxB,MAAMtX,EAAO2iE,EAAS3iE,KAAMu+C,MAAM,KAAK,GACjCgxB,EAAMrlB,KAAKqlB,OAAOyoD,GAAmB,EAC3C,MAAM,GAANnsH,OAAU7L,EAAI,KAAA6L,OAAI0jE,EACtB,CACA,MAAM,GAAN1jE,OAAU82D,EAAS3iE,KAAI,KAC3B,EA6GHi4H,EArIYrW,EAAAA,EAEKjC,WAAa,CAACgC,EAAyB7iD,IAC1C8iD,EAAgBoG,cAAcrG,GAC/BC,EAAgBqG,iBAAiBtG,EAAc7iD,GAC/C8iD,EAAgBsG,aAAavG,EAAaj6G,KAAOo3D,GALlD8iD,EAOK4M,YAAc,WAA0B,wBAAA3iH,QAAJiT,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAqC,EAAC,EAPlF8iG,EASKoG,cAAiBrlD,IAC3B,MAAO3iE,EAAMyzH,GAAO9wD,EAAS3iE,KAAMu+C,MAAM,KACzC,MAAgB,mBAATv+C,GAA0BuS,QAAQkhH,EAAIn8G,SAAWopC,OAAOkzE,SAAS/8E,SAAS48E,GAAK,EAXjF7R,EA0BKsG,aAAe,CAACxgH,EAAoBo3D,KAC9C,IAAI+0D,EAAW,GACf,OAAQnsH,GACJ,KAAK49D,EAAAA,EAAaK,SACdkuD,EAAW/jH,EAAAA,GAAKC,IAAI,qBACpB,MACJ,KAAKu1D,EAAAA,EAAagB,QACdutD,EAAW/jH,EAAAA,GAAKC,IAAI,oBACpB,MACJ,KAAKu1D,EAAAA,EAAaW,UACd4tD,EAAW/jH,EAAAA,GAAKC,IAAI,sBACpB,MACJ,KAAKu1D,EAAAA,EAAaG,eACdouD,EAAW/jH,EAAAA,GAAKC,IAAI,2BACpB,MACJ,KAAKu1D,EAAAA,EAAakB,aACdqtD,EAAW/jH,EAAAA,GAAKC,IAAI,yBACpB,MACJ,KAAKu1D,EAAAA,EAAaO,iBACdguD,EAAW/jH,EAAAA,GAAKC,IAAI,6BACpB,MACJ,KAAKu1D,EAAAA,EAAaL,QACd4uD,EAAW/jH,EAAAA,GAAKC,IAAI,oBACpB,MACJ,KAAKu1D,EAAAA,EAAaoB,WACdmtD,EAAW/jH,EAAAA,GAAKC,IAAI,uBACpB,MACJ,KAAKu1D,EAAAA,EAAaC,cACdsuD,EAAW/jH,EAAAA,GAAKC,IAAI,0BACpB,MACJ,KAAKu1D,EAAAA,EAAac,OACdytD,EAAW/jH,EAAAA,GAAKC,IAAI,mBACpB,MACJ,KAAKu1D,EAAAA,EAAaS,KACd8tD,EAAW/jH,EAAAA,GAAKC,IAAI,iBACpB,MACJ,KAAKu1D,EAAAA,EAAab,KACdovD,EAAW/jH,EAAAA,GAAKC,IAAI,iBACpB,MACJ,KAAKu1D,EAAAA,EAAag7C,OACduT,EAAW/jH,EAAAA,GAAKC,IAAI,mBACpB,MACJ,KAAKu1D,EAAAA,EAAag9C,WACduR,EAAW/jH,EAAAA,GAAKC,IAAI,uBAmB5B,MAfmB+jH,MACf,IAAIC,EAAaF,EACjB,GAAK/0D,EAAUtD,MAAM17C,GAAMA,EAAE9f,OAAS+zH,IAE/B,CACH,IAAIl1G,EAAI,EAGR,IAFAk1G,EAAU,GAAAloH,OAAMgoH,EAAQ,KAAAhoH,OAAIgT,GAErBigD,EAAUtD,MAAM17C,GAAMA,EAAE9f,OAAS+zH,KACpCl1G,IACAk1G,EAAU,GAAAloH,OAAMgoH,EAAQ,KAAAhoH,OAAIgT,GAEhC,OAAOk1G,CACX,CAVI,OAAOA,CAUX,EAEGD,EAAY,EAxFdlS,EA6FKE,eAAkBoW,GAEOhgF,EAAAA,EAAYC,MAC3C8/E,EAAKE,OAAO,IACLD,EACH33D,WAAYs9B,EAAAA,EAAYC,cAlG3B8jB,EAwGKuW,OAAU3zG,IACpB,MAAMha,EAAkB,IACjBga,EACH+7C,WAAY/7C,EAAK+7C,WACjBlR,OAAQ7qC,EAAK6qC,OACb3nD,KAAM8c,EAAK9c,KACX1H,KAAMwkB,EAAKxkB,KACXoqF,YAAa5lE,EAAK4lE,YAClBG,YAAa/lE,EAAK+lE,YAClBE,kBAAmBjmE,EAAKimE,mBAAqBjmE,EAAK9c,OAAS49D,EAAAA,EAAaK,SACxEv6D,MAAOoZ,EAAKpZ,MACZwC,OAAQ4W,EAAK5W,OACb88E,iBAAkBlmE,EAAKkmE,kBAAoB,CAAE5qE,EAAG,KAAMoiE,EAAG,OAGvDk2C,EAAY5tH,EAAKY,MAAS,EAC1BitH,EAAa7tH,EAAKoD,OAAU,EAWlC,OAVApD,EAAKy7E,OAAS,CACV,CAAEnmE,GAAIs4G,EAAWl2C,GAAIm2C,GACrB,CAAEv4G,EAAGs4G,EAAWl2C,GAAIm2C,GACpB,CAAEv4G,EAAGs4G,EAAWl2C,EAAGm2C,GACnB,CAAEv4G,GAAIs4G,EAAWl2C,EAAGm2C,GACpB,CAAEv4G,GAAIs4G,EAAWl2C,GAAIm2C,IAGzB7tH,EAAKo2E,WAAap2E,EAAKy7E,OAAO17E,KAAKuV,GAAMghE,EAAAA,EAAW4gB,YAAY5hF,EAAGtV,EAAKkgF,oBAEjElgF,CAAI,mGClIZ,MAAMskH,GAyMZwJ,EAzMYxJ,EAAAA,EACKyJ,YAAc,WAA+B,IAA9BlnE,EAAmBvyC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAE/C,OADqBvM,QAAQ8+C,EAAM/5C,UAAY+5C,EAAMmK,MAAMnV,IAAC,IAAAmyE,EAAA,QAAwB,QAAnBA,EAACnyE,EAAE29D,wBAAgB,IAAAwU,GAAlBA,EAAoBC,YAAY,GAEtG,EAJS3J,EAQK4J,eAAiB,CAACluH,EAAa6mD,KAAyC,IAADsnE,EACjF,MAAMC,EAAsBN,EAAKO,0BAA0BruH,GACrDsuH,EAAiBR,EAAKS,oBAAoBvuH,EAAM6mD,GAChD2nE,EAAoBV,EAAKW,oBAAoBzuH,GAC7C0uH,EAA4BZ,EAAKa,iCAAiC3uH,GAClE4uH,EAAwBF,IAA8B/U,EAAAA,EAAQgD,KAC9DkS,EAAwD,QAAhCV,EAAGnuH,EAAKknD,gCAAwB,IAAAinE,OAAA,EAA7BA,EAA+Bj2E,QAC1D42E,EAAkB/mH,QACpBumH,GAAkBE,GAAqBI,GAAyBC,GAGpE,MAAO,CACHT,sBACAE,iBACAE,oBACAI,wBACAX,YAAaa,EACbrV,cAAeqU,EAAKiB,kBAAkBD,EAAiB9uH,EAAKgvH,2BAC5DC,kBAAmBnB,EAAKiB,kBAAkBT,EAAgBtuH,EAAKgvH,2BAC/DN,4BACH,EA5BIpK,EA+BM+J,0BAA6B73D,IACxC,IAAI04D,EACAnnH,QAAQyuD,EAAK8xD,eACbvgH,QAAQyuD,EAAKmpB,WACb53E,QAAQyuD,EAAKW,YACbpvD,QAAQyuD,EAAKQ,uBACbjvD,QAAQyuD,EAAKU,uBAUjB,OARIV,EAAK8xD,eAAiB9gD,EAAAA,GAAiBC,QAAUjR,EAAKt5D,OAASu6D,EAAAA,GAASC,MACxEw3D,EAAaA,GAAcnnH,QAAQyuD,EAAKa,cAAgBtvD,QAAQyuD,EAAKmR,kBAGrEnR,EAAKt5D,OAASu6D,EAAAA,GAASG,OACvBs3D,EAAaA,GAAcnnH,QAAQyuD,EAAK6H,WAGrC6wD,CAAU,EA/CZ5K,EAkDMiK,oBAAsB,CAACvuH,EAAa6mD,KAAyB,IAADsoE,EAAAC,EAAAC,EAAAC,EACvE,IAAIJ,EACApB,EAAKO,0BAA0BruH,IAC/B+H,QAAyB,QAAlBonH,EAACnvH,EAAKqoH,oBAAY,IAAA8G,OAAA,EAAjBA,EAAmBI,cAC3BxnH,QAAqC,QAA9BqnH,EAACpvH,EAAKknD,gCAAwB,IAAAkoE,OAAA,EAA7BA,EAA+B71E,cAE3C,MAAMi2E,EACFznH,QACI8+C,EAAMzzC,QACDyoC,GAAMA,EAAEysE,eAAiBtoH,EAAKsoH,cAAgBzsE,EAAEgJ,SAAW7kD,EAAK6kD,QAAUhJ,EAAE3+C,OAAS8C,EAAK9C,OAC7F4P,UACA/E,QAAQ/H,EAAKwkH,uBAQvB,OAPA3sH,QAAQ6Y,IAAI,sBAAuB,CAC/B++G,2BAA4BD,EAC5BN,aACAQ,eAAgB3nH,QAAyB,QAAlBsnH,EAACrvH,EAAKqoH,oBAAY,IAAAgH,OAAA,EAAjBA,EAAmBE,aAC3CI,aAAc5nH,QAAqC,QAA9BunH,EAACtvH,EAAKknD,gCAAwB,IAAAooE,OAAA,EAA7BA,EAA+B/1E,gBAEzD21E,EAAaA,IAAeM,EACrBN,CAAU,EArEZ5K,EAwEMqK,iCAAoC3uH,IAC/C,MAAM,SAAEq0D,EAAW,GAAE,UAAEC,EAAY,IAAOt0D,EACpC4vH,EAAkB,IAAIv7D,KAAaC,GAAWv0D,KAAKsU,IAAC,IAAAw7G,EAAA,OAAuB,QAAvBA,EAAKx7G,EAAEmlG,wBAAgB,IAAAqW,OAAA,EAAlBA,EAAoBpW,aAAa,IAChG,OAAImW,EAAgBpoF,SAASmyE,EAAAA,EAAQrkH,OAC1BqkH,EAAAA,EAAQrkH,MACRs6H,EAAgBpoF,SAASmyE,EAAAA,EAAQC,MACjCD,EAAAA,EAAQC,KAEZD,EAAAA,EAAQgD,IAAI,EAhFd2H,EAmFKyK,kBAAoB,CAC9Be,EACA7O,IAEkC,OAA9BA,QAA8B,IAA9BA,GAAAA,EAAgClyD,oBACzB4qD,EAAAA,EAAQrkH,MACRw6H,EACAnW,EAAAA,EAAQgD,KAEZhD,EAAAA,EAAQC,KA5FV0K,EA+FKC,sCAAyC/tD,IAAiB,IAADolB,EACnE,IAAIm0C,EACAhoH,QAAQyuD,EAAK8xD,eACbvgH,QAAQyuD,EAAKmpB,WACb53E,QAAQyuD,EAAKW,YACbpvD,QAAQyuD,EAAKQ,uBACbjvD,QAAQyuD,EAAKU,wBACbnvD,QAAqC,QAA9B6zE,EAACplB,EAAKtP,gCAAwB,IAAA00B,OAAA,EAA7BA,EAA+BriC,cAEvCid,EAAK8xD,eAAiB9gD,EAAAA,GAAiBC,SACvCsoD,EAAiBA,GAAkBhoH,QAAQyuD,EAAKa,cAAgBtvD,QAAQyuD,EAAKmR,kBAEjF,MAAMqoD,EAAuBjoH,QAAQ+lH,EAAKW,oBAAoBj4D,IACxDy5D,EAAyBnC,EAAKa,iCAAiCn4D,KAAUmjD,EAAAA,EAAQgD,KAIvF,OAFmBoT,GAAkBC,GAAwBC,IAEvCz5D,EAAKguD,qBAAqB,EAhH3CF,EAuHK4L,kBAAoB,CAAClwH,EAAgBq0D,KAC/C,MAAMi6D,EAAiBR,EAAKqC,uBAAuBnwH,EAAMq0D,GACnDm6D,EAAoBV,EAAKW,oBAAoBzuH,GAC7CiuH,EAAclmH,QAAQumH,GAAkBE,GAC9C,MAAO,CACHP,cACAxU,cAAeqU,EAAKiB,kBAAkBd,EAAajuH,EAAKgvH,2BACxDC,kBAAmBnB,EAAKiB,kBAAkBT,EAAgBtuH,EAAKgvH,2BAC/DV,iBACAE,oBACH,EAjIIlK,EAoIK6L,uBAAyB,CAACnwH,EAAgBq0D,KACpD,IAAI66D,EAAannH,QAAQ/H,EAAKs9C,MAW9B,OATI+W,EAASjhD,QACJq2B,GACGA,EAAEqsB,YAAc91D,EAAK81D,WACrBrsB,EAAEvsC,OAAS8C,EAAK9C,MAChBonH,EAAe8L,iCAAiC3mF,KACtD38B,OAAS,IAEXoiH,EAAaA,GAAcnnH,QAAQ/H,EAAKwkH,wBAErC0K,CAAU,EAhJZ5K,EAuJK+L,mBAAqB,CAACrwH,EAAiBs0D,KACjD,MAAMg6D,EAAiBR,EAAKwC,uBAAuBtwH,EAAMs0D,GACnDk6D,EAAoBV,EAAKW,oBAAoBzuH,GAC7CiuH,EAAclmH,QAAQumH,GAAkBE,GAC9C,MAAO,CACHP,cACAK,iBACA7U,cAAeqU,EAAKiB,kBAAkBd,EAAajuH,EAAKgvH,2BACxDC,kBAAmBnB,EAAKiB,kBAAkBT,EAAgBtuH,EAAKgvH,2BAC/DR,oBACH,EAjKIlK,EAmKKgM,uBAAyB,CAACtwH,EAAiBs0D,KACrD,IAAI46D,EAAannH,QAAQ/H,EAAKY,QAAUmH,QAAQ/H,EAAKoD,QAiBrD,OAfIkxD,EAAUlhD,QACL8vE,GACGA,EAAGntB,aAAe/1D,EAAK+1D,YACvBmtB,EAAGhmF,OAAS8C,EAAK9C,MACjBonH,EAAe8L,iCAAiCltC,KACtDp2E,OAAS,IAEXoiH,EAAaA,GAAcnnH,QAAQ/H,EAAKwkH,wBAExC,CAAC1pD,EAAAA,EAAaK,SAAUL,EAAAA,EAAac,OAAQd,EAAAA,EAAaC,eAAevzB,SAASxnC,EAAK9C,QACvFgyH,EAAannH,QAAQ/H,EAAK4/E,cAE1B5/E,EAAK9C,OAAS49D,EAAAA,EAAaK,UAAYn7D,EAAK4/E,cAAgBC,EAAAA,EAAQC,MACpEovC,EAAannH,QAAQ/H,EAAK+/E,cAEvBmvC,CAAU,EArLZ5K,EA0LK8L,iCAAoCpwH,GAC5B,CAACA,EAAK61D,mBACY7E,MAAMwlC,KAAc,OAAJA,QAAI,IAAJA,GAAAA,EAAMjkC,WA5LrD+xD,EAgMKmK,oBAAuBzuH,IAAoB,IAADuwH,EAAAt7D,EAAAC,EAAAC,EAAAC,EACpD,OACqB,QAAjBm7D,EAAAvwH,EAAKqoH,oBAAY,IAAAkI,OAAA,EAAjBA,EAAmBhB,eACD,QADYt6D,EAC9Bj1D,EAAK01D,qBAAa,IAAAT,OAAA,EAAlBA,EAAoBs6D,eACC,QADUr6D,EAC/Bl1D,EAAK21D,wBAAgB,IAAAT,OAAA,EAArBA,EAAuBq6D,eACE,QADSp6D,EAClCn1D,EAAK41D,4BAAoB,IAAAT,OAAA,EAAzBA,EAA2Bo6D,eACL,QADgBn6D,EACtCp1D,EAAK61D,yBAAiB,IAAAT,OAAA,EAAtBA,EAAwBm6D,YAAW,mGChLxC,MAAMiB,EA0CT,sBAAeC,IAAuCn8G,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAE/CE,SAASgiD,IACwB,kDAA/BA,EAAKU,wBACLV,EAAKU,sBAAwB,0CAEJ,2CAAzBV,EAAKmR,kBACLnR,EAAKmR,gBAAkB,iDAE3BnR,EAAKU,sBARoB,eAAC18D,EAAa8Z,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAE,MAAgB,YAAV9Z,OAAsBC,EAAYD,CAAK,CAQ5Dk2H,CAAqBl6D,EAA4B,sBAAE,GAExF,EAuGJm6D,EA5JaH,EAAAA,EACKI,mBAAqB36H,IAAoE,IAAnE,OAAE4C,EAAQguD,MAAOgqE,EAAc,IAAiB56H,EAChF,MAAM4wD,EAAiBgqE,EAAY9wH,KAAK2hF,IACpC,MAAMlrB,EAAcm6D,EAAKG,OAAOpvC,GA2BhC,OAzBI35E,QAAQyuD,EAAKmR,mBACbnR,EAAKa,YACDb,EAAKmR,kBAAoBriE,EAAAA,GAAKC,IAAI,qDAC5Bs6E,EAAAA,EAAQG,GACRH,EAAAA,EAAQC,KAGtBtpB,EAAKnC,WAAsB,OAAVqtB,QAAU,IAAVA,OAAU,EAAVA,EAAYjjC,UAAW,IACnC1+C,KAAKC,IAAU,IAAD+wH,EACX,MAAMj5D,EAAU64D,EAAKK,cAAchxH,GAC7BixH,EAA0B,OAANp4H,QAAM,IAANA,GAAgB,QAAVk4H,EAANl4H,EAAQw7D,gBAAQ,IAAA08D,OAAV,EAANA,EAAkBzuE,MAAMhtC,GAAMA,EAAEzV,KAAOi4D,EAAQhC,YAEzE,OADAgC,EAAQjT,OAA0B,OAAjBosE,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBz1E,QAC7Bsc,CAAO,IAEjB1kD,QAAQq2B,GAAMA,EAAEob,SAAW2R,EAAK3R,SAErC2R,EAAKlC,WAAaotB,EAAWptB,WAAa,IACrCv0D,KAAKC,IAAU,IAADkxH,EACX,MAAM/4D,EAAWw4D,EAAKQ,WAAWnxH,GAC3BoxH,EAA2B,OAANv4H,QAAM,IAANA,GAAqB,QAAfq4H,EAANr4H,EAAQo9D,qBAAa,IAAAi7D,OAAf,EAANA,EAAuB5uE,MAAMhtC,GAAMA,EAAEzV,KAAOs4D,EAASpC,aAEhF,OADAoC,EAASj7D,KAAyB,OAAlBk0H,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBl0H,KAC7Bi7D,CAAQ,IAElB/kD,QAAQq2B,GAAMA,EAAEob,SAAW2R,EAAK3R,SAE9B2R,CAAI,IAEfm6D,EAAKF,gBAAgB5pE,GACrB,MAAMwqE,EAAY,CAAEt8H,MAAO,CAAE8xD,SAAS47B,UAAiB,OAAN5pF,QAAM,IAANA,OAAM,EAANA,EAAQ4pF,WAEzD,OADAhyE,EAAAA,EAAOC,IAAI,mCAAoC2gH,GACxCA,CAAS,EAnCXb,EAuDKM,OAAUt6D,IAA8B,IAAD86D,EAAAC,EAAAC,EAAAC,EAAAC,EAIjD,OAHKl7D,EAAKt5D,OACNs5D,EAAKt5D,KAAOu6D,EAAAA,GAASC,KAElB,CACHx6D,KAAMu6D,EAAAA,GAASC,IACf7S,OAAQ2R,EAAK3R,OACbrvD,KAAMghE,EAAKhhE,KACXgqF,MAAOhpB,EAAKgpB,MAEZ8oC,aAAc9xD,EAAK8xD,aACnB3oC,SAA0B,QAAlB2xC,EAAE96D,EAAKm7D,mBAAW,IAAAL,OAAA,EAAhBA,EAAkBM,UAC5Bz6D,UAA2B,QAAlBo6D,EAAE/6D,EAAKm7D,mBAAW,IAAAJ,OAAA,EAAhBA,EAAkBM,WAC7BlqD,gBAAiC,QAAlB6pD,EAAEh7D,EAAKm7D,mBAAW,IAAAH,OAAA,EAAhBA,EAAkBM,kBACnC96D,qBAAsC,QAAlBy6D,EAAEj7D,EAAKm7D,mBAAW,IAAAF,OAAA,EAAhBA,EAAkBM,uBACxC76D,sBAAuC,QAAlBw6D,EAAEl7D,EAAKm7D,mBAAW,IAAAD,OAAA,EAAhBA,EAAkBM,yBAEzCz6D,eAAgBf,EAAKc,uBAGrBqqB,mBAAoBnrB,EAAKmrB,mBACzBjG,OAAQllB,EAAKklB,OACbD,OAAQjlB,EAAKilB,OAehB,EA5FI+0C,EA+FKQ,cAAiBl5D,IACpB,CACHhC,UAAWgC,EAAQj4D,GACnBglD,OAAQiT,EAAQtc,QAEhBt+C,KAAM46D,EAAQ56D,KACd1H,KAAMsiE,EAAQtiE,KACd8nD,KAAsB,IAAhBwa,EAAQxa,KAEdojC,cAAe5oB,EAAQ4oB,cACvBC,4BAA6B7oB,EAAQ6oB,4BAErCrrE,EAAGwiD,EAAQxiD,EACXoiE,EAAG5f,EAAQ4f,EACXsY,MAAOl4B,EAAQk4B,MACf3P,MAAOvoB,EAAQuoB,QA9GdmwC,EA8HKW,WAAch5D,SACE19D,IAAtB09D,EAASqwD,WACTrwD,EAASqwD,SAAW,GAEjB,CACHtrH,KAAMi7D,EAASj7D,KACf64D,WAAYoC,EAASt4D,GACrBglD,OAAQsT,EAAStT,OACjBrvD,KAAM2iE,EAAS3iE,KAEfoqF,YAAaznB,EAASynB,YACtBG,YAAa5nB,EAAS4nB,YACtBE,kBAAmB9nB,EAAS8nB,kBAE5Br/E,MAAOu3D,EAASv3D,MAChBwC,OAAQ+0D,EAAS/0D,OACjBq4E,OAAQtjB,EAASsjB,OACjBrF,WAAYje,EAASie,WACrB8J,iBAAkB/nB,EAAS+nB,oCC9IhC,MAAM+xC,EAkCT,sBAAexB,CAAgB5pE,GAE3BA,EAAMryC,SAASgiD,IACwB,kDAA/BA,EAAKU,wBACLV,EAAKU,sBAAwB,0CAGJ,2CAAzBV,EAAKmR,kBACLnR,EAAKmR,gBAAkB,iDAG3BnR,EAAKU,sBAVoB,eAAC18D,EAAa8Z,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAE,MAAgB,YAAV9Z,OAAsBC,EAAYD,CAAK,CAU5Dk2H,CAAqBl6D,EAA4B,sBAAE,GAExF,EAgOJm6D,EA/QasB,EAAAA,EACKC,QAAU,EADfD,EAGKrB,mBAAqB36H,IAA2C,IAA1C,OAAE4C,GAAqB5C,EACvD,MAAM,UACFwsF,EACA57B,MAAOgqE,EAAc,GACrBx8D,SAAU89D,EAAiB,GAC3Bl8D,cAAem8D,EAAkB,IACjCv5H,EAEEguD,EAAiBgqE,EAAY9wH,KAAK2hF,IACpC,MAAMlrB,EAAcm6D,EAAKG,OAAOpvC,GAQhC,OAPAlrB,EAAKnC,SAAW89D,EACX/+G,QAAQq2B,GAAmCA,EAAEob,SAAW2R,EAAK3R,SAC7D9kD,IAAI4wH,EAAKK,eACdx6D,EAAKlC,UAAY89D,EACZh/G,QAAQiB,GAAgCA,EAAEwwC,SAAW2R,EAAK3R,SAC1D9kD,IAAI4wH,EAAKQ,YAEP36D,CAAI,IAGfm6D,EAAKF,gBAAgB5pE,GAErB,MAAMwqE,EAAY,CAAEt8H,MAAO,CAAE8xD,SAAS47B,aAEtC,OADAhyE,EAAAA,EAAOC,IAAI,mCAAoC2gH,GACxCA,CAAS,EA3BXY,EAmDKI,aAAgB7wC,IAC1B,MAAMhrB,EAAOirB,EAAAA,EAAkBC,WAAWF,GAC1C,MAAO,CACH38B,OAAQ2R,EAAK3R,OACbrvD,KAAMghE,EAAKhhE,KACX4yH,YAAa5xD,EAAK4xD,YAClB5oC,MAAOhpB,EAAKgpB,MAeZ8oC,aAAc9xD,EAAK8xD,aACnB3oC,SAAUnpB,EAAKmpB,SACfxoB,UAAWX,EAAKW,UAChBE,YAAab,EAAKa,YAClBsQ,gBAAiBnR,EAAKmR,gBACtB3Q,qBAAsBR,EAAKQ,qBAC3BE,sBAAuBV,EAAKU,sBAE5BstD,sBAAuBhuD,EAAKguD,sBAE5BjtD,eAAgBf,EAAKe,eAGrBkkB,OAAQjlB,EAAKilB,OACbC,OAAQllB,EAAKklB,OAGhB,EAzFIu2C,EA4FKK,oBAAuBx6D,IAC1B,CACHhC,UAAWgC,EAAQhC,UACnBjR,OAAQiT,EAAQjT,OAChB3nD,KAAM46D,EAAQ56D,KACd1H,KAAMsiE,EAAQtiE,KACd4yH,YAAatwD,EAAQswD,YAErB9qE,KAAMwa,EAAQxa,KACdirE,WAAYzwD,EAAQywD,WAEpB7nC,cAAe5oB,EAAQ4oB,cACvBC,4BAA6B7oB,EAAQ6oB,4BAErCrrE,EAAGwiD,EAAQxiD,EACXoiE,EAAG5f,EAAQ4f,EACXsY,MAAOl4B,EAAQk4B,MACf3P,MAAOvoB,EAAQuoB,QA7Gd4xC,EA8HKM,iBAAoBp6D,IACvB,CACHj7D,KAAMi7D,EAASj7D,KACf64D,WAAYoC,EAASpC,WACrBlR,OAAQsT,EAAStT,OACjBrvD,KAAM2iE,EAAS3iE,KACf4yH,YAAajwD,EAASiwD,YAEtBxoC,YAAaznB,EAASynB,YACtBG,YAAa5nB,EAAS4nB,YACtBE,kBAAmB9nB,EAAS8nB,kBAC5Br/E,MAAOu3D,EAASv3D,MAChBwC,OAAQ+0D,EAAS/0D,OAEjBq4E,OAAQtjB,EAASsjB,OACjBrF,WAAYje,EAASie,WACrB8J,iBAAkB/nB,EAAS+nB,mBA9I1B+xC,EA6JKnB,OAAUt6D,IAEhBA,EAAKmR,kBACLnR,EAAKa,YACDb,EAAKmR,kBAAoBriE,EAAAA,GAAKC,IAAI,qDAC5Bs6E,EAAAA,EAAQG,GACRH,EAAAA,EAAQC,KAEjBtpB,EAAKt5D,OACNs5D,EAAKt5D,KAAOu6D,EAAAA,GAASC,KAElB,CACH7S,OAAQ2R,EAAK3R,OACbrvD,KAAMghE,EAAKhhE,KACX4yH,YAAa5xD,EAAK4xD,YAClB5oC,MAAOhpB,EAAKgpB,MAEZ8oC,aAAc9xD,EAAK8xD,aACnB3oC,SAAUnpB,EAAKmpB,SACfxoB,UAAWX,EAAKW,UAChBE,YAAab,EAAKa,YAClBsQ,gBAAiBnR,EAAKmR,gBACtB3Q,qBAAsBR,EAAKQ,qBAC3BE,sBAAuBV,EAAKU,sBAE5BstD,sBAAuBhuD,EAAKguD,sBAE5BjtD,eAAgBf,EAAKe,eAGrBmkB,OAAQllB,EAAKklB,OACbD,OAAQjlB,EAAKilB,SA5LZw2C,EA6MKjB,cAAiBl5D,IACpB,CACHhC,UAAWgC,EAAQhC,UACnBjR,OAAQiT,EAAQjT,OAEhB3nD,KAAM46D,EAAQ56D,KACd1H,KAAMsiE,EAAQtiE,KACd8nD,KAAMwa,EAAQxa,KACdirE,WAAYzwD,EAAQywD,WAEpB7nC,cAAe5oB,EAAQ4oB,cACvBC,4BAA6B7oB,EAAQ6oB,4BAErCrrE,EAAGwiD,EAAQxiD,EACXoiE,EAAG5f,EAAQ4f,EACXsY,MAAOl4B,EAAQk4B,MACf3P,MAAOvoB,EAAQuoB,MAcf+nC,YAAatwD,EAAQswD,cA3OpB6J,EA+OKd,WAAch5D,SACE19D,IAAtB09D,EAASqwD,WACTrwD,EAASqwD,SAAW,GAEjB,CACHtrH,KAAMi7D,EAASj7D,KACf64D,WAAYoC,EAASpC,WACrBlR,OAAQsT,EAAStT,OACjBrvD,KAAM2iE,EAAS3iE,KACf4yH,YAAajwD,EAASiwD,YAEtBxoC,YAAaznB,EAASynB,YACtBG,YAAa5nB,EAAS4nB,YACtBE,kBAAmB9nB,EAAS8nB,kBAE5Br/E,MAAOu3D,EAASv3D,MAChBwC,OAAQ+0D,EAAS/0D,OACjBq4E,OAAQtjB,EAASsjB,OACjBrF,WAAYje,EAASie,WACrB8J,iBAAkB/nB,EAAS+nB,oCClQhC,MAAMsyC,EAkCT,sBAAe/B,CAAgB5pE,GAE3BA,EAAMryC,SAASgiD,IACwB,kDAA/BA,EAAKU,wBACLV,EAAKU,sBAAwB,0CAEJ,2CAAzBV,EAAKmR,kBACLnR,EAAKmR,gBAAkB,iDAE3BnR,EAAKU,sBARoB,eAAC18D,EAAa8Z,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAE,MAAgB,YAAV9Z,OAAsBC,EAAYD,CAAK,CAQ5Dk2H,CAAqBl6D,EAA4B,sBAAE,GAExF,EAsOJm6D,EAnRa6B,EAAAA,EACKN,QAAU,IADfM,EAGK5B,mBAAqB36H,IAAyC,IAAxC,IAAE8J,GAAmB9J,EACrD,MAAM,UACFwsF,EACA57B,MAAOgqE,EAAc,GACrBx8D,SAAU89D,EAAiB,GAC3B79D,UAAW89D,EAAkB,IAC7BryH,GAAO,CAAC,EAEN8mD,EAAiBgqE,EAAY9wH,KAAK2hF,IACpC,MAAMlrB,EAAcm6D,EAAKG,OAAOpvC,GAQhC,OAPAlrB,EAAKnC,SAAW89D,EACX/+G,QAAQq2B,GAAmCA,EAAEob,SAAW2R,EAAK3R,SAC7D9kD,IAAI4wH,EAAKK,eACdx6D,EAAKlC,UAAY89D,EACZh/G,QAAQiB,GAAgCA,EAAEwwC,SAAW2R,EAAK3R,SAC1D9kD,IAAI4wH,EAAKQ,YAEP36D,CAAI,IAGfm6D,EAAKF,gBAAgB5pE,GAErB,MAAMwqE,EAAY,CAAEt8H,MAAO,CAAE8xD,SAAS47B,aAEtC,OADAhyE,EAAAA,EAAOC,IAAI,qCAAsC2gH,GAC1CA,CAAS,EA3BXmB,EAiDKH,aAAgB7wC,IAC1B,MAAMhrB,EAAOirB,EAAAA,EAAkBC,WAAWF,GAC1C,MAAO,CACH38B,OAAQ2R,EAAK3R,OACbrvD,KAAMghE,EAAKhhE,KACX4yH,YAAa5xD,EAAK4xD,YAClB5oC,MAAOhpB,EAAKgpB,MAeZ8oC,aAAc9xD,EAAK8xD,aACnB3oC,SAAUnpB,EAAKmpB,SACfxoB,UAAWX,EAAKW,UAChBE,YAAab,EAAKa,YAClBsQ,gBAAiBnR,EAAKmR,gBACtB3Q,qBAAsBR,EAAKQ,qBAC3BE,sBAAuBV,EAAKU,sBAE5BstD,sBAAuBhuD,EAAKguD,sBAE5BjtD,eAAgBf,EAAKe,eAGrBoqB,mBAAoBnrB,EAAKmrB,mBACzBlG,OAAQjlB,EAAKilB,OACbC,OAAQllB,EAAKklB,OAIhB,EAzFI82C,EA4FKF,oBAAuBx6D,IAC1B,CACHhC,UAAWgC,EAAQhC,UACnBjR,OAAQiT,EAAQjT,OAChB3nD,KAAM46D,EAAQ56D,KACd1H,KAAMsiE,EAAQtiE,KACd4yH,YAAatwD,EAAQswD,YAErB9qE,KAAMwa,EAAQxa,KACdirE,WAAYzwD,EAAQywD,WAEpB7nC,cAAe5oB,EAAQ4oB,cACvBC,4BAA6B7oB,EAAQ6oB,4BAErCrrE,EAAGwiD,EAAQxiD,EACXoiE,EAAG5f,EAAQ4f,EACXsY,MAAOl4B,EAAQk4B,MACf3P,MAAOvoB,EAAQuoB,QA7GdmyC,EA8HKD,iBAAoBp6D,IACvB,CACHj7D,KAAMi7D,EAASj7D,KACf64D,WAAYoC,EAASpC,WACrBlR,OAAQsT,EAAStT,OACjBrvD,KAAM2iE,EAAS3iE,KACf4yH,YAAajwD,EAASiwD,YAEtBxoC,YAAaznB,EAASynB,YACtBG,YAAa5nB,EAAS4nB,YACtBE,kBAAmB9nB,EAAS8nB,kBAC5Br/E,MAAOu3D,EAASv3D,MAChBwC,OAAQ+0D,EAAS/0D,OAEjBq4E,OAAQtjB,EAASsjB,OACjBrF,WAAYje,EAASie,WACrB8J,iBAAkB5J,EAAAA,EAAWm8C,WAAWt6D,EAAS+nB,oBA9IhDsyC,EA6JK1B,OAAUt6D,IAEhBA,EAAKmR,kBACLnR,EAAKa,YACDb,EAAKmR,kBAAoBriE,EAAAA,GAAKC,IAAI,qDAC5Bs6E,EAAAA,EAAQG,GACRH,EAAAA,EAAQC,KAEjBtpB,EAAKt5D,OACNs5D,EAAKt5D,KAAOu6D,EAAAA,GAASC,KAElB,CACHx6D,KAAMu6D,EAAAA,GAASC,IACf7S,OAAQ2R,EAAK3R,OACbrvD,KAAMghE,EAAKhhE,KACX4yH,YAAa5xD,EAAK4xD,YAClB5oC,MAAOhpB,EAAKgpB,MAEZ8oC,aAAc9xD,EAAK8xD,aACnB3oC,SAAUnpB,EAAKmpB,SACfxoB,UAAWX,EAAKW,UAChBE,YAAab,EAAKa,YAClBsQ,gBAAiBnR,EAAKmR,gBACtB3Q,qBAAsBR,EAAKQ,qBAC3BE,sBAAuBV,EAAKU,sBAE5BstD,sBAAuBhuD,EAAKguD,sBAE5BjtD,eAAgBf,EAAKe,eAGrBoqB,mBAAoBnrB,EAAKmrB,mBACzBjG,OAAQllB,EAAKklB,OACbD,OAAQjlB,EAAKilB,SA9LZ+2C,EAgNKxB,cAAiBl5D,IACpB,CACHhC,UAAWgC,EAAQhC,UACnBjR,OAAQiT,EAAQjT,OAEhB3nD,KAAM46D,EAAQ56D,KACd1H,KAAMsiE,EAAQtiE,KACd8nD,KAAMwa,EAAQxa,KACdirE,WAAYzwD,EAAQywD,WAEpB7nC,cAAe5oB,EAAQ4oB,cACvBC,4BAA6B7oB,EAAQ6oB,4BAErCrrE,EAAGwiD,EAAQxiD,EACXoiE,EAAG5f,EAAQ4f,EACXsY,MAAOl4B,EAAQk4B,MACf3P,MAAOvoB,EAAQuoB,MAcf+nC,YAAatwD,EAAQswD,cA9OpBoK,EAkPKrB,WAAch5D,SACE19D,IAAtB09D,EAASqwD,WACTrwD,EAASqwD,SAAW,GAEjB,CACHtrH,KAAMi7D,EAASj7D,KACf64D,WAAYoC,EAASpC,WACrBlR,OAAQsT,EAAStT,OACjBrvD,KAAM2iE,EAAS3iE,KACf4yH,YAAajwD,EAASiwD,YAEtBxoC,YAAaznB,EAASynB,YACtBG,YAAa5nB,EAAS4nB,YACtBE,kBAAmB9nB,EAAS8nB,kBAE5Br/E,MAAOu3D,EAASv3D,MAChBwC,OAAQ+0D,EAAS/0D,OACjBq4E,OAAQtjB,EAASsjB,OACjBrF,WAAYje,EAASie,WACrB8J,iBAAkB/nB,EAAS+nB,+CC1QhC,MAAMwyC,EA4DT,sBAAejC,CAAgB5pE,GAE3BA,EAAMryC,SAASgiD,IACwB,kDAA/BA,EAAKU,wBACLV,EAAKU,sBAAwB,0CAEJ,2CAAzBV,EAAKmR,kBACLnR,EAAKmR,gBAAkB,iDAE3BnR,EAAKU,sBARoB,eAAC18D,EAAa8Z,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAE,MAAgB,YAAV9Z,OAAsBC,EAAYD,CAAK,CAQ5Dk2H,CAAqBl6D,EAA4B,sBAAE,GAExF,EAmPJm6D,EA1Ta+B,EAAAA,EACKR,QAAU,IADfQ,EAGKC,UAAa59H,IAA4B,IAAD69H,EAAAC,EAAAC,EAClD,MAAMX,EAAiBxmB,EAAAA,EAAawmB,eAAep9H,EAAMs/D,SAAUt/D,EAAM8xD,OACnEgqE,EAAyB,QAAd+B,EAAG79H,EAAM8xD,aAAK,IAAA+rE,OAAA,EAAXA,EAAa7yH,IAAI0hF,EAAAA,EAAkBC,YACjDiC,EAAuC,QAAdkvC,EAAG99H,EAAM8xD,aAAK,IAAAgsE,OAAA,EAAXA,EAAa38G,QAAO,CAAC6wC,EAAKyP,KACpDA,EAAKk4B,oBACL3nC,EAAIyP,EAAK3R,QAAW2R,EAAKk4B,mBAEtB3nC,IACR,CAAC,GAGEluD,EAAuB,CACzB4I,QAASixH,EAAaR,QACtBnyH,IAAK,CACD8mD,MAAkB,OAAXgqE,QAAW,IAAXA,OAAW,EAAXA,EAAa9wH,IAAI4wH,EAAK0B,cAC7Bh+D,SAAU89D,EAAepyH,IAAI4wH,EAAK2B,qBAClCh+D,UAA0B,QAAjBw+D,EAAE/9H,EAAMu/D,iBAAS,IAAAw+D,OAAA,EAAfA,EAAiB/yH,IAAI4wH,EAAK4B,kBACrC5uC,8BAIR,OADa5sE,KAAKC,UAAUne,EACjB,EAxBN65H,EA2BK9B,mBAAqB,CAAA36H,EAAwB88H,KAAuC,IAA9D,IAAEhzH,GAAmB9J,EACrD,MAAM,0BACF0tF,EACA98B,MAAOgqE,EAAc,GACrBx8D,SAAU89D,EAAiB,GAC3B79D,UAAW89D,EAAkB,IAC7BryH,GAAO,CAAC,EAEN8mD,EAAiBgqE,EAAY9wH,KAAK2hF,IACpC,MAAMlrB,EAAcm6D,EAAKG,OAAOpvC,EAAYqxC,GAU5C,OATAv8D,EAAKnC,SAAW89D,EACX/+G,QAAO,CAACq2B,EAAgC+K,KAAgC,OAAd29E,QAAc,IAAdA,OAAc,EAAdA,EAAgBa,eAAc19G,GAAKA,EAAEwgD,YAAcrsB,EAAEqsB,eAAethB,IAC9HphC,QAAQq2B,GAAmCA,EAAEob,SAAW2R,EAAK3R,SAC7D9kD,IAAI4wH,EAAKK,eACdx6D,EAAKlC,UAAY89D,EACZh/G,QAAO,CAACq2B,EAA6B+K,KAAiC,OAAf49E,QAAe,IAAfA,OAAe,EAAfA,EAAiBY,eAAc19G,GAAKA,EAAEygD,aAAetsB,EAAEssB,gBAAgBvhB,IAC9HphC,QAAQiB,GAAgCA,EAAEwwC,SAAW2R,EAAK3R,SAC1D9kD,IAAI4wH,EAAKQ,YAEP36D,CAAI,IAGfm6D,EAAKF,gBAAgB5pE,GAErB,MAAMwqE,EAAY,CAAEt8H,MAAO,CAAE8xD,SAAS88B,6BAEtC,OADAlzE,EAAAA,EAAOC,IAAI,qCAAsC2gH,GAC1CA,CAAS,EArDXqB,EA2EKL,aAAgB7wC,IAC1B,MAAMhrB,EAAOirB,EAAAA,EAAkBC,WAAWF,GAC1C,MAAO,CACH38B,OAAQ2R,EAAK3R,OACbrvD,KAAMghE,EAAKhhE,KACX4yH,YAAa5xD,EAAK4xD,YAClB5oC,MAAOhpB,EAAKgpB,MACZtiF,KAAMs5D,EAAKt5D,KACXmhE,SAAU7H,EAAK6H,SAcfiqD,aAAc9xD,EAAK8xD,aACnB3oC,SAAUnpB,EAAKmpB,SACfxoB,UAAWX,EAAKW,UAChBE,YAAab,EAAKa,YAClBsQ,gBAAiBnR,EAAKmR,gBACtB3Q,qBAAsBR,EAAKQ,qBAC3BE,sBAAuBV,EAAKU,sBAE5BstD,sBAAuBhuD,EAAKguD,sBAE5BjtD,eAAgBf,EAAKe,eAGrBkkB,OAAQjlB,EAAKilB,OACbC,OAAQllB,EAAKklB,OAIhB,EAnHIg3C,EAsHKJ,oBAAuBx6D,IAC1B,CACHhC,UAAWgC,EAAQhC,UACnBjR,OAAQiT,EAAQjT,OAChB3nD,KAAM46D,EAAQ56D,KACd1H,KAAMsiE,EAAQtiE,KACd4yH,YAAatwD,EAAQswD,YAErB9qE,KAAMwa,EAAQxa,KACdirE,WAAYzwD,EAAQywD,WAEpB7nC,cAAe5oB,EAAQ4oB,cACvBC,4BAA6B7oB,EAAQ6oB,4BAErCrrE,EAAGwiD,EAAQxiD,EACXoiE,EAAG5f,EAAQ4f,EACXsY,MAAOl4B,EAAQk4B,MACf3P,MAAOvoB,EAAQuoB,QAvIdqyC,EAwJKH,iBAAoBp6D,IACvB,CACHj7D,KAAMi7D,EAASj7D,KACf64D,WAAYoC,EAASpC,WACrBlR,OAAQsT,EAAStT,OACjBrvD,KAAM2iE,EAAS3iE,KACf4yH,YAAajwD,EAASiwD,YACtBI,SAAUrwD,EAASqwD,SAEnB5oC,YAAaznB,EAASynB,YACtBG,YAAa5nB,EAAS4nB,YACtBE,kBAAmB9nB,EAAS8nB,kBAC5Br/E,MAAOu3D,EAASv3D,MAChBwC,OAAQ+0D,EAAS/0D,OAEjBq4E,OAAQtjB,EAASsjB,OACjBrF,WAAYje,EAASie,WACrB8J,iBAAkB5J,EAAAA,EAAWm8C,WAAWt6D,EAAS+nB,oBAzKhDwyC,EAwLK5B,OAAS,CAACt6D,EAAmBu8D,KAQvC,GANIv8D,EAAKmR,kBACLnR,EAAKa,YACDb,EAAKmR,kBAAoBriE,EAAAA,GAAKC,IAAI,qDAC5Bs6E,EAAAA,EAAQG,GACRH,EAAAA,EAAQC,KAElBtpB,EAAKU,sBAAuB,EAExBV,EAAKQ,uBAAyB6oB,EAAAA,EAAQC,IAChCizC,EAAUE,gCAAgCz8D,EAAK8xD,aAAe9xD,EAAKt5D,MACnE61H,EAAUG,mCAAmC18D,EAAK8xD,aAAe9xD,EAAKmpB,SAAWnpB,EAAKt5D,OAC3E8hD,OAAO1pC,GAAMA,EAAEnO,QAAUqvD,EAAKU,0BAC/CV,EAAKU,2BAAwBz8D,EAErC,CACK+7D,EAAKt5D,OACNs5D,EAAKt5D,KAAOu6D,EAAAA,GAASC,KAEzB,MAAM+jB,EAASjlB,EAAKilB,OACd03C,EAAmB13C,EAAS/tC,EAAAA,GAAYwS,iBAAiBu7B,EAAO7xC,MAAM,EAAG6xC,EAAO3uE,OAAS,SAAMrS,EAErG,MAAO,CACHoqD,OAAQ2R,EAAK3R,OACbrvD,KAAMghE,EAAKhhE,KACX4yH,YAAa5xD,EAAK4xD,YAClB5oC,MAAOhpB,EAAKgpB,MACZtiF,KAAMs5D,EAAKt5D,KACXorH,aAAc9xD,EAAK8xD,aACnB3oC,SAAUnpB,EAAKmpB,SACfthB,SAAU7H,EAAK6H,SACflH,UAAWX,EAAKW,UAChBE,YAAab,EAAKa,YAClBsQ,gBAAiBnR,EAAKmR,gBACtB3Q,qBAAsBR,EAAKQ,qBAC3BE,sBAAuBV,EAAKU,sBAE5BstD,sBAAuBhuD,EAAKguD,sBAE5BjtD,eAAgBf,EAAKe,eAGrBmkB,OAAQllB,EAAKklB,OACbD,OAAQ03C,EAAmB,IAAIA,EAAkBA,EAAiB,SAAM14H,EAe3E,EAnPIi4H,EAsPK1B,cAAiBl5D,IACpB,CACHhC,UAAWgC,EAAQhC,UACnBjR,OAAQiT,EAAQjT,OAEhB3nD,KAAM46D,EAAQ56D,KACd1H,KAAMsiE,EAAQtiE,KACd8nD,KAAMwa,EAAQxa,KACdirE,WAAYzwD,EAAQywD,WAEpB7nC,cAAe5oB,EAAQ4oB,cACvBC,4BAA6B7oB,EAAQ6oB,4BAErCrrE,EAAGwiD,EAAQxiD,EACXoiE,EAAG5f,EAAQ4f,EACXsY,MAAOl4B,EAAQk4B,MACf3P,MAAOvoB,EAAQuoB,MAcf+nC,YAAatwD,EAAQswD,cApRpBsK,EAwRKvB,WAAch5D,SACE19D,IAAtB09D,EAASqwD,WACTrwD,EAASqwD,SAAW,GAEjB,CACHtrH,KAAMi7D,EAASj7D,KACf64D,WAAYoC,EAASpC,WACrBlR,OAAQsT,EAAStT,OACjBrvD,KAAM2iE,EAAS3iE,KACf4yH,YAAajwD,EAASiwD,YACtBI,SAAUrwD,EAASqwD,SAEnB5oC,YAAaznB,EAASynB,YACtBG,YAAa5nB,EAAS4nB,YACtBE,kBAAmB9nB,EAAS8nB,kBAE5Br/E,MAAOu3D,EAASv3D,MAChBwC,OAAQ+0D,EAAS/0D,OACjBq4E,OAAQtjB,EAASsjB,OACjBrF,WAAYje,EAASie,WACrB8J,iBAAkB/nB,EAAS+nB,mBCvThC,MAAMkzC,GAAAA,EACKT,UAAa59H,GAA2B29H,EAAaC,UAAU59H,GADpEq+H,EAGKxC,mBAAqB,CAACyC,EAAkBN,KAClD,MAAM1B,EAAuBt6G,KAAKW,MAAM27G,GAExC,OADA5iH,EAAAA,EAAOC,IAAI,uCAAwC2gH,GAC/CA,EAAU5vH,UAAYixH,EAAaR,QAC5BQ,EAAa9B,mBAAmBS,EAAW0B,GAElD1B,EAAU5vH,UAAY+wH,EAAaN,QAC5BM,EAAa5B,mBAAmBS,GAEvCA,EAAU5vH,UAAYwwH,EAAYC,QAC3BD,EAAYrB,mBAAmBS,GAEnCb,EAAYI,mBAAmBS,EAAU,yNCnBjD,MAAMiC,EAA+BjC,IAAgC,IAADkC,EA+BxD,QAAfA,EAAAlC,EAAUxqE,aAAK,IAAA0sE,GAAfA,EAAiB/+G,SAASgiD,IACtB,MAAMg9D,EAAcniC,EAAAA,EAAUC,kBAAkB96B,EAAKilB,SAC7BjlB,EAAKlC,WAAa,IAAIlhD,QAAQ8vE,IAClD,MAAMuwC,EAAkBpiC,EAAAA,EAAUC,kBAAkBpO,EAAG9M,YACvD,OAAQo9C,EAAY55B,SAAS65B,EAAgB,IAElCj/G,SAAQ,CAAC2jD,EAAU3jB,KAC9B38C,QAAQ6Y,IAAI,yDACZ7Y,QAAQ6Y,IAAI,mCAAoC8lD,EAAK3R,OAAQnX,EAAAA,EAAYC,MAAM,CAAE6oB,OAAM2B,cACvFtgE,QAAQ6Y,IAAI,yDAEZ,MAAM0+F,EAAO54C,EAAKilB,OAAQjnC,IAUtC,SAAsBx0C,EAAiBovG,GACnCpvG,EAAKkgF,iBAAmBkvB,EACxB,MAAMwe,EAAY5tH,EAAKY,MAAS,EAC1BitH,EAAa7tH,EAAKoD,OAAU,EAClCpD,EAAKy7E,OAAS,CACV,CAAEnmE,GAAIs4G,EAAWl2C,GAAIm2C,GACrB,CAAEv4G,EAAGs4G,EAAWl2C,GAAIm2C,GACpB,CAAEv4G,EAAGs4G,EAAWl2C,EAAGm2C,GACnB,CAAEv4G,GAAIs4G,EAAWl2C,EAAGm2C,GACpB,CAAEv4G,GAAIs4G,EAAWl2C,GAAIm2C,IAEzB7tH,EAAKo2E,WAAap2E,EAAKy7E,OAAO17E,KAAKuV,GAAMghE,EAAAA,EAAW4gB,YAAY5hF,EAAGtV,EAAKkgF,mBAE5E,CAtBYwzC,CAAav7D,EAAUi3C,GAzCCukB,EAACx7D,EAAqB3B,EAAa44C,KAAsB,IAADwkB,EACpF,MAAMC,EAAgBC,EAAAA,EAASC,mBAC/B,IAAIC,EAAa77D,EAASsjB,OAAQ17E,KAAKgkD,GAAMuyB,EAAAA,EAAW4gB,YAAYnzC,EAAGqrD,KAChD,QAAvBwkB,EAAAC,EAAcI,iBAAS,IAAAL,GAAvBA,EAAAj7H,KAAAk7H,EAA0BG,GAE1B,MAAME,EAA2BlP,EAAAA,EAAcmP,6BAA6Bh8D,EAASj7D,MAC/Ek3H,EAAcpP,EAAAA,EAAcqP,oBAAoB79D,EAAK0P,MAAQkpC,EAAMj3C,EAASj7D,MAElF,IAAIo3H,EAAiBC,EAAAA,EAA2BC,0BAA0BR,EAAY,CAACx9D,IAEnFkjC,EAAQsrB,EAAAA,EAAcyP,sBACtB,CAACj+D,GACDA,EAAK0P,MACLkpC,EACAklB,EACAn8D,EACA+7D,EACAE,EAAYj0C,KACZi0C,EAAY9zC,WAEXg0C,GAAkB56B,IACnB46B,EAAkB56B,EAAuB70C,QAE7CsT,EAAStT,OAASyvE,EAElBn8D,EAAS+nB,iBAAmBwZ,EAC5BvhC,EAASie,WAAaje,EAASsjB,OAAQ17E,KAAKuV,GAAMghE,EAAAA,EAAW4gB,YAAY5hF,EAAGokF,IAAqB,EAgB7Fi6B,CAAwBx7D,EAAU3B,EAAM44C,GAGxCv3G,QAAQ6Y,IAAI,yBAA0B,CAAE8lD,OAAM2B,YAAW,GAC3D,GACJ,QCvBC,MAAMquB,GAoJZkuC,EApJYluC,EAAAA,EAEKmuC,YAAc,IAFnBnuC,EAIKouC,uBAAyB,yBAJ9BpuC,EAMKquC,YAAe9/H,GACzBgT,QACIhT,EAAM4tH,qBACN5tH,EAAMuoH,uBACNvoH,EAAMi0G,gBACNj0G,EAAMm0G,mBACNn0G,EAAMk0G,oBACNl0G,EAAM+tH,mBACN/tH,EAAM8tH,gBACN9tH,EAAMguH,kBAfLv8B,EAkBKsuC,cAAgB,CAAC//H,EAAuBggI,IAC9ChgI,EAAM+tH,mBAAqB/tH,EAAM8tH,gBAAkB9tH,EAAMguH,iBAClDgS,EAAc,EAElBvuC,EAAUmuC,YAtBZnuC,EA2BKwuC,UAAY/+H,IAAuF,IAAtF,MAAE4wD,EAAK,WAAEjB,EAAU,0BAAE+9B,GAA0C1tF,EACtF,IACI,IAAI2tH,EAA4B,GAC5BC,EAA6B,GAC7BjP,EAAmC,GACnC2C,EAAqC,GAoCzC,GAlCA1wD,EAAMryC,SAASgtE,IACX,MAAM,KAAEhrB,EAAI,UAAEiP,EAAY,IAAOgc,EAAAA,EAAkBwiC,WAAWziC,EAAUoiC,GACxEA,EAAe,IAAIA,KAAiBn+C,GACpCjP,EAAK0P,MAAQT,EAEbo+C,EAAe,IAAIA,EAAcrtD,GACjC0tD,EAAAA,EAAOC,UAAUP,EAAcC,GAG/BlY,EAAAA,EAAayY,oBAAoB5tD,EAAMA,EAAKnC,SAAUuvD,GAEtDhP,EAAkB,IAAIA,KAAqBp+C,EAAKnC,UAAY,IAC5DkjD,EAAmB,IAAIA,KAAsB/gD,EAAKlC,WAAa,IAC/DkqC,EAAAA,EAAU6lB,wCAAwCT,EAAchP,GAEhEpzB,EAASkN,kBAA6C,OAAzB/K,QAAyB,IAAzBA,OAAyB,EAAzBA,EAA4BnC,EAAS38B,OAAQ,IAG9Eg/D,EAAarvG,SACRxU,GACAA,EAAKwkH,sBACFxkH,EAAKwkH,uBAAyBC,EAAAA,EAAgBC,6BAEtD9P,EAAgBpgG,SACXxU,GACAA,EAAKwkH,sBACFxkH,EAAKwkH,uBAAyBC,EAAAA,EAAgBC,6BAEtDnN,EAAiB/iG,SACZxU,GACAA,EAAKwkH,sBACFxkH,EAAKwkH,uBAAyBC,EAAAA,EAAgBC,6BAGjDb,EAAa/2G,OAEX,CACH8nG,EAAkBjJ,EAAAA,EAAaC,uBAAuBgJ,EAAiBgP,GACvEM,EAAAA,EAAOC,UAAUP,EAAcC,GAC/BA,EAAarvG,SAASgiD,IAClBm1C,EAAAA,EAAaoZ,mBAAmBvuD,EAAMo+C,GACtCoQ,EAAAA,EAAcC,gBAAgBzuD,EAAM+gD,GACpC9a,EAAAA,EAAcyoB,sBAAsB1uD,EAAM+gD,EAAkBqM,EAAa,IAE7E,MAAM7uH,EAAQqwH,EAAAA,EAAUC,UAAU,CAC9Bx+D,MAAOg9D,EACPvvD,UAAWijD,EACXrxC,MAAO09C,EACPvvD,SAAUugD,EACVhvD,aACAyG,KAAM,wBAEJ4oE,EAAiB3Q,EAAAA,EAAeyJ,YAAYlnE,GAC5CgN,EAAW,IAAK9+D,EAAO6wD,aAAYqvE,iBAAgBnQ,sBAAsB,GAE/E,OADAwO,EAA4Bz/D,GACrBA,CACX,CArBI,MAAO,CAAC,CAsBhB,CAAE,MAAO3+D,GAEL,KAD2B,CAAEggI,YAAY,EAAMhgI,QAEnD,GA9FKsxF,EAqGKF,YAAc9kF,IAMF,IANG,SACzBkiH,EAAW,GAAE,SACbC,EAAW,GAAE,SACbtvD,EAAW,GAAE,UACbC,EAAY,GAAE,YACdgyB,EAAc,IACE9kF,EACZoiH,EAAeD,EACfE,EAAeH,EACf9O,EAAkBvgD,EAClBkjD,EAAmBjjD,EA4BvB,OA1BAgyB,EAAY9xE,SAASgtE,IACjBA,EAAShsF,KAAOgsF,EAAShsF,MAAQ+nH,EAAAA,EAAYyG,YAAYH,EAAa/2G,QAEtE,MAAM,KAAE0pD,EAAI,UAAEiP,EAAY,IAAOgc,EAAAA,EAAkBwiC,WAAWziC,EAAUoiC,GACxEA,EAAe,IAAIA,KAAiBn+C,GACpCjP,EAAK0P,MAAQT,EAEbo+C,EAAe,IAAIA,EAAcrtD,GACjC0tD,EAAAA,EAAOC,UAAUP,EAAcC,GAG/BlY,EAAAA,EAAayY,oBAAoB5tD,EAAMA,EAAKnC,SAAUuvD,GAEtDhP,EAAkB,IAAIA,KAAqBp+C,EAAKnC,UAAY,IAC5DkjD,EAAmB,IAAIA,KAAsB/gD,EAAKlC,WAAa,IAC/DkqC,EAAAA,EAAU6lB,wCAAwCT,EAAchP,EAAgB,IAGpFsP,EAAAA,EAAOC,UAAUP,EAAcC,GAC/BA,EAAarvG,SAASgiD,IAClBm1C,EAAAA,EAAaoZ,mBAAmBvuD,EAAMo+C,GACtCoQ,EAAAA,EAAcC,gBAAgBzuD,EAAM+gD,GACpC9a,EAAAA,EAAcyoB,sBAAsB1uD,EAAM+gD,EAAkBqM,EAAa,IAE7EplB,EAAAA,EAAU6lB,wCAAwCT,EAAchP,GAEzD,CACH1uC,MAAO09C,EACP/8D,MAAOg9D,EACPxvD,SAAUugD,EACVtgD,UAAWijD,EACd,gIC5KF,MAAM4d,EAST,iCAAcC,CAA2BvwE,EAAgBkd,EAAmBszD,EAAyBxuE,EAAqByN,EAA6BD,GACnJ,MAAMmC,EAAO3P,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAWA,IAC5C,IAAK2R,EACD,OAAO,EAGX,IAAI8+D,EAAoBvzD,EAAYnpE,KAAK28H,wBAAwB/+D,EAAK0P,MAAO7R,GAC7E,MAAMmhE,EAAoBlhE,EAAUlhD,QAAQkC,GAAMA,EAAEuvC,SAAWA,IAC/D,GAAI2wE,EAAkB1oH,OAAS,EAC3B,IAAK,MAAMqrD,KAAYq9D,EACnBF,GAAqB18H,KAAK68H,mCAAmCt9D,EAAUtR,EAAOyN,GAUtF,OANI+gE,EAAkB,IAClBC,GAAuC,IAAlBD,EACjBC,EAAoB,IACpBA,EAAoB,IAGrBA,CACX,CAGA,8BAAcC,GAA6E,IAArDrvD,EAAkB5xD,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAI+/C,EAAyB//C,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAChFi7H,EAAiB,EACrB,IAAK,MAAMv1C,KAAQja,EAAO,CACtB,MAAMyvD,EAAiBzR,EAAAA,EAAO0R,YAAYz1C,EAAM9rB,GAC5CshE,EAAe7oH,OAAS,IACxB4oH,GAAkBC,EAAez/G,QAAO,CAACgxE,EAAG5K,IAAM4K,EAAI5K,EAAEh/B,MAAO,GAEvE,CACA,OAAOo4E,CACX,CAEA,yCAAcD,CAAmCt9D,EAAqBtR,EAAqByN,GACvF,MAAMuhE,EAAoBj9H,KAAKk9H,0BAA0B39D,EAAUtR,GACnE,IAAIkvE,EAAc,EACdC,EAAiB,EAErB,GAAI79D,EAAS4nB,YACTi2C,EAAiBH,EAAkBI,qBACnCF,EAAcF,EAAkBK,6BAEhC,GAAQ/9D,EAASj7D,OACR49D,EAAAA,EAAagB,QACdk6D,EAAiBH,EAAkBI,qBACnCF,EAAcF,EAAkBK,wBAA0Bt9H,KAAKu9H,kCAAkCh+D,EAAU7D,QAG3G0hE,EAAiBH,EAAkBI,qBAK/C,OAAOF,EAAcC,CACzB,CAOA,gCAAcF,CAA0B39D,EAAqBtR,GACzD,MAAM2P,EAAO3P,EAAMvE,MAAMhtC,GAAMA,EAAEuvC,SAAWsT,EAAStT,SACrD,IAAK2R,EACD,MAAO,CAAEy/D,qBAAsB,EAAGC,wBAAyB,GAE/D,IAAID,EAAuB,EACvBG,EAAyB,EAC7B,IAAK,IAAI/hH,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAK,MAAM8rE,KAAQ3pB,EAAK0P,MACpB,GACIg+C,EAAAA,EAAOmS,sBAAsBl2C,EAAMhoB,EAASie,WAAY/hE,KACxD6vG,EAAAA,EAAOmS,sBAAsBl2C,EAAMhoB,EAASie,WAAY/hE,EAAI,IAC9D,CAKE4hH,GAJuB/R,EAAAA,EAAOoS,oBAAoBpS,EAAAA,EAAOqS,gBAAgBp+D,EAASie,WAAY/hE,GAAI,CAC9F8rE,EAAKhK,MACLgK,EAAKC,KAGb,CAEJg2C,GAA0BvvB,EAAAA,EAAKC,QAAQ3uC,EAASie,WAAY/hE,GAAI8jD,EAASie,WAAY/hE,EAAI,GAC7F,CACA,MAAO,CACH6hH,wBAAyBE,EAAyBH,EAClDA,qBAAsBA,EAE9B,CAIA,wCAAcE,CAAkCh+D,EAAqB7D,GACjE,MAAMkiE,EAAiBliE,EAAUlhD,QAAQkC,GAAMA,EAAEuvC,SAAWsT,EAAStT,QAAUvvC,EAAEygD,aAAeoC,EAASpC,aACzG,IAAI0gE,EAA4B,EAChC,GAAID,EAAe1pH,OAAS,EAExB,IAAK,MAAM4pH,KAAiBF,EAExB,IAAK,IAAIniH,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAIsiH,EAAiB,EAErB,IAAK,IAAIC,EAAI,EAAGA,EAAI,EAAGA,IAQnB,GANAD,EAAiBzS,EAAAA,EAAOoS,oBACpBpS,EAAAA,EAAOqS,gBAAgBG,EAActgD,WAAY/hE,GACjD6vG,EAAAA,EAAOqS,gBAAgBp+D,EAASie,WAAYwgD,IAI5CD,EAAiB,EAAG,CACpBF,GAA6BE,EAC7B,KACJ,CAEJ,GAAIA,EAAiB,EACjB,KAER,CAGR,OAAOF,CACX,oDC5HG,MAAMI,GAAAA,EACKC,QAAW7/H,IAA8B,IAAD8/H,EAAAC,EAAAC,EAAAC,EAAAC,EAClD,IAGIC,EACAj9C,GAJA,WAAEv0B,EAAU,SAAEyO,EAAQ,UAAEC,EAAS,MAAEzN,EAAK,MAAEqf,GAAUjvE,EACxDwZ,EAAAA,EAAOg9B,gBAAkB51C,QAAQw/H,eAAe,iCAADh2H,OAAkCukD,EAAWE,aAAe7uD,EAAMo1D,MAIjH,MAAMirE,EAAgC,CAClCvzC,eAAgBH,EAAAA,EAAUI,iBAAiBp+B,GAC3CiB,QACAwN,WACAC,YACA4R,QACAyd,0BAA2BC,EAAAA,EAAUC,6BAA6Bh9B,IAkBtE,OAdAuwE,EAAaxzC,EAAAA,EAAU6L,YAAY,IAAK6nC,EAAY7yC,QADzC,wEAEXtK,EAAc,CACVzY,OAAkB,QAAZq1D,EAAEK,SAAU,IAAAL,OAAA,EAAVA,EAAYpyC,4BACpBhB,0BAAqC,QAAZqzC,EAAEI,SAAU,IAAAJ,OAAA,EAAVA,EAAYrzC,0BACvCvJ,WAAYg9C,EACZlzB,kCAA6C,QAAZ+yB,EAAEG,SAAU,IAAAH,OAAA,EAAVA,EAAY/yB,kCAC/Cl+C,QAASa,EAAM9mD,KAAK87C,GAAMA,EAAEgJ,SAC5BiB,YAAaF,EAAWE,YACxBjtD,OAAkB,QAAZq+H,EAAEE,SAAU,IAAAF,OAAA,EAAVA,EAAY/8C,YACpB8N,mBAA8B,QAAZkvC,EAAEC,SAAU,IAAAD,OAAA,EAAVA,EAAYlvC,oBAEpCx3E,EAAAA,EAAOC,IAAI,sBAAuB,CAAE0mH,aAAYj9C,gBAChD1pE,EAAAA,EAAOg9B,gBAAkB51C,QAAQ6tG,WAE1B,CAAE0xB,aAAYj9C,cAAa,ECtBnC,MAAMirC,EAyNT,yCAAcmS,CAAmCjjE,EAA6BzP,GAC1E,IAAK,MAAMsT,KAAY7D,EAAUlhD,QAAQkC,GAAMA,EAAEuvC,SAAWA,IACxD,GAAIsT,EAAS4nB,YACT,OAAO,EAGf,OAAO,CACX,EACHy3C,EAjOYpS,EAAAA,EACKC,UAAapuH,IACvB,MAAM,WAAE2uD,EAAU,MAAEiB,EAAK,UAAEyN,EAAS,MAAE4R,EAAK,SAAE7R,EAAQ,KAAEhI,GAASp1D,EAC1DwgI,EAAmB,MACrB,MAAM5+H,EAAS,GACf,IAAK,MAAM6+H,KAAa9xE,EAAY,CAChC,MAAME,EAAc4xE,EAAU5xE,YACxB6xE,EAAgB9wE,EAAMzzC,QACvBkC,IAAC,IAAAsiH,EAAAC,EAAA,OAA+B,QAA1BD,EAAAtiH,EAAE4xC,gCAAwB,IAAA0wE,GAAc,QAAdC,EAA1BD,EAA4Br+E,oBAAY,IAAAs+E,OAAd,EAA1BA,EAA0CvmF,QAASwU,CAAW,IAEnEgyE,EAAoBxjE,EAAUlhD,QAAQkC,GAAMqiH,EAAc3mE,MAAM0mB,GAAMA,EAAE7yB,SAAWvvC,EAAEuvC,WACrFkzE,EAAgB7xD,EAAM9yD,QAAQkC,GAAMqiH,EAAc3mE,MAAM0mB,GAAMA,EAAE7yB,SAAWvvC,EAAEuvC,WAC7EmzE,EAAmB3jE,EAASjhD,QAAQkC,GAAMqiH,EAAc3mE,MAAM0mB,GAAMA,EAAE7yB,SAAWvvC,EAAEuvC,WAEnFozE,EAAuC,CACzCpxE,MAAO8wE,EACPrjE,UAAWwjE,EACX5xD,MAAO6xD,EACP1jE,SAAU2jE,EACV3rE,OACAzG,WAAY8xE,IAEV,WAAEN,EAAU,YAAEj9C,GAAgB08C,EAAcC,QAAQmB,GAEpDz7C,EAAQC,EAAAA,EAAaD,MACrBwd,EAAgBwE,EAAAA,EAAUC,uBAC5Bs5B,EACAC,EACAL,EAAc53H,KAAKuV,GAAMA,EAAEuvC,UAIzBqzE,EAAqBziF,IAAAA,MAAQA,IAAAA,IAAMkiF,EAAc53H,KAAKuV,GAAMA,EAAEzJ,MAAS2wE,EAAQA,MAAU,GAEzF6G,GAAaq0C,EAAUnxE,WAAa,KAAO,IACjD,IAAK,MAAMiQ,KAAQmhE,EAAe,CAAC,IAADQ,EAAAv8C,EAAAw8C,EAAAC,EAAAt3D,EAAAu3D,GAMf,OAAXn+C,QAAW,IAAXA,GAAsC,QAA3Bg+C,EAAXh+C,EAAawJ,iCAAyB,IAAAw0C,OAA3B,EAAXA,EAAyC3hE,EAAK3R,WAAa2R,EAAKk4B,wBACcj0F,IAA9E0lD,EAAAA,EAAc4F,eAA4C,QAA9B61B,EAACplB,EAAKtP,gCAAwB,IAAA00B,OAAA,EAA7BA,EAA+BriC,eAChD,OAAX4gC,QAAW,IAAXA,GAA8C,QAAnCi+C,EAAXj+C,EAAa+pB,yCAAiC,IAAAk0B,GAAgB,QAAhBC,EAA9CD,EAAiD5hE,EAAK3R,eAAQ,IAAAwzE,GAA9DA,EAAgErnE,MAC5D17C,GAAMA,IAAMkhD,EAAKk4B,sBAGtBl4B,EAAKk4B,uBAAoBj0F,GAG7B,MAAM89H,EAAYjiD,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQ1f,EAAKilB,SAC3D+8C,GAAcD,EAAW3hD,KAAO2hD,EAAW7hD,MAAQ8F,EACnDi8C,GAAeF,EAAW1hD,KAAO0hD,EAAW5hD,MAAQ6F,EACpDk8C,EAAcjjF,IAAAA,MAAQ+iF,EAAaC,EAAcD,EAAaC,EAAa,GAC3Exd,EAAexlE,IAAAA,MAAQ+gB,EAAK3qD,MAAS2wE,EAAQA,GAAQ,GACrDra,EAAiC1sB,IAAAA,MAAQ+gB,EAAKwmD,sBAAwBxgC,EAAQA,GAAQ,GACtFna,EAA4B5sB,IAAAA,MAC9BA,IAAAA,IAAgB,OAAV2hF,QAAU,IAAVA,OAAU,EAAVA,EAAYnzB,kBAAoB5gB,GAAa43B,EAAeid,GAClE,GAGES,EAAen6B,EAAAA,EAAUo6B,mBAAmBpiE,EAAK0P,OACjDnE,EAAYtsB,IAAAA,MAAQkjF,EAAen8C,EAAO,GAC1Cva,EAAqBxsB,IAAAA,MACvB0/E,EAAcC,2BACV5+D,EAAK3R,OACL8zE,EACmB,QADP53D,EACZvK,EAAKe,sBAAc,IAAAwJ,OAAA,EAAnBA,EAAqBiC,UACrB20D,EACAG,EACAE,GACAx7C,EACJ,GAGEq8C,EAAgC,OAAX1+C,QAAW,IAAXA,GAA+B,QAApBm+C,EAAXn+C,EAAa8N,0BAAkB,IAAAqwC,OAApB,EAAXA,EAAiCh2E,MAAMhtC,GAAMA,EAAEuvC,SAAW2R,EAAK3R,SACpFwb,EAAiB5qB,IAAAA,OAA0B,OAAlBojF,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB/rH,SAAU,EAAG,GAE1DgsH,EAA0C1T,EAAUmS,mCACtDO,EACAthE,EAAK3R,QAET2R,EAAKykD,aAAeA,EACpBzkD,EAAK2L,+BAAiCA,EACtC3L,EAAK6L,0BAA4BA,EACjC7L,EAAKuL,UAAYA,EACjBvL,EAAKyL,mBAAqBA,EAC1BzL,EAAK6J,eAAiBA,EACtB7J,EAAKkiE,YAAcA,EACnBliE,EAAKsiE,wCAA0CA,EAE/C,IAAK,MAAMhhE,KAAWkgE,EAClB,IAAK,MAAM73C,KAAQ3pB,EAAK0P,OAAS,GAC7B,GACIg+C,EAAAA,EAAO0R,YAAYz1C,EAAM63C,GAAkB11E,MAAMhtC,GAAMA,IAAMwiD,KAC7DA,EAAQjT,SAAW2R,EAAK3R,OAC1B,CACE,MAAMk0E,EAA4B/+B,EAAc13C,MAC3ChtC,GAAMA,EAAEwiD,QAAQhC,YAAcgC,EAAQhC,YAE3CgC,EAAQxa,KAAwB,IAAhBwa,EAAQxa,KAAek/B,EACvC1kB,EAAQkhE,yBAA2BjxH,QAAQgxH,GACZ,OAAzBA,QAAyB,IAAzBA,OAAyB,EAAzBA,EAA2B/yE,QAC3B,EACV,CAGZ,CAEA,IAAK,MAAMmS,KAAY2/D,EAAmB,CACtC,MAAMmB,EAAkBpyB,EAAAA,EAAKC,QAAQ3uC,EAASsjB,OAAQ,GAAItjB,EAASsjB,OAAQ,IACrEy9C,EAAmBryB,EAAAA,EAAKC,QAAQ3uC,EAASsjB,OAAQ,GAAItjB,EAASsjB,OAAQ,IAC5EtjB,EAASqM,QAAWy0D,EAAkB,KAAQC,EAAmB,KAGjE/gE,EAASuM,qBACLywD,EAAcW,0BAA0B39D,EAAUw/D,GAAezB,wBAA0B,IAC/F/9D,EAASv3D,MAAQq4H,EACjB9gE,EAAS/0D,OAAS81H,EAClB/gE,EAAS0M,gBAAkBo0D,EAC3B9gE,EAAS2M,cAAgBo0D,CAE7B,CACArgI,EAAOlE,KAAK,CACRkyD,MAAO8wE,EACPrjE,UAAWwjE,EACX5xD,MAAO6xD,EACP1jE,SAAU2jE,EACV79C,cACAu9C,YACAQ,sBAER,CACA,OAAOr/H,CACV,EAnIwB,GAqInBsgI,EAA4B,GAC5BC,EAAoC,GACpCC,EAA2B,GAC3BC,EAAkC,GAClCC,EAAyC,GAG/C9B,EAAiB+B,MAAK,CAACtyC,EAAG5K,KAAO,IAADm9C,EAAAC,EAAAC,EAAAC,EAC5B,MAAMC,EAAextF,SAA4B,QAApBotF,EAACvyC,EAAEwwC,UAAUj+E,eAAO,IAAAggF,OAAA,EAAnBA,EAAqBx1E,cAAcD,cAC3D81E,EAAeztF,SAA4B,QAApBqtF,EAACp9C,EAAEo7C,UAAUj+E,eAAO,IAAAigF,OAAA,EAAnBA,EAAqBz1E,cAAcD,cAC3D+1E,EAAa1tF,SAA4B,QAApBstF,EAACzyC,EAAEwwC,UAAUj+E,eAAO,IAAAkgF,OAAA,EAAnBA,EAAqB11E,cAAcC,cACzD81E,EAAa3tF,SAA4B,QAApButF,EAACt9C,EAAEo7C,UAAUj+E,eAAO,IAAAmgF,OAAA,EAAnBA,EAAqB31E,cAAcC,cAC/D,OAAI21E,EAAeC,GACP,EAERD,EAAeC,EACR,EAEPC,EAAaC,GACL,EAERD,EAAaC,EACN,EAEJ,CAAC,IAGZ,IAAIC,EAAgB,EAChBC,EAAgB,EAEpB,IAAK,MAAMC,KAAa1C,EAAkB,CAAC,IAAD2C,EACtCjB,EAAYxkI,QAAQwlI,EAAUtzE,OAC9BuyE,EAAgBzkI,QAAQwlI,EAAU7lE,WAClC+kE,EAAY1kI,QAAQwlI,EAAUj0D,OAC9BozD,EAAe3kI,QAAQwlI,EAAU9lE,UAEjC,MAAMgmE,EAAiBF,EAAUhgD,YAED,IAADmgD,EAAAC,EAA/B,GAAIF,EAAejgD,WAEfigD,EAAejgD,WAAWO,SAAoC,QAA5B2/C,EAAGD,EAAejgD,kBAAU,IAAAkgD,GAAU,QAAVC,EAAzBD,EAA2B3/C,gBAAQ,IAAA4/C,OAAV,EAAzBA,EAAqCx6H,KAAKuV,IAC3E,MAAMklH,EAAU,IAAKllH,GAOrB,OANIklH,EAAQp/C,SACRo/C,EAAQp/C,QAAU6+C,EACdC,EAAgBM,EAAQp/C,SACxB8+C,EAAgBM,EAAQp/C,SAGzBo/C,CAAO,IAKtBH,EAAe34D,OAA8B,QAAxB04D,EAAGC,EAAe34D,cAAM,IAAA04D,OAAA,EAArBA,EAAuBr6H,KAAKuV,IAChD,MAAMmlH,EAAW,IAAKnlH,GAEtB,OADAmlH,EAAS56H,IAAMo6H,EACRQ,CAAQ,IAGnBlB,EAAmB5kI,KAAK0lI,GACxBJ,GAAiBC,CACrB,CAEAf,EAAYxkI,QAAQkyD,EAAMzzC,QAAQkC,IAAO6jH,EAAYnoE,MAAM0mB,GAAMA,EAAE7yB,SAAWvvC,EAAEuvC,YAChFu0E,EAAgBzkI,QAAQ2/D,EAAUlhD,QAAQkC,IAAO8jH,EAAgBpoE,MAAM0mB,GAAMA,EAAE3hB,aAAezgD,EAAEygD,gBAChGsjE,EAAY1kI,QAAQuxE,EAAM9yD,QAAQkC,IAAO+jH,EAAYroE,MAAM0mB,GAAMA,EAAE7yB,SAAWvvC,EAAEuvC,YAChFy0E,EAAe3kI,QAAQ0/D,EAASjhD,QAAQkC,IAAOgkH,EAAetoE,MAAM0mB,GAAMA,EAAE5hB,YAAcxgD,EAAEwgD,eAG5F,MAAM+c,EAAsBp9B,IAAAA,MAAQA,IAAAA,IAAMgiF,EAAiB13H,KAAKuV,GAAMA,EAAE4iH,sBAAsB,GAE9F,MAAO,CACHrxE,MAAOsyE,EACPjzD,MAAOmzD,EACP/kE,UAAW8kE,EACX/kE,SAAUilE,EACV93D,aAAc+3D,EACd1mD,sBACH,wECpNF,MAAMg9B,EAAU,CACnB6qB,aAAc,KACdC,cAAe,MAEftb,6BAA8B,+BAE9BnP,0BAA2B,4BAC3B6E,uBAAwB,yBAExBjF,oBAAqB,sBACrBmQ,yBAA0B,2BAC1B2a,+BAAgC,iCAEhC5jB,yBAA0B,2BAC1BkJ,8BAA+B,gCAC/B/P,4BAA6B,+BAGpB1zB,EAA8B,CACvCD,MAAO,IACPq+C,YAAa,WAA8B,OAAfvmH,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAGmjD,EAAAA,GAASC,OAAkBD,EAAAA,GAASC,IAAM,EAAI,CAAC,EAG9Eu3C,UAAMx0G,EAENqgI,mBAAoB,GAEpBC,SAAU,EACVC,eAAgB,GAChBC,0BAA2B,GAC3B1rB,UAAW,KAKX2rB,gBAAiB,EACjBC,gBAAiB,EACjBC,KAAM,EACNC,OAAQ,EAERC,sBAAuB,MACvBxwB,cAAe,EAEfywB,yBAAqB9gI,EACrB+gI,6BAAyB/gI,GAG7B6V,OAAOmsE,aAAe,CAAEozB,UAASpzB,uECT1B,IAAKoD,EAAO,SAAPA,GAAO,OAAPA,EAAO,UAAPA,EAAO,SAAPA,CAAO,MAKZ,MAAM4kC,EAAkB,CAAEC,2BAA4B,iECpEtD,IAAK1qD,EAAW,SAAXA,GAAW,OAAXA,EAAW,4BAAXA,EAAW,aAAXA,EAAW,iBAAXA,EAAW,0BAAXA,EAAW,wBAAXA,EAAW,wBAAXA,EAAW,kBAAXA,CAAW,MAUhB,SAASyhE,EAAsBjhI,GAClC,MAAMkhI,EAAQvjI,OAAOwjI,QAAQ3hE,GAAa1X,MAAKrsD,IAAA,IAAEyd,EAAK+pC,GAAIxnD,EAAA,OAAKwnD,IAAQjjD,CAAK,IAC5E,OAAOkhI,EAAQA,EAAM,QAAKjhI,CAC9B,+FCRO,MAAM8sE,EAAmB,qBACzB,IAAKC,EAAgB,SAAhBA,GAAgB,OAAhBA,EAAgB,sBAAhBA,EAAgB,uBAAhBA,CAAgB,MAKrB,MAAMo0D,EAAkB,gBACxB,IAAKC,EAAQ,SAARA,GAAQ,OAARA,EAAQ,gBAARA,EAAQ,0BAARA,EAAQ,qBAARA,EAAQ,2BAARA,CAAQ,MAORp8C,EAAS,SAATA,GAAS,OAATA,EAAS,sBAATA,EAAS,8CAATA,EAAS,kCAATA,EAAS,oCAATA,EAAS,wCAATA,EAAS,0CAATA,EAAS,wCAATA,EAAS,0CAATA,EAAS,8CAATA,EAAS,gDAATA,EAAS,cAATA,EAAS,kBAATA,EAAS,oBAATA,EAAS,gBAATA,EAAS,YAATA,EAAS,gBAATA,CAAS,MAsBThoB,EAAQ,SAARA,GAAQ,OAARA,EAAQ,UAARA,EAAQ,YAARA,CAAQ,6DCzCb,IAAKqD,EAAY,SAAZA,GAAY,OAAZA,EAAY,+BAAZA,EAAY,iCAAZA,EAAY,oBAAZA,EAAY,qCAAZA,EAAY,YAAZA,EAAY,sBAAZA,EAAY,kBAAZA,EAAY,gBAAZA,EAAY,kBAAZA,EAAY,6BAAZA,EAAY,yBAAZA,EAAY,YAAZA,EAAY,gBAAZA,EAAY,yBAAZA,CAAY,MAoBjB,SAASghE,EAAuBthI,GACnC,MAAMkhI,EAAQvjI,OAAOwjI,QAAQ7gE,GAAcxY,MAAKrsD,IAAA,IAAEyd,EAAK+pC,GAAIxnD,EAAA,OAAKwnD,IAAQjjD,CAAK,IAC7E,OAAOkhI,EAAQA,EAAM,QAAKjhI,CAC9B,gECpBO,MAAM85H,EACT,oBAAcwH,GAA+F,IAAjFC,EAAiC1nH,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAI2nH,EAAiC3nH,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACpG,MAAM4nH,EAAe,CAAE5mH,EAAG,EAAGoiE,EAAG,GAChC,IAAK,MAAMykD,KAAeH,EACtB,IAAK,MAAMI,KAAeH,EAAa,CACnC,MAAM3nI,EAAW,IAAI+nI,IAAIxrD,SACVwrD,IAAIC,mBACfH,EACAC,EACA9nI,KAGuB,IAAnB4nI,EAAa5mH,IACb4mH,EAAa5mH,GAAKhhB,EAASioI,SAASjnH,GAEjB,IAAnB4mH,EAAaxkD,IACbwkD,EAAaxkD,GAAKpjF,EAASioI,SAAS7kD,GAGhD,CAEJ,OAAOwkD,CACX,CAEA,oCAAcM,CAA8B31E,EAAqByN,GAC7D,IAAK,MAAM6D,KAAY7D,EAAW,CAC9B,MAAMkC,EAAO3P,EAAMvE,MAAMhtC,GAAMA,EAAEuvC,SAAWsT,EAAStT,SAErD,IACKjsD,KAAK6jI,kCACFtkE,EAASie,WAAYxsC,MAAM,GAAI,GAC3B,OAAJ4sB,QAAI,IAAJA,OAAI,EAAJA,EAAMilB,OAAQ7xC,MAAM,GAAI,MAE3BuuB,EAAS8nB,kBAEV,OAAO,CAEf,CACA,OAAO,CACX,CAEA,wCAAcw8C,GAAiG,IAA/DC,EAAwBpoH,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAIqoH,EAAwBroH,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACtG,MAAM4kF,EAAkB7H,EAAAA,EAAU8H,kBAE5ByjC,EAAgBvrC,EAAAA,EAAUwrC,sBAAsBH,GACtDE,EAAcjoI,KAAKioI,EAAc,IACjC,MAAME,EAAa5jC,EAAgB6jC,cAAcH,GAE3CI,EAAgB3rC,EAAAA,EAAUwrC,sBAAsBF,GACtDK,EAAcroI,KAAKqoI,EAAc,IAGjC,OAFmB9jC,EAAgB6jC,cAAcC,GAE/BpjC,SAASkjC,EAC/B,CAEA,gCAActI,CAA0BkI,EAA0B71E,GAC9D,MAAMqyC,EAAkB7H,EAAAA,EAAU8H,kBAE5ByjC,EAAgBvrC,EAAAA,EAAUwrC,sBAAsBH,GACtDE,EAAcjoI,KAAKioI,EAAc,IAEjC,MAAME,EAAa5jC,EAAgB6jC,cAAcH,GACjD,IAAK,MAAMpmE,KAAQ3P,EAAO,CACtB,MAAMo2E,EAAe5rC,EAAAA,EAAUwrC,sBAAsBrmE,EAAKilB,QAC1DwhD,EAAatoI,KAAKsoI,EAAa,IAG/B,GADkB/jC,EAAgB6jC,cAAcE,GAClCrjC,SAASkjC,GACnB,OAAOtmE,EAAK3R,MAEpB,CAEJ,kGCrEG,MAAMymD,EACT,wBAAcC,CAAkB1kD,EAAqBhC,GACjD,MAAMq4E,EAA+C,CAAC,EAChDlvB,EAA8B,IAAIroC,IACxC,IAAK,MAAMnP,KAAQ3P,EACVq2E,EAAa1mE,EAAK3R,SAAY2R,EAAK3R,SAAWA,IAC/Cq4E,EAAa1mE,EAAK3R,QAAWwsC,EAAAA,EAAUC,kBAAkB96B,EAAKilB,SAItE,MAAM0hD,EAAat2E,EAAMvE,MAAMhtC,GAAMA,EAAEuvC,SAAWA,IAGlD,IAAKq4E,EAAar4E,GAAQ3M,UAEtB,OADA81D,EAAe5P,IAAIv5C,GACZlrC,MAAMK,KAAKg0F,GAItB,MAAMovB,EAAev2E,EAChBzzC,QAAQkC,GAAMA,EAAEuvC,SAAYA,IAC5BzxC,QAAQiqH,GAAgB/xB,EAAyBgyB,oBAAoBH,EAAaE,KAClFt9H,KAAKuV,GAAMA,EAAEuvC,SAElB,IAAK,MAAM04E,KAAeH,EAAc,CAEpC,GADiBF,EAAar4E,GAAQ24E,SAASN,EAAaK,IAExDvvB,EAAe5P,IAAIm/B,OAChB,EAECL,EAAar4E,GAAQ+0C,SAASsjC,EAAaK,KAC3CL,EAAaK,GAAa3jC,SAASsjC,EAAar4E,MAEhDmpD,EAAe5P,IAAIm/B,EAE3B,CACJ,CAIA,OAHIvvB,EAAe1wD,KAAO,GACtB0wD,EAAe5P,IAAIv5C,GAEhBlrC,MAAMK,KAAKg0F,EACtB,CAGA,0BAAesvB,CAAoBH,EAAmBE,GAClD,MACMI,EAAiBnnD,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQinD,EAAW1hD,SACtEiiD,EAA2BpnD,EAAAA,EAAWqnD,oBAAoBF,EAF7C,IAInB,IAAK,MAAMx/C,KAASo/C,EAAY5hD,OAC5B,GAAInF,EAAAA,EAAWsnD,oBAAoB3/C,EAAOy/C,GACtC,OAAO,EAGf,OAAO,CACX,CAEA,2BAAcG,CACVC,EACAzpE,GAEA,GAAIypE,GAAc7yB,EAAAA,EAAS8yB,qBAAqBD,GAAa,CACzD,MAAM1nB,EAAoB/hD,EAASjhD,QAAQkC,GAAMA,EAAEuvC,SAAWi5E,EAAWj5E,SAAQ9kD,KAAKuV,GAAMA,EAAEwgD,YAC9F,MAAO,CACHsgD,oBACApI,eAAgBoI,EAAkBr2G,KAAKuV,IAAC,IAAA0oH,EAAA,OAA4C,QAA5CA,EAAK3pE,EAAS/R,MAAMo1B,GAAMA,EAAE5hB,YAAcxgD,WAAE,IAAA0oH,OAAA,EAAvCA,EAAyCn5E,MAAM,IAEpG,CAEJ,CAGA,4BAAco5E,CAAsB3pE,EAA6ByB,GAC7D,MAAMmoE,EAAgD,CAAC,EACjDzmB,EAAkC,IAAI9xC,IAC5CrR,EAAU9/C,SAASqnC,GAAOqiF,EAAiBriF,EAAEka,YAAes7B,EAAAA,EAAUC,kBAAkBz1C,EAAEu6B,cAG1F,IAAK,MAAM+nD,KAAmB7pE,EAAUv0D,KAAKuV,GAAMA,EAAEygD,aAAa3iD,QAAQkC,GAAMA,IAAMygD,IAAa,CAE/F,GADiBmoE,EAAiBnoE,GAAYynE,SAASU,EAAiBC,IAEpE1mB,EAAmBrZ,IAAI+/B,OACpB,EAECD,EAAiBnoE,GAAY6jC,SAASskC,EAAiBC,KACvDD,EAAiBC,GAAiBvkC,SAASskC,EAAiBnoE,MAE5D0hD,EAAmBrZ,IAAI+/B,EAE/B,CACJ,CAIA,OAHI1mB,EAAmBn6D,KAAO,GAC1Bm6D,EAAmBrZ,IAAIroC,GAEpBp8C,MAAMK,KAAKy9F,EACtB,CAEA,0CAAc2mB,CACV9pE,EACA6oE,GAGA,MAAMkB,EAA+B,GAErC,IAAK,MAAMlmE,KAAY7D,EAAW,CACZ0wD,EAAAA,EAAcsZ,qBAAqBnmE,EAAUglE,GAAY,IAEvEkB,EAAgB1pI,KAAKwjE,EAE7B,CAEA,MAAO,CACHs/C,mBAAoB4mB,EAAgBt+H,KAAKuV,GAAMA,EAAEygD,aACjDi4C,eAAgBqwB,EAAgBt+H,KAAKuV,GAAMA,EAAEuvC,SAErD,EAnHSymD,EAuEK4yB,iBAAmD,CAAC,yHCrE/D,MAAMha,GAubZqa,EAvbYra,EAAAA,EACK/jC,KAAO,CACjBhK,EACAiK,EACAljF,EACAssH,EACAoB,EACA/lE,EACA8lD,KAEO,CACH6e,MAAO,KACPrzC,QACAiK,MACAljF,OACAshI,YAAQ/jI,EACRgkI,WAAOhkI,EACP4lF,MAAO,EACPq+C,cAAe,EACfC,UAAW,CAAC,EACZljD,OAAQ,GACRmjD,QAAQ,EACRhU,YACA/lE,SACA8lD,WACAk0B,oBAAoB,IAzBnB3a,EA6BKC,UAAY,CAACj+C,EAAoBrf,KAC3C03E,EAAKO,eAAe54D,GACpB,MAAM64D,EAAel4B,EAAAA,EAAKm4B,WAAW94D,GAErC,OADAq4D,EAAKU,sBAAsBF,EAAcl4E,EAAOqf,IACzC,CAAI,EAjCNg+C,EAqCK4a,eAAiB,CAAC54D,EAAoBjnE,KAChD,IAAIigI,EACAC,EACAC,EACAC,EACAC,EACAC,EAEJ,IAAK,IAAIC,EAAU,EAAGA,EAAUt5D,EAAMp5D,OAAQ0yH,IAAW,CACrD,MAAMr/C,EAAOja,EAAMs5D,GACnB,GAAIr/C,EAAKq+C,OACLU,EAAe/+C,EAAKq+C,QAChBiB,EAAAA,EAAAA,GAAgBt/C,EAAKq+C,OAAOroD,MAAOgK,EAAKhK,SACxCgpD,EAAoBD,EAAa9+C,IACjCg/C,EAAkBF,EAAa/oD,QAE/BspD,EAAAA,EAAAA,GAAgBt/C,EAAKq+C,OAAOp+C,IAAKD,EAAKhK,SACtCgpD,EAAoBD,EAAa/oD,MACjCipD,EAAkBF,EAAa9+C,SAEhC,CACH,MAAMs/C,EAAqBnB,EAAKoB,YAAYz5D,EAAOia,EAAKhK,MAAOgK,GAE/D,IAAK,IAAIy/C,KAAKF,EAAG,CACb,MAAMG,EAAUtB,EAAKuB,uBAAuBJ,EAAEE,GAAGz/C,KAAMu/C,EAAEE,GAAGz/C,KAAKw+C,UAAUjR,MAC3E,IAAIqS,EAAa,GACF,SAAX9gI,IAEA8gI,EAAal5B,EAAAA,EAAKm5B,sBAAsBH,EAAQI,IAElC,UAAdP,EAAEE,GAAG1iI,MAAwC,MAApBwiI,EAAEE,GAAGz/C,KAAKq+C,QAAkBuB,EAAa,IAAMA,EAAa,MACrF5/C,EAAKq+C,OAASkB,EAAEE,GAAGz/C,KACnBu/C,EAAEE,GAAGz/C,KAAKq+C,OAASr+C,EACnB++C,EAAe/+C,EAAKq+C,OACpBW,EAAoBD,EAAa9+C,IACjCg/C,EAAkBF,EAAa/oD,OAEjB,QAAdupD,EAAEE,GAAG1iI,MAAqC,MAAnBwiI,EAAEE,GAAGz/C,KAAKs+C,OAAiBsB,EAAa,IAAMA,EAAa,MAClF5/C,EAAKq+C,OAASkB,EAAEE,GAAGz/C,KACnBu/C,EAAEE,GAAGz/C,KAAKs+C,MAAQt+C,EAClB++C,EAAe/+C,EAAKq+C,OACpBW,EAAoBD,EAAa/oD,MACjCipD,EAAkBF,EAAa9+C,IAEvC,CACJ,CACA,GAAID,EAAKs+C,MACLY,EAAWl/C,EAAKs+C,OACZgB,EAAAA,EAAAA,GAAgBt/C,EAAKs+C,MAAMr+C,IAAKD,EAAKC,MACrCk/C,EAAgBD,EAASj/C,IACzBm/C,EAAcF,EAASlpD,QAEvBmpD,EAAgBD,EAASlpD,MACzBopD,EAAcF,EAASj/C,SAExB,CACH,MAAM8/C,EAAqB3B,EAAKoB,YAAYz5D,EAAOia,EAAKC,IAAKD,GAE7D,IAAK,IAAIy/C,KAAKM,EAAG,CACb,MAAML,EAAUtB,EAAKuB,uBAAuBI,EAAEN,GAAGz/C,KAAM+/C,EAAEN,GAAGz/C,KAAKw+C,UAAUjR,MAC3E,IAAIqS,EAAa,GACF,SAAX9gI,IAEA8gI,EAAal5B,EAAAA,EAAKm5B,sBAAsBH,EAAQI,IAElC,QAAdC,EAAEN,GAAG1iI,MAAqC,MAAnBgjI,EAAEN,GAAGz/C,KAAKs+C,OAAiBsB,EAAa,IAAMA,EAAa,MAClF5/C,EAAKs+C,MAAQyB,EAAEN,GAAGz/C,KAClB+/C,EAAEN,GAAGz/C,KAAKs+C,MAAQt+C,EAClBk/C,EAAWl/C,EAAKs+C,MAChBa,EAAgBD,EAASj/C,IACzBm/C,EAAcF,EAASlpD,OAET,UAAd+pD,EAAEN,GAAG1iI,MAAwC,MAApBgjI,EAAEN,GAAGz/C,KAAKq+C,QAAkBuB,EAAa,IAAMA,EAAa,MACrF5/C,EAAKs+C,MAAQyB,EAAEN,GAAGz/C,KAClB+/C,EAAEN,GAAGz/C,KAAKq+C,OAASr+C,EACnBk/C,EAAWl/C,EAAKs+C,MAChBa,EAAgBD,EAASlpD,MACzBopD,EAAcF,EAASj/C,IAE/B,CACJ,CACA,MAAM+/C,EAAYzgF,KAAK0gF,MAAMjgD,EAAKC,IAAI1I,EAAIyI,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI9qE,EAAI6qE,EAAKhK,MAAM7gE,GAChF6qE,EAAKE,MAAQ8/C,EACb,MAAME,EAAclgD,EAAKqpC,MAAQ,EAAK9pE,KAAK4gF,IAAIH,GACzCI,EAAcpgD,EAAKqpC,MAAQ,EAAK9pE,KAAK8gF,IAAIL,GACzCM,EAAW55B,EAAAA,EAAK65B,eAClBvgD,EAAKhK,MAAM7gE,EAAI+qH,EACflgD,EAAKhK,MAAMuB,EAAI6oD,EACfpgD,EAAKC,IAAI9qE,EAAI+qH,EACblgD,EAAKC,IAAI1I,EAAI6oD,EACbpgD,EAAKw+C,UAAUgC,IAEbC,EAAW/5B,EAAAA,EAAK65B,eAClBvgD,EAAKhK,MAAM7gE,EAAI+qH,EACflgD,EAAKhK,MAAMuB,EAAI6oD,EACfpgD,EAAKC,IAAI9qE,EAAI+qH,EACblgD,EAAKC,IAAI1I,EAAI6oD,EACbpgD,EAAKw+C,UAAUkC,MAEbC,EAAaj6B,EAAAA,EAAK65B,eACpBvgD,EAAKhK,MAAM7gE,EACX6qE,EAAKhK,MAAMuB,EACXyI,EAAKC,IAAI9qE,EACT6qE,EAAKC,IAAI1I,EACTyI,EAAKw+C,UAAUjR,MAGnB,IAAIqT,EAGJ,GAJA5gD,EAAKw+C,UAAY,CAAEgC,GAAIF,EAAUI,KAAMD,EAAUlT,KAAMoT,GAIlD3gD,EAAKq+C,OAMH,CACH,MAAMwC,EAAMn6B,EAAAA,EAAKo6B,sBAAsBR,EAAUtgD,EAAKhK,MAAM7gE,EAAG6qE,EAAKhK,MAAMuB,GAIpEwpD,EAAoBxhF,KAAK0gF,MAC3BhB,EAAiB1nD,EAAIynD,EAAmBznD,EACxC0nD,EAAiB9pH,EAAI6pH,EAAmB7pH,GAEtC6rH,EAAsBjC,EAAc1V,MAAQ,EAAK9pE,KAAK4gF,IAAIY,GAC1DE,EAAsBlC,EAAc1V,MAAQ,EAAK9pE,KAAK8gF,IAAIU,GAC1DG,EAAmBx6B,EAAAA,EAAK65B,eAC1BvB,EAAmB7pH,EAAI6rH,EACvBhC,EAAmBznD,EAAI0pD,EACvBhC,EAAiB9pH,EAAI6rH,EACrB/B,EAAiB1nD,EAAI0pD,EACrBjhD,EAAKq+C,OAAOG,UAAUgC,IAEpBW,EAAmBz6B,EAAAA,EAAK65B,eAC1BvB,EAAmB7pH,EAAI6rH,EACvBhC,EAAmBznD,EAAI0pD,EACvBhC,EAAiB9pH,EAAI6rH,EACrB/B,EAAiB1nD,EAAI0pD,EACrBjhD,EAAKq+C,OAAOG,UAAUkC,MAE1B,IAAIU,EACAC,EAEJ,GAAI9hF,KAAK+hF,IAAIP,EAAoBf,GAAa,IAAM,CAChDoB,EAAU16B,EAAAA,EAAK66B,wBAAwBjB,EAAUY,EAAkB,UACnEG,EAAU36B,EAAAA,EAAK66B,wBAAwBd,EAAUU,EAAkB,UAE/Db,EAASR,IAAMoB,EAAiBpB,IAChCsB,EAAU,CAAEjsH,EAAG6qE,EAAKhK,MAAM7gE,EAAI+qH,EAAY3oD,EAAGyI,EAAKhK,MAAMuB,EAAI6oD,GAC5DiB,EAAU,CAAElsH,EAAG6qE,EAAKhK,MAAM7gE,EAAI+qH,EAAY3oD,EAAGyI,EAAKhK,MAAMuB,EAAI6oD,IAGlD15B,EAAAA,EAAKljG,IAAI49H,EAAS,CAAEjsH,EAAG8pH,EAAiB9pH,EAAGoiE,EAAG0nD,EAAiB1nD,IACjE,MACR6pD,EAAU16B,EAAAA,EAAK66B,wBAAwBV,EAAKP,EAAU,UACtDe,EAAU36B,EAAAA,EAAK66B,wBAAwBV,EAAKJ,EAAU,UAE9D,CACIlhF,KAAK+hF,IAAIP,EAAoBf,IAAc,MAC3CoB,EAAU16B,EAAAA,EAAK66B,wBAAwBV,EAAKP,EAAU,UACtDe,EAAU36B,EAAAA,EAAK66B,wBAAwBV,EAAKJ,EAAU,WAE1DzgD,EAAK1E,OAAS,CAAC8lD,EAASC,GACxBT,EAAO,IAAMQ,EAAQjsH,EAAI,IAAMisH,EAAQ7pD,EAAI,KAAO8pD,EAAQlsH,EAAI,IAAMksH,EAAQ9pD,EAAI,GACpF,KAvDkB,CACd,MAAMspD,EAAMn6B,EAAAA,EAAKo6B,sBAAsBR,EAAUtgD,EAAKhK,MAAM7gE,EAAG6qE,EAAKhK,MAAMuB,GACpE6pD,EAAe16B,EAAAA,EAAK66B,wBAAwBjB,EAAUO,EAAM,UAC5DQ,EAAe36B,EAAAA,EAAK66B,wBAAwBd,EAAUI,EAAM,UAClE7gD,EAAK1E,OAAS,CAAC8lD,EAASC,GACxBT,EAAO,IAAMQ,EAAQjsH,EAAI,IAAMisH,EAAQ7pD,EAAI,KAAO8pD,EAAQlsH,EAAI,IAAMksH,EAAQ9pD,EAAI,GACpF,CAmDA,GAAKyI,EAAKs+C,MAMH,CACH,MAAMuC,EAAWn6B,EAAAA,EAAKo6B,sBAAsBR,EAAUtgD,EAAKC,IAAI9qE,EAAG6qE,EAAKC,IAAI1I,GAIrEiqD,EAAgBjiF,KAAK0gF,MAAMb,EAAa7nD,EAAI4nD,EAAe5nD,EAAG6nD,EAAajqH,EAAIgqH,EAAehqH,GAC9FssH,EAAkBvC,EAAU7V,MAAQ,EAAK9pE,KAAK4gF,IAAIqB,GAClDE,EAAkBxC,EAAU7V,MAAQ,EAAK9pE,KAAK8gF,IAAImB,GAClDG,EAAej7B,EAAAA,EAAK65B,eACtBpB,EAAehqH,EAAIssH,EACnBtC,EAAe5nD,EAAImqD,EACnBtC,EAAajqH,EAAIssH,EACjBrC,EAAa7nD,EAAImqD,EACjB1hD,EAAKs+C,MAAME,UAAUgC,IAEnBoB,EAAel7B,EAAAA,EAAK65B,eACtBpB,EAAehqH,EAAIssH,EACnBtC,EAAe5nD,EAAImqD,EACnBtC,EAAajqH,EAAIssH,EACjBrC,EAAa7nD,EAAImqD,EACjB1hD,EAAKs+C,MAAME,UAAUkC,MAGzB,IAAIU,EACAC,EAEJ,GAAI9hF,KAAK+hF,IAAIE,EAAgBxB,GAAa,IAAM,CAC5CoB,EAAU16B,EAAAA,EAAK66B,wBAAwBjB,EAAUqB,EAAc,UAC/DN,EAAU36B,EAAAA,EAAK66B,wBAAwBd,EAAUmB,EAAc,UAE3DtB,EAASR,IAAM6B,EAAa7B,IAC5BsB,EAAU,CAAEjsH,EAAG6qE,EAAKC,IAAI9qE,EAAI+qH,EAAY3oD,EAAGyI,EAAKC,IAAI1I,EAAI6oD,GACxDiB,EAAU,CAAElsH,EAAG6qE,EAAKC,IAAI9qE,EAAI+qH,EAAY3oD,EAAGyI,EAAKC,IAAI1I,EAAI6oD,IAG9C15B,EAAAA,EAAKljG,IAAI49H,EAAS,CAAEjsH,EAAGgqH,EAAehqH,EAAGoiE,EAAG4nD,EAAe5nD,IAC7D,MACR6pD,EAAU16B,EAAAA,EAAK66B,wBAAwBjB,EAAUO,EAAK,UACtDQ,EAAU36B,EAAAA,EAAK66B,wBAAwBd,EAAUI,EAAK,UAE9D,CACIthF,KAAK+hF,IAAIE,EAAgBxB,IAAc,MACvCoB,EAAU16B,EAAAA,EAAK66B,wBAAwBjB,EAAUO,EAAK,UACtDQ,EAAU36B,EAAAA,EAAK66B,wBAAwBd,EAAUI,EAAK,WAG1D7gD,EAAK1E,OAAO9mF,KAAK6sI,EAASD,GAC1BR,EAAOA,EAAO,IAAMS,EAAQlsH,EAAI,IAAMksH,EAAQ9pD,EAAI,KAAO6pD,EAAQjsH,EAAI,IAAMisH,EAAQ7pD,EAAI,IAC3F,KAtDiB,CACb,MAAMspD,EAAMn6B,EAAAA,EAAKo6B,sBAAsBR,EAAUtgD,EAAKC,IAAI9qE,EAAG6qE,EAAKC,IAAI1I,GAChE6pD,EAAe16B,EAAAA,EAAK66B,wBAAwBjB,EAAUO,EAAM,UAC5DQ,EAAe36B,EAAAA,EAAK66B,wBAAwBd,EAAUI,EAAM,UAClE7gD,EAAK1E,OAAO9mF,KAAK6sI,EAASD,GAC1BR,EAAOA,EAAO,IAAMS,EAAQlsH,EAAI,IAAMksH,EAAQ9pD,EAAI,KAAO6pD,EAAQjsH,EAAI,IAAMisH,EAAQ7pD,EAAI,IAC3F,CAiDJ,GAnQKwsC,EAyQKyb,YAAc,CAACz5D,EAAoBuV,EAAoBumD,KACjE,MAAMC,EAAyB,GAC/B,IAAK,IAAIrC,KAAK15D,GACLu5D,EAAAA,EAAAA,GAAgBv5D,EAAM05D,GAAIoC,MACvBvC,EAAAA,EAAAA,GAAgBv5D,EAAM05D,GAAGzpD,MAAOsF,IAChCwmD,EAAMttI,KAAK,CAAEwrF,KAAMja,EAAM05D,GAAI1iI,KAAM,WAEnCuiI,EAAAA,EAAAA,GAAgBv5D,EAAM05D,GAAGx/C,IAAK3E,IAC9BwmD,EAAMttI,KAAK,CAAEwrF,KAAMja,EAAM05D,GAAI1iI,KAAM,SAI/C,OAAO+kI,CAAK,EArRP/d,EAwRKmS,sBAAwB,CAACl2C,EAAgBuZ,IAC5C6kC,EAAK2D,sBAAsB,CAAC/hD,EAAKhK,MAAOgK,EAAKC,KAAMsZ,GAzRrDwqB,EA4RKge,sBAAwB,CAACC,EAAyBzoC,KAC5D,MAAM0oC,EAAKv7B,EAAAA,EAAK65B,eAAeyB,EAAK,GAAG7sH,EAAG6sH,EAAK,GAAGzqD,EAAGyqD,EAAK,GAAG7sH,EAAG6sH,EAAK,GAAGzqD,GAClE51E,EAAS+kG,EAAAA,EAAKw7B,oBAAoBD,EAAI1oC,GACtC4hC,EAAwB7+C,EAAAA,EAAa6+C,sBAC3C,OACIx5H,EAAOw+E,SAAW,GAClBumB,EAAAA,EAAKy7B,KAAK5oC,EAAMpkF,EAAG6sH,EAAK,GAAG7sH,EAAG6sH,EAAK,GAAG7sH,GAAG,EAAOgmH,IAChDz0B,EAAAA,EAAKy7B,KAAK5oC,EAAMhiB,EAAGyqD,EAAK,GAAGzqD,EAAGyqD,EAAK,GAAGzqD,GAAG,EAAO4jD,EAAsB,EAnSrEpX,EAuSK4b,uBAAyB,CAAC3/C,EAAgBoiD,IAC/CpiD,EAGE0mB,EAAAA,EAAK65B,eAAevgD,EAAKhK,MAAM7gE,EAAG6qE,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI9qE,EAAG6qE,EAAKC,IAAI1I,EAAG6qD,GAFpEA,EAzSNre,EA8SK+a,sBAAwB,CAClCuD,EACA37E,EACAqf,KAEAs8D,EAAchuH,SAAQ,CAACmkF,EAASnkD,KAC5B,MAAMgiB,EAAO3P,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAW8zC,EAAQ9zC,SAChD2R,IACAA,EAAK3qD,KAAO8sF,EAAQ9sF,KACpB2qD,EAAKisE,OAAS9pC,EAAQ8pC,OACtBjsE,EAAKilB,OAASkd,EAAQld,OACtBjlB,EAAKksE,aAAe/pC,EAAQ+pC,aAC5BlsE,EAAK0P,MAAQA,EAAM9yD,QAAQkC,GAAMA,EAAEuvC,SAAW2R,EAAK3R,SACnD2R,EAAKmsE,MAAQlhD,EAAAA,EAAkBmhD,YAAYpsE,GAC3CA,EAAKqsE,YAAc1qI,OAAO2qI,YAAYtsE,EAAKmsE,OAC/C,GACF,EA9TGze,EAkUK0R,YAAc,CAACz1C,EAAgB9rB,KACzC,MAAM0uE,EAAqC,GAC3C,IAAK,IAAIC,EAAO,EAAGA,EAAO3uE,EAASvnD,OAAQk2H,IAAQ,CAC/C,MAAMlrE,EAAyBzD,EAAS2uE,GAEpCzE,EAAKlI,sBAAsBl2C,EAAMroB,IACjCirE,EAAapuI,KAAKmjE,EAK1B,CACA,OAAOirE,CAAY,EA9Ud7e,EAmVK+e,gBAAkB,CAAC9iD,EAAgB+iD,IAEtC3E,EAAK3I,YAAYz1C,EAAM+iD,GAAiB9vH,QAAQkC,GAAMA,EAAEuvC,SAAWs7B,EAAKt7B,SArV1Eq/D,EAyVKoS,oBAAsB,CAAC6M,EAA0BC,KAC3D,MAAMC,EAAqB,GAC3B,IAAK,MAAM3pC,KAASypC,EACZ5E,EAAK2D,sBAAsBkB,EAAO1pC,IAClC2pC,EAAmB1uI,KAAK+kG,GAIhC,MAAM4pC,EAAqB,GAC3B,IAAK,MAAM5pC,KAAS0pC,EACZ7E,EAAK2D,sBAAsBiB,EAAOzpC,IAClC4pC,EAAmB3uI,KAAK+kG,GAIhC,OAAkC,IAA9B2pC,EAAmBv2H,OACZ+5F,EAAAA,EAAKC,QAAQq8B,EAAM,GAAIA,EAAM,IAGN,IAA9BG,EAAmBx2H,OACZ+5F,EAAAA,EAAKC,QAAQs8B,EAAM,GAAIA,EAAM,IAGN,IAA9BC,EAAmBv2H,QAA8C,IAA9Bw2H,EAAmBx2H,OAC/C+5F,EAAAA,EAAKC,QAAQu8B,EAAmB,GAAIC,EAAmB,IAE3D,CAAC,EAnXHpf,EAyXKqS,gBAAkB,WAAgE,IAA/DgN,EAAuBjvH,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAIkvH,EAA2BlvH,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACtF,MAAO,CAAC8oI,EAAKC,GAAuBD,EAAKz2H,OAAS,IAAKy2H,GAAMC,EAAsB,IAAMD,EAAKz2H,OAAS,IAC3G,EA3XSo3G,EA6XKuf,eAAiB,CAAC/pC,EAAmB7yC,KAI/C,IAAIk3C,EAAY,GAChB,IAAK,IAAIpF,EAAU,EAAGA,EAAU9xC,EAAM/5C,OAAQ6rF,IAAW,CACtCkO,EAAAA,EAAK68B,WAAWhqC,EAAO7yC,EAAM8xC,GAASld,SAEjDsiB,EAAUppG,KAAKgkG,EAEvB,CACA,GAAIoF,EAAUjxF,OAAS,EAAG,CACtB,IACI62H,EADAC,EAAW/8E,EAAMk3C,EAAU,IAAIlyF,KAEnC,IAAK,IAAIg4H,EAAM,EAAGA,EAAM9lC,EAAUjxF,OAAQ+2H,IAClCh9E,EAAMk3C,EAAU8lC,IAAMh4H,MAAS+3H,IAC/BA,EAAW/8E,EAAMk3C,EAAU8lC,IAAMh4H,KACjC83H,EAAa98E,EAAMk3C,EAAU8lC,KAGrC,OAAOF,CACX,CAEA,EApZKzf,EAuZK4f,mBAAqB,CAACpqC,EAAmBplC,KACnD,IAAIyvE,EAAgB,GACpB,IAAK,IAAIprC,EAAU,EAAGA,EAAUrkC,EAAUxnD,OAAQ6rF,IAAW,CAC1CkO,EAAAA,EAAK68B,WAAWhqC,EAAOplC,EAAUqkC,GAASviB,aAErD2tD,EAAcpvI,KAAKgkG,EAE3B,CACA,OAAIorC,EAAcj3H,OAAS,EAChBwnD,EAAUyvE,EAAc,SAE/B,CACJ,EAnaK7f,EAsaK8f,iCAAmC,CAACT,EAAyBr9D,KACvE,MAAM+9D,EAAgB/9D,EAAM9yD,QAAQkC,IAAOkpF,EAAAA,EAAU0lC,WAAW5uH,KAChE,IAAK,MAAM6uH,KAAgBF,EACvB,IAAK,IAAI5vH,EAAI,EAAGA,EAAIkvH,EAAKz2H,OAAQuH,IAAK,CAClC,MAAMq2F,EAAO6zB,EAAKhI,gBAAgBgN,EAAMlvH,GACxC,IAIU,IAHNiiE,EAAAA,EAAW8tD,UACP,CAAErhF,GAAIohF,EAAahuD,MAAOnzB,GAAImhF,EAAa/jD,KAC3C,CAAEr9B,GAAI2nD,EAAK,GAAI1nD,GAAI0nD,EAAK,KAG5B,OAAO,CAEf,CAEJ,OAAO,CAAK,2EClbb,MAAM2E,EACT,iBAAcg1B,CAAUpuI,GAA4E,IAC5FquI,EACAC,GAFiB,MAAE13C,EAAK,MAAE93F,EAAK,WAAEyvI,EAAU,YAAEC,GAA+BxuI,EAIhF,MAAMyuI,EAAa73C,EAAM83C,cACnB7kB,EAAajzB,EAAM83C,cAGnBnqI,EAASqyF,EAAcryF,MACvBoqI,EAAOpqI,EAAM6yD,EACbw3E,EAAOrqI,EAAM2rH,EACbiV,EAAO5gI,EAAM0sF,EAGnB,GAAI44B,EAAWE,QAAS,CACpB,MAAMA,EAAUF,EAAWglB,eAC3BR,EAAKtkB,EAAQ,GAAG+kB,MAChBR,EAAKvkB,EAAQ,GAAGglB,MAChBvoD,EAAAA,EAAa4+C,OAAS,CAC1B,MACIiJ,EAAKI,EAAWK,MAChBR,EAAKG,EAAWM,MAEpB,MAAMC,EAASp4C,EAAMq4C,UAAUC,wBACzBC,EAAUd,EAAK7nD,EAAAA,EAAa4+C,OAAS4J,EAAOz3H,KAAOivE,EAAAA,EAAa4+C,OAAS5+C,EAAAA,EAAay+C,gBACtFmK,EAAUd,EAAK9nD,EAAAA,EAAa4+C,OAAS4J,EAAOv3H,IAAM+uE,EAAAA,EAAa4+C,OAAS5+C,EAAAA,EAAa0+C,gBAE3F,IAAImK,EACAC,EACAxwI,IAAU86G,EAAAA,EAAQ6qB,eAClB4K,EAAS5lF,KAAKC,MAAMylF,EAAU3oD,EAAAA,EAAas+C,UAAYt+C,EAAAA,EAAas+C,SACpEwK,EAAS7lF,KAAKC,MAAM0lF,EAAU5oD,EAAAA,EAAas+C,UAAYt+C,EAAAA,EAAas+C,UAEpEhmI,IAAU86G,EAAAA,EAAQ8qB,gBAClB2K,EAASF,EACTG,EAASF,GAiBb,MAAMG,EAAsBhB,EACtBn1B,EAAWo2B,uBAAuBH,EAASC,EAASX,EAAMC,EAAMzJ,QAChE3gI,EAEN,IAAI6a,EAAIghE,EAAAA,EAAWovD,OACfhmF,KAAKC,OAAO2lF,GAAkB,EAARV,GAAaxJ,GAChB,OAAnBoK,QAAmB,IAAnBA,GAAAA,EAAqBG,cAAgBlpD,EAAAA,EAAau+C,eAAiBv+C,EAAAA,EAAas+C,UAGhFrjD,EAAIpB,EAAAA,EAAWovD,OACfhmF,KAAKC,OAAO4lF,GAAkB,EAARV,GAAazJ,GAChB,OAAnBoK,QAAmB,IAAnBA,GAAAA,EAAqBI,cAAgBnpD,EAAAA,EAAau+C,eAAiBv+C,EAAAA,EAAas+C,UAGpF,GAAI0J,EAAa,CACb,MAAMoB,EAASx2B,EAAWy2B,sBAAsB,IAAKrB,EAAasB,UAAW,CAAEzwH,IAAGoiE,OAClFpiE,EAAIuwH,EAAOvwH,EACXoiE,EAAImuD,EAAOnuD,CACf,CAEA,MAAO,CACHpiE,IACAoiE,IACAsuD,OAAQtmF,KAAKC,OAAOylF,GAAkB,EAARR,GAAaxJ,GAC3C6K,OAAQvmF,KAAKC,OAAO0lF,GAAkB,EAARR,GAAazJ,GAC3C2J,MAAOT,EACPU,MAAOT,EAEf,CAEA,mCAAcj1B,CACVziB,EACA93F,EACAmxI,EACA12B,EACA22B,GAEA,IAAI7B,EACAC,EAEJ,MAAMG,EAAa73C,EACbizB,EAAajzB,EAGbryF,EAAQ0rI,EACRtB,EAAOpqI,EAAM6yD,EACbw3E,EAAOrqI,EAAM2rH,EACbiV,EAAO5gI,EAAM0sF,EAGnB,GAAI44B,EAAWE,QAAS,CACpB,MAAMA,EAAUF,EAAWglB,eAC3BR,EAAKtkB,EAAQ,GAAG+kB,MAChBR,EAAKvkB,EAAQ,GAAGglB,MAChBvoD,EAAAA,EAAa4+C,OAAS,CAC1B,MACIiJ,EAAKI,EAAWK,MAChBR,EAAKG,EAAWM,MAEpB,MAAMC,EAASz1B,EAAU21B,wBACnBC,EAAUd,EAAK7nD,EAAAA,EAAa4+C,OAAS4J,EAAOz3H,KAAOivE,EAAAA,EAAa4+C,OAAS5+C,EAAAA,EAAay+C,gBACtFmK,EAAUd,EAAK9nD,EAAAA,EAAa4+C,OAAS4J,EAAOv3H,IAAM+uE,EAAAA,EAAa4+C,OAAS5+C,EAAAA,EAAa0+C,gBAE3F,IAAImK,EACAC,EAwBJ,OAvBIxwI,IAAU86G,EAAAA,EAAQ6qB,eAClB4K,EAAS5lF,KAAKC,MAAMylF,EAAU3oD,EAAAA,EAAas+C,UAAYt+C,EAAAA,EAAas+C,SACpEwK,EAAS7lF,KAAKC,MAAM0lF,EAAU5oD,EAAAA,EAAas+C,UAAYt+C,EAAAA,EAAas+C,UAEpEhmI,IAAU86G,EAAAA,EAAQ8qB,gBAClB2K,EAASF,EACTG,EAASF,GAiBN,CACH/vH,EAAGghE,EAAAA,EAAWovD,OAAOhmF,KAAKC,OAAO2lF,GAAkB,EAARV,GAAaxJ,GAAsB,OAAf+K,QAAe,IAAfA,EAAAA,EAAmB1pD,EAAAA,EAAas+C,UAC/FrjD,EAAGpB,EAAAA,EAAWovD,OAAOhmF,KAAKC,OAAO4lF,GAAkB,EAARV,GAAazJ,GAAsB,OAAf+K,QAAe,IAAfA,EAAAA,EAAmB1pD,EAAAA,EAAas+C,UAC/FiL,OAAQtmF,KAAKC,OAAOylF,GAAkB,EAARR,GAAaxJ,GAC3C6K,OAAQvmF,KAAKC,OAAO0lF,GAAkB,EAARR,GAAazJ,GAC3C2J,MAAOT,EACPU,MAAOT,EAEf,CAEA,6BAAekB,CAAuBnwH,EAAWoiE,EAAWktD,EAAcC,EAAczJ,GACpF,MAAMgL,EAAQ1mF,KAAKC,OAAOrqC,GAAa,EAARsvH,GAAaxJ,GACtCuK,EACFS,EAAQ3pD,EAAAA,EAAau+C,gBAAkBv+C,EAAAA,EAAaw+C,0BAA4B,GAChFmL,EAAQ3pD,EAAAA,EAAau+C,gBACjBv+C,EAAAA,EAAau+C,eAAiBv+C,EAAAA,EAAaw+C,0BAA4B,EAIzEoL,EAAQ3mF,KAAKC,OAAO+3B,GAAa,EAARmtD,GAAazJ,GAQ5C,MAAO,CAAEuK,gBAAeC,cANpBS,EAAQ5pD,EAAAA,EAAau+C,gBAAkBv+C,EAAAA,EAAaw+C,0BAA4B,GAChFoL,EAAQ5pD,EAAAA,EAAau+C,gBACjBv+C,EAAAA,EAAau+C,eAAiBv+C,EAAAA,EAAaw+C,0BAA4B,EAKnF,CAEA,4BAAe6K,CAAsBrB,GAKjC,MAAM,UAAEsB,EAAS,YAAEO,EAAW,WAAEC,GAAe9B,EACzC+B,EAAQ/pD,EAAAA,EAAaw+C,0BAA4B,EAcvD,OAbI8K,EAAUzwH,EAAIgxH,EAAYhxH,EAAIkxH,GAAST,EAAUzwH,EAAIgxH,EAAYhxH,EAAIkxH,IACrET,EAAUzwH,EAAIgxH,EAAYhxH,GAE1BywH,EAAUruD,EAAI4uD,EAAY5uD,EAAI8uD,GAAST,EAAUruD,EAAI4uD,EAAY5uD,EAAI8uD,IACrET,EAAUruD,EAAI4uD,EAAY5uD,GAE1BquD,EAAUzwH,EAAIixH,EAAWjxH,EAAIkxH,GAAST,EAAUzwH,EAAIixH,EAAWjxH,EAAIkxH,IACnET,EAAUzwH,EAAIixH,EAAWjxH,GAEzBywH,EAAUruD,EAAI6uD,EAAW7uD,EAAI8uD,GAAST,EAAUruD,EAAI6uD,EAAW7uD,EAAI8uD,IACnET,EAAUruD,EAAI6uD,EAAW7uD,GAGtBquD,CACX,kDC3MG,MAAMtG,EAAkBA,CAACv4C,EAAc5K,EAAcjnF,KACpDA,GAASwC,QAAQ6Y,IAAIrb,GACzB,IAAIoxI,GAAO,EACX,IAAK,IAAIC,KAAQx/C,EACb,GAAIA,EAAEw/C,KAAUpqD,EAAEoqD,GAAO,CACrBD,GAAO,EACP,KACJ,CAEJ,OAAOA,CAAI,iDCZR,MAAMpzC,EAET,eAAcC,GACV,MAQMqzC,IAPc,IAAI91H,MAMH5O,WACJ8xC,MAAM,IAAI6yF,UAC3B,IAAI/mI,EAAK,GAET,IAAK,IAAIwU,EAAI,EAAGA,EAXD,IAWeA,EAAG,CAE7BxU,GAAM8mI,GAVa/hE,EASS,EATIG,EASD4hE,EAAM75H,OAAS,EARvC4yC,KAAK8D,MAAM9D,KAAKmnF,UAAY9hE,EAAMH,EAAM,IAAMA,GAUzD,CAXsBkiE,IAACliE,EAAaG,EAYpC,OAAOllE,CACX,mECAG,MAAMwxF,EAyCT,4BAAcwrC,GAAwD,IAAlClkC,EAA0BrkF,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC7D,MAAMyyH,EAAiC,GACvC,IAAK,IAAI1yH,EAAI,EAAGA,EAAIskF,EAAQ7rF,OAAQuH,IAChC0yH,EAAYpyI,KAAK,IAAIqyI,EAAAA,KAAUC,WAAWtuC,EAAQtkF,GAAGiB,EAAGqjF,EAAQtkF,GAAGqjE,IAEvE,OAAOqvD,CACX,EAoBHG,EAnEY71C,EAAAA,EACK+F,iCAAoC+vC,IAC9C,MAAMjuC,EAAkB,IAAI8tC,EAAAA,KAAU7tC,gBAChCR,EAAU,CACZ,IAAIquC,EAAAA,KAAUC,WAAWE,EAAGzwD,KAAMywD,EAAGxwD,MACrC,IAAIqwD,EAAAA,KAAUC,WAAWE,EAAGvwD,KAAMuwD,EAAGxwD,MACrC,IAAIqwD,EAAAA,KAAUC,WAAWE,EAAGvwD,KAAMuwD,EAAGtwD,MACrC,IAAImwD,EAAAA,KAAUC,WAAWE,EAAGzwD,KAAMywD,EAAGtwD,MACrC,IAAImwD,EAAAA,KAAUC,WAAWE,EAAGzwD,KAAMywD,EAAGxwD,OAEzC,OAAOuiB,EAAgB6jC,cAAcpkC,EAAQ,EAVxCtH,EAaK8H,gBAAkB,IACrB,IAAI6tC,EAAAA,KAAU7tC,gBAdhB9H,EAiBK2L,iBAAmB,CAAC1nF,EAAWoiE,IAClC,IAAIsvD,EAAAA,KAAUC,WAAW3xH,EAAGoiE,GAlB9B2Z,EAqBKC,kBAAoB,WAIf,IAHfpb,EAAyB5hE,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC5B8yH,EAAoB9yH,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACpBy+F,EAAqB5kF,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAEhBy+F,IACDA,EAAkBguC,EAAK/tC,mBAE3B,MAAMyjC,EAAgBsK,EAAKrK,sBAAsB3mD,GAIjD,OAHIkxD,GACAxK,EAAcjoI,KAAKioI,EAAc,IAE9B1jC,EAAgB6jC,cAAcH,EACzC,EAlCSvrC,EAoCK0rC,cAAiBpkC,GACHuuC,EAAK/tC,kBACN4jC,cAAcpkC,GAtChCtH,EAiDKg2C,OAAS,CAAC3tC,EAAmBf,KACvC,MAAMO,EAAkB7H,EAAU8H,kBAC5BmuC,EAAgB,IAAIN,EAAAA,GAAQO,cAAcruC,GAC1CsuC,EAAS,CAAEtqI,KAAM,QAAS6pI,YAAa,CAACrtC,EAAMpkF,EAAGokF,EAAMhiB,IACvD+vD,EAAYH,EAAcI,KAAKF,GAC/BG,EAAWL,EAAcI,KAAK,CAAExqI,KAAM,UAAW6pI,YAAapuC,IAEpE,OAD0B8uC,EAAUJ,OAAOM,EAC5B,EAxDVt2C,EA2DKG,OAAS,CAACo2C,EAA6BC,KACjD,MACMC,EADkBz2C,EAAU8H,kBACJ4jC,cAAc6K,GACtCG,EAAmB,IAAIf,EAAAA,UAAex1C,OAAOw2C,iBACnDD,EAAiBE,aAAajB,EAAAA,UAAex1C,OAAOw2C,iBAAiBE,UAErE,OADe,IAAIlB,EAAAA,UAAex1C,OAAO22C,SAASL,EAAOC,GAC3CK,kBAAkBP,EAAQ,iGC1EhD,MAAMQ,EAAwB,GAE9B,SAASC,EAAqBhzH,EAAWzV,GAErC,MAD+B,CAAEA,KAAIs2E,MAAO,CAAE7gE,IAAGoiE,EAAG,GAAK0I,IAAK,CAAE9qE,IAAGoiE,EAAG,MAE1E,CAEA,SAAS6wD,EAAuB7wD,EAAW73E,GAEvC,MAD+B,CAAEA,KAAIs2E,MAAO,CAAE7gE,EAAG,EAAGoiE,KAAK0I,IAAK,CAAE9qE,EAAG,IAAOoiE,KAE9E,CAEO,MAAM8wD,EAAeA,KACxB,MAAM/+B,GAAUC,EAAAA,EAAAA,MACV3pG,GAAMsiF,EAAAA,EAAAA,MAiJZ,MAAO,CAAEomD,gBAhJe,SACpBr5B,EACAs5B,EACAxiE,GAE6B,IAAD4wC,EAAA,IAD5B6xB,IAAwBr0H,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,KAAAA,UAAA,GAExB,MAAMuyC,EAAQ9mD,EAAI+P,WAAW+2C,MACvB3pD,EAAY,OAAL2pD,QAAK,IAALA,GAAkD,QAA7CiwD,EAALjwD,EAAOvE,MAAMhtC,GAAMA,EAAEuvC,SAAW6jF,EAAW7jF,gBAAO,IAAAiyD,OAA7C,EAALA,EAAoD55G,KAC3D4lF,EAAa4lD,EAAW7jF,OACnB,OAALgC,QAAK,IAALA,OAAK,EAALA,EAAOzzC,QAAQkC,GAAMA,EAAEuvC,SAAW6jF,EAAW7jF,QAAUvvC,EAAEpY,OAASA,IAClE2pD,EACN,IAAK,MAAMs5B,KAAQja,EAAM9yD,QAAQkC,GAAgB,OAAVwtE,QAAU,IAAVA,OAAU,EAAVA,EAAY9xB,MAAMnV,GAAMA,EAAEgJ,SAAWvvC,EAAEuvC,WAAU,CAEpF,MAAM+jF,EAAgBpqC,EAAAA,EAAUqqC,eAAehiC,EAAAA,EAAKiiC,cAAc3oD,EAAKE,QAGvE,GAAIuoD,IAFwBpqC,EAAAA,EAAUqqC,eAAehiC,EAAAA,EAAKiiC,cAAcJ,EAAWroD,QAExC,CACvC,GACsB,MAAlBuoD,GACAx5B,EAAK95F,EAAI+yH,EAAwBloD,EAAKhK,MAAM7gE,GAC5C85F,EAAK95F,EAAI+yH,EAAwBloD,EAAKhK,MAAM7gE,EAC9C,CAEE,GAAIqzH,EAAiB,CACjB,MAAMI,EAAe,aAAY5oD,EAAKt7B,OAAS,OAAMs7B,EAAKwqB,SAC1DlB,EAAQ5hG,OAAO,CAAE+3G,mBAAoB0oB,EAAqBnoD,EAAKhK,MAAM7gE,EAAGyzH,IAC5E,CAGA,MADmB,CAAEtmD,UAAW,IAAKntE,EAAG6qE,EAAKhK,MAAM7gE,EAEvD,CAAO,GACe,MAAlBszH,GACAx5B,EAAK13B,EAAI2wD,EAAwBloD,EAAKhK,MAAMuB,GAC5C03B,EAAK13B,EAAI2wD,EAAwBloD,EAAKhK,MAAMuB,EAC9C,CAEE,GAAIixD,EAAiB,CACjB,MAAMI,EAAe,aAAY5oD,EAAKt7B,OAAS,OAAMs7B,EAAKwqB,SAC1DlB,EAAQ5hG,OAAO,CAAEg4G,qBAAsB0oB,EAAuBpoD,EAAKhK,MAAMuB,EAAGqxD,IAChF,CAGA,MADmB,CAAEtmD,UAAW,IAAK/K,EAAGyI,EAAKhK,MAAMuB,EAEvD,CACI+xB,EAAQ+V,kBAEhB,CACJ,CAEJ,EA+F0BwpB,gBAjFF,SACpB55B,EACA65B,EACA/xC,EACAgyC,EACAriF,GAEE,IADF8hF,IAAwBr0H,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,KAAAA,UAAA,GAExB,MAAM60H,EAAkBF,EAAW/iE,OAAS,GACtCkjE,EAA0BD,EAAgB/1H,QAC3CkC,GAAgE,MAA1DkpF,EAAAA,EAAUqqC,eAAehiC,EAAAA,EAAKiiC,cAAcxzH,EAAE+qE,UAEnDgpD,EAA4BF,EAAgB/1H,QAC7CkC,GAAgE,MAA1DkpF,EAAAA,EAAUqqC,eAAehiC,EAAAA,EAAKiiC,cAAcxzH,EAAE+qE,UAGzD,IAAIipD,EACAC,EACAC,EACAC,EACAC,EAAoBC,EAExBlgC,EAAQ+V,mBAER,MAAMoqB,EACFX,EAAWpkF,QAAUokF,EAAW/rI,KAC1B2pD,EAAMzzC,QAAQyoC,GAAMA,EAAE3+C,OAAS+rI,EAAW/rI,MAAQ2+C,EAAEgJ,SAAWokF,EAAWpkF,SAC1EgC,EACV,IAAK,MAAM2P,KAAQozE,EAAc,CAC7B,MAAMnkE,EAAYjP,EAAK0P,OAAS,GAChC,IAAK,MAAMia,KAAQ1a,EAAW,CAC1B,MAAMmjE,EAAgBpqC,EAAAA,EAAUqqC,eAAehiC,EAAAA,EAAKiiC,cAAc3oD,EAAKE,QACvE,GAAsB,MAAlBuoD,GAaA,GAZAY,EAAeJ,EAAwBlzH,QAAO,CAACgpH,EAAc2K,IAErDnqF,KAAK+hF,IAAIvC,EAAa/oD,MAAM7gE,EAAI4hF,EAAY5hF,EAAI6qE,EAAKhK,MAAM7gE,GAC3DoqC,KAAK+hF,IAAIoI,EAAY1zD,MAAM7gE,EAAI4hF,EAAY5hF,EAAI6qE,EAAKhK,MAAM7gE,GAEnD4pH,EAEA2K,IAIfH,EAAat6B,EAAK95F,EAAI4zH,EAAoB5zH,EACtCoqC,KAAK+hF,IAAI+H,EAAarzD,MAAM7gE,EAAIo0H,EAAavpD,EAAKhK,MAAM7gE,GAAK+yH,EAAuB,CACpF,GAAIM,EAAiB,CACjB,MAAMI,EAAe,aAAY5oD,EAAKt7B,OAAS,OAAMs7B,EAAKwqB,SAC1DlB,EAAQ5hG,OAAO,CAAE+3G,mBAAoB0oB,EAAqBnoD,EAAKhK,MAAM7gE,EAAGyzH,IAC5E,CACAO,EAAqBnpD,EAAKhK,MAAM7gE,EAAIk0H,EAAarzD,MAAM7gE,EAAI4zH,EAAoB5zH,CACnF,OACG,GAAsB,MAAlBszH,IACPa,EAAeJ,EAA0BnzH,QAAO,CAACgpH,EAAc2K,IAEvDnqF,KAAK+hF,IAAIvC,EAAa/oD,MAAMuB,EAAIwf,EAAYxf,EAAIyI,EAAKhK,MAAMuB,GAC3Dh4B,KAAK+hF,IAAIoI,EAAY1zD,MAAMuB,EAAIwf,EAAYxf,EAAIyI,EAAKhK,MAAMuB,GAEnDwnD,EAEA2K,IAGfF,EAAav6B,EAAK13B,EAAIwxD,EAAoBxxD,EAEtCh4B,KAAK+hF,IAAIgI,EAAatzD,MAAMuB,EAAIiyD,EAAaxpD,EAAKhK,MAAMuB,GAAK2wD,GAAuB,CACpF,GAAIM,EAAiB,CACjB,MAAMI,EAAe,aAAY5oD,EAAKt7B,OAAS,OAAMs7B,EAAKwqB,SAC1DlB,EAAQ5hG,OAAO,CACXg4G,qBAAsB0oB,EAAuBpoD,EAAKhK,MAAMuB,EAAGqxD,IAEnE,CACAQ,EAAuBppD,EAAKhK,MAAMuB,EAAI+xD,EAAatzD,MAAMuB,EAAIwxD,EAAoBxxD,CACrF,CAER,CACJ,CAEA,MADmB,CAAEpiE,EAAGg0H,EAAoB5xD,EAAG6xD,EAEnD,EAE2C,4GC9JxC,MAAM59B,EA0CT,2BAAcm+B,CACVC,EACAC,EACA31E,GAEA,MAAM41E,EAAuC,CACzC30H,EAAG00H,EAAe10H,EAClBoiE,EAAGsyD,EAAetyD,EAClBsY,MAAOg6C,EAAeh6C,OAEpB7P,EAAO4pD,EAAW5pD,KAClB6pB,EAAWxL,EAAAA,EAAUwL,SAAS7pB,GAC9Bw1C,EAAiBzR,EAAAA,EAAO0R,YAAYz1C,EAAM9rB,GAEhD,IAAI61E,GAAU,EAEd,GAAIF,EAAe1sF,MAAQ0sD,GAAYggC,EAAe1sF,KAAM,CACxD,IAAI6sF,EAAS7zD,EAAAA,EAAW8zD,SACnBjqD,EAAcw+C,UAAUjR,KACzBsc,EAAe1sF,KACfysF,GAIJ,IAFuBp+B,EAAa0+B,mBAAmB1U,EAAgBwU,EAAQH,EAAel0E,WAEzE,CAgBjB,GAdI+wC,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG6qE,EAAKhK,MAAM7gE,EAAG6qE,EAAKC,IAAI9qE,GAAG,EAAO,KACxDuxF,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAGyI,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI1I,GAAG,EAAO,KACxDmvB,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG6qE,EAAKhK,MAAM7gE,EAAG6qE,EAAKC,IAAI9qE,GAAG,EAAO,KACxDuxF,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAGyI,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI1I,GAAG,EAAO,MAExDsyD,EAAe10H,EAAIy0H,EAAWz0H,EAC9B00H,EAAetyD,EAAIqyD,EAAWryD,EAC9BsyD,EAAeh6C,MAAQ1Z,EAAAA,EAAW8zD,SAC7BjqD,EAAcw+C,UAAUjR,KACzBsc,EAAe1sF,KACf0sF,GAEJE,GAAU,GAGTH,EAAWz0H,IAAM6qE,EAAKhK,MAAM7gE,GAAKy0H,EAAWryD,IAAMyI,EAAKhK,MAAMuB,GAC7DqyD,EAAWz0H,IAAM6qE,EAAKC,IAAI9qE,GAAKy0H,EAAWryD,IAAMyI,EAAKC,IAAI1I,EAC5D,CAEMmvB,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG6qE,EAAKhK,MAAM7gE,EAAG6qE,EAAKC,IAAI9qE,GAAG,EAAO,KACxDuxF,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAGyI,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI1I,GAAG,EAAO,MAExDsyD,EAAe10H,EAAI60H,EAAO,GAAG70H,EAC7B00H,EAAetyD,EAAIyyD,EAAO,GAAGzyD,EAC7BsyD,EAAeh6C,MAAQ1Z,EAAAA,EAAW8zD,SAC7BjqD,EAAcw+C,UAAUjR,KACzBsc,EAAe1sF,KACf0sF,GAEJE,GAAU,GAIVrjC,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG6qE,EAAKhK,MAAM7gE,EAAG6qE,EAAKC,IAAI9qE,GAAG,EAAO,KACxDuxF,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAGyI,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI1I,GAAG,EAAO,MAExDsyD,EAAe10H,EAAI60H,EAAO,GAAG70H,EAC7B00H,EAAetyD,EAAIyyD,EAAO,GAAGzyD,EAC7BsyD,EAAeh6C,MAAQ1Z,EAAAA,EAAW8zD,SAC7BjqD,EAAcw+C,UAAUjR,KACzBsc,EAAe1sF,KACf0sF,GAEJE,GAAU,GAGSv+B,EAAa0+B,mBAChC1U,EACAqU,EAAeh6C,MACfg6C,EAAel0E,aAGfo0E,GAAU,EAElB,CAEA,IAAKA,EAAS,CACVC,EAAS,CAAChqD,EAAKhK,MAAOgK,EAAKC,KAC3B,MAAOkqD,EAAYC,GAAYJ,EAC/B,GAAIG,GAAcC,EAAU,CACxB,MACMC,EADYrqD,EAAcw+C,UAAUjR,KACtBuS,EACpB,GAAW,MAAPuK,EAAY,CAEZ,GAAID,EAASj1H,EAAIg1H,EAAWh1H,EAAG,CAC3B,MAEMm1H,EAFiBV,EAAWz0H,EAAKg1H,EAAWh1H,EAC1Bi1H,EAASj1H,EAAIy0H,EAAWz0H,EAG5C00H,EAAe10H,EADfm1H,EACmBH,EAAWh1H,EAAI00H,EAAe1sF,KAAO,EAErCitF,EAASj1H,EAAI00H,EAAe1sF,KAAO,CAE9D,KAAO,CAEH,MAEMmtF,EAFiBV,EAAWz0H,EAAKg1H,EAAWh1H,EAC1Bi1H,EAASj1H,EAAIy0H,EAAWz0H,EAG5C00H,EAAe10H,EADfm1H,EACmBF,EAASj1H,EAAI00H,EAAe1sF,KAAO,EAEnCgtF,EAAWh1H,EAAI00H,EAAe1sF,KAAO,CAEhE,CACA0sF,EAAetyD,EAAIqyD,EAAWryD,EAC9BsyD,EAAeh6C,MAAQ1Z,EAAAA,EAAW8zD,SAC7BjqD,EAAcw+C,UAAUjR,KACzBsc,EAAe1sF,KACf0sF,GAEJE,GAAU,CACd,CAEA,GAAW,MAAPM,EAAY,CAEZ,GAAID,EAAS7yD,EAAI4yD,EAAW5yD,EAAG,CAC3B,MAEMgzD,EAFgBX,EAAWryD,EAAK4yD,EAAW5yD,EACxB6yD,EAAS7yD,EAAIqyD,EAAWryD,EAG7CsyD,EAAetyD,EADfgzD,EACmBJ,EAAW5yD,EAAIsyD,EAAe1sF,KAAO,EAErCitF,EAAS7yD,EAAIsyD,EAAe1sF,KAAO,CAE9D,KAAO,CAEH,MAEMotF,EAFgBX,EAAWryD,EAAK6yD,EAAS7yD,EACtB4yD,EAAW5yD,EAAIqyD,EAAWryD,EAG/CsyD,EAAetyD,EADfgzD,EACmBH,EAAS7yD,EAAIsyD,EAAe1sF,KAAO,EAEnCgtF,EAAW5yD,EAAIsyD,EAAe1sF,KAAO,CAEhE,CAEA0sF,EAAe10H,EAAIy0H,EAAWz0H,EAC9B00H,EAAeh6C,MAAQ1Z,EAAAA,EAAW8zD,SAC7BjqD,EAAcw+C,UAAUjR,KACzBsc,EAAe1sF,KACf0sF,GAEJE,GAAU,CACd,CAEuBv+B,EAAa0+B,mBAChC1U,EACAwU,EACAH,EAAel0E,aAGfo0E,GAAU,EAElB,CACJ,CACJ,CACJ,CAQA,OANKA,IACDF,EAAe10H,EAAI20H,EAAkB30H,EACrC00H,EAAetyD,EAAIuyD,EAAkBvyD,EACrCsyD,EAAeh6C,MAAQi6C,EAAkBj6C,OAE7Cp3F,KAAK+xI,oBAAoBX,GAClB,CAAEA,iBAAgBE,UAC7B,EArNSv+B,EACK0+B,mBAAqB,CAACh2E,EAAsBu2E,EAA6B90E,KACnF,IAAK,MAAMgC,KAAWzD,EAAU,CAAC,IAADwxC,EAC5B,GACI/tC,EAAQhC,YAAcA,GACT,QADkB+vC,EAC/B/tC,EAAQk4B,aAAK,IAAA6V,GAAbA,EAAe/4F,SACb+5F,EAAAA,EAAKy7B,KAAKsI,EAAc,GAAGt1H,EAAGwiD,EAAQk4B,MAAO,GAAG16E,EAAGwiD,EAAQk4B,MAAO,GAAG16E,IACnEuxF,EAAAA,EAAKy7B,KAAKsI,EAAc,GAAGlzD,EAAG5f,EAAQk4B,MAAO,GAAGtY,EAAG5f,EAAQk4B,MAAO,GAAGtY,IACpEmvB,EAAAA,EAAKy7B,KAAKsI,EAAc,GAAGt1H,EAAGwiD,EAAQk4B,MAAO,GAAG16E,EAAGwiD,EAAQk4B,MAAO,GAAG16E,IAClEuxF,EAAAA,EAAKy7B,KAAKsI,EAAc,GAAGlzD,EAAG5f,EAAQk4B,MAAO,GAAGtY,EAAG5f,EAAQk4B,MAAO,GAAGtY,IACxEmvB,EAAAA,EAAKy7B,KAAKxqE,EAAQk4B,MAAO,GAAG16E,EAAGs1H,EAAc,GAAGt1H,EAAGs1H,EAAc,GAAGt1H,IACjEuxF,EAAAA,EAAKy7B,KAAKxqE,EAAQk4B,MAAO,GAAGtY,EAAGkzD,EAAc,GAAGlzD,EAAGkzD,EAAc,GAAGlzD,IACvEmvB,EAAAA,EAAKy7B,KAAKxqE,EAAQk4B,MAAO,GAAG16E,EAAGs1H,EAAc,GAAGt1H,EAAGs1H,EAAc,GAAGt1H,IACjEuxF,EAAAA,EAAKy7B,KAAKxqE,EAAQk4B,MAAO,GAAGtY,EAAGkzD,EAAc,GAAGlzD,EAAGkzD,EAAc,GAAGlzD,IAE5E,OAAO5f,CAEf,CACgB,EAlBX6zC,EAqBKk/B,wBAA0B,CAACC,EAAyBf,EAAiBgB,KAC/E,GAAIA,EAAgB,CAChB,MAAMC,EAAkB10D,EAAAA,EAAW8zD,SAC/BL,EAAW5pD,KAAKw+C,UAAUjR,KAC1Bqd,EAAeztF,KAAQwtF,EAAcxtF,KACrCytF,GAEJ,OAAOlkC,EAAAA,EAAKC,QAAQkkC,EAAgB,GAAIjB,GAAcljC,EAAAA,EAAKC,QAAQkkC,EAAgB,GAAIjB,GACjFiB,EAAgB,GAChBA,EAAgB,EAC1B,CACA,MAAO,CAAE11H,EAAGy0H,EAAWz0H,EAAGoiE,EAAGqyD,EAAWryD,EAAG,EAhCtCi0B,EAmCKg/B,oBAAuB7yE,IAAuB,IAADguC,EACvD,GAAiB,QAAjBA,EAAIhuC,EAAQk4B,aAAK,IAAA8V,GAAbA,EAAeh5F,OAAQ,CACvB,MAAOw9H,EAAYC,GAAYzyE,EAAQk4B,MACvCl4B,EAAQuoB,MAA4E,IAAnE3gC,KAAK0gF,MAAMmK,EAAS7yD,EAAI4yD,EAAW5yD,EAAG6yD,EAASj1H,EAAIg1H,EAAWh1H,GAAYoqC,KAAKkrD,EACpG,GAvCKe,EAwNKC,uBAAyB,CAACv3C,EAA2B6R,KAE/D7R,EAAS7/C,SAASsjD,IACd,MAAMmzE,EAAWzsC,EAAAA,EAAUysC,SAAS/kE,EAAOpO,EAAuBozE,IAAUpzE,EAAQjT,QAChFomF,GAAkC,IAAtBA,EAAS3qD,WACrBxoB,EAAQxiD,EAAI21H,EAAS31H,EACrBwiD,EAAQ4f,EAAIuzD,EAASvzD,EACrB5f,EAAQuoB,MAAQwmB,EAAAA,EAAKiiC,cAAemC,EAAS9qD,KAAcE,OAC/D,IAGGhsB,GAnOFs3C,EAwOKwmB,eAAiB,WAAgF,IAA/E99D,EAAyB//C,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAIuyC,EAAmBvyC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAmBlF,OAlBA+/C,EAAS7/C,SAASsjD,IACd,MAAMtB,EAAO3P,EAAMvE,MAAMhtC,GAAMA,EAAEuvC,SAAWiT,EAAQjT,SAGpDlrC,MAAMK,KAAKw8C,EAAK0P,OAAQ1xD,SAASk2F,IAC7B,MAAMkrB,EAAc1R,EAAAA,EAAO0R,YAAYlrB,EAAcr2C,GAAU/R,MAC1D7Y,GAAMA,EAAEqsB,YAAcgC,EAAQhC,YAElB/tD,QAAQ+vD,EAAQjT,SAAW2R,EAAK3R,QAAUiT,EAAQk4B,OAAS4lC,KAExE99D,EAAQ4oB,cAAgBgqB,EAAKC,SAC7B7yC,EAAQ6oB,4BACJrK,EAAAA,EAAW60D,sBAAsBzgC,EAAKv0B,MAAO,CAAE7gE,EAAGwiD,EAAQxiD,EAAIoiE,EAAG5f,EAAQ4f,IACzE+E,EAAAA,EAAaD,MACrB,GACF,IAGCnoB,CACX,EA5PSs3C,EA8PKoZ,mBAAqB,CAACvuD,EAAanC,KAC7C,MAAMugD,EAAmC,GACnCw2B,EAAgC,GAEhC5uD,EAAQC,EAAAA,EAAaD,MAuB3B,OArBInoB,EAASvnD,QACTunD,EAAS7/C,SAASsjD,IACdn+C,MAAMK,KAAKw8C,EAAK0P,OACX9yD,QAAQs3F,IACL,MAAMkrB,EAAc1R,EAAAA,EAAO0R,YAAYlrB,EAAcr2C,GAAU/R,MAC1D7Y,GAAMA,EAAEqsB,YAAcgC,EAAQhC,YAGnC,OADiB/tD,QAAQ+vD,EAAQjT,SAAW2R,EAAK3R,QAAUiT,EAAQk4B,OAAS4lC,EAC7D,IAElBphH,SAASk2F,IACNkK,EAAgBjgH,KAAK,IACdmjE,EACH6oB,4BACIrK,EAAAA,EAAW60D,sBAAsBzgC,EAAKv0B,MAAO,CAAE7gE,EAAGwiD,EAAQxiD,EAAIoiE,EAAG5f,EAAQ4f,IAAQ8E,IAEzF4uD,EAAaz2I,KAAKmjE,EAAQ,GAC5B,IAGdtB,EAAKnC,SAAW+2E,EACTx2B,CAAe,EAzRjBjJ,EA4RKyY,oBAAsB,SAAC5tD,GAA0E,IAA7DnC,EAAyB//C,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAI4xD,EAAkB5xD,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACnG,MAAM+2H,EAAcA,CAACvzE,EAAmBiyE,KACpC,MAAM5pD,EAAO4pD,EAAW5pD,KAClBgqD,EAAS7zD,EAAAA,EAAW8zD,SAASjqD,EAAKw+C,UAAUjR,KAAM51D,EAAQxa,KAAOysF,GACjE5J,EAAYt5B,EAAAA,EAAKykC,SAASnrD,EAAKhK,MAAM7gE,EAAG6qE,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI9qE,EAAG6qE,EAAKC,IAAI1I,GACjF5f,EAAQxiD,EAAIy0H,EAAWz0H,EACvBwiD,EAAQ4f,EAAIqyD,EAAWryD,EACvB5f,EAAQuoB,MAAQ8/C,EAChBroE,EAAQk4B,MAAQm6C,CAAM,EAGpB3tD,EAAQC,EAAAA,EAAaD,MAErBmmD,EAAQ,IAAI4I,IAClB,IAAK,MAAMprD,KAAQja,EACfy8D,EAAM6I,IAAIrrD,EAAKwqB,SAAW,CAACxqB,EAAKhK,MAAOgK,EAAKC,MAEhD,IAAK,MAAMtoB,KAAWtB,EAAKnC,UAAY,GAAI,CACvC,MAAMqsB,EAAgB5oB,EAAQ4oB,cACxB+qD,EAAYvlE,EAAM5jB,MACnBhtC,IAAC,IAAAo2H,EAAAC,EAAAC,EAAAC,EAAA,QAC2B,QAAxBH,EAAA/I,EAAMp9H,IAAIm7E,UAAc,IAAAgrD,OAAA,EAAxBA,EAA2B,MAAOp2H,EAAE6gE,QAAiC,QAAxBw1D,EAAAhJ,EAAMp9H,IAAIm7E,UAAc,IAAAirD,OAAA,EAAxBA,EAA2B,MAAOr2H,EAAE8qE,QACzD,QAAxBwrD,EAAAjJ,EAAMp9H,IAAIm7E,UAAc,IAAAkrD,OAAA,EAAxBA,EAA2B,MAAOt2H,EAAE6gE,QAAiC,QAAxB01D,EAAAlJ,EAAMp9H,IAAIm7E,UAAc,IAAAmrD,OAAA,EAAxBA,EAA2B,MAAOv2H,EAAE8qE,IAAI,IAG9F,GAAIqrD,EAAW,CACX,MAAMK,EACDh0E,EAAQ6oB,4BAA+BnE,EACxClG,EAAAA,EAAW60D,sBAAsBxI,EAAMp9H,IAAIm7E,GAAgB,GAAIiiD,EAAMp9H,IAAIm7E,GAAgB,IAM7F2qD,EAAYvzE,EAAS,CAAEqoB,KAAMsrD,EAAWn2H,GAJnC,EAAIw2H,GAASnJ,EAAMp9H,IAAIm7E,GAAgB,GAAGprE,EAAIw2H,EAAQnJ,EAAMp9H,IAAIm7E,GAAgB,GAAGprE,EAIjCoiE,GAFlD,EAAIo0D,GAASnJ,EAAMp9H,IAAIm7E,GAAgB,GAAGhJ,EAAIo0D,EAAQnJ,EAAMp9H,IAAIm7E,GAAgB,GAAGhJ,GAG5F,CACJ,CACA,OAAOrjB,CACX,EAlUSs3C,EAqUKogC,qBAAuB,CAACryC,EAAmBxzB,IACrCA,EAAM9yD,QAAO+sE,GAAQ+jC,EAAAA,EAAOmS,sBAAsBl2C,EAAMuZ,KAAQ35F,KAAIogF,GAAQA,EAAKt7B,yIC/TzG,MAAMmnF,EAAUA,CAACC,EAAqBC,IAAyBD,EAAcC,EAEtE,MAAM51D,EAWT,6BAAc61D,CAAuBj2D,EAA2Bk2D,EAA8BC,GAC1F,MAAMC,EAAK1zI,KAAKykG,UAAUnnB,GAE1BA,EAAO1hE,SAASklF,IACZ,MAAM6yC,EAAaF,EAKb,CACE/2H,EAAGokF,EAAMpkF,EAAI82H,EAAiB92H,EAAIg3H,EAAGh3H,EACrCoiE,EAAGgiB,EAAMhiB,EAAI00D,EAAiB10D,EAAI40D,EAAG50D,GANvC,CACEpiE,EAAGokF,EAAMpkF,EAAI82H,EAAiB92H,EAAIg3H,EAAGh3H,EACrCoiE,EAAGgiB,EAAMhiB,EAAI00D,EAAiB10D,EAAI40D,EAAG50D,GAM7CgiB,EAAMpkF,EAAIi3H,EAAUj3H,EACpBokF,EAAMhiB,EAAI60D,EAAU70D,CAAC,GAE7B,CAEA,gBAAc2lB,CAAUnnB,GACpB,MAAO,CACH5gE,EAAGqE,MAAMK,KAAKk8D,GAASnyB,GAAMA,EAAEzuC,IAAGY,OAAO81H,GAAW91D,EAAOppE,OAC3D4qE,EAAG/9D,MAAMK,KAAKk8D,GAASnyB,GAAMA,EAAE2zB,IAAGxhE,OAAO81H,GAAW91D,EAAOppE,OAEnE,CAEA,2BAAc0/H,CAAqB9yC,EAAmB+yC,GAClD,MAAMjwD,EAAQC,EAAAA,EAAaD,MAQ3B,OAPIiwD,GACA/yC,EAAMpkF,EAAIoqC,KAAKC,MAAM+5C,EAAMpkF,EAAIknE,GAC/Bkd,EAAMhiB,EAAIh4B,KAAKC,MAAM+5C,EAAMhiB,EAAI8E,KAE/Bkd,EAAMpkF,GAAKknE,EACXkd,EAAMhiB,GAAK8E,GAERkd,CACX,CAEA,kBAAcgzC,CAAYx2D,GACtB,MAAMy2D,EAAgB,CAClBr3H,EAAGoqC,KAAK+hF,IAAI/hF,KAAKklB,OAAOsR,EAAOn2E,KAAK25F,GAAUA,EAAMpkF,MACpDoiE,EAAGh4B,KAAK+hF,IAAI/hF,KAAKklB,OAAOsR,EAAOn2E,KAAK25F,GAAUA,EAAMhiB,OAGhC,IAApBi1D,EAAcr3H,GAA+B,IAApBq3H,EAAcj1D,GACvCxB,EAAO1hE,SAASklF,IACZ,MAAMkzC,EAAWh0I,KAAKs+F,YAAYwC,EAAOizC,GACzCjzC,EAAMpkF,EAAIs3H,EAASt3H,EACnBokF,EAAMhiB,EAAIk1D,EAASl1D,CAAC,GAGhC,CAEA,kBAAcwf,CAAYwC,EAAmBrB,EAAoBg0C,GAU7D,OATmBA,EAKb,CACE/2H,EAAGokF,EAAMpkF,EAAI+iF,EAAO/iF,EACpBoiE,EAAGgiB,EAAMhiB,EAAI2gB,EAAO3gB,GANtB,CACEpiE,EAAGokF,EAAMpkF,EAAI+iF,EAAO/iF,EACpBoiE,EAAGgiB,EAAMhiB,EAAI2gB,EAAO3gB,EAOhC,CAEA,kCAAcm1D,CAA4B32D,EAA2BhQ,GACjE,MAAMsW,EAAQC,EAAAA,EAAaD,MACrBswD,EAAcl0I,KAAK29E,qBAAqB,CAAErQ,UAE1C6mE,EAAsBD,EACtB,CAAEx3H,EAAGw3H,EAAYl2D,KAAMc,EAAGo1D,EAAYn2D,MACtC,CAAErhE,EAAG,GAAKknE,EAAO9E,EAAG,GAAK8E,GAE/BuwD,EAAoBz3H,GAAKmnE,EAAAA,EAAaq+C,mBAEtC5kD,EAAO1hE,SAASklF,IACZ,MAAMkzC,EAAWh0I,KAAKs+F,YAAYwC,EAAOqzC,GACzCrzC,EAAMpkF,EAAIs3H,EAASt3H,EACnBokF,EAAMhiB,EAAIk1D,EAASl1D,CAAC,GAE5B,CA0CA,2BAAcnB,CAAoBtgF,GAKc,IALb,OAC/BigF,EAAM,MACNhQ,EAAQ,GAAE,UACV5R,EAAS,aACT04E,GACgB/2I,EACZg3I,EAAY,GACX/2D,EAaD+2D,EAAY/2D,GAZZhQ,EAAM1xD,SAAS2rE,GAAS8sD,EAAUt4I,KAAKwrF,EAAKhK,SACxC7hB,GACAA,EAAU9/C,SAAS2jD,IACkB,IAAD+0E,EAA5B/0E,EAAS8nB,oBACU,QAAnBitD,EAAA/0E,EAASie,kBAAU,IAAA82D,GAAnBA,EAAqB14H,SAASypE,GAAUgvD,EAAUt4I,KAAKspF,KAC3D,IAGJ+uD,GACAC,EAAUt4I,QAAQq4I,IAM1B,MAAMG,EAAUF,EAAUltI,KAAK25F,GAAUA,EAAMpkF,IACzC83H,EAAUH,EAAUltI,KAAK25F,GAAUA,EAAMhiB,IAE/C,OAAOy1D,EAAQrgI,OAAS,GAAKsgI,EAAQtgI,OAAS,EACxC,CACE4pE,KAAMh3B,KAAKklB,OAAOuoE,GAClBv2D,KAAMl3B,KAAKqlB,OAAOooE,GAClBx2D,KAAMj3B,KAAKklB,OAAOwoE,GAClBv2D,KAAMn3B,KAAKqlB,OAAOqoE,SAEpB3yI,CACV,CAEA,0BAAckjI,CAAoBmP,EAA0BxvF,GACxD,MAAO,CACHo5B,KAAMo2D,EAAYp2D,KAAOp5B,EACzBs5B,KAAMk2D,EAAYl2D,KAAOt5B,EACzBq5B,KAAMm2D,EAAYn2D,KAAOr5B,EACzBu5B,KAAMi2D,EAAYj2D,KAAOv5B,EAEjC,CAEA,0BAAcsgF,CAAoBlkC,EAAmBozC,GACjD,OACIpzC,EAAMpkF,GAAKw3H,EAAYp2D,MACvBgjB,EAAMpkF,GAAKw3H,EAAYl2D,MACvB8iB,EAAMhiB,GAAKo1D,EAAYn2D,MACvB+iB,EAAMhiB,GAAKo1D,EAAYj2D,IAE/B,CAEA,sBAAcw2D,CAAgBn3D,GAC1B,IAAK,MAAMwjB,KAASxjB,EAChBt9E,KAAK00I,eAAe5zC,EAE5B,CAEA,qBAAc4zC,CAAe5zC,GACzBA,EAAMpkF,EAAImgC,IAAAA,MAAQikD,EAAMpkF,EAAG,GAC3BokF,EAAMhiB,EAAIjiC,IAAAA,MAAQikD,EAAMhiB,EAAG,EAC/B,CAEA,kBAAc61D,CAAYC,GACtB,OAAOA,GAAW9tF,KAAKkrD,GAAK,IAChC,CAEA,4BAAcugC,CAAsBsC,EAAoBC,GACpD,OAAOhuF,KAAKsqE,KAAKtqE,KAAKuqE,IAAIyjB,EAAOp4H,EAAIm4H,EAAOn4H,EAAG,GAAKoqC,KAAKuqE,IAAIyjB,EAAOh2D,EAAI+1D,EAAO/1D,EAAG,GACtF,CAEA,qBAAci2D,GAA+D,IAAhDpK,EAAuBjvH,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAIuzH,EAAevzH,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACtE,MAAMmtI,EAAWv2C,EAAAA,EAAUwrC,sBAAsB0G,GACjDqE,EAASjzI,KAAKizI,EAAS,IAEvB,IAAIgG,EAAyC,GAC7C,MAAM7G,EAFU11C,EAAAA,EAAUG,OAAOo2C,EAAUC,GAEfn3C,iBAE5B,IAAK,IAAIr8E,EAAI,EAAGA,EAAI0yH,EAAYj6H,OAAQuH,IAAK,CACzC,MAAMqlF,EAAQqtC,EAAY1yH,GAC1Bu5H,EAAoBj5I,KAAK,CAAE2gB,EAAGokF,EAAMpkF,EAAGoiE,EAAGgiB,EAAMhiB,GACpD,CACA,OAAOk2D,CACX,CAoCA,2BAAcC,CAAqB33D,GAC/B,IAAK,IAAI7hE,EAAI,EAAGA,EAAI6hE,EAAOppE,OAAQuH,IAC/B,IAAK,IAAIuiH,EAAI,EAAGA,EAAI1gD,EAAOppE,OAAQ8pH,IAC/B,GAAIviH,IAAMuiH,GAAK1gD,EAAO7hE,GAAGiB,IAAM4gE,EAAO0gD,GAAGthH,GAAK4gE,EAAO7hE,GAAGqjE,IAAMxB,EAAO0gD,GAAGl/C,EACpE,OAAOxB,EAAO7hE,EAK9B,CAEA,eAAc0mF,CAAS7kB,EAA2Bs3D,GAA+D,IAA9CM,EAA0Bx5H,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAEgB,EAAG,EAAGoiE,EAAG,GACvG,MAAMq2D,EAAMn1I,KAAK20I,YAAYC,GAC7Bt3D,EAAO1hE,SAASklF,IACZ,MAAMs0C,EACCt0C,EAAMpkF,EAAIw4H,EAAex4H,EAD1B04H,EAECt0C,EAAMhiB,EAAIo2D,EAAep2D,EAG1B60D,EAAY,CACdj3H,EAAG04H,EAAWtuF,KAAK8gF,IAAIuN,GAAOC,EAAWtuF,KAAK4gF,IAAIyN,GAAOD,EAAex4H,EACxEoiE,EAAGs2D,EAAWtuF,KAAK4gF,IAAIyN,GAAOC,EAAWtuF,KAAK8gF,IAAIuN,GAAOD,EAAep2D,GAE5EgiB,EAAMpkF,EAAIi3H,EAAUj3H,EACpBokF,EAAMhiB,EAAI60D,EAAU70D,CAAC,GAE7B,CAEA,gBAAc0sD,CAAU6J,EAAiBC,GAErC,GAAKD,EAAGlrF,GAAGztC,IAAM24H,EAAGjrF,GAAG1tC,GAAK24H,EAAGlrF,GAAG20B,IAAMu2D,EAAGjrF,GAAG00B,GAAOw2D,EAAGnrF,GAAGztC,IAAM44H,EAAGlrF,GAAG1tC,GAAK44H,EAAGnrF,GAAG20B,IAAMw2D,EAAGlrF,GAAG00B,EAC1F,OAAO,EAGX,MAAMy2D,GAAeD,EAAGlrF,GAAG00B,EAAIw2D,EAAGnrF,GAAG20B,IAAMu2D,EAAGjrF,GAAG1tC,EAAI24H,EAAGlrF,GAAGztC,IAAM44H,EAAGlrF,GAAG1tC,EAAI44H,EAAGnrF,GAAGztC,IAAM24H,EAAGjrF,GAAG00B,EAAIu2D,EAAGlrF,GAAG20B,GAGvG,GAAoB,IAAhBy2D,EACA,OAAO,EAGX,IAAIC,IAAOF,EAAGlrF,GAAG1tC,EAAI44H,EAAGnrF,GAAGztC,IAAM24H,EAAGlrF,GAAG20B,EAAIw2D,EAAGnrF,GAAG20B,IAAMw2D,EAAGlrF,GAAG00B,EAAIw2D,EAAGnrF,GAAG20B,IAAMu2D,EAAGlrF,GAAGztC,EAAI44H,EAAGnrF,GAAGztC,IAAM64H,EAC/FE,IAAOJ,EAAGjrF,GAAG1tC,EAAI24H,EAAGlrF,GAAGztC,IAAM24H,EAAGlrF,GAAG20B,EAAIw2D,EAAGnrF,GAAG20B,IAAMu2D,EAAGjrF,GAAG00B,EAAIu2D,EAAGlrF,GAAG20B,IAAMu2D,EAAGlrF,GAAGztC,EAAI44H,EAAGnrF,GAAGztC,IAAM64H,EAGnG,QAAIC,EAAK,GAAKA,EAAK,GAAKC,EAAK,GAAKA,EAAK,IAQhC,CAAE/4H,EAHD24H,EAAGlrF,GAAGztC,EAAI84H,GAAMH,EAAGjrF,GAAG1tC,EAAI24H,EAAGlrF,GAAGztC,GAG5BoiE,EAFJu2D,EAAGlrF,GAAG20B,EAAI02D,GAAMH,EAAGjrF,GAAG00B,EAAIu2D,EAAGlrF,GAAG20B,GAG5C,CAEA,uBAAc0gB,CACVmrC,EACA+K,EACAC,EACAC,EACA7vI,GAOwB,IAApB4vI,IACAA,GAAmB,MAEG,IAAtBD,IACAA,GAAqB,MAGzB,MAAMG,EAAoB71I,KAAK+0I,eAAepK,EAAM+K,GAAmB1H,UACjE8H,EAAkB91I,KAAK+0I,eAAepK,EAAMgL,GAAiB3H,UAEnE,IAAI+H,EAAgB,GACpB,IAAK,IAAIt6H,EAAI,EAAGA,EAAIo6H,EAAkB3hI,OAAQuH,IAAK,CAC/C,MAAMte,EAAI2pD,KAAK+hF,IAAI8M,GACnB12I,QAAQ6Y,IAAI,kBAAmB,CAAE+9H,oBAAmBC,kBAAiBnL,OAAMlvH,MAG3E,MAAMu6H,EAAQlvF,KAAK+hF,IAAI8B,EAAKlvH,GAAGqjE,EAAIg3D,EAAgBr6H,GAAGqjE,GACtD7/E,QAAQ6Y,IAAI,kBAAmB,CAAEk+H,UAC7BA,EAAQ74I,IACJwtI,EAAKlvH,GAAGqjE,EAAIg3D,EAAgBr6H,GAAGqjE,EAC/Bg3D,EAAgBr6H,GAAGqjE,GAAK3hF,EAAI64I,EAE5BF,EAAgBr6H,GAAGqjE,GAAK3hF,EAAI64I,GAKpC,MAAMC,EAAInvF,KAAK+hF,IAAI6M,GACbQ,EAAQpvF,KAAK+hF,IAAI/hF,KAAK+hF,IAAI8B,EAAKlvH,GAAGiB,GAAKoqC,KAAK+hF,IAAIgN,EAAkBp6H,GAAGiB,IAS3E,GARIw5H,EAAQD,IACJtL,EAAKlvH,GAAGiB,EAAIm5H,EAAkBp6H,GAAGiB,EACjCm5H,EAAkBp6H,GAAGiB,GAAKu5H,EAAIC,EAE9BL,EAAkBp6H,GAAGiB,GAAKu5H,EAAIC,GAIlCN,GAAuBA,EAAoB1hI,OAC3C,IAAK,MAAMiiI,KAAsBP,EAC7B,GAAItqB,EAAAA,EAAOmS,sBAAsB0Y,EAAmB5uD,KAAMojD,EAAKlvH,IAAK,CAChE,MAAMouE,EAAY+b,EAAAA,EAAUoqC,cAAcmG,EAAmB5uD,MAC7D,IAAI6uD,EAAaD,EAAmBC,WAClB,MAAdvsD,GACI8rD,EAAkB,IAClBS,GAAcA,GAEdzL,EAAKlvH,GAAGqjE,EAAIg3D,EAAgBr6H,GAAGqjE,EAE/Bg3D,EAAgBr6H,GAAGqjE,GAAKs3D,EAGxBN,EAAgBr6H,GAAGqjE,GAAKs3D,GAEP,MAAdvsD,IACH6rD,EAAoB,IACpBU,GAAcA,GAEdzL,EAAKlvH,GAAGiB,EAAIm5H,EAAkBp6H,GAAGiB,EAEjCm5H,EAAkBp6H,GAAGiB,GAAK05H,EAG1BP,EAAkBp6H,GAAGiB,GAAK05H,EAGtC,CAIRL,EAAch6I,KAAK,CAAE2gB,EAAGm5H,EAAkBp6H,GAAGiB,EAAGoiE,EAAGg3D,EAAgBr6H,GAAGqjE,GAC1E,CAEA,OAAOi3D,CACX,CAyCA,2BAAcM,CAAqBv1C,EAAmBw1C,GAClD,IACIC,EADA7uD,EAAW4qD,IAEf,IAAK,MAAM78C,KAAM6gD,EAAM,CACnB,MAAMpoC,EAAUD,EAAAA,EAAKC,QAAQzY,EAAIqL,GAC7BoN,EAAUxmB,IACVA,EAAWwmB,EACXqoC,EAAe9gD,GAEnB/N,EAAWwmB,EAAUxmB,EAAWwmB,EAAUxmB,CAC9C,CACA,MAAO,CAAE8uD,qBAAsB9uD,EAAU+uD,kBAAmBH,EAAKv4H,QAAQw4H,GAC7E,CAEA,iBAAcxzD,CAAWzF,GACrB,MAAMywB,EAAO/tG,KAAK29E,qBAAqB,CAAEL,WACzC,MAAO,CAAE5gE,GAAIqxF,EAAKjwB,KAAOiwB,EAAK/vB,MAAQ,EAAGc,GAAIivB,EAAKhwB,KAAOgwB,EAAK9vB,MAAQ,EAC1E,CAQA,yBAAcgb,CAAmBy9C,GAC7B,MAAMC,EAAqC,GAC3C,IAAK,IAAIl7H,EAAI,EAAGA,EAAIi7H,EAAU15C,mBAAoBvhF,IAAK,CACnD,MACMm7H,EADkBF,EAAUx5C,aAAazhF,GACDq8E,iBAC9C,IAAK,IAAIkmC,EAAI,EAAGA,EAAI4Y,EAAsB1iI,OAAQ8pH,IAC9C2Y,EAAgB56I,KAAK,CACjB2gB,EAAGk6H,EAAsB5Y,GAAGthH,EAC5BoiE,EAAG83D,EAAsB5Y,GAAGl/C,GAGxC,CACA,OAAO63D,CACX,CAEA,yCAAcE,CAAmC/1C,EAAmBf,EAAsBO,GACtF,OAAOP,EAAQiB,SAASV,EAAgBw2C,YAAYh2C,GACxD,CAEA,6BAAcqD,CAAuBrD,EAAmBf,EAAsBO,GACrEA,IACDA,EAAkB7H,EAAAA,EAAU8H,mBAGhC,MAAMw2C,EAAcr5D,EAAWm5D,mCAAmC/1C,EAAOf,EAASO,GAE5E02C,EAAYh3I,KAAKi3I,QAAQl3C,EAAQjI,kBACvC,IAAIo/C,GAAW,EAMf,OALAF,EAAUp7H,SAAS2rE,IACX+jC,EAAAA,EAAOmS,sBAAsBl2C,EAAMuZ,KACnCo2C,GAAW,EACf,IAEGH,GAAeG,CAC1B,CAEA,cAAcD,CAAQp0D,GAClB,IAAIvV,EAAyB,GAC7B,IAAK,IAAI7xD,EAAI,EAAGA,EAAIonE,EAAO3uE,OAAS,EAAGuH,IACnC6xD,EAAMvxE,KAAK,CAAEwhF,MAAOsF,EAAOpnE,GAAI+rE,IAAK3E,GAAQpnE,EAAI,GAAKonE,EAAO3uE,UAEhE,OAAOo5D,CACX,CAEA,qBAAc6pE,CAAe5N,GACzB,MAAM9hD,EAAQ3gC,KAAK0gF,MAAM+B,EAAK,GAAGzqD,EAAIyqD,EAAK,GAAGzqD,EAAGyqD,EAAK,GAAG7sH,EAAI6sH,EAAK,GAAG7sH,GAC9Dg2H,EAAWzkC,EAAAA,EAAKiiC,cAAczoD,GACpC,OAAoB,KAAbirD,IAAiC,KAAdA,CAC9B,CAEA,yBAActwC,CAAmBvf,EAA2B8e,GAIxD9e,EAAOj8B,MACP5mD,KAAKmiG,SAAStf,EAAQ8e,EAAela,MAAOka,EAAe7e,QAC3DD,EAAO9mF,KAAK8mF,EAAO,GACvB,CAGA,aAAciqD,CAAOloF,EAAgBwyF,GACjC,OAAOA,EAAWtwF,KAAKC,MAAMnC,EAASwyF,EAC1C,EACHC,EA5gBY35D,EAAAA,EACKm8C,WAAa,CAACx0C,EAAmBt+B,KAC3C,GAAIs+B,EAAM3oE,GAAK2oE,EAAMvG,EACjB,MAAO,CACHpiE,EAAGqqC,EAAQD,KAAKC,MAAMs+B,EAAM3oE,GAAK2oE,EAAM3oE,EACvCoiE,EAAG/3B,EAAQD,KAAKC,MAAMs+B,EAAMvG,GAAKuG,EAAMvG,EAG/B,EARXpB,EA4NK8zD,SAAW,CACrB8F,EACA5yF,EACAm+B,EACApmF,KAGIA,GAASwC,QAAQ6Y,IAAIrb,GACzB,MAAM86I,EAAK10D,EAAOnmE,EACZ86H,EAAK30D,EAAO/D,EACZ8yD,EAAK0F,EAASjQ,EACdoQ,EAAKH,EAASI,EAEpB,IAAIC,EACAC,EACJ,GAAW,MAAPhG,EACA+F,EAAO,CAAEj7H,EAAG66H,EAAIz4D,EAAG04D,EAAK9yF,EAAO,GAC/BkzF,EAAO,CAAEl7H,EAAG66H,EAAIz4D,EAAG04D,EAAK9yF,EAAO,QAC5B,GAAW,MAAPktF,EACP+F,EAAO,CAAEj7H,EAAG66H,EAAK7yF,EAAO,EAAGo6B,EAAG04D,GAC9BI,EAAO,CAAEl7H,EAAG66H,EAAK7yF,EAAO,EAAGo6B,EAAG04D,OAC3B,CACH,MAAMnQ,EAAI,EAAIuK,EAAKA,EACb8F,GAAK,EAAIH,EAAK,EAAI3F,EAAK6F,GAAM,EAAID,EAAK5F,EAEtCiG,EAAQH,EAAIA,EAAI,EAAIrQ,GADhBkQ,EAAKA,EAAKE,EAAKA,EAAK,EAAID,EAAKC,EAAKD,EAAKA,EAAM9yF,EAAOA,EAAQ,GAEhEozF,IAAUJ,EAAI5wF,KAAKsqE,KAAKymB,KAAW,EAAIxQ,GACvC0Q,IAAUL,EAAI5wF,KAAKsqE,KAAKymB,KAAW,EAAIxQ,GAC7CsQ,EAAO,CAAEj7H,EAAGo7H,EAAOh5D,EAAG8yD,EAAKkG,EAAQL,GACnCG,EAAO,CAAEl7H,EAAGq7H,EAAOj5D,EAAG8yD,EAAKmG,EAAQN,EACvC,CACA,MAAO,CAACE,EAAMC,EAAK,EA3Pdl6D,EAiZKs6D,sBAAwB,WAAmE,IAADC,EAAA,IAAjEnU,EAAwBpoH,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAIqoH,EAAwBroH,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC7F,MAAMi9E,EAAe0+C,EAAKa,iBAAiBpU,EAAOC,GAClD,OAAmB,OAAZprC,QAAY,IAAZA,GAA8B,QAAlBs/C,EAAZt/C,EAAcb,wBAAgB,IAAAmgD,OAAlB,EAAZA,EAAgC/jI,QAAS,CACpD,EApZSwpE,EAuZKw6D,iBAAmB,CAACpU,EAA0BC,KACxD,MAAMzjC,EAAkB7H,EAAAA,EAAU8H,kBAE5ByjC,EAAgBvrC,EAAAA,EAAUwrC,sBAAsBH,GACtDE,EAAcjoI,KAAKioI,EAAc,IACjC,MAAMmU,EAAY73C,EAAgB6jC,cAAcH,GAE1CI,EAAgB3rC,EAAAA,EAAUwrC,sBAAsBF,GACtDK,EAAcroI,KAAKqoI,EAAc,IACjC,MAAMgU,EAAY93C,EAAgB6jC,cAAcC,GAEhD,OAAO+T,EAAUx/C,aAAay/C,EAAU,EAlanC16D,EAsaK26D,oBAAsB,CAACv3C,EAAmBljC,KAAsB,IAADs4B,EACzE,MAAM6J,EAAU,CAACniC,EAAKilB,OAAQ17E,KAAK25F,GAAU,CAACA,EAAMpkF,EAAGokF,EAAMhiB,MACvDw5D,EAAW7/C,EAAAA,EAAUg2C,OAAO3tC,EAAOf,GACzC,IAAIm3C,GAAW,EAQf,OAPU,QAAVhhD,EAAAt4B,EAAK0P,aAAK,IAAA4oB,GAAVA,EAAY9vC,OAAOmhC,IACX+jC,EAAAA,EAAOmS,sBAAsBl2C,EAAMuZ,KACnCo2C,GAAW,GACJ,KAIRoB,GAAYpB,CAAQ,iDCpcpB,MAAMqB,EACjBt+H,WAAAA,GAAiD,IAArC5V,EAAIqX,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAI88H,EAAO98H,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG+8H,EAK7B,GAJAz4I,KAAKqE,KAAOA,EACZrE,KAAKkU,OAASlU,KAAKqE,KAAK6P,OACxBlU,KAAKw4I,QAAUA,EAEXx4I,KAAKkU,OAAS,EACd,IAAK,IAAIuH,GAAKzb,KAAKkU,QAAU,GAAK,EAAGuH,GAAK,EAAGA,IAAKzb,KAAK04I,MAAMj9H,EAErE,CAEA1f,IAAAA,CAAKqL,GACDpH,KAAKqE,KAAKtI,KAAKqL,GACfpH,KAAKkU,SACLlU,KAAK24I,IAAI34I,KAAKkU,OAAS,EAC3B,CAEA0yC,GAAAA,GACI,GAAoB,IAAhB5mD,KAAKkU,OAAc,OAEvB,MAAMY,EAAM9U,KAAKqE,KAAK,GAChBurF,EAAS5vF,KAAKqE,KAAKuiD,MAQzB,OAPA5mD,KAAKkU,SAEDlU,KAAKkU,OAAS,IACdlU,KAAKqE,KAAK,GAAKurF,EACf5vF,KAAK04I,MAAM,IAGR5jI,CACX,CAEA8jI,IAAAA,GACI,OAAO54I,KAAKqE,KAAK,EACrB,CAEAs0I,GAAAA,CAAIpqC,GACA,MAAM,KAAClqG,EAAI,QAAEm0I,GAAWx4I,KAClBoH,EAAO/C,EAAKkqG,GAElB,KAAOA,EAAM,GAAG,CACZ,MAAMq3B,EAAUr3B,EAAM,GAAM,EACtBrrG,EAAUmB,EAAKuhI,GACrB,GAAI4S,EAAQpxI,EAAMlE,IAAY,EAAG,MACjCmB,EAAKkqG,GAAOrrG,EACZqrG,EAAMq3B,CACV,CAEAvhI,EAAKkqG,GAAOnnG,CAChB,CAEAsxI,KAAAA,CAAMnqC,GACF,MAAM,KAAClqG,EAAI,QAAEm0I,GAAWx4I,KAClB64I,EAAa74I,KAAKkU,QAAU,EAC5B9M,EAAO/C,EAAKkqG,GAElB,KAAOA,EAAMsqC,GAAY,CACrB,IAAIjkI,EAAoB,GAAZ25F,GAAO,GACfuqC,EAAOz0I,EAAKuQ,GAChB,MAAMC,EAAQD,EAAO,EAMrB,GAJIC,EAAQ7U,KAAKkU,QAAUskI,EAAQn0I,EAAKwQ,GAAQikI,GAAQ,IACpDlkI,EAAOC,EACPikI,EAAOz0I,EAAKwQ,IAEZ2jI,EAAQM,EAAM1xI,IAAS,EAAG,MAE9B/C,EAAKkqG,GAAOuqC,EACZvqC,EAAM35F,CACV,CAEAvQ,EAAKkqG,GAAOnnG,CAChB,EAGJ,SAASqxI,EAAenqD,EAAG5K,GACvB,OAAO4K,EAAI5K,GAAK,EAAI4K,EAAI5K,EAAI,EAAI,CACpC,CCjEO,MAAM88B,EACT,gBAAcC,CAAU1gB,EAAcg5C,EAAmBz9H,GAIrD,IAAIu+E,EAAMX,EAAM8/C,EAAM7/C,EAHtB4/C,EAAYA,GAAa,EAIzB,IAAK,IAAIt9H,EAAI,EAAGA,EAAIskF,EAAQ,GAAG7rF,OAAQuH,IAAK,CACxC,MAAM0vC,EAAI40C,EAAQ,GAAGtkF,KAChBA,GAAK0vC,EAAE,GAAK0uC,KAAMA,EAAO1uC,EAAE,MAC3B1vC,GAAK0vC,EAAE,GAAK+tC,KAAMA,EAAO/tC,EAAE,MAC3B1vC,GAAK0vC,EAAE,GAAK6tF,KAAMA,EAAO7tF,EAAE,MAC3B1vC,GAAK0vC,EAAE,GAAKguC,KAAMA,EAAOhuC,EAAE,GACpC,CAEA,MAAMnjD,EAAQgxI,EAAOn/C,EACfrvF,EAAS2uF,EAAOD,EAChB+/C,EAAWnyF,KAAKklB,IAAIhkE,EAAOwC,GACjC,IAAIyrI,EAAIgD,EAAW,EAEnB,GAAiB,IAAbA,EAAgB,CAEhB,MADkD,CAAEv8H,EAAGm9E,EAAM/a,EAAGoa,EAAMxR,SAAU,EAEpF,CAGA,MAAMwxD,EAAY,IAAIX,OAAU12I,EAAW7B,KAAKm5I,YAGhD,IAAK,IAAIz8H,EAAIm9E,EAAMn9E,EAAIs8H,EAAMt8H,GAAKu8H,EAC9B,IAAK,IAAIn6D,EAAIoa,EAAMpa,EAAIqa,EAAMra,GAAKm6D,EAC9BC,EAAUn9I,KAAKiE,KAAKo5I,OAAO18H,EAAIu5H,EAAGn3D,EAAIm3D,EAAGA,EAAGl2C,IAKpD,IAAIs5C,EAAWr5I,KAAKs5I,gBAAgBv5C,GAGpC,MAAMw5C,EAAWv5I,KAAKo5I,OAAOv/C,EAAO7xF,EAAQ,EAAGkxF,EAAO1uF,EAAS,EAAG,EAAGu1F,GACjEw5C,EAASn0D,EAAIi0D,EAASj0D,IACtBi0D,EAAWE,GAGf,IAAIC,EAAYN,EAAUhlI,OAE1B,KAAOglI,EAAUhlI,QAAQ,CAErB,MAAMulI,EAAOP,EAAUtyF,MACvB,GAAI6yF,EAAM,CASN,GANIA,EAAKr0D,EAAIi0D,EAASj0D,IAClBi0D,EAAWI,EACXn+H,GAASrc,QAAQ6Y,IAAI,gCAAiCgvC,KAAKC,MAAM,IAAM0yF,EAAKr0D,GAAK,IAAKo0D,IAItFC,EAAKttE,IAAMktE,EAASj0D,GAAK2zD,EACzB,SAIJ9C,EAAIwD,EAAKxD,EAAI,EACbiD,EAAUn9I,KAAKiE,KAAKo5I,OAAOK,EAAK/8H,EAAIu5H,EAAGwD,EAAK36D,EAAIm3D,EAAGA,EAAGl2C,IACtDm5C,EAAUn9I,KAAKiE,KAAKo5I,OAAOK,EAAK/8H,EAAIu5H,EAAGwD,EAAK36D,EAAIm3D,EAAGA,EAAGl2C,IACtDm5C,EAAUn9I,KAAKiE,KAAKo5I,OAAOK,EAAK/8H,EAAIu5H,EAAGwD,EAAK36D,EAAIm3D,EAAGA,EAAGl2C,IACtDm5C,EAAUn9I,KAAKiE,KAAKo5I,OAAOK,EAAK/8H,EAAIu5H,EAAGwD,EAAK36D,EAAIm3D,EAAGA,EAAGl2C,IACtDy5C,GAAa,CACjB,CACJ,CAEAl+H,GAASrc,QAAQ6Y,IAAI,8BAA+B,CAAE0hI,YAAW9xD,SAAU2xD,EAASj0D,IAGpF,MADwC,CAAE1oE,EAAG28H,EAAS38H,EAAGoiE,EAAGu6D,EAASv6D,EAAG4I,SAAU2xD,EAASj0D,EAE/F,CAIA,aAAcg0D,CAAO18H,EAAWoiE,EAAWm3D,EAAWl2C,GAClD,MAAM3a,EAAIplF,KAAK05I,mBAAmBh9H,EAAGoiE,EAAGihB,GACxC,MAAO,CAAErjF,IAAGoiE,IAAGm3D,IAAG7wD,IAAGjZ,IAAKiZ,EAAI6wD,EAAInvF,KAAK6yF,MAC3C,CAGA,yBAAcD,CAAmBh9H,EAAWoiE,EAAWihB,GACnD,IAAI8pC,GAAS,EACT+P,EAAYtH,IAEhB,IAAK,IAAItL,EAAI,EAAGA,EAAIjnC,EAAQ7rF,OAAQ8yH,IAAK,CACrC,MAAM6S,EAAO95C,EAAQinC,GAErB,IAAIvrH,EAAI,EACR,MAAM01B,EAAM0oG,EAAK3lI,OACjB,IAAI8pH,EAAI7sF,EAAM,EACd,KAAO11B,EAAI01B,EAAK6sF,EAAIviH,IAAK,CACrB,MAAM6yE,EAAIurD,EAAKp+H,GACTioE,EAAIm2D,EAAK7b,GAET1vC,EAAE,GAAKxP,IAAQ4E,EAAE,GAAK5E,GACvBpiE,GAAKgnE,EAAE,GAAK4K,EAAE,KAAOxP,EAAIwP,EAAE,KAAO5K,EAAE,GAAK4K,EAAE,IAAMA,EAAE,KAAKu7C,GAAUA,GAEvE+P,EAAY9yF,KAAKklB,IAAI4tE,EAAW55I,KAAK85I,aAAap9H,EAAGoiE,EAAGwP,EAAG5K,GAC/D,CACJ,CAEA,OAAqB,IAAdk2D,EAAkB,GAAK/P,EAAS,GAAK,GAAK/iF,KAAKsqE,KAAKwoB,EAC/D,CAGA,sBAAcN,CAAgBv5C,GAC1B,IAAI9sF,EAAO,EACPyJ,EAAI,EACJoiE,EAAI,EACR,MAAMxB,EAASyiB,EAAQ,GAEvB,IAAItkF,EAAI,EACR,MAAM01B,EAAMmsC,EAAOppE,OACnB,IAAI8pH,EAAI7sF,EAAM,EACd,KAAO11B,EAAI01B,EAAK6sF,EAAIviH,IAAK,CACrB,MAAM6yE,EAAIhR,EAAO7hE,GACXioE,EAAIpG,EAAO0gD,GACXzQ,EAAIj/B,EAAE,GAAK5K,EAAE,GAAKA,EAAE,GAAK4K,EAAE,GACjC5xE,IAAM4xE,EAAE,GAAK5K,EAAE,IAAM6pC,EACrBzuC,IAAMwP,EAAE,GAAK5K,EAAE,IAAM6pC,EACrBt6G,GAAY,EAAJs6G,CACZ,CACA,OAAa,IAATt6G,EACOjT,KAAKo5I,OAAO97D,EAAO,GAAG,GAAIA,EAAO,GAAG,GAAI,EAAGyiB,GAE/C//F,KAAKo5I,OAAO18H,EAAIzJ,EAAM6rE,EAAI7rE,EAAM,EAAG8sF,EAC9C,CAGA,mBAAc+5C,CAAaC,EAAYC,EAAY1rD,EAAkB5K,GAEjE,IAAIhnE,EAAI4xE,EAAE,GACNxP,EAAIwP,EAAE,GACN2rD,EAAKv2D,EAAE,GAAKhnE,EACZypE,EAAKzC,EAAE,GAAK5E,EAEhB,GAAW,IAAPm7D,GAAmB,IAAP9zD,EAAU,CAEtB,MAAMo/B,IAAMw0B,EAAKr9H,GAAKu9H,GAAMD,EAAKl7D,GAAKqH,IAAO8zD,EAAKA,EAAK9zD,EAAKA,GAExDo/B,EAAI,GACJ7oG,EAAIgnE,EAAE,GACN5E,EAAI4E,EAAE,IACC6hC,EAAI,IACX7oG,GAAKu9H,EAAK10B,EACVzmC,GAAKqH,EAAKo/B,EAElB,CAKA,OAHA00B,EAAKF,EAAKr9H,EACVypE,EAAK6zD,EAAKl7D,EAEHm7D,EAAKA,EAAK9zD,EAAKA,CAC1B,EA9JSq6B,EA6EK24B,WAAa,CAAC7qD,EAAS5K,IAAYA,EAAEvX,IAAMmiB,EAAEniB,8GChFxD,MAAM03B,EACT,4BAAcyoB,CAAsB1uD,EAAalC,EAA6B4R,GAC1E,MAAM4sE,EAAiBl6I,KAAK8jG,6BAA6BlmC,EAAMlC,EAAW4R,GAC1E1P,EAAKwmD,qBAAuB81B,EAAeC,QAC/C,CAKA,mCAAcr2C,CACVlmC,EACAlC,EACA4R,GAEA,MAAMgzB,EAAkB7H,EAAAA,EAAU8H,kBAC5ByjC,EAAgBvrC,EAAAA,EAAUwrC,sBAAsBrmE,EAAKilB,QAC3DmhD,EAAcjoI,KAAKioI,EAAc,IACjC,IAAIE,EAAa5jC,EAAgB6jC,cAAcH,GAc3CoW,EAA0BlW,EAC9B,MAAMmW,EAAsB3+E,EAAUlhD,QACjCkC,GAAMA,EAAEuvC,SAAW2R,EAAK3R,SAAW43C,EAAcy2C,sBAAsB59H,EAAEpY,QAE9E,IAAK,MAAMi7D,KAAY86E,EAAqB,CACxC,MAAMjW,EAAgB3rC,EAAAA,EAAUwrC,sBAAsB1kE,EAASie,YAC/D4mD,EAAcroI,KAAKqoI,EAAc,IACjC,MAAMmW,EAAaj6C,EAAgB6jC,cAAcC,GAE7CgW,EADA76E,EAASynB,cAAgBC,EAAAA,EAAQG,SAA+BvlF,IAAzB09D,EAASynB,YACtBozD,EAAwBj8C,WAAWo8C,GAEnCH,EAAwB3yC,MAAM8yC,GAGvDv6I,KAAKw6I,qBAAqBj7E,EAAU3B,KAAS59D,KAAKy6I,4BAA4Bl7E,EAAU+N,KACrF/N,EAASynB,cAAgBC,EAAAA,EAAQG,SAA+BvlF,IAAzB09D,EAASynB,YAG5ChnF,KAAK06I,8BAA8Bn7E,EAAU+N,GAAS,IACtD42D,EAAaA,EAAW/lC,WAAWo8C,IAGvCrW,EAAaA,EAAWz8B,MAAM8yC,GAG1C,CAEA,MAAO,CAOHx2C,oBAAqBmgC,EAOrBiW,SAAUC,EAAwBj9C,UAE1C,CAEA,kCAAcs9C,CAA4Bl7E,EAAqB+N,GAC3D,IAAK,MAAMia,KAAQja,EAAO,CACtB,IAAIqtE,EAAe,EACnB,IAAK,MAAMt1D,KAAS9lB,EAASie,WAIzB,GAHI8tC,EAAAA,EAAOmS,sBAAsBl2C,EAAMlC,IACnCs1D,IAEAA,GAAgB,EAChB,OAAO,CAGnB,CACA,OAAO,CACX,CAEA,oCAAcD,CAA8Bn7E,EAAqB+N,GAC7D,IAAIqtE,EAAe,EACnB,IAAK,MAAMpzD,KAAQja,EAAO,CACtB,MAAMuV,EAAStjB,EAASie,WACxB,IAAK,MAAM6H,KAASxC,EAAO7xC,MAAM,EAAG6xC,EAAO3uE,OAAS,GAC5Co3G,EAAAA,EAAOmS,sBAAsBl2C,EAAMlC,IACnCs1D,GAGZ,CACA,OAAOA,CACX,CAEA,2BAAcH,CAAqBj7E,EAAqB3B,GACpD,IAAK,MAAMynB,KAAS9lB,EAASie,WAAa,CAEtC,IADiBE,EAAAA,EAAW26D,oBAAoBhzD,EAAOznB,GAEnD,OAAO,CAEf,CACA,OAAO,CACX,CAKA,4BAAc08E,CAAsBh2I,GAChC,OAAO49D,EAAAA,EAAaoB,aAAeh/D,GAAQ49D,EAAAA,EAAakB,eAAiB9+D,CAC7E,oKCnHG,MAAMs2I,EAAuB,gCACpC,IAAI9J,EACAC,EAIG,MAAMz6C,GAwBZukD,EAxBYvkD,EAAAA,EACKsX,MAAS3hD,GAAc,QAAAxjD,OAAawjD,GADzCqqC,EAGKwkD,mBAAqB,aAH1BxkD,EAIKC,YAAetqC,GAAc,GAAAxjD,OAAQ6tF,EAASwkD,mBAAkB,KAAAryI,OAAIwjD,GAJzEqqC,EAMKykD,kBAAoB,YANzBzkD,EAOKmb,WAAcxlD,GAAc,GAAAxjD,OAAQ6tF,EAASykD,kBAAiB,KAAAtyI,OAAIwjD,GAPvEqqC,EASK0kD,uBAAyB,gBAT9B1kD,EAUKgsB,WAAcr2D,GAAc,GAAAxjD,OAAQ6tF,EAAS0kD,uBAAsB,KAAAvyI,OAAIwjD,GAV5EqqC,EAYK2kD,wBAA0B,eAZ/B3kD,EAaK0mB,cAAiB/wD,GAAc,GAAAxjD,OAAQ6tF,EAAS2kD,wBAAuB,KAAAxyI,OAAIwjD,GAbhFqqC,EAeK4kD,0BAA4B,gBAfjC5kD,EAgBKn5B,WAAclR,GAAc,GAAAxjD,OAAQ6tF,EAAS4kD,0BAAyB,KAAAzyI,OAAIwjD,GAhB/EqqC,EAkBK6kD,uBAAyB,gBAlB9B7kD,EAmBK8kD,eAAiB,CAACnvF,EAAgBkR,IAAkB,GAAA10D,OAC3D6tF,EAAS6kD,uBAAsB,KAAA1yI,OAAIwjD,EAAM,KAAAxjD,OAAI00D,GApB3Cm5B,EAsBK+kD,gBAAkB,aAtBvB/kD,EAuBKqX,gBAAkB,CAAC1hD,EAAgBrvD,IAAa,GAAA6L,OAAQ6tF,EAAS+kD,gBAAe,KAAA5yI,OAAIwjD,EAAM,KAAAxjD,OAAI7L,GAGzG,MAAMi5G,EAAcA,KACvB,MAAMylC,GAAY1L,EAAAA,EAAAA,KACZ/+B,GAAUC,EAAAA,EAAAA,MAkJhB,MAAO,CAAEiG,cAjJaA,CAACP,EAAmB54C,KACtC,MAAM29E,EAAU/kC,EAAK95F,EACf8+H,EAAUhlC,EAAK13B,EAErB,MAAO,CAAEy5B,GAAIgjC,EAAS9iC,GAAI+iC,EAAShjC,GAAI+iC,EAAS7iC,GAAI8iC,EAAS,EA6IzCC,SA3IPA,CAACjlC,EAAmB54C,EAAaw4C,EAA4BnoD,KAC1E,MAAMytF,EAAaJ,EAAUlL,gBACzB55B,EACA54C,EACA,CAAElhD,EAAGo0H,EAAYhyD,EAAGiyD,GACpB,CAAEr0H,EAAG05F,EAAaoC,GAAI15B,EAAGs3B,EAAasC,IACtCzqD,GAEAytF,EAAWh/H,IACX85F,EAAK95F,EAAIg/H,EAAWh/H,GAEpBg/H,EAAW58D,IACX03B,EAAK13B,EAAI48D,EAAW58D,GAGxB,MAAM68D,EAAMl/D,SAASm/D,uBAAuBtlD,EAASsX,MAAMhwC,EAAK3R,SAG1Dy2E,EAAwB7+C,EAAAA,EAAa6+C,sBAE3C,IAAK,IAAIjnH,EAAI,EAAGA,EAAIkgI,EAAIznI,OAAQuH,IAAK,CAAC,IAADogI,EACjC,MAAMC,EAAKH,EAAIlgI,GACfq1H,EAAat6B,EAAK95F,EAAI05F,EAAamC,GACnCw4B,EAAav6B,EAAK13B,EAAIs3B,EAAaqC,GACnC,MAAMhZ,EAAS,CAAE/iF,EAAGo0H,EAAYhyD,EAAGiyD,GAC7BgL,EAAYr+D,EAAAA,EAAW4gB,YAAY,CAAE5hF,EAAG05F,EAAamC,GAAIz5B,EAAGs3B,EAAaqC,IAAMhZ,GACrF7hC,EAAKklB,OAAS,CAAEpmE,EAAGq/H,EAAUr/H,EAAImnE,EAAAA,EAAaD,MAAO9E,EAAGi9D,EAAUj9D,EAAI+E,EAAAA,EAAaD,OACnFlG,EAAAA,EAAWg3D,eAAe92E,EAAKklB,QAE/B,MAAMxF,EAAS1f,EAAKilB,OAAQ17E,KAAKuV,GAAMghE,EAAAA,EAAW4gB,YAAY5hF,EAAG+iF,KAC3DwrB,EAAeh9D,EAAM9mD,KAAK87C,GAAOA,EAAEgJ,SAAW2R,EAAK3R,OAAS,IAAKhJ,EAAG4/B,OAAQvF,GAAWr6B,IACvFmyD,EAAiB1C,EAAAA,EAAyBC,kBAAkBsY,EAAcrtD,EAAK3R,QAChFnX,EAAAA,GAAYoQ,UAAsC,QAA7B22F,EAAChrC,EAAQ10G,MAAMi5G,sBAAc,IAAAymC,EAAAA,EAAI,GAAIzmC,IAC3DvE,EAAQ5hG,OAAO,CAAEmmG,mBAGrB07B,EAAaA,GAAcpO,GAAyBoO,EAAapO,EAAwB,EAAIoO,EAC7FC,EAAaA,GAAcrO,GAAyBqO,EAAarO,EAAwB,EAAIqO,EAC7F,MAAMxrB,EAAC,aAAA98G,OAAgBqoI,EAAU,KAAAroI,OAAIsoI,EAAU,KAC/C+K,EAAGE,aAAa,YAAaz2B,EACjC,GAmG8B02B,YAhGdA,CAChBr+E,EACA3P,EACAwN,EACAC,EACA4R,KACE,IAAD4uE,EACD,MAAMC,EAAc1/D,SAASC,eAAe4Z,EAASmb,WAAW7zC,EAAK3R,SAC/DmwF,EAAc3/D,SAASC,eAAe4Z,EAASC,YAAY34B,EAAK3R,SAChEowF,EAAa5/D,SAASC,eAAe4Z,EAASgsB,WAAW1kD,EAAK3R,SAEpE,IAAiC,QAA7BiwF,EAACrrC,EAAQ10G,MAAMi5G,sBAAc,IAAA8mC,EAAAA,EAAI,IAAIhoI,OAAS,EAAG,CACjD28F,EAAQ5hG,OAAO,CAAEmmG,oBAAgBvzG,IACjC,MAAMy6I,EAAY7/D,SAASC,eAAe4Z,EAAS0mB,cAAcp/C,EAAK3R,SAChEswF,EAAa9/D,SAASC,eAAe4Z,EAASn5B,WAAWS,EAAK3R,SAC3D,OAATqwF,QAAS,IAATA,GAAAA,EAAWE,gBAAgB,aACjB,OAAVD,QAAU,IAAVA,GAAAA,EAAYC,gBAAgB,aACjB,OAAXL,QAAW,IAAXA,GAAAA,EAAaK,gBAAgB,aAClB,OAAXJ,QAAW,IAAXA,GAAAA,EAAaI,gBAAgB,aACnB,OAAVH,QAAU,IAAVA,GAAAA,EAAYG,gBAAgB,aAC5BlxB,EAAAA,EAAOC,UAAUj+C,EAAOrf,GACxBwN,EAAWs3C,EAAAA,EAAaC,uBAAuBv3C,EAAU6R,GAEzD,IAAK,MAAM1P,KAAQ3P,EACf2P,EAAKnC,SAAWs3C,EAAAA,EAAaoZ,mBAAmBvuD,EAAMnC,GAG1D,MAAO,CAAEwvD,aAAch9D,EAAO+tD,gBAAiBvgD,EAAUkjD,iBAAkBjjD,EAAWsvD,aAAc19C,EACxG,CAEA,GAAI8uE,EAAYK,aAAa,aAAc,CACvC,MACMC,EADYN,EAAYO,aAAa,aACf9iG,MAAM+gG,GAC5Bn7C,EAAS,CAAE/iF,EAAG4gC,OAAOo/F,EAAU,IAAK59D,EAAGxhC,OAAOo/F,EAAU,KAG9D9+E,EAAK0P,MAAO1xD,SAAS2rE,IACS+jC,EAAAA,EAAO+e,gBAAgB9iD,EAAM9rB,GACrC7/C,SAASsjD,IACvB,MAAM09E,EAAiBl/D,EAAAA,EAAW4gB,YAAYp/B,EAAuBugC,GACrEvgC,EAAQxiD,EAAIkgI,EAAelgI,EAC3BwiD,EAAQ4f,EAAI89D,EAAe99D,EAC3B,MAAMyyD,EAAS7zD,EAAAA,EAAW8zD,SAASjqD,EAAKw+C,UAAUjR,KAAM51D,EAAQxa,KAAOwa,GACvEA,EAAQuoB,MAAQwmB,EAAAA,EAAKykC,SAASnrD,EAAKhK,MAAM7gE,EAAG6qE,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI9qE,EAAG6qE,EAAKC,IAAI1I,GAC/E5f,EAAQk4B,MAAQm6C,CAAM,IAE1BhqD,EAAKhK,MAAQG,EAAAA,EAAW4gB,YAAY/W,EAAKhK,MAAOkiB,GAChDlY,EAAKC,IAAM9J,EAAAA,EAAW4gB,YAAY/W,EAAKC,IAAKiY,EAAO,IAIvD7hC,EAAKlC,UAAW9/C,SAAS2jD,IACrB,MAAMs9E,EAAmBt9E,EAAS+nB,iBAC5BmY,EAAqB,CAAE/iF,EAAGo0H,GAAc,EAAGhyD,EAAGiyD,GAAc,GAClExxE,EAASie,WAAaje,EAASie,WAAYr2E,KAAKgkD,GAAMuyB,EAAAA,EAAW4gB,YAAYnzC,EAAGs0C,KAChFlgC,EAAS+nB,iBAAmB,CAAE5qE,EAAGmgI,EAAiBngI,EAAI+iF,EAAO/iF,EAAGoiE,EAAG+9D,EAAiB/9D,EAAI2gB,EAAO3gB,EAAG,GAE1G,CAEAgyD,EAAa,EACbC,EAAa,EACF,OAAXoL,QAAW,IAAXA,GAAAA,EAAaK,gBAAgB,aAClB,OAAXJ,QAAW,IAAXA,GAAAA,EAAaI,gBAAgB,aACnB,OAAVH,QAAU,IAAVA,GAAAA,EAAYG,gBAAgB,aAE5B,MAAMb,EAAMl/D,SAASm/D,uBAAuBtlD,EAASsX,MAAMhwC,EAAK3R,SAChE,IAAK,IAAIxwC,EAAI,EAAGA,EAAIkgI,EAAIznI,OAAQuH,IAAK,CACjC,MAAMqgI,EAAKH,EAAIlgI,IAEXqgI,EAAG70I,GAAGgsC,WAAWqjD,EAASwkD,qBAC1BgB,EAAG70I,GAAGgsC,WAAWqjD,EAASykD,oBAC1Be,EAAG70I,GAAGgsC,WAAWqjD,EAAS0kD,yBAC1Bc,EAAG70I,GAAGgsC,WAAWqjD,EAAS2kD,0BAC1Ba,EAAG70I,GAAGgsC,WAAWqjD,EAAS4kD,4BAC1BY,EAAG70I,GAAGgsC,WAAWqjD,EAAS6kD,yBAC1BW,EAAG70I,GAAGgsC,WAAWqjD,EAAS+kD,mBAE1BS,EAAGU,gBAAgB,YAE3B,CAEA,MAAMvxB,EAAeh9D,EAAM9mD,KAAK87C,GAAOA,EAAEgJ,SAAW2R,EAAK3R,OAAS2R,EAAO3a,IACnE+nE,EAAeC,EAAa3tG,QAAoB,CAAC3W,EAAO4rF,IAAM,IAAI5rF,KAAU4rF,EAAEjlB,QAAS,IAC7F,IAAI0uC,EAAkBiP,EAAa3tG,QAAwB,CAAC3W,EAAO4rF,IAAM,IAAI5rF,KAAU4rF,EAAE92B,WAAY,IACrG,MAAMkjD,EAAmBsM,EAAa3tG,QAAyB,CAAC3W,EAAO4rF,IAAM,IAAI5rF,KAAU4rF,EAAE72B,YAAa,IAE1G4vD,EAAAA,EAAOC,UAAUP,EAAcC,GAC/BjP,EAAkBjJ,EAAAA,EAAaC,uBAAuBgJ,EAAiBgP,GAEvE,IAAK,MAAMptD,KAAQqtD,EACfrtD,EAAKnC,SAAWs3C,EAAAA,EAAaoZ,mBAAmBvuD,EAAMo+C,GAG1D,MAAO,CAAEiP,eAAcjP,kBAAiB2C,mBAAkBqM,eAAc,EAG7B,2LChL5C,MAAMniC,EA2CT,gBAAcm8B,CACVpnD,EACAhhE,EACA0wE,EACA7R,EACAC,GAEA,IAAIohF,EAAsB98I,KAAK8oF,WAAWlrB,GAC1C,GAAIk/E,EAAc,CAAC,IAADC,EACdD,EAAa7wF,OAASwuC,EAAAA,EAAYC,WAClCoiD,EAAalgJ,KAAOA,EACpBkgJ,EAAan+E,eAAiB7pB,EAAAA,EAAYC,MAAM+nG,EAAan+E,gBAE7D,MAAMovC,EAAOrwB,EAAAA,EAAWC,qBAAqB,CAAEL,OAAQ1f,EAAKilB,SACtDm6D,EAAct/D,EAAAA,EAAWC,qBAAqB,CAAErQ,UAChD++D,EAAS,CACX3vH,EAAGuxF,EAAAA,EAAKC,QAAQ,CAAExxF,EAAGqxF,EAAKjwB,KAAMgB,EAAGivB,EAAKhwB,MAAQ,CAAErhE,EAAGsgI,EAAYh/D,KAAMc,EAAGivB,EAAKhwB,OAAU,IAAM,IAC/Fe,EAAG,GAEDm+D,EAAa,CACfvgI,EAAc,IAAX2vH,EAAO3vH,EACVoiE,EAAG,GAEDo+D,EAAuBx/D,EAAAA,EAAW4gB,YACpC,CAAE5hF,EAAGogI,EAAah6D,OAAQpmE,EAAGoiE,EAAGg+D,EAAah6D,OAAQhE,GACrDutD,GAEJyQ,EAAaj6D,OAA4B,QAAtBk6D,EAAGD,EAAaj6D,cAAM,IAAAk6D,OAAA,EAAnBA,EAAqB51I,KAAKuV,GAAMghE,EAAAA,EAAW4gB,YAAY5hF,EAAGugI,KAChFH,EAAah6D,OAASo6D,EACtBx/D,EAAAA,EAAWg3D,eAAeoI,EAAah6D,QAEvC,MAAMq6D,EAAiB,IAAK9Q,GAC5B8Q,EAAezgI,EAAe,IAAX2vH,EAAO3vH,EAE1B,MAAM0gI,EAAuBrqC,EAAAA,EAAaoZ,mBAAmBvuD,EAAMnC,GACnEqhF,EAAarhF,SAAW3mB,EAAAA,EAAYC,MAAMqoG,GAC1C,MAAMC,EAAcvoG,EAAAA,EAAYC,MAAM0mB,GACtC,IAAK,MAAMyD,KAAW49E,EAAarhF,SAC/ByD,EAAQhC,UAAYu9B,EAAAA,EAAYC,WAChCx7B,EAAQjT,OAAS6wF,EAAa7wF,OAC9BiT,EAAQtiE,KAAO0/G,EAAAA,EAAeC,WAAWr9C,EAASm+E,GAClDn+E,EAAQxiD,EAAIwiD,EAAQxiD,EAAKygI,EAAezgI,EACxC2gI,EAAYthJ,KAAKmjE,GAGrB49E,EAAaphF,UAAY5mB,EAAAA,EAAYC,MAAM+nG,EAAaphF,WACxD,MAAM4hF,EAAexoG,EAAAA,EAAYC,MAAM2mB,GACvC,IAAK,MAAM6D,KAAYu9E,EAAaphF,UAAY,CAAC,IAAD44E,EAC5C/0E,EAASpC,WAAas9B,EAAAA,EAAYC,WAClCn7B,EAAStT,OAAS6wF,EAAa7wF,OAE/BsT,EAASie,WAAgC,QAAtB82D,EAAG/0E,EAASie,kBAAU,IAAA82D,OAAA,EAAnBA,EAAqBntI,KAAKuV,GAAMghE,EAAAA,EAAW4gB,YAAY5hF,EAAGygI,KAChF59E,EAAS+nB,iBAAmB5J,EAAAA,EAAW4gB,YAAY/+B,EAAS+nB,iBAAmB61D,GAC/E59E,EAAS3iE,KAAO4hH,EAAAA,EAAgBjC,WAAWh9C,EAAU+9E,GACrDA,EAAavhJ,KAAKwjE,EACtB,CAGA,OAAOv/D,KAAKqrH,WAAWyxB,EAAcxvE,EACzC,CAKA,MAAO,CAAE1P,KAAMk/E,EACnB,CAwSA,4BAAeS,CAAsB3/E,GACjC,MAAM0f,EAASxoC,EAAAA,EAAYC,MAAM6oB,EAAKilB,OAAQ7xC,MAAM,EAAG4sB,EAAKilB,OAAQ3uE,OAAS,IACvE24D,EAAY6Q,EAAAA,EAAWu5D,QAAQ35D,GAE/BysD,EAAQ,IAAI4I,IAClB,IAAI6K,EAAY,EAChB3wE,EAAUjxD,SAAS2rE,IACfwiD,EAAM6I,IAAI,QAADnqI,OAAS+0I,GAAa,CAACj2D,EAAKhK,MAAOgK,EAAKC,MACjDg2D,GAAW,IAGflgE,EAAO1hE,SAASklF,GAAmB9gG,KAAKy9I,gBAAgB38C,KACxD,MAAM4yC,EAAKh2D,EAAAA,EAAW+mB,UAAUnnB,GAGhC,OAFAI,EAAAA,EAAW61D,uBAAuBj2D,EAAQo2D,GAAI,GAEvC1zI,KAAK09I,iBAAiB9/E,EAAM81E,EAAIp2D,EAC3C,CAEA,uBAAeogE,CAAiB9/E,EAAaklB,EAAoBxF,GAC7D,MAAO,IACA1f,EACHklB,OAAQA,EACR4D,aAAcpJ,EAEtB,CAYA,sBAAcmgE,CAAgB38C,GAG1B,OAFAA,EAAMpkF,GAAKmnE,EAAAA,EAAaD,MACxBkd,EAAMhiB,GAAK+E,EAAAA,EAAaD,MACjBkd,CACX,EACH68C,EA7bY90D,EAAAA,EACKwiC,WAAa,CAACztD,EAAaggF,KAA6C,IAADC,EAMjF,GALAjgF,EAAK3R,OAAoB,QAAd4xF,EAAGjgF,EAAK3R,cAAM,IAAA4xF,EAAAA,EAAIpjD,EAAAA,EAAYC,WAErC98B,EAAKt5D,OAASu6D,EAAAA,GAASG,OACvBpB,EAAK8xD,aAAe9gD,EAAAA,GAAiBC,QAErCjR,EAAKilB,OACL,OAAO86D,EAAKG,sBAAsBlgF,EAAMggF,GAGxC,OAAQhgF,EAAKgpB,OACT,KAAKC,EAAAA,GAAUmB,UACX,OAAO21D,EAAKI,yBAAyBngF,EAAMggF,GAC/C,KAAK/2D,EAAAA,GAAUgB,gBACf,KAAKhB,EAAAA,GAAUc,iBACf,KAAKd,EAAAA,GAAUwrC,mBACf,KAAKxrC,EAAAA,GAAU0rC,oBACX,OAAOorB,EAAKK,uBAAuBpgF,EAAMggF,GAC7C,KAAK/2D,EAAAA,GAAU4rC,mBACf,KAAK5rC,EAAAA,GAAU8rC,oBACf,KAAK9rC,EAAAA,GAAUgsC,sBACf,KAAKhsC,EAAAA,GAAUe,uBACX,OAAO+1D,EAAKM,0BAA0BrgF,EAAMggF,GAChD,KAAK/2D,EAAAA,GAAUmsC,MACf,KAAKnsC,EAAAA,GAAUqsC,QACf,KAAKrsC,EAAAA,GAAUssC,SACf,KAAKtsC,EAAAA,GAAUusC,OACX,OAAOuqB,EAAKO,iBAAiBtgF,EAAMggF,GACvC,KAAK/2D,EAAAA,GAAUwsC,KACX,OAAOsqB,EAAKQ,oBAAoBvgF,EAAMggF,GAE1C,KAAK/2D,EAAAA,GAAUC,OACX,OAAO62D,EAAKG,sBAAsBlgF,EAAMggF,GAGpD,MAAO,CAAEhgF,OAAMiP,UAAW,GAAI,EApCzBgc,EAuCKC,WAAclrB,GACjB+/E,EAAKJ,sBAAsB3/E,GAxC7BirB,EAgHMk1D,yBAA2B,CAACngF,EAAaggF,KACpD,IAAItgE,EACA1f,EAAKilB,OACLvF,EAAS1f,EAAKilB,QAEdvF,EAAS,CACL,CAAE5gE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAGkhD,EAAKmrB,mBAAoB/gF,MAAQ82E,EAAG,GACzC,CAAEpiE,EAAGkhD,EAAKmrB,mBAAoB/gF,MAAQ82E,EAAGlhB,EAAKmrB,mBAAoBv+E,QAClE,CAAEkS,EAAG,EAAGoiE,EAAGlhB,EAAKmrB,mBAAoBv+E,SAEpCozD,EAAKklB,QACLpF,EAAAA,EAAW61D,uBAAuBj2D,EAAQ1f,EAAKklB,QAEnDxF,EAAO1hE,SAASklF,GAAUpjB,EAAAA,EAAWk2D,qBAAqB9yC,KACrDljC,EAAKklB,SACNpF,EAAAA,EAAWo2D,YAAYx2D,GACvBI,EAAAA,EAAWu2D,4BAA4B32D,EAAQsgE,IAEnDlgE,EAAAA,EAAW+2D,gBAAgBn3D,IAG/B1f,EAAKgpB,MAAQC,EAAAA,GAAUC,OAOvB,MAAO,CAAElpB,OAAMiP,UANgB,CAC3B+4B,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,MAAO1f,GAClDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,QAAS1f,GACpDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,SAAU1f,GACrDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,OAAQ1f,IAE7B,EA7IrBirB,EAgJMm1D,uBAAyB,CAACpgF,EAAaggF,KAClD,IAAItgE,EACJ,GAAI1f,EAAKilB,OACLvF,EAAS1f,EAAKilB,WACX,CACH,MAAMw7D,EAAa,IAAI1L,IAAI,CACvB,CAAC9rD,EAAAA,GAAUgB,gBAAiB,GAC5B,CAAChB,EAAAA,GAAUc,iBAAkB,IAC7B,CAACd,EAAAA,GAAU0rC,oBAAqB,KAChC,CAAC1rC,EAAAA,GAAUwrC,mBAAoB,OAI7BisB,EAAmBx3F,KAAKsqE,KAAKtqE,KAAKuqE,IAAIzzD,EAAKmrB,mBAAoBmoC,MAAQ,GAAK,GAElF5zC,EAAS,CACL,CAAE5gE,EAAG,EAAGoiE,EAAGw/D,GACX,CAAE5hI,EAAG4hI,EAAkBx/D,EAAG,GAC1B,CAAEpiE,EAAG4hI,EAAmB1gF,EAAKmrB,mBAAoBwoC,YAAczyC,EAAG,GAClE,CACIpiE,EAAG4hI,EAAmB1gF,EAAKmrB,mBAAoBwoC,YAC/CzyC,EAAGw/D,EAAmB1gF,EAAKmrB,mBAAoBuoC,YAEnD,CAAE50G,EAAG,EAAGoiE,EAAGw/D,EAAmB1gF,EAAKmrB,mBAAoBuoC,aAG3D5zC,EAAAA,EAAWykB,SAAS7kB,EAAQ+gE,EAAW1xI,IAAIixD,EAAKgpB,QAG5ChpB,EAAKklB,QACLpF,EAAAA,EAAW61D,uBAAuBj2D,EAAQ1f,EAAKklB,QAInDxF,EAAO1hE,SAASklF,GAAUpjB,EAAAA,EAAWk2D,qBAAqB9yC,GAAO,KAE5DljC,EAAKklB,SACNpF,EAAAA,EAAWo2D,YAAYx2D,GACvBI,EAAAA,EAAWu2D,4BAA4B32D,EAAQsgE,IAGnDlgE,EAAAA,EAAW+2D,gBAAgBn3D,EAC/B,CAEA1f,EAAKgpB,MAAQC,EAAAA,GAAUC,OAavB,MAAO,CAAElpB,OAAMiP,UAZgB,CAE3B+4B,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,QAAS1f,GAEpDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,cAAe1f,GAE1DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,iBAAkB1f,GAE7DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,gBAAiB1f,GAE5DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,aAAc1f,IAEnC,EAzMrBirB,EA4MMo1D,0BAA4B,CAACrgF,EAAaggF,KACrD,MAAMS,EAAa,IAAI1L,IAAI,CACvB,CAAC,qBAAsB,GACvB,CAAC,sBAAuB,IACxB,CAAC,yBAA0B,KAC3B,CAAC,wBAAyB,OAG9B,IAAIr1D,EACA1f,EAAKilB,OACLvF,EAAS1f,EAAKilB,QAEdvF,EAAS,CACL,CAAE5gE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAGkhD,EAAKmrB,mBAAoB2qC,aAAgB91D,EAAKmrB,mBAAoBwqC,oBAAsBz0C,EAAG,GAChG,CACIpiE,EAAGkhD,EAAKmrB,mBAAoB2qC,aAAgB91D,EAAKmrB,mBAAoBwqC,oBACrEz0C,EAAGlhB,EAAKmrB,mBAAoByqC,eAEhC,CAAE92G,EAAGkhD,EAAKmrB,mBAAoB2qC,aAAe50C,EAAGlhB,EAAKmrB,mBAAoByqC,eACzE,CACI92G,EAAGkhD,EAAKmrB,mBAAoB2qC,aAC5B50C,EAAGlhB,EAAKmrB,mBAAoByqC,cAAiB51D,EAAKmrB,mBAAoB0qC,oBAE1E,CAAE/2G,EAAG,EAAGoiE,EAAGlhB,EAAKmrB,mBAAoByqC,cAAiB51D,EAAKmrB,mBAAoB0qC,qBAGlF/1C,EAAAA,EAAWykB,SAAS7kB,EAAQ+gE,EAAW1xI,IAAIixD,EAAKgpB,QAE5ChpB,EAAKklB,QACLpF,EAAAA,EAAW61D,uBAAuBj2D,EAAQ1f,EAAKklB,QAGnDxF,EAAO1hE,SAASklF,GAAUpjB,EAAAA,EAAWk2D,qBAAqB9yC,KAErDljC,EAAKklB,SACNpF,EAAAA,EAAWo2D,YAAYx2D,GACvBI,EAAAA,EAAWu2D,4BAA4B32D,EAAQsgE,IAEnDlgE,EAAAA,EAAW+2D,gBAAgBn3D,IAG/B1f,EAAKgpB,MAAQC,EAAAA,GAAUC,OASvB,MAAO,CAAElpB,OAAMiP,UARgB,CAC3B+4B,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,qBAAsB1f,GACjEgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,gBAAiB1f,GAC5DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,sBAAuB1f,GAClEgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,qBAAsB1f,GACjEgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,eAAgB1f,GAC3DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,oBAAqB1f,IAE1C,EA/PrBirB,EAkQMq1D,iBAAmB,CAACtgF,EAAaggF,KAC5C,MAAMS,EAAa,IAAI1L,IAAI,CACvB,CAAC9rD,EAAAA,GAAUmsC,MAAO,GAClB,CAACnsC,EAAAA,GAAUqsC,QAAS,IACpB,CAACrsC,EAAAA,GAAUssC,SAAU,KACrB,CAACtsC,EAAAA,GAAUusC,OAAQ,OAEjBmrB,EAAe3gF,EAAKmrB,mBAAoB6qC,cACxC4qB,EAAmB5gF,EAAKmrB,mBAAoB8qC,mBAC5C4qB,EAAU7gF,EAAKmrB,mBAAoB+qC,SACnC4qB,EAAmB9gF,EAAKmrB,mBAAoBgrC,mBAC5C4qB,EAAW/gF,EAAKmrB,mBAAoBirC,UACpC4qB,EAAoBhhF,EAAKmrB,mBAAoBkrC,oBAGnD,IAAI32C,EACA1f,EAAKilB,OACLvF,EAAS1f,EAAKilB,QAEdvF,EAAS,CACL,CAAE5gE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG+hI,EAAS3/D,EAAG,GACjB,CAAEpiE,EAAG+hI,EAAS3/D,EAAG4/D,GACjB,CAAEhiI,EAAG6hI,EAAeI,EAAU7/D,EAAG4/D,GACjC,CAAEhiI,EAAG6hI,EAAeI,EAAU7/D,EAAG0/D,EAAmBI,GACpD,CAAEliI,EAAG6hI,EAAcz/D,EAAG0/D,EAAmBI,GACzC,CAAEliI,EAAG6hI,EAAcz/D,EAAG0/D,GACtB,CAAE9hI,EAAG,EAAGoiE,EAAG0/D,IAGf9gE,EAAAA,EAAWykB,SAAS7kB,EAAQ+gE,EAAW1xI,IAAIixD,EAAKgpB,QAE5ChpB,EAAKklB,QACLpF,EAAAA,EAAW61D,uBAAuBj2D,EAAQ1f,EAAKklB,QAGnDxF,EAAO1hE,SAASklF,GAAUpjB,EAAAA,EAAWk2D,qBAAqB9yC,KAErDljC,EAAKklB,SACNpF,EAAAA,EAAWo2D,YAAYx2D,GACvBI,EAAAA,EAAWu2D,4BAA4B32D,EAAQsgE,IAEnDlgE,EAAAA,EAAW+2D,gBAAgBn3D,IAG/B1f,EAAKgpB,MAAQC,EAAAA,GAAUC,OAWvB,MAAO,CAAElpB,OAAMiP,UAVgB,CAC3B+4B,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,WAAY1f,GACvDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,qBAAsB1f,GACjEgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,gBAAiB1f,GAC5DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,sBAAuB1f,GAClEgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,YAAa1f,GACxDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,sBAAuB1f,GAClEgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,gBAAiB1f,GAC5DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,qBAAsB1f,IAE3C,EA1TrBirB,EA6TMs1D,oBAAsB,CAACvgF,EAAaggF,KAG/C,IAAItgE,EACA1f,EAAKilB,OACLvF,EAAS1f,EAAKilB,QAEdvF,EAAS,CACL,CAAE5gE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,EAAG,IAAKoiE,EAAG,GACb,CAAEpiE,EAAG,IAAKoiE,EAAG,KACb,CAAEpiE,EAAG,EAAKoiE,EAAG,KACb,CAAEpiE,EAAG,EAAKoiE,EAAG,GACb,CAAEpiE,EAAG,IAAKoiE,EAAG,GACb,CAAEpiE,EAAG,IAAKoiE,EAAG,KACb,CAAEpiE,EAAG,EAAGoiE,EAAG,KACX,CAAEpiE,EAAG,EAAGoiE,EAAG,GACX,CAAEpiE,GAAI,IAAKoiE,EAAG,GACd,CAAEpiE,GAAI,IAAKoiE,EAAG,KACd,CAAEpiE,EAAG,EAAGoiE,EAAG,MAGXlhB,EAAKklB,QACLpF,EAAAA,EAAW61D,uBAAuBj2D,EAAQ1f,EAAKklB,QAGnDxF,EAAO1hE,SAASklF,GAAUpjB,EAAAA,EAAWk2D,qBAAqB9yC,KAErDljC,EAAKklB,SACNpF,EAAAA,EAAWo2D,YAAYx2D,GACvBI,EAAAA,EAAWu2D,4BAA4B32D,EAAQsgE,IAEnDlgE,EAAAA,EAAW+2D,gBAAgBn3D,IAG/B1f,EAAKgpB,MAAQC,EAAAA,GAAUC,OAgBvB,MAAO,CAAElpB,OAAMiP,UAfgB,CAC3B+4B,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,UAAW1f,GACtDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,YAAa1f,GACxDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,aAAc1f,GACzDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,YAAa1f,GACxDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,cAAe1f,GAC1DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,cAAe1f,GAC1DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,aAAc1f,GACzDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,eAAgB1f,GAC3DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,GAAI,YAAa1f,GACxDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,GAAIA,EAAO,IAAK,WAAY1f,GACxDgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,IAAKA,EAAO,IAAK,aAAc1f,GAC3DgoC,EAAAA,EAAUw4C,WAAW9gE,EAAO,IAAKA,EAAO,GAAI,WAAY1f,IAGlC,EAhXrBirB,EAmXMi1D,sBAAwB,CAAClgF,EAAaggF,KAA6C,IAADv9B,EAC7F,MAAM/iC,EAASzgC,EAAAA,WAAuB,QAAXwjE,EAAAziD,EAAKilB,cAAM,IAAAw9B,OAAA,EAAXA,EAAarvE,MAAM,EAAG4sB,EAAKilB,OAAQ3uE,OAAS,KAAM0pD,EAAK8oB,cAAgB,IAClG,IAAK9oB,EAAKilB,OAAQ,CACd,MAAMvV,EAAQoQ,EAAAA,EAAWu5D,QAAQ35D,GAE3BysD,EAAQ,IAAI4I,IAClB,IAAI6K,EAAY,EAChBlwE,EAAM1xD,SAAS2rE,IACXwiD,EAAM6I,IAAI,QAADnqI,OAAS+0I,GAAa,CAACj2D,EAAKhK,MAAOgK,EAAKC,MACjDg2D,GAAW,IAEf5/E,EAAKmsE,MAAQA,EAETnsE,EAAKklB,QACLpF,EAAAA,EAAW61D,uBAAuBj2D,EAAQ1f,EAAKklB,QAGnDxF,EAAO1hE,SAASklF,GAAUpjB,EAAAA,EAAWk2D,qBAAqB9yC,KAE1DpjB,EAAAA,EAAW+2D,gBAAgBn3D,EAC/B,CACA1f,EAAKgpB,MAAQC,EAAAA,GAAUC,OACvB,MAAMja,EAAyB,GAC/B,IAAK,IAAIpxD,EAAI,EAAGA,EAAI6hE,EAAOppE,OAAQuH,IAC/BoxD,EAAU9wE,KAAK6pG,EAAAA,EAAUw4C,WAAW9gE,EAAO7hE,GAAI6hE,GAAQ7hE,EAAI,GAAK6hE,EAAOppE,QAAQ,QAADzL,OAAUgT,GAAKmiD,IAIjG,OADA/lD,EAAAA,EAAOC,IAAI,wBAAyB,CAAE8lD,OAAMiP,cACrC,CAAEjP,OAAMiP,YAAW,EA/YrBgc,EAkbKmhD,YAAepsE,GAClB,IAAI+0E,gJC1bZ,MAAMkM,EAKW,GALXA,EAMqB,GANrBA,EAOmB,EAPnBA,EAQW,KAQjB,MAAMzyB,EA8LT,+BAAc0yB,CAAyBC,EAAyBrjF,GAC5D,IACIsjF,EAAqC,GACrCC,EAAa,CAAC,EAAG,GAAI,KAAM,IAC3BC,EAAoB,EAAE,GAAI,EAAG,GAAI,KACrC,IAAK,IAAIzjI,EAAI,EAAGA,EAAIigD,EAAUxnD,OAAQuH,IAAK,CACvC,MAAM0jI,EAAazhE,EAAAA,EAAWq3D,eAAer5E,EAAUjgD,GAAG+hE,WAAY,GAAGwwD,UACzE,IAAK,IAAIhQ,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAIj+B,EAAU,GAGdA,EAAU,CACN,CACIrjF,EAAGyiI,EAAWnhB,GAAGthH,EAAIoqC,KAAK8gF,KAZ7B,EAYiClqD,EAAAA,EAAWi3D,YAAYuK,EAAkBlhB,KACvEl/C,EAAGqgE,EAAWnhB,GAAGl/C,EAAIh4B,KAAK4gF,KAb7B,EAaiChqD,EAAAA,EAAWi3D,YAAYuK,EAAkBlhB,MAE3E,CACIthH,EAAGyiI,GAAYnhB,EAAI,GAAK,GAAGthH,EAAIoqC,KAAK8gF,KAhBvC,EAgB2ClqD,EAAAA,EAAWi3D,YAAYuK,EAAkBlhB,KACjFl/C,EAAGqgE,GAAYnhB,EAAI,GAAK,GAAGl/C,EAAIh4B,KAAK4gF,KAjBvC,EAiB2ChqD,EAAAA,EAAWi3D,YAAYuK,EAAkBlhB,MAErF,CACIthH,EAAGyiI,GAAYnhB,EAAI,GAAK,GAAGthH,EAAIoqC,KAAK8gF,IApBvC,EAoB2ClqD,EAAAA,EAAWi3D,YAAYuK,EAAkBlhB,KACjFl/C,EAAGqgE,GAAYnhB,EAAI,GAAK,GAAGl/C,EAAIh4B,KAAK4gF,IArBvC,EAqB2ChqD,EAAAA,EAAWi3D,YAAYuK,EAAkBlhB,MAErF,CACIthH,EAAGyiI,EAAWnhB,GAAGthH,EAAIoqC,KAAK8gF,IAxB7B,EAwBiClqD,EAAAA,EAAWi3D,YAAYuK,EAAkBlhB,KACvEl/C,EAAGqgE,EAAWnhB,GAAGl/C,EAAIh4B,KAAK4gF,IAzB7B,EAyBiChqD,EAAAA,EAAWi3D,YAAYuK,EAAkBlhB,OAG3E/vB,EAAAA,EAAK68B,WAAWiU,EAAYh/C,EA5B3B,IA6BDi/C,EAASjjJ,KAAK,CAAEwjE,SAAU7D,EAAUjgD,GAAIgsE,MAAOw3D,EAAWjhB,IAElE,CACJ,CAEA,OAAwB,IAApBghB,EAAS9qI,SAGe,IAApB8qI,EAAS9qI,OACF8qI,EAAS,GAETA,EAGnB,CAEA,mCAAczjB,CAA6Bx6D,GACvC,OAAOA,IAAiBmB,EAAAA,EAAaK,SAAWs8E,EAAiD,CACrG,CAEA,6BAAcO,CACV/3D,EACAm0C,EACAJ,EACA9tD,GAEA,OACI+Z,GACAue,EAAAA,EAAU0lC,WAAW9P,KACpBlQ,EAAAA,EAAO8f,iCAAiChQ,EAAY9tD,EAE7D,CAEA,0BAAcmuD,CAAoBnuD,EAAoBkpC,EAAkBz1C,GACpE,MAAMy6D,EAAc51B,EAAAA,EAAUy5C,aAC1B7oC,EACA87B,IACAhlE,EACAuW,EAAAA,EAAa8+C,oBACI,aAAjB5hE,GAMJ,OAJA8iB,EAAAA,EAAa8+C,oBAAiC,OAAXnH,QAAW,IAAXA,OAAW,EAAXA,EAAaj0C,KAC5Cqe,EAAAA,EAAU0lC,WAAW9P,EAAYj0C,QACjC1D,EAAAA,EAAa++C,wBAA0BpH,EAAYj0C,MAEhDi0C,CACX,CAEA,4BAAcK,CACV5tE,EACAqf,EACAkpC,EACAvqD,EACAsT,EACA+/E,EACA9jB,EACA+jB,GACD,IAADC,EACE,IAAIt0B,EAA0ClrH,KAAKy/I,cAC/CxxF,EACAhC,EACAsT,EACA+/E,EACA9jB,EACA+jB,GAEAz+C,EAASoqB,EAEPtlB,EAAAA,EAAUy5C,aACN7oC,EACA87B,IACApnB,OACArpH,EACA09D,EAASj7D,OAAS49D,EAAAA,EAAaK,UANnCi0C,EAWN,IAAe,OAFK1V,QAEL,IAFKA,GAEC,QAAN0+C,EAFK1+C,EAEHvZ,YAAI,IAAAi4D,OAAN,EAAXA,EAAmB/3D,SAAU+zC,EAAY/zC,MAAO,CAChD,MAAMhiB,EAAWmgC,EAAAA,EAAUy5C,aACvBv+C,EACAwxC,IACAhlE,EACAuW,EAAAA,EAAa8+C,qBACb,GAEJzX,EAAalrH,KAAKy/I,cAAcxxF,EAAOhC,EAAQsT,EAAU+/E,EAA0B,OAAR75E,QAAQ,IAARA,OAAQ,EAARA,EAAU8hB,KAAOg4D,GAC5Fz+C,EAASoqB,EAEHtlB,EAAAA,EAAUy5C,aAAa7oC,EAAM87B,IAAUpnB,OAA2BrpH,GAAW,GAD7E20G,CAEV,CAEA,OAAO1V,CACX,CAEA,oBAAc2+C,CACVxxF,EACAhC,EACAsT,EACA+/E,EACA9jB,EACA+jB,GAEA,MAAMG,EACuC,MAAzC95C,EAAAA,EAAUoqC,cAAcxU,GAAuBj8D,EAAS/0D,OAAU,EAAI+0D,EAASv3D,MAAS,EAE5F,OAAIikD,EAEIsT,EAAS8nB,mBACTk4D,GAAkBG,GAClBH,EAAiBG,EAA0B,GAEpC1/I,KAAK2/I,oCAAoCpgF,EAAUtR,QAE1D,EAGGjuD,KAAK2/I,oCAAoCpgF,EAAUtR,EAElE,CAIA,0CAAc0xF,CAAoCpgF,EAAqBtR,GACnE,MAAM2xF,EAAW,GACjB,IAAK,MAAMhiF,KAAQ3P,EAAO,CACtB,MAAM4xF,EAAqB7/I,KAAK8/I,kBAAkBliF,EAAM2B,GAExD,IAAK,IAAI9jD,EAAI,EAAGA,EAAIokI,EAAmB3rI,OAAQuH,IAAK,CAChD,MAAM8rE,EAAiB,CACnBhK,MAAOsiE,EAAmBpkI,GAC1B+rE,IAAKq4D,GAAoBpkI,EAAI,GAAKokI,EAAmB3rI,QACrD+3C,OAAQ2R,EAAK3R,QAEjBs7B,EAAKE,MAAQ3gC,KAAK0gF,MAAMjgD,EAAKC,IAAI1I,EAAIyI,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI9qE,EAAI6qE,EAAKhK,MAAM7gE,GAC3EkjI,EAAS7jJ,KAAKwrF,EAClB,CACJ,CACA,OAAOq4D,CACX,CAEA,wBAAcE,CAAkBliF,EAAa2B,GACzC,IAAIwgF,EAAgB,GACpB,MAAMC,EAAkBhgJ,KAAKigJ,mBAAmBriF,GAChD,IAAK,IAAIniD,EAAI,EAAGA,EAAImiD,EAAK0P,MAAOp5D,OAAQuH,IAChCukI,EAAgBvkI,IAAM,IAAMukI,EAAgBvkI,GAAK,EACjDskI,EAAchkJ,KAAK2hF,EAAAA,EAAW4gB,YAAY1gC,EAAKilB,OAAQpnE,GAAI8jD,EAASsjB,OAAQ,KACrEm9D,EAAgBvkI,GAAK,GAAKukI,EAAgBvkI,GAAK,GACtDskI,EAAchkJ,KAAK2hF,EAAAA,EAAW4gB,YAAY1gC,EAAKilB,OAAQpnE,GAAI8jD,EAASsjB,OAAQ,KACrEm9D,EAAgBvkI,GAAK,IAAMukI,EAAgBvkI,GAAK,IACvDskI,EAAchkJ,KAAK2hF,EAAAA,EAAW4gB,YAAY1gC,EAAKilB,OAAQpnE,GAAI8jD,EAASsjB,OAAQ,KACrEm9D,EAAgBvkI,IAAM,KAAOukI,EAAgBvkI,IAAM,IAC1DskI,EAAchkJ,KAAK2hF,EAAAA,EAAW4gB,YAAY1gC,EAAKilB,OAAQpnE,GAAI8jD,EAASsjB,OAAQ,KAGpF,OAAOk9D,CACX,CAEA,yBAAcE,CAAmBriF,GAC7B,IAAIoiF,EAAkB,GACtB,MAAME,EAASlgJ,KAAKmgJ,uBAAuBviF,GAC3C,IAAK,IAAIniD,EAAI,EAAGA,EAAImiD,EAAK0P,MAAOp5D,OAAQuH,IAAK,CACzC,MAAM2kI,GACAxiF,EAAK0P,MAAO7xD,GAAGgsE,MAAQ3gC,KAAKkrD,GAAKt0B,EAAAA,EAAWi3D,YAAYuL,EAAOzkI,GAAK,KAAiB,EAAVqrC,KAAKkrD,IAAWlrD,KAAKkrD,GACtGguC,EAAgBjkJ,KAAKkyG,EAAAA,EAAKiiC,cAAckQ,GAC5C,CACA,OAAOJ,CACX,CAGA,6BAAcG,CAAuBviF,GACjC,IAAIyiF,EAAiB,GACrB,IAAK,MAAM94D,KAAQ3pB,EAAK0P,MAAQ,CAC5B,IAAIgzE,EAAgB,EAEpB,EAAG,CACCA,GAAiB,GACjB,IAAIC,EACCz5F,KAAK+hF,IAAIthD,EAAKE,MAAQ3gC,KAAKkrD,GAAKt0B,EAAAA,EAAWi3D,YAAY2L,KAA6B,EAAVx5F,KAAKkrD,IAAWlrD,KAAKkrD,GAChGuuC,KAAcz5F,KAAKkrD,KACnBuuC,EAAWz5F,KAAKkrD,GAExB,QACK/D,EAAAA,EAAKuyC,gBAAgBxgJ,KAAKygJ,iBAAiBl5D,EAAKq+C,OAAQn+C,OAAQ84D,EAAW,GAAKA,EAAW,KAGhGF,EAAetkJ,KAAKukJ,EACxB,CACA,OAAOD,CACX,CAKA,uBAAcI,CAAiBh5D,GAC3B,IAAIi5D,GAAkBj5D,EAAkB,EAAV3gC,KAAKkrD,KAAqB,EAAVlrD,KAAKkrD,IAAWlrD,KAAKkrD,GACnE,OAAO0uC,KAAmB55F,KAAKkrD,GAAKlrD,KAAKkrD,GAAK0uC,CAClD,CAEA,2BAAchb,CAAqBnmE,EAAqB3B,GAAiD,IAAD02E,EAAAj0B,EAAA,IAAnCsgC,IAA0BjlI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,KAAAA,UAAA,GAE3F,GAAI6jD,EAASj7D,OAAS49D,EAAAA,EAAaK,SAC/B,OAAO,EAGX,MAAMq+E,EAA4BjlB,EAAAA,EAA2BkI,kCACtC,QADuEyQ,EAC1F/0E,EAASie,kBAAU,IAAA82D,OAAA,EAAnBA,EAAqBtjG,MAAM,GAAI,GACpB,QADsBqvE,EACjCziD,EAAKilB,cAAM,IAAAw9B,OAAA,EAAXA,EAAarvE,MAAM,GAAI,IAG3B,OAAO2vG,GACAC,GAA6BljE,EAAAA,EAAWs6D,sBAAsBp6E,EAAKilB,OAAQtjB,EAASie,aACpFojE,CACX,CA0DA,6BAAcC,CAAuBthF,EAAqB3B,GAAc,IAADkjF,EACnE,IAAIC,EAAmC,GACpB,QAAnBD,EAAAvhF,EAASie,kBAAU,IAAAsjE,GAAnBA,EAAqB9vG,MAAM,GAAI,GAAGp1B,SAAQ,CAACklF,EAAOllD,KAC9CmlG,EAAiBnlG,IAAU8hC,EAAAA,EAAW26D,oBAAoBv3C,EAAOljC,EAAK,IAG1E,MAAMojF,EAAqBD,EAAiBvmI,QAAQkC,GAAMA,IAAGxI,OAE7D,GAA2B,IAAvB8sI,EAA0B,CAC1B,GAAID,EAAiB,GACjB,OAAO,EACJ,GAAIA,EAAiB,GACxB,OAAO,GACJ,GAAIA,EAAiB,GACxB,OAAO,IACJ,GAAIA,EAAiB,GACxB,OAAQ,EAEhB,CACA,GAAIC,EAAqB,EAAG,CACxB,GAAID,EAAiB,IAAMA,EAAiB,GACxC,OAAO,EACJ,GAAIA,EAAiB,IAAMA,EAAiB,GAC/C,OAAO,GACJ,GAAIA,EAAiB,IAAMA,EAAiB,GAC/C,OAAO,IACJ,GAAIA,EAAiB,IAAMA,EAAiB,GAC/C,OAAQ,EAEhB,CACJ,CAEA,uBAAcE,CAAiB1hF,EAAqBkoB,EAAe+uB,GAC/D,MAAM0qC,EAAU,GAEhB,IAAI1rI,EACU,IAAViyE,GACAjyE,EAASghG,EAAK13B,EACdtpE,EAAS+pD,EAASie,WAAY,GAAGsB,EAAItpE,EAAS0rI,EAAU3hF,EAASie,WAAY,GAAGsB,EAAIoiE,EAAU1rI,EAC9F+pD,EAASie,WAAY,GAAGsB,EAAItpE,EAC5B+pD,EAASie,WAAY,GAAGsB,EAAItpE,EAC5B+pD,EAASie,WAAY,GAAGsB,EAAItpE,GACX,KAAViyE,GACPjyE,EAASghG,EAAK95F,EACdlH,EAASA,EAAS+pD,EAASie,WAAY,GAAG9gE,EAAIwkI,EAAU3hF,EAASie,WAAY,GAAG9gE,EAAIwkI,EAAU1rI,EAC9F+pD,EAASie,WAAY,GAAG9gE,EAAIlH,EAC5B+pD,EAASie,WAAY,GAAG9gE,EAAIlH,GACX,MAAViyE,GACPjyE,EAASghG,EAAK13B,EACdtpE,EAASghG,EAAK13B,EAAIvf,EAASie,WAAY,GAAGsB,EAAIoiE,EAAU3hF,EAASie,WAAY,GAAGsB,EAAIoiE,EAAU1rI,EAC9F+pD,EAASie,WAAY,GAAGsB,EAAItpE,EAC5B+pD,EAASie,WAAY,GAAGsB,EAAItpE,IACV,KAAXiyE,IACPjyE,EAASghG,EAAK95F,EACdlH,EAAS+pD,EAASie,WAAY,GAAG9gE,EAAIlH,EAAS0rI,EAAU3hF,EAASie,WAAY,GAAG9gE,EAAIwkI,EAAU1rI,EAC9F+pD,EAASie,WAAY,GAAG9gE,EAAIlH,EAC5B+pD,EAASie,WAAY,GAAG9gE,EAAIlH,EAC5B+pD,EAASie,WAAY,GAAG9gE,EAAIlH,GAGhC,MAAMxN,EAAQimG,EAAAA,EAAKC,QAAQ3uC,EAASie,WAAY,GAAIje,EAASie,WAAY,IACnEhzE,EAASyjG,EAAAA,EAAKC,QAAQ3uC,EAASie,WAAY,GAAIje,EAASie,WAAY,IAM1E,OALAje,EAASv3D,MAAQA,EACjBu3D,EAAS/0D,OAASA,EAClB+0D,EAASsjB,OAAS7iF,KAAKmhJ,2BAA2Bn5I,EAAOwC,GACzD+0D,EAAS+nB,iBAAmBtnF,KAAKohJ,qCAAqC7hF,EAASie,WAAax1E,EAAOwC,GAE5F,CAAE+0D,WACb,CAEA,iCAAc4hF,CAA2Bn5I,EAAewC,GACpD,MAAO,CACH,CAAEkS,GAAI1U,EAAQ,EAAG82E,GAAIt0E,EAAS,GAC9B,CAAEkS,EAAG1U,EAAQ,EAAG82E,GAAIt0E,EAAS,GAC7B,CAAEkS,EAAG1U,EAAQ,EAAG82E,EAAGt0E,EAAS,GAC5B,CAAEkS,GAAI1U,EAAQ,EAAG82E,EAAGt0E,EAAS,GAC7B,CAAEkS,GAAI1U,EAAQ,EAAG82E,GAAIt0E,EAAS,GAEtC,CAEA,2CAAc42I,GAIX,IAHC5jE,EAA6B9hE,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAChC1T,EAAa0T,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACb2I,EAAckR,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAEd,MAAO,CAAE6a,EAAG8gE,EAAW,GAAG9gE,EAAI1U,EAAQ,EAAG82E,EAAGtB,EAAW,GAAGsB,EAAIt0E,EAAS,EAC3E,CAGA,4BAAc62I,CAAsB9hF,EAAqBkoB,EAAe65D,EAAmBC,GAAiB,IAADC,EACzF,IAAV/5D,GAAyB,MAAVA,EAEfloB,EAASsjB,OAAS,CACd,CAAEnmE,GAAI4kI,EAAY,EAAGxiE,EAAGvf,EAASsjB,OAAQ,GAAG/D,GAC5C,CAAEpiE,EAAG4kI,EAAY,EAAGxiE,EAAGvf,EAASsjB,OAAQ,GAAG/D,GAC3C,CAAEpiE,EAAG4kI,EAAY,EAAGxiE,EAAGvf,EAASsjB,OAAQ,GAAG/D,GAC3C,CAAEpiE,GAAI4kI,EAAY,EAAGxiE,EAAGvf,EAASsjB,OAAQ,GAAG/D,GAC5C,CAAEpiE,GAAI4kI,EAAY,EAAGxiE,EAAGvf,EAASsjB,OAAQ,GAAG/D,IAE/B,KAAV2I,IAA2B,KAAXA,IACvBloB,EAASsjB,OAAS,CACd,CAAEnmE,EAAG6iD,EAASsjB,OAAQ,GAAGnmE,EAAGoiE,GAAIwiE,EAAY,GAC5C,CAAE5kI,EAAG6iD,EAASsjB,OAAQ,GAAGnmE,EAAGoiE,GAAIwiE,EAAY,GAC5C,CAAE5kI,EAAG6iD,EAASsjB,OAAQ,GAAGnmE,EAAGoiE,EAAGwiE,EAAY,GAC3C,CAAE5kI,EAAG6iD,EAASsjB,OAAQ,GAAGnmE,EAAGoiE,EAAGwiE,EAAY,GAC3C,CAAE5kI,EAAG6iD,EAASsjB,OAAQ,GAAGnmE,EAAGoiE,GAAIwiE,EAAY,KAYpD/hF,EAASie,WAA4B,QAAlBgkE,EAAGjiF,EAASsjB,cAAM,IAAA2+D,OAAA,EAAfA,EAAiBr6I,KAAKuV,GAAMghE,EAAAA,EAAW4gB,YAAY5hF,EAAG6iD,EAAS+nB,oBAErF/nB,EAASv3D,MAAQimG,EAAAA,EAAKC,QAAQ3uC,EAASie,WAAY,GAAIje,EAASie,WAAY,IAC5Eje,EAAS/0D,OAASyjG,EAAAA,EAAKC,QAAQ3uC,EAASie,WAAY,GAAIje,EAASie,WAAY,IAC7Eje,EAASsjB,OAAS7iF,KAAKmhJ,2BAA2B5hF,EAASv3D,MAAOu3D,EAAS/0D,QAC3E+0D,EAAS+nB,iBAAmBtnF,KAAKohJ,qCAC7B7hF,EAASie,WACTje,EAASv3D,MACTu3D,EAAS/0D,OAejB,CACA,uBAAci3I,CAAiBliF,EAAqBw/E,EAAwB9wF,GAAsB,IAAD+sE,EAAA0mB,EAC7F,MAAMzmB,EAAgBC,EAAAA,EAASC,mBACzBC,EAAa77D,EAASsjB,OAAQ17E,KAAKgkD,GAAMuyB,EAAAA,EAAW4gB,YAAYnzC,EAAG4zF,KAClD,QAAvB/jB,EAAAC,EAAcI,iBAAS,IAAAL,GAAvBA,EAAAj7H,KAAAk7H,EAA0BG,GAE1B,IAAIM,EAAiBC,EAAAA,EAA2BC,0BAA0BR,EAAYntE,GAClF6yC,EAAQ46B,EACNqjB,EACAn5C,EAAAA,EAAUy5C,aAAaN,EAAYzM,IAAUtyI,KAAK2/I,oCAAoCpgF,EAAUtR,IACjGytE,IACDA,EAAkB56B,EAAuB70C,QAE7CsT,EAAStT,OAASyvE,EAClBn8D,EAASie,WAA4B,QAAlBkkE,EAAGniF,EAASsjB,cAAM,IAAA6+D,OAAA,EAAfA,EAAiBv6I,KAAKuV,GAAMghE,EAAAA,EAAW4gB,YAAY5hF,EAAGokF,KAC5EvhC,EAAS+nB,iBAAmBwZ,CAChC,CAmDA,4BAAc6gD,CAAsBr9I,GAChC,IAAIs9I,EAAY/C,EAChB,MAAMgD,EAAYhD,EAElB,IAAIiD,EAAYjD,EAChB,MAAMkD,EAAYlD,EAOlB,OALIv6I,IAAS49D,EAAAA,EAAagB,UACtB0+E,EAAY/C,EACZiD,EAAYjD,GAGT,CACHzsD,WAAY,CAAEpmB,IAAK41E,EAAWz1E,IAAK01E,GACnC1vD,SAAU,CAAEnmB,IAAK81E,EAAW31E,IAAK41E,GAEzC,CAGA,8BAAcC,CAAwBziF,GAClC,MAAM+N,EAAQ,GACd,IAAK,IAAI7xD,EAAI,EAAGA,EAAI8jD,EAASie,WAAYtpE,OAAS,EAAGuH,IAAK,CACtD,MAAMwmI,EAAY1iF,EAASie,WAAY/hE,GACjCymI,EAAU3iF,EAASie,WAAY/hE,EAAI,GACzC6xD,EAAMvxE,KAAK,CACPwhF,MAAO0kE,EACPz6D,IAAK06D,EACLz6D,MAAO3gC,KAAK0gF,MAAM0a,EAAQpjE,EAAImjE,EAAUnjE,EAAGojE,EAAQxlI,EAAIulI,EAAUvlI,IAEzE,CACA,OAAO4wD,CACX,CAGA,6BAAc60E,CAAuB5iF,EAAqBkoB,GACtD,OAAc,IAAVA,EACO,CAAElK,MAAOhe,EAASie,WAAY,GAAIgK,IAAKjoB,EAASie,WAAY,GAAIiK,MAAO/J,EAAAA,EAAWi3D,YAAY,IACpF,KAAVltD,EACA,CAAElK,MAAOhe,EAASie,WAAY,GAAIgK,IAAKjoB,EAASie,WAAY,GAAIiK,MAAO/J,EAAAA,EAAWi3D,YAAY,KACpF,MAAVltD,EACA,CAAElK,MAAOhe,EAASie,WAAY,GAAIgK,IAAKjoB,EAASie,WAAY,GAAIiK,MAAO/J,EAAAA,EAAWi3D,YAAY,OACnF,KAAXltD,EACA,CAAElK,MAAOhe,EAASie,WAAY,GAAIgK,IAAKjoB,EAASie,WAAY,GAAIiK,MAAO/J,EAAAA,EAAWi3D,aAAa,UADnG,CAGX,EACHyN,EAvuBYh2B,EAAAA,EAkLKyN,WAAct6D,IACxB,GAAIA,EAAS+nB,iBACT,MAAO,CAAE5qE,EAAG6iD,EAAS+nB,iBAAiB5qE,EAAGoiE,EAAGvf,EAAS+nB,iBAAiBxI,EAG1D,EAvLXstC,EA0LKC,gBAAkB,CAACzuD,EAAalC,KAC1CkC,EAAKlC,UAAYA,EAAUlhD,QAAQkC,GAAMA,EAAEuvC,SAAW2R,EAAK3R,QAAO,EA3L7DmgE,EA6bKi2B,uBAAyB,SACnCp0F,EACAyN,EACA6D,EACAi3C,EACA8rC,GAEW,IADXC,EAAkB7mI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAErB,MAAMkiD,EAAO3P,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAWsT,EAAStT,SACrD,IAAK2R,GAAQwkF,EAAK1c,qBAAqBnmE,EAAU3B,GAC7C,OAAO,EAGX,GAAI2kF,EAAa,EAEb,OADAtjJ,QAAQ3C,MAAM,wDAAyD,CAAEijE,cAClE,EAGX,IAAIkoB,EAAQ26D,EAAKvB,uBAAuBthF,EAAU3B,GAClD,GAAI0kF,GAAiBA,IAAkB76D,EACnC,OAAQ66D,GACJ,QACA,KAAK,EACL,KAAK,GACD76D,GAAU,GACV,MACJ,KAAK,IACDA,GAAS,IACT,MACJ,KAAM,IACFA,EAAQ,EAKpB,OADA26D,EAAKnB,iBAAiB1hF,EAAUkoB,EAAO+uB,GAChC4rC,EAAKC,uBAAuBp0F,EAAOyN,EAAW6D,EAAUi3C,EAAM/uB,IAAS86D,EAClF,wECzeG,MAAMrnB,GAAAA,EACKC,iBAAmB,IAAM,IAAIsI,IAAAA,6JCdxC,MAAM+e,EAGT,qBAAcC,CAAel7D,EAAgB9rB,GAEzC,MAAMinF,EAAOp3B,EAAAA,EAAO+e,gBAAgB9iD,EAAM9rB,GACpC+tE,EAAKle,EAAAA,EAAO4b,uBAAuB3/C,GACzC,IAAK,IAAIztE,KAAO4oI,EAAM,CAClB,IAAIC,GAAQ,EACZ,MAAMpR,EAAS7zD,EAAAA,EAAW8zD,SAAShI,EAAI1vH,EAAI4qC,KAAO5qC,GAClD,IAAKm0F,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG6qE,EAAKhK,MAAM7gE,EAAG6qE,EAAKC,IAAI9qE,GAAI,CACnD,IAAIkmI,EAAQr7D,EAAKhK,MAAM7gE,EAAI60H,EAAO,GAAG70H,EACjCmmI,EAAQt7D,EAAKC,IAAI9qE,EAAI60H,EAAO,GAAG70H,EAEnC,IAAIkgI,EAEAA,EADA91F,KAAK+hF,IAAI+Z,GAAS97F,KAAK+hF,IAAIga,GACVnlE,EAAAA,EAAW4gB,YAAYxkF,EAAmB,CAAE4C,EAAGkmI,EAAO9jE,EAAG,IAEzDpB,EAAAA,EAAW4gB,YAAYxkF,EAAmB,CAAE4C,EAAGmmI,EAAO/jE,EAAG,IAE9EhlE,EAAI4C,EAAIkgI,EAAelgI,EACvB5C,EAAIglE,EAAI89D,EAAe99D,EACvBhlE,EAAIs9E,MAAQ1Z,EAAAA,EAAW8zD,SAAShI,EAAI1vH,EAAI4qC,KAAO5qC,GAG/C6oI,GAAQ,CACZ,CAEA,IAAK10C,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAGyI,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI1I,GAAI,CACnD,MAAM8jE,EAAQr7D,EAAKhK,MAAMuB,EAAIyyD,EAAO,GAAGzyD,EACjC+jE,EAAQt7D,EAAKC,IAAI1I,EAAIyyD,EAAO,GAAGzyD,EAErC,IAAI89D,EAEAA,EADA91F,KAAK+hF,IAAI+Z,GAAS97F,KAAK+hF,IAAIga,GACVnlE,EAAAA,EAAW4gB,YAAYxkF,EAAmB,CAAE4C,EAAG,EAAGoiE,EAAG8jE,IAErDllE,EAAAA,EAAW4gB,YAAYxkF,EAAmB,CAAE4C,EAAG,EAAGoiE,EAAG+jE,IAE1E/oI,EAAI4C,EAAIkgI,EAAelgI,EACvB5C,EAAIglE,EAAI89D,EAAe99D,EACvBhlE,EAAIs9E,MAAQ1Z,EAAAA,EAAW8zD,SAAShI,EAAI1vH,EAAI4qC,KAAO5qC,GAC/C6oI,GAAQ,CAGZ,CAEA,IAAK10C,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG6qE,EAAKhK,MAAM7gE,EAAG6qE,EAAKC,IAAI9qE,GAAI,CACnD,MAAMkmI,EAAQr7D,EAAKhK,MAAM7gE,EAAI60H,EAAO,GAAG70H,EACjCmmI,EAAQt7D,EAAKC,IAAI9qE,EAAI60H,EAAO,GAAG70H,EAErC,IAAIkgI,EAEAA,EADA91F,KAAK+hF,IAAI+Z,GAAS97F,KAAK+hF,IAAIga,GACVnlE,EAAAA,EAAW4gB,YAAYxkF,EAAmB,CAAE4C,EAAGkmI,EAAO9jE,EAAG,IAEzDpB,EAAAA,EAAW4gB,YAAYxkF,EAAmB,CAAE4C,EAAGmmI,EAAO/jE,EAAG,IAE9EhlE,EAAI4C,EAAIkgI,EAAelgI,EACvB5C,EAAIglE,EAAI89D,EAAe99D,EACvBhlE,EAAIs9E,MAAQ1Z,EAAAA,EAAW8zD,SAAShI,EAAI1vH,EAAI4qC,KAAO5qC,GAC/C6oI,GAAQ,CAEZ,CAEA,IAAK10C,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAGyI,EAAKhK,MAAMuB,EAAGyI,EAAKC,IAAI1I,GAAI,CACnD,MAAM8jE,EAAQr7D,EAAKhK,MAAMuB,EAAIyyD,EAAO,GAAGzyD,EACjC+jE,EAAQt7D,EAAKC,IAAI1I,EAAIyyD,EAAO,GAAGzyD,EAErC,IAAI89D,EAEAA,EADA91F,KAAK+hF,IAAI+Z,GAAS97F,KAAK+hF,IAAIga,GACVnlE,EAAAA,EAAW4gB,YAAYxkF,EAAmB,CAAE4C,EAAG,EAAGoiE,EAAG8jE,IAErDllE,EAAAA,EAAW4gB,YAAYxkF,EAAmB,CAAE4C,EAAG,EAAGoiE,EAAG+jE,IAE1E/oI,EAAI4C,EAAIkgI,EAAelgI,EACvB5C,EAAIglE,EAAI89D,EAAe99D,EACvBhlE,EAAIs9E,MAAQ1Z,EAAAA,EAAW8zD,SAAShI,EAAI1vH,EAAI4qC,KAAO5qC,GAC/C6oI,GAAQ,CAEZ,CAEA,GAAIA,EAAO,CAEP,MAAMG,EAAwB,CAC1BplE,EAAAA,EAAW24D,qBAAqB9uD,EAAKhK,MAAOzjE,EAAIs9E,OAChD1Z,EAAAA,EAAW24D,qBAAqB9uD,EAAKC,IAAK1tE,EAAIs9E,QAE9C0rD,EAAsB,GAAGtM,qBAAuBsM,EAAsB,GAAGtM,qBAEzEx2I,KAAKyiJ,eAAe,IAAKl7D,EAAMhK,MAAOzjE,EAAIs9E,OAAQ0rD,EAAsB,GAAGrM,kBAAoB,GAAK,IAAMh7E,GAE1Gz7D,KAAKyiJ,eAAe,IAAKl7D,EAAMC,IAAK1tE,EAAIs9E,OAAQ0rD,EAAsB,GAAGrM,kBAAoB,GAAK,IAAMh7E,EAEhH,CAGAA,EAAS7/C,SAAQsjD,IACTA,EAAQhC,YAAcpjD,EAAIojD,YAC1BgC,EAAQxiD,EAAI5C,EAAI4C,EAChBwiD,EAAQ4f,EAAIhlE,EAAIglE,EAChB5f,EAAQk4B,MAAQt9E,EAAIs9E,MACxB,GAER,CACJ,mBCzEG,MAAMib,EAKT,yBAAc0wC,CACVC,GAKD,IAJCC,EAA+BvnI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAClCwnI,EAAyBxnI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC5BynI,EAAiCznI,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACjCuhJ,EAAwB1nI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAE3B,MACIsnI,iBAAkB9d,EAClB+d,eAAgBxnF,EAChBynF,YAAaj1F,EACbk1F,gBAAiBznF,EACjB0nF,YAAa91E,GACbx4B,EAAAA,EAAYC,MAAM,CAAEiuG,mBAAkBC,iBAAgBC,cAAaC,kBAAiBC,gBACxFle,EAAWW,MAAQ/wF,EAAAA,EAAYC,MAAMiuG,EAAiBnd,OACtDX,EAAWU,OAAS9wF,EAAAA,EAAYC,MAAMiuG,EAAiBpd,QAEvD,MAAMhiD,EAAQC,EAAAA,EAAaD,MACrB2D,EAAOvnF,KAAKsyG,oBAAoB4yB,GAAY,GAC5Cme,EAAqE,IAAjDp1C,EAAAA,EAAKC,QAAQg3B,EAAW3nD,MAAO2nD,EAAW19C,KAAc5D,EAG5E0/D,EADOr1F,EAAMvE,MAAMhtC,GAAMA,EAAEuvC,SAAWi5E,EAAWj5E,SAC3B3nD,OAASu6D,EAAAA,GAASC,IAAM,GAAK,EAEnDykF,EAAa7lE,EAAAA,EAAWC,qBAAqB,CAAErQ,QAAO5R,cAC5D,OAAQ6rB,EAAKE,OACT,KAAK,EACD,GAAI87D,EAAWxlE,OAASwJ,EAAKhK,MAAMuB,EAC/B,OAAO9+E,KAAK40G,yBAEhB,MACJ,KAAK9tD,KAAKkrD,GAAK,EACX,GAAIuxC,EAAWvlE,OAASuJ,EAAKhK,MAAM7gE,EAC/B,OAAO1c,KAAK40G,yBAEhB,MACJ,KAAK9tD,KAAKkrD,GACN,GAAIuxC,EAAWtlE,OAASsJ,EAAKhK,MAAMuB,EAC/B,OAAO9+E,KAAK40G,yBAEhB,MACJ,KAAM9tD,KAAKkrD,GAAK,EACZ,GAAIuxC,EAAWzlE,OAASyJ,EAAKhK,MAAM7gE,EAC/B,OAAO1c,KAAK40G,yBAKxB,IAAI4uC,EAASC,EACbD,EAAUH,EAEV,IAAK,IAAIrlB,EAAI,EAAGA,EAAIh+H,KAAK40G,yBAA0BopB,GAAKslB,EAAgB,CACpEtjJ,KAAKwyG,gBAAgB0yB,EAAY39C,EAAMi8D,EAAUF,EAAgB7nF,EAAUxN,EAAOqf,GAAO,GACzF,MAAM8jC,EAAWxL,EAAAA,EAAUwL,SAAS8zB,GACpC,GAAIse,IAAYpyC,EACZ,MAEJoyC,EAAUpyC,CACd,CAKA,OAJAqyC,EAAUD,EAEVxjJ,KAAKwyG,gBAAgB0yB,EAAY39C,EAAM87D,EAAkB5nF,EAAUxN,EAAOqf,GAEnEm2E,CACX,CA4FA,0BAAcnxC,CAAoB4yB,EAAkBwe,EAAsBvsI,GACtE,OAAQ+tH,EAAWlT,WACf,KAAKnrC,EAAAA,GAAUmB,UACX,OAAOk9C,EAAWW,MACtB,KAAKh/C,EAAAA,GAAUgB,gBACf,KAAKhB,EAAAA,GAAUc,iBACf,KAAKd,EAAAA,GAAUwrC,mBACf,KAAKxrC,EAAAA,GAAU0rC,oBACX,OAAQ2S,EAAWnzB,UACf,IAAK,QACD,OAAO/xG,KAAK2jJ,sBAAsB,CAACze,GAAawe,EAAYvsI,GAChE,IAAK,aACL,IAAK,gBACD,OAAOnX,KAAK2jJ,sBAAsB,CAACze,EAAWU,OAASV,EAAWW,OAAS6d,EAAYvsI,GAC3F,IAAK,cACL,IAAK,iBACD,OAAOnX,KAAK2jJ,sBAAsB,CAACze,EAAWW,MAAQX,EAAWU,QAAU8d,EAAYvsI,GAE/F,MAEJ,KAAK0vE,EAAAA,GAAU4rC,mBACf,KAAK5rC,EAAAA,GAAU8rC,oBACf,KAAK9rC,EAAAA,GAAUgsC,sBACf,KAAKhsC,EAAAA,GAAUe,uBACX,OAAQs9C,EAAWnzB,UACf,IAAK,oBACL,IAAK,gBACL,IAAK,sBACD,OAAO/xG,KAAK2jJ,sBAAsB,CAACze,EAAWU,OAASV,EAAWW,OAAS6d,EAAYvsI,GAC3F,IAAK,qBACL,IAAK,qBACL,IAAK,eACD,OAAOnX,KAAK2jJ,sBAAsB,CAACze,EAAWW,MAAQX,EAAWU,QAAU8d,EAAYvsI,GAE/F,MAEJ,KAAK0vE,EAAAA,GAAUmsC,MACf,KAAKnsC,EAAAA,GAAUqsC,QACf,KAAKrsC,EAAAA,GAAUssC,SACf,KAAKtsC,EAAAA,GAAUusC,OACX,OAAQ8R,EAAWnzB,UACf,IAAK,WACL,IAAK,gBACL,IAAK,sBACL,IAAK,sBAEL,IAAK,qBACL,IAAK,YACL,IAAK,gBACL,IAAK,qBACD,OAAO/xG,KAAK2jJ,sBAAsB,CAACze,EAAWU,OAASV,EAAWW,OAAS6d,EAAYvsI,GAE/F,MAEJ,KAAK0vE,EAAAA,GAAUC,OACf,QACI,OAAOo+C,EAAWW,MAE9B,CAEA,4BAAc8d,CAAsBC,EAA6BF,EAAsBvsI,GAE/EA,GACAnX,KAAK6jJ,wBAAwBD,GAEjC,IAAK,MAAMr8D,KAAQq8D,EACf,IAAKr8D,EAAK0+C,mBAIN,OAHKyd,IACDn8D,EAAK0+C,oBAAqB,GAEvB1+C,EAGf,OAAOq8D,EAAeA,EAAe1vI,OAAS,EAClD,CAEA,8BAAc2vI,CAAwBD,GAClC,IAAK,MAAMr8D,KAAQq8D,EACfr8D,EAAK0+C,oBAAqB,CAElC,CAEA,4BAAc6d,CAAsBv8D,EAAYw8D,EAAkBC,EAAkB12E,GAEhF,GAAsB,UAAlBia,EAAKwqB,SAAsB,CAC3B,MAAMkyC,EAAW34B,EAAAA,EAAO4b,uBAAuB3/C,EAAKq+C,QAC9Cse,EAAU54B,EAAAA,EAAO4b,uBAAuB3/C,EAAKs+C,OAC7Cse,EAAiBl2C,EAAAA,EAAK66B,wBAAwBmb,EAAUC,EAAS,UAEjEE,EAAkCt9F,KAAKsqE,KAAM4yB,EAAWA,EAAY,GAE1E,MAAO,CACHzmE,MAAO,CACH7gE,EACIynI,EAAeznI,EACfmgC,IAAAA,MAAQiK,KAAK8gF,IAAIrgD,EAAKs+C,MAAOA,MAAOp+C,OAAS28D,EAAiC,GAClFtlE,EACIqlE,EAAerlE,EACfjiC,IAAAA,MAAQiK,KAAK4gF,IAAIngD,EAAKs+C,MAAOA,MAAOp+C,OAAS28D,EAAiC,IAEtF58D,IAAK,CACD9qE,EAAGynI,EAAeznI,EAAImgC,IAAAA,MAAQiK,KAAK8gF,IAAIrgD,EAAKs+C,MAAOp+C,OAAS28D,EAAiC,GAC7FtlE,EAAGqlE,EAAerlE,EAAIjiC,IAAAA,MAAQiK,KAAK4gF,IAAIngD,EAAKs+C,MAAOp+C,OAAS28D,EAAiC,IAGzG,CAAO,GAAsB,kBAAlB78D,EAAKwqB,SAA8B,CAC1C,MAAM8P,EAAUh+B,EAAAA,EAAao+C,cACvBuc,EAAmBlxE,EAAM5jB,MAC1BhtC,GAAMA,EAAEuvC,SAAWs7B,EAAKt7B,QAAyB,uBAAfvvC,EAAEq1F,WAEnCsyC,EAAgBz+C,EAAAA,EAAUwL,SAASotC,GAAoB38B,EACvDyiC,EAAa1+C,EAAAA,EAAUwL,SAAS7pB,EAAKq+C,QACrB0e,EAAaN,EAEfK,IAChBL,EAAWK,EAAgBC,EAEnC,CAEA,IAAIC,EACmB,uBAAlBh9D,EAAKwqB,UAA6D,wBAAxBgyC,EAAWhyC,UACnC,wBAAlBxqB,EAAKwqB,UAA8D,uBAAxBgyC,EAAWhyC,SACjD/xG,KAAKwkJ,eAAej9D,EAAKE,OACzBznF,KAAKykJ,sBAAsBl9D,EAAKE,OAC1C,MAAO,CACHlK,MAAO,CACH7gE,EAAG6qE,EAAKhK,MAAM7gE,EAAImgC,IAAAA,MAAQiK,KAAK8gF,IAAI2c,GAAkBP,EAAU,GAC/DllE,EAAGyI,EAAKhK,MAAMuB,EAAIjiC,IAAAA,MAAQiK,KAAK4gF,IAAI6c,GAAkBP,EAAU,IAEnEx8D,IAAK,CACD9qE,EAAG6qE,EAAKC,IAAI9qE,EAAImgC,IAAAA,MAAQiK,KAAK8gF,IAAI2c,GAAkBP,EAAU,GAC7DllE,EAAGyI,EAAKC,IAAI1I,EAAIjiC,IAAAA,MAAQiK,KAAK4gF,IAAI6c,GAAkBP,EAAU,IAGzE,CAEA,4BAAcS,CAAsBh9D,GAChC,OAAQA,GACJ,KAAK,EACD,OAAQ3gC,KAAKkrD,GAAK,EACtB,KAAKlrD,KAAKkrD,GAAK,EACX,OAAO,EACX,KAAKlrD,KAAKkrD,GACN,OAAOlrD,KAAKkrD,GAAK,EACrB,KAAMlrD,KAAKkrD,GAAK,EACZ,OAAOlrD,KAAKkrD,GAChB,QACI,OAAO,EAEnB,CAiBA,kBAAc0yC,CAAYn9D,GACtB,MAAMo9D,EAAc,CAChBp9D,EAAKq+C,OAAQn+C,OAAS,IAAM3gC,KAAKkrD,IACjCzqB,EAAKE,OAAS,IAAM3gC,KAAKkrD,IACzBzqB,EAAKs+C,MAAOp+C,OAAS,IAAM3gC,KAAKkrD,KAG9BzB,EAAW,CAAChpB,EAAKq+C,QACnB+e,EAAYj7F,MAAMhtC,GAAY,IAANA,GAAiB,KAANA,GAAkB,MAANA,IAAoB,KAAPA,KAC5D6zF,EAASx0G,KAAKwrF,GAElBgpB,EAASx0G,KAAKwrF,EAAKs+C,MAIvB,CAEA,yBAAc+e,CAAmBn9D,GAC7B,OAAiB,IAAVA,IAA0B,KAAXA,GAA2B,KAAVA,GAA0B,MAAVA,CAC3D,CAEA,yBAAco9D,CAAmBC,EAAgBC,EAAgBC,GAC7D,OAAOF,EAASC,EAASC,GAAaF,EAASC,EAASC,CAC5D,CAEA,sBAAcC,CACV/f,EACAggB,EACAzpF,EACAxN,EACAqf,GAEA,MAAMia,EAAOvnF,KAAKsyG,oBAAoB4yB,GACtC,OAAOllI,KAAKwyG,gBAAgB0yB,EAAY39C,EAAM29D,EAASzpF,EAAUxN,EAAOqf,EAC5E,CAIA,qBAAc63E,CAAehqJ,GACzB,MAAM,OAAEiqJ,EAAQC,UAAWC,EAAiB,UAAEC,EAAWC,UAAWC,GAAsBtqJ,EACpFkqJ,EAAY/5B,EAAAA,EAAO4b,uBAAuBke,EAAOxf,OAAS0f,GAC1DI,EAAqBp6B,EAAAA,EAAO4b,uBAAuBke,GACnDI,EAAYl6B,EAAAA,EAAO4b,uBAAuBke,EAAOvf,MAAQ4f,GAEzDE,EAA8B,GAArB9hE,EAAAA,EAAaD,MACtBua,EAAaonD,EAAU7N,EAAIgO,EAAmBhO,EAE9CkO,EAA0BznD,EADVA,EAAawnD,EAE7BE,EAAqB/+F,KAAK+hF,IAAgC,IAA5B+c,EAAgCA,EAA0BD,EAAS,GACjG3rI,EAAW4rI,EAA0BC,EAE3C,IAAItzC,EAA6B,CAAEjlC,MAAOnyE,EAAOmyE,MAAOrf,MAAO9yD,EAAO8yD,MAAOwN,SAAUtgE,EAAOsgE,UAC9F8pF,EAAU7N,GAAKkO,EACfrzC,EAAavyG,KAAK8lJ,SAAS,IAAK3qJ,EAAQkqJ,YAAWG,cACnD,IAAK,IAAI/pI,EAAI,EAAGA,EAAIoqI,IAChBN,EAAU7N,GAAK19H,EACfu4F,EAAavyG,KAAK8lJ,SAAS,IAAK3qJ,EAAQkqJ,YAAWG,cAC9CjzC,EAAWE,iBAHoBh3F,KAQxC,OAAO82F,CACX,CAEA,eAAcuzC,CAAS3qJ,GACnB,IAAI,OACAiqJ,EAAM,MACN93E,EAAK,MACLrf,EAAK,SACLwN,EAAQ,kBACRsqF,EAAoB,GAAE,UACtBV,EAAS,UACTE,EAAS,UACTC,EAAS,aACTQ,EAAY,WACZtC,GAAa,GACbvoJ,EACA8qJ,EAAgBh4C,EAAAA,EAAK66B,wBAAwBuc,EAAWE,EAAW,OACnEW,EAAgBj4C,EAAAA,EAAK66B,wBAAwByc,EAAWC,EAAW,QAEnEJ,EAAOxf,UACHiB,EAAAA,EAAAA,GAAgBue,EAAOxf,OAAOp+C,IAAK49D,EAAO7nE,OAC1C6nE,EAAOxf,OAAOp+C,IAAMy+D,GACbpf,EAAAA,EAAAA,GAAgBue,EAAOxf,OAAOroD,MAAO6nE,EAAO7nE,OACnD6nE,EAAOxf,OAAOroD,MAAQ0oE,EAEtBb,EAAOxf,OAAOp+C,IAAMy+D,GAIxBb,EAAOvf,SACHgB,EAAAA,EAAAA,GAAgBue,EAAOvf,MAAMtoD,MAAO6nE,EAAO59D,KAC3C49D,EAAOvf,MAAMtoD,MAAQ2oE,GACdrf,EAAAA,EAAAA,GAAgBue,EAAOvf,MAAMr+C,IAAK49D,EAAO59D,KAChD49D,EAAOvf,MAAMr+C,IAAM0+D,EAEnBd,EAAOvf,MAAMtoD,MAAQ2oE,GAI7Bd,EAAO7nE,MAAQ0oE,EACfb,EAAO59D,IAAM0+D,EAGTb,EAAUc,UACLl4C,EAAAA,EAAK68B,WAAWmb,EAAeZ,EAAUrf,OAAQnjD,SAWlDwiE,EAAUc,OAAO3+D,IAAM69D,EAAUrf,OAAQx+C,IACzC69D,EAAUc,OAAO5oE,MAAQ8nE,EAAUrf,OAAQzoD,OAVnB0wB,EAAAA,EAAKljG,IAAIs6I,EAAUrf,OAAQzoD,MAAO0oE,GACpCh4C,EAAAA,EAAKljG,IAAIs6I,EAAUrf,OAAQx+C,IAAKy+D,GAGlDZ,EAAUc,OAAO3+D,IAAMy+D,EAEvBZ,EAAUc,OAAO5oE,MAAQ0oE,GAOrC,GAAIT,EAAUW,OACV,GAAKl4C,EAAAA,EAAK68B,WAAWob,EAAeV,EAAUxf,OAAQnjD,QAWlD2iE,EAAUW,OAAO3+D,IAAMg+D,EAAUxf,OAAQx+C,IACzCg+D,EAAUW,OAAO5oE,MAAQioE,EAAUxf,OAAQzoD,UAZgB,CAEjC0wB,EAAAA,EAAKljG,IAAIy6I,EAAUxf,OAAQzoD,MAAO2oE,GACpCj4C,EAAAA,EAAKljG,IAAIy6I,EAAUxf,OAAQx+C,IAAK0+D,GAGpDV,EAAUW,OAAO3+D,IAAM0+D,EAEvBV,EAAUW,OAAO5oE,MAAQ2oE,CAEjC,CAsCJ,GAhCAH,EAAkBnqI,SAAQ,CAACwqI,EAAkB3qI,KACzC,MAAM4qI,EAAuBp4C,EAAAA,EAAK66B,wBAC9Bsd,EAAiB5c,GACjB+b,EACA,OAEJ,GACIt3C,EAAAA,EAAKy7B,KAAK2c,EAAqB3pI,EAAG0oI,EAAO7nE,MAAM7gE,EAAG0oI,EAAO59D,IAAI9qE,EAAG,UAChEuxF,EAAAA,EAAKy7B,KAAK2c,EAAqBvnE,EAAGsmE,EAAO7nE,MAAMuB,EAAGsmE,EAAO59D,IAAI1I,EAAG,SAClE,CACE,MAAMp6B,EAAOupD,EAAAA,EAAKC,QAAQk4C,EAAiB7+D,KAAKhK,MAAO6oE,EAAiB7+D,KAAKC,KAC/C,UAA1B4+D,EAAiB9hJ,OACjB8hJ,EAAiB7+D,KAAKhK,MAAQ8oE,EAC1B3hG,EAAO,IACF0hG,EAAiB7+D,KAAKs+C,QACvBv4D,EAAMzrD,OAAOyrD,EAAMvvD,QAAQqoI,EAAiB7+D,MAAO,GACnDw+D,EAAkBlkI,OAAOpG,EAAG,MAIV,QAA1B2qI,EAAiB9hJ,OACjB8hJ,EAAiB7+D,KAAKC,IAAM6+D,EACxB3hG,EAAO,IACF0hG,EAAiB7+D,KAAKq+C,SACvBt4D,EAAMzrD,OAAOyrD,EAAMvvD,QAAQqoI,EAAiB7+D,MAAO,GACnDw+D,EAAkBlkI,OAAOpG,EAAG,KAI5C,MAGCioI,EAAY,CACbp4B,EAAAA,EAAO4a,eAAe54D,EAAO,QAC7B,MAAM64D,EAAel4B,EAAAA,EAAKm4B,WAAW94D,GACrCg+C,EAAAA,EAAO+a,sBAAsBF,EAAcl4E,EAAOqf,GAGlD04E,EAAapqI,SAAS0qI,IAClB,MAAMC,EAAYD,EAAYxsI,IAC9ByrI,EAAYj6B,EAAAA,EAAO4b,uBAAuBke,GAC1CkB,EAAY9c,GAAKv7B,EAAAA,EAAKo6B,sBAAsBkd,EAAWgB,EAAU7pI,EAAI6pI,EAAUznE,GAC/E,MAAM0nE,EAAkBv4C,EAAAA,EAAK66B,wBAAwBwd,EAAY9c,GAAI+b,GAErEgB,EAAU7pI,EAAI8pI,EAAgB,GAC9BD,EAAUznE,EAAI0nE,EAAgB,GAC9B,MAAMjV,EAAS7zD,EAAAA,EAAW8zD,SAAS+T,EAAWgB,EAAU7hG,KAAO6hG,GAO/D,IAAKt4C,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG0oI,EAAO7nE,MAAM7gE,EAAG0oI,EAAO59D,IAAI9qE,GAAG,EAAOmnE,EAAAA,EAAa6+C,uBAC1E,GACIz0B,EAAAA,EAAKy7B,KAAK0b,EAAO7nE,MAAM7gE,EAAG60H,EAAO,GAAG70H,EAAG60H,EAAO,GAAG70H,GAAG,EAAOmnE,EAAAA,EAAa6+C,uBAC1E,CAEE,MAAMx0B,EAAUD,EAAAA,EAAKC,QACjB,CAAExxF,EAAG6pI,EAAU7pI,EAAK6pI,EAAU7hG,KAAQ,EAAGo6B,EAAGynE,EAAUznE,GACtDsmE,EAAO7nE,OAEXgpE,EAAU7pI,GAAMwxF,CACpB,MAAO,GACHD,EAAAA,EAAKy7B,KAAK0b,EAAO59D,IAAI9qE,EAAG60H,EAAO,GAAG70H,EAAG60H,EAAO,GAAG70H,GAAG,EAAOmnE,EAAAA,EAAa6+C,uBACxE,CAEE,MAAMx0B,EAAUD,EAAAA,EAAKC,QAAQqjC,EAAO,GAAI6T,EAAO59D,KAC/C++D,EAAU7pI,GAAMwxF,CACpB,CAEJ,IAAKD,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG0oI,EAAO7nE,MAAM7gE,EAAG0oI,EAAO59D,IAAI9qE,GAAG,EAAOmnE,EAAAA,EAAa6+C,uBAC1E,GACIz0B,EAAAA,EAAKy7B,KAAK0b,EAAO7nE,MAAM7gE,EAAG60H,EAAO,GAAG70H,EAAG60H,EAAO,GAAG70H,GAAG,EAAOmnE,EAAAA,EAAa6+C,uBAC1E,CAEE,MAAMx0B,EAAUD,EAAAA,EAAKC,QAAQqjC,EAAO,GAAI6T,EAAO7nE,OAC/CgpE,EAAU7pI,GAAMwxF,CACpB,MAAO,GACHD,EAAAA,EAAKy7B,KAAK0b,EAAO59D,IAAI9qE,EAAG60H,EAAO,GAAG70H,EAAG60H,EAAO,GAAG70H,GAAG,EAAOmnE,EAAAA,EAAa6+C,uBACxE,CAEE,MAAMx0B,EAAUD,EAAAA,EAAKC,QAAQqjC,EAAO,GAAI6T,EAAO59D,KAC/C++D,EAAU7pI,GAAMwxF,CACpB,CAGJ,IAAKD,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAGsmE,EAAO7nE,MAAMuB,EAAGsmE,EAAO59D,IAAI1I,GAAG,EAAO+E,EAAAA,EAAa6+C,uBAC1E,GACIz0B,EAAAA,EAAKy7B,KAAK0b,EAAO7nE,MAAMuB,EAAGyyD,EAAO,GAAGzyD,EAAGyyD,EAAO,GAAGzyD,GAAG,EAAO+E,EAAAA,EAAa6+C,uBAC1E,CAEE,MAAMx0B,EAAUD,EAAAA,EAAKC,QAAQqjC,EAAO,GAAI6T,EAAO7nE,OAC/CgpE,EAAUznE,GAAMovB,CACpB,MAAO,GACHD,EAAAA,EAAKy7B,KAAK0b,EAAO59D,IAAI1I,EAAGyyD,EAAO,GAAGzyD,EAAGyyD,EAAO,GAAGzyD,GAAG,EAAO+E,EAAAA,EAAa6+C,uBACxE,CAEE,MAAMx0B,EAAUD,EAAAA,EAAKC,QAAQqjC,EAAO,GAAI6T,EAAO59D,KAC/C++D,EAAUznE,GAAMovB,CACpB,CAGJ,IAAKD,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAGsmE,EAAO7nE,MAAMuB,EAAGsmE,EAAO59D,IAAI1I,GAAG,EAAO+E,EAAAA,EAAa6+C,uBAC1E,GACIz0B,EAAAA,EAAKy7B,KAAK0b,EAAO7nE,MAAMuB,EAAGyyD,EAAO,GAAGzyD,EAAGyyD,EAAO,GAAGzyD,GAAG,EAAO+E,EAAAA,EAAa6+C,uBAC1E,CAEE,MAAMx0B,EAAUD,EAAAA,EAAKC,QAAQqjC,EAAO,GAAI6T,EAAO7nE,OAC/CgpE,EAAUznE,GAAMovB,CACpB,MAAO,GACHD,EAAAA,EAAKy7B,KAAK0b,EAAO59D,IAAI1I,EAAGyyD,EAAO,GAAGzyD,EAAGyyD,EAAO,GAAGzyD,GAAG,EAAO+E,EAAAA,EAAa6+C,uBACxE,CAEE,MAAMx0B,EAAUD,EAAAA,EAAKC,QAAQqjC,EAAO,GAAI6T,EAAO59D,KAC/C++D,EAAUznE,GAAMovB,CACpB,CAGJq4C,EAAUnvD,MAAQm6C,EAGlB91E,EAAS7/C,SAASsjD,IACVA,EAAQhC,YAAcqpF,EAAUrpF,YAChCgC,EAAQxiD,EAAI6pI,EAAU7pI,EACtBwiD,EAAQ4f,EAAIynE,EAAUznE,EACtB5f,EAAQk4B,MAAQmvD,EAAUnvD,MAC9B,GACF,IAGgC,CAClC,CAAE7Z,MAAO0oE,EAAez+D,IAAK0+D,EAAej6F,OAAQm5F,EAAOn5F,QAC3D,CAAEsxB,MAAO6nE,EAAOxf,OAAQroD,MAAOiK,IAAKy+D,EAAeh6F,OAAQm5F,EAAOn5F,QAClE,CAAEsxB,MAAO2oE,EAAe1+D,IAAK49D,EAAOvf,MAAOr+C,IAAKv7B,OAAQm5F,EAAOn5F,SAGtDrwC,SAAS6qI,IAClB,MAAMC,EAAUp7B,EAAAA,EAAO0R,YAAYypB,EAAahrF,GAChD,IAAK,IAAIkrF,KAAMD,EAAS,CACpB,MAAMH,EAAYG,EAAQC,GACpBnd,EAAKle,EAAAA,EAAO4b,uBAAuBuf,GACnClV,EAAS7zD,EAAAA,EAAW8zD,SAAShI,EAAI+c,EAAU7hG,KAAO6hG,GAEnDt4C,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG+pI,EAAYlpE,MAAM7gE,EAAG+pI,EAAYj/D,IAAI9qE,IAC5DuxF,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAG2nE,EAAYlpE,MAAMuB,EAAG2nE,EAAYj/D,IAAI1I,IAC5DmvB,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAG70H,EAAG+pI,EAAYlpE,MAAM7gE,EAAG+pI,EAAYj/D,IAAI9qE,IAC5DuxF,EAAAA,EAAKy7B,KAAK6H,EAAO,GAAGzyD,EAAG2nE,EAAYlpE,MAAMuB,EAAG2nE,EAAYj/D,IAAI1I,IAE7D0jE,EAAUC,eAAegE,EAAahrF,EAE9C,IAER,CAEA,MAAO,CAAE6R,QAAOrf,QAAOwN,WAAUg3C,iBAAiB,EACtD,CAEA,2BAAc0yB,CAAqBD,GAAmB,IAAD0hB,EAAAC,EACjD,MAAMC,EAAa5hB,EAAWU,OACxBmhB,EAAY7hB,EAAWW,MAE7B,SACKihB,GACGlhD,EAAAA,EAAUwL,SAAS01C,GAAcjjE,EAAAA,EAAa6+C,uBAA+C,QAA1BkkB,EAAIE,EAAWnyC,mBAAW,IAAAiyC,EAAAA,EAAI,IACpGG,GACGnhD,EAAAA,EAAUwL,SAAS21C,GAAaljE,EAAAA,EAAa6+C,uBAA8C,QAAzBmkB,EAAIE,EAAUpyC,mBAAW,IAAAkyC,EAAAA,EAAI,GAK3G,CAEA,gBAAch9D,CAAUyE,EAAe5K,EAAe6O,GAClD,MAAM1tC,GAAO6+B,EAAE5E,EAAIwP,EAAExP,IAAMyT,EAAE71E,EAAIgnE,EAAEhnE,IAAMgnE,EAAEhnE,EAAI4xE,EAAE5xE,IAAM61E,EAAEzT,EAAI4E,EAAE5E,GAC/D,OAAY,IAARj6B,EACO,EACAA,EAAM,EACN,EAEJ,CACX,CAEA,kBAAcmiG,CAAY3R,EAAoBC,GAC1C,IAAI2R,EAAOjnJ,KAAK6pF,UAAUwrD,EAAGlrF,GAAIkrF,EAAGjrF,GAAIkrF,EAAGnrF,IACvC+8F,EAAOlnJ,KAAK6pF,UAAUwrD,EAAGlrF,GAAIkrF,EAAGjrF,GAAIkrF,EAAGlrF,IACvC+8F,EAAOnnJ,KAAK6pF,UAAUyrD,EAAGnrF,GAAImrF,EAAGlrF,GAAIirF,EAAGlrF,IACvCi9F,EAAOpnJ,KAAK6pF,UAAUyrD,EAAGnrF,GAAImrF,EAAGlrF,GAAIirF,EAAGjrF,IAE3C,OAAI68F,IAASC,GAAQC,IAASC,MAGjB,IAATH,IAAcjnJ,KAAKqnJ,OAAOhS,EAAIC,EAAGnrF,SAGxB,IAAT+8F,IAAclnJ,KAAKqnJ,OAAOhS,EAAIC,EAAGlrF,SAGxB,IAAT+8F,IAAcnnJ,KAAKqnJ,OAAO/R,EAAID,EAAGlrF,QAGxB,IAATi9F,IAAcpnJ,KAAKqnJ,OAAO/R,EAAID,EAAGjrF,OAIzC,CAEA,aAAci9F,CAAOhS,EAAoBlqF,GACrC,OACIA,EAAEzuC,GAAKoqC,KAAKqlB,IAAIkpE,EAAGlrF,GAAGztC,EAAG24H,EAAGjrF,GAAG1tC,IAC/ByuC,EAAEzuC,GAAKoqC,KAAKklB,IAAIqpE,EAAGlrF,GAAGztC,EAAG24H,EAAGjrF,GAAG1tC,IAC/ByuC,EAAE2zB,GAAKh4B,KAAKqlB,IAAIkpE,EAAGlrF,GAAG20B,EAAGu2D,EAAGjrF,GAAG00B,IAC/B3zB,EAAE2zB,GAAKh4B,KAAKklB,IAAIqpE,EAAGlrF,GAAG20B,EAAGu2D,EAAGjrF,GAAG00B,EAEvC,CAEA,gBAAc0sD,CAAU6J,EAAoBC,GAExC,GAAKD,EAAGlrF,GAAGztC,IAAM24H,EAAGjrF,GAAG1tC,GAAK24H,EAAGlrF,GAAG20B,IAAMu2D,EAAGjrF,GAAG00B,GAAOw2D,EAAGnrF,GAAGztC,IAAM44H,EAAGlrF,GAAG1tC,GAAK44H,EAAGnrF,GAAG20B,IAAMw2D,EAAGlrF,GAAG00B,EAC1F,OAAO,EAGX,MAAMy2D,GAAeD,EAAGlrF,GAAG00B,EAAIw2D,EAAGnrF,GAAG20B,IAAMu2D,EAAGjrF,GAAG1tC,EAAI24H,EAAGlrF,GAAGztC,IAAM44H,EAAGlrF,GAAG1tC,EAAI44H,EAAGnrF,GAAGztC,IAAM24H,EAAGjrF,GAAG00B,EAAIu2D,EAAGlrF,GAAG20B,GAGvG,GAAoB,IAAhBy2D,EACA,OAAO,EAGX,IAAIC,IAAOF,EAAGlrF,GAAG1tC,EAAI44H,EAAGnrF,GAAGztC,IAAM24H,EAAGlrF,GAAG20B,EAAIw2D,EAAGnrF,GAAG20B,IAAMw2D,EAAGlrF,GAAG00B,EAAIw2D,EAAGnrF,GAAG20B,IAAMu2D,EAAGlrF,GAAGztC,EAAI44H,EAAGnrF,GAAGztC,IAAM64H,EAC/FE,IAAOJ,EAAGjrF,GAAG1tC,EAAI24H,EAAGlrF,GAAGztC,IAAM24H,EAAGlrF,GAAG20B,EAAIw2D,EAAGnrF,GAAG20B,IAAMu2D,EAAGjrF,GAAG00B,EAAIu2D,EAAGlrF,GAAG20B,IAAMu2D,EAAGlrF,GAAGztC,EAAI44H,EAAGnrF,GAAGztC,IAAM64H,EAGnG,QAAIC,EAAK,GAAKA,EAAK,GAAKC,EAAK,GAAKA,EAAK,IAQhC,CAAE/4H,EAHD24H,EAAGlrF,GAAGztC,EAAI84H,GAAMH,EAAGjrF,GAAG1tC,EAAI24H,EAAGlrF,GAAGztC,GAG5BoiE,EAFJu2D,EAAGlrF,GAAG20B,EAAI02D,GAAMH,EAAGjrF,GAAG00B,EAAIu2D,EAAGlrF,GAAG20B,GAG5C,EACHwoE,EApsBYj1C,EAAAA,EACKuC,yBAA2B,KADhCvC,EAEKixC,eAAiB,GAFtBjxC,EAuEKG,gBAAkB,CAC5B0yB,EACAkgB,EACAF,EACAzpF,EACAxN,EACAqf,EACAo2E,KAEA,MAAM9/D,EAAQC,EAAAA,EAAaD,MAC3B,IAAIogE,EACJ,GAA4B,UAAxB9e,EAAWnzB,UAA4C,UAApBqzC,EAAOrzC,SAC1CiyC,EAAYkB,EAAUthE,EAAS,SAC5B,GACsB,eAAxBshD,EAAWnzB,UAAqD,gBAAxBmzB,EAAWnzB,UAChC,UAApBqzC,EAAOrzC,SAUPiyC,EAAYkB,EAAUthE,EAAS,IAAMgiB,EAAAA,EAAUwL,SAAS8zB,OAT1D,CAGE,MAAMqiB,EAAYnC,EAEZoC,EADWv5C,EAAAA,EAAKC,QAAQ,CAAExxF,EAAG6qI,EAAUhqE,MAAM7gE,EAAGoiE,EAAGyoE,EAAU//D,IAAI1I,GAAKyoE,EAAUhqE,QACtD2nE,EAAUt/C,EAAAA,EAAUwL,SAAS8zB,IAE7D8e,EADqBl9F,KAAKsqE,KAAKo2B,EAAcA,EAAcA,EAAcA,EAE7E,CAIA,MAAMC,EAAgBH,EAAKxD,sBAAsBsB,EAAQlgB,EAAY8e,EAAU12E,GAC/E,GAAwB,gBAApB83E,EAAOrzC,SAA4B,CAEnC,IAAI21C,EAAgBp8B,EAAAA,EAAO4b,uBAAuBke,EAAOxf,QACrD+hB,EAAwBr8B,EAAAA,EAAO4b,uBAAuBugB,GAC1DA,EAAclqE,MAAQ0wB,EAAAA,EAAK66B,wBACvB4e,EACAC,EACA,MAER,MAAO,GAAwB,eAApBvC,EAAOrzC,SAA2B,CACzC,IAAI21C,EAAgBp8B,EAAAA,EAAO4b,uBAAuBke,EAAOvf,OACrD+hB,EAAuBt8B,EAAAA,EAAO4b,uBAAuBugB,GACzDA,EAAcjgE,IAAMymB,EAAAA,EAAK66B,wBAAwB4e,EAAeE,EAAsB,MAC1F,CAEA,MAAMvC,EAAYp3C,EAAAA,EAAK65B,eACnBsd,EAAOxf,OAAQroD,MAAM7gE,EACrB0oI,EAAOxf,OAAQroD,MAAMuB,EACrB2oE,EAAclqE,MAAM7gE,EACpB+qI,EAAclqE,MAAMuB,GAElBymE,EAAYt3C,EAAAA,EAAK65B,eACnB2f,EAAclqE,MAAM7gE,EACpB+qI,EAAclqE,MAAMuB,EACpB2oE,EAAcjgE,IAAI9qE,EAClB+qI,EAAcjgE,IAAI1I,GAGhB0mE,EAAYv3C,EAAAA,EAAK65B,eACnB2f,EAAcjgE,IAAI9qE,EAClB+qI,EAAcjgE,IAAI1I,EAClBsmE,EAAOvf,MAAOr+C,IAAI9qE,EAClB0oI,EAAOvf,MAAOr+C,IAAI1I,GAKtB,IAAIknE,EAAuC,GACtB16B,EAAAA,EAAO0R,YAAYooB,EAAQ3pF,GACnC7/C,SAASsjD,IAClB8mF,EAAajqJ,KAAK,CACd+d,IAAKolD,EACLqoB,KAAM69D,EACN5b,GAAIv7B,EAAAA,EAAKo6B,sBAAsBkd,EAAWrmF,EAAQxiD,EAAIwiD,EAAQ4f,IAChE,IAcN,OAZewoE,EAAKxB,SAAS,CACzBV,SACAn3F,QACAwN,WACA6R,QACAy4E,kBAhBkC,GAiBlCC,eACAX,YACAE,YACAC,YACA9B,cAES,EA9JRrxC,EAwTKmyC,eAAkB/8D,IAC5B,OAAQA,GACJ,KAAK,EACD,OAAO3gC,KAAKkrD,GAAK,EACrB,KAAKlrD,KAAKkrD,GAAK,EACX,OAAOlrD,KAAKkrD,GAChB,KAAKlrD,KAAKkrD,GACN,OAAQlrD,KAAKkrD,GAAK,EACtB,KAAMlrD,KAAKkrD,GAAK,EAEhB,QACI,OAAO,EACf,yHC7VD,IAAK61C,EAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,YAAnBA,EAAmB,wBAAnBA,EAAmB,oBAAnBA,CAAmB,MAMxB,MAAMjiD,EAKT,iBAAcw4C,CAAWvJ,EAAoBC,EAAoB/iC,EAAkBn0C,GAU/E,OATa0tD,EAAAA,EAAO/jC,KAChBstD,EACAC,EACA,SACAjxD,EAAAA,EAAao+C,YAAYrkE,EAAKt5D,MAC9BuiF,EAAAA,GAAUC,OACVlpB,EAAK3R,OACL8lD,EAGR,CACA,8CAAc0Z,CAAwCn+C,EAAoBg9D,GACtE,IAAK,MAAM/iD,KAAQja,EAAO,CACtB,IAAIw6E,EAAgB,EACpB,IAAK,MAAMhuI,KAAOwxG,EAAAA,EAAO+e,gBAAgB9iD,EAAM+iD,GAC3Cwd,GAAiBhuI,EAAI4qC,KAEzB6iC,EAAKotB,YAAcmzC,EACnBvgE,EAAKu+C,cAAgBv+C,EAAKE,KAC9B,CACJ,CAuBA,yBAAcsgE,CAAmBC,EAAaC,EAAa36E,EAAoB5R,GAC3E,MAAMgnE,EAAwB7+C,EAAAA,EAAa6+C,sBAC3C,IAAIslB,EAAMvgE,QAAUwgE,EAAMxgE,OAAS3gC,KAAK+hF,IAAI/hF,KAAK+hF,IAAImf,EAAMvgE,OAAS3gC,KAAKkrD,MAAQlrD,KAAK+hF,IAAIof,EAAMxgE,UAEvFwmB,EAAAA,EAAKy7B,KAAKue,EAAM1qE,MAAM7gE,EAAGsrI,EAAMzqE,MAAM7gE,EAAGsrI,EAAMxgE,IAAI9qE,GAAG,EAAOgmH,IACzDz0B,EAAAA,EAAKy7B,KAAKue,EAAM1qE,MAAMuB,EAAGkpE,EAAMzqE,MAAMuB,EAAGkpE,EAAMxgE,IAAI1I,GAAG,EAAO4jD,IAC/Dz0B,EAAAA,EAAKy7B,KAAKue,EAAMzgE,IAAI9qE,EAAGsrI,EAAMzqE,MAAM7gE,EAAGsrI,EAAMxgE,IAAI9qE,GAAG,EAAOgmH,IACvDz0B,EAAAA,EAAKy7B,KAAKue,EAAMzgE,IAAI1I,EAAGkpE,EAAMzqE,MAAMuB,EAAGkpE,EAAMxgE,IAAI1I,GAAG,EAAO4jD,IAC7Dz0B,EAAAA,EAAKy7B,KAAKse,EAAMzqE,MAAM7gE,EAAGurI,EAAM1qE,MAAM7gE,EAAGurI,EAAMzgE,IAAI9qE,GAAG,EAAOgmH,IACzDz0B,EAAAA,EAAKy7B,KAAKse,EAAMzqE,MAAMuB,EAAGmpE,EAAM1qE,MAAMuB,EAAGmpE,EAAMzgE,IAAI1I,GAAG,EAAO4jD,IAC/Dz0B,EAAAA,EAAKy7B,KAAKse,EAAMxgE,IAAI9qE,EAAGurI,EAAM1qE,MAAM7gE,EAAGurI,EAAMzgE,IAAI9qE,GAAG,EAAOgmH,IACvDz0B,EAAAA,EAAKy7B,KAAKse,EAAMxgE,IAAI1I,EAAGmpE,EAAM1qE,MAAMuB,EAAGmpE,EAAMzgE,IAAI1I,GAAG,EAAO4jD,IAChE,CAEE,MAAMplD,EAAS,CAAC0qE,EAAMzqE,MAAOyqE,EAAMxgE,IAAKygE,EAAM1qE,MAAO0qE,EAAMzgE,KACrD0gE,EAAmBxqE,EAAAA,EAAWu3D,qBAAqB33D,GACzD,GAAwB,MAApB4qE,EAA0B,CAC1B,MAAMn6C,EAAOrwB,EAAAA,EAAWC,qBAAqB,CAAEL,WAC/C,GACIywB,IACCE,EAAAA,EAAKuyC,gBAAgB0H,EAAiBxrI,EAAGqxF,EAAKjwB,KAAMiwB,EAAK/vB,OACtDiwB,EAAAA,EAAKuyC,gBAAgB0H,EAAiBppE,EAAGivB,EAAKhwB,KAAMgwB,EAAK9vB,OAE7D,OAAO,CAEf,CACA,OAAO,CACX,CAEJ,OAAO,CACX,CAEA,yBAAc+hD,GAA6C,IAA1B1yD,EAAkB5xD,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC9C9Z,EAAQ,EACZ,IAAK,MAAM2lF,KAAQja,EACf1rE,GAASqsG,EAAAA,EAAKC,QAAQ3mB,EAAKhK,MAAOgK,EAAKC,KAE3C,OAAO5lF,CACX,CAEA,6BAAcikG,GAIW,IAHrBv4B,EAAwB5xD,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC3B+/C,EAA8B//C,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAC9BurD,EAAsB1xC,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAElBu/F,EAAsC,GAC1C,MAAM+mD,EAAY76E,EAAMnmE,KAAKogF,GAAS+jC,EAAAA,EAAO0R,YAAYz1C,EAAM9rB,KAC/D,IAAK,MAAMyD,KAAWzD,EAAU,CAC5B,IAAI2sF,EAA4B,GAChC,IAAK,MAAMC,KAAYF,EAGfE,EAAS3+F,MAAMhtC,GAAMA,EAAEwgD,YAAcgC,EAAQhC,aAC7CkrF,EAAWrsJ,KAAKosJ,EAAUpqI,QAAQsqI,IAGtCD,EAAWl0I,OAAS,GACpBktF,EAAcrlG,KAAK,CACfmjE,QAASA,EACT9R,QAASg7F,EAAWjhJ,KAAKuV,GAAM4wD,EAAM5wD,GAAGuvC,SAASzxC,QAAQkC,GAAM0wC,EAAQxe,SAASlyB,KAChF4rI,aAAcppF,EAAQuoB,OAGlC,CACA,OAAO2Z,CACX,CAEA,iBAAckqC,CAAW/jD,GACrB,MAAoC,MAA7BvnF,KAAKgwI,cAAczoD,IAA8C,MAA7BvnF,KAAKgwI,cAAczoD,EAClE,CAEA,oBAAcyoD,CAAczoD,GACxB,MAAMghE,EAAYt6C,EAAAA,EAAKiiC,cAAc3oD,EAAKE,OAC1C,OAAOznF,KAAKiwI,eAAesY,EAC/B,CAkLA,qBAActY,CAAexoD,GACzB,OAAc,IAAVA,GAAyB,MAAVA,EACR,IACU,KAAVA,IAA2B,KAAXA,EAChB,IACU,KAAVA,IAA2B,KAAXA,GAA2B,MAAVA,IAA4B,MAAXA,EAClD,SADJ,CAGX,EA6LH+gE,EAlfY5iD,EAAAA,EACKwL,SAAY7pB,GACuB,IAArC0mB,EAAAA,EAAKC,QAAQ3mB,EAAKhK,MAAOgK,EAAKC,KAAc3D,EAAAA,EAAaD,MAF5DgiB,EA4BKqL,qBAAuB,CACjC3jC,EACAkjC,EACA90C,KAGA,IAAIs1C,EAAgB,GACpB,IAAK,MAAMg3C,KAAS16E,EAChB,IAAK,MAAM26E,KAASz3C,EAEZw3C,IAAUC,GACVD,EAAM/7F,SAAWg8F,EAAMh8F,QACvBu8F,EAAKT,mBAAmBC,EAAOC,EAAOz3C,EAAU90C,IAEhDs1C,EAAcj1G,KAAK,CAACisJ,EAAOC,IAIvC,OAAOj3C,CAAa,EA9CfpL,EA8HK6iD,gBAAkB,SAACn7E,EAAerf,EAAgBuoD,GAAqE,IAAnDkyC,EAAahtI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG42H,IAAUqW,EAAmBjtI,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACvH+mJ,EAAkBD,EAAar7E,EAAM9yD,QAAQkC,GAAMA,EAAEuvC,SAAW08F,IAAcr7E,EAElF,GAA+B,IAA3Bs7E,EAAgB10I,OAApB,CAGA,IAAKy0I,EAAY,CAEb,MAAME,EAAav9B,EAAAA,EAAOuf,eAAer0B,EAAMvoD,GAC3C46F,IACAD,EAAkBA,EAAgBpuI,QAAQkC,GAAMA,EAAEuvC,SAAW48F,EAAW58F,SAEhF,CAEA,OAAOu8F,EAAKM,oBAAoB76F,EAAOuoD,EAAMkyC,EAAOE,EATpD,CAUJ,EA7IShjD,EA+IKkjD,oBAAsB,SAAC76F,EAAgBuoD,GAA2F,IAExIuyC,EACA9oJ,EAH+DyoJ,EAAKhtI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG42H,IAAUsW,EAAuBltI,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACxGmnJ,EAAe1W,IAInB,IAAK,IAAI79E,EAAI,EAAGA,EAAIm0F,EAAgB10I,OAAQugD,IAAK,CAC7C,MAAM+0E,EAAKv7B,EAAAA,EAAK65B,eACZ8gB,EAAgBn0F,GAAG8oB,MAAM7gE,EACzBksI,EAAgBn0F,GAAG8oB,MAAMuB,EACzB8pE,EAAgBn0F,GAAG+yB,IAAI9qE,EACvBksI,EAAgBn0F,GAAG+yB,IAAI1I,GAE3B7+E,EAASguG,EAAAA,EAAKw7B,oBAAoBD,EAAIhzB,GAElCv2G,EAAOynF,SAAWshE,GAClB/6C,EAAAA,EAAKy7B,KAAKzpI,EAAOyc,EAAGksI,EAAgBn0F,GAAG8oB,MAAM7gE,EAAGksI,EAAgBn0F,GAAG+yB,IAAI9qE,IACvEuxF,EAAAA,EAAKy7B,KAAKzpI,EAAO6+E,EAAG8pE,EAAgBn0F,GAAG8oB,MAAMuB,EAAG8pE,EAAgBn0F,GAAG+yB,IAAI1I,KAEvEkqE,EAAe/oJ,EAAOynF,SACtBqhE,EAAe,CACXxhE,KAAMqhE,EAAgBn0F,GACtBxI,OAAQ28F,EAAgBn0F,GAAGxI,OAC3BvvC,EAAGzc,EAAOyc,EACVoiE,EAAG7+E,EAAO6+E,EACV4I,SAAUznF,EAAOynF,UAG7B,CAEA,OAAIshE,GAAgBN,EACTK,OAEP,CAER,EAjLSnjD,EAoLKysC,SAAW,SAAC/kE,EAAoBkpC,GAAqE,IAAnDkyC,EAAahtI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG42H,IAAUqW,EAAmBjtI,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACzG,MAAM+mJ,EAAkBD,EAAar7E,EAAM9yD,QAAQkC,GAAMA,EAAEuvC,SAAW08F,IAAcr7E,EACpF,OAAOk7E,EAAKnJ,aAAa7oC,EAAMkyC,EAAOE,EAC1C,EAvLShjD,EA6LKy5C,aAAe,SACzB7oC,GAK4B,IAGxBuyC,EAEAE,EACAhpJ,EAVJyoJ,EAAahtI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG42H,IAEhB4W,EAAmBxtI,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EACnBsnJ,EAA0BztI,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAEtB+mJ,EAJkBltI,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAKlBmnJ,EAAe1W,IAEf8W,EAAmB9W,IAGnB+W,GAAY,EAChB,GAA+B,IAA3BT,EAAgB10I,OAChB,OAGAi1I,IACAP,EAAkBA,EAAgBpuI,QAAQkC,GAAM8rI,EAAKld,WAAW5uH,MAEpE,IAAK,IAAI+3C,EAAI,EAAGA,EAAIm0F,EAAgB10I,OAAQugD,IAAK,CAC7C,MAAM+0E,EAAKv7B,EAAAA,EAAK65B,eACZ8gB,EAAgBn0F,GAAG8oB,MAAM7gE,EACzBksI,EAAgBn0F,GAAG8oB,MAAMuB,EACzB8pE,EAAgBn0F,GAAG+yB,IAAI9qE,EACvBksI,EAAgBn0F,GAAG+yB,IAAI1I,GAE3B7+E,EAASguG,EAAAA,EAAKw7B,oBAAoBD,EAAIhzB,GAElCv2G,EAAOynF,SAAWshE,GAClB/6C,EAAAA,EAAKy7B,KAAKzpI,EAAOyc,EAAGksI,EAAgBn0F,GAAG8oB,MAAM7gE,EAAGksI,EAAgBn0F,GAAG+yB,IAAI9qE,IACvEuxF,EAAAA,EAAKy7B,KAAKzpI,EAAO6+E,EAAG8pE,EAAgBn0F,GAAG8oB,MAAMuB,EAAG8pE,EAAgBn0F,GAAG+yB,IAAI1I,IAEvEuqE,GAAY,EACZL,EAAe/oJ,EAAOynF,SACtBqhE,EAAe,CACXxhE,KAAMqhE,EAAgBn0F,GACtBxI,OAAQ28F,EAAgBn0F,GAAGxI,OAC3BvvC,EAAGzc,EAAOyc,EACVoiE,EAAG7+E,EAAO6+E,EACV4I,SAAUznF,EAAOynF,WAEdwhE,GAAYN,EAAgBn0F,KAAOy0F,IAC1CE,EAAmBnpJ,EAAOynF,SAC1BuhE,EAAmB,CACf1hE,KAAMqhE,EAAgBn0F,GACtBxI,OAAQ28F,EAAgBn0F,GAAGxI,OAC3BvvC,EAAGzc,EAAOyc,EACVoiE,EAAG7+E,EAAO6+E,EACV4I,SAAUznF,EAAOynF,UAG7B,CAEIwhE,KAAcG,GAAaD,EAAmB,IAAMJ,KACpDA,EAAeI,EACfL,EAAeE,GAEnB,MAAMK,EAAKd,EAAKe,YAAY/yC,EAAM,IAAOoyC,GAazC,OAXIU,IAAQJ,GAAYI,EAAG5hE,SAAW,GAAKshE,IAAmBE,GAAYI,EAAG5hE,SAAWshE,KACpFA,EAAeM,EAAG5hE,SAClBqhE,EAAe,CACXxhE,KAAM+hE,EAAG1kG,OACTqH,OAAQq9F,EAAGr9F,OACXvvC,EAAG4sI,EAAG5sI,EACNoiE,EAAGwqE,EAAGxqE,EACN4I,SAAU4hE,EAAG5hE,SACbD,MAAO6hE,EAAG1kG,OAAO6iC,QAGlBuhE,GAAgBN,EAAQK,OAAelnJ,CAClD,EAtQS+jG,EAwQK2jD,YAAc,SACxB/yC,GAG2B,IAEvBgzC,EAJJd,EAAahtI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAChB4xD,EAAsB5xD,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAElB4nJ,EAAenX,IAEnB,IAAK,IAAI72H,EAAI,EAAGA,EAAI6xD,EAAMp5D,OAAQuH,IAAK,CACnC,MAAM8rE,EAAOja,EAAM7xD,GAEbiuI,EAAYz7C,EAAAA,EAAKljG,IAAIyrG,EAAM,CAAE95F,EAAG6qE,EAAKhK,MAAM7gE,EAAGoiE,EAAGyI,EAAKhK,MAAMuB,IAC5D6qE,EAAY17C,EAAAA,EAAKljG,IAAIyrG,EAAM,CAAE95F,EAAG6qE,EAAKC,IAAI9qE,EAAGoiE,EAAGyI,EAAKC,IAAI1I,IAE1D4qE,EAAYC,GAAaD,EAAYD,IACrCA,EAAeC,EACfF,EAAc,CACV5kG,OAAQ2iC,EACR7qE,EAAG6qE,EAAKhK,MAAM7gE,EACdoiE,EAAGyI,EAAKhK,MAAMuB,EACd7yB,OAAQs7B,EAAKt7B,OACby7B,SAAU5gC,KAAKsqE,KAAKq4B,KAGxBE,EAAYD,GAAaC,EAAYF,IACrCA,EAAeE,EACfH,EAAc,CACV5kG,OAAQ2iC,EACR7qE,EAAG6qE,EAAKC,IAAI9qE,EACZoiE,EAAGyI,EAAKC,IAAI1I,EACZ7yB,OAAQs7B,EAAKt7B,OACby7B,SAAU5gC,KAAKsqE,KAAKq4B,IAGhC,CACA,OAAOA,EAAef,EAAQA,EAAQc,OAAc3nJ,CACxD,EA3SS+jG,EAuTKgkD,uBAAyB,CAACt8E,EAAe43D,IAC9B53D,EAAM9yD,QACtBkC,GACGA,EAAEuvC,SAAWi5E,EAAWj5E,QACxBvvC,EAAEqpH,UAAUjR,KAAKuS,IAAMnC,EAAWa,UAAUjR,KAAKuS,GACjD3qH,EAAEqpH,UAAUjR,KAAK4iB,IAAMxS,EAAWa,UAAUjR,KAAK4iB,IA5TpD9xC,EAkUKikD,WAAa,CACvBr5C,EACA7jC,EACAm9E,KAEA,MAAMC,EAAeD,EAAa79F,OAC5B+9F,EAAkBx5C,EAASh2F,QAAQkC,GAAMA,EAAEuvC,SAAW89F,IACtDE,EAA+Bz5C,EAASh2F,QACzCkC,IAAC,IAAAwtI,EAAAC,EAAA,OACEztI,EAAEuvC,SAAW89F,GACbrtI,EAAEq1F,WAAa+3C,EAAa/3C,UAC5Br1F,EAAEq1F,YAAgC,QAAxBm4C,EAAKJ,EAAalkB,cAAM,IAAAskB,OAAA,EAAnBA,EAAqBn4C,WACpCr1F,EAAEq1F,YAA+B,QAAvBo4C,EAAKL,EAAajkB,aAAK,IAAAskB,OAAA,EAAlBA,EAAoBp4C,SAAQ,IAG7Cq4C,EAAgBt1G,EAAAA,EAAYqS,gBAC9B8iG,EAA6B9iJ,KAAKuV,GAAM,CAACA,EAAE6gE,MAAO7gE,EAAE8qE,OAAM6iE,QAG9D,OAAOzkD,EAAU0kD,aAAaF,EAAez9E,EAAUq9E,EAAiBD,EAAc,EArVjFnkD,EAwVK2kD,WAAa,CACvB/5C,EACA7jC,EACA69E,KAEA,MAAMC,EAAmBD,EAAa,GAChCT,EAAeU,EAAiBx+F,OAChCs4E,EAAa53D,EAASjjB,MAAMhtC,GAAMA,EAAEuvC,SAAW89F,IAC/CW,EAAuBl6C,EAASh2F,QACjC+sE,KAAWA,EAAKt7B,SAAW89F,GAAgBxiE,EAAKhK,MAAM7gE,IAAM6qE,EAAKC,IAAI9qE,GAAK6qE,EAAKhK,MAAMuB,IAAMyI,EAAKC,IAAI1I,KAGnGkrE,EAAkBU,EAAqBlwI,QAAQkC,GAAMA,EAAEuvC,SAAWw+F,EAAiBx+F,SAEnF0+F,EAA+BD,EAAqBlwI,QACrDkC,GACGA,EAAEuvC,SAAWw+F,EAAiBx+F,UAE1BvvC,EAAEqpH,UAAUjR,KAAKuS,IAAMojB,EAAiB1kB,UAAUjR,KAAKuS,GACvD3qH,EAAEqpH,UAAUjR,KAAK4iB,IAAM+S,EAAiB1kB,UAAUjR,KAAK4iB,KAInE,IAAI0S,EAAgBt1G,EAAAA,EAAYqS,gBAC5BwjG,EAA6BxjJ,KAAKuV,GAAM,CAACA,EAAE6gE,MAAO7gE,EAAE8qE,OAAM6iE,QAG9D,MAAMx9E,EAAyB,GAC/B,IAAK,IAAIpxD,EAAI,EAAGA,EAAI2uI,EAAcl2I,OAAQuH,IACtCoxD,EAAU9wE,KACN6pG,EAAUw4C,WACNgM,EAAc3uI,GACd2uI,GAAe3uI,EAAI,GAAK2uI,EAAcl2I,QAAQ,QAADzL,OACrCgT,GACR8oH,IAIZ,OAAO3+B,EAAU0kD,aAAaF,EAAez9E,EAAUq9E,EAAiBD,EAAc,EA9XjFnkD,EAiYKglD,UAAY,CAACp6C,EAAkB7jC,EAAmBk+E,EAAmBC,KAC/E,MAAMf,EAAec,EAAY5+F,OAC3B8+F,EAAa98C,EAAAA,EAAKw7B,oBAAoBohB,EAAY9kB,UAAUjR,KAAMg2B,GAClEd,EAAkBx5C,EAASh2F,QAAQkC,GAAMA,EAAEuvC,SAAW89F,IACtDiB,EAAkBx6C,EAASh2F,QAAQkC,GAAMA,EAAEuvC,SAAW89F,IAEtDkB,EAAsB,GAC5B,IAAK,MAAM1jE,KAAQyjE,EACfC,EAAoBlvJ,KAAKwrF,EAAKhK,OAC1BgK,EAAKwqB,WAAa84C,EAAY94C,WAC9Bk5C,EAAoBlvJ,KAAKgvJ,GACzBE,EAAoBlvJ,KAAKgvJ,IAIjC,OAAOnlD,EAAU0kD,aAAaW,EAAqBt+E,EAAUq9E,EAAiBD,EAAc,EAhZvFnkD,EAmZKslD,WAAa,CACvB16C,EACA7jC,EACAw+E,EACAzmG,EACAmlC,KAEA,MAAMkgE,EAAeoB,EAAal/F,OAClC,IAAIm/F,EACAC,EACJ,OAAQxhE,GACJ,KAAKg+D,EAAoByD,WACrBF,EAAWD,EAAa5tE,MAExB8tE,EAAS,CACL3uI,EAAGyuI,EAAa5tE,MAAM7gE,EAAIoqC,KAAK8gF,IAAIujB,EAAa1jE,OAAS/iC,EACzDo6B,EAAGqsE,EAAa5tE,MAAMuB,EAAIh4B,KAAK4gF,IAAIyjB,EAAa1jE,OAAS/iC,GAE7D,MAEJ,KAAKmjG,EAAoB0D,SACrBH,EAAW,CACP1uI,EAAGyuI,EAAa3jE,IAAI9qE,EAAIoqC,KAAK8gF,IAAIujB,EAAa1jE,OAAS/iC,EACvDo6B,EAAGqsE,EAAa3jE,IAAI1I,EAAIh4B,KAAK4gF,IAAIyjB,EAAa1jE,OAAS/iC,GAG3D2mG,EAASF,EAAa3jE,IACtB,MAEJ,KAAKqgE,EAAoB2D,KACzB,QACI,MAAMC,EAAqB/tE,EAAAA,EAAWqF,WAAW,CAACooE,EAAa5tE,MAAO4tE,EAAa3jE,MAEnF4jE,EAAW,CACP1uI,EAAG+uI,EAAmB/uI,EAAKoqC,KAAK8gF,IAAIujB,EAAa1jE,OAAS/iC,EAAQ,EAClEo6B,EAAG2sE,EAAmB3sE,EAAKh4B,KAAK4gF,IAAIyjB,EAAa1jE,OAAS/iC,EAAQ,GAGtE2mG,EAAS,CACL3uI,EAAG+uI,EAAmB/uI,EAAKoqC,KAAK8gF,IAAIujB,EAAa1jE,OAAS/iC,EAAQ,EAClEo6B,EAAG2sE,EAAmB3sE,EAAKh4B,KAAK4gF,IAAIyjB,EAAa1jE,OAAS/iC,EAAQ,GAK9E,MAAMslG,EAAkBx5C,EAASh2F,QAAQkC,GAAMA,EAAEuvC,SAAWk/F,EAAal/F,SACnE++F,EAAkBx6C,EAASh2F,QAAQkC,GAAMA,EAAEuvC,SAAWk/F,EAAal/F,SAEnEg/F,EAAsB,GAC5B,IAAK,MAAM1jE,KAAQyjE,EACXzjE,EAAKhK,QAAU4tE,EAAa5tE,MAC5B0tE,EAAoBlvJ,KAAKqvJ,GAClB7jE,EAAKhK,QAAU4tE,EAAa3jE,IACnCyjE,EAAoBlvJ,KAAKsvJ,GAEzBJ,EAAoBlvJ,KAAKwrF,EAAKhK,OAItC,OAAOqoB,EAAU0kD,aAAaW,EAAqBt+E,EAAUq9E,EAAiBD,EAAc,EA9cvFnkD,EAidK0kD,aAAe,CACzBF,EACAz9E,EACAq9E,EACAD,KAEA,IAAI2B,EAA2B,IAAItB,EAAeA,EAAc,IAEhE,MAAMv9E,EAAyB,GAC/B,IAAK,IAAIpxD,EAAI,EAAGA,EAAI2uI,EAAcl2I,OAAQuH,IAAK,CAC3C,MAAM8oH,EAAa53D,EAASjjB,MAAMhtC,GAAMA,EAAEuvC,SAAW89F,IACrDl9E,EAAU9wE,KACN6pG,EAAUw4C,WACNgM,EAAc3uI,GACd2uI,GAAe3uI,EAAI,GAAK2uI,EAAcl2I,QAAQ,QAADzL,OACrCgT,GACR8oH,GAGZ,CAYA,MAAO,CAAEonB,YAVW,IAAI3B,KAAoBn9E,GAUT++E,YARfj/E,EAASxlE,KAAKy2D,IACvB,IACAA,EACH0P,MAAO1P,EAAK3R,SAAY89F,EAAel9E,EAAYjP,EAAK0P,MACxDuV,OAAQjlB,EAAK3R,SAAY89F,EAAe2B,EAA2B9tF,EAAKilB,WAInB,2EC5f9D,MAAMmpC,GAAAA,EAEK6/B,mBAAqB,KAAO,IAAMhoE,EAAAA,EAAa2+C,KAAO,MAF3DxW,EAIKC,gBAAkB,WAC5B,MAAM3uC,EAA4B,IADc5hE,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAE7CE,SAASgiD,GAAS0f,EAAOvhF,QAAQ6hE,EAAKilB,UAE5C,MAAMqxD,EAAcx2D,EAAAA,EAAWC,qBAAqB,CAAEL,WACtD,GAAI42D,EAAa,CACb,MAAMn1C,EAAsB,CAAEriF,EAAGw3H,EAAYp2D,KAAMgB,EAAGo1D,EAAYn2D,MAC5D+gB,EAAuB,CAAEpiF,EAAGw3H,EAAYl2D,KAAMc,EAAGo1D,EAAYn2D,MAC7DkhB,EAAyB,CAAEviF,EAAGw3H,EAAYp2D,KAAMgB,EAAGo1D,EAAYj2D,MAC/D+gB,EAA0B,CAAEtiF,EAAGw3H,EAAYl2D,KAAMc,EAAGo1D,EAAYj2D,MAEhE6tE,EAAiB5X,EAAYl2D,KAAOk2D,EAAYp2D,KAChDiuE,EAAkB7X,EAAYj2D,KAAOi2D,EAAYn2D,KAEjDiuE,EAASt0I,OAAOu0I,UAGhBjkJ,EAAQ8jJ,EAAiB,IAEzBthJ,EAASuhJ,EAAkB,KAE3B,YAAEv+B,EAAW,aAAEC,GAAiBu+B,EAAO3zG,WACvC6zG,EAAsBxuE,EAAAA,EAAWqF,WAAW,CAACgc,EAASD,EAAUG,EAAYD,IAE5EmtD,EAAa3+B,EAAcxlH,EAC3BokJ,EAAc3+B,EAAejjH,EAC7Bg4H,EAAO2pB,EAAaC,EAAcD,EAAaC,EAErDJ,EAAOK,aAAattD,EAAQriF,EAAGqiF,EAAQjgB,EAAG92E,EAAOwC,GACjDwhJ,EAAOM,uBAAuBJ,EAAoBxvI,EAAGwvI,EAAoBptE,EAAG0jD,EAChF,CACJ,mGCPG,MAAMv0B,EAuGT,0BAAcw7B,CAAoB6N,EAAoBx2C,GAElD,MAAM+zC,EAAqB,CAAEn4H,EAAG,EAAGoiE,EAAG,GAChCg2D,EAAqB,CAAEp4H,EAAG,EAAGoiE,EAAG,GACtC,MAAmB,MAAfw4D,EAASjQ,EACF,CACH3qH,EAAGokF,EAAMpkF,EACToiE,EAAGw4D,EAASI,EACZhwD,SAAU5gC,KAAK+hF,IAAIyO,EAASI,EAAI52C,EAAMhiB,IAEpB,MAAfw4D,EAASjQ,EACT,CACH3qH,EAAG46H,EAASI,EACZ54D,EAAGgiB,EAAMhiB,EACT4I,SAAU5gC,KAAK+hF,IAAIyO,EAASI,EAAI52C,EAAMpkF,KAG1Cm4H,EAAOn4H,EAAIokF,EAAMpkF,EACjBm4H,EAAO/1D,EAAIw4D,EAASjQ,EAAIvmC,EAAMpkF,EAAI46H,EAASI,EAC3C5C,EAAOp4H,GAAKokF,EAAMhiB,EAAKw4D,EAASI,GAAKJ,EAASjQ,EAC9CyN,EAAOh2D,EAAIgiB,EAAMhiB,EACVmvB,EAAKs+C,UAAUzrD,EAAO+zC,EAAQC,GAE7C,CAEA,gBAAcyX,CAAUzrD,EAAmB+zC,EAAoBC,GAC3D,MAAMp4H,EAAIokF,EAAMpkF,EACVoiE,EAAIgiB,EAAMhiB,EACVy5B,EAAKs8B,EAAOn4H,EACZ+7F,EAAKo8B,EAAO/1D,EACZ05B,EAAKs8B,EAAOp4H,EACZg8F,EAAKo8B,EAAOh2D,EAGZ0tE,EAAIh0C,EAAKD,EACTk0C,EAAI/zC,EAAKD,EAETi0C,EAASF,EAAIA,EAAIC,EAAIA,EAC3B,IAIIE,EAAIC,EAJJC,GAAS,EACE,IAAXH,IAEAG,IATMnwI,EAAI67F,GAIEi0C,GAHN1tE,EAAI25B,GAGUg0C,GAKNC,GAEdG,EAAQ,GACRF,EAAKp0C,EACLq0C,EAAKn0C,GACEo0C,EAAQ,GACfF,EAAKn0C,EACLo0C,EAAKl0C,IAELi0C,EAAKp0C,EAAKs0C,EAAQL,EAClBI,EAAKn0C,EAAKo0C,EAAQJ,GAEtB,MAAMxS,EAAKv9H,EAAIiwI,EACTxmE,EAAKrH,EAAI8tE,EACf,MAAO,CACHlwI,EAAGiwI,EACH7tE,EAAG8tE,EACHllE,SAAU5gC,KAAKsqE,KAAK6oB,EAAKA,EAAK9zD,EAAKA,GAE3C,EA+MH2mE,EAlXY7+C,EAAAA,EAEK8mB,OAAS,SAAC9tH,EAAY2/E,GAA0D,IAA9C4nB,EAAmC9yF,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EACnFkrE,EAAQmmE,EAAEtwE,SAASuwE,gBAAgB,6BAA8BpmE,IACjE,IAAK,IAAIogD,KAAKx4B,EACV5nB,EAAMq9B,KAAK+iB,EAAGx4B,EAAMw4B,IAKxB,MAHW,SAAP//H,GACA8lJ,EAAE,IAAM9lJ,GAAIg9C,OAAO2iC,GAEhBA,CACX,EAXSqnB,EAaKo6B,sBAAwB,CAACiP,EAAoB/+B,EAAYE,IAC1C,iBAAd6+B,EAASjQ,EACT,CAAEA,GAAI,EAAIiQ,EAASjQ,EAAGqQ,EAAGj/B,IAAO,EAAI6+B,EAASjQ,EAAK9uB,GAE1C,MAAf++B,EAASjQ,EACF,CAAEA,EAAG,IAAKqQ,EAAGn/B,GAEL,MAAf++B,EAASjQ,EACF,CAAEA,EAAG,IAAKqQ,EAAGj/B,QADxB,EApBKxK,EAyBKg/C,iBAAmB,CAAC3V,EAAoBx2C,IACzB,iBAAdw2C,EAASjQ,EACT,CAAEA,EAAGiQ,EAASjQ,EAAGqQ,EAAG52C,EAAMhiB,EAAIw4D,EAASjQ,EAAIvmC,EAAMpkF,GAEzC,MAAf46H,EAASjQ,EACF,CAAEA,EAAG,IAAKqQ,EAAG52C,EAAMhiB,GAEX,MAAfw4D,EAASjQ,EACF,CAAEA,EAAG,IAAKqQ,EAAG52C,EAAMpkF,QAD9B,EAhCKuxF,EAsCK66B,wBAA0B,SAACuc,EAAqBE,GAAiD,IAA5BjhJ,EAAYoX,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,QAC9F,IAAIwxI,EACAC,EA8BJ,GA5BI9H,EAAUhe,IAAMke,EAAUle,IAC1B6lB,OAAWrrJ,EACXsrJ,OAAStrJ,GAEO,MAAhBwjJ,EAAUhe,GAA6B,MAAhBke,EAAUle,IACjC6lB,EAAW,CAAC7H,EAAU3N,EAAG6N,EAAU7N,GACnCyV,EAAS,CAAEzwI,EAAG2oI,EAAU3N,EAAG54D,EAAGymE,EAAU7N,IAExB,MAAhB2N,EAAUhe,GAA6B,MAAhBke,EAAUle,IACjC6lB,EAAW,CAAC3H,EAAU7N,EAAG2N,EAAU3N,GACnCyV,EAAS,CAAEzwI,EAAG6oI,EAAU7N,EAAG54D,EAAGumE,EAAU3N,IAExB,MAAhB2N,EAAUhe,GAA6B,MAAhBke,EAAUle,GAA6B,MAAhBke,EAAUle,IACxD6lB,EAAW,EAAE7H,EAAU3N,EAAI6N,EAAU7N,GAAK6N,EAAUle,EAAGge,EAAU3N,GACjEyV,EAAS,CAAEzwI,GAAI2oI,EAAU3N,EAAI6N,EAAU7N,GAAK6N,EAAUle,EAAGvoD,EAAGumE,EAAU3N,IAEtD,MAAhB2N,EAAUhe,GAA6B,MAAhBke,EAAUle,GAA6B,MAAhBke,EAAUle,IACxD6lB,EAAW,CAAC7H,EAAU3N,EAAG6N,EAAUle,EAAIge,EAAU3N,EAAI6N,EAAU7N,GAC/DyV,EAAS,CAAEzwI,EAAG2oI,EAAU3N,EAAG54D,EAAGymE,EAAUle,EAAIge,EAAU3N,EAAI6N,EAAU7N,IAEpD,MAAhB6N,EAAUle,GAA6B,MAAhBge,EAAUhe,GAA6B,MAAhBge,EAAUhe,IACxD6lB,EAAW,EAAE3H,EAAU7N,EAAI2N,EAAU3N,GAAK2N,EAAUhe,EAAGke,EAAU7N,GACjEyV,EAAS,CAAEzwI,GAAI6oI,EAAU7N,EAAI2N,EAAU3N,GAAK2N,EAAUhe,EAAGvoD,EAAGymE,EAAU7N,IAEtD,MAAhB6N,EAAUle,GAA6B,MAAhBge,EAAUhe,GAA6B,MAAhBge,EAAUhe,IACxD6lB,EAAW,CAAC3H,EAAU7N,EAAG2N,EAAUhe,EAAIke,EAAU7N,EAAI2N,EAAU3N,GAC/DyV,EAAS,CAAEzwI,EAAG6oI,EAAU7N,EAAG54D,EAAGumE,EAAUhe,EAAIke,EAAU7N,EAAI2N,EAAU3N,IAEpD,MAAhB2N,EAAUhe,GAA6B,MAAhBge,EAAUhe,GAA6B,MAAhBke,EAAUle,GAA6B,MAAhBke,EAAUle,EAAW,CAC1F,MAAM+lB,GAAM7H,EAAU7N,EAAI2N,EAAU3N,IAAM2N,EAAUhe,EAAIke,EAAUle,GAC5DgmB,EAAKhI,EAAUhe,EAAI+lB,EAAK/H,EAAU3N,EACxCwV,EAAW,CAACE,EAAIC,GAChBF,EAAS,CAAEzwI,EAAG0wI,EAAItuE,EAAGuuE,EACzB,CACA,MAAgB,UAAT/oJ,EAAmB4oJ,EAAWC,CACzC,EA7ESl/C,EA+EKC,QAAU,CAACo/C,EAAgBC,IAC9BzmG,KAAKsqE,KAAKtqE,KAAKuqE,IAAIi8B,EAAG5wI,EAAI6wI,EAAG7wI,EAAG,GAAKoqC,KAAKuqE,IAAIi8B,EAAGxuE,EAAIyuE,EAAGzuE,EAAG,IAhF7DmvB,EAmFKy7B,KAAO,CAACp7C,EAAWk/D,EAAYC,EAAY1mG,EAA0Bi+F,KAC3Ej+F,GACAunC,EAAIxnC,KAAKC,MAAMunC,GACfk/D,EAAK1mG,KAAKC,MAAMymG,GAChBC,EAAK3mG,KAAKC,MAAM0mG,IACTzI,IACHwI,GAAMC,GACND,GAAMxI,EACNyI,GAAMzI,IAENwI,GAAMxI,EACNyI,GAAMzI,IAGV12D,GAAKk/D,GAAMl/D,GAAKm/D,GAGbn/D,GAAKm/D,GAAMn/D,GAAKk/D,GApGlBv/C,EAqKKljG,IAAM,CAACuiJ,EAAgBC,IAC1BzmG,KAAKuqE,IAAIi8B,EAAG5wI,EAAI6wI,EAAG7wI,EAAG,GAAKoqC,KAAKuqE,IAAIi8B,EAAGxuE,EAAIyuE,EAAGzuE,EAAG,GAtKnDmvB,EAyKKy/C,SAAW,CAACC,EAAiBC,KAChC,CACHzY,IAAKruF,KAAK0gF,OAAS,OAAHomB,QAAG,IAAHA,OAAG,EAAHA,EAAK9uE,IAAO,OAAH6uE,QAAG,IAAHA,OAAG,EAAHA,EAAK7uE,IAAM,OAAH8uE,QAAG,IAAHA,OAAG,EAAHA,EAAKlxI,IAAO,OAAHixI,QAAG,IAAHA,OAAG,EAAHA,EAAKjxI,IAC/CmxI,IAAqD,IAA/C/mG,KAAK0gF,OAAS,OAAHomB,QAAG,IAAHA,OAAG,EAAHA,EAAK9uE,IAAO,OAAH6uE,QAAG,IAAHA,OAAG,EAAHA,EAAK7uE,IAAM,OAAH8uE,QAAG,IAAHA,OAAG,EAAHA,EAAKlxI,IAAO,OAAHixI,QAAG,IAAHA,OAAG,EAAHA,EAAKjxI,IAAYoqC,KAAKkrD,KA5KhE/D,EAgLK65B,eAAiB,CAACgmB,EAAYC,EAAYx1C,EAAYE,EAAYkxB,KAC5E,MAAMjH,EAAwB7+C,EAAAA,EAAa6+C,sBACrCr1B,EAAakL,EAAKu1C,EAAKprB,GAAyBnqB,EAAKu1C,GAAMprB,EAC3Dp1B,EAAemL,EAAKs1C,EAAKrrB,GAAyBjqB,EAAKs1C,GAAMrrB,EAGnE,OAAIr1B,GAAcC,GAAgBq8B,EACvBA,EAEHt8B,EACO,CAAEg6B,EAAG,IAAKqQ,EAAGoW,GAEpBxgD,EACO,CAAE+5B,EAAG,IAAKqQ,EAAGqW,GAGrB,CACH1mB,GAAI5uB,EAAKs1C,IAAOx1C,EAAKu1C,GACrBpW,EAAGj/B,EAAKF,IAAOE,EAAKs1C,IAAOx1C,EAAKu1C,IACnC,EAnMI7/C,EAsMKm4B,WAAc4nB,IAExB,MACMC,EADyBltI,MAAMK,KAAK,IAAI2rD,IAAIihF,EAAY7mJ,KAAKuV,GAAYA,EAAEuvC,WACrD9kD,KAAKuV,IAAC,CAAQuvC,OAAQvvC,EAAG4wD,MAAO0gF,EAAYxzI,QAAQskE,GAAMA,EAAE7yB,SAAWvvC,QAC7FwxI,EAA4B,GAQlC,GAPAD,EAAYryI,SAASuyI,IACbA,EAAS7gF,MAAM,GAAGs4D,QAClBsoB,EAAcnyJ,KAAKoyJ,EACvB,IAIAD,EAAch6I,OAAS,EAAG,CAgB1B,OAdqCg6I,EAAc/mJ,KAAKuV,IACpD,MAAMmmE,EAA4BnmE,EAAE4wD,MAAMnmE,KAAKuV,GAAYA,EAAE6gE,QAE7D,OADAsF,EAAO9mF,KAAK8mF,EAAO,IACZ,CACH5vE,KAAMg7F,EAAKh7F,KAAK4vE,GAChBA,SACAinD,aAAcjnD,EACdgnD,OAAQ,GACRukB,YAAangD,EAAKh7F,KAAK4vE,GACvBwrE,SAAUpgD,EAAKh7F,KAAK4vE,GACpB52B,OAAQvvC,EAAEuvC,OACV+lE,UAAWt1G,EAAE4wD,MAAM,GAAG0kD,UACzB,GAGT,CACA,MAAO,EAAE,EApOJ/jB,EAuOKh7F,KAAQq7I,IAClB,GAAIA,EAAQp6I,OAAS,EAAG,OACxB,IAAIm6I,EAAmB,EACnBrwB,EAAIswB,EAAQp6I,OAAS,EACzB,IAAK,IAAIuH,EAAI,EAAGA,EAAI6yI,EAAQp6I,OAAQuH,IAChC4yI,IAAuBC,EAAQtwB,GAAGthH,EAAI4xI,EAAQ7yI,GAAGiB,IAAM4xI,EAAQtwB,GAAGl/C,EAAIwvE,EAAQ7yI,GAAGqjE,GACjFk/C,EAAIviH,EAGR,OADA4yI,GAAsB,EACfvnG,KAAK+hF,IAAIp1F,SAAS46G,EAASvjG,QAAQ,IAAI,EAhPzCmjD,EAmPKm5B,sBAAwB,CAACmnB,EAA2BC,KAC9D,IAAIC,EAAiC,kBAAbF,EAAwBA,EAAW,EACvDG,EAAiC,kBAAbF,EAAwBA,EAAW,EAE1C,MAAbD,IAAkBE,EAAK,GACV,MAAbD,IAAkBE,EAAK,GAEV,MAAbH,IAAkBE,EAAK,KACV,MAAbD,IAAkBE,EAAK,KAG3B,OAAQ,IADS5nG,KAAK6nG,KAAK7nG,KAAK+hF,KAAK6lB,EAAKD,IAAO,EAAIA,EAAKC,MAC/B,EAAI5nG,KAAKkrD,GAAG,EA9PlC/D,EAiQK2gD,UAAY,CAACC,EAAkB5tI,IAClC4tI,EAAKpmJ,OAAOwY,GAAMzG,QAAQqqC,KAAUgqG,EAAKjgH,SAASiW,IAAQ5jC,EAAK2tB,SAASiW,MAlQ1EopD,EAqQK6gD,iBAAmB,WAAmD,IAAlDD,EAAgBnzI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAIuF,EAAgBvF,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACpE+7C,EAAQ,EACZ,IAAK,IAAIuvE,EAAI,EAAGA,EAAI6nB,EAAK36I,OAAS,EAAG8yH,IACjC,IAAK,IAAIj2F,EAAI,EAAGA,EAAI9vB,EAAK/M,OAAS,EAAG68B,KAC7B81F,EAAAA,EAAAA,GAAgBgoB,EAAK7nB,GAAI/lH,EAAK8vB,KAC9B0mB,IAIZ,IAAIs3F,EAAUF,EAAK36I,OAAS,EAE5B,OADI66I,EAAU9tI,EAAK/M,OAAS,IAAG66I,EAAU9tI,EAAK/M,QACvC66I,EAAUt3F,CACrB,EAjRSw2C,EAoRK+gD,UAAY,SACtBzgJ,EACAggG,EACAhnG,EACAN,EACAgoJ,GAEE,IADFC,EAAoBxzI,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAExB,GAAkB,oBAAP6yF,EAAoB,CAC3B,MAAMmG,EAAOq4C,EAAEtwE,SAASuwE,gBAAgB,6BAA8B,SACtEt4C,EAAKuP,KAAK,KAAMh9G,GAChBytG,EAAKuP,KAAK,IAAK1V,EAAI7xF,GACnBg4F,EAAKuP,KAAK,IAAK1V,EAAIzvB,GACnB41B,EAAKuP,KACD,QACA,QACA18G,EAAOxB,MACP,gBACAwB,EAAOQ,WACP,cACAR,EAAOK,SACP,gBACAL,EAAOC,WACP,iBACC2H,QAAQ5H,EAAOy3E,YAAcz3E,EAAOy3E,WAAa,WAEtD01B,EAAKuP,KAAK,cAAe,UACzB,IAAK,IAAI+iB,KAAKkoB,EACVx6C,EAAKuP,KAAK+iB,EAAGkoB,EAAgBloB,IAEjCtyB,EAAKA,KAAKnmG,GACV0gJ,EAAIhrG,OAAOywD,EACf,CACJ,EArTSzG,EAuTKuyC,gBAAkB,CAAClyD,EAAWk/D,EAAYC,IAChDn/D,EAAIk/D,GAAMl/D,EAAIm/D,GAGXn/D,EAAIm/D,GAAMn/D,EAAIk/D,EA3ThBv/C,EA8TKmF,OAAS,CAAC+7C,EAAYC,EAAYC,EAAYC,KACxD,MAAM/2C,EAAK9kE,SAAS07G,EAAG9lJ,YACjBovG,EAAKhlE,SAAS27G,EAAG/lJ,YACjBmvG,EAAK/kE,SAAS47G,EAAGhmJ,YACjBqvG,EAAKjlE,SAAS67G,EAAGjmJ,YAGvB,MAAO,CAAEqT,EAFOoqC,KAAK+hF,IAAItwB,EAAKC,GAAM,EAEf15B,EADLh4B,KAAK+hF,IAAIpwB,EAAKC,GAAM,EACH,EArU5BzK,EAwUKykC,SAAW,CAAC55B,EAAYC,EAAYw2C,EAAYC,KAC1D,MAAMrpE,EAAKqpE,EAAKz2C,EACVkhC,EAAKsV,EAAKz2C,EAChB,IAAI22C,EAAQ3oG,KAAK0gF,MAAMrhD,EAAI8zD,GAG3B,OAFAwV,GAAS,IAAM3oG,KAAKkrD,GAChBy9C,EAAQ,IAAGA,EAAQ,IAAMA,GACtBA,CAAK,EA9UPxhD,EAiVKiiC,cAAiBzoD,GAA2B,IAARA,EAAe3gC,KAAKkrD,GAjV7D/D,EAmVKyhD,SAAW,CAACC,EAAkBtoG,KACjC,CAAE3qC,EAAG2qC,EAAK3qC,EAAIizI,EAAKjzI,EAAGoiE,EAAGz3B,EAAKy3B,EAAI6wE,EAAK7wE,IApVzCmvB,EAuVK2hD,YAAc,CAACC,EAAgBC,IAClCD,EAAGnzI,EAAIozI,EAAGhxE,EAAI+wE,EAAG/wE,EAAIgxE,EAAGpzI,EAxV1BuxF,EA2VK68B,WAAa,SAAChqC,GAAyE,IAAtDf,EAA0BrkF,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAAIkiE,EAAeliE,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAEvF6a,EAAIokF,EAAMpkF,EACVoiE,EAAIgiB,EAAMhiB,EACV+qD,GAAS,EAETjsD,IACAmiB,EAAUriB,EAAAA,EAAWq3D,eAAeh1C,EAASisB,EAAAA,EAAU6/B,uBAG3D,IAAK,IAAIpwI,EAAI,EAAGuiH,EAAIj+B,EAAQ7rF,OAAS,EAAGuH,EAAIskF,EAAQ7rF,OAAQ8pH,EAAIviH,IAAK,CACjE,IAAIs0I,EAAKhwD,EAAQtkF,GAAGiB,EAChBszI,EAAKjwD,EAAQtkF,GAAGqjE,EAChBmxE,EAAKlwD,EAAQi+B,GAAGthH,EAChBwzI,EAAKnwD,EAAQi+B,GAAGl/C,EAEFkxE,EAAKlxE,IAAMoxE,EAAKpxE,GAAKpiE,GAAMuzI,EAAKF,IAAOjxE,EAAIkxE,IAAQE,EAAKF,GAAMD,IAE5ElmB,GAAUA,EAElB,CACA,OAAOA,CACX,4GCvYG,MAAMsmB,EAAe17F,GAAoBA,EAAE+6C,kECQ3C,MAAMF,EAAwCjyG,IAQ9C,IAR+C,MAClDgP,EAAK,SACLO,EAAQ,QACRW,EAAO,eACP6iJ,GAAiB,EAAK,mBACtBhzC,GAAqB,EAAI,WACzBizC,EAAU,SACVltJ,GACH9F,EACG,MAAM49C,GAAUq1G,EAAAA,EAAAA,GAAc,6BAC9B,OACI31J,EAAAA,EAAAA,KAACyxF,EAAAA,EAAM,CACH3/E,MAAI,EACJ4jJ,WAAYA,EACZ9iJ,QAAS6vG,IAAuBgzC,EAAiB7iJ,OAAU1L,EAC3DwqF,WAAY,CAAEtxF,MAAOkgD,EAAUs1G,EAAcC,GAC7C71C,cAAe,CAAE5/G,MAAO,CAAEC,WAAY,uBAAyBmI,UAC/DyD,EAAAA,EAAAA,MAACyE,EAAO,CDtBZW,QAASmkJ,EACTM,cAAeN,EACfO,YAAaP,EACbvgD,WAAYugD,EACZQ,YAAaR,ECkBoBhtJ,SAAA,EACzByD,EAAAA,EAAAA,MAACmO,EAAAA,EAAK,CAAA5R,SAAA,EACFxI,EAAAA,EAAAA,KAACkZ,EAAK,CAAA1Q,SAAEkJ,KACR1R,EAAAA,EAAAA,KAACi2J,EAAQ,CAAAztJ,SAAEyJ,KACTwjJ,IACEz1J,EAAAA,EAAAA,KAAC4xF,EAAW,CAACvgF,QAASuB,EAASxS,MAAO,CAAE+Z,IAAK,GAAID,MAAO,IAAK1R,UACzDxI,EAAAA,EAAAA,KAACg4F,EAAS,SAIrBxvF,MAEA,EAGXqtJ,EAAuB,CACzBlhE,aAAc,EACd36E,SAAU,WACV3Z,WAAY,UACZga,SAAU,KAERu7I,EAA6B,CAC/B3yE,OAAQ,WACR5oE,SAAU,OACVL,SAAU,WACVi7E,OAAQ,GAGNvkF,GAAU9D,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC1BoN,SAAU,WACV9M,QAAS,sBACT,CAAC,sBAADY,OAAuBC,EAAAA,GAAamoJ,UAAS,QAAQ,CAAEhpJ,QAAS,MAG9DgM,GAAQtM,EAAAA,EAAAA,GAAOkN,EAAAA,GAAPlN,CAAsB,CAAEK,SAAU,GAAIyN,WAAY,OAAQtP,MAAO,YACzE6qJ,GAAWrpJ,EAAAA,EAAAA,GAAOupJ,EAAAA,GAAPvpJ,CAAoB,CAAEiN,UAAW,GAAI5M,SAAU,GAAIyN,WAAY,OAAQvN,WAAY,iBAE9FykF,GAAchlF,EAAAA,EAAAA,GAAOgE,EAAAA,EAAPhE,CAAmB,CAAEoN,SAAU,aAC7Cg+E,EAAYA,KAEV/rF,EAAAA,EAAAA,MAAA,OAAKoB,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,QAAO57E,SAAA,EACxDxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,kTACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,oaCxEb,MAAM4L,EAAc3zF,IAA8D,IAA7D,MAAEtC,EAAK,MAAE6G,EAAQ,MAAOvD,GAA+BhB,EAC/E,MAAMsH,EAAU8C,EAAAA,EAASspJ,qBACzB,OACIp2J,EAAAA,EAAAA,KAACyzF,EAAK,CACF9pF,KAAK,SACL2sF,YAAavkF,EAAAA,GAAKC,IAAI,2BACtBqkJ,WAAY,CACRC,kBAAkB,EAClBC,cACIv2J,EAAAA,EAAAA,KAACw2J,EAAI,CAAAhuJ,UACDxI,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,yBAIxBrF,MAAOA,EACPwvJ,WAAY,CAAEplF,IAAK,EAAGjxE,MAAO,CAAE8M,QAAS,IACxCjD,UAAWD,EAAQyL,SACf/R,EACJtD,MAAO,CACHggH,UAAW18G,EAAM/B,MAAQ,2BAA6B,iCACnDvB,IAET,EAGJqzF,GAAQ7mF,EAAAA,EAAAA,GAAO8pJ,EAAAA,EAAP9pJ,CAAkB,CAC5BvM,WAAY,UACZwP,OAAQ,GACRgK,UAAW,GACX3M,QAAS,sBACTE,WAAY,IACZH,SAAU,GACVyN,WAAY,SAEV87I,GAAO5pJ,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEQ,WAAY,IAAKH,SAAU,GAAIyN,WAAY,OAAQtP,MAAO,4KCOnFurJ,EAA8B/1J,EAAAA,YAAiB,SAAwB8C,EAAOuE,GAChF,IAAIO,EAAW9E,EAAM8E,SACjBwB,EAAUtG,EAAMsG,QAChBC,EAAYvG,EAAMuG,UAClBC,EAAmBxG,EAAMyG,UACzBrG,OAAiC,IAArBoG,EAA8B,MAAQA,EAClD0sJ,EAAwBlzJ,EAAMmzJ,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClEE,EAAwBpzJ,EAAMqzJ,kBAC9BA,OAA8C,IAA1BD,GAA2CA,EAC/D98I,EAAWtW,EAAMsW,SACjBg9I,EAActzJ,EAAMsH,QACpBR,GAAQC,EAAAA,EAAAA,GAAyB/G,EAAO,CAAC,WAAY,UAAW,YAAa,YAAa,uBAAwB,oBAAqB,WAAY,YAEnJuzJ,GAAiBC,EAAAA,EAAAA,MAAoB,CAAC,EACtClsJ,EAAUgsJ,EAcd,OAZIA,GAAeC,EAAejsJ,QAQ9BisJ,IAAmBjsJ,IACrBA,EAAUisJ,EAAejsJ,SAGPpK,EAAAA,cAAoBu2J,EAAAA,EAAmBl6I,SAAU,CACnEhW,MAAO,MACOrG,EAAAA,cAAoBkD,GAAWiC,EAAAA,EAAAA,GAAS,CACtDkE,WAAWW,EAAAA,EAAAA,SAAKZ,EAAQa,KAAMZ,EAAwB,QAAb+P,EAAqBhQ,EAAQotJ,YAAcptJ,EAAQqtJ,cAAeR,GAAwB7sJ,EAAQ6sJ,qBAAsBI,EAAeK,aAAettJ,EAAQstJ,YAAyB,WAAZtsJ,GAAwBhB,EAAQutJ,OAAkC,UAA1BN,EAAeh0E,QAAsBj5E,EAAQwtJ,aACzSvvJ,IAAKA,GACJuC,GAA4B,kBAAbhC,GAA0BuuJ,EAE7BvuJ,EAF8D5H,EAAAA,cAAoB62J,EAAAA,EAAY,CAC3GrsJ,MAAO,iBACN5C,IACL,IAsDA,SAAe0C,EAAAA,EAAAA,GAlIK,CAElBL,KAAM,CACJQ,QAAS,OACTwE,OAAQ,SAER6nJ,UAAW,MACXznJ,WAAY,SACZ9C,WAAY,UAIdoqJ,OAAQ,CACN,oCAAqC,CACnC19I,UAAW,KAKfw9I,cAAe,CACbxpJ,YAAa,GAIfupJ,YAAa,CACXxpJ,WAAY,GAIdipJ,qBAAsB,CACpBphE,cAAe,QAIjB6hE,YAAa,CAAC,EAGdE,YAAa,CAAC,GA6FkB,CAChCv1J,KAAM,qBADR,CAEG00J,wCCvHI,MAAMgB,EAAWj1J,IAA8F,IAADk1J,EAAAC,EAAAC,EAAA,IAA5F,MAAE7wJ,EAAQ,GAAE,OAAEoR,EAAS,GAAE,cAAEg6E,EAAa,OAAE9gF,EAAM,QAAEkuC,KAAY/7C,GAAyBhB,EAC5G,MAAQq1J,aAAcjmJ,EAAI,eAAEkmJ,EAAc,OAAE1jJ,EAAM,gBAAE2jJ,GAAoBC,IAElEC,EAAUv3J,EAAAA,SACVw3J,EAAW5jJ,QAAQ6D,EAAOkB,QAE1B8+I,EAAkBl2G,IAAoC,OAANA,QAAM,IAANA,OAAM,EAANA,EAAQl7C,SAAe,OAANk7C,QAAM,IAANA,OAAM,EAANA,EAAQvuC,aAAS1M,EAClFoxJ,EAAgBA,IACd,CAAe,OAAdN,QAAc,IAAdA,OAAc,EAAdA,EAAgB/wJ,MAAqB,OAAd+wJ,QAAc,IAAdA,OAAc,EAAdA,EAAgBpkJ,OAAOqgC,SAAShtC,GACjDoxJ,EAAeL,GAEnB/wJ,EAGLsxJ,EAAaD,IACbE,GAAkE,QAApDZ,EAAAv/I,EAAO02C,MAAMhtC,GAAMs2I,EAAet2I,KAAOw2I,WAAW,IAAAX,OAAA,EAApDA,EAAsDhkJ,QAAS2kJ,EAEnF33J,EAAAA,WAAgB,KACZ,MAEMo3J,EAFmB3/I,EAAO7L,IAAI6rJ,GAAgBpkH,SAAShtC,GAIvDoR,EAAO02C,MAAMhtC,GAAMs2I,EAAet2I,KAAOu2I,WADzCpxJ,EAGNoN,EAAO,CAAEyjJ,cAAc,EAAOC,kBAAiB,GAEhD,CAAC/wJ,IAEJ,MAAMwxJ,EAAkBA,IAAMR,GAAiBnmJ,GAiB/C,OACI7F,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAAC04J,EAAQ,CACLjkD,SAAU0jD,EACVQ,QANIA,IAAMV,KAAiBG,GAAYtmJ,IAAe0C,QAAQ1C,IAO9D8mJ,gBAAiB,CAAEC,QAAQ,KAASn1J,EAAMk1J,iBAC1CvC,WACI,CACIC,kBAAkB,EAClBC,cAAcv2J,EAAAA,EAAAA,KAAC84J,EAAY,CAAC1rB,GAAIt7H,EAAMT,QAASonJ,IAC/CM,UAAU,MAGdr1J,EACJtD,MAAO44J,EAAiB,CACpBZ,WACAa,SAAUzkJ,QAAQvN,GAClBiyJ,kBAAmB1kJ,QAAQwjJ,MAClB,OAANzmJ,QAAM,IAANA,OAAM,EAANA,EAAQ1G,OAEf5D,MAAOuxJ,GAAe,GACtB3lE,SAAW/4B,GAxBI7yD,IAA+B,OAAborF,QAAa,IAAbA,OAAa,EAAbA,EAAgBprF,GAwBhCkyJ,CAAkBr/F,EAAEj5C,OAAO5Z,OAE5CoK,QAAS3N,EAAMsN,cAAW9J,EAtCTkyJ,KACrB/gJ,EAAOkB,QACP0+I,GAAiBnmJ,EACrB,EAoCQ2kJ,WAAY,CAAE4C,UAAW,GAAIj5J,MAAOk5J,EAAc,CAAElB,WAAUpnJ,SAAUtN,EAAMsN,eAElFhR,EAAAA,EAAAA,KAACqzF,EAAAA,EAAI,CACDiE,SAAU6gE,EAAQ5vJ,QAClBuJ,KAAM0C,QAAQ6D,EAAOkB,QAAUzH,GAC/Bc,QAAS6lJ,EACT/mE,WAAY,CAAEtxF,MAAO,IAAKm5J,EAAgBlsJ,MAAsB,QAAjBwqJ,EAAEM,EAAQ5vJ,eAAO,IAAAsvJ,GAAe,QAAfC,EAAfD,EAAiB2B,qBAAa,IAAA1B,OAAf,EAAfA,EAAgC2B,cACjFC,cAAe,CAAEt5J,MAAOu5J,GAAgBnxJ,SACvC6P,EAAO7L,KAAI,CAAC21C,EAAQlB,KACjB,MAAM24G,EAAmBz3G,EAAOl7C,OAAUk7C,EAAOvuC,MACjD,OACI3H,EAAAA,EAAAA,MAACmO,EAAAA,EAAK,CAAA5R,SAAA,EACFxI,EAAAA,EAAAA,KAAC2+G,EAAY,CAACttG,QAAUyoD,GA7Cfk+F,KAC7B,MAAM/wJ,EAAQoxJ,EAAeL,GAC7B1jJ,EAAO,CAAE0jJ,iBAAgBD,cAAejmJ,IAC3B,OAAbugF,QAAa,IAAbA,GAAAA,EAAgBprF,EAAM,EA0C4B4yJ,CAAwB13G,GAAQ35C,SAAE25C,EAAOvuC,QACtEqtC,EAAQ5oC,EAAOkB,SAAUvZ,EAAAA,EAAAA,KAAC85J,EAAgB,MAFnCF,EAGJ,QAIrB,EAIExnE,EAAcxxF,EAAAA,KAAW+2J,GAEhCO,EAAmBA,KAErB,MAAO12J,EAAOuF,GAAYnG,EAAAA,SAA8B,CAAC,GAEnD0T,EAAUylJ,GAAmChzJ,GAAUkyE,IAAI,IAAWA,KAAS8gF,MAErF,MAAO,IAAKv4J,EAAO8S,SAAQ2jJ,gBADFF,GAA0BzjJ,EAAO,CAAEyjJ,iBAChB,EAK1CW,GAAW9rJ,EAAAA,EAAAA,GAAO8pJ,EAAAA,EAAP9pJ,CAAkB,CAAEsD,OAAQ,oBAAqBykF,aAAc,EAAG95E,OAAQ,YAGrFm+I,EAAmB/qJ,IAAmF,IAAlF,SAAEmqJ,EAAQ,kBAAEc,EAAiB,SAAED,KAAat7C,GAAiB1vG,EAC/E7N,EAA6B,CAAC,EAIlC,OAHI84J,GAAqBD,KACrB74J,EAAQ,IAAKA,EAAO8P,OAAQ,sBAEzB,IAAK9P,KAAUu9G,EAAM,EAE1B27C,EAAgB39I,IAAgE,IAA/D,SAAEy8I,EAAQ,SAAEpnJ,KAAa2sG,GAAiBhiG,EAC7D,MAAO,CACHzO,QAAS,WACT2C,OAAQ,GACRzE,MAAO,UACPyP,OAAQ7J,EAAW,cAAgB,aAChC2sG,EACN,EAGC47C,EAAgC,CAAE5kE,aAAc,EAAGt0F,WAAY,WAC/Ds5J,EAA+B,CAAEzsJ,QAAS,GAE1CyxG,GAAe/xG,EAAAA,EAAAA,GAAOotJ,EAAAA,EAAPptJ,CAAiB,CAClCS,MAAO,OACPjC,MAAO,UACPyE,OAAQ,GACRzC,WAAY,IACZH,SAAU,GACV0nF,aAAc,EACd,UAAW,CAAEt0F,WAAY,UAAW+K,MAAO,UAAWgC,WAAY,OAGhE0sJ,GAAmBltJ,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEW,aAAc,oBAAqB01E,OAAQ,YAG9E61E,EAAgBp1J,IAEd1D,EAAAA,EAAAA,KAAC22J,EAAc,CAAC38I,SAAS,MAAKxR,UAC1BxI,EAAAA,EAAAA,KAACi6J,EAAa,IAAKv2J,MAIzBu2J,EAAgBh0F,IAAgC,IAA/B,GAAEmnE,GAAuBnnE,EAC5C,MAAM7lE,EAAuB,CACzBiN,MAAO,GACPwN,OAAQ,UACR67D,UAAU,UAAD5oE,OAAYs/H,EAAK,IAAM,EAAC,QACjC8sB,WAAY,oDACZrsJ,YAAa,IAEjB,OACI7N,EAAAA,EAAAA,KAAA,OAAKqN,MAAM,KAAKwC,OAAO,IAAI6zE,QAAQ,WAAWU,KAAK,UAAUhkF,MAAOA,EAAMoI,UACtExI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,gjBACN,yGC7JP,IAAK0vE,EAAW,SAAXA,GAAW,OAAXA,EAAW,gBAAXA,EAAW,qBAAXA,EAAW,iCAAXA,CAAW,MAkDhB,MAAMC,GAwLZC,EAxLYD,EAAAA,EAEFE,eAAkBpmG,IACrBqmG,IAAAA,UAAqB,CACjBC,UAAW,CACPC,gBAAiBL,EAAIM,cAAcxmG,GACnCymG,YAAaP,EAAIQ,gBAAgB1mG,KAEvC,EARGkmG,EAWFS,oBAAuBC,IAC1B,MAAMN,EAAoC,CAAC,EACvCM,IACAN,EAAqB,UAAIM,GAEzBl2J,OAAO8a,KAAK86I,GAAWjhJ,QACvBghJ,IAAAA,UAAqB,CAAEC,aAC3B,EAlBKJ,EAqBFW,UAAaC,IAChBT,IAAAA,UAAqB,CACjBC,UAAW,CACPlhE,MAAO,QACP2hE,cAAe,kBACfD,YAAaA,IAEnB,EA5BGZ,EAgCFc,iBAAmB,IAAMd,EAAIW,UAAU,aAhCrCX,EAmCFe,6BAA+B,IAAMf,EAAIW,UAAU,8BAnCjDX,EAoCFgB,sBAAwB,IAAMhB,EAAIW,UAAU,uBApC1CX,EAuCFiB,oBAAsB,IAAMjB,EAAIW,UAAU,gCAvCxCX,EAwCFkB,6BAA+B,IAAMlB,EAAIW,UAAU,yCAxCjDX,EA4CFmB,oBAAsB,IAAMnB,EAAIW,UAAU,wBA5CxCX,EA8CFoB,qBAAuB,IAAMpB,EAAIW,UAAU,0BA9CzCX,EAgDFqB,qBAAuB,IAAMrB,EAAIW,UAAU,sBAhDzCX,EAkDFsB,qBAAuB,IAAMtB,EAAIW,UAAU,yBAlDzCX,EAqDFuB,iBAAmB,IAAMvB,EAAIW,UAAU,eArDrCX,EAsDFwB,wBAA0B,IAAMxB,EAAIW,UAAU,qBAtD5CX,EAwDFyB,6BAA+Bn5J,IAQD,IARE,UACnCqO,EAAS,aACT+qJ,EAAY,oBACZC,EAAmB,iBACnBC,EAAgB,SAChBj/G,EAAQ,MACRk/G,EAAK,MACLC,GAC2Bx5J,EACvB83J,EAAY,CACZlhE,MAAO,QACP2hE,cAAe,kBACfkB,WAAYprJ,EACZiqJ,YAAac,EAAe,wBAAuB,cACnD/+G,WACAm/G,QACAD,SAEAF,IACAvB,EAAY,IAAKA,EAAWQ,YAAa,4BAEzCgB,IACAxB,EAAY,IAAKA,EAAWQ,YAAa,mBAE7CT,IAAAA,UAAqB,CAAEC,aAAY,EAhF9BJ,EAmFFgC,kBAAoBnuJ,IAQN,IARO,KACxBg1F,EAAI,QACJrmD,EAAU,CAAC,EAAC,WACZy/G,EAAU,WACVC,EAAU,SACVzhF,EAAQ,QACR7yB,KACG21D,GACQ1vG,EACX,MAAMslC,EAAmCgpH,EAAAA,EACnC1zG,EAAiCjM,EAAQiM,aAAe,CAAC,EAE/D0xG,IAAAA,UAAqB,CACjBC,UAAW,CACPlhE,MAAO,mBACPkjE,sBAAuBpC,EAAI18G,SAASnK,EAAS,GAADzlC,OAAKm1F,EAAI,UACrDw5D,uBAAwBrC,EAAI18G,SAASnK,EAAS,GAADzlC,OAAKm1F,EAAI,WAEtDy5D,sBAAuB10G,EACvB20G,4BAA6BvC,EAAI18G,SAC7BmL,EACAuxG,EAAI18G,SAASnK,EAAU,gCAE3BqpH,4BAA6BxC,EAAI18G,SAC7BmL,EACAuxG,EAAI18G,SAASnK,EAAU,gCAE3BspH,qBAAsBzC,EAAI18G,SAASmL,EAAauxG,EAAI18G,SAASnK,EAAU,yBACvEupH,gBAAiB1C,EAAI18G,SAASmL,EAAauxG,EAAI18G,SAASnK,EAAU,oBAClEwpH,yBAA0B,GAC1BC,gBAA2B,OAAVX,QAAU,IAAVA,OAAU,EAAVA,EAAYY,UAC7BC,kBAA6B,OAAVb,QAAU,IAAVA,OAAU,EAAVA,EAAYrlC,UAC/BmmC,WAAsB,OAAVd,QAAU,IAAVA,OAAU,EAAVA,EAAY/oG,MACxB8pG,iBAAkBd,EAClBe,UAAWxiF,KACR8iC,IAET,EAxHGy8C,EA4HFkD,oBAAsB3hJ,IAAqE,IAApE,SAAEk/D,EAAQ,WAAEyhF,EAAU,SAAEiB,EAAQ,UAAEC,GAA4B7hJ,EACxF4+I,IAAAA,UAAqB,CACjBC,UAAW,CACPlhE,MAAO,mBACPkjE,sBAAuB,yBACvBC,uBAAwB,wBACxBY,UAAWxiF,EACX8E,YAAa28E,EACbiB,WACAC,cAEN,EAvIGpD,EA0IFqD,eAAkBnqG,IAA4C,IAADC,EAChE,MAAMgqG,EASkC,QAT1BhqG,EACL,OAALD,QAAK,IAALA,OAAK,EAALA,EAAO3wC,QAAO,CAAC46I,EAAUt6F,KAAU,IAADolB,EAAAC,EAC9B,MAAMvqC,EAAoC,QAAhCsqC,EAAGplB,EAAKtP,gCAAwB,IAAA00B,GAAc,QAAdC,EAA7BD,EAA+BriC,oBAAY,IAAAsiC,OAAd,EAA7BA,EAA6CvqC,KAEhC,IAADwqC,EADrBxqC,IACKw/G,EAASx/G,KACVw/G,EAASx/G,GAAqC,QAAhCwqC,EAAGtlB,EAAKtP,gCAAwB,IAAA40B,OAAA,EAA7BA,EAA+BviC,eAGxD,OAAOu3G,CAAQ,GAChB,CAAC,UAAgC,IAAAhqG,EAAAA,EAAI,CAAC,EAC7C,OAAO3uD,OAAO8a,KAAK69I,GAAU/wJ,KAAKuxC,IAAI,CAClC2/G,QAASH,EAASx/G,GAAMyhC,QACxBm+E,WAAYJ,EAASx/G,GAAMA,KAC3B6/G,qBACIL,EAASx/G,GAAM2S,cAAcmtG,eAAeC,gBAAgBC,qBAAqBv+E,QACrFw+E,gBAAiBT,EAASx/G,GAAM2S,cAAcmtG,eAAeC,gBAAgBt+E,WAC9E,EA3JE46E,EAgKM18G,SAAW,CAACnK,EAAkCpzB,KAC1C,OAARozB,QAAQ,IAARA,OAAQ,EAARA,EAAWpzB,KAAQ,GAjKrBi6I,EAoKMM,cAAiBxmG,IAC5B,GAAIA,EACA,OAAQA,GACJ,KAAKtqD,EAAAA,EAAYyR,SACb,MAAO,SACX,KAAKzR,EAAAA,EAAYuqD,WACb,MAAO,MACX,KAAKvqD,EAAAA,EAAYE,iBACjB,KAAKF,EAAAA,EAAYC,cACb,MAAO,KAGnB,MAAO,QAAQ,EAhLVuwJ,EAmLMQ,gBAAmB1mG,GACvBA,EAAW,SAAW,4DC5P9B,MAAMqoG,EAAW,CAEpBI,4BAA6B,eAC7BC,4BAA6B,gBAC7BC,qBAAsB,oBACtBC,gBAAiB,kBAGjBmB,qBAAsB,2CACtBC,sBAAuB,0CACvBC,mBAAoB,8CACpBC,oBAAqB,6CACrBC,cAAe,sCACfC,UAAW,+BACXC,WAAY,8BAEZC,cAAe,2BACfC,eAAgB,0BAChBC,iBAAkB,kCAClBC,kBAAmB,iCACnBC,qBAAsB,kCACtBC,sBAAuB,iCACvBC,mBAAoB,gCACpBC,oBAAqB,+BAGrBC,kBAAmB,+BACnBC,mBAAoB,8BAEpBC,mBAAoB,sCACpB1tH,oBAAqB,+GCzBlB,MAAM2tH,EACT,kBAAcC,GAAqC,IAADC,EAAA38J,EAAAuL,EAAAqxJ,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC9C,MAAMrrH,GAA+C,QAAxB+qH,EAAAxpH,EAAAA,EAAct5B,kBAAU,IAAA8iJ,OAAA,EAAxBA,EAA0B/qH,KAAM,CAAC,EAExDsrH,EAGkC,QAHxBl9J,EAE2B,QAF3BuL,EACmB,QADnBqxJ,EACL,QADKC,EACZjrH,EAAG5qC,YAAI,IAAA61J,OAAA,EAAPA,EAAS5qG,8BAAsB,IAAA2qG,EAAAA,EACxB,QADwBE,EAC/BlrH,EAAG5qC,YAAI,IAAA81J,OAAA,EAAPA,EAASK,sCAA8B,IAAA5xJ,EAAAA,EAChC,QADgCwxJ,EACvCnrH,EAAG5qC,YAAI,IAAA+1J,OAAA,EAAPA,EAASK,mCAA2B,IAAAp9J,EAAAA,EAC7B,QAD6Bg9J,EACpCprH,EAAG5qC,YAAI,IAAAg2J,OAAA,EAAPA,EAAShrG,oBAEb,MAAO,CAAEqrG,GAAc,OAAVH,QAAU,IAAVA,OAAU,EAAVA,EAAYtzJ,GAAI0zJ,KAAMb,EAAiBc,OAAS,OAAF3rH,QAAE,IAAFA,GAAQ,QAANqrH,EAAFrrH,EAAI5qC,YAAI,IAAAi2J,OAAN,EAAFA,EAAUh2J,MACzE,EAXSw1J,EAaKc,OAAUt2J,IACpB,OAAQA,GACJ,IAAK,WACD,MAAO,WACX,IAAK,aACD,MAAO,aACX,IAAK,mBACL,IAAK,gBACD,MAAO,iBAEC,yDCtBjB,MAAMu2J,EAKT,4BAAeC,GACX,MAAM9yJ,EAAQ8+C,KAAKqlB,IAAIsQ,SAASs+E,gBAAgBC,YAAatjJ,OAAOujJ,YAAc,GAC5EzwJ,EAASs8C,KAAKqlB,IAAIsQ,SAASs+E,gBAAgBG,aAAcxjJ,OAAOyjJ,aAAe,GAErF,MAAM,IAAN1yJ,OAAWT,EAAK,KAAAS,OAAI+B,EAAM,IAC9B,CAEA,0BAAe4wJ,GACX,MAAMpzJ,EAAQ8+C,KAAKqlB,IAAIz0D,OAAO2jJ,OAAOrzJ,MAAO0P,OAAO2jJ,OAAOC,YAAc,GAClE9wJ,EAASs8C,KAAKqlB,IAAIz0D,OAAO2jJ,OAAO7wJ,OAAQkN,OAAO2jJ,OAAOE,aAAe,GAE3E,MAAM,IAAN9yJ,OAAWT,EAAK,KAAAS,OAAI+B,EAAM,IAC9B,CAEA,kBAAegxJ,GACX,IAAIC,EAA0B9kH,aAAan4B,QAAQq8I,EAAmBa,eAMtE,OALKD,IACDA,EAAWE,MACXhlH,aAAah5B,QAAQk9I,EAAmBa,cAAeD,IAGpDA,CACX,CAEA,iCAAcG,GAAsD,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC/D,MAAMC,EAAUtB,EAAmBuB,OAAOC,aACpCC,EAAKzB,EAAmBuB,OAAOG,QAGrC,MAAO,CACHC,SAHqB3B,EAAmBW,cAIxCiB,YAAa,MACbC,eAA4B,QAAdb,EAAEM,EAAQv/J,YAAI,IAAAi/J,EAAAA,EAAI,YAChCc,MAAmB,QAAdb,EAAEK,EAAQv/J,YAAI,IAAAk/J,EAAAA,EAAI,YACvBc,QAAS,CACLC,KAAMhC,EAAmBC,wBACzBgC,WAAYjC,EAAmBO,uBAEnC2B,QAAS,CACLtqE,KAAkB,QAAdspE,EAAEI,EAAQv/J,YAAI,IAAAm/J,EAAAA,EAAI,YACtBiB,QAAwB,QAAjBhB,EAAEG,EAAQtzJ,eAAO,IAAAmzJ,EAAAA,EAAI,aAEhCiB,GAAI,CACAxqE,KAAa,QAATwpE,EAAEK,EAAG1/J,YAAI,IAAAq/J,EAAAA,EAAI,YACjBe,QAAmB,QAAZd,EAAEI,EAAGzzJ,eAAO,IAAAqzJ,EAAAA,EAAI,aAGnC,EApDSrB,EACMa,cAAwBltH,EAAAA,EAAUqD,sBADxCgpH,EAGMuB,OAAS,IAAIc,oBCCzB,MAAM5mH,EAET,iBAAcu9B,GACV7+B,EAAAA,EAAemoH,SAAS,QAExBnoH,EAAAA,EAAeooH,OAAOC,cAAgB,IAAM,KAAe,EAE3DroH,EAAAA,EAAesoH,OAAO1iJ,MAAMo6B,EAAAA,EAAeooH,OAAQ,CAC/ClnH,IAAK1H,EAAAA,EAAUoE,KAAKC,iBAEpB0qH,QAAS,CACL,eAAgB,mBAChB,cAAgB,UAAD90J,OAAY+lC,EAAAA,EAAUoE,KAAKG,SAI9CxhC,OAAQlU,IAAA,IAAC,QAAEZ,GAAcY,EAAA,SAAAoL,OAAQhM,EAAO,OACxC+gK,SAAU,GACVpoH,MAAO,OACPqoH,SAAU,KAElB,CAEA,WAAclnH,GAA0C,IAADmnH,EAAA,IAApCr/J,EAAuBqd,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC1C,MAAMjf,EAAU,CACZkhK,OAAQ,IACDt/J,EACHu/J,WAAYpvH,EAAAA,EAAU6D,eACtBwrH,SAAU/D,EAAiBC,cAC3B+D,OAAQjD,EAAmBe,8BAE/BtkH,WAAW,IAAIr/B,MAAO8lJ,cACtB1nH,SAAwB,QAAhBqnH,EAAEr/J,EAAMg4C,gBAAQ,IAAAqnH,EAAAA,EAAIroH,EAAAA,EAAaC,aAGvC0oH,EAAS7/I,KAAKC,UAAU,CAAEw9B,MAAO,CAAEqiH,OAAQzvH,EAAAA,EAAUoE,KAAKE,mBAAoBorH,MAAO,eACrFpmJ,EAAG,GAAArP,OAAMu1J,EAAM,MAAAv1J,OAAK0V,KAAKC,UAAU3hB,GAAQ,MAEjDu4C,EAAAA,EAAempH,KAAKrmJ,EACxB,kDCjDG,IAAKu9B,EAAY,SAAZA,GAAY,OAAZA,EAAY,0BAAZA,EAAY,kBAAZA,EAAY,cAAZA,CAAY,iGCKjB,MAAML,EAOT,eAAcmoH,CAASiB,GACnBC,IAAAA,SAAwBA,IAAAA,OAAsBC,KAClD,CAEA,WAAcH,GAAqB,IAAD,IAAAI,EAAA7iJ,UAAAxH,OAAZsqJ,EAAG,IAAAz9I,MAAAw9I,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAHD,EAAGC,GAAA/iJ,UAAA+iJ,GACrBJ,IAAAA,KAAoBG,EACxB,CAEA,WAAcx6I,GAAqB,IAAD,IAAA06I,EAAAhjJ,UAAAxH,OAAZsqJ,EAAG,IAAAz9I,MAAA29I,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAHH,EAAGG,GAAAjjJ,UAAAijJ,GACrBN,IAAAA,KAAoBG,EACxB,CAEA,YAAcliK,GAAsB,IAAD,IAAAsiK,EAAAljJ,UAAAxH,OAAZsqJ,EAAG,IAAAz9I,MAAA69I,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAHL,EAAGK,GAAAnjJ,UAAAmjJ,GACtBR,IAAAA,MAAqBG,EACzB,EArBSxpH,EAEKooH,OAASiB,IAFdrpH,EAIKsoH,OAASA,6ECKpB,MAAMtwJ,GAAAA,EACK8xJ,YAAc,IACjBC,EAAAA,EAAWpyJ,IAAsB0nE,EAAAA,EAAQa,cAF3CloE,EAKKuC,WAAc7D,GACjBqzJ,EAAAA,EAAWpyJ,IAAqB0nE,EAAAA,EAAQc,YAAYzpE,IANtDsB,EASKgyJ,cAAiBpkG,GACpBmkG,EAAAA,EAAWE,KAA8B5qF,EAAAA,EAAQ6B,eAAgBtb,GAVnE5tD,EAaKwD,sBAAwB,CAClC9E,EACAkvD,IAEOmkG,EAAAA,EAAWG,MAA+B7qF,EAAAA,EAAQ8B,wBAAwBzqE,GAAYkvD,GAjBxF5tD,EAoBKmyJ,uBAAyB,CACnCzzJ,EACAkvD,IAEOmkG,EAAAA,EAAWK,IAA6B/qF,EAAAA,EAAQgC,yBAAyB3qE,GAAYkvD,GAxBvF5tD,EA2BKqyJ,2BAA6B,CACvC3zJ,EACAkvD,IAEOmkG,EAAAA,EAAWK,IAA6B/qF,EAAAA,EAAQ+B,6BAA6B1qE,GAAYkvD,GA/B3F5tD,EAkCKC,cAAiBvB,GACpBqzJ,EAAAA,EAAW76G,OAAoBmwB,EAAAA,EAAQgB,eAAe3pE,IAnCxDsB,EAsCKsyJ,kBAAoB,IACvBP,EAAAA,EAAWE,KAAkB5qF,EAAAA,EAAQiB,oBAAqB,CAAC,GAvC7DtoE,EA0CKuyJ,cAAgB,CAC1BC,EACAC,KAEA,IAAI7kG,EAAc,IAAI8kG,SAGtB,OAFA9kG,EAAY3W,OAAO,OAAQu7G,GAEpBT,EAAAA,EAAWE,KAAK5qF,EAAAA,EAAQiC,eAAgB1b,EAAa,CACxD2iG,QAAS,CAAE,eAAgB,uBAC3BpiK,OAAQ,CAAEwkK,wBAAyBF,IACrC,EApDGzyJ,EAuDKc,cAAiBpC,GACpBqzJ,EAAAA,EAAWa,OAAOvrF,EAAAA,EAAQkC,eAAgB,CAC7Cp7E,OAAQ,CAAE0kK,YAAan0J,GACvBo0J,cAAc,EACdC,aAAc,oGClEnB,MAAM1rG,EAET,kBAAcmD,CAAYtU,EAAoB/nD,GAC1C,MAAM,MAAEs8D,EAAK,OAAEvuD,EAAM,aAAEkuD,GAAiBj8D,EAClC8gB,EAA2B,CAC7B9gB,OAAQ,CAAEs8D,QAAOvuD,UACjB7E,KAAM+yD,GAGV,OAAO2nG,EAAAA,EAAWE,KACd5qF,EAAAA,EAAQO,sBAAsBz5E,EAAO84D,UAAY/Q,GAAa,CAAC,EAAGjnC,EAE1E,CAEA,iBAAck7C,CAAWyW,EAAoBzyE,GACzC,MAAM,aAAEi8D,GAAiBj8D,EACnB8gB,EAA2B,CAC7B5X,KAAM+yD,GAGV,OAAO2nG,EAAAA,EAAWE,KAAsB5qF,EAAAA,EAAQQ,qBAAqBjH,GAAa,CAAC,EAAG3xD,EAC1F,CAOA,oBAAcq4C,CAAcpR,EAAoB/nD,GAM5C,OALIk5D,EAAY2rG,uBACZ3rG,EAAY2rG,sBAAsBC,OAAO,wBAE7C5rG,EAAY2rG,sBAAwB,IAAIE,EAAAA,EAEjCnB,EAAAA,EAAWpyJ,IACd0nE,EAAAA,EAAQS,yBAAyB35E,EAAO84D,UAAY/Q,EAAY/nD,EAAOumD,SACvE,CAAEy+G,IAAK9rG,EAAY2rG,uBAE3B,CAEA,yBAAcI,CAAmBnsG,EAAmB/qD,GAMhD,OALImrD,EAAYgsG,6BACZhsG,EAAYgsG,4BAA4BJ,OAAO,6BAEnD5rG,EAAYgsG,4BAA8B,IAAIH,EAAAA,EAEvCnB,EAAAA,EAAWpyJ,IACd0nE,EAAAA,EAAQU,sBAAsB9gB,EAAW/qD,GACzC,CAAEi3J,IAAK9rG,EAAY2rG,uBAE3B,CAEA,gBAAcM,CAAUrsG,EAAmBssG,EAAkBC,GAMzD,OALInsG,EAAYosG,sBACZpsG,EAAYosG,qBAAqBR,OAAO,oBAE5C5rG,EAAYosG,qBAAuB,IAAIP,EAAAA,EAEhCnB,EAAAA,EAAWpyJ,IACd0nE,EAAAA,EAAQW,aAAa/gB,GACrB,CACI94D,OAAQ,CAAEolK,WAAUC,aACpBL,IAAK9rG,EAAY2rG,uBAG7B,EAjES3rG,EAuBM2rG,2BAAwDn+J,EAvB9DwyD,EAyBMgsG,iCAA8Dx+J,EAzBpEwyD,EA0BMosG,0BAAuD5+J,0ECpBnE,MAAM6+J,EAET,sBAAcC,CAAgBnrF,EAAkB5a,GAC5C,OAAOmkG,EAAAA,EAAWE,KAA8B5qF,EAAAA,EAAQkB,kBAAkBC,GAAW5a,EACzF,CAEA,uBAAcgmG,CAAiBhmG,GAC3B,OAAOmkG,EAAAA,EAAWE,KAAgC5qF,EAAAA,EAAQoB,cAAe7a,EAC7E,CAEA,sBAAcimG,CAAgBrrF,EAAkBsrF,EAAyBlmG,GAErE,OAAOmkG,EAAAA,EAAWE,KAAK5qF,EAAAA,EAAQqB,kBAAkBF,EAAUsrF,GAAkBlmG,EAAa,CACtFklG,cAAc,EACdC,aAAc,eAEtB,CAEA,mBAAcgB,CAAalrF,GACvB,OAAOkpF,EAAAA,EAAWpyJ,IAA2B0nE,EAAAA,EAAQuB,cAAcC,GACvE,8EC7BG,MAAMh9D,GAmEZmoJ,EAnEYnoJ,EAAAA,EAEKooJ,0BAA4B,CAACv+I,EAAoB20D,IAAa,GAAA5uE,OAAQia,EAAU,KAAAja,OAAI4uE,GAFzFx+D,EAKKsK,gBAAkB,IACrBhU,QAAQxT,EAAAA,EAAYulK,eAAe/9I,iBANrCtK,EAUKG,8BAAgC,IAC5Brd,EAAAA,EAAYulK,eAAex+I,aACxBW,EAAAA,EAAU89I,WAZtBtoJ,EAgBKC,8BAAgC,IAC5Bnd,EAAAA,EAAYulK,eAAex+I,aACxBW,EAAAA,EAAUC,SAlBtBzK,EAsBKwrD,2BAA6B,KAAgB,IAAD+8F,EACtD,MAAMC,EAA4B,QAAtBD,EAAGzlK,EAAAA,EAAY2lK,eAAO,IAAAF,OAAA,EAAnBA,EAAqB/8J,KAC9Bk9J,EAAcpyJ,QAAc,OAANkyJ,QAAM,IAANA,OAAM,EAANA,EAAQ5G,6BAEpC,OADkB5hJ,EAAWG,iCAAmCuoJ,CAChD,EA1BX1oJ,EA6BK2oJ,+BAAiC,KAAgB,IAADC,EAC1D,MAAMJ,EAA4B,QAAtBI,EAAG9lK,EAAAA,EAAY2lK,eAAO,IAAAG,OAAA,EAAnBA,EAAqBp9J,KAC9BqJ,EACFyB,QAAc,OAANkyJ,QAAM,IAANA,OAAM,EAANA,EAAQ5G,8BAAgCtrJ,QAAc,OAANkyJ,QAAM,IAANA,OAAM,EAANA,EAAQ7G,gCACpE,OAAO3hJ,EAAWG,iCAAmCtL,CAAQ,EAjCxDmL,EAoCK6oJ,YAAc,KAAgC,IAADC,EAAAC,EACvD,OAA0B,QAA1BD,EAAOhmK,EAAAA,EAAY2lK,eAAO,IAAAK,GAAM,QAANC,EAAnBD,EAAqBt9J,YAAI,IAAAu9J,OAAN,EAAnBA,EAA2Bt9J,IAAI,EArCjCuU,EAwCKI,cAAgB,KAA0C,IAAD4oJ,EAAAC,EACnE,OAA0B,QAA1BD,EAAOlmK,EAAAA,EAAY2lK,eAAO,IAAAO,GAAM,QAANC,EAAnBD,EAAqBx9J,YAAI,IAAAy9J,OAAN,EAAnBA,EAA2BzyG,mBAAmB,EAzChDx2C,EA4CKM,cAAgB,KAA4C,IAAD4oJ,EAAAC,EACrE,OAA0B,QAA1BD,EAAOpmK,EAAAA,EAAY2lK,eAAO,IAAAS,GAAM,QAANC,EAAnBD,EAAqB19J,YAAI,IAAA29J,OAAN,EAAnBA,EAA2B1yG,sBAAsB,EA7CnDz2C,EAgDKD,WAAa,KAAOC,EAAWsK,mBAAqBtK,EAAWC,gCAhDpED,EAmDKopJ,0BAA4B,KAAgB,IAADC,EACrD,MAAMb,EAA4B,QAAtBa,EAAGvmK,EAAAA,EAAY2lK,eAAO,IAAAY,OAAA,EAAnBA,EAAqB79J,KAC9B89J,EAAmBhzJ,QAAc,OAANkyJ,QAAM,IAANA,OAAM,EAANA,EAAQ7G,gCAEzC,OADc7+J,EAAAA,EAAYulK,eAAex+I,aACxBW,EAAAA,EAAUC,UAAY6+I,CAAgB,EAvDlDtpJ,EA0DKyoJ,MAAQ,KAAgC,IAADc,EACjD,MAAM/9J,EAAO1I,EAAAA,EAAY2lK,QAAQj9J,KACjC,OACQ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMgrD,uBACF,OAAJhrD,QAAI,IAAJA,OAAI,EAAJA,EAAMm2J,kCACF,OAAJn2J,QAAI,IAAJA,GAA4B,QAAxB+9J,EAAJ/9J,EAAMirD,8BAAsB,IAAA8yG,OAAxB,EAAJA,EAA8BhpJ,eAC1B,OAAJ/U,QAAI,IAAJA,OAAI,EAAJA,EAAMo2J,4BAA2B,oHC9DtC,MAAM4H,EACT,oBAAoBjzJ,CAAQkzJ,GACxB,MAAMz1J,EAAuB,CACzB8W,cAAe2+I,EACf7M,UAAWjnH,EAAAA,EAAUwD,UACrBuwH,cAAe/zH,EAAAA,EAAUyD,eAE7B,OAAO8sH,EAAAA,EAAWE,KAA6B5qF,EAAAA,EAAQE,QAAS1nE,EAC5D,CAAEizJ,cAAc,EAAM0C,QAAQ,GAEtC,ECXG,MAAMC,GAAAA,EAEGC,aAAgB9nG,GACrBmkG,EAAAA,EAAWE,KAA6B5qF,EAAAA,EAAQ4B,aAAcrb,EAAa,CAAE4nG,QAAQ,qDCJzF,MAAMG,GA2IZC,EA3IYD,EAAAA,EACKE,OAAUC,IAAe,CACnCx+J,KAAM+d,EAAAA,EAAmCC,QACzCpC,QAAS,CAAE4iJ,YAHNH,EAMFI,eAAiB,CAACr/I,EAAsBo/I,KAAc,CACzDx+J,KAAM+d,EAAAA,EAAmC2gJ,gBACzC9iJ,QAAS,CAAEwD,cAAao/I,YARnBH,EAWKM,iBAAmB5lK,IAUkB,IAVjB,gBAC9B8lB,EAAe,cACfC,EAAa,YACbM,EAAW,kBACXw/I,GAMH7lK,EAGG,OAFAwa,EAAAA,EAAOyD,MAAM,uBAAwB,CAAE6H,kBAAiBC,gBAAe8/I,sBAEhE,CACH5+J,KAAM+d,EAAAA,EAAmCY,kBACzC/C,QAAS,CAAEiD,kBAAiBC,gBAAeM,cAAaw/I,qBAC3D,EA3BIP,EAmCKQ,iBAAmB,CAC7B//I,EACA0/I,IAEOH,EAAsBM,iBAAiB,CAC1C9/I,gBAAiBhU,QAAQiU,GACzBA,gBACAM,aAAa,EACbw/I,kBAAmBJ,IA3ClBH,EA+CKS,yBAA2B,MACrC9+J,KAAM+d,EAAAA,EAAmCY,kBACzC/C,QAAS,CACLiD,iBAAiB,EACjBC,cAAe,CACXT,aAAc,GACdgB,cAAe,GACfjB,WAAY,IAEhBgB,aAAa,EACbw/I,kBAAmB7gJ,EAAAA,EAAsCghJ,uBAzDxDV,EAwEFW,eAAkBrjK,GACd0iK,EAAsBM,iBAAiB,CAC1C9/I,iBAAiB,EACjBC,cAAenjB,EACfyjB,aAAa,EACbw/I,kBAAmB7gJ,EAAAA,EAAsCkhJ,kBA7ExDZ,EAqFFa,YAAelnK,GACXqmK,EAAsBM,iBAAiB,CAC1C9/I,iBAAiB,EACjBC,cAAe,CACXT,aAAc,GACdgB,cAAe,GACfjB,WAAY,IAEhBgB,aAAa,EACbw/I,kBAAmB7gJ,EAAAA,EAAsCohJ,iBA9FxDd,EA4GFe,aAAgBC,GAAgC3hJ,IAGnDA,EACI2gJ,EAAsBM,iBAAiB,CACnC9/I,iBAAiB,EACjBC,cAAeugJ,EACfjgJ,aAAa,EACbw/I,kBAAmB7gJ,EAAAA,EAAsCuhJ,iBAG1D1lJ,QAAQlgB,QAAQ2lK,IAvHlBhB,EA+HFkB,UAAavnK,GACTqmK,EAAsBM,iBAAiB,CAC1C9/I,iBAAiB,EACjBC,cAAe,CACXT,aAAc,GACdgB,cAAe,GACfjB,WAAY,IAEhBgB,aAAa,EACbw/I,kBAAmB7gJ,EAAAA,EAAsCyhJ,2CC3H9D,IAAKjoK,EAAsB,SAAtBA,GAAsB,OAAtBA,EAAsB,kBAAtBA,EAAsB,0CAAtBA,EAAsB,0BAAtBA,CAAsB,MAMlC,MAAMmmB,EAAY3b,GAAgBmqC,EAAAA,EAAcxuB,SAAS3b,GACnD6Q,EAAWA,IAAgBs5B,EAAAA,EAAct5B,WAExC,MAAMvb,EA0FT,kCAAoBooK,CAAsBC,SAChChiJ,EAAS2gJ,EAAsBQ,iBAAiBa,EAAoBC,EAAAA,EAAkBC,mBAChG,CACA,sBAAc/gJ,GAAqC,IAADghJ,EAAAC,EAC9C,MACMC,EAA0C,MADmB,QAA1CF,EAAa,QAAbC,EAAGltJ,WAAU,IAAAktJ,OAAA,EAAVA,EAAYxhJ,eAAeD,oBAAY,IAAAwhJ,EAAAA,EAAI,IAEvE,OAAOjmJ,QAAQlgB,QAAQqmK,EAC3B,CAEA,qCAAoBC,SACVtiJ,EAAS2gJ,EAAsBS,2BACzC,EAKHmB,EA1GY5oK,EAAAA,EAEKulK,aAAe,SAAAsD,EAAA,OAA8C,QAAVA,EAAAttJ,WAAU,IAAAstJ,OAAA,EAAVA,EAAY5hJ,iBAAkB,CAAC,CAAC,EAFxFjnB,EAGK2lK,MAAQ,IAAepqJ,IAAW+3B,GAHvCtzC,EAKKC,SAAWH,UACrB,IACI,MAAMC,QAAyC+mK,EAAOC,aAAavnK,GAEnE,OADA6mB,EAAS2gJ,EAAsBQ,iBAAiBznK,EAAS2I,KAAM4/J,EAAAA,EAAkBL,gBAC1E1lJ,QAAQlgB,QAAQnC,EAAuBC,QAClD,CAAE,MAAOQ,GACL,MAAM,cAAEu7C,GAAkBv7C,EAa1B,OAZIu7C,EACIA,IAAkBC,EAAAA,EAAcC,gBAChCC,EAAAA,EAAMC,UAAU,CAAElC,QAASrpC,EAAAA,GAAKC,IAAI,gCAEpCqrC,EAAAA,EAAMC,UAAU,CAAElC,QAAS8B,KAG/BxqC,EAAAA,EAAAA,IAAY/Q,GAGhB0lB,EAAS2gJ,EAAsBkB,UAAUvnK,IAErCu7C,IAAkBC,EAAAA,EAAc2sH,4BACzBvmJ,QAAQlgB,QAAQnC,EAAuB6oK,qBAEvCxmJ,QAAQlgB,QAAQnC,EAAuB8oK,YAEtD,GA7BKhpK,EAiCKg1C,iBAAmBl1C,UAA8B,IAADmpK,EAC1D,MAAM,WAAEliJ,EAAa,GAAE,aAAEC,EAAe,KAAiB,QAAViiJ,EAAA1tJ,WAAU,IAAA0tJ,OAAA,EAAVA,EAAYhiJ,iBAAkB,CAAC,EAExE+gJ,EAAO9qJ,EAAAA,EAAWooJ,0BAA0Bv+I,EAAYC,GAC9D,OAAOzE,QAAQlgB,QAAQ2lK,EAAK,EArCvBhoK,EAyCKo+E,eAAiBt+E,UAA8B,IAADopK,EACxD,MAAM,aAAEliJ,EAAe,KAAiB,QAAVkiJ,EAAA3tJ,WAAU,IAAA2tJ,OAAA,EAAVA,EAAYjiJ,iBAAkB,CAAC,EAC7D,OAAO1E,QAAQlgB,QAAQ2kB,EAAa,EA3C/BhnB,EA+CKmpK,gBAAkBrpK,UAA8B,IAADspK,EACzD,MAAM,cAAEphJ,EAAgB,KAAiB,QAAVohJ,EAAA7tJ,WAAU,IAAA6tJ,OAAA,EAAVA,EAAYniJ,iBAAkB,CAAC,EAC9D,OAAO1E,QAAQlgB,QAAQ2lB,EAAc,EAjDhChoB,EA4DKqpK,sBAAwBvpK,UAA8B,IAADwpK,EAC/D,MAAMC,EAA2B,QAAbD,EAAG/tJ,WAAU,IAAA+tJ,OAAA,EAAVA,EAAYriJ,gBAE7B,cAAEe,EAAgB,IAAOuhJ,GAAkB,CAAC,EAElD,IAAKvhJ,EAAe,CAChB,MAAMg1B,EAAuB,yDAG7B,OAFAtrC,EAAAA,EAAAA,IAAYsrC,GACZ32B,EAAS2gJ,EAAsBa,YAAY7qH,IACpCz6B,QAAQghE,OAAOvmC,EAC1B,CACI32B,EAAS2gJ,EAAsBI,gBAAe,EAAO,oBAErD,IACI,MAAMrnK,QAAyC2mK,EAAQjzJ,QAAQuU,GACzDwhJ,EAAmCzpK,EAAS2I,KAClD2d,EAAS2gJ,EAAsBW,eAAe6B,IAE9C,MAAM/hJ,EAAgBvK,EAAAA,EAAWooJ,0BAC7BvlK,EAAS2I,KAAKqe,WACdhnB,EAAS2I,KAAKse,cAElB,OAAOzE,QAAQlgB,QAAQolB,EAC3B,CAAE,MAAO9mB,GAEL,OADA0lB,EAAS2gJ,EAAsBa,YAAYlnK,IACpC4hB,QAAQghE,OAAO5iF,EAC1B,CACJ,EAvFKX,EAuGKknK,OAASpnK,gBACbE,EAAY2oK,0BAA0B,wDChI7C,IAAKthJ,EAAc,SAAdA,GAAc,OAAdA,EAAc,gDAAdA,EAAc,+BAAdA,EAAc,sDAAdA,CAAc,MAOdihJ,EAAiB,SAAjBA,GAAiB,OAAjBA,EAAiB,sCAAjBA,EAAiB,8BAAjBA,EAAiB,kCAAjBA,EAAiB,4BAAjBA,EAAiB,gCAAjBA,EAAiB,0CAAjBA,CAAiB,0DCItB,MAAM1gJ,GAOZ6hJ,EAPY7hJ,EAAAA,EACKQ,SAAW,kBADhBR,EAGKC,QAAWQ,IAAY,CACjC1f,KAAMif,EAAUQ,SAChB7D,QAAS,CAAE8D,8FCdZ,MAAMqhJ,GAAAA,EACKviJ,UAAY,IACfi8I,EAAAA,EAAWpyJ,IAAgB0nE,EAAAA,EAAQG,oBCAlD,MAAMxyD,EAAY3b,GAAgBmqC,EAAAA,EAAcxuB,SAAS3b,GAElD,MAAMwc,GAwBZyiJ,EAxBYziJ,EAAAA,EACKC,UAAYrnB,UACtB,UACUumB,EAASuB,EAAAA,EAAUC,aAAQ3hB,IAEjC,MAAMnG,QAA6B2pK,EAAMviJ,YAGzC,aAFMD,EAAU0iJ,UAAU7pK,EAAS2I,MAE5B6Z,QAAQlgB,QAAQtC,EAC3B,CAAE,MAAOY,GAEL,aADM0lB,EAASuB,EAAAA,EAAUC,aAAQ3hB,IAC1Bqc,QAAQghE,OAAO5iF,EAC1B,GAZKumB,EAeK0iJ,UAAY9pK,UACtB,IAEI,aADMumB,EAASuB,EAAAA,EAAUC,QAAQgiJ,IAC1BtnJ,QAAQlgB,QAAQwnK,EAC3B,CAAE,MAAOlpK,GAEL,aADM0lB,EAASuB,EAAAA,EAAUC,aAAQ3hB,IAC1Bqc,QAAQghE,OAAO5iF,EAC1B,0DC9BD,IAAKq7C,EAAc,SAAdA,GAAc,OAAdA,EAAAA,EAAc,aAAdA,EAAAA,EAAc,6BAAdA,EAAAA,EAAc,iCAAdA,EAAAA,EAAc,2BAAdA,EAAAA,EAAc,yBAAdA,EAAAA,EAAc,yCAAdA,EAAAA,EAAc,qCAAdA,EAAAA,EAAc,iDAAdA,EAAAA,EAAc,uBAAdA,CAAc,MAuBnB,MAAMX,EAAc16C,IAEvB,GAAIA,EAAM26C,WACN,OAAO36C,EACJ,CAAC,IAADmpK,EAAAC,EACH,MAAM,OAAEzpJ,EAAM,SAAEvgB,GAAaY,EAKvB86C,GAAmB,OAANn7B,QAAM,IAANA,OAAM,EAANA,EAAQm7B,cAAc,EAEnCD,GAAqB,OAARz7C,QAAQ,IAARA,OAAQ,EAARA,EAAUy7C,cAAsB,OAARz7C,QAAQ,IAARA,GAAc,QAAN+pK,EAAR/pK,EAAU2I,YAAI,IAAAohK,OAAN,EAARA,EAAgBtuH,aAAc,GACnEU,GAAwB,OAARn8C,QAAQ,IAARA,OAAQ,EAARA,EAAUm8C,iBAAyB,OAARn8C,QAAQ,IAARA,GAAc,QAANgqK,EAARhqK,EAAU2I,YAAI,IAAAqhK,OAAN,EAARA,EAAgB7tH,gBAAiB,GAC5E94C,EAAiB,OAARrD,QAAQ,IAARA,OAAQ,EAARA,EAAUqD,OAIzB,MAAO,CACHm4C,eAHmBn4C,EAInBo4C,aACAU,gBACAZ,aANmBl4C,GAMao4C,GAAcU,EAC9CT,aAER,0ICxCG,MAAMuuH,EAAoBxqK,GAMtByqK,IAAAA,UAAazqK,EAAQ,CAJxB0qK,SAAS,EACTC,YAAa,SACbC,gBAAgB,IAcjB,MAAMC,EAMT/rJ,WAAAA,CAAYpc,GAA4B,KAJvBooK,mBAAa,OACbC,iBAAW,EAca,KACjCC,qCAAuC,KAC3CnmK,KAAKkmK,YAAYE,aAAav+C,QAAQw+C,KAAI5qK,UACtC,MAAM,iBAAEk1C,GAAqB3wC,KAAKimK,cAClC,aAAaK,EAAAA,EAAAA,GAAsBz+C,EAASl3E,EAAiB,GAC/D,EAGN,KAEQ41H,+BAAiC,KAGrCvmK,KAAKkmK,YAAYE,aAAa1qK,SAAS2qK,KAFb3qK,GAAkBwiB,QAAQlgB,QAAQtC,EAAS2I,QAC7C/H,GAAe0D,KAAKwmK,kBAAkBlqK,IACc,EAC9E,KA8IMmqK,gBAAkB,CAAUxwH,EAAoBh6B,KAAiD,IAADyqJ,EAC9F,OAANzqJ,QAAM,IAANA,GAAW,QAALyqJ,EAANzqJ,EAAQkkJ,WAAG,IAAAuG,GAAXA,EAAaC,YAAY,MAEzB,MAAMC,EAA6B,OAAb3wH,QAAa,IAAbA,OAAa,EAAbA,EAAe4xE,QAG/Bg/C,EAAa,CACfC,aAH6D,gBAA/BF,EAAc7G,aAGF,GAAkB,OAAb6G,QAAa,IAAbA,OAAa,EAAbA,EAAeE,aAC9DC,YAA0B,OAAbH,QAAa,IAAbA,OAAa,EAAbA,EAAeG,YAC5BC,WAAyB,OAAbJ,QAAa,IAAbA,OAAa,EAAbA,EAAeI,YAEzB1qK,EAAkB,KACjB06C,EAAAA,EAAAA,GAAWf,GACdgB,YAAY,EACZ4vH,cAGJ,OADAhvJ,EAAAA,EAAOs9B,aAAa,CAAE14C,QAAS,iCAAkCmF,MAAO,CAAEtF,WACnE4hB,QAAQghE,OAAO5iF,EAAM,EAtL5B0D,KAAKimK,cAAgBpoK,EACrB,MAAM,QAAEopK,EAAO,QAAEznJ,EAAU,KAAS3hB,EAGpCmC,KAAKkmK,YAAcgB,IAAAA,OAAa,CAAED,UAASznJ,UAASmmJ,qBACpD3lK,KAAKmmK,uCACLnmK,KAAKumK,gCACT,CAoBA,uBAAcC,CAAkBlqK,GAA2B,IAAD6qK,EAEtD,MAAMC,GAAwC,OAAL9qK,QAAK,IAALA,GAAe,QAAV6qK,EAAL7qK,EAAOZ,gBAAQ,IAAAyrK,OAAV,EAALA,EAAiBlrJ,SAAU,CAAC,EAE/DorJ,EAAc5rK,UAA2B,IAAD6rK,EAC1C,MAAMC,EAA8C,QAA5BD,EAAGF,EAAeG,kBAAU,IAAAD,EAAAA,EAAI,GAClD,eAAEpwH,IAA6BF,EAAAA,EAAAA,GAAW16C,IAE1C,WAAEkrK,EAAU,qBAAEC,GAAyBznK,KAAKimK,cAQlD,GALI/uH,IAAmBS,EAAAA,EAAeC,eAC9BwvH,EAAeM,gBAChBN,EAAelxH,MAAQsxH,GACvBr4J,cAAcxT,EAAAA,EAAYmpK,oBAET2C,EAAsB,CAC1C,MAAME,QAA8C,OAApBF,QAAoB,IAApBA,OAAoB,EAApBA,KAG1BG,EAA8B,IAC7BR,EACH7J,QAAS,IACY,OAAd6J,QAAc,IAAdA,OAAc,EAAdA,EAAgB7J,QACnBsK,cAAeF,GAEnBD,gBAAgB,EAChBH,WAAYA,EAAa,GAE7B,aAAavnK,KAAKkmK,YAAY0B,EAClC,CACI,MAAMtrK,CACV,EAIJ,GAF6B4qK,IAAAA,SAAe5qK,SAKxC,IACI,OAAK8qK,EAAe5E,OAGTtkJ,QAAQghE,OAAO5iF,SAFT+qK,GAIrB,CAAE,MAAOS,GAEL,OAAO5pJ,QAAQghE,OAAO5iF,EAC1B,CAER,CAQA,SAAaqQ,CAAaupC,EAAaj6B,GACnC,IACI,MAAMvgB,QAAyCsE,KAAKkmK,YAAYv5J,IAAaupC,EAAKj6B,GAClF,OAAOjc,KAAK+nK,mBAA4BrsK,EAAUugB,EACtD,CAAE,MAAOg6B,GACL,OAAOj2C,KAAKymK,gBAAyBxwH,EAAeh6B,EACxD,CACJ,CAEA,YAAa2jJ,CAAgB1pH,EAAaj6B,GACtC,IACI,MAAMvgB,QAAyCsE,KAAKkmK,YAAYv5J,IAAaupC,EAAKj6B,GAClF,OAAOjc,KAAK+nK,mBAA4BrsK,EAAUugB,EACtD,CAAE,MAAOg6B,GACL,OAAOj2C,KAAKymK,gBAAyBxwH,EAAeh6B,EACxD,CACJ,CAEA,UAAagjJ,CAAc/oH,EAAarpC,EAAcoP,GAClD,IACI,MAAMvgB,QAAyCsE,KAAKkmK,YAAYjH,KAAc/oH,EAAKrpC,EAAMoP,GACzF,OAAOjc,KAAK+nK,mBAA4BrsK,EAAUugB,EACtD,CAAE,MAAOg6B,GACL,OAAOj2C,KAAKymK,gBAAyBxwH,EAAeh6B,EACxD,CACJ,CAEA,SAAamjJ,CAAalpH,EAAarpC,EAAcoP,GACjD,IACI,MAAMvgB,QAAyCsE,KAAKkmK,YAAY9G,IAAalpH,EAAKrpC,EAAMoP,GACxF,OAAOjc,KAAK+nK,mBAA4BrsK,EAAUugB,EACtD,CAAE,MAAOg6B,GACL,OAAOj2C,KAAKymK,gBAAyBxwH,EAAeh6B,EACxD,CACJ,CAEA,YAAaioC,CAAgBhO,EAAaj6B,GACtC,IACI,MAAMvgB,QAAyCsE,KAAKkmK,YAAYhiH,OAAgBhO,EAAKj6B,GACrF,OAAOjc,KAAK+nK,mBAA4BrsK,EAAUugB,EACtD,CAAE,MAAOg6B,GACL,OAAOj2C,KAAKymK,gBAAyBxwH,EAAeh6B,EACxD,CACJ,CAEA,WAAaijJ,CAAehpH,EAAarpC,EAAcoP,GACnD,IACI,MAAMvgB,QAAyCsE,KAAKkmK,YAAYhH,MAAehpH,EAAKrpC,EAAMoP,GAC1F,OAAOjc,KAAK+nK,mBAA4BrsK,EAAUugB,EACtD,CAAE,MAAOg6B,GACL,OAAOj2C,KAAKymK,gBAAyBxwH,EAAeh6B,EACxD,CACJ,CAMQ8rJ,kBAAAA,CAA4BrsK,EAAeugB,GAA8C,IAAD+rJ,EAAAC,EAI5F,GAFM,OAANhsJ,QAAM,IAANA,GAAW,QAAL+rJ,EAAN/rJ,EAAQkkJ,WAAG,IAAA6H,GAAXA,EAAarB,YAAY,MAEf,OAAN1qJ,QAAM,IAANA,GAAAA,EAAQ6jJ,aACR,OAAO5hJ,QAAQlgB,QAAiBtC,GAEpC,IAAKA,EAAS84D,aAAerlD,QAAc,OAAN8M,QAAM,IAANA,GAAW,QAALgsJ,EAANhsJ,EAAQkkJ,WAAG,IAAA8H,OAAL,EAANA,EAAaC,UAAW,CAEzDrwJ,EAAAA,EAAOs9B,aAAa,CAAE14C,QAAS,oCAAqCmF,MAAO,CAAEqa,SAAQvgB,cAErF,MAAMuE,EAAmB,IAClBvE,EACHgzE,UAAWhzE,EAASy7C,WACpBwB,aAAcj9C,EAASm8C,cACvBZ,YAAY,GAEhB,OAAO/4B,QAAQghE,OAAOj/E,EAC1B,CACA,OAAOie,QAAQlgB,QAAQtC,EAC3B,EClMJ,IAAIysK,EAEG,MAAMpJ,EAMT,gBAAoBpyJ,CAAeupC,EAAaj6B,GAC5C,OAAOksJ,EAAUx7J,IAAeupC,EAAKj6B,EACzC,CAEA,mBAAoB2jJ,CAAkB1pH,EAAaj6B,GAC/C,OAAOksJ,EAAUvI,OAAkB1pH,EAAKj6B,EAC5C,CAEA,iBAAoBgjJ,CAAgB/oH,EAAarpC,EAAcoP,GAC3D,OAAOksJ,EAAUlJ,KAAgB/oH,EAAKrpC,EAAMoP,EAChD,CAEA,gBAAoBmjJ,CAAelpH,EAAarpC,EAAcoP,GAC1D,OAAOksJ,EAAU/I,IAAelpH,EAAKrpC,EAAMoP,EAC/C,CAEA,mBAAoBioC,CAAkBhO,EAAaj6B,GAC/C,OAAOksJ,EAAUjkH,OAAkBhO,EAAKj6B,EAC5C,CAEA,kBAAoBijJ,CAAiBhpH,EAAarpC,EAAcoP,GAC5D,OAAOksJ,EAAUjJ,MAAiBhpH,EAAKrpC,EAAMoP,EACjD,EA5BS8iJ,EAEKqJ,oBAAuBvqK,IACjCsqK,EAAY,IAAInC,EAAUnoK,EAAQ,iFCNnC,MAAMqiK,EAITjmJ,WAAAA,GAAe,KAHfouJ,cAAQ,OACRH,cAAQ,OAKRvB,YAAe0B,IACXroK,KAAKqoK,SAAWA,CAAQ,EAC3B,KAEDpI,OAAU6C,IACgB,OAAlB9iK,KAAKqoK,WACLroK,KAAKqoK,SAASvF,GACd9iK,KAAKkoK,UAAW,EAChBloK,KAAKqoK,SAAW,KACpB,EAXAroK,KAAKqoK,SAAW,IACpB,EAwBG,MAAM/B,EAAwB7qK,iBAAkH,IAA3GosH,EAAyBnsG,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGi1B,EAAwCj1B,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAChH,MAAM,IAAEs+J,EAAG,SAAEmI,EAAQ,OAAE9F,GAAS,GAAU36C,EAEpC0gD,EAAyC/F,EACzC36C,EAAQ01C,QACV,IAAK11C,EAAQ01C,QAASsK,oBAAqC,OAAhBl3H,QAAgB,IAAhBA,OAAgB,EAAhBA,MAE/C,MAAO,IACAk3E,EACH01C,QAASgL,EACTC,YAAa,IAAItB,IAAAA,cAAmBmB,GAC7B,OAAHlI,QAAG,IAAHA,OAAG,EAAHA,EAAKwG,YAAY0B,KAErBI,iBAAmBC,IACf,GAAIJ,EAAU,CACV,MAAMK,EACF7hH,KAAKC,MAA8B,IAAvB2hH,EAAcE,OAAgBF,EAAcG,OAAS,IAErEP,EAASK,EACb,GAEJG,mBAAqBJ,IACjB,GAAIJ,EAAU,CACV,MAAMK,EACF7hH,KAAKC,MAA8B,IAAvB2hH,EAAcE,OAAgBF,EAAcG,OAAS,IAErEP,EAASK,EACb,GAGZ,iDC9DO,MAAMI,GAAAA,EACKC,gBAAmB9yH,GAAgBx+B,OAAOjL,KAAKypC,EAAK,oHCmCvD,SAAS+yH,EAASC,EAAUrrK,GACzC,IAAIsrK,GAEJC,EAAAA,EAAAA,GAAa,EAAG1tJ,WAChB,IAAI2tJ,GAAmBC,EAAAA,EAAAA,GAAmH,QAAxGH,EAAoC,OAAZtrK,QAAgC,IAAZA,OAAqB,EAASA,EAAQwrK,wBAAwD,IAA1BF,EAAmCA,EAAwB,GAE7M,GAAyB,IAArBE,GAA+C,IAArBA,GAA+C,IAArBA,EACtD,MAAM,IAAIE,WAAW,sCAGvB,GAA0B,kBAAbL,GAAsE,oBAA7C3pK,OAAOqB,UAAUyI,SAAStJ,KAAKmpK,GACnE,OAAO,IAAIjxJ,KAAKuxJ,KAGlB,IACIl2J,EADAm2J,EAsDN,SAAyBC,GACvB,IAEIC,EAFAF,EAAc,CAAC,EACfj9D,EAAQk9D,EAAWvuH,MAAMyuH,EAASC,mBAItC,GAAIr9D,EAAMt4F,OAAS,EACjB,OAAOu1J,EAGL,IAAIx4H,KAAKu7D,EAAM,IACjBm9D,EAAan9D,EAAM,IAEnBi9D,EAAYn2J,KAAOk5F,EAAM,GACzBm9D,EAAan9D,EAAM,GAEfo9D,EAASE,kBAAkB74H,KAAKw4H,EAAYn2J,QAC9Cm2J,EAAYn2J,KAAOo2J,EAAWvuH,MAAMyuH,EAASE,mBAAmB,GAChEH,EAAaD,EAAWK,OAAON,EAAYn2J,KAAKY,OAAQw1J,EAAWx1J,UAIvE,GAAIy1J,EAAY,CACd,IAAItyF,EAAQuyF,EAASI,SAASvtH,KAAKktH,GAE/BtyF,GACFoyF,EAAYQ,KAAON,EAAWjwH,QAAQ29B,EAAM,GAAI,IAChDoyF,EAAYO,SAAW3yF,EAAM,IAE7BoyF,EAAYQ,KAAON,CAEvB,CAEA,OAAOF,CACT,CAxFoBS,CAAgBhB,GAGlC,GAAIO,EAAYn2J,KAAM,CACpB,IAAI62J,EAsFR,SAAmBT,EAAYL,GAC7B,IAAIe,EAAQ,IAAI3zG,OAAO,wBAA0B,EAAI4yG,GAAoB,uBAAyB,EAAIA,GAAoB,QACtHgB,EAAWX,EAAW7vH,MAAMuwH,GAEhC,IAAKC,EAAU,MAAO,CACpBC,KAAMd,IACNe,eAAgB,IAElB,IAAID,EAAOD,EAAS,GAAK52H,SAAS42H,EAAS,IAAM,KAC7CG,EAAUH,EAAS,GAAK52H,SAAS42H,EAAS,IAAM,KAEpD,MAAO,CACLC,KAAkB,OAAZE,EAAmBF,EAAiB,IAAVE,EAChCD,eAAgBb,EAAW14H,OAAOq5H,EAAS,IAAMA,EAAS,IAAIn2J,QAElE,CArG0Bu2J,CAAUhB,EAAYn2J,KAAM+1J,GAClD/1J,EAsGJ,SAAmBo2J,EAAYY,GAE7B,GAAa,OAATA,EAAe,OAAO,IAAIryJ,KAAKuxJ,KACnC,IAAIa,EAAWX,EAAW7vH,MAAM6wH,GAEhC,IAAKL,EAAU,OAAO,IAAIpyJ,KAAKuxJ,KAC/B,IAAImB,IAAeN,EAAS,GACxBO,EAAYC,EAAcR,EAAS,IACnCS,EAAQD,EAAcR,EAAS,IAAM,EACrCU,EAAMF,EAAcR,EAAS,IAC7BW,EAAOH,EAAcR,EAAS,IAC9BY,EAAYJ,EAAcR,EAAS,IAAM,EAE7C,GAAIM,EACF,OAgFJ,SAA0BO,EAAOF,EAAMD,GACrC,OAAOC,GAAQ,GAAKA,GAAQ,IAAMD,GAAO,GAAKA,GAAO,CACvD,CAlFSI,CAAiBb,EAAMU,EAAMC,GAuDtC,SAA0BG,EAAaJ,EAAMD,GAC3C,IAAIz3J,EAAO,IAAI2E,KAAK,GACpB3E,EAAK+3J,eAAeD,EAAa,EAAG,GACpC,IAAIE,EAAqBh4J,EAAKi4J,aAAe,EACzCtrE,EAAoB,GAAZ+qE,EAAO,GAASD,EAAM,EAAIO,EAEtC,OADAh4J,EAAKk4J,WAAWl4J,EAAKm4J,aAAexrE,GAC7B3sF,CACT,CA1DWo4J,CAAiBpB,EAAMU,EAAMC,GAH3B,IAAIhzJ,KAAKuxJ,KAKlB,IAAIl2J,EAAO,IAAI2E,KAAK,GAEpB,OAgEJ,SAAsBqyJ,EAAMQ,EAAOx3J,GACjC,OAAOw3J,GAAS,GAAKA,GAAS,IAAMx3J,GAAQ,GAAKA,IAASq4J,EAAab,KAAWc,EAAgBtB,GAAQ,GAAK,IACjH,CAlESuB,CAAavB,EAAMQ,EAAOC,IAoEnC,SAA+BT,EAAMM,GACnC,OAAOA,GAAa,GAAKA,IAAcgB,EAAgBtB,GAAQ,IAAM,IACvE,CAtE4CwB,CAAsBxB,EAAMM,IAIpEt3J,EAAK+3J,eAAef,EAAMQ,EAAOhkH,KAAKqlB,IAAIy+F,EAAWG,IAC9Cz3J,GAJE,IAAI2E,KAAKuxJ,IAMtB,CAnIWuC,CAAU5B,EAAgBI,eAAgBJ,EAAgBG,KACnE,CAEA,IAAKh3J,GAAQ04J,MAAM14J,EAAK24J,WACtB,OAAO,IAAIh0J,KAAKuxJ,KAGlB,IAEIn9B,EAFA/0F,EAAYhkC,EAAK24J,UACjBhC,EAAO,EAGX,GAAIR,EAAYQ,OACdA,EA6HJ,SAAmBN,GACjB,IAAIU,EAAWV,EAAW9vH,MAAMqyH,GAChC,IAAK7B,EAAU,OAAOb,IAEtB,IAAI2C,EAAQC,EAAc/B,EAAS,IAC/BgC,EAAUD,EAAc/B,EAAS,IACjCiC,EAAUF,EAAc/B,EAAS,IAErC,IAuDF,SAAsB8B,EAAOE,EAASC,GACpC,GAAc,KAAVH,EACF,OAAmB,IAAZE,GAA6B,IAAZC,EAG1B,OAAOA,GAAW,GAAKA,EAAU,IAAMD,GAAW,GAAKA,EAAU,IAAMF,GAAS,GAAKA,EAAQ,EAC/F,CA7DOI,CAAaJ,EAAOE,EAASC,GAChC,OAAO9C,IAGT,OAAO2C,EAAQK,EAAAA,GAAqBH,EAAUI,EAAAA,GAAiC,IAAVH,CACvE,CA1IWI,CAAUjD,EAAYQ,MAEzB+B,MAAM/B,IACR,OAAO,IAAIhyJ,KAAKuxJ,KAIpB,IAAIC,EAAYO,SAMT,CACL,IAAI2C,EAAY,IAAI10J,KAAKq/B,EAAY2yH,GAMjChqK,EAAS,IAAIgY,KAAK,GAGtB,OAFAhY,EAAO2sK,YAAYD,EAAUE,iBAAkBF,EAAUG,cAAeH,EAAUlB,cAClFxrK,EAAO8sK,SAASJ,EAAUK,cAAeL,EAAUM,gBAAiBN,EAAUO,gBAAiBP,EAAUQ,sBAClGltK,CACT,CAdE,OAFAosI,EAwIJ,SAAuB+gC,GACrB,GAAuB,MAAnBA,EAAwB,OAAO,EACnC,IAAI/C,EAAW+C,EAAevzH,MAAMwzH,GACpC,IAAKhD,EAAU,OAAO,EACtB,IAAIiD,EAAuB,MAAhBjD,EAAS,IAAc,EAAI,EAClC8B,EAAQ14H,SAAS42H,EAAS,IAC1BgC,EAAUhC,EAAS,IAAM52H,SAAS42H,EAAS,KAAO,EAEtD,IA4CF,SAA0BkD,EAAQlB,GAChC,OAAOA,GAAW,GAAKA,GAAW,EACpC,CA9COmB,CAAiBrB,EAAOE,GAC3B,OAAO7C,IAGT,OAAO8D,GAAQnB,EAAQK,EAAAA,GAAqBH,EAAUI,EAAAA,GACxD,CArJagB,CAAchE,EAAYO,UAE/BgC,MAAM3/B,GACD,IAAIp0H,KAAKuxJ,KAeb,IAAIvxJ,KAAKq/B,EAAY2yH,EAAO59B,EACrC,CACA,IAAIu9B,EAAW,CACbC,kBAAmB,OACnBC,kBAAmB,QACnBE,SAAU,cAERU,EAAY,gEACZwB,EAAY,4EACZmB,EAAgB,gCAsFpB,SAASxC,EAAcjpK,GACrB,OAAOA,EAAQ6xC,SAAS7xC,GAAS,CACnC,CAiBA,SAASwqK,EAAcxqK,GACrB,OAAOA,GAASwlE,WAAWxlE,EAAM83C,QAAQ,IAAK,OAAS,CACzD,CA4BA,IAAIiyH,EAAe,CAAC,GAAI,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAElE,SAASC,EAAgBtB,GACvB,OAAOA,EAAO,MAAQ,GAAKA,EAAO,IAAM,GAAKA,EAAO,MAAQ,CAC9D,kBC9OO,MAAM1gK,GAsDZ8jK,EAtDY9jK,EAAAA,EACF+jK,iBAAmB,SACtBC,EACAC,GAEyB,IADzBC,EAAmCpyJ,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAEtC,MAAMqyJ,EAAankK,EAAUokK,gBAAuCJ,EAASE,EAAc,CACvFG,oBAAoB,IAGxB,OAAIF,IAAeD,EAAqBA,EAEjCC,GACDx8J,EAAAA,EAAAA,GAAOw8J,EAAoBF,EAAc,CACrCK,6BAA6B,EAC7BlgI,OAAQmgI,EAAAA,IAEZL,CACV,EAlBSlkK,EAyBFC,eAAiB,eACpB+jK,EAAsBlyJ,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACzBoyJ,EAAmCpyJ,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAAG,OACjB9R,EAAU+jK,iBAA+BC,EAAQ,uBAAyBE,EAAc,EA5B3GlkK,EAuCFokK,gBAAkB,SACrB16J,EACA86J,GAEuB,IADvB,mBAAEH,GAAsDvyJ,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAE5D,MAAoB,kBAATpI,IAAqBgsC,EAAAA,EAAAA,GAAQ2pH,EAAS31J,IAAe21J,EAAS31J,GAErEA,aAAgB2E,OAAQqnC,EAAAA,EAAAA,GAAQhsC,GAAcA,EAE9C26J,EAA2BG,EAExBA,GAAe,IAAIn2J,IAC9B,yDCpDG,IAAKhK,EAAc,SAAdA,GAAc,OAAdA,EAAc,WAAdA,EAAc,cAAdA,EAAc,WAAdA,CAAc,MAMnB,MAAMF,EAqBT,iBAAOC,CAAW3J,EAAmBnF,EAAkBmvK,GACnD,MAAMC,EAAO7xF,SAAS2C,cAAc,KAC9BmvF,EAAO,IAAIC,KAAK,CAACnqK,GAAO,CAC1BC,KAAMyJ,EAAY0gK,WAAWJ,KAEjCC,EAAKvoD,KAAO2oD,IAAIC,gBAAgBJ,GAChCD,EAAKtyB,aAAa,WAAW,GAADvzI,OAAKvJ,GAAQuJ,OAAG4lK,IAC5CC,EAAKM,OACT,CAEA,iBAAeH,CAAWJ,GACtB,OAAQA,GACJ,KAAKpgK,EAAe4gK,IAChB,MAAO,kBACX,KAAK5gK,EAAe6gK,MAChB,MAAO,qEACX,KAAK7gK,EAAeC,IAChB,MAAO,mBACX,QACI,MAAM,IAAIxR,MAEtB,wIC7BG,MAAMqyK,EAAW1xK,IASE,IATD,SACrBsX,EAAW,SAAQ,KACnBrQ,EAAO,aAAY,QACnBiI,GAAU,EAAI,QACd5H,EAAO,aACPqqK,EAAY,YACZC,EAAW,UACXp0K,EAAS,OACTqR,GACgB7O,EAChB,IAAKkP,EACD,OAAO,KAGX,MAaMxR,EAAQ,IAbam0K,MACvB,OAAQv6J,GACJ,IAAK,OACD,OAAOw6J,EACX,IAAK,SACD,OAAOC,EACX,IAAK,QACD,OAAOC,EACX,QACI,MAAO,CAAC,EAChB,EAGeH,MAA+B,OAANhjK,QAAM,IAANA,OAAM,EAANA,EAAQ1G,MAE9C8pK,EAAcC,EAAgBpgK,QAAQtU,GAAYm0K,EAAcC,EAAlDM,GACpB,OACI50K,EAAAA,EAAAA,KAAC60K,EAAe,CAACz0K,MAAOA,EAAO6J,UAAsB,OAAX0qK,QAAW,IAAXA,OAAW,EAAXA,EAAa9pK,KAAKrC,UACxDxI,EAAAA,EAAAA,KAAC80K,IAAM,CAACC,QAAM,EAACC,eAAgB51D,IAAkB,OAAPp1G,QAAO,IAAPA,OAAO,EAAPA,EAASqN,OAAmB,OAAXs9J,QAAW,IAAXA,OAAW,EAAXA,EAAat9J,QAAS1N,KAAMA,KACzE,EAIbyN,EAAexW,EAAAA,KAAWwzK,GAAU,CAACn7F,EAAM3xD,IAAS2xD,EAAKrnE,UAAY0V,EAAK1V,UAEjFijK,GAAkBjoK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,SAE3CmpK,EAAmC,CAAE56J,eAAgB,cACrD66J,EAAqC,CAAE76J,eAAgB,UACvD86J,EAAoC,CAAE96J,eAAgB,YAItDg7J,EAAkBA,CAAC10K,EAAoBm0K,EAAuBC,KAChE,MAAMW,EAAmCZ,EAAe,CAAEh0K,WAAYg0K,GAAiB,CAAC,EAClFa,EAAgCh1K,EAAY,CAAEG,WAJtC,WAIgE,CAAC,EACzE80K,EAA2Bb,EAAc,CAAEjnK,MAAOinK,EAAazkK,OAAQykK,GAAgB,CAAC,EAE9F,OAAO5xD,EAAAA,EAAAA,GAAW,CACd73G,KAAM,CAAEQ,QAAS,OAAQ4E,WAAY,UACrCoH,OAAQ,CACJhM,QAAS,OACToP,cAAe,MACfxK,WAAY,SACZ2J,eAAgB,SAChBvM,MAAO,cACPqN,WAAY,MACZ,uBAAwB,IACjBu6J,KACAC,KACAC,KAGb,mHCjFC,MAAMpsK,EAAcA,KAEnBkD,EAAAA,EAAAA,MAAC+K,EAAS,CAAAxO,SAAA,EACNxI,EAAAA,EAAAA,KAACo1K,EAAAA,EAAI,CAACh1K,MAAO,CAAE2Z,aAAc,WAC7B/Z,EAAAA,EAAAA,KAACoX,EAAAA,EAAY,CAAClX,WAAS,OAK7B8W,GAAYpK,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAC5BgN,eAAgB,SAChB3J,WAAY,SACZJ,OAAQ,OACRrE,gBAAiB,8FChBd,MAAM4pK,EAAO1yK,IAA4D,IAA3D,MAAEtC,EAAK,QAAEiR,KAAYssG,GAAgCj7G,EACtE,OACI1C,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOqmK,KAAI,CACRh1K,MAAO,CACHiN,MAAO,IACPwN,OAAQxJ,EAAU,UAAY,UAC3BjR,GAEPiR,QAASA,KACLssG,GACN,qHCFH,MAAM03D,EAAa3yK,IAA8D,IAA7D,KAAEgH,EAAI,UAAE4rK,EAAY,EAAC,OAAE/jK,EAAM,MAAEpG,GAAwBzI,EAC9E,MAAMyiF,EAAMhrC,EAAAA,EAAYC,MAAM1wC,GAC9By7E,EAAIowF,uBAAyBp7H,EAAAA,EAAY4P,KAAKrgD,GAC9C,MAAM8rK,EAA2B,CAAEtoK,QAAS,GAAIynF,aAAc,KAAY,OAANpjF,QAAM,IAANA,OAAM,EAANA,EAAQ6pC,SAC5E,OAAQ1xC,GACJ1J,EAAAA,EAAAA,KAACgX,EAAS,CAAC5W,MAAa,OAANmR,QAAM,IAANA,OAAM,EAANA,EAAQ1G,KAAKrC,UAC3BxI,EAAAA,EAAAA,KAACy1K,IAAS,CACNtwF,IAAKA,EACLh6E,MAAOA,GAAS,SAChBuqK,UAAU,SACVt1K,MAAOo1K,EACPF,UAAWA,EACXK,gBAAkBnhD,GAAS13E,UAAU84H,UAAUC,UAAUryJ,KAAKC,UAAU+wG,EAAKrvC,IAAK,KAAM,WARrF,IAWd,EAGCnuE,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEK,SAAU,8GCzBrC,MAAM4a,GAGZiuJ,EAHYjuJ,EAAAA,EACKC,qBAAuB,uBAD5BD,EAEFkuJ,uBAAyB,MAASpsK,KAAMke,EAAiBC,uBAY7D,MAAMkuJ,EAAwBtzK,IAKuB,IALtB,SAClC8F,EAAQ,QACRytK,EAAU,GAAE,UACZC,EAAS,oBACTC,GACkDzzK,EAClD,MAAO2vH,EAAOC,GAAY1xH,EAAAA,UAAyBq1K,EAAQ18J,SAAW28J,IAAcC,GAE9E9uJ,GAAW+uJ,EAAAA,EAAAA,MACXL,EAAyBA,KAC3B1uJ,EAASQ,EAAiBkuJ,0BACnBxyJ,QAAQlgB,SAAQ,IA4B3B,OAzBAzC,EAAAA,WAAgB,KACey1K,MACvB,IAAIC,EAA6C,GAC7CJ,IACAI,EAAc,IAAIA,EAAaJ,IAE/BC,IACAG,EAAc,IAAIA,EAAaP,IAEnC,MAEMQ,EAF4C,IAAID,KAAgBL,GAIjEzpK,KAAKd,GAAWA,MAEhBc,KAAKd,GAAWA,EAAOuX,OAAOF,GAAQA,MAE3CQ,QAAQ+xB,IAAIihI,GAAalyK,MAAK,IAAMiuH,GAAS,IAAM,EAGvD+jD,EAAoB,GAGrB,KAEIr2K,EAAAA,EAAAA,KAACY,EAAAA,SAAc,CAAA4H,SAAE6pH,EAAQ7pH,GAAWxI,EAAAA,EAAAA,KAAC+I,EAAAA,EAAW,KAAqB,sNC3CzE,MAAMytK,EAAsBj7H,IAC/B6+G,EAAAA,EAAIqB,uBACiC2S,EAAAA,EAAaC,gBAAgB9yH,EAC1C,EAIfk7H,EAAoB/zK,IAAuD,IAAtD,KAAEiH,EAAO,OAAM,MAAEvJ,GAA+BsC,EAC9E,MAAM,SAAE6Z,IAAam6J,EAAAA,EAAAA,MACfliE,GAAW7nG,EAAAA,EAAAA,MACXkpE,EAAcpB,EAAAA,GAAYiB,gBAAgBn5D,KAC1Co6J,EAAmB,UAAThtK,EACVitK,EAA2B,CAC7BvpK,MAAO,OACPhN,WAAYs2K,EAAU,UAAY,UAC/Bv2K,GAKDy2K,EAA4B,CAC9BzpK,WAAY,IACZH,SAAU,OACVJ,WAAYC,EAAAA,EAASC,MAAMsD,qBAC3BjF,MAAOurK,EAAU,OAAS,WAG9B,OACI32K,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTxB,MAAOK,EAAAA,GAAKC,IAAI,4BAChBP,KAAM+iG,EAAWmiE,GAAU32K,EAAAA,EAAAA,KAAC+O,EAAAA,EAAO+nK,aAAY,KAAM92K,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOgoK,iBAAgB,SAAM7vK,EACnFqK,OAAQ,CAAE1G,KAAM+rK,EAAWx7H,QAdC,CAChCluC,QAAS,qBAa6C0G,MAAOijK,GACzDxlK,QAASA,IAAMmlK,EAAmB/hG,EAAAA,GAAYK,qBAAqBe,KACrE,EAIGmhG,EAAwBA,KACjC,MAAM,SAAEz6J,IAAam6J,EAAAA,EAAAA,MACf7gG,EAAcpB,EAAAA,GAAYiB,gBAAgBn5D,KAQ1CvS,EAAUitK,IAChB,OACIj3K,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTgkK,WAAS,EACTzlK,MAAMzR,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOooK,gBAAe,IAC7B5lK,OAAQ,CAAE1G,KAAM,CAAEyP,KAAM,EAAGzK,OAAQ,KACnC6B,OAAO1R,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAG,kCAC5B+E,QAdkB+lK,KACtBhd,EAAAA,EAAIqB,uBAEA2S,EAAAA,EAAaC,gBAAgB55F,EAAAA,GAAYK,qBAAqBe,GAC1C,EAWpB7qE,QAASyI,EAAAA,EAAcS,KACvBlK,QAASA,GACX,EAIJitK,GAAuBv0D,EAAAA,EAAAA,GAAkB,CAC3C73G,KAAM,CAAE,eAAgB,CAAEu5E,KAAM,mLCrE7B,MAAMhzE,EAAgB1N,IAClB1D,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,IAAKxP,EAAO+N,MAAMzR,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOyvG,WAAU,IAAKxzG,QAASyI,EAAAA,EAAc4jK,SAG3EC,EAAkB5zK,IAA8B,IAAD6zK,EAAAC,EAAAC,EACxD,MAAMr3K,EAAuB,CAAEiN,MAAO,OAAoB,QAAfkqK,EAAG7zK,EAAM6N,cAAM,IAAAgmK,OAAA,EAAZA,EAAc1sK,MACtDb,EAAU0tK,EAAgC,QAAdF,EAAC9zK,EAAMsG,eAAO,IAAAwtK,OAAA,EAAbA,EAAe3sK,MAC5C8sK,EAAiBC,IAAW5tK,EAAQa,KAAmB,QAAf4sK,EAAE/zK,EAAMsG,eAAO,IAAAytK,OAAA,EAAbA,EAAe5sK,MAC/D,OACI7K,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTxB,MAAOK,EAAAA,GAAKC,IAAI,mBAChBklK,WAAS,KACLxzK,EACJ+N,KAAM/N,EAAM+N,KAAO/N,EAAM+N,MAAOzR,EAAAA,EAAAA,KAAC+O,EAAAA,EAAO4B,kBAAiB,IACzDY,OAAQ,IAAK7N,EAAM6N,OAAQ1G,KAAMzK,GACjC4J,QAAS,CAAEa,KAAM8sK,IACnB,EAIGE,EAAcn0K,IAA8B,IAADo0K,EAAAC,EAAAC,EACpD,MAAM53K,EAAuB,CAAEiN,MAAO,OAAoB,QAAfyqK,EAAGp0K,EAAM6N,cAAM,IAAAumK,OAAA,EAAZA,EAAcjtK,MAC5D,OACI7K,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACT+kK,YAAYj4K,EAAAA,EAAAA,KAACk4K,EAAS,CAAC93K,MAAmB,QAAd23K,EAAEr0K,EAAM6N,cAAM,IAAAwmK,OAAA,EAAZA,EAAcI,UAC5CzmK,MAAOK,EAAAA,GAAKC,IAAI,eAChBklK,WAAS,EACTlsK,QAASyI,EAAAA,EAAcS,QACnBxQ,EACJ6N,OAAQ,CAAE1G,KAAMzK,EAAOg7C,QAAqB,QAAd48H,EAAEt0K,EAAM6N,cAAM,IAAAymK,OAAA,EAAZA,EAAc58H,UAChD,EAIGu8C,EAAcj0F,IAA8B,IAAD00K,EACpD,MAAMh4K,EAAuB,CAAEiN,MAAO,UAAuB,QAAf+qK,EAAG10K,EAAM6N,cAAM,IAAA6mK,OAAA,EAAZA,EAAcvtK,MAC/D,OACI7K,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTxB,MAAOK,EAAAA,GAAKC,IAAI,eAChBhH,QAASyI,EAAAA,EAAcS,QACnBxQ,EACJ6N,OAAQ,CAAE1G,KAAMzK,IAClB,EAIJ83K,EAAYx1K,IAAqC,IAApC,MAAEtC,GAA4BsC,EAC7C,OACI1C,EAAAA,EAAAA,KAAA,OAAKqN,MAAM,IAAIwC,OAAO,KAAK6zE,QAAQ,WAAWU,KAAK,OAAOhkF,MAAOA,EAAMoI,UACnExI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,mJACN,EAIRitF,GAAqBh1D,EAAAA,EAAAA,GAAW,CAAE73G,KAAM,CAAE,cAAe,CAAEu5E,KAAM,+JCrDhE,IAAK3wE,EAAa,SAAbA,GAAa,OAAbA,EAAa,gBAAbA,EAAa,YAAbA,EAAa,cAAbA,EAAa,4BAAbA,EAAa,YAAbA,EAAa,4BAAbA,EAAa,cAAbA,CAAa,MAkClB,MAAMP,EAAexQ,IAeF,IAfG,MACzBgP,EAAQ,GAAE,KACVD,EAAI,WACJwmK,EAAU,QACVjtK,EAAO,QACPqG,EAAO,SACPL,GAAW,EAAK,KAChBrH,EAAI,OACJgK,EAAM,KACNggK,EAAI,QACJ/hK,GAAU,EAAI,OACdL,EAAM,QACNvH,EAAO,IACP/B,KACGvE,GACahB,EAChB,IAAKkP,EACD,OAAO,KAGX,MAAMymK,EAAaA,KACf,MAAMC,EAAgC,CAAEzqK,YAAa6D,EAAQ,GAAK,KAAY,OAANH,QAAM,IAANA,OAAM,EAANA,EAAQE,MAChF,OACIxF,EAAAA,EAAAA,MAACyE,EAAO,CAACtQ,MAAa,OAANmR,QAAM,IAANA,OAAM,EAANA,EAAQ6pC,QAAQ5yC,SAAA,CAC3BiJ,IAAQzR,EAAAA,EAAAA,KAACu4K,EAAS,CAACn4K,MAAOk4K,EAAe9vK,SAAEiJ,IAC3CC,IAAS1R,EAAAA,EAAAA,KAACkZ,EAAK,CAAC9Y,MAAa,OAANmR,QAAM,IAANA,OAAM,EAANA,EAAQqC,MAAMpL,SAAEkJ,IACvCumK,IAAcj4K,EAAAA,EAAAA,KAACw4K,EAAO,CAACp4K,MAAa,OAANmR,QAAM,IAANA,OAAM,EAANA,EAAQ4mK,QAAQ3vK,SAAEyvK,MAC3C,EAIlB,OACIhsK,EAAAA,EAAAA,MAACwsK,EAAU,CACPzuK,QAAS,CAAEa,KAAa,OAAPb,QAAO,IAAPA,OAAO,EAAPA,EAASa,MAC1B5C,IAAKA,EACLoJ,QAASA,EACTL,SAAUA,GAAY2C,EACtBhK,KAAMA,EACNvJ,MAAO,IACAs4K,EAAU,CAAE1nK,WAAUhG,eAChB,OAANuG,QAAM,IAANA,OAAM,EAANA,EAAQ1G,SAEXnH,EAAK8E,SAAA,CACRmrK,GAAO3zK,EAAAA,EAAAA,KAAC24K,EAAa,CAACvqK,GAAIulK,EAAKnrK,SAAE6vK,MAAgCA,KAClEr4K,EAAAA,EAAAA,KAAC44K,EAAQ,CAAC5tK,QAASA,EAASs7E,KAAM3yE,MACzB,EAIf8kK,GAAa7rK,EAAAA,EAAAA,GAAOooF,EAAAA,EAAPpoF,CAAe,CAC9B,iBAAkB,CACd,UAAW,CAAEpB,gBAAiB,sBAC9B,8BAA+B,CAC3BJ,MAAO,yBAMbsF,GAAU9D,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC1BoN,SAAU,WACV3O,QAAS,OACT4E,WAAY,SACZ2J,eAAgB,SAChB/J,OAAQ,OACRxC,MAAO,OACPH,QAAS,oBACTL,WAAY,SACZI,SAAU,GACVG,WAAY,IACZE,UAAW,WAETirK,GAAY3rK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEiB,YAAa,GAAIxC,QAAS,OAAQ4E,WAAY,WAC1EuoK,GAAU5rK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEgB,WAAY,GAAIvC,QAAS,OAAQ4E,WAAY,WAEvE0oK,GAAgB/rK,EAAAA,EAAAA,GAAOkD,EAAAA,KAAPlD,CAAa,CAAES,MAAO,OAAQwC,OAAQ,SAAU/C,EAAAA,EAAS+rK,kBAEzE3/J,GAAQtM,EAAAA,EAAAA,GAAO6qJ,EAAAA,EAAP7qJ,CAAmB,CAC7BC,WAAY,aACZO,WAAY,IACZH,SAAU,GACVyN,WAAY,SAIVg+J,EAAYzqK,IAAuE,IAAtE,SAAE+C,EAAQ,QAAEhG,EAAO,UAAEksK,GAA4BjpK,EAC5D7N,EAAuB,CACvBm1G,UAAW,GACX/f,QAASxkF,EAAW,GAAM,EAC1B2jF,aAAc,EACdt0F,WAAY,UACZ6M,QAAS,EACT9B,MAAO,aACJ0tK,EAAuB9tK,IAM9B,OAJIksK,IACA92K,EAAMiN,MAAQ,QAGXjN,CAAK,EAGV04K,EAAyB,SAAC9tK,GAAiD,IAA/B5K,EAAoB2gB,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EA+BtE,OA9BI/V,IAAYyI,EAAc4jK,SAC1Bj3K,EAAMC,WAAa,UACnBD,EAAMgL,MAAQ,WAEdJ,IAAYyI,EAAcslK,OAC1B34K,EAAMC,WAAa,UACnBD,EAAMgL,MAAQ,WAEdJ,IAAYyI,EAAculK,eAC1B54K,EAAM8P,OAAS,sBACf9P,EAAMC,WAAa,UACnBD,EAAMgL,MAAQ,WAEdJ,IAAYyI,EAAcS,OAC1B9T,EAAMC,WAAa,UACnBD,EAAMgL,MAAQ,WAEdJ,IAAYyI,EAAcwlK,QAC1B74K,EAAMC,WAAa,UACnBD,EAAMgL,MAAQ,WAEdJ,IAAYyI,EAAcC,eAC1BtT,EAAM8P,OAAS,sBACf9P,EAAMC,WAAa,UACnBD,EAAMgL,MAAQ,WAEdJ,IAAYyI,EAAcylK,QAC1B94K,EAAMC,WAAa,UACnBD,EAAMgL,MAAQ,WAEXhL,CACX,EAGMw4K,EAAWj9J,IAAuC,IAAtC,KAAE2qE,EAAI,QAAEt7E,GAAwB2Q,EAC9C,MAAM3E,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BoN,SAAU,WACV3M,MAAO,OACPwC,OAAQ,OACRxE,QAAS,OACTuO,eAAgB,SAChBc,WAAY,IAEVta,EAAQ04K,EAAuB9tK,GAErC,OAAQs7E,GACJtmF,EAAAA,EAAAA,KAACgX,EAAS,CAAC5W,MAAOA,EAAMoI,UACpBxI,EAAAA,EAAAA,KAACoX,EAAAA,EAAY,CAAClX,UAAW8K,IAAYyI,EAAcS,SAF5C,IAId,yIC5LE,IAAKilK,EAAS,SAATA,GAAS,OAATA,EAAS,YAATA,EAAS,kBAATA,EAAS,oBAATA,EAAS,gBAATA,CAAS,MA+Bd,MAAMC,EAAkB12K,IAA0D,IAAzD,MAAEuE,EAAK,SAAE4rF,KAAanvF,GAA6BhB,EAC/E,MAAO22K,EAAYC,GAAiB14K,EAAAA,SAAeqG,GAEnDrG,EAAAA,WAAgB,KACRy4K,IAAepyK,GACfqyK,EAAcryK,EAClB,GAED,CAACA,IAOJ,OAAOjH,EAAAA,EAAAA,KAACu5K,EAAwB,IAAK71K,EAAOuD,MAAOoyK,EAAYxmF,SALrC2mF,IACtBF,EAAcE,GACN,OAAR3mF,QAAQ,IAARA,GAAAA,EAAW2mF,EAAS,GAGqE,EAKpFD,EAA2BtrK,IAkBX,IAlBY,MACrC2F,EAAK,MACL3M,EAAK,YACLqvF,EAAc,GAAE,aAChBt4C,EACAr8C,MAAO83K,EAAQ,KACf9vK,EAAOwvK,EAAUO,KAAI,UACrBC,EAAS,UACTtgB,EAAS,SACTxmE,EAAQ,OACR+mF,EAAM,QACNvoK,EAAO,SACPL,EAAQ,UACRqkG,EAAS,aACTkhD,EAAY,eACZsjB,EAAc,OACdtoK,KACGosG,GACgB1vG,EACnB,MAAM6rK,GAAOtgG,EAAAA,EAAAA,KAEb,IAAKvyE,IAAUwyK,GAAYz7H,GAAe,CAEtCs4C,EADgCwjF,EAAKC,cAAc,CAAEztK,GAAI,yBAE7D,CAEA,MAAM3K,EAAQ83K,GAAYz7H,EAE1B,OACI/xC,EAAAA,EAAAA,MAAC+K,EAAS,CAAC5W,MAAa,OAANmR,QAAM,IAANA,OAAM,EAANA,EAAQ1G,KAAKrC,SAAA,EAC3ByD,EAAAA,EAAAA,MAACyE,EAAO,CAAAlI,SAAA,CACHoL,IACG5T,EAAAA,EAAAA,KAAC2zG,EAAK,CACFvzG,MAAO,IACA45K,EAAmBxlK,QAAQ7S,OACrB,OAAN4P,QAAM,IAANA,OAAM,EAANA,EAAQqC,OACbpL,SACDoL,KAGT5T,EAAAA,EAAAA,KAACyzF,EAAK,IACEkqB,EACJv9G,MAAO,IACA65K,EAAezlK,QAAQ7S,OACjB,OAAN4P,QAAM,IAANA,OAAM,EAANA,EAAQkE,OAEf6gF,YAAaA,EACbrvF,MAAOA,EACP4rF,SAAWqnF,GAAgB,OAARrnF,QAAQ,IAARA,OAAQ,EAARA,EAAWqnF,EAAIr5J,OAAO5Z,OACzC2yK,OAAQA,EACRvoK,QAASA,EACT1H,KAAMA,EACNgwK,UAAWA,EACXljB,WAAY,CAAE4C,aACdroJ,SAAUA,EACVqkG,UAAWA,EACXwkE,eAAgBA,EAChBtjB,aAAcA,IAAgBv2J,EAAAA,EAAAA,KAAC84J,EAAY,CAAAtwJ,SAAE+tJ,SAGpD50J,IAAS3B,EAAAA,EAAAA,KAAC+B,EAAK,CAAAyG,SAAEw1C,MACV,EAIdhnC,GAAYpK,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAAEqD,WAAY,eAExCS,GAAU9D,EAAAA,EAAAA,GAAOutK,EAAAA,EAAPvtK,CAAoB,CAChCS,MAAO,OACPhC,QAAS,OACToP,cAAe,SACfxK,WAAY,eAEV0jG,GAAQ/mG,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACxBvB,QAAS,OACTuO,eAAgB,aAChBG,aAAc,OACd9M,SAAU,OACVG,WAAY,OACZhC,MAAO,YAIL4uK,EAAsBI,IAAkB,CAAQhvK,MAAOgvK,EAAY,UAAY,YAE/E3mF,GAAQ7mF,EAAAA,EAAAA,GAAOytK,EAAAA,EAAPztK,CAAkB,CAC5BS,MAAO,OACPkoG,UAAW,OACXroG,QAAS,sBACT7M,WAAY,YAEV45K,EAAkBG,IAAkB,CACtChvK,MAAOgvK,EAAY,SAAW,SAC9BlqK,OAAQ,qBAGNnO,GAAQ6K,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAExB,MAAO,UAAWyO,UAAW,QAErDi/I,GAAelsJ,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAE2D,aAAc,qICvJ5C,MAAM+pK,EAAiC,CAAEjtK,MAAO,OAAQwC,OAAQ,QAU1D0qK,EAAe73K,IAAmE,IAAlE,KAAE+O,EAAI,MAAEmC,EAAK,QAAEvC,EAAO,SAAEL,EAAQ,MAAE5Q,GAA0BsC,EACrF,MAAMsH,EAAUwwK,IAChB,OAAQnpK,GACJpF,EAAAA,EAAAA,MAAC+oF,EAAAA,EAAM,CACH3jF,QAASA,EACTL,SAAUA,EACV5Q,MAAOA,EACP4J,QAAS,CAAEa,KAAMb,EAAQa,KAAM+I,MAAO5J,EAAQoxC,SAAU5yC,SAAA,CACvDiJ,EACAmC,IAAS5T,EAAAA,EAAAA,KAAC2zG,EAAK,CAAAnrG,SAAEoL,OAPR,IASjB,EAEC+/F,GAAQ/mG,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAExB,MAAO,UAAWyB,WAAY,aAAcI,SAAU,KAE9EutK,GAAgB93D,EAAAA,EAAAA,IAAW,MAC7B73G,KAAM,CACFwP,SAAU,cACVhN,MAAO,cAEPkoG,UAAW,GACX5gB,aAAc,EACd,CAAC,uBAAD7mF,OAAwBC,EAAAA,GAAamoJ,UAAS,QAAQ,CAClD77I,SAAU,GACVhN,MAAO,GACPwC,OAAQ,OACR0lG,UAAW,KAGnBn6D,QAAS,CAAE/vC,QAAS,OAAQoP,cAAe,SAAUxK,WAAY,+IC+CjEwqK,EAAsB75K,EAAAA,YAAiB,SAAgB8C,EAAOuE,GAChE,IAAI+B,EAAUtG,EAAMsG,QAChBC,EAAYvG,EAAMuG,UAClBywK,EAAeh3K,EAAM0H,MACrBA,OAAyB,IAAjBsvK,EAA0B,UAAYA,EAC9CC,EAAkBj3K,EAAMsW,SACxBA,OAA+B,IAApB2gK,EAA6B,QAAUA,EAClDnwK,GAAQC,EAAAA,EAAAA,GAAyB/G,EAAO,CAAC,UAAW,YAAa,QAAS,aAE9E,OAAoB9C,EAAAA,cAAoBi1J,EAAAA,GAAO9vJ,EAAAA,EAAAA,GAAS,CACtD60K,QAAQ,EACRzwK,UAAW,SACX0wK,UAAW,EACX5wK,WAAWW,EAAAA,EAAAA,SAAKZ,EAAQa,KAAMb,EAAQ,WAAW8D,QAAOgtK,EAAAA,EAAAA,GAAW9gK,KAAahQ,EAAQ,QAAQ8D,QAAOgtK,EAAAA,EAAAA,GAAW1vK,KAAUnB,EAAwB,UAAb+P,GAAwB,aAC/J/R,IAAKA,GACJuC,GACL,IAmCA,SAAeU,EAAAA,EAAAA,IAtIK,SAAgBC,GAClC,IAAI4vK,EAAgD,UAAvB5vK,EAAMM,QAAQ9B,KAAmBwB,EAAMM,QAAQuvK,KAAK,KAAO7vK,EAAMM,QAAQuvK,KAAK,KAC3G,MAAO,CAELnwK,KAAM,CACJQ,QAAS,OACToP,cAAe,SACfpN,MAAO,OACP4tK,UAAW,aAEXC,OAAQ/vK,EAAM+vK,OAAOC,OACrBC,WAAY,GAIdC,cAAe,CACbrhK,SAAU,QACVG,IAAK,EACLF,KAAM,OACNC,MAAO,EACP,eAAgB,CAEdF,SAAU,aAKdshK,iBAAkB,CAChBthK,SAAU,WACVG,IAAK,EACLF,KAAM,OACNC,MAAO,GAITqhK,eAAgB,CAEdvhK,SAAU,SACVG,IAAK,EACLF,KAAM,OACNC,MAAO,GAITshK,eAAgB,CACdxhK,SAAU,UAIZyhK,iBAAkB,CAChBzhK,SAAU,YAIZ0hK,aAAc,CACZlwK,gBAAiBuvK,EACjB3vK,MAAOD,EAAMM,QAAQkwK,gBAAgBZ,IAIvCa,aAAc,CACZpwK,gBAAiBL,EAAMM,QAAQowK,QAAQhwK,KACvCT,MAAOD,EAAMM,QAAQowK,QAAQC,cAI/BC,eAAgB,CACdvwK,gBAAiBL,EAAMM,QAAQG,UAAUC,KACzCT,MAAOD,EAAMM,QAAQG,UAAUkwK,cAIjCE,aAAc,CACZ5wK,MAAO,WAIT6wK,iBAAkB,CAChBzwK,gBAAiB,cACjBJ,MAAO,WAGb,GAoDkC,CAChCnJ,KAAM,aADR,CAEGw4K,4JCtIH,MAMayB,EAAQx5K,IAAgD,IAA/C,MAAEy5K,GAAuCz5K,EAC3D,MAAM05K,GAPgB9vK,EAOkB6vK,EAAM7vK,GAPd,SAAAwB,OAAcxB,EAAE,YAA1BA,MAStB,MAAMsP,GAAYC,EAAAA,EAAAA,MACXwgK,EAAUC,GAAe17K,EAAAA,SAAwD,SAAzCo7C,aAAan4B,QAAQu4J,IAC9D9qK,EATQirK,EAAC3gK,EAAoBygK,KAC3BzgK,IAAcygK,EAQTE,CAAU3gK,EAAWygK,GAE5B1I,EAAO6I,EAAoBL,EAAMvmK,aACjC6mK,EAAgBC,IAAAA,SAAmBP,EAAMvmK,YAAa,CAAE+mK,SAAU,CAAC,YAEzE,OAAQrrK,GACJrF,EAAAA,EAAAA,MAAC+K,EAAS,IACD28J,EAAO,CAAEtiK,QAASA,IAAM0L,OAAOjL,KAAK6hK,EAAM,gBAAczsK,EAC7D9G,MAAO,CACHya,OAAQ84J,EAAO,UAAY,UAC3BnoK,gBAAiB2wK,EAAMS,iBACvBxxK,MAAO+wK,EAAMU,WACb5vK,SAAUkvK,EAAMW,WAClBt0K,SAAA,EACFxI,EAAAA,EAAAA,KAAC+V,EAAW,CAAC9L,UAAU,2BAA0BzB,UAC7CxI,EAAAA,EAAAA,KAAA,OAAK+8K,wBAAyB,CAAEC,OAAQP,QAE5Cz8K,EAAAA,EAAAA,KAACi9K,EAAK,CACF5rK,QAAUioF,IACNA,EAAMub,kBACN74D,aAAah5B,QAAQo5J,EAAgB,QACrCE,GAAY,EAAK,EACnB9zK,UACFxI,EAAAA,EAAAA,KAACk9K,EAAAA,EAAS,SAlBP,IAqBd,EAICV,EAAuBW,IACzB,MACMj+H,EAAQ,IAAIi+H,EAAKvkG,SADT,2CAEd,OAAsB,KAAb,OAAL15B,QAAK,IAALA,OAAK,EAALA,EAAO3lC,QACA2lC,EAAM,GAAG,GAEb,IAAI,EAGTloC,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BiD,OAAQ,OACRxP,WAAY,UACZ4iF,OAAQ,EACR/1E,QAAS,QACTI,UAAW,SACXuN,OAAQ,UACRxP,QAAS,OACT4E,WAAY,SACZ2J,eAAgB,SAChBxO,MAAO,QACP6B,SAAU,OACV0mF,EAAG,CACC5jF,eAAgB,UAIlBgG,GAAcnJ,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC9BC,WAAYC,EAAAA,EAASC,MAAMsD,qBAC3BnD,QAAS,EACToN,KAAM,IAGJ2iK,GAAQrwK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACxBxB,MAAO,QACPyP,OAAQ,UACRq/I,WAAY,aACZ,UAAW,CAAE9uJ,MAAO,SACpBC,QAAS,OACT4E,WAAY,qCCrFT,MAAMmtK,GAAAA,EACKC,2BAA6B,IAChCjZ,EAAAA,EAAWpyJ,IAA8B0nE,EAAAA,EAAQmC,iJCSzD,MAAMyhG,EAAaA,KAAO,IAADC,EAC5B,MAAMjmF,EAAW12F,EAAAA,OAAa,OAEvBq4F,EAAYukF,GAAiB58K,EAAAA,UAAe,GAE7C43F,EAAYA,IAAYglF,GAAc,GAEtC5hK,GAAYC,EAAAA,EAAAA,MACZ,gBAAE2M,EAAe,KAAEvmB,EAAI,YAAEw7K,EAAW,SAAE1qK,IAA8B2qK,EAAAA,EAAAA,MAEpE,SAAElpE,IAAampE,EAAAA,EAAAA,MAErB,OAAOn1J,IAAoBi1J,GACvBxxK,EAAAA,EAAAA,MAAC+K,EAAS,CAAC/O,IAAKqvF,EAAS9uF,SAAA,EACrBxI,EAAAA,EAAAA,KAACu6K,EAAAA,EAAY,CACT9oK,MAAMzR,EAAAA,EAAAA,KAAC+O,EAAAA,EAAO6uK,SAAQ,IACtBhqK,MAAO4gG,OAAWttG,GAAYlH,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAG,mBACnD0E,SAAU4K,EACVvK,QAASA,IAdQmsK,GAAc,MAgBnCx9K,EAAAA,EAAAA,KAACq3F,EAAAA,GAAO,CACJvlF,KAAMmnF,EACN3B,SAAUA,EAAS/uF,QACnBs1K,gBAAgB,WAChBjrK,QAAS4lF,EACTjB,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChDC,gBAAiB,CAAEF,SAAU,MAAOC,WAAY,SAChD/F,WAAY,CAAEtxF,MAAO,CAAEiL,QAAS,OAAQyyK,SAAU,WAAat1K,UAC/DyD,EAAAA,EAAAA,MAACyE,EAAO,CAAAlI,SAAA,CACHvG,IAAQjC,EAAAA,EAAAA,KAAC+9K,EAAQ,CAAAv1K,SAAEvG,IACnBA,IAAQjC,EAAAA,EAAAA,KAACg+K,EAAY,CAACxlF,UAAWA,KAChCzlF,IAAa8gC,EAAAA,EAAU+D,iBACrB53C,EAAAA,EAAAA,KAACi+K,EAAa,CAAAz1K,UACVxI,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CACbC,GAAG,iBACH+L,OAAQ,CACJ6lK,YACwE,QAD7DX,EACPxrK,EAAAA,GAAKC,IAAI,sBAADlE,OAAuB+lC,EAAAA,EAAU8D,qBAA2B,IAAA4lI,EAAAA,EACpExrK,EAAAA,GAAKC,IAAI,+BACbmsK,eAAgBtqI,EAAAA,EAAU6D,4BAQtD,IAAI,EAGC0mI,EAAmBx9K,EAAAA,KAAW08K,GAErCtmK,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEiD,OAAQ,SACpCa,GAAU9D,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAAEqD,WAAY,WACtC8tK,GAAWnxK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEq2E,OAAQ,GAAIlpE,aAAc,IACrDkkK,GAAgBrxK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAExB,MAAO,UAAW6B,SAAU,EAAGK,UAAW,SAAU21E,OAAQ,KAI5F+6F,EAAet7K,IAAuC,IAAtC,UAAE81F,GAA8B91F,EAClD,MAAM,WAAE27K,EAAU,gBAAE71J,EAAe,aAAE81J,EAAY,cAAEC,IAAmCb,EAAAA,EAAAA,KAUtF,OACI19K,EAAAA,EAAAA,KAACw+K,EAAe,CAACntK,QATWotK,KACxBj2J,EACA+1J,EAAc/lF,GAEd8lF,EAAa9lF,EACjB,EAIkDhwF,UAC9CxI,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAI+xK,EAAa,gBAAkB,kBACvC,EAIpBG,GAAkB5xK,EAAAA,EAAAA,GAAOooF,EAAAA,EAAPpoF,CAAe,CACnCq2E,OAAQ,GACRlzE,eAAgB,YAChBo5G,cAAe,OACfl8G,SAAU,GACVG,WAAY,IACZE,UAAW,QACXqnF,aAAc,8BCzEX,MAAM19E,GAASvU,IAAmD,IAAlD,cAAEg8K,EAAa,OAAEntK,GAA2B7O,EAC/D,MAAM,SAAE8xG,IAAampE,EAAAA,EAAAA,OACdgB,EAAkBC,GAAuBh+K,EAAAA,cAAgDsG,IAChGkvF,EAAAA,EAAAA,YAAU,KACNluF,GAAM,GACP,IAGH,MAAMA,EAAOpH,UACT,MAAMmI,QAAYm0K,EAAUC,6BAC5BuB,EAAoB31K,EAAIS,KAAK,EAG3Bm1K,EAAe5wK,IAA4D,IAA3D,MAAEkuK,GAAmDluK,EACvE,OACIhC,EAAAA,EAAAA,MAAC6yK,GAAe,CAAAt2K,SAAA,EACZyD,EAAAA,EAAAA,MAAC8yK,GAAqB,CAAC3+K,MAAOmR,EAAO1G,KAAKrC,SAAA,EACtCxI,EAAAA,EAAAA,KAACg/K,GAAU,KACX/yK,EAAAA,EAAAA,MAACgzK,GAAgB,CAAC7+K,MAAO,CAAEyP,OAAQ,QAASrH,SAAA,CACvCk2K,IAAiB1+K,EAAAA,EAAAA,KAAC0+K,EAAa,KAChC1+K,EAAAA,EAAAA,KAACo+K,EAAgB,KACjBp+K,EAAAA,EAAAA,KAACk/K,GAAiB,UAGzB/C,GAAQn8K,EAAAA,EAAAA,KAACk8K,EAAK,CAACC,MAAOA,SAAYj1K,IACrB,EAG1B,OAAOstG,GACHx0G,EAAAA,EAAAA,KAAC6+K,EAAY,CAAC1C,MAAOwC,KAErB3+K,EAAAA,EAAAA,KAACm/K,GAAa,CAACT,cAAeA,EAAentK,OAAQA,EAAQotK,iBAAkBA,GAClF,EAGCG,IAAkBlyK,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAAES,MAAO,SAEzC8xK,GAAgBxjK,IAAqE,IAADyjK,EAAAC,EAAA,IAAnE,cAAEX,EAAa,OAAEntK,EAAM,iBAAEotK,GAAqChjK,EACjF,MAAMyB,GAAiBV,EAAAA,EAAAA,MACvB,OACIzQ,EAAAA,EAAAA,MAACqzK,GAAgB,CAAA92K,SAAA,EACbyD,EAAAA,EAAAA,MAACE,GAAe,CAAC/L,MAAOmR,EAAO1G,KAAKrC,SAAA,EAChCxI,EAAAA,EAAAA,KAACg/K,GAAU,KACXh/K,EAAAA,EAAAA,KAACkZ,GAAK,CAAA1Q,SAAsB,QAAtB42K,EAAEhiK,EAAe5b,aAAK,IAAA49K,GAAS,QAATC,EAApBD,EAAsBrrK,eAAO,IAAAsrK,OAAT,EAApBA,EAA+B1pK,YACvC1J,EAAAA,EAAAA,MAACgzK,GAAgB,CAAC7+K,MAAO,CAAEgQ,IAAK,GAAIG,aAAc,IAAK/H,SAAA,CAClDk2K,IAAiB1+K,EAAAA,EAAAA,KAAC0+K,EAAa,KAChC1+K,EAAAA,EAAAA,KAACo+K,EAAgB,KACjBp+K,EAAAA,EAAAA,KAACk/K,GAAiB,UAGzBP,GAAmB3+K,EAAAA,EAAAA,KAACk8K,EAAK,CAACC,MAAOwC,SAAuBz3K,IAC1C,EAGdq4K,GAAe3+K,EAAAA,KAAWqW,IACjCqoK,IAAmB1yK,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAAES,MAAO,SAE1C6L,IAAQtM,EAAAA,EAAAA,GAAO+N,EAAAA,GAAP/N,CAA4B,CACtCxB,MAAO,UACPiC,MAAO,OACPwC,OAAQ,OACR3C,QAAS,GACT4N,SAAU,SACV1N,WAAY,IAEZ/B,QAAS,cACT4B,SAAU,SACVuyK,UAAW,EACX9nB,UAAW,SACX+nB,UAAW,WACX/kK,WAAY,SACZK,aAAc,WACdzN,UAAW,WAGT2xK,IAAmBryK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACnCvB,QAAS,OACT4E,WAAY,SAEZrC,WAAY,SAKVzB,IAAkBS,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAClCvB,QAAS,OACT4E,WAAY,SACZ2J,eAAgB,gBAChBvM,MAAO,OACPwC,OAAQ,GACRtC,aAAc,oBAEd+C,YAAa,GACbC,aAAc,EAEd/E,gBAAiB,UACjBwO,SAAU,aAKR+kK,IAAwBnyK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACxCvB,QAAS,OACT4E,WAAY,SACZ5C,MAAO,OACPwC,OAAQ,GACRS,YAAa,EACb/C,aAAc,oBACdyM,SAAU,WACVxO,gBAAiB,YAGfwzK,GAAaA,KACf,MAAM,SAAExqE,IAAampE,EAAAA,EAAAA,MAEf/1J,EAAWA,IAAMwmJ,EAAAA,EAAaC,gBAAgBx6H,EAAAA,EAAU0F,WAE9D,OAAOi7D,GACHx0G,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOqmK,KAAI,CAAC9oK,GAAG,OAAOlM,MAAO,CAAEyP,OAAQ,IAAMwB,QAASuW,KAEvD5nB,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOqmK,KAAI,CAAC9oK,GAAG,OAAOlM,MAAO,CAAEiN,MAAO,IAAKwN,OAAQ,WAAaxJ,QAASuW,GAC7E,EAGCs3J,GAAoBA,KACtB,MAAM,SAAE3iK,IAAam6J,EAAAA,EAAAA,OACf,SAAEliE,IAAampE,EAAAA,EAAAA,MACf9nG,EAAcpB,EAAAA,GAAYiB,gBAAgBn5D,KAChD,OAAOi4F,GACHx0G,EAAAA,EAAAA,KAACu6K,EAAAA,EAAY,CACT9oK,MAAMzR,EAAAA,EAAAA,KAAC+O,EAAAA,EAAO+nK,aAAY,CAAC12K,MAAOk6K,EAAAA,IAClCl6K,MAAO,CAAEoL,gBAAiB,WAC1B6F,QAASA,KAAMmlK,EAAAA,EAAAA,IAAmB/hG,EAAAA,GAAYK,qBAAqBe,OAGvE71E,EAAAA,EAAAA,KAACy2K,EAAAA,GAAiB,CAAC9sK,KAAK,QAAQvJ,MAAO,CAAEwN,WAAY,GAAI2nG,UAAW,GAAIloG,MAAO,gBAClF,ECpJQyJ,GAAwCpU,IAA2D,IAAxD8F,SAAU4yC,EAAO,eAAEskI,EAAc,cAAEhB,GAAeh8K,EACtG,OACIuJ,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAAC2/K,GAAQ,CAAC3lK,SAAS,WAAW6gK,UAAW,EAAEryK,UACvCxI,EAAAA,EAAAA,KAACu/K,GAAY,CAAChuK,OAAQ,CAAE1G,KAAM+0K,IAAelB,cAAeA,OAEhE1+K,EAAAA,EAAAA,KAAC6/K,GAAW,CAAAr3K,SAAE4yC,IACb5mC,QAAQkrK,KAAmB1/K,EAAAA,EAAAA,KAAC8/K,GAAe,CAACJ,eAAgBA,MAC9D,EAILG,GAAwBj/K,EAAAA,MAC1BqN,IAAA,IAAC,SAAEzF,GAAUyF,EAAA,OAAKjO,EAAAA,EAAAA,KAAC+/K,GAAW,CAACzzK,GAAG,cAAa9D,SAAEA,GAAuB,IACxE,KAAM,IAGJm3K,IAAW/yK,EAAAA,EAAAA,GAAO6tK,EAAP7tK,CAAe,CAAC,GAC3BgzK,GAA6B,CAAEvyK,MAAO,QAEtC0yK,IAAcnzK,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAC/BvM,WAAY,UACZwP,OAAQ,OACRyK,KAAM,EACNQ,SAAU,SACVD,OAAQ,YAMNilK,GAAkBnkK,IAA+C,IAA9C,eAAE+jK,GAAsC/jK,EAC7D,MAAMqkK,GAAkBC,EAAAA,EAAAA,MAAc5+K,UAChC,SAAEkb,IAAaG,EAAAA,EAAAA,MAKrB,OACI1c,EAAAA,EAAAA,KAACkgL,IAAgB,CAACC,KALDC,CAACC,EAA6BC,KAAwC,IAADC,EACtF,OAA0B,QAAnBA,EAAChkK,IAAWikK,eAAO,IAAAD,GAAAA,KAA2B,OAAZD,QAAY,IAAZA,GAAAA,EAAcj/K,SAASi3C,WAAW0nI,GAAgB,EAIrDS,eAAa,EAAAj4K,SAC9Cy9D,IAAA,IAAC,UAAEy6G,EAAS,SAAEC,GAAU16G,EAAA,OAAmB,OAAdy5G,QAAc,IAAdA,OAAc,EAAdA,EAAiBgB,EAAWC,EAAS,GACpD,iJCjD3B,MAIalxK,EAAa/M,IAAsD,IAArD,MAAEgN,EAAK,QAAE1E,EAAU,WAA4BtI,EACtE,GAAKgN,EAEE,IAAgB,YAAZ1E,EAAuB,CAC9B,MAAM,QAAE41K,EAAO,QAAE1wH,GA4CzB,SAAoBxgD,GAChB,MAAOkxK,EAAS1wH,EAAU,IAAMupB,OAAO/pE,GAAO8wC,MAAM,KAC9CqgI,EAAmB3wH,EAAQ7Z,MAAM,EAtDb,GAuD1B,MAAO,CAAEuqI,UAAS1wH,QAAS2wH,EAC/B,CAhDqCC,CAAWpxK,GACxC,OACIzD,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAACuY,EAAAA,GAAe,CACZtR,MAAO6xC,SAAS8nI,GAEhBxgL,MAAM,WACN2gL,SAAS,MACTtoK,sBAAuB,EACvBuoK,sBAAuB,EAAEx4K,SACvBy4K,IAESjhL,EAAAA,EAAAA,KAAAmR,EAAAA,SAAA,CAAA3I,SAAGy4K,EAAe5qI,MAAM,GAAI,GAAK4qI,EAAe5qI,OAAO,OAGrE6Z,EAAQ32C,OAAS,IAAKvZ,EAAAA,EAAAA,KAACkhL,EAAa,CAAA14K,SAAE0nD,MAGnD,CACI,OACIlwD,EAAAA,EAAAA,KAACuY,EAAAA,GAAe,CACZtR,MAAOyI,EAEPtP,MAAM,WACN2gL,SAAS,MACTtoK,sBAjCc,EAkCduoK,sBAlCc,GAqC1B,CA/BI,OAAOhhL,EAAAA,EAAAA,KAAAmR,EAAAA,SAAA,CAAA3I,SAAE,KA+Bb,EAGE04K,GAAgBt0K,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CACjCC,WAAYC,EAAAA,EAASC,MAAMiD,yBAC3B/C,SAAU,GACV3B,cAAe,SACfoP,WAAY,SAGHymK,GAAav0K,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAAEK,SAAU,UAAWyN,WAAY,SAC/D0mK,GAAex0K,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAAEK,SAAU,UAAWqlF,UAAW,aAChE+uF,GAAoBz0K,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAAEK,SAAU,OAAQyN,WAAY,SACnE4mK,GAAsB10K,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAAEK,SAAU,MAAOqlF,UAAW,sHChDzE,MAAMV,EAAclvF,IAA8C,IAA7C,SAAE8F,KAAam1G,GAAwBj7G,EAC/D,OACI1C,EAAAA,EAAAA,KAACgX,EAAS,IAAK2mG,EAAIn1G,SACdA,IAAsBxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOwyK,eAAc,CAACnhL,MAAO,CAAEiN,MAAO,GAAIwC,OAAQ,OAClE,EAGdmH,GAAYpK,EAAAA,EAAAA,GAAOgE,EAAAA,EAAPhE,CAAmB,CAAEoN,SAAU,WAAYE,MAAO,6HCR7D,MAAMja,EAA0CyC,IAA8C,IAA7C,QAAEvC,EAAO,MAAEC,EAAK,UAAEF,EAAS,SAAEsI,GAAU9F,EAC3F,OAAQvC,GACJ8L,EAAAA,EAAAA,MAACu1K,EAAO,CAACl1K,GAAG,cAAclM,MAAOA,EAAMoI,SAAA,EACnCxI,EAAAA,EAAAA,KAACo1K,EAAAA,EAAI,KACLp1K,EAAAA,EAAAA,KAACoX,EAAAA,EAAY,CAAClX,UAAWA,EAAWqR,OAAQ,CAAE1G,KAAM,CAAEgP,UAAW,OAChErR,KAJS,IAMjB,EAECg5K,GAAU50K,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAC1BoN,SAAU,WACV/J,WAAY,SACZ2J,eAAgB,SAChBvZ,WAAY,qBACZ8Z,IAAK,EACL9M,MAAO,OACPwC,OAAQ,OACRqrK,OAAQ,KAGCuG,GAAqB70K,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5CxB,MAAO,UACPyB,WAAY,WACZs8G,cAAe,YACftvG,UAAW,GACX5M,SAAU,GACVK,UAAW,iFC/BR,MAAM8M,GAAQxN,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQoP,cAAe,WACxDinK,GAAO90K,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQs2K,SAAU,yICKxD,MAAMC,GAAkBh1K,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACzCQ,WAAY,IACZP,WAAYC,EAAAA,EAASC,MAAMsD,qBAC3BjF,MAAO,YAGEuP,GAAsB/N,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAE7CQ,WAAY,IACZP,WAAYC,EAAAA,EAASC,MAAMiD,2BAGlB8J,GAAgBlN,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACvCQ,WAAY,IACZP,WAAYC,EAAAA,EAASC,MAAM80K,mBAC3B14D,cAAe,YACf/9G,MAAO,YAGE+qJ,GAAcvpJ,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACrCQ,WAAY,IACZP,WAAYC,EAAAA,EAASC,MAAMC,iBAC3B5B,MAAO,wICTX,MAAM02K,EAAelhL,EAAAA,cAAuC,CAAEY,MAAO,CAAC,EAAG8S,OAAQA,SACpEwkF,EAAkBA,IAAMl4F,EAAAA,WAAiBkhL,GACzCC,EAAuBA,IAAMnhL,EAAAA,WAAiBkhL,GAActgL,MAE5DwgL,EAA0Bt/K,IAAmB,IAAlB,SAAE8F,GAAU9F,EAChD,MAAMu/K,EAAuBztK,QAAQwnC,aAAan4B,QAAQ3G,EAAAA,EAAO4+B,YAC3D,MAAEt6C,EAAK,SAAE+a,EAAQ,OAAEjI,IAAWC,EAAAA,EAAAA,GAAgC,CAChE2tK,oBAAqBD,EACrBE,iBAAkBF,EAClBG,iBAAkBH,EAElBxoF,4BAA4B,EAC5B4oF,gBAAiB7tK,QAAQwnC,aAAan4B,QAAQ3G,EAAAA,EAAO6+B,gBAKzD,OAFAj/B,EAAAA,EAAAA,IAAa,IAAOC,OAAOulK,WAAa/lK,KAEjCvc,EAAAA,EAAAA,KAAC8hL,EAAa7kK,SAAQ,CAAChW,MAAO,CAAEzF,QAAO8S,UAAS9L,SAAEA,GAAiC,kSCrBvF,MAAM+5K,EAAcA,KACvB,MAAMC,GAAa1pF,EAAAA,EAAAA,MAAkBt3F,MAC/BihL,EACFD,EAAWL,kBACXK,EAAWN,qBACXM,EAAW/oF,4BACX+oF,EAAWJ,kBAERnpF,EAAYrC,GAAWh2F,EAAAA,UAAwB,GAChD02F,EAAW12F,EAAAA,OAAa,MAK9B,OAAQ6hL,GACJx2K,EAAAA,EAAAA,MAAC+K,EAAS,CAAC/O,IAAKqvF,EAAUhrF,GAAG,2BAA0B9D,SAAA,EACnDxI,EAAAA,EAAAA,KAACq3F,EAAAA,GAAO,CACJvlF,KAAMmnF,EACN3B,SAAUA,EAAS/uF,QACnBs1K,gBAAgB,WAChBtmF,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChDC,gBAAiB,CAAEF,SAAU,SAAUC,WAAY,QACnD7kF,QAVEgtG,IAAMhpB,GAAQ,GAWhBlF,WAAY,CAAEtxF,MAAOuxF,GAAanpF,UAClCxI,EAAAA,EAAAA,KAAC0iL,EAAS,OAEd1iL,EAAAA,EAAAA,KAAC2iL,EAAAA,EAAa,CACVtxK,QAhBCS,IAAM8kF,GAAQ,GAiBfx2F,MAAO,CACHya,OAAQ,UACRzP,MAAOw3K,EAAmBC,MAC1Bx1K,MAAO,OACPwC,OAAQ,OACR3C,QAAS,YAnBC,IAuBzB,EAGQ41K,EAA2BliL,EAAAA,KAAW2hL,GAEtCK,EAAqB,CAC9BG,WAAY,UACZF,MAAO,UACPG,cAAe,WAEbrxF,EAA4B,CAC9BsxF,UAAW,WACXtuF,aAAc,OACdt0F,WAAYuiL,EAAmBI,eAGtBE,GAAYt2K,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACnCoN,SAAU,WACVG,IAAK,EACLF,KAAM,EACNC,MAAO,EACP+6E,OAAQ,EACRkuF,eAAgB,aAChB9iL,WAAY,6BAGV2W,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BvM,WAAW,GAADyN,OAAK80K,EAAmBG,WAAU,eAC5C3iE,UAAW,2BACX/yG,MAAO,GACPwC,OAAQ,GACR8kF,aAAc,GACdtpF,QAAS,OACT4E,WAAY,SACZ2J,eAAgB,WAKdw5E,GAAgBxmF,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAChCoN,SAAU,WACVu7F,UAAW,IACXl7F,SAAU,IACVnN,QAAS,KAGAw1K,EAAYA,KACrB,MACIlhL,OAAO,oBAAE0gL,EAAmB,iBAAEC,EAAgB,iBAAEC,EAAgB,2BAAE3oF,GAA4B,OAC9FnlF,IACAwkF,EAAAA,EAAAA,MACJ,OACI7sF,EAAAA,EAAAA,MAACmnF,EAAa,CAAA5qF,SAAA,EACVxI,EAAAA,EAAAA,KAACkjL,EAAS,KACVljL,EAAAA,EAAAA,KAACijH,EAAI,CAACmgE,QAASlB,EAAqBrvF,SAAW5rF,GAAUqN,EAAO,CAAE4tK,oBAAqBj7K,IAASuB,UAC5FyD,EAAAA,EAAAA,MAACiN,EAAK,CAAA1Q,SAAA,EACFxI,EAAAA,EAAAA,KAACqjL,EAAAA,EAAY,IAAG,8BAGxBrjL,EAAAA,EAAAA,KAACijH,EAAI,CAACmgE,QAASjB,EAAkBtvF,SAAW5rF,GAAUqN,EAAO,CAAE6tK,iBAAkBl7K,IAAUq8K,SAAO,EAAA96K,UAC9FyD,EAAAA,EAAAA,MAACiN,EAAK,CAAA1Q,SAAA,EACFxI,EAAAA,EAAAA,KAACqjL,EAAAA,EAAY,IAAG,2BAGxBrjL,EAAAA,EAAAA,KAACijH,EAAI,CAACmgE,QAAShB,EAAkBvvF,SAAW5rF,GAAUqN,EAAO,CAAE8tK,iBAAkBn7K,IAASuB,UACtFyD,EAAAA,EAAAA,MAACiN,EAAK,CAAA1Q,SAAA,EACFxI,EAAAA,EAAAA,KAACujL,EAAAA,EAAU,IAAG,uCAItBvjL,EAAAA,EAAAA,KAACijH,EAAI,CACDmgE,QAAS3pF,EACT5G,SAAW5rF,GAAUqN,EAAO,CAAEmlF,2BAA4BxyF,IAC1Dq8K,SAAO,EAAA96K,UACPyD,EAAAA,EAAAA,MAACiN,EAAK,CAAA1Q,SAAA,EACFxI,EAAAA,EAAAA,KAACujL,EAAAA,EAAU,IAAG,6BAItBvjL,EAAAA,EAAAA,KAACwjL,EAAW,KAEZxjL,EAAAA,EAAAA,KAACyjL,EAAgB,KACjBzjL,EAAAA,EAAAA,KAAC0jL,EAAY,MACD,EAIlBzgE,EAA4BvgH,IAAuD,IAAtD,QAAE0gL,GAAU,EAAK,SAAEvwF,EAAQ,QAAEywF,EAAO,SAAE96K,GAAU9F,EAC/E,MAAMsH,GAAU04G,EAAAA,EAAAA,IAAYv3G,IAAK,CAC7Bw4K,aAAc,CAAEn4K,gBAAiB,UAAWgqF,QAAS,GACrDouF,YAAa,CACTx4K,MAAO,UACP,gBAAiB,CAAEA,MAAO,WAC1B,mCAAoC,CAAEI,gBAAiB,UAAWgqF,QAAS,OALnEktB,GAShB,OACIz2G,EAAAA,EAAAA,MAAC43K,EAAa,CACVxyK,QAASA,IAAMwhF,GAAUuwF,GACzBhjL,MAAO,CAAEmN,aAAc+1K,EAAU,oBAAsB,QAAS96K,SAAA,CAC/DA,GACDxI,EAAAA,EAAAA,KAAC8jL,EAAAA,EAAM,CACHV,QAASA,EACTp5K,QAAS,CACL+5K,MAAO/5K,EAAQ25K,aACfK,WAAYh6K,EAAQ45K,iBAGhB,EAGlBC,GAAgBj3K,EAAAA,EAAAA,GAAOooF,EAAAA,EAAPpoF,CAAe,CACjCvB,QAAS,OACT4E,WAAY,SACZ2J,eAAgB,gBAChBxO,MAAO,UACPgC,WAAY,IACZyN,OAAQ,UACRhL,OAAQ,GACRo0K,YAAa,UACb/2K,QAAS,mBACTynF,aAAc,IAIZ8uF,EAAmBA,KACrB,MAAO7xK,EAASmnE,GAAcn4E,EAAAA,UAAwB,GAGhD8I,GAAOgpH,EAAAA,EAAAA,MAAkBlxH,MAC/B,OACIyK,EAAAA,EAAAA,MAAC43K,EAAa,CAACxyK,QAHNC,IAAMynE,GAAW,GAGI34E,MAAO,CAAEyZ,UAAW,IAAKrR,SAAA,EACnDyD,EAAAA,EAAAA,MAACiN,EAAK,CAAA1Q,SAAA,EACFxI,EAAAA,EAAAA,KAACkkL,EAAAA,EAAY,IAAG,oBAEnBtyK,IACG5R,EAAAA,EAAAA,KAAC60F,EAAAA,EAAW,CACRnjF,OACIzF,EAAAA,EAAAA,MAACiN,EAAK,CAAA1Q,SAAA,EACFxI,EAAAA,EAAAA,KAACkkL,EAAAA,EAAY,IAAG,IAAC,+BAAAp2K,OAA6BpE,EAAK4vD,cAG3D5vD,KAAMA,EACNkJ,QAhBHL,IAAMwmE,GAAW,OAmBV,EAIlB2qG,EAAeA,KACjB,MAAO9xK,EAASmnE,GAAcn4E,EAAAA,UAAwB,GAGhD8I,GAAOmpG,EAAAA,EAAAA,MACb,OACI5mG,EAAAA,EAAAA,MAAC43K,EAAa,CAACxyK,QAHNC,IAAMynE,GAAW,GAGGvwE,SAAA,EACzByD,EAAAA,EAAAA,MAACiN,EAAK,CAAA1Q,SAAA,EACFxI,EAAAA,EAAAA,KAACmkL,EAAAA,EAAO,IAAG,gBAEdvyK,IACG5R,EAAAA,EAAAA,KAAC60F,EAAAA,EAAW,CACRnjF,OACIzF,EAAAA,EAAAA,MAACiN,EAAK,CAAA1Q,SAAA,EACFxI,EAAAA,EAAAA,KAACmkL,EAAAA,EAAO,IAAG,iBAGnBz6K,KAAMA,EACNkJ,QAhBHL,IAAMwmE,GAAW,OAmBV,EAIlB7/D,GAAQtM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQ4E,WAAY,SAAUG,IAAK,KAEpEozK,EAAcA,KAChB,MAAM,WAAEnxH,EAAU,MAAEiB,EAAQ,GAAE,SAAEwN,EAAW,GAAE,MAAE6R,EAAQ,GAAE,UAAE5R,EAAY,KAAO8xC,EAAAA,EAAAA,MAC9E,OACI7yG,EAAAA,EAAAA,KAAC6jL,EAAa,CACVxyK,QAASA,KACL,MAAMm/E,EAA2B,OAAVn+B,QAAU,IAAVA,OAAU,EAAVA,EAAY7lD,IAAI6jF,EAAAA,EAAUI,kBAC3CjwF,EAAuB,OAAdgwF,QAAc,IAAdA,OAAc,EAAdA,EAAgBhkF,KAAKuV,IACzB,CACHyuE,eAAgBzuE,EAChBuxC,QACAwN,WACA6R,QACA5R,YACAqvB,0BAA2BC,EAAAA,EAAUC,6BAA6Bh9B,OAGpE8wH,EAAoC,OAAN5jL,QAAM,IAANA,OAAM,EAANA,EAAQgM,IAAI6jF,EAAAA,EAAUiM,qCAC1Dx/C,UAAU84H,UACLC,UAAUryJ,KAAKC,UAAU2gK,IACzB//K,MAAK,KACFg5C,EAAAA,EAAMgnI,YAAY,CAAEjpI,QAAS,4BAAuB,IAEvDn4B,OAAOthB,IACJ2C,QAAQ3C,MAAM,oCAAqCA,EAAM,GAC3D,EACR6G,UACFyD,EAAAA,EAAAA,MAACiN,EAAK,CAAA1Q,SAAA,EACFxI,EAAAA,EAAAA,KAACskL,EAAAA,EAAU,IAAG,yBAEN,8JCjPjB,MAAMzvF,EAA0CnyF,IAQhD,IAAD6hL,EAAA,IARkD,MACpD7yK,EAAK,KACLhI,EAAO,CAAC,EAAC,QACTkJ,EACArB,OAAQizK,EAAU,SAClBh8K,EAAQ,UACR8sK,EAAS,MACTnqK,EAAQs5K,EAAkBC,gBAC7BhiL,EACG,MAAMiiL,EAA6B,CAC/BtkL,WAAYuiL,EAAAA,GAAmBI,cAC/B53K,MAAOw3K,EAAAA,GAAmBC,SACb,OAAV2B,QAAU,IAAVA,OAAU,EAAVA,EAAYnhB,QAGbuhB,EAA2B,IAAiB,QAAfL,EAAGp5K,EAAMoG,cAAM,IAAAgzK,OAAA,EAAZA,EAAcryK,QAAmB,OAAVsyK,QAAU,IAAVA,OAAU,EAAVA,EAAYtyK,MAEzE,OACIlS,EAAAA,EAAAA,KAACyxF,EAAAA,EAAM,CAAC3/E,MAAI,EAAC4/E,WAAY,CAAEtxF,MAAOuxF,GAAc+jE,YAAY/oJ,EAAAA,EAAAA,MAAeiG,QAASA,EAAQpK,UACxFyD,EAAAA,EAAAA,MAACyE,EAAO,CAAAlI,SAAA,EACJyD,EAAAA,EAAAA,MAACgL,EAAM,CAAC7W,MAAOukL,EAAYn8K,SAAA,EACvBxI,EAAAA,EAAAA,KAACkZ,EAAK,CAAA1Q,SAAEkJ,KACR1R,EAAAA,EAAAA,KAAC4xF,EAAAA,EAAW,CACRvgF,QAAUyoD,IACNA,EAAE+6C,kBACFjiG,EAAQknD,EAAE,EAEd15D,MAAO,CAAE+Z,IAAK,EAAGD,MAAO,GAAI+6E,OAAQ,EAAGhS,OAAQ,OAAQ51E,MAAO,GAAIwC,OAAQ,IAAKrH,UAC/ExI,EAAAA,EAAAA,KAACk9K,EAAS,CAAC98K,MAAO,CAAEiN,MAAO,GAAIwC,OAAQ,GAAIu0E,KAAM,mBAGzDpkF,EAAAA,EAAAA,KAACkzF,EAAI,CAAC9yF,MAAOwkL,EAAUp8K,SAClBA,IACGxI,EAAAA,EAAAA,KAACq1K,EAAAA,EAAU,CACP3rK,KAAMA,EACNyB,MAAOA,EAAMA,MACboG,OAAQ,CAAE1G,KAAM,CAAEyP,KAAM,EAAGE,UAAW,WACtC86J,UAAWA,UAKtB,EAGX5kK,GAAU9D,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAAEiD,OAAQ,SAClCoH,GAASrK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACzBoN,SAAU,WACV3M,MAAO,OACPkoG,UAAW,GACXlqG,QAAS,OACT+B,WAAY,IACZ6C,WAAY,SACZhD,SAAU,GACVC,QAAS,KAEPgM,GAAQtM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEiB,YAAa,KAErCqlF,GAAOtmF,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CACvBS,MAAO,OACPwC,OAAQ,OACR2K,UAAW,OACXna,WAAY,mBAEVsxF,EAA4B,CAC9B33E,SAAU,WACV3M,MAAO,OACPgN,SAAU,qBACVxK,OAAQ,OACR8kF,aAAc,GAEZuoF,EAAax5K,IAEXuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,UAAW1gF,EAAK8E,SAAA,EACjEyD,EAAAA,EAAAA,MAAA,KAAGm5G,SAAS,sBAAqB58G,SAAA,EAC7BxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,yRACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,8RAEZzqF,EAAAA,EAAAA,KAAA,QAAAwI,UACIxI,EAAAA,EAAAA,KAAA,YAAUsM,GAAG,gBAAe9D,UACxBxI,EAAAA,EAAAA,KAAA,QAAMqN,MAAM,KAAKwC,OAAO,KAAKu0E,KAAK,iBAYzCqgG,EAAwC,CACjDC,eAAgB,CACZv5K,MAAO,kBAEPoG,OAAQ,CAAEW,KAAM,CAAE7R,WAAY,iOCxGlCwkL,EAA4B,CAAEC,IAChCA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAiB,KAAI,OACrBA,EAAqB,SAAI,WACzBA,EAAmB,OAAI,SACvBA,EAAkB,MAAI,QACtBA,EAAkB,MAAI,QACtBA,EAAqB,SAAI,yBAClBA,GAZuB,CAa7BD,GAAa,CAAC,GACbE,EACI,CAAEC,IAAK,CAAC,UAAW,YAAa,cADpCD,EAEM,CAAEp7K,KAAM,CAAC,wBAFfo7K,EAGI,CACJE,QAAS,GACThjL,KAAM,CAAC,YAAa,SAAU,eAC9BijL,SAAU,CACR,UACA,WACA,SACA,WACA,eACA,iBACA,cACA,gBACA,sBACA,gBACA,oBACA,eACA,iBAIFC,EAAkBvgL,OAAOyT,OAAOwsK,GAChCO,EAAgB,CAClBC,UAAW,YACXJ,QAAS,UACThyE,MAAO,YACPqyE,gBAAiB,kBACjBC,YAAa,cACb,aAAc,YACdC,SAAU,WACVC,SAAU,YAERC,EAAe9gL,OAAOwjI,QAAQg9C,GAAeziK,QAC/C,CAACgjK,EAAKjjL,KAAmB,IAAhByd,EAAKlZ,GAAMvE,EAElB,OADAijL,EAAM1+K,GAASkZ,EACRwlK,CAAK,GAEd,CAAC,GAECC,EAAmB,UAGnBC,EACa,eADbA,EAEK,QAFLA,EAGyB,0BAHzBA,EAIsB,sBAJtBA,EAKc,gBALdA,EAMmB,oBAEnBC,EAAuBA,CAACC,EAAWb,KACrC,IAAK,IAAIpkK,EAAIilK,EAAUxsK,OAAS,EAAGuH,GAAK,EAAGA,GAAK,EAAG,CACjD,MAAMpd,EAAQqiL,EAAUjlK,GACxB,GAAIlc,OAAOqB,UAAU+/K,eAAe5gL,KAAK1B,EAAOwhL,GAC9C,OAAOxhL,EAAMwhL,EAEjB,CACA,OAAO,IAAI,EAETe,EAAyBF,IAC3B,IAAIG,EAAiBJ,EAAqBC,EAAW,SACrD,MAAMI,EAAoBL,EAAqBC,EAAWF,GAI1D,GAHIz/J,MAAMC,QAAQ6/J,KAChBA,EAAiBA,EAAe3uG,KAAK,KAEnC4uG,GAAqBD,EACvB,OAAOC,EAAkBpnI,QAAQ,OAAO,IAAMmnI,IAEhD,MAAME,EAAwBN,EAAqBC,EAAWF,GAC9D,OAAOK,GAAkBE,QAAyB,CAAM,EAEtDC,EAA0BN,GAAcD,EAAqBC,EAAWF,IAAwC,MACnH,GACGS,EAA6BA,CAACC,EAASR,IAAcA,EAAUlmK,QAAQnc,GAAoC,qBAAnBA,EAAM6iL,KAA0B/5K,KAAK9I,GAAUA,EAAM6iL,KAAU5jK,QAAO,CAAC6jK,EAAUj+K,KAAY,IAAMi+K,KAAaj+K,KAAY,CAAC,GACrNk+K,EAA0BA,CAACC,EAAmBX,IAAcA,EAAUlmK,QAAQnc,GAA8C,qBAA7BA,EAAuB,OAAmB8I,KAAK9I,GAAUA,EAAuB,OAAG2vI,UAAU1wH,QAAO,CAACgkK,EAAkBhvG,KACxN,IAAKgvG,EAAiBptK,OAAQ,CAC5B,MAAMmG,EAAO9a,OAAO8a,KAAKi4D,GACzB,IAAK,IAAI72D,EAAI,EAAGA,EAAIpB,EAAKnG,OAAQuH,GAAK,EAAG,CACvC,MACM8lK,EADelnK,EAAKoB,GACiBkuG,cAC3C,IAA0D,IAAtD03D,EAAkBtjK,QAAQwjK,IAAiCjvG,EAAIivG,GACjE,OAAOD,EAAiB74K,OAAO6pE,EAEnC,CACF,CACA,OAAOgvG,CAAgB,GACtB,IAECE,EAAuBA,CAACC,EAASJ,EAAmBX,KACtD,MAAMgB,EAAmB,CAAC,EAC1B,OAAOhB,EAAUlmK,QAAQnc,IACvB,QAAI0iB,MAAMC,QAAQ3iB,EAAMojL,MAGM,qBAAnBpjL,EAAMojL,KAPTjjB,EAQD,WAAD/1J,OACSg5K,EAAO,oDAAAh5K,cAA0DpK,EAAMojL,GAAQ,KAT9ExiL,SAAmC,oBAAjBA,QAAQk/J,MAAuBl/J,QAAQk/J,KAAKK,KAYvE,GAZCA,KAYI,IACXr3J,KAAK9I,GAAUA,EAAMojL,KAAUzzC,UAAU1wH,QAAO,CAACqkK,EAAcC,KAChE,MAAMC,EAAmB,CAAC,EAC1BD,EAAapnK,QAAQ83D,IACnB,IAAIwvG,EACJ,MAAMx8H,EAAQ/lD,OAAO8a,KAAKi4D,GAC1B,IAAK,IAAI72D,EAAI,EAAGA,EAAI6pC,EAAMpxC,OAAQuH,GAAK,EAAG,CACxC,MAAMsmK,EAAez8H,EAAM7pC,GACrB8lK,EAAwBQ,EAAap4D,eACe,IAAtD03D,EAAkBtjK,QAAQwjK,IAA2D,QAAxBO,GAAsF,cAA3CxvG,EAAIwvG,GAAqBn4D,eAA8D,QAA1B43D,GAA0F,eAA7CjvG,EAAIivG,GAAuB53D,gBAC/Om4D,EAAsBP,IAEyB,IAA7CF,EAAkBtjK,QAAQgkK,IAA0C,cAAjBA,GAAkE,YAAjBA,GAA8D,aAAjBA,IACnJD,EAAsBC,EAE1B,CACA,IAAKD,IAAwBxvG,EAAIwvG,GAC/B,OAAO,EAET,MAAMlgL,EAAQ0wE,EAAIwvG,GAAqBn4D,cAOvC,OANK+3D,EAAiBI,KACpBJ,EAAiBI,GAAuB,CAAC,GAEtCD,EAAiBC,KACpBD,EAAiBC,GAAuB,CAAC,IAEtCJ,EAAiBI,GAAqBlgL,KACzCigL,EAAiBC,GAAqBlgL,IAAS,GACxC,EAEG,IACXosI,UAAUpyH,SAAS02D,GAAQqvG,EAAa5lL,KAAKu2E,KAChD,MAAMj4D,EAAO9a,OAAO8a,KAAKwnK,GACzB,IAAK,IAAIpmK,EAAI,EAAGA,EAAIpB,EAAKnG,OAAQuH,GAAK,EAAG,CACvC,MAAMsmK,EAAe1nK,EAAKoB,GACpBumK,EAAW,IACZN,EAAiBK,MACjBF,EAAiBE,IAEtBL,EAAiBK,GAAgBC,CACnC,CACA,OAAOL,CAAY,GAClB,IAAI3zC,SAAS,EAEdi0C,EAA0BA,CAACvB,EAAWwB,KACxC,GAAInhK,MAAMC,QAAQ0/J,IAAcA,EAAUxsK,OACxC,IAAK,IAAI0nC,EAAQ,EAAGA,EAAQ8kI,EAAUxsK,OAAQ0nC,GAAS,EAAG,CAExD,GADa8kI,EAAU9kI,GACdsmI,GACP,OAAO,CAEX,CAEF,OAAO,CAAK,EAoCVC,EAAgBC,GAAkBrhK,MAAMC,QAAQohK,GAAiBA,EAAclwG,KAAK,IAAMkwG,EAU1FC,EAAcA,CAACC,EAAcC,IAC3BxhK,MAAMC,QAAQshK,GACTA,EAAahlK,QAClB,CAAC6wC,EAAKq0H,KAZYC,EAACpkL,EAAOqkL,KAC9B,MAAMroK,EAAO9a,OAAO8a,KAAKhc,GACzB,IAAK,IAAIod,EAAI,EAAGA,EAAIpB,EAAKnG,OAAQuH,GAAK,EACpC,GAAIinK,EAAQroK,EAAKoB,KAAOinK,EAAQroK,EAAKoB,IAAImzB,SAASvwC,EAAMgc,EAAKoB,KAC3D,OAAO,EAGX,OAAO,CAAK,EAMFgnK,CAAkBD,EAAcD,GAClCp0H,EAAIw0H,SAAS5mL,KAAKymL,GAElBr0H,EAAI9E,QAAQttD,KAAKymL,GAEZr0H,IAET,CAAEw0H,SAAU,GAAIt5H,QAAS,KAGtB,CAAEA,QAASi5H,EAAcK,SAAU,IAExCC,EAAUA,CAAC9oK,EAAKgB,KACX,IACFhB,EACH,CAACgB,QAAM,IAKP+nK,EAAoB,CAAC,WAA2B,SAAuB,SACvEC,EAA0B,SAACv8H,GAC7B,OAAe,OADyB7qC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,KAAAA,UAAA,IAE/B04D,OAAO7tB,GAET6tB,OAAO7tB,GAAK7M,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAC9H,EACIqpI,EAAqCC,GAAezjL,OAAO8a,KAAK2oK,GAAY1lK,QAAO,CAACipC,EAAKzrC,KAC3F,MAAMmpG,EAAkC,qBAApB++D,EAAWloK,GAAuB,GAAHrS,OAAMqS,EAAG,MAAArS,OAAKu6K,EAAWloK,GAAI,QAAArS,OAASqS,GACzF,OAAOyrC,EAAM,GAAH99C,OAAM89C,EAAG,KAAA99C,OAAIw7G,GAASA,CAAI,GACnC,IAwBCg/D,EAAuC,SAACD,GAAU,IAAEE,EAASxnK,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAC,OAAKnc,OAAO8a,KAAK2oK,GAAY1lK,QAAO,CAACxD,EAAKgB,KAE9GhB,EADeimK,EAAcjlK,IACfA,GAAOkoK,EAAWloK,GACzBhB,IACNopK,EAAU,EASTC,EAA+BA,CAAC7+K,EAAM+uE,IAASA,EAAKlsE,KAAI,CAACmrE,EAAK72D,KAChE,MAAM2nK,EAAY,CAChBtoK,IAAKW,EACL,CAAC8kK,IAAmB,GAYtB,OAVAhhL,OAAO8a,KAAKi4D,GAAK12D,SAASynK,IACxB,MACMC,EADSvD,EAAcsD,IACKA,EAClC,GAAwB,cAApBC,GAAwE,YAApBA,EAA8C,CACpG,MAAMvtI,EAAUu8B,EAAIixG,WAAajxG,EAAIkxG,QACrCJ,EAAU1L,wBAA0B,CAAEC,OAAQ5hI,EAChD,MACEqtI,EAAUE,GAAmBhxG,EAAI+wG,EACnC,IAEK9nL,EAAAA,cAAoB+I,EAAM8+K,EAAU,IAEzCK,EAAmB,SAACn/K,EAAM+uE,GAAwB,IAAlBqwG,IAAMhoK,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,KAAAA,UAAA,GACxC,OAAQpX,GACN,IAAK,QACH,MAAO,CACLq/K,YAAaA,IA7BeC,EAAC1lB,EAAO7xJ,EAAO22K,KACjD,MAIM3kL,EAAQ4kL,EAAqCD,EAJjC,CAChBloK,IAAKzO,EACL,CAACk0K,IAAmB,IAGtB,MAAO,CAAChlL,EAAAA,cAAoB,QAAqB8C,EAAOgO,GAAO,EAuBtCu3K,CAA8Bt/K,EAAM+uE,EAAKhnE,MAAOgnE,EAAKwwG,iBACxEx6K,SAAUA,IA1DUy6K,EAACx/K,EAAM+H,EAAO22K,EAAYU,KACpD,MAAMK,EAAkBhB,EAAkCC,GACpDgB,EAAiB7B,EAAa91K,GACpC,OAAO03K,EAAkB,IAAHt7K,OAAOnE,EAAI,KAAAmE,OAAI83K,EAAgB,YAAA93K,OAAWs7K,EAAe,KAAAt7K,OAAIq6K,EACjFkB,EACAN,GACD,MAAAj7K,OAAKnE,EAAI,SAAAmE,OAAUnE,EAAI,KAAAmE,OAAI83K,EAAgB,YAAA93K,OAAWq6K,EACrDkB,EACAN,GACD,MAAAj7K,OAAKnE,EAAI,IAAG,EAiDSw/K,CAAsBx/K,EAAM+uE,EAAKhnE,MAAOgnE,EAAKwwG,gBAAiBH,IAElF,IAAK,iBACL,IAAK,iBACH,MAAO,CACLC,YAAaA,IAAMV,EAAqC5vG,GACxDhqE,SAAUA,IAAM05K,EAAkC1vG,IAEtD,QACE,MAAO,CACLswG,YAAaA,IAAMR,EAA6B7+K,EAAM+uE,GACtDhqE,SAAUA,IA1DS,SAAC/E,EAAM+uE,GAAI,IAAEqwG,IAAMhoK,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,KAAAA,UAAA,GAAO,OAAK23D,EAAK/1D,QAAO,CAACipC,EAAKg/D,KAC1E,MAAMjzC,EAAMizC,EACN0+D,EAAgB1kL,OAAO8a,KAAKi4D,GAAK93D,QACpC6oK,KAA8B,cAAdA,GAA4D,YAAdA,KAC/D/lK,QAAO,CAAC4mK,EAAQb,KAChB,MAAMp/D,EAAiC,qBAAnB3xC,EAAI+wG,GAA6BA,EAAY,GAAH56K,OAAM46K,EAAS,MAAA56K,OAAKq6K,EAAwBxwG,EAAI+wG,GAAYK,GAAO,KACjI,OAAOQ,EAAS,GAAHz7K,OAAMy7K,EAAM,KAAAz7K,OAAIw7G,GAASA,CAAI,GACzC,IACGkgE,EAAa7xG,EAAIixG,WAAajxG,EAAIkxG,SAAW,GAC7CY,GAAqD,IAArCvB,EAAkB9kK,QAAQzZ,GAChD,MAAO,GAAPmE,OAAU89C,EAAG,KAAA99C,OAAInE,EAAI,KAAAmE,OAAI83K,EAAgB,YAAA93K,OAAWw7K,GAAax7K,OAAG27K,EAAgB,KAAH,IAAA37K,OAAc07K,EAAU,MAAA17K,OAAKnE,EAAI,KAAG,GACpH,GAAG,CA+CkB+/K,CAAqB//K,EAAM+uE,EAAMqwG,IAGzD,EA6DIY,EAlCoBjmL,IACtB,MAAM,QACJq0E,EAAO,eACP6xG,EAAc,OACdb,GAAS,EAAI,eACbc,EAAc,aACdC,EAAY,UACZC,EAAS,MACTr4K,EAAQ,GAAE,gBACVw3K,EAAe,kBACfc,GACEtmL,EACJ,IAAI,SAAEumL,EAAQ,SAAEC,EAAQ,WAAEC,GAAezmL,EACrC0mL,EAAkB,CACpBpB,YAAaA,OAEbt6K,SAAUA,IAAM,IAKlB,OAHIs7K,KACCI,kBAAiBH,WAAUC,WAAUC,cA7CnBl8K,KAAgD,IAA/C,SAAEi8K,EAAQ,SAAED,EAAQ,WAAEE,EAAU,OAAEpB,GAAQ96K,EAClE,MAAMo8K,EAAO3C,EAAYwC,EAAUnF,GAC7BpR,EAAO+T,EAAYuC,EAAUlF,GAC7BuF,EAAS5C,EAAYyC,EAAYpF,GAgBvC,MAAO,CACLqF,gBAhBsB,CACtBpB,YAAaA,IAAM,IACdR,EAA6B,OAAmB6B,EAAKrC,aACrDQ,EAA6B,OAAmB7U,EAAKqU,aACrDQ,EAA6B,SAAuB8B,EAAOtC,WAEhEt5K,SAAUA,IACR,GAAAZ,OACGg7K,EAAiB,OAAmBuB,EAAKrC,SAAUe,GAAO,KAAAj7K,OAAIg7K,EAC/D,OACAnV,EAAKqU,SACLe,GACD,KAAAj7K,OAAIg7K,EAAiB,SAAuBwB,EAAOtC,SAAUe,KAKhEmB,SAAUG,EAAK37H,QACfu7H,SAAUtW,EAAKjlH,QACfy7H,WAAYG,EAAO57H,QACpB,EAqBwD67H,CAAmB7mL,IAErE,CACLskL,SAAUoC,EACVjwD,KAAM2uD,EAAiB,OAAmB/wG,EAASgxG,GACnDa,eAAgBd,EAAiB,iBAA6Bc,EAAgBb,GAC9Ec,eAAgBf,EAAiB,iBAA6Be,EAAgBd,GAC9EpV,KAAMmV,EAAiB,OAAmBmB,EAAUlB,GACpDsB,KAAMvB,EAAiB,OAAmBoB,EAAUnB,GACpDyB,SAAU1B,EAAiB,WAA2BgB,EAAcf,GACpEuB,OAAQxB,EAAiB,SAAuBqB,EAAYpB,GAC5D3oL,MAAO0oL,EAAiB,QAAqBiB,EAAWhB,GACxDr3K,MAAOo3K,EAAiB,QAAqB,CAAEp3K,QAAOw3K,mBAAmBH,GAC1E,EAKC0B,EAAY,GACZC,IAAkC,qBAAX3tK,SAA0BA,OAAO+kE,WAAY/kE,OAAO+kE,SAAS2C,eACpFkmG,EAAa,MAmBfrrK,WAAAA,CAAYs9B,EAASguI,IAAW1qK,EAAAA,EAAAA,GAAA,iBAlBpB,KAAEA,EAAAA,EAAAA,GAAA,iBACFwqK,IAAUxqK,EAAAA,EAAAA,GAAA,wBAAAA,EAAAA,EAAAA,GAAA,aAEd,CACN2qK,UAAYC,IACVzlL,KAAKu3C,QAAQmuI,OAASD,CAAW,EAEnCE,gBAAiB,CACfh5K,IAAKA,IAAM3M,KAAKulL,UAAYH,EAAYplL,KAAKolL,UAC7C5/E,IAAMogF,KACH5lL,KAAKulL,UAAYH,EAAYplL,KAAKolL,WAAWrpL,KAAK6pL,EAAS,EAE9DC,OAASD,IACP,MAAMhqI,GAAS57C,KAAKulL,UAAYH,EAAYplL,KAAKolL,WAAWrnK,QAAQ6nK,IACnE5lL,KAAKulL,UAAYH,EAAYplL,KAAKolL,WAAWvjK,OAAO+5B,EAAO,EAAE,KAKlE57C,KAAKu3C,QAAUA,EACfv3C,KAAKulL,UAAYA,IAAa,EACzBA,IACHhuI,EAAQmuI,OAASpB,EAAe,CAC9B5xG,QAAS,GACT6xG,eAAgB,CAAC,EACjBzB,yBAAyB,EACzB0B,eAAgB,CAAC,EACjBI,SAAU,GACVC,SAAU,GACVJ,aAAc,GACdK,WAAY,GACZJ,UAAW,GACXr4K,MAAO,GACPw3K,gBAAiB,CAAC,IAGxB,GAKEhnL,EAAUipL,EAAAA,cADK,CAAC,GAEhBC,GAAcC,EAAG,MAAMC,UAAwBxnL,EAAAA,UAGjDwb,WAAAA,CAAY5b,GACV6nL,MAAM7nL,IAAOwc,EAAAA,EAAAA,GAAA,0BACb7a,KAAKmmL,WAAa,IAAIb,EAAWtlL,KAAK3B,MAAMk5C,SAAW,CAAC,EAAG0uI,EAAgBV,UAC7E,CACA9nL,MAAAA,GACE,OAAuBqoL,EAAAA,cAAqBjpL,EAAQ+a,SAAU,CAAEhW,MAAO5B,KAAKmmL,WAAWvkL,OAAS5B,KAAK3B,MAAM8E,SAC7G,IACD0X,EAAAA,EAAAA,GAAAmrK,EAAA,YAToBX,GAAUW,GAgB3BI,EAAaA,CAAC9hL,EAAM+uE,KACtB,MAAMgzG,EAAc5pG,SAASh3E,MAAQg3E,SAAS6pG,cAAc,QACtDC,EAAWF,EAAYG,iBAAiB,GAAD/9K,OAAInE,EAAI,KAAAmE,OAAI83K,EAAgB,MACnEkG,EAAU,GAAGz1I,MAAMjxC,KAAKwmL,GACxBG,EAAU,GAChB,IAAIC,EAkCJ,OAjCItzG,GAAQA,EAAKn/D,QACfm/D,EAAKz3D,SAAS02D,IACZ,MAAMs0G,EAAanqG,SAAS2C,cAAc96E,GAC1C,IAAK,MAAM++K,KAAa/wG,EACtB,GAAI/yE,OAAOqB,UAAU+/K,eAAe5gL,KAAKuyE,EAAK+wG,GAC5C,GAAkB,cAAdA,EACFuD,EAAWrD,UAAYjxG,EAAIixG,eACtB,GAAkB,YAAdF,EACLuD,EAAWC,WACbD,EAAWC,WAAWrD,QAAUlxG,EAAIkxG,QAEpCoD,EAAWE,YAAYrqG,SAASsqG,eAAez0G,EAAIkxG,cAEhD,CACL,MAAMv/D,EAAOo/D,EACPzhL,EAA6B,qBAAd0wE,EAAI2xC,GAAwB,GAAK3xC,EAAI2xC,GAC1D2iE,EAAW5qC,aAAaqnC,EAAWzhL,EACrC,CAGJglL,EAAW5qC,aAAaukC,EAAkB,QACtCkG,EAAQruH,MAAK,CAAC4uH,EAAaprI,KAC7B+qI,EAAgB/qI,EACTgrI,EAAWK,YAAYD,MAE9BP,EAAQ5kK,OAAO8kK,EAAe,GAE9BD,EAAQ3qL,KAAK6qL,EACf,IAGJH,EAAQ7qK,SAAS02D,IAAG,IAAA40G,EAAA,OAAmB,QAAnBA,EAAK50G,EAAI60G,kBAAU,IAAAD,OAAA,EAAdA,EAAgBE,YAAY90G,EAAI,IACzDo0G,EAAQ9qK,SAAS02D,GAAQ+zG,EAAYS,YAAYx0G,KAC1C,CACLm0G,UACAC,UACD,EAECW,EAAmBA,CAAC5F,EAASuB,KAC/B,MAAMsE,EAAa7qG,SAAS8qG,qBAAqB9F,GAAS,GAC1D,IAAK6F,EACH,OAEF,MAAME,EAAwBF,EAAW3qC,aAAa4jC,GAChDkH,EAAmBD,EAAwBA,EAAsBrsI,MAAM,KAAO,GAC9EusI,EAAqB,IAAID,GACzBE,EAAgBpoL,OAAO8a,KAAK2oK,GAClC,IAAK,MAAMK,KAAasE,EAAe,CACrC,MAAM/lL,EAAQohL,EAAWK,IAAc,GACnCiE,EAAW3qC,aAAa0mC,KAAezhL,GACzC0lL,EAAWtrC,aAAaqnC,EAAWzhL,IAEQ,IAAzC6lL,EAAiB1pK,QAAQslK,IAC3BoE,EAAiB1rL,KAAKsnL,GAExB,MAAMuE,EAAcF,EAAmB3pK,QAAQslK,IAC1B,IAAjBuE,GACFF,EAAmB7lK,OAAO+lK,EAAa,EAE3C,CACA,IAAK,IAAInsK,EAAIisK,EAAmBxzK,OAAS,EAAGuH,GAAK,EAAGA,GAAK,EACvD6rK,EAAW9qC,gBAAgBkrC,EAAmBjsK,IAE5CgsK,EAAiBvzK,SAAWwzK,EAAmBxzK,OACjDozK,EAAW9qC,gBAAgB+jC,GAClB+G,EAAW3qC,aAAa4jC,KAAsBoH,EAAcz1G,KAAK,MAC1Eo1G,EAAWtrC,aAAaukC,EAAkBoH,EAAcz1G,KAAK,KAC/D,EAQE21G,GAAmBA,CAACtsK,EAAUk0B,KAChC,MAAM,QACJijC,EAAO,eACP6xG,EAAc,eACdC,EAAc,SACdI,EAAQ,SACRC,EAAQ,aACRJ,EAAY,oBACZqD,EAAmB,WACnBhD,EAAU,UACVJ,EAAS,MACTr4K,EAAK,gBACLw3K,GACEtoK,EACJ8rK,EAAiB,OAAmB9C,GACpC8C,EAAiB,OAAmB7C,GArBpBuD,EAAC17K,EAAO22K,KACH,qBAAV32K,GAAyBowE,SAASpwE,QAAUA,IACrDowE,SAASpwE,MAAQ81K,EAAa91K,IAEhCg7K,EAAiB,QAAqBrE,EAAW,EAkBjD+E,CAAY17K,EAAOw3K,GACnB,MAAMmE,EAAa,CACjBt1G,QAAS0zG,EAAW,OAAmB1zG,GACvCkyG,SAAUwB,EAAW,OAAmBxB,GACxCC,SAAUuB,EAAW,OAAmBvB,GACxCJ,aAAc2B,EAAW,WAA2B3B,GACpDK,WAAYsB,EAAW,SAAuBtB,GAC9CJ,UAAW0B,EAAW,QAAqB1B,IAEvCuD,EAAY,CAAC,EACbC,EAAc,CAAC,EACrB3oL,OAAO8a,KAAK2tK,GAAYpsK,SAASslK,IAC/B,MAAM,QAAEwF,EAAO,QAAED,GAAYuB,EAAW9G,GACpCwF,EAAQxyK,SACV+zK,EAAU/G,GAAWwF,GAEnBD,EAAQvyK,SACVg0K,EAAYhH,GAAW8G,EAAW9G,GAASuF,QAC7C,IAEEh3I,GACFA,IAEFq4I,EAAoBvsK,EAAU0sK,EAAWC,EAAY,EAEnDC,GAAkB,KAgBlBC,GAf6B7sK,IAC3B4sK,IACFE,qBAAqBF,IAEnB5sK,EAAS+sK,MACXH,GAAkBI,uBAAsB,KACtCV,GAAiBtsK,GAAU,KACzB4sK,GAAkB,IAAI,GACtB,KAGJN,GAAiBtsK,GACjB4sK,GAAkB,KACpB,EAKEK,GAAmB,cAAcC,EAAAA,UAAWxuK,WAAAA,GAAA,SAAAyB,YAAAb,EAAAA,EAAAA,GAAA,iBACnC,EAAK,CAChB6tK,qBAAAA,CAAsBC,GACpB,OAAQC,IAAaD,EAAW3oL,KAAK3B,MACvC,CACA8C,kBAAAA,GACEnB,KAAK6oL,YACP,CACAvnL,oBAAAA,GACE,MAAM,gBAAEqkL,GAAoB3lL,KAAK3B,MAAMk5C,QACvCouI,EAAgBE,OAAO7lL,MACvBA,KAAK6oL,YACP,CACAA,UAAAA,GACE,MAAM,gBAAElD,EAAe,UAAEH,GAAcxlL,KAAK3B,MAAMk5C,QAClD,IAAIkuI,EAAc,KAClB,MAAMtpL,GAlbgBukL,EAmbpBiF,EAAgBh5K,MAAMxF,KAAKy+K,IACzB,MAAMvnL,EAAQ,IAAKunL,EAASvnL,OAE5B,cADOA,EAAMk5C,QACNl5C,CAAK,IAtbe,CACjCq0E,QAAS0uG,EAAwB,CAAC,QAAoBV,GACtD6D,eAAgBtD,EAA2B,iBAA6BP,GACxE4H,MAAO7H,EAAqBC,EAAWF,GACvCkD,OAAQjD,EAAqBC,EAAWF,GACxCgE,eAAgBvD,EAA2B,iBAA6BP,GACxEkE,SAAUpD,EACR,OACA,CAAC,MAAiB,QAClBd,GAEFmE,SAAUrD,EACR,OACA,CACE,OACA,UACA,aACA,WACA,YAEFd,GAEF+D,aAAcjD,EAAqB,WAA2B,CAAC,aAA+Bd,GAC9FoH,oBAAqB9G,EAAuBN,GAC5CoE,WAAYtD,EACV,SACA,CAAC,MAAiB,aAClBd,GAEFgE,UAAWlD,EAAqB,QAAqB,CAAC,WAA2Bd,GACjFr0K,MAAOu0K,EAAsBF,GAC7BmD,gBAAiB5C,EAA2B,kBAA+BP,GAC3EiE,kBAAmB1C,EAAwBvB,EAAWF,KAhC9BE,MAyblBqF,EAAeR,UACjB6C,GAAejsL,GACNmoL,IACTmB,EAAcnB,EAAenoL,IAE/BqpL,EAAUC,EACZ,CAIAqD,IAAAA,GACE,GAAI9oL,KAAK+oL,SACP,OAEF/oL,KAAK+oL,UAAW,EAChB,MAAM,gBAAEpD,GAAoB3lL,KAAK3B,MAAMk5C,QACvCouI,EAAgBngF,IAAIxlG,MACpBA,KAAK6oL,YACP,CACAprL,MAAAA,GAEE,OADAuC,KAAK8oL,OACE,IACT,GAIEE,IAAMC,EAAG,cAAcC,EAAAA,UAMzBR,qBAAAA,CAAsBC,GACpB,OAAQQ,IAAYvG,EAAQ5iL,KAAK3B,MAAO,cAAeukL,EAAQ+F,EAAW,cAC5E,CACAS,wBAAAA,CAAyBvjD,EAAOwjD,GAC9B,IAAKA,EACH,OAAO,KAET,OAAQxjD,EAAMvhI,MACZ,IAAK,SACL,IAAK,WACH,MAAO,CACLi/K,UAAW8F,GAEf,IAAK,QACH,MAAO,CACL7F,QAAS6F,GAEb,QACE,MAAM,IAAI3sL,MAAM,IAAD+L,OACTo9H,EAAMvhI,KAAI,uGAGtB,CACAglL,wBAAAA,CAAyBzjD,EAAO0jD,EAAmBC,EAAeH,GAChE,MAAO,IACFE,EACH,CAAC1jD,EAAMvhI,MAAO,IACTilL,EAAkB1jD,EAAMvhI,OAAS,GACpC,IACKklL,KACAxpL,KAAKopL,yBAAyBvjD,EAAOwjD,KAIhD,CACAI,qBAAAA,CAAsB5jD,EAAO6jD,EAAUF,EAAeH,GACpD,OAAQxjD,EAAMvhI,MACZ,IAAK,QACH,MAAO,IACFolL,EACH,CAAC7jD,EAAMvhI,MAAO+kL,EACdxF,gBAAiB,IAAK2F,IAE1B,IAAK,OACH,MAAO,IACFE,EACHnF,eAAgB,IAAKiF,IAEzB,IAAK,OACH,MAAO,IACFE,EACHlF,eAAgB,IAAKgF,IAEzB,QACE,MAAO,IACFE,EACH,CAAC7jD,EAAMvhI,MAAO,IAAKklL,IAG3B,CACAG,2BAAAA,CAA4BJ,EAAmBG,GAC7C,IAAIE,EAAoB,IAAKF,GAO7B,OANAnqL,OAAO8a,KAAKkvK,GAAmB3tK,SAASiuK,IACtCD,EAAoB,IACfA,EACH,CAACC,GAAiBN,EAAkBM,GACrC,IAEID,CACT,CACAE,qBAAAA,CAAsBjkD,EAAOwjD,GAW3B,OAVA9sL,IACEujL,EAAgB1nH,MAAMx7D,GAASipI,EAAMvhI,OAAS1H,IACxB,oBAAfipI,EAAMvhI,KAAsB,oIAAH,uBAAAmE,OAAgKq3K,EAAgB5tG,KAC9M,MACD,qDAAAzpE,OAAoDo9H,EAAMvhI,KAAI,uDAEjE/H,KACG8sL,GAA4C,kBAAnBA,GAA+BtoK,MAAMC,QAAQqoK,KAAoBA,EAAejxH,MAAM2xH,GAAuC,kBAAhBA,IAAyB,0CAAAthL,OACtHo9H,EAAMvhI,KAAI,0DAAAmE,OAAyDo9H,EAAMvhI,KAAI,WAAAmE,OAAYo9H,EAAMvhI,KAAI,gDAExI,CACT,CACA0lL,kBAAAA,CAAmB7mL,EAAUumL,GAC3B,IAAIH,EAAoB,CAAC,EAqCzB,OApCAU,EAAAA,SAAgBruK,QAAQzY,GAAW0iI,IACjC,IAAKA,IAAUA,EAAMxnI,MACnB,OAEF,MAAQ8E,SAAUkmL,KAAmBa,GAAerkD,EAAMxnI,MACpDmrL,EAAgBjqL,OAAO8a,KAAK6vK,GAAY5sK,QAAO,CAACxD,EAAKgB,KACzDhB,EAAIumK,EAAavlK,IAAQA,GAAOovK,EAAWpvK,GACpChB,IACN,CAAC,GACJ,IAAI,KAAExV,GAASuhI,EAMf,OALoB,kBAATvhI,EACTA,EAAOA,EAAK+E,WAEZrJ,KAAK8pL,sBAAsBjkD,EAAOwjD,GAE5B/kL,GACN,IAAK,yBACHolL,EAAW1pL,KAAKgqL,mBAAmBX,EAAgBK,GACnD,MACF,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,SACL,IAAK,QACHH,EAAoBvpL,KAAKspL,yBACvBzjD,EACA0jD,EACAC,EACAH,GAEF,MACF,QACEK,EAAW1pL,KAAKypL,sBAAsB5jD,EAAO6jD,EAAUF,EAAeH,GAE1E,IAEKrpL,KAAK2pL,4BAA4BJ,EAAmBG,EAC7D,CACAjsL,MAAAA,GACE,MAAM,SAAE0F,KAAa9E,GAAU2B,KAAK3B,MACpC,IAAIqrL,EAAW,IAAKrrL,IAChB,WAAE8nL,GAAe9nL,EAIrB,GAHI8E,IACFumL,EAAW1pL,KAAKgqL,mBAAmB7mL,EAAUumL,IAE3CvD,KAAgBA,aAAsBb,GAAa,CAErDa,EAAa,IAAIb,EADJa,EACoB5uI,SAAS,UACnCmyI,EAASvD,UAClB,CACA,OAAOA,EAA6B8D,EAAAA,cAAqBzB,GAAkB,IAAKkB,EAAUnyI,QAAS4uI,EAAWvkL,QAA2BqoL,EAAAA,cAAqBptL,EAAQwC,SAAU,MAAOk4C,GAA4B0yI,EAAAA,cAAqBzB,GAAkB,IAAKkB,EAAUnyI,aAC3Q,IACD18B,EAAAA,EAAAA,GAAAouK,EAAA,eA9IuB,CACpBX,OAAO,EACPxF,yBAAyB,EACzB6B,mBAAmB,IACpBsE,2BC1nBI,MAeDkB,GAAqD,CACvDh7E,UAAU,EACVi7E,UAAU,EACVjuB,aAASt6J,EACTwoL,gBAAgB,GAGP3hL,GAAe,CACxBmoJ,UAAW,IACXy5B,UAAW,IACX3hL,UAAW,IACX4hL,WAAY,KACZC,WAAY,KACZC,WAAY,MAGVC,GAAkBnvL,EAAAA,cAA2C4uL,IACnEO,GAAgBhrL,YAAc,kBACvB,MAAM44K,GAAqBA,IAA6B/8K,EAAAA,WAAiBmvL,IACnEpjL,GAAcA,IAAMgxK,KAAqBnpE,SAEzCw7E,GAAmDttL,IAAmB,IAAlB,SAAE8F,GAAU9F,EACzE,MAAM8+J,EAAUyuB,IAAAA,UAAiBlzK,OAAO+/B,UAAUD,WAC5C6yI,EAAiBluB,EAAQ0uB,UAAU,CACrCC,OAAQ,CACJC,OAAQ,QACR,kBAAmB,OACnBC,MAAO,OACP,+BAAgC,QAGpCC,QAAS,CACLF,OAAQ,MACRC,MAAO,OAGXE,QAAS,MACTC,OAAQ,MACRC,KAAM,OACN,oBAAqB,QAOnBC,EAA8C,CAChDl8E,UALamhD,EAAAA,EAAAA,IAAexqJ,GAAiBA,EAAMwlL,YAAYrjD,KAAKv/H,GAAaC,YAAY,CAC7F4iL,OAAO,IAKPnB,UAAU,EACVjuB,QAASA,EAAQE,aACjBguB,eAA8B,OAAdA,QAAc,IAAdA,GAAAA,GAGpB,OACI1vL,EAAAA,GAAAA,KAACorL,EAAc,CAAA5iL,UACXyD,EAAAA,GAAAA,MAAC8jL,GAAgB9yK,SAAQ,CAAChW,MAAOypL,EAAqBloL,SAAA,EAClDxI,EAAAA,GAAAA,KAACquL,GAAM,CAAA7lL,UACHxI,EAAAA,GAAAA,KAAA,SAAAwI,SAAQuJ,GAAAA,GAAKC,IAAI,uBAEpBxJ,MAEQ,wEC9FlB,MAAM/H,EAAWA,IACbowL,GAAa5Q,EAAAA,EAAAA,OAGX4Q,EAAkD9zI,IAC3D,MAAM+zI,EAAQ,IAAI1nI,gBAAgBrM,EAASxuC,QACrC6mC,EAAkC,CAAC,EAIzC,OAHA07I,EAAM7vK,SAAQ,CAACha,EAAekZ,KAC1Bi1B,EAAQj1B,GAAOlZ,CAAK,IAEjBmuC,CAAO,qJCPX,MAAM27I,EACT,kBAAOC,CAAY57K,GAAuB,IAAD67K,EACrC,OAAY,OAAJ77K,QAAI,IAAJA,OAAI,EAAJA,EAAMzL,MACV,KAAKC,EAAAA,EAAYyR,SACb,OAAO01K,EAAUG,WAAW97K,EAAKs/C,qBACrC,KAAK9qD,EAAAA,EAAYuqD,WACb,OAAO48H,EAAUG,WAAsC,QAA5BD,EAAC77K,EAAKu/C,8BAAsB,IAAAs8H,OAAA,EAA3BA,EAA6BxyK,aAC7D,KAAK7U,EAAAA,EAAYC,cACb,OAAOknL,EAAUG,WAAW97K,EAAK0qJ,4BAA6B,4BAClE,KAAKl2J,EAAAA,EAAYE,iBACb,OAAOinL,EAAUG,WAAW97K,EAAKyqJ,+BAAgC,+BAGzE,MAAO,EACX,CAEA,iBAAcqxB,CAAW97K,EAAqB+7K,GAC1C,OAAOp/K,EAAAA,GAAK6E,OAAoB,OAAbu6K,QAAa,IAAbA,EAAAA,EAAiB,uBAAwB,CACxD71K,UAAe,OAAJlG,QAAI,IAAJA,OAAI,EAAJA,EAAMmG,WACjBC,SAAc,OAAJpG,QAAI,IAAJA,OAAI,EAAJA,EAAMqG,WAExB,iBCAG,MAAMiiK,EAAuBA,KAAwB,IAADnpH,EACvD,MAAM/qD,GAAcC,EAAAA,EAAAA,MACd8gK,GAAsC30H,EAAAA,EAAAA,KAAap0C,GAAoBA,EAAMymB,iBAE7EmpK,GAAO53G,EAAAA,EAAAA,KAGP8kG,EAAgB+S,IAClBj7K,EAAAA,EAAck7K,qBAAqB,CAAED,qBAAoB,EAOvD9S,EAAiBgT,IACnB,MAAMh+I,EAAW69I,EAAK79I,SACtBn9B,EAAAA,EAAco7K,sBAAsB,CAChC9/K,MAAO6hC,EAA6B,mBACpCthC,SAAUshC,EAAqC,2BAC/CrhC,KAAMqhC,EAAmC,yBACzCphC,WAAYrR,UAAiE,IAA1D,YAAE4U,EAAW,cAAEtD,GAAqC1P,EACnE0P,GAAc,QATXtR,UAA2BE,EAAAA,EAAYknK,OAAO,wBAU3CA,GACN91J,GAAc,GACdsD,EAAY67K,EAAiB,EAEjC5+K,UAAW4+K,EACXE,SAAUF,GACZ,GAMNn7F,EAAAA,EAAAA,YAAU,KAAO,IAAD9sF,EAAAC,EAAAmoL,EACZt3B,EAAAA,EAAIE,eAAiB,OAAF9wJ,QAAE,IAAFA,GAAQ,QAANF,EAAFE,EAAIE,YAAI,IAAAJ,OAAN,EAAFA,EAAUK,MAC7BywJ,EAAAA,EAAIS,oBAAsB,OAAFrxJ,QAAE,IAAFA,GAAQ,QAAND,EAAFC,EAAIE,YAAI,IAAAH,GAAqB,QAArBmoL,EAARnoL,EAAUmrD,2BAAmB,IAAAg9H,OAA3B,EAAFA,EAA+BplL,GAAG,GAE3D,CAAG,OAAF9C,QAAE,IAAFA,GAAQ,QAAN+qD,EAAF/qD,EAAIE,YAAI,IAAA6qD,OAAN,EAAFA,EAAU5qD,OAiBd,OAfcgoL,EAAAA,EAAAA,UAAQ,KAAO,IAADC,EACxB,MAAO,CACHvT,WAAY7pK,QAAU,OAAFhL,QAAE,IAAFA,OAAE,EAAFA,EAAIE,MACxBzH,KAAM8uL,EAAUC,YAAc,OAAFxnL,QAAE,IAAFA,OAAE,EAAFA,EAAIE,MAChC+zK,YAAalT,EAAexiJ,aAAeW,EAAAA,EAAUC,SACrDH,gBAAiB+hJ,EAAe/hJ,gBAChC81J,eACAC,gBACAxrK,SACIyB,QAAe,QAARo9K,EAACpoL,EAAGE,YAAI,IAAAkoL,OAAA,EAAPA,EAASjoL,OACjB,CAACC,EAAAA,EAAYE,iBAAkBF,EAAAA,EAAYC,eAAeoqC,SAASzqC,EAAGE,KAAMC,MACnF,GAEF,CAACH,GAEQ,gGC5ET,MAAMqS,EAAeA,KAAgB,IAADvS,EACvC,MAAM,WAAEye,IAAe6tB,EAAAA,EAAAA,KAAap0C,GAAoBA,EAAMymB,iBACxDze,GAAcC,EAAAA,EAAAA,MACpB,OAAOse,IAAeW,EAAAA,EAAU89I,aAAqB,QAAPl9J,EAAAE,EAAGE,YAAI,IAAAJ,OAAA,EAAPA,EAASK,QAASC,EAAAA,EAAYC,aAAa,gECMtF,MAAM0K,EAAe,WAAyF,IAArEsS,EAAuC9F,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEvF,MAAM8wK,EAAWjxL,EAAAA,OAAwCimB,IAClDrlB,EAAOuF,GAAYnG,EAAAA,SAA0CixL,EAAStpL,SAIvE+L,EAAS1T,EAAAA,aAAkB,CAACyX,EAA4C4vG,KAC1ElhH,GAAUL,IACN,MAAMka,EAAsC,IAAKla,KAAc2R,GAG/D,OAFAw5K,EAAStpL,QAAUqY,EACnBvZ,YAAW,IAAiB,OAAX4gH,QAAW,IAAXA,OAAW,EAAXA,EAAcrnG,KACxBA,CAAQ,GACjB,GACH,IAEGiyE,EAAWjyF,EAAAA,aAAkB,CAACkxL,EAAwC7qL,EAAYghH,KAEpF3zG,EADe,CAAE,CAACw9K,GAAQ7qL,EAAO8qL,UAAU,GAC5B9pE,EAAY,GAE7B,IAEIprG,EAAajc,EAAAA,aAAkB,WAAyH,IAAxHyX,EAA0C0I,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAGknG,EAA2DlnG,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAC9IH,GAAS,KACL,MAAM6Z,EAAsC,IAAKiG,KAAiBxO,GAGlE,OAFAw5K,EAAStpL,QAAUqY,EACnBvZ,YAAW,IAAiB,OAAX4gH,QAAW,IAAXA,OAAW,EAAXA,EAAcrnG,KACxBA,CAAQ,GAEvB,GAAG,CAACiG,IAEJ,MAAO,CAAEA,eAAcrlB,QAAO+a,SA1BbA,IAAiCs1K,EAAStpL,QA0BnBsqF,WAAUv+E,SAAQuI,aAC9D,8FClBO,SAASm1K,EAA2C/qL,EAAUgrL,EAAkC97F,GACnG,MAAO+7F,EAAeC,GAAoBvxL,EAAAA,SAAeqG,IAClD+uF,EAAWo8F,GAAgBxxL,EAAAA,SAAeqG,GAE7CirL,IAAkBjrL,IAClBkrL,EAAiBlrL,GACjBmrL,EAAanrL,IAGjB,MAAMorL,EAAezxL,EAAAA,SAAc,IACxB0xL,IAAAA,SAAiBL,EAAkB97F,IAC3C,CAAC87F,EAAkB97F,IAUtB,MAAO,CAAEtD,SARQjyF,EAAAA,aACZ4B,IACG4vL,EAAa5vL,GACb6vL,EAAa7vL,EAAE,GAEnB,CAAC6vL,IAGcr8F,YACvB,CAWO,SAASC,EAAWvzF,GAA0F,IAA1E,aAAE4T,EAAY,cAAE4/E,EAAa,aAAEq8F,EAAY,MAAEp8F,GAA0BzzF,EAE9G,MAAOszF,EAAWo8F,GAAgBxxL,EAAAA,SAAkB0V,GAE9C+7K,EAAezxL,EAAAA,SAAc,IACxB0xL,IAAAA,SAAiBp8F,EAAeC,IACxC,CAACD,EAAeC,IAEnBv1F,EAAAA,WAAgB,KACR0V,IAAiB0/E,GACjBo8F,EAAa97K,EACjB,GAED,IASH,MAAO,CAAEu8E,SAPajyF,EAAAA,aAAmB4B,IACrC4vL,EAAa5vL,GACD,OAAZ+vL,QAAY,IAAZA,GAAAA,EAAe/vL,GACf6vL,EAAa7vL,EAAE,GAEhB,IAE+BwzF,YAAWo8F,eACjD,4GCvEO,MAAMI,EAAqB9vL,IAAoF,IAAnF,MAAEgP,EAAK,YAAE6iE,EAAW,KAAEriE,EAAI,QAAEU,EAAO,cAAE4hE,GAAwC9xE,EAC5G,MAAO+vL,EAAYrgL,GAAiBxR,EAAAA,UAAe,GAEnD,OACIZ,EAAAA,EAAAA,KAAC20G,EAAAA,EAAU,CAACjjG,MAAOA,EAAOO,SAAUC,EAAMU,QAASA,EAAQpK,UACvDxI,EAAAA,EAAAA,KAAC0Q,EAAO,CAAAlI,UACJxI,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTxB,MAAO6iE,EACPhjE,OAAQ,CAAE1G,KAAM,CAAEyP,KAAM,IACxBtP,QAASyI,EAAAA,EAAcS,KACvB7C,QARGkF,IAAMi+D,EAAcpiE,GASvBuB,OAAQ8+K,OAGP,EAIf/hL,GAAU9D,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEiN,UAAW,GAAIxO,QAAS,OAAQ+E,IAAK,0HCP9D,MAAMyB,EAAoBnP,IAYR,IAZS,MAC9BgP,EAAK,SACLO,EAAQ,QACRW,EAAO,WACPw6G,EAAU,WACVj7G,EAAU,YACVm7G,EAAW,UACX36G,EAAS,aACT27G,EAAY,YACZz7G,EAAW,mBACX4vG,EAAkB,OAClBlxG,GACe7O,EACf,MAAO+vL,EAAYrgL,GAAiBxR,EAAAA,UAAe,GAWnD,OACIZ,EAAAA,EAAAA,KAAC20G,EAAAA,EAAU,CAACjjG,MAAOA,EAAOO,SAAUA,EAAUW,QAP5B8/K,KACbD,GACM,OAAP7/K,QAAO,IAAPA,GAAAA,GACJ,EAIsE6vG,mBAAoBA,EAAmBj6G,UACzGyD,EAAAA,EAAAA,MAACyE,EAAO,CAAAlI,SAAA,EACJxI,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTxB,MAAO07G,IAAcptH,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,eACjCiF,OAAQ,CAAE1G,KAAMyqG,GAChBtqG,QAASsjH,EAAe76G,EAAAA,EAAcS,KAAOT,EAAAA,EAAcC,aAC3DrC,QAhBMshL,IAAMxgL,EAAWC,GAiBvBuB,OAAQ8+K,KAEZzyL,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTxB,MAAO47G,IAAettH,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,cAClCiF,OAAQ,CAAE1G,KAAM,IAAKyqG,KAAmB,OAAN/jG,QAAM,IAANA,OAAM,EAANA,EAAQ+7G,cAC1CtiH,QAAS6H,EAAcY,EAAAA,EAAcS,KAAOT,EAAAA,EAAcC,aAC1DrC,QAtBKuhL,IAAMjgL,EAAUP,GAuBrBuB,OAAQ8+K,QAGP,EAIf/hL,GAAU9D,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEiN,UAAW,OAAQxO,QAAS,OAAQ+E,IAAK,SACnEklG,EAA0B,CAAEh7F,KAAM,mIC5DjC,MAAMu4K,EAAiBnwL,IAAyE,IAAxE,MAAEuE,EAAK,MAAEtF,EAAK,MAAEiS,EAAK,YAAEgC,KAAgB+nG,GAA2Bj7G,EAC7F,OACIuJ,EAAAA,EAAAA,MAAC+K,EAAS,CAAAxO,SAAA,EACNxI,EAAAA,EAAAA,KAAC2zG,EAAK,CAAAnrG,SAAEoL,KACR5T,EAAAA,EAAAA,KAACo5K,EAAAA,GAAe,IACRz7D,EACJ/pG,MAAOgC,EACPjU,MAAOA,EACPsF,MAAOA,EACPsK,OAAQ,CAAEkE,MAAOmF,EAAYhH,MAAO0F,OAEhC,EAIdtC,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEC,WAAY,WACxC8mG,GAAQ/mG,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACxBvB,QAAS,OACT4B,SAAU,OACVG,WAAY,IACZ2M,aAAc,QAGZT,EAAkC,CACpCzM,WAAY,SACZI,SAAU,OACVG,WAAY,IACZ2M,aAAc,QAGZa,EAA4B,CAC9B3N,SAAU,OACVG,WAAY,MACZunF,aAAc,MACd4gB,UAAW,OACX1kG,WAAY,MACZ0J,cAAe,OCzBNs8E,EAAiEn0F,IASjD,IATkD,KAC3EoP,EAAI,MACJJ,EAAK,SACLO,EAAQ,YACR2D,EAAW,aACXU,EAAY,YACZggF,EAAW,QACX1jF,EAAO,WACP2D,GACmB7T,EACnB,MAAO+S,EAAOq9K,GAAYlyL,EAAAA,SAAmC,OAAZ0V,QAAY,IAAZA,EAAAA,EAAgB,KAC1D3U,EAAOoxL,GAAYnyL,EAAAA,UAAe,IAClC6xL,EAAYrgL,GAAiBxR,EAAAA,UAAe,GAInD,OACIqL,EAAAA,EAAAA,MAAC0oG,EAAAA,EAAU,CAACjjG,MAAOA,EAAOkB,QAASA,EAAQpK,SAAA,EACvCxI,EAAAA,EAAAA,KAAC6yL,EAAc,CACXj9K,YAAaA,EACb0gF,YAAaA,EACb3sF,KAAMwvK,EAAAA,GAAUO,KAChB/3K,MAAOA,EACPsF,MAAOwO,EACPzE,SAAUyhL,EACV5/F,SAAUigG,KAEd9yL,EAAAA,EAAAA,KAACgzL,EAAe,CAAAxqL,UACZxI,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTxB,OAAO1R,EAAAA,EAAAA,KAAC2R,EAAAA,GAAO,CAACrF,GAAG,oBACnBtB,QAASyI,EAAAA,EAAcS,KACvBP,OAAQ8+K,EACRphL,QAlBQ4hL,IAAM18K,EAAWd,EAAOrD,EAAe2gL,SAqB9C,EAIfC,GAAkBpmL,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQuO,eAAgB,WAAYC,UAAW,mEC3DzF,MAAM1L,EAAaA,KACN1N,EAAAA,EAAAA,KAA6ByN,iNC0BjD,MAAMglL,EAAkBtyL,EAAAA,cAA0C,CAC9DY,MAAO,CAAC,EACR8S,OAAQA,OACRg/C,MAAO,GACP/2C,SAAUA,KAAA,CAAS,KAEV42K,EAAcA,IAAMvyL,EAAAA,WAAiBsyL,GA2CrCE,EAA6B1wL,IAAmB,IAAlB,SAAE8F,GAAU9F,EACnD,MAAM2wL,GAAgB3c,EAAAA,EAAAA,MAChBlqK,GAAMsiF,EAAAA,EAAAA,OACN,MAAEx7B,EAAQ,GAAE,eAAEmiD,GAAmBjpG,EAAI+P,WAErC0mD,EAAO3P,EAAMvE,MAAMtiD,GAASA,EAAK6kD,SAAWmkD,IAC5C3jG,EAAO0C,QAAQihG,IAAmBjhG,QAAQyuD,GAC1CzhE,EAhDqB,WAAgD,IAA/CiL,EAAoBsU,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EACpD,MAAO,CACHuwC,OAAQ7kD,EAAK6kD,OAEbrvD,KAAMwK,EAAKxK,KACX4yH,YAAapoH,EAAKooH,YAClB5oC,MAAOx/E,EAAKw/E,MACZ8oC,aAActoH,EAAKsoH,aACnB3oC,SAAU3/E,EAAK2/E,SACfthB,SAAUr+D,EAAKq+D,SACflH,UAAWn3D,EAAKm3D,UAChBH,qBAAsBh3D,EAAKg3D,qBAC3BE,sBAAuBl3D,EAAKk3D,sBAC5BG,YAAar3D,EAAKq3D,YAClBsQ,gBAAiB3nE,EAAK2nE,gBACtB+mB,kBAAmB1uF,EAAK0uF,kBACxBxxF,KAAM8C,EAAK9C,KACXsnH,sBAAuBxkH,EAAKwkH,sBAG5Bt9D,yBAA0BlnD,EAAKknD,yBAG/BmhE,aAAcroH,EAAKqoH,aACnBrzD,qBAAsBh1D,EAAKg1D,qBAC3BU,cAAe11D,EAAK01D,cACpBC,iBAAkB31D,EAAK21D,iBACvBC,qBAAsB51D,EAAK41D,qBAC3BC,kBAAmB71D,EAAK61D,kBAExBylD,aAAct7G,EAAKs7G,aAGnBjnD,SAAUr0D,EAAKq0D,SACfC,UAAWt0D,EAAKs0D,UAChBiD,eAAgBv3D,EAAKu3D,eAErBiiD,iBAAkBx5G,EAAKw5G,iBAE/B,CASkBqtE,CAAgBrwH,GAc9B,OACIjjE,EAAAA,EAAAA,KAACkzL,EAAgBj2K,SAAQ,CAAChW,MAAO,CAAE6K,OAAMwhD,QAAO9xD,QAAO8S,OAb5CrG,IAA8E,IAA7E,OAAEoK,EAAM,kBAAEk7K,EAAiB,iBAAEC,EAAgB,KAAE16H,GAAwB7qD,EACnF,MAAM,MAAEqlD,EAAQ,IAAO9mD,EAAI+P,WAC3B82K,EAAc/+K,OAAO,CACjBm/K,UAAW,CAAEngI,MAAOA,EAAM9mD,KAAKC,GAAUA,EAAK6kD,UAAe,OAAJ2R,QAAI,IAAJA,OAAI,EAAJA,EAAM3R,QAAS,IAAK7kD,KAAS4L,GAAW5L,KACjG8mL,oBACAC,mBACA16H,KAAM,CAAEwgC,MAAO,0BAA2Br2B,OAAM5qD,SAAQq7K,UAAW56H,IACrE,EAM6Dv8C,SAHlDA,KAAA,IAAAw1G,EAAA,OAA0B,QAApBA,EAAAvlH,EAAI+P,WAAW+2C,aAAK,IAAAy+D,OAAA,EAApBA,EAAsBhjE,MAAMtiD,GAASA,EAAK6kD,SAAWmkD,MAAmB,CAAC,CAAC,GAGnBjtG,SAAEA,GAAoC,EAI3GmrL,EAAoB1wF,IAC7B,MAAM,MAAEzhG,EAAK,OAAE8S,GAAW6+K,IACpB7sE,GAAWC,EAAAA,EAAAA,KACXqtE,GAAeC,EAAAA,EAAAA,GAAgB5wF,IAC/B,WAAE6wF,IAAeC,EAAAA,EAAAA,KA4CjBC,GAAiBC,EAAAA,EAAAA,GAAkC,CACrDhxF,OACAixF,oBA5CyB1zL,IACzB,MAAM,iBAAE2zL,EAAgB,kBAAEZ,EAAiB,wBAAEa,GAA0B,EAAI,KAAEt7H,GAASt4D,EAqBtF,GAnBIyiG,IAAS3tC,EAAAA,GAAauJ,UACtBvqD,EAAO,CAAE+D,OAAQ,CAAE8pD,cAAegyH,GAAoBZ,oBAAmBz6H,SAEzEmqC,IAAS3tC,EAAAA,GAAa++H,aACtB//K,EAAO,CAAE+D,OAAQ,CAAE+pD,iBAAkB+xH,GAAoBZ,oBAAmBz6H,SAE5EmqC,IAAS3tC,EAAAA,GAAag/H,iBACtBhgL,EAAO,CAAE+D,OAAQ,CAAEgqD,qBAAsB8xH,GAAoBZ,oBAAmBz6H,SAEhFmqC,IAAS3tC,EAAAA,GAAaC,eACtBjhD,EAAO,CAAE+D,OAAQ,CAAEiqD,kBAAmB6xH,GAAoBZ,oBAAmBz6H,SAGjF57C,EAAAA,EAAOC,IAAI,sBAAuB,CAC9B6+G,YAAam4D,EAAiBn4D,YAC9B/4B,OACAmxF,0BACAt7H,SAEAq7H,EAAiBn4D,YAAa,CAC9B,MAAM9jE,EAAoBP,EAAAA,EAAgBI,qBACtCo8H,EAAiB1rI,WACnByP,kBAaF47H,EAAW,CAAES,WAZMA,KACX58H,EAAAA,EAAgB4F,aAAarF,GAC7BouD,EAASkuE,oCACLrsE,EAAAA,EAASC,GACT5mH,EAAM8vD,OACN4G,EACAiwD,EAAAA,EAASI,YAEN6rE,GACPR,EAAaa,gBAAgBxxF,EACjC,GAGR,GAMAyxF,UAAYjoL,GAASA,EAAK6kD,OAC1BqjI,aAAcA,SAEZC,EAAgBC,EAAAA,EAAgBC,iBAAiBtzL,EAAOyhG,GAE9D,MAAO,CAAEzhG,QAAOozL,mBAAkBZ,EAAgBJ,eAAct/K,SAAQ,oJCtJrE,MAAMu/K,EAAmB5wF,IAC5B,MAAMqjB,GAAWC,EAAAA,EAAAA,MACT/kH,MAAOyhE,EAAI,OAAE3uD,EAAM,SAAEiI,IAAa42K,EAAAA,EAAAA,MAEpCS,EAAemB,EAA0B,CAC3CL,UAAYzxH,GAASA,EAAK3R,OAC1B0jI,WAAavoL,GAAS6H,EAAO,CAAE+D,OAAQ5L,EAAMqsD,KAAM,CAAEwgC,MAAO,cAAe2J,YAsD/E,MAAO,CAAEgyF,SAFQJ,EAAAA,EAAgBK,sBAAsBjyH,EAAMggC,GAE1CkyF,YAtCErjL,IACjB,MAAMmxD,EAAO1mD,IACb,IAAIksC,EAA6C,GACZ,IAAD2sI,EAIGC,EAIIC,EAIFC,EAZrCtyF,IAAS3tC,EAAAA,GAAauJ,WACtBoE,EAAK8kD,aAAe,CAAE5lD,cAAerwD,GACrC22C,EAA8B,QAArB2sI,EAAGnyH,EAAKd,qBAAa,IAAAizH,OAAA,EAAlBA,EAAoB3sI,WAEhCw6C,IAAS3tC,EAAAA,GAAa++H,cACtBpxH,EAAK8kD,aAAe,CAAE3lD,iBAAkBtwD,GACxC22C,EAAiC,QAAxB4sI,EAAGpyH,EAAKb,wBAAgB,IAAAizH,OAAA,EAArBA,EAAuB5sI,WAEnCw6C,IAAS3tC,EAAAA,GAAag/H,kBACtBrxH,EAAK8kD,aAAe,CAAE1lD,qBAAsBvwD,GAC5C22C,EAAqC,QAA5B6sI,EAAGryH,EAAKZ,4BAAoB,IAAAizH,OAAA,EAAzBA,EAA2B7sI,WAEvCw6C,IAAS3tC,EAAAA,GAAaC,gBACtB0N,EAAK8kD,aAAe,CAAEzlD,kBAAmBxwD,GACzC22C,EAAkC,QAAzB8sI,EAAGtyH,EAAKX,yBAAiB,IAAAizH,OAAA,EAAtBA,EAAwB9sI,WAIxC,GAFAn0C,EAAO,CAAE+D,OAAQ4qD,EAAMnK,KAAM,CAAEwgC,MAAO,cAAexnF,OAAMmxF,UAEvDnxF,EAAM,CACN,MAAM0jL,EAAuB3iH,EAAAA,EAAmBe,gCAAgCnrB,GAChFvrC,EAAAA,EAAOC,IAAI,8BAA+B,CAAEq4K,uBAAsB/sI,cAC9D+sI,GACAlvE,EAASmvE,iBAAiB,CACtBC,WAAYvtE,EAAAA,EAASC,GACrBnmD,OAAQgB,EAAK3R,OACbqkI,WAAYH,EACZ/sI,YACA0tC,MAAOgyB,EAAAA,EAASytE,WAG5B,GAK4BnB,gBAnDPxxF,IACrB,MAAMhgC,EAAO1mD,IACbW,EAAAA,EAAOC,IAAI,kCAAmC,CAAE8lF,OAAMhgC,SACtD2wH,EAAaiC,YAAY5yH,EAAMggC,EAAK,EAgDS6yF,0BA7CfA,KAAO,IAADnwE,EACpC,MAAM1iD,EAAO1mD,IAGb,OAF0Bs4K,EAAAA,EAAgBkB,yBAAyB9yH,EAAMggC,KAChB,QAAzB0iB,EAAI1iD,EAAKgjD,wBAAgB,IAAAN,OAAA,EAArBA,EAAuBoV,eAC9C,EAyC2D,EAOnEg6D,EAAqBryL,IAGD,IAH+B,UAC5DgyL,EAAS,WACTM,GACuBtyL,EACvB,MAAM4jH,GAAWC,EAAAA,EAAAA,KACX7qD,GAAkBguD,EAAAA,EAAAA,MAyDxB,MAAO,CAAEmsE,YAvDWA,CAACppL,EAASupL,EAAwBC,KAClD,MAAMC,EAAWrB,EAAAA,EAAgBsB,YAAY1pL,EAAMupL,GAuBnD,GArBA94K,EAAAA,EAAOC,IAAI,mBAAoB,CAAE64K,WAAUE,WAAUzpL,UAEzC,OAARypL,QAAQ,IAARA,OAAQ,EAARA,EAAUjzF,QAAS3tC,EAAAA,GAAauJ,WAChCpyD,EAAKs7G,aAAe,CAAE5lD,eAAe,KAE7B,OAAR+zH,QAAQ,IAARA,OAAQ,EAARA,EAAUjzF,QAAS3tC,EAAAA,GAAa++H,cAChC5nL,EAAKs7G,aAAe,CAAE3lD,kBAAkB,KAEhC,OAAR8zH,QAAQ,IAARA,OAAQ,EAARA,EAAUjzF,QAAS3tC,EAAAA,GAAag/H,kBAChC7nL,EAAKs7G,aAAe,CAAE1lD,sBAAsB,KAEpC,OAAR6zH,QAAQ,IAARA,OAAQ,EAARA,EAAUjzF,QAAS3tC,EAAAA,GAAaC,gBAChC9oD,EAAKs7G,aAAe,CAAEzlD,mBAAmB,IAExC4zH,IACDzpL,EAAKs7G,aAAe,CAAEquE,qBAAqB,GAC3C9vE,EAAS+vE,cAAcluE,EAAAA,EAASC,KAGpC4sE,EAAWvoL,GAEPypL,EAAU,CACV,MAAMztI,EAAYytI,EAASztI,UACrB6S,EAA2B3D,EAAAA,EAAgB2D,yBAC7C7S,EAAU5oC,QAAQ2oC,GAAMA,EAAE/D,cAAgB+D,EAAE7+C,OAAS44C,EAAAA,GAAa0Y,eAKtE,GAFA/9C,EAAAA,EAAOC,IAAI,8BAA+B,CAAE+4K,WAAU56H,2BAA0B7S,cAE5E6S,EAAyBE,oBACzBE,EAAgBoxD,0BAA0BrgH,EAAK6kD,OAASgK,QACrD,IAAK26H,EAAU,CAAC,IAADK,EAClB,MAAMC,EAAmB5+H,EAAAA,EAAgB0E,4BAA4B65H,EAASztI,WACxE+tI,EAAwC,QAArBF,EAAGJ,EAASztI,iBAAS,IAAA6tI,OAAA,EAAlBA,EAAoBvnI,MAC3CvG,GAAMA,EAAE7+C,OAAS44C,EAAAA,GAAa0Y,aAAezmD,QAAQg0C,EAAE/D,gBAG5DvnC,EAAAA,EAAOC,IAAI,sCAAuC,CAAE+4K,WAAUK,qBAE1DA,GACAjwE,EAASmvE,iBAAiB,CACtBC,WAAYvtE,EAAAA,EAASC,GACrBnmD,OAAQyyH,EAAUjoL,GAClBkpL,WAAYa,GAAuBD,EACnC9tI,YACA0tC,MAAOgyB,EAAAA,EAASytE,WAG5B,CACJ,GAGkB,wGCzHnB,IAAKvtE,EAAW,SAAXA,GAAW,OAAXA,EAAW,4BAAXA,EAAW,YAAXA,EAAW,YAAXA,EAAW,cAAXA,EAAW,kCAAXA,EAAW,sBAAXA,EAAW,kBAAXA,EAAW,0BAAXA,EAAW,kBAAXA,EAAW,oCAAXA,EAAW,8BAAXA,EAAW,sCAAXA,CAAW,MAehB,MAAMouE,EAAoB,SAACxzH,GAA4C,IAADyzH,EAAAC,EAAAtuG,EAAA,IAA9BuuG,EAAoB71K,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAClE,MAAMyzF,GAAW7nG,EAAAA,EAAAA,MACX25G,GAAWC,EAAAA,EAAAA,KACXnR,EAAuB,CAAC,EAExByhF,EAA0BD,EAAYr9K,OAAS,IAAM0pD,EAAKguD,sBAE3DhuD,EAAK8xD,aAEE9xD,EAAKmpB,SAELnpB,EAAKW,UAELX,EAAK6H,UAAY7H,EAAKt5D,OAASu6D,EAAAA,GAASG,KAExCpB,EAAKQ,qBAELR,EAAKU,sBAELV,EAAKa,aAAeb,EAAK8xD,eAAiB9gD,EAAAA,GAAiBC,QAAUjR,EAAKt5D,OAASu6D,EAAAA,GAASC,IAGnGlB,EAAKmR,iBACNnR,EAAK8xD,eAAiB9gD,EAAAA,GAAiBC,QACvCjR,EAAKa,cAAgBwoB,EAAAA,EAAQC,KAC7BtpB,EAAKt5D,OAASu6D,EAAAA,GAASC,IAGhB0yH,GAA4C,QAArBH,EAAIzzH,EAAK6xD,oBAAY,IAAA4hE,GAAjBA,EAAmB16D,YACrD5mB,EAAM6b,uBAAwB,EAEb,QAAjB0lE,EAAA1zH,EAAK6xD,oBAAY,IAAA6hE,IAAjBA,EAAmB36D,aAClB66D,GAC6B,QAA9BxuG,EAACplB,EAAKtP,gCAAwB,IAAA00B,GAA7BA,EAA+BriC,aAGxBid,EAAKk4B,oBACbia,EAAMja,mBAAoB,GAF1Bia,EAAMvxD,kBAAmB,EARzBuxD,EAAMhhC,iBAAkB,EAPxBghC,EAAMtxC,aAAc,EAFpBsxC,EAAMzxC,uBAAwB,EAF9ByxC,EAAM3xC,sBAAuB,EAF7B2xC,EAAMtqC,UAAW,EAFjBsqC,EAAMxxC,WAAY,EAFlBwxC,EAAMhpB,UAAW,EAFjBgpB,EAAM2f,cAAe,EAsCzB,MAAO,CAAE3f,QAAOyhF,0BAAyBC,UANtBC,IACf1vL,YAAW,KACPi/G,EAAS4B,YAAYC,EAAAA,EAASC,GAAI2uE,EAAOviF,EAAS,GACnD2T,EAAAA,EAASI,WAAW,EAI/B,mFClEO,IAAKyuE,EAAa,SAAbA,GAAa,OAAbA,EAAa,qDAAbA,CAAa,MAqBlB,MAAMC,EAAqBA,KAC9B,MAAM7F,GAAO53G,EAAAA,EAAAA,KAEP09G,EAAmCt2L,EAAAA,SACrC,IACI,CACI,CACIgT,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,gDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,cAEzC,CACIzjL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,uCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,cAEzC,CACIzjL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,sCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,cAEzC,CACIzjL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,4CAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,cAEzC,CACIzjL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,wCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,YAAa/uD,EAAAA,GAASgvD,UAC3DC,UAAW,GAEf,CACI3jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,mCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,YAAa/uD,EAAAA,GAASkvD,MAAOlvD,EAAAA,GAASgvD,UAC3EC,UAAW,GAEf,CACI3jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,yCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,aACrCE,UAAW,GAEf,CACI3jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,0CAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,cAEzC,CACIzjL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,wCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,cAEzC,CACIzjL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,2CAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,YAAa/uD,EAAAA,GAASkvD,MAAOlvD,EAAAA,GAASgvD,WAE/E,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,wCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,YAAa/uD,EAAAA,GAASkvD,MAAOlvD,EAAAA,GAASgvD,WAE/E,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,uCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,cAEzC,CACIzjL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,qDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,SAChCN,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,YAAa/uD,EAAAA,GAASgvD,WAE/D,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,wDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,SAChCN,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,YAAa/uD,EAAAA,GAASgvD,WAE/D,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,gDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,OAAQD,EAAAA,GAAiBwjH,SACzDN,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,aACrCK,aAAc,CAACxzH,EAAAA,GAASG,OAE5B,CACIzwD,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,uCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,SAChCN,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,YAAa/uD,EAAAA,GAASkvD,MAAOlvD,EAAAA,GAASgvD,WAE/E,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,mDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAASgvD,WAExB,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,mDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,OAAQD,EAAAA,GAAiBwjH,SACzDN,SAAU,CAAC7uD,EAAAA,GAASkvD,QAExB,CACI5jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,kDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAASgvD,WAExB,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,6CAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAASgvD,WAExB,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,yCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAASgvD,WAExB,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,kDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAASgvD,WAExB,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,0CAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAASgvD,WAExB,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,6CAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,OAAQD,EAAAA,GAAiBwjH,SACzDN,SAAU,CAAC7uD,EAAAA,GAASgvD,WAExB,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,0CAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAASkvD,MAAOlvD,EAAAA,GAASgvD,WAExC,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,sDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,QAChCijH,SAAU,CAAC7uD,EAAAA,GAASkvD,QAExB,CACI5jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,qCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,SAChCN,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAAS+uD,YAAa/uD,EAAAA,GAASkvD,MAAOlvD,EAAAA,GAASgvD,WAE/E,CACI1jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,8DAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,SAChCN,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAASgvD,SAAUhvD,EAAAA,GAASkvD,UAGpE,CAACpG,IAqBCuG,EAAsC/2L,EAAAA,SACxC,IAAM,CACF,CACIgT,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,sCAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,2CAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,4CAGxC,CAAC8kL,IAgJCwG,EAAiBxG,EAAKrX,cAAc,CAAEztK,GAAI,sDAgDhD,MAAO,CACHurL,cAb2C,CAC3C,CACIjkL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,yCAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,8CAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,uDAMpCqrL,aACAG,aAjOiBA,CAAC/iE,EAAiCoiE,EAAqBxtL,KACxE,MAAMyrC,EAAU8hJ,EAAUr3K,QACrBkC,IAAC,IAAAg2K,EAAA,OACEh2K,EAAEgzG,cACFA,GACAhzG,EAAEgzG,aAAa9gF,SAAS8gF,IACxBhzG,EAAEo1K,UACFA,GACAp1K,EAAEo1K,SAASljJ,SAASkjJ,IACpBxtL,KACe,QAAfouL,EAACh2K,EAAE21K,oBAAY,IAAAK,GAAdA,EAAgB9jJ,SAAStqC,GAAK,IAKvC,OAHIA,IAASu6D,EAAAA,GAASG,MAClBjvB,EAAQ6wF,MAAK,CAACtyC,EAAG5K,KAAO4K,EAAE4jG,WAAa5/C,MAAa5uD,EAAEwuG,WAAa5/C,OAEhEviG,CAAO,EAmNduqF,mCAjMuCA,CACvC5K,EACA3oC,EACAziF,KAEA,GAAIA,IAASu6D,EAAAA,GAASG,KAClB,MAAO,CACH,CACIzwD,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,8DAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,uDAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,iDAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,mDAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,sDAqD5C,MAjDyC,CACrC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,kDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,OAAQD,EAAAA,GAAiBwjH,SACzDO,gBAAiB,CAAC5G,EAAKrX,cAAc,CAAEztK,GAAI,yCAE/C,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,wDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,6DAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,sDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,iDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,SAChCO,gBAAiB,CACb5G,EAAKrX,cAAc,CAAEztK,GAAI,qDACzB8kL,EAAKrX,cAAc,CAAEztK,GAAI,wDACzB8kL,EAAKrX,cAAc,CAAEztK,GAAI,gEAGjC,CACIrF,MAAO+vL,EAAciB,4BACrBrkL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,iDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,OAAQD,EAAAA,GAAiBwjH,SACzDO,gBAAiB,CAAC5G,EAAKrX,cAAc,CAAEztK,GAAI,yCAE/C,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,gDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,SAChCN,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAASgvD,SAAUhvD,EAAAA,GAASkvD,OACxDQ,gBAAiB,CACb5G,EAAKrX,cAAc,CAAEztK,GAAI,qDACzB8kL,EAAKrX,cAAc,CAAEztK,GAAI,0DAGjC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,mDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,SAChCN,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAASgvD,SAAUhvD,EAAAA,GAASkvD,OACxDQ,gBAAiB,CAAC5G,EAAKrX,cAAc,CAAEztK,GAAI,iEAI9CuT,QAAQkC,GAAMA,EAAEgzG,aAAa9gF,SAAS8gF,KACtCl1G,QAAQkC,IAAC,IAAAm2K,EAAA,QAAuB,QAAlBA,EAACn2K,EAAEi2K,uBAAe,IAAAE,GAAjBA,EAAmBjkJ,SAASm4C,GAAU,KAuH1DszC,gCApHoCA,CACpC3K,EACAprH,KAEA,GAAIA,IAASu6D,EAAAA,GAASG,KAClB,MAAO,CACH,CACIzwD,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,sDAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,qDAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,wDAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,mDAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,oDAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,2DAEpC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,yDAmC5C,MA/ByC,CACrC,CACIsH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,wDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,oEAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,qDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,OAAQD,EAAAA,GAAiBwjH,UAE7D,CACI7jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,oDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,+DAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,OAAQD,EAAAA,GAAiBwjH,UAE7D,CACI7jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,gEAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,UAEpC,CACI7jL,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,sCAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBwjH,SAChCN,SAAU,CAAC7uD,EAAAA,GAAS8uD,OAAQ9uD,EAAAA,GAASgvD,SAAUhvD,EAAAA,GAASkvD,SAG/C33K,QAAQkC,GAAMA,EAAEgzG,aAAa9gF,SAAS8gF,IAAc,EAyDrEojE,oBApDyBpjE,GACgB,CACrC,CACInhH,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,2DAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,oEAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,wDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,2DAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,kDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,uDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,SAEpC,CACItgE,MAAOw9K,EAAKrX,cAAc,CAAEztK,GAAI,mDAChCyoH,aAAc,CAAC9gD,EAAAA,GAAiBC,UAGvBr0D,QAAQkC,GAAMgzG,GAAgBhzG,EAAEgzG,aAAa9gF,SAAS8gF,KAsBvE6iE,iBACH,+JClaE,MAAM3jG,EAAsBvxF,IAAmD,IAAlD,MAAEgB,GAA0ChB,EAC5E,MAAM,UAAE2nF,EAAY,UAAS,SAAE+tG,GAAa10L,EAC5C,OACIuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC20G,EAAQ5vL,SAAA,EACvGxI,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,8CACFrG,KAAMiG,KAEVrqF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,sWACFrG,KAAMiG,KAEVrqF,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,64BACFrG,KAAMiG,MAER,ECpBDiuG,EAAqB50L,IAC9BuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC//E,EAAK8E,SAAA,EACpGxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,qCAAqCrG,KAAK,aAClDpkF,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,2DACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,wUACFrG,KAAK,UAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,gfACFrG,KAAK,OACLuG,OAAO,UACPC,YAAa,OCnBZoJ,EAAoBtxF,IAAmD,IAAlD,MAAEgB,GAA0ChB,EAC1E,MAAM,UAAE2nF,EAAY,UAAS,SAAE+tG,GAAa10L,EAC5C,OACIuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC20G,EAAQ5vL,SAAA,EACvGxI,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,gDACFrG,KAAMiG,KAEVrqF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,mVACFrG,KAAMiG,KAEVrqF,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,64BACFrG,KAAMiG,MAER,ECpBDkuG,EAA6B70L,IACtCuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC//E,EAAK8E,SAAA,EACpGxI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,oCAAoCrG,KAAK,aACjDpkF,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,wDACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,4WACFrG,KAAK,UAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,6eACFrG,KAAK,OACLuG,OAAO,UACPC,YAAa,OCnBZuJ,EAAkBzxF,IAAmD,IAAlD,MAAEgB,GAA0ChB,EACxE,MAAM,SAAE01L,EAAQ,UAAE/tG,EAAY,WAAc3mF,EAC5C,OACI1D,EAAAA,EAAAA,KAAA,OAAKqN,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC20G,EAAQ5vL,UACvGxI,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,w+BACFrG,KAAMiG,KAER,ECVDmuG,EAA2B90L,IACpCuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC//E,EAAK8E,SAAA,EACpGyD,EAAAA,EAAAA,MAAA,KAAGm5G,SAAS,UAAS58G,SAAA,EACjBxI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,yIACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,2QACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,+HACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,oJACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,yUACFrG,KAAK,aAGbpkF,EAAAA,EAAAA,KAAA,QAAAwI,UACIxI,EAAAA,EAAAA,KAAA,YAAUsM,GAAG,IAAG9D,UACZxI,EAAAA,EAAAA,KAAA,QAAMokF,KAAK,cAAcqG,EAAE,2BC1B9ByJ,EAAgBxxF,IAAmD,IAAlD,MAAEgB,GAA0ChB,EACtE,MAAM,UAAE2nF,EAAY,UAAS,SAAE+tG,GAAa10L,EAC5C,OACI1D,EAAAA,EAAAA,KAAA,OAAKqN,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC20G,EAAQ5vL,UACvGxI,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,q+BACFrG,KAAMiG,KAER,ECVDouG,EAAyB/0L,IAClCuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC//E,EAAK8E,SAAA,EACpGyD,EAAAA,EAAAA,MAAA,KAAGm5G,SAAS,UAAS58G,SAAA,EACjBxI,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,kIACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,6QACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,2HACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,8JACFrG,KAAK,aAETpkF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,+UACFrG,KAAK,aAGbpkF,EAAAA,EAAAA,KAAA,QAAAwI,UACIxI,EAAAA,EAAAA,KAAA,YAAUsM,GAAG,IAAG9D,UACZxI,EAAAA,EAAAA,KAAA,QAAMokF,KAAK,OAAOqG,EAAE,0BC1BvBsJ,EAAiBrxF,IAAmD,IAAlD,MAAEgB,GAA0ChB,EACvE,MAAM,UAAE2nF,EAAY,UAAS,SAAE+tG,GAAa10L,EAC5C,OACIuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC20G,EAAQ5vL,SAAA,EACvGxI,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,gDACFrG,KAAMiG,KAEVrqF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,4WACFrG,KAAMiG,KAEVrqF,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,izBACFrG,KAAMiG,MAER,ECpBDquG,EAA0Bh1L,IACnCuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC//E,EAAK8E,SAAA,EACpGxI,EAAAA,EAAAA,KAAA,QAAMokF,KAAK,UAAUuG,OAAO,OAAOC,YAAa,MAAOH,EAAE,wCACzDzqF,EAAAA,EAAAA,KAAA,QAAM2qF,OAAO,OAAOC,YAAa,MAAOH,EAAE,8CAC1CzqF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,4eACFrG,KAAK,OACLuG,OAAO,UACPC,YAAa,OCRZkJ,EAAepxF,IAAmD,IAAlD,MAAEgB,GAA0ChB,EACrE,MAAM,UAAE2nF,EAAY,UAAS,SAAE+tG,GAAa10L,EAC5C,OACIuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC20G,EAAQ5vL,SAAA,EACvGxI,EAAAA,EAAAA,KAAA,QAAM2qF,OAAQN,EAAWO,YAAa,EAAGH,EAAE,qBAC3CzqF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,yVACFrG,KAAMiG,KAEVrqF,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,4mBACFrG,KAAMiG,KAEVrqF,EAAAA,EAAAA,KAAA,QACI+qF,SAAS,UACTstG,SAAS,UACT5tG,EAAE,+CACFrG,KAAMiG,MAER,ECtBDsuG,EAAwBj1L,IACjCuI,EAAAA,EAAAA,MAAA,OAAKoB,MAAO,GAAIwC,OAAQ,GAAI6zE,QAAQ,YAAYU,KAAK,OAAOX,MAAM,gCAAiC//E,EAAK8E,SAAA,EACpGxI,EAAAA,EAAAA,KAAA,QAAMokF,KAAK,UAAUuG,OAAO,OAAOC,YAAa,MAAOH,EAAE,uCACzDzqF,EAAAA,EAAAA,KAAA,QAAM2qF,OAAO,OAAOC,YAAa,MAAOH,EAAE,sDAC1CzqF,EAAAA,EAAAA,KAAA,QACIyqF,EAAE,keACFrG,KAAK,OACLuG,OAAO,UACPC,YAAa,OCMlB,MAAMguG,GAAAA,EACKzkG,gBAAkBzxF,IAAA,IAAC,MAAEgB,EAAQ,CAAC,GAAuChB,EAAA,OAC/E1C,EAAAA,EAAAA,KAACm0F,EAAe,CAACzwF,MAAOA,GAAS,EAF5Bk1L,EAIKJ,wBAA0B,KAAMx4L,EAAAA,EAAAA,KAACw4L,EAAuB,IAJ7DI,EAKK1kG,cAAgBjmF,IAAA,IAAC,MAAEvK,EAAQ,CAAC,GAAuCuK,EAAA,OAC7EjO,EAAAA,EAAAA,KAACk0F,EAAa,CAACxwF,MAAOA,GAAS,EAN1Bk1L,EAQKH,sBAAwB,KAAMz4L,EAAAA,EAAAA,KAACy4L,EAAqB,IARzDG,EAUK7kG,eAAiBp4E,IAAA,IAAC,MAAEjY,EAAQ,CAAC,GAAuCiY,EAAA,OAC9E3b,EAAAA,EAAAA,KAAC+zF,EAAc,CAACrwF,MAAOA,GAAS,EAX3Bk1L,EAaKF,uBAAyB,KAAM14L,EAAAA,EAAAA,KAAC04L,EAAsB,IAb3DE,EAcK9kG,aAAe7tB,IAAA,IAAC,MAAEviE,EAAQ,CAAC,GAAuCuiE,EAAA,OAAKjmE,EAAAA,EAAAA,KAAC8zF,EAAY,CAACpwF,MAAOA,GAAS,EAd1Gk1L,EAeKD,qBAAuB,KAAM34L,EAAAA,EAAAA,KAAC24L,EAAoB,IAfvDC,EAiBK3kG,oBAAsB3pB,IAAA,IAAC,MAAE5mE,EAAQ,CAAC,GAAuC4mE,EAAA,OACnFtqE,EAAAA,EAAAA,KAACi0F,EAAmB,CAACvwF,MAAOA,GAAS,EAlBhCk1L,EAoBKC,4BAA8B,KAAM74L,EAAAA,EAAAA,KAACs4L,EAAiB,IApB3DM,EAqBK5kG,kBAAoBjiB,IAAA,IAAC,MAAEruE,EAAQ,CAAC,GAAuCquE,EAAA,OACjF/xE,EAAAA,EAAAA,KAACg0F,EAAiB,CAACtwF,MAAOA,GAAS,EAtB9Bk1L,EAwBKL,0BAA4B,KAAMv4L,EAAAA,EAAAA,KAACu4L,EAAyB,mFCnBvE,MAAMO,EAAgBA,KAAO,IAADC,EAAAhsH,EAAAC,EAAAC,EAC/B,MAAMq5C,GAAWC,EAAAA,EAAAA,MACT/kH,MAAOgL,IAAQsiF,EAAAA,EAAAA,OACjB,MAAEttF,EAAK,OAAE8S,EAAM,SAAEiI,IAAa42K,EAAAA,EAAAA,OAC9B,MAAE/9E,IAAUqhF,EAAAA,EAAAA,GAAkBj1L,GAE9Bs9D,EAAclS,EAAAA,EAAc4F,eAA6C,QAA/BumI,EAACv3L,EAAMmyD,gCAAwB,IAAAolI,OAAA,EAA9BA,EAAgC/yI,cACjF,QAAoB9+C,IAAhB43D,EACA,OAAO,KAEX,MAAMk6H,EAAqC,QAAnBjsH,EAAGvgE,EAAIyhE,oBAAY,IAAAlB,GAAyD,QAAzDC,EAAhBD,EAAkBhe,MAAMhtC,IAAC,IAAAmsD,EAAA,OAAc,QAAdA,EAAKnsD,EAAE0wC,eAAO,IAAAyb,OAAA,EAATA,EAAWzQ,MAAMnV,GAAMA,IAAM9mD,EAAM8vD,QAAO,WAAC,IAAA0b,GAC7D,QAD6DC,EAAzED,EACrB2jC,yCAAiC,IAAA1jC,OADI,EAAhBA,EACezrE,EAAM8vD,QAwB1C2nI,EAAOv2L,IAA2B,IAA1B,MAAEuE,GAAkBvE,EAC9B,MAAM6H,EAAW/I,EAAM25F,oBAAsBl0F,EACvC+C,EAAUkvL,EAAuB,CAAE3uL,WAAU4uL,WAAY3kL,QAAQhT,EAAM25F,qBAC7E,OACIlvF,EAAAA,EAAAA,MAAA,OAAKhC,UAAWD,EAAQa,KAAMwG,QAASA,IA1B7BpK,KACdqN,EAAO,CAAE+D,OAAQ,CAAE8iF,kBAAmBl0F,GAASusL,kBAAkB,EAAM16H,KAAM,CAAEsgI,qBAAsBnyL,KAErGI,YAAW,KAAO,IAADgyL,EACb,MAAMl3H,GAAwC,QAAxBk3H,EAAA98K,IAAW4lD,qBAAa,IAAAk3H,OAAA,EAAxBA,EAA0B5wI,YAAa,GACvD6wI,EAA6B3hI,EAAAA,EAAgB0E,4BAA4B8F,GAEzEq0H,EAAsBr0H,EAAcpT,MACrCvG,GAAMA,EAAE7+C,OAAS44C,EAAAA,GAAa0Y,aAAezmD,QAAQg0C,EAAE/D,gBAG5D6hE,EAASmvE,iBAAiB,CACtBC,WAAYvtE,EAAAA,EAASC,GACrBnmD,OAAQ1lD,IAAW+0C,OACnBqkI,WAAYa,GAAuB8C,EACnC7wI,UAAW0Z,EACXg0B,MAAO,GACT,GACHgyB,EAAAA,EAASI,WAAW,EAQ0B11B,CAAS5rF,GAAOuB,SAAA,EACzDxI,EAAAA,EAAAA,KAAC41F,EAAc,CAAAptF,UACXxI,EAAAA,EAAAA,KAAC0oH,EAAqB,CAACx5B,UAAWjoF,EAAO63D,YAAaA,EAAav0D,SAAUA,OAEjFvK,EAAAA,EAAAA,KAACu5L,EAAS,CAAA/wL,UACNxI,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAI,8BAAgCrF,QAExD,EAId,OACIjH,EAAAA,EAAAA,KAACszF,EAAK,CACFhnF,GAAI+7G,EAAAA,EAAYx0B,kBAChBuhB,MAAOA,EAAMja,kBACbzpF,MAAOK,EAAAA,GAAKC,IAAI,8BAA8BxJ,SAC7Cs2D,IAAgBpM,EAAAA,GAAYC,SACzB1mD,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACIxI,EAAAA,EAAAA,KAACi5L,EAAI,CAAChyL,MAAO4sF,EAAAA,GAAkBM,mBAC/Bn0F,EAAAA,EAAAA,KAACi5L,EAAI,CAAChyL,MAAO4sF,EAAAA,GAAkBK,oBAGnCjoF,EAAAA,EAAAA,MAAAkF,EAAAA,SAAA,CAAA3I,SAAA,EACuB,OAAlBwwL,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBv7H,MAAM17C,GAAMA,IAAM8xE,EAAAA,GAAkBE,oBACrD/zF,EAAAA,EAAAA,KAACi5L,EAAI,CAAChyL,MAAO4sF,EAAAA,GAAkBE,kBAEhB,OAAlBilG,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBv7H,MAAM17C,GAAMA,IAAM8xE,EAAAA,GAAkBC,kBACrD9zF,EAAAA,EAAAA,KAACi5L,EAAI,CAAChyL,MAAO4sF,EAAAA,GAAkBC,gBAEnC9zF,EAAAA,EAAAA,KAACi5L,EAAI,CAAChyL,MAAO4sF,EAAAA,GAAkBI,uBAC/Bj0F,EAAAA,EAAAA,KAACi5L,EAAI,CAAChyL,MAAO4sF,EAAAA,GAAkBG,wBAGnC,EAIV4B,GAAiBhpF,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAES,MAAO,GAAIwC,OAAQ,KAEpDqpL,GAAyBx2E,EAAAA,EAAAA,GAAuC,CAClE73G,KAAOnH,IAA0B,CAC7B2H,QAAS,OACToP,cAAe,MACfrK,IAAK,GACLlD,QAAS,GACT+C,WAAY,SACZ5C,MAAO,OACPwC,OAAQ,GACRgL,OAAQ,UACR,iBAAkB,CACd,UAAWnX,EAAMy1L,UACX,CACIjpL,OAAQ,oBACR1E,gBAAiB,WAErB,CAAC,GAEX0E,OAAQxM,EAAM6G,SAAW,oBAAsB,GAC/CiB,gBAAiB9H,EAAM6G,SAAW,UAAY,cAIhDgvL,GAAY3sL,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BQ,WAAY,IACZH,SAAU,GACVyN,WAAY,OACZtP,MAAO,YAILkoF,EAA8BrlF,IAA4C,IAA3C,GAAE3B,EAAE,MAAEoF,EAAK,MAAEtR,EAAK,MAAEg1G,EAAK,SAAE5sG,GAAUyF,EACtE,OACIhC,EAAAA,EAAAA,MAAC6pF,EAAc,CAACxpF,GAAIA,EAAIlM,MAAOA,EAAMoI,SAAA,CAChC4sG,IAASp1G,EAAAA,EAAAA,KAACw5L,EAAAA,EAAK,KAChBx5L,EAAAA,EAAAA,KAACkZ,EAAK,CAAA1Q,SAAEkJ,IACPlJ,IACY,EAInBstF,GAAiBlpF,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAAEiN,UAAW,GAAIG,SAAU,WAAY5J,IAAK,IAC3E8I,GAAQtM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACxBQ,WAAY,IACZH,SAAU,GACV7B,MAAO,UACPsP,WAAY,OACZX,aAAc,KASL2uG,EAAwB9nH,EAAAA,MACjC+a,IAAsF,IAArF,UAAEuzE,EAAS,YAAEpwB,EAAW,SAAEv0D,GAAW,EAAK,MAAE7G,GAAmCiY,EAC5E,GAAImjD,IAAgBpM,EAAAA,GAAYC,QAAS,CACrC,GAAIu8B,IAAc2E,EAAAA,GAAkBM,gBAChC,OAAO5pF,GACHvK,EAAAA,EAAAA,KAAC44L,EAAwBJ,wBAAuB,KAEhDx4L,EAAAA,EAAAA,KAAC44L,EAAwBzkG,gBAAe,CAACzwF,MAAOA,IAEjD,GAAIwrF,IAAc2E,EAAAA,GAAkBK,cACvC,OAAO3pF,GACHvK,EAAAA,EAAAA,KAAC44L,EAAwBH,sBAAqB,KAE9Cz4L,EAAAA,EAAAA,KAAC44L,EAAwB1kG,cAAa,CAACxwF,MAAOA,GAG1D,CACA,OAAIwrF,IAAc2E,EAAAA,GAAkBE,eACzBxpF,GACHvK,EAAAA,EAAAA,KAAC44L,EAAwBF,uBAAsB,KAE/C14L,EAAAA,EAAAA,KAAC44L,EAAwB7kG,eAAc,CAACrwF,MAAOA,IAE5CwrF,IAAc2E,EAAAA,GAAkBC,aAChCvpF,GACHvK,EAAAA,EAAAA,KAAC44L,EAAwBD,qBAAoB,KAE7C34L,EAAAA,EAAAA,KAAC44L,EAAwB9kG,aAAY,CAACpwF,MAAOA,IAE1CwrF,IAAc2E,EAAAA,GAAkBI,oBAChC1pF,GACHvK,EAAAA,EAAAA,KAAC44L,EAAwBC,4BAA2B,KAEpD74L,EAAAA,EAAAA,KAAC44L,EAAwB3kG,oBAAmB,CAACvwF,MAAOA,IAGrD6G,GACHvK,EAAAA,EAAAA,KAAC44L,EAAwBL,0BAAyB,KAElDv4L,EAAAA,EAAAA,KAAC44L,EAAwB5kG,kBAAiB,CAACtwF,MAAOA,GACrD,mDChMF,MAAM81L,GAAQ5sL,WAAAA,GAAO,MAAPA,CAAc,CAC/BS,MAAO,EACPsnF,aAAc,EACd36E,SAAU,WACV3Z,WAAY,UACZ8Z,IAAK,EACLF,MAAO,GACPg7E,OAAQ,4KCKZ,MAAMwkG,EAAWngG,IACb,MAAMogG,EAAO94L,EAAAA,QAAsB,GAC7B+4L,EAAMC,IACNlwL,EAAO9I,EAAAA,SAAc,IAAM4iB,KAAKC,UAAU61E,IAAQ,CAACA,IAWzD,OATA14F,EAAAA,WAAgB,KACZ,MAAMi5L,EAAevgG,EAAMrxC,SAAWqxC,EAAMpxC,YAAcoxC,EAAMwgG,eAC3DxgG,EAAMygG,eAAkBF,IAAiBH,EAAKnxL,WAC/CmxL,EAAKnxL,SAAU,EACfoxL,EAAIv9B,kBAAkB9iE,GAC1B,GAED,CAACA,KAEGt5F,EAAAA,EAAAA,KAAA,QAAMsM,GAAG,UAAU,eAAc5C,EAAMtJ,MAAO,CAAE4Z,SAAU,aAAgB,EAGxEggL,EAAap5L,EAAAA,KAAW64L,GAAS,CAACxgH,EAAM3xD,IAAS6yB,EAAAA,EAAYoQ,UAAU0uB,EAAM3xD,KAE7EsyK,EAA4BA,KACrC,MAAMK,GAAevjB,EAAAA,EAAAA,MACft5J,GAAiBV,EAAAA,EAAAA,MACjBlQ,GAAMsiF,EAAAA,EAAAA,MACNtlF,GAAcC,EAAAA,EAAAA,MAuCpB,MAAO,CAAE2yJ,kBArCkB9iE,IAAkC,IAAD4gG,EAAAC,EAAAC,EAAAroE,EAAA39D,EAAA9qD,EAAA+qD,EACxD,MAAMie,EAAiB2nH,EAAaI,oBAC9B/5H,EAAW25H,EAAaztL,IAAI+P,YAC5B,MAAEsvD,GAAUouH,EAAa19K,WAuB/B69I,EAAAA,EAAIgC,kBAAkB,IACf9iE,EACH18C,QAAS01B,EACT+pF,WAxBiB35J,KAA2E,IAA1E,MAAE4wD,EAAQ,GAAE,oBAAEgsB,EAAsB,GAAoB58E,EAC1E,MAAM43L,EAAmChnI,EAAM9mD,KAAKy2D,IAAU,IAADolB,EACzD,MAAMxkC,EAAgD,QAAhCwkC,EAAGplB,EAAKtP,gCAAwB,IAAA00B,OAAA,EAA7BA,EAA+BriC,aACxD,MAAO,CACHiC,QAASgb,EAAK3R,OACd3nD,KAAMs5D,EAAKmpB,SACXnb,QAAShO,EAAKykD,aACd6yE,MAAOt3H,EAAKW,UACZ42H,IAAKv3H,EAAKhhE,KACVy7J,QAAyB,OAAhB75G,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB27B,QAC3Bm+E,WAA4B,OAAhB95G,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9F,KAC9B6/G,qBACoB,OAAhB/5G,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB6M,cAAcmtG,eAAeC,gBAAgBC,qBAAqBv+E,QAC3F,IAEL,MAAO,CACHy9E,UAAW39E,EACX03C,UAAW1jE,EAAM/5C,OACjB+5C,MAAOgnI,EACV,EAKWG,CAAan6H,GACzBua,SAA2C,QAAnCq/G,EAAE98K,EAAeb,WAAWxI,eAAO,IAAAmmL,OAAA,EAAjCA,EAAmC5tL,GAC7CgwJ,WAAiB,OAALzwF,QAAK,IAALA,GAAyB,QAApBsuH,EAALtuH,EAAO+T,0BAAkB,IAAAu6G,OAApB,EAALA,EAA2Bt6G,gBACvC73B,QAA6D,QAAtDoyI,EAAE3lH,EAAAA,EAAYiB,gBAAgBukH,EAAa19K,mBAAW,IAAA69K,OAAA,EAApDA,EAAsDpyI,QAC/Du1G,SAAUnD,EAAAA,EAAIqD,eAAmC,QAArB1rC,EAACvlH,EAAI+P,WAAW+2C,aAAK,IAAAy+D,EAAAA,EAAI,IACrDyrC,UAA+C,QAAtCppG,EAAI,OAAF5qD,QAAE,IAAFA,GAAQ,QAANF,EAAFE,EAAIE,YAAI,IAAAJ,GAAqB,QAArB+qD,EAAR/qD,EAAUorD,2BAAmB,IAAAL,OAA3B,EAAFA,EAA+BqmI,aAAK,IAAAtmI,EAAAA,EAAI,IACrD,EAEsB,EAGnBumI,EAAuBA,KAChC,MAAM9uH,GAAQ6qG,EAAAA,EAAAA,MA+Bd,MAAO,CAAE7a,6BAV6BviE,IAClC,MAAM,MAAEhmC,EAAQ,GAAE,eAAEmiD,GAAmB5pC,EAAMr/D,IAAI+P,WAC3C0mD,EAAO3P,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAWmkD,IArB5BxS,MAsBhBm3D,EAAAA,EAAIyB,6BAA6B,IAC1BviE,EACH2iE,MAAW,OAAJh5F,QAAI,IAAJA,OAAI,EAAJA,EAAMhhE,KACbi6J,OAzBYj5D,EAyBU,OAAJhgC,QAAI,IAAJA,OAAI,EAAJA,EAAM8kD,aAxBpB,OAAJ9kB,QAAI,IAAJA,GAAAA,EAAM+kB,MACC,cACI,OAAJ/kB,QAAI,IAAJA,GAAAA,EAAM9gC,cACN,UACI,OAAJ8gC,QAAI,IAAJA,GAAAA,EAAM7gC,iBACN,cACI,OAAJ6gC,QAAI,IAAJA,GAAAA,EAAM5gC,qBACN,oBACI,OAAJ4gC,QAAI,IAAJA,GAAAA,EAAM3gC,kBACN,gBACI,OAAJ2gC,QAAI,IAAJA,GAAAA,EAAM23F,kBACN,eACI,OAAJ33F,QAAI,IAAJA,GAAAA,EAAMmzF,oBACN,sBAEJ,KAUL,EAGiC,EAG9ByE,EAA2BA,CAACruL,EAAsBq/D,KAC3D,MAAM8tH,EAAMC,IA0CZ,OAxCAh5L,EAAAA,WAAgB,KACR4L,EAAI4iH,qBACJgrC,EAAAA,EAAIuB,kBACR,GACD,CAACnvJ,EAAI4iH,sBAERxuH,EAAAA,WAAgB,KACR4L,EAAIu9G,uBACJqwC,EAAAA,EAAIwB,yBACR,GACD,CAACpvJ,EAAIu9G,wBAERnpH,EAAAA,WAAgB,KACRirE,EAAM9iD,aAAevc,EAAI8mD,OAA8B,IAArB9mD,EAAI8mD,MAAM/5C,QAC5CogL,EAAIv9B,kBAAkB,CAAEn5D,KAAM,YAClC,GAED,CAACz2F,EAAI8mD,QAER1yD,EAAAA,WAAgB,KAAO,IAADk6L,EAKuCC,IAJrDlvH,EAAM9iD,cAAe8iD,EAAM4mD,yBAAqC,QAAVqoE,EAACtuL,EAAI8mD,aAAK,IAAAwnI,GAATA,EAAWvhL,QAClEogL,EAAIv9B,kBAAkB,CAAEn5D,KAAM,oBAG9Bp3B,EAAM9iD,cAAgB8iD,EAAM4mD,2BAC5BknE,EAAIv9B,kBAAkB,CAAEn5D,KAAM,kBAChB,QAAV83F,EAACvuL,EAAI8mD,aAAK,IAAAynI,GAATA,EAAWxhL,QACZogL,EAAIv9B,kBAAkB,CAAEn5D,KAAM,aAEtC,GAED,CAACp3B,EAAM4mD,0BAEV7xH,EAAAA,WAAgB,KACR4L,EAAI8iH,gBACJqqE,EAAIv9B,kBAAkB,CAAEn5D,KAAM,mBAClC,GAED,CAACz2F,EAAI8iH,iBAEDqqE,CAAG,gECzJP,MAAMqB,EAAiC,WAAoD,IAAnDC,EAAwCl6K,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACtF,MAAMm6K,EAA4BA,KAAwB,IAADC,EACrD,MAAMC,EAAmF,QAAtDD,EAAGF,EAAoBA,EAAoB1hL,OAAS,UAAE,IAAA4hL,OAAA,EAAnDA,EAAqDv+I,QAC3F,OAAoC,OAA7Bw+I,QAA6B,IAA7BA,EAAAA,EAAiC,CAAC,CAAC,EAU9C,MAAO,CAAEF,4BAA2BG,YAPhBA,KAAO,IAADzyI,EACtB,MAAMhM,EAAUs+I,IAGhB,OAF2D,QAAvBtyI,EAAU,OAAPhM,QAAO,IAAPA,OAAO,EAAPA,EAASiM,mBAAW,IAAAD,EAAAA,EAAI,CAAC,GACzBy/E,EAAAA,GACxB,EAIvB,kQCYO,MAAMquC,EAAmBA,KAAO,IAAD4kB,EAClC,MAAM9uL,GAAMuuG,EAAAA,EAAAA,MACNk/E,GAAevnE,EAAAA,EAAAA,MACf6oE,GAAaP,EAAAA,EAAAA,GAAqE,QAAvCM,EAACrB,EAAa19K,WAAW6vD,sBAAc,IAAAkvH,OAAA,EAAtCA,EAAwC7yI,WACpF8W,GAAiB4yD,EAAAA,EAAAA,KACjB/0G,GAAiBV,EAAAA,EAAAA,MACjBlT,GAAcC,EAAAA,EAAAA,MAwBd+xL,EAAwB75L,IAC1Bs4L,EAAawB,YAAY,CAAEC,kBAAkB,IACzCh8H,EAAAA,EAA2B2U,iCAAiC1yE,GACrD+9D,EAAAA,EAA2BhtD,YAAY/Q,IAGvCg8C,EAAAA,EAAAA,IAAyBz/B,EAAAA,EAAW2oJ,iCAApClpH,CAAsEh8C,IAsDrF,MAAO,CACH+5L,iBAAkBzB,EAAa19K,WAAWm/K,iBAC1CC,WApFeA,KAAA,IAAAC,EAAA,OAAqD,QAArDA,EAAkB3B,EAAa19K,WAAWwpD,mBAAW,IAAA61H,OAAA,EAAnCA,EAAqCC,QAAQ,EAqF9EN,aACAlB,kBApFsBA,KAAO,IAADxoH,EAC5B,MAAM,eAAEzF,GAAmB6tH,EAAa19K,WACxC,OAAwF,QAAjFs1D,EAAAla,EAAAA,EAAgBI,qBAAmC,OAAdqU,QAAc,IAAdA,OAAc,EAAdA,EAAgB3jB,WAAWyP,yBAAiB,IAAA2Z,OAAA,EAAjFA,EAAmFj1B,UAAW,CAAC,CAAC,EAmFvGyjB,iBAhFqBv/D,SACds/D,EAAeC,iBAAiB,CACnCC,SAAU9zD,EAAI+P,WACd+iD,WAAY26H,EAAa19K,aA8E7Bu/K,uBAxD2Bp5L,IAGsC,IAHrC,WAC5B6xL,EAAU,WACVwH,GAC2Br5L,EAC3B,OAAIu3L,EAAa19K,WAAWm/K,iBAAyBn4K,QAAQlgB,QAAQ,CAAC,IAC/D66C,EAAAA,EAAAA,KACHp9C,UACI,MAAMk7L,EAAWl7L,UAIb,MAAMm7L,EAAsB7+K,EAAeb,YACrC,YAAE0jD,EAAW,yBAAEF,QA9BVj/D,UAChBs/D,EAAehB,mBAAmB,CACrCG,iBACAe,SAAU9zD,EAAI+P,WACd+iD,WAAY26H,EAAa19K,aA0BuC6iD,GACxD,GAAI68H,EAAoBloL,QAAS,CAK7B,MAAO,CAAE83D,aAJck6F,EAAAA,EAAcC,gBACjCi2B,EAAoBloL,QAAQzH,GAC5B2zD,IAEqBv2D,KAAMq2D,2BACnC,CAEI,MAAO,CAAE8L,aADyCk6F,EAAAA,EAAcE,iBAAiBhmG,IACxDv2D,KAAMq2D,2BACnC,EAsBJ,OAHIg8H,SACMA,IAjBQj7L,WAAa,IAADo5L,EAAAnoE,EAAA39D,EAAA9qD,EAAA+qD,EAC1B4lI,EAAawB,YAAY,CAAEC,kBAAkB,IAC7C,MAAM,MAAE7vH,EAAK,yBAAE9L,SAAmCi8H,IAWlD,OAVA5hC,EAAAA,EAAIkD,oBAAoB,CACpBziF,SAA2C,QAAnCq/G,EAAE98K,EAAeb,WAAWxI,eAAO,IAAAmmL,OAAA,EAAjCA,EAAmC5tL,GAC7CgwJ,WAAYzwF,EAAM+T,mBAAmBC,gBACrC09E,SAAUnD,EAAAA,EAAIqD,eAAmC,QAArB1rC,EAACvlH,EAAI+P,WAAW+2C,aAAK,IAAAy+D,EAAAA,EAAI,IACrDyrC,UAA+C,QAAtCppG,EAAI,OAAF5qD,QAAE,IAAFA,GAAQ,QAANF,EAAFE,EAAIE,YAAI,IAAAJ,GAAqB,QAArB+qD,EAAR/qD,EAAUorD,2BAAmB,IAAAL,OAA3B,EAAFA,EAA+BqmI,aAAK,IAAAtmI,EAAAA,EAAI,KAGvDh3C,EAAe9I,OAAO,CAAEksK,SAAS,IACjCyZ,EAAawB,YAAY,CAAEC,kBAAkB,EAAO7vH,QAAO9L,6BACjD,OAAVw0H,QAAU,IAAVA,GAAAA,IACO1oH,CAAK,EAMTqwH,EAAW,GAEtB,CAAE79I,aAAcm9I,GACnB,EAUDj/K,SAAU09K,EAAa19K,SACvBk/K,YAAaxB,EAAawB,YAC1BnnL,OAAQ2lL,EAAa3lL,OACrB6nL,kBAAmBlC,EAAakC,kBAChC3vL,MACH,EAOE,MAAM4zD,GAAAA,EAEKC,iBAAmB4F,IAAmF,IAADm2H,EAAAC,EAAAC,EAAAp+G,EAAAq+G,EAAAC,EAAA,IAAjF,WAAEl9H,EAAU,SAAEgB,GAAyC2F,EACrF,MAAM,UAAE3M,EAAS,YAAEuc,EAAW,eAAEzJ,EAAc,aAAEC,EAAY,aAAEC,GAAiBhN,EACzEm9H,EAA2B,WAGQ,IADrCC,EAAiE37K,UAAAxH,OAAA,EAAAwH,UAAA,QAAA7Z,EAE7Dy1L,EAA+C,GAwBnD,OA3Be57K,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAIZE,SAASxU,IACX,MAAM,aACFqoH,EAAY,cACZ3yD,EAAa,iBACbC,EAAgB,kBAChBE,EAAiB,qBACjBD,GACA51D,EACEjM,EAASk8L,EAAUjwL,GAGnBw2D,EAAOx2D,EACTw2D,EAAKtP,0BACLgpI,EAAUv7L,QACHghD,EAAAA,EAAmBsF,wBAAwB,CAACub,EAAKtP,0BAA2BnzD,IAGvFm8L,EAAUv7L,QAAQghD,EAAAA,EAAmBsF,wBAAoC,OAAZotE,QAAY,IAAZA,OAAY,EAAZA,EAAcrsE,UAAWjoD,IACtFm8L,EAAUv7L,QAAQghD,EAAAA,EAAmBsF,wBAAqC,OAAbya,QAAa,IAAbA,OAAa,EAAbA,EAAe1Z,UAAWjoD,IACvFm8L,EAAUv7L,QAAQghD,EAAAA,EAAmBsF,wBAAwC,OAAhB0a,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB3Z,UAAWjoD,IAC1Fm8L,EAAUv7L,QAAQghD,EAAAA,EAAmBsF,wBAA4C,OAApB2a,QAAoB,IAApBA,OAAoB,EAApBA,EAAsB5Z,UAAWjoD,IAC9Fm8L,EAAUv7L,QAAQghD,EAAAA,EAAmBsF,wBAAyC,OAAjB4a,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB7Z,UAAWjoD,GAAQ,IAEhGm8L,CACX,EACMC,EAAkD,IACjDx6I,EAAAA,EAAmBsF,wBAAsC,OAAd0kB,QAAc,IAAdA,OAAc,EAAdA,EAAgB3jB,cAC3Dg0I,EAAgCn8H,EAAShN,OAAQ7mD,IAAI,CAAQw7C,QAASx7C,EAAK6kD,cAC3EmrI,EAAmCn8H,EAASQ,UAAWr0D,IAAI,CAC1Dy7C,WAAYz7C,EAAK81D,UACjBta,QAASx7C,EAAK6kD,cAEfmrI,EAAoCn8H,EAASS,WAAYt0D,IAAI,CAC5D07C,gBAAiB17C,EAAK+1D,WACtBva,QAASx7C,EAAK6kD,cAEflP,EAAAA,EAAmBsF,wBAAoC,OAAZ2kB,QAAY,IAAZA,OAAY,EAAZA,EAAc5jB,cACzDrG,EAAAA,EAAmBsF,wBAAoC,OAAZ4kB,QAAY,IAAZA,OAAY,EAAZA,EAAc7jB,YAG1Do0I,EAAWh9D,EAAAA,EAAgBT,UAAU9+D,GAE3CpjD,EAAAA,EAAOg9B,gBAAkB51C,QAAQw/H,eAAe,iBAChD5mH,EAAAA,EAAOC,IAAI,WAAYqG,KAAKW,MAAM04K,IAClC3/K,EAAAA,EAAOC,IAAI,eAAgBy/K,GAC3B,MAAM38H,EAAmC,CACrC68H,uBAAwBxjI,EACxByjI,gBAAiBF,EACjBG,aAAcJ,EACdpkL,cAAe8nD,EAASgf,oBACxB5mE,cAAwC,QAA3B0jL,EAAmB,QAAnBC,EAAE/7H,EAASQ,gBAAQ,IAAAu7H,OAAA,EAAjBA,EAAmB9iL,cAAM,IAAA6iL,EAAAA,EAAI,EAC5C9sL,WAAkC,QAAxBgtL,EAAgB,QAAhBp+G,EAAE5d,EAAShN,aAAK,IAAA4qB,OAAA,EAAdA,EAAgB3kE,cAAM,IAAA+iL,EAAAA,EAAI,EACtCW,mBAA8C,QAA5BV,EAAoB,QAApBC,EAAEl8H,EAASS,iBAAS,IAAAy7H,OAAA,EAAlBA,EAAoBjjL,cAAM,IAAAgjL,EAAAA,EAAI,EAClD/mH,SAAqB,OAAXK,QAAW,IAAXA,OAAW,EAAXA,EAAaL,UAI3B,OAFAt4D,EAAAA,EAAOC,IAAI,cAAe8iD,GAC1B/iD,EAAAA,EAAOg9B,gBAAkB51C,QAAQ6tG,WAC1BlyC,CAAW,EAlEbG,EAqEKhB,mBAAqBt+D,UAA+E,IAAxE,WAAEw+D,EAAU,SAAEgB,EAAQ,eAAEf,GAA0C+K,EAIxG,aAH0BnL,EAAAA,EAAgBC,mBAAmB,CACzD5yD,IAAK8zD,EAAUhB,aAAYC,kBAEb,EAInB,MAAM29H,EAAkBjvL,IAAoD,IAAnD,WAAEsmL,GAA2CtmL,EACzE,MAAMmP,GAAiBV,EAAAA,EAAAA,OACfo/K,uBAAwBrnL,GAAYiiK,KACtC,qBAAEymB,EAAoB,cAAEC,IAAkBrJ,EAAAA,EAAAA,KAE1CgI,EAAaj7L,SACR,IAAIyiB,SAAQziB,MAAOuC,EAASkhF,KAC/B,MAAM03G,EAAsB7+K,EAAeb,WAC3C,GAAI0/K,EAAoBloL,QAAS,CAC7B,MAAM,GAAEzH,EAAE,SAAEqJ,GAAasmL,EAAoBloL,cACvCqpL,EAAc,CAChBrsL,UAAWzE,EACX+wL,YAAa1nL,EACb2nL,iBAAiB,EACjBC,SAAUpjC,EAAAA,EAAYqjC,iBAE1Bn6L,GAAQ,EACZ,MACIA,GAAQ,EACZ,IAeR,MAAO,CAAEo6L,yBAXwB9hL,IAA8C,IAA7C,UAAE+hL,GAAqC/hL,EACrE,MAAMsgL,EAAsB7+K,EAAeb,WACpB,OAAnB0/K,QAAmB,IAAnBA,GAAAA,EAAqBloL,UAAYkoL,EAAoB0B,gBACrDR,EAAqB,CACjBr2L,SAAUA,IAAM2N,EAAQ,CAAE8/K,iBAG9B9/K,EAAQ,CAAE8/K,aAAYwH,WAAY2B,EAAY3B,OAAa70L,GAC/D,EAG+B,sMClPhC,MAAM02L,GAoBZC,EApBYD,EAAAA,EACKE,YAAeC,IACzB,MAAMC,EAAiBJ,EAAwBK,oBAE/C,GADA/gL,EAAAA,EAAOyD,MAAM,sBAAuB,CAAEo9K,cAAaC,mBAC/CA,EAAeE,cAAe,CAC9BF,EAAeE,cAAcJ,YAAYC,EAAalqJ,EAAAA,EAAU0F,WAChE,MAAM7vC,EAAOozE,EAAAA,GAAwBa,YAAYogH,GACjD7gL,EAAAA,EAAOs9B,aAAa,CAChBC,MAAOC,EAAAA,EAAaC,YACpB74C,QAAS,2CACT4H,KAAMA,EACNwI,KAAMsR,KAAKC,UAAU/Z,IAE7B,GAbKk0L,EAgBMK,kBAAoB,IACGn8G,SAASC,eAAeluC,EAAAA,EAAUyF,oDCqBrE,MAAMy6I,EAAyBA,KAClC,MAAM4F,GAAMgB,EAAAA,EAAAA,MACNtH,GAAgB3c,EAAAA,EAAAA,MAChBt5J,GAAiBV,EAAAA,EAAAA,MAmEjByhL,EAAUC,KACZlgJ,EAAAA,EAAAA,KAAUp9C,gBAC6BE,EAAAA,EAAYwnB,kBAE3C61K,EAAKD,GAELhoL,EAAAA,EAAck7K,qBAAqB,CAC/BgN,cAAyB,OAAVF,QAAU,IAAVA,OAAU,EAAVA,EAAYV,UAC3BrM,kBAAmBA,IAAMgN,EAAKD,GAC9B3M,SAAUA,KACuB,IAAD8M,EAAb,OAAVH,QAAU,IAAVA,GAAAA,EAAYV,YACH,OAAVU,QAAU,IAAVA,GAAoB,QAAVG,EAAVH,EAAYzd,gBAAQ,IAAA4d,GAApBA,EAAAn5L,KAAAg5L,GACJ,GAGZ,GACF,EAGAC,EAAO,WAAoE,IAAnE,UAAEX,EAAS,UAAEc,EAAS,SAAEjB,EAAQ,SAAE5c,GAAsB5/J,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,GACtEm9B,EAAAA,EAAAA,KAAUp9C,UACN,MAAMgG,EAAY/F,IACF,OAARA,QAAQ,IAARA,GAAAA,EAAU84D,aACVz8C,EAAe9I,OAAO,CAClBP,QAAShT,EAAS2I,KAAKg1E,OACvB8hG,SAAS,EACTjjK,aAAc,IAAID,KAClBE,cAAc,EACdmgL,iBAAiB,IAEZ,OAATa,QAAS,IAATA,GAAAA,IACJ,EAGEvC,EAAsB7+K,EAAeb,WACpB,OAAnB0/K,QAAmB,IAAnBA,GAAAA,EAAqBloL,SAAWkoL,EAAoB0B,gBACpDvnL,EAAAA,EAAcqoL,gCAAgC,CAC1ChpC,eAAgBioC,EAChBgB,mBAAoBzC,EAAoBloL,QAAQ4B,SAEhDgpL,qBAAsB79L,UAAkE,IAA3D,UAAE89L,EAAS,YAAElpL,GAAwCzH,EAC9E2wL,GAAU,GACV,MAAM79L,QAA0Cq8L,EAAc,CAC1DrsL,UAAWkrL,EAAoBloL,QAASzH,GACxC+wL,YAAapB,EAAoBloL,QAAS4B,SAC1C4nL,aAEJqB,GAAU,GACE,OAAR79L,QAAQ,IAARA,GAAAA,EAAU84D,YACVnkD,GAAY,IAAM5O,EAAS/F,IAC/B,EAEJ89L,iBAAkB/9L,UAA+E,IAAxE,YAAEu8L,EAAW,UAAEuB,EAAS,YAAElpL,GAAwCiG,EACvFijL,GAAU,GACV,MAAM79L,QAA0C89L,EAAiB,CAC7DxB,cACAE,WACAxhC,qBAAqB,IAEzB6iC,GAAU,GACE,OAAR79L,QAAQ,IAARA,GAAAA,EAAU84D,YACVnkD,GAAY,IAAM5O,EAAS/F,IAC/B,EAEJ0wL,SAAU9Q,IAGdwc,EAAqB,CAAEO,YAAWH,WAAUz2L,WAAU65K,YAC1D,GAER,EAEMwc,EAAuBl3H,IAA8E,IAA7E,UAAEy3H,EAAS,SAAE52L,EAAQ,SAAE65K,EAAQ,SAAE4c,GAAsCt3H,EACjG7vD,EAAAA,EAAc0oL,wBAAwB,CAClCrpC,eAAgBioC,EAChBjM,SAAU9Q,EACVpqK,WAAYzV,UAA+E,IAAxE,YAAEu8L,EAAW,UAAEuB,EAAS,YAAElpL,GAAwC40D,EACjFs0H,GAAU,GACV,MAAM79L,QAAiB89L,EAAiB,CAAExB,cAAaE,aACvDqB,GAAU,GACE,OAAR79L,QAAQ,IAARA,GAAAA,EAAU84D,YACVnkD,GAAY,IAAc,OAAR5O,QAAQ,IAARA,OAAQ,EAARA,EAAW/F,IACjC,GAEN,EAGA89L,EAAmB9sH,IAK4C,IAL3C,YACtBsrH,EAAW,gBACXC,GAAkB,EAAI,oBACtBvhC,EAAmB,SACnBwhC,GACyBxrH,EACzB,OAAO7zB,EAAAA,EAAAA,KACHp9C,UAAa,IAADo5L,EACR98K,EAAe9I,OAAO,CAAEyqL,UAAU,IAClC,MAAM5+H,QAA2CkzH,EAAchzH,mBAEzDt/D,QAA0CsR,EAAAA,EAAYgyJ,cAAc,CACtE1uJ,SAAU0nL,EACVl9H,cAAeA,EACf6+H,eAAiD,QAAnC9E,EAAE98K,EAAeb,WAAWxI,eAAO,IAAAmmL,OAAA,EAAjCA,EAAmC5tL,KAGvD,GAAY,OAARvL,QAAQ,IAARA,GAAAA,EAAU84D,WAAY,CAaP,IAADixG,EAAAm0B,EAAd,GAZA7hL,EAAe9I,OAAO,CAClBP,QAAShT,EAAS2I,KAAKg1E,OACvBi/G,iBAAiB,EACjBnd,SAAS,EACTjjK,aAAc,IAAID,KAClBE,cAAc,IAGd8/K,GACA4B,EAA2Bn+L,EAAS2I,KAAKg1E,QAGzC6+G,EACA5D,EAAI99B,6BAA6B,CAC7B9qJ,UAAmB,OAARhQ,QAAQ,IAARA,GAAc,QAAN+pK,EAAR/pK,EAAU2I,YAAI,IAAAohK,GAAQ,QAARm0B,EAAdn0B,EAAgBpsF,cAAM,IAAAugH,OAAd,EAARA,EAAwB3yL,GACnCwvJ,cAAc,EACdC,sBACAh/G,SAAUwgJ,IAIlBlgJ,EAAAA,EAAMgnI,YAAY,CACdjpI,QAASrpC,EAAAA,GAAK6E,OAAO,wBAAyB,CAAE3U,KAAMo7L,KAE9D,CAEA,OADAjgL,EAAe9I,OAAO,CAAEyqL,UAAU,IAC3Bh+L,CAAQ,GAEnB,CACIs9C,aAAe18C,IACXyb,EAAe9I,OAAO,CAAEyqL,UAAU,KAC3BphJ,EAAAA,EAAAA,KAA0Bz/B,EAAAA,EAAWC,gCAArCw/B,CAAsEh8C,KAIxF,EAGCy7L,EAAgB7mG,IAK4C,IAL3C,UACnBxlF,EAAS,YACTssL,EAAW,gBACXC,GAAkB,EAAI,SACtBC,GACsBhnG,EACtB,OAAOr4C,EAAAA,EAAAA,KACHp9C,UACIsc,EAAe9I,OAAO,CAAEyqL,UAAU,IAClC,MAAM5+H,QAAsBkzH,EAAchzH,mBACpCt/D,QAAiBsR,EAAAA,EAAYqyJ,2BAA2B3zJ,EAAWovD,GAuBzE,OArBY,OAARp/D,QAAQ,IAARA,GAAAA,EAAU84D,aACVxc,EAAAA,EAAMgnI,YAAY,CACdjpI,QAASrpC,EAAAA,GAAK6E,OAAO,qCAAsC,CAAE3U,KAAMo7L,MAEvEjgL,EAAe9I,OAAO,CAClBqpL,iBAAiB,EACjB5pL,QAAShT,EAAS2I,KAAKg1E,OACvB8hG,SAAS,EACTjjK,aAAc,IAAID,KAClBE,cAAc,IAGd8/K,SACM4B,EAA2Bn+L,EAAS2I,KAAKg1E,QAE/C6+G,GACA5D,EAAI99B,6BAA6B,CAAE9qJ,YAAW+qJ,cAAc,EAAO/+G,SAAUwgJ,KAIrFngL,EAAe9I,OAAO,CAAEyqL,UAAU,IAC3Bh+L,CAAQ,GAEnB,CACIs9C,aAAe18C,IACXyb,EAAe9I,OAAO,CAAEyqL,UAAU,IAC3Bx7K,QAAQlgB,SAAQ,KAGlC,EAGC67L,EAA6Bp+L,UAC/B,GAAIod,EAAAA,EAAWC,gCAAiC,CAC5C,MAAM,MAAE0tD,GAAUwnH,EAAc92K,WAC1BsiE,QAAoB/B,EAAAA,GAAwBmB,6BAA6B,CAC3ES,SACAC,eAAgB9S,EAChBvL,SAAU+yH,EAAc7mL,IAAI+P,WAC5Bs5D,YAAapB,EAAAA,EAAYiB,gBAAgB29G,EAAc92K,cAEvDugE,EAAAA,GAAwBn4B,QAAQk6B,IAChC++G,EAAwBE,YAAYj/G,EAE5C,GA8BJ,MAAO,CAAEi1G,WAtSU,WAAqD,IAApD,UAAE4J,EAAS,WAAEnJ,GAA4BxzK,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC7D,MAAMk7K,EAAsB7+K,EAAeb,WACnB,OAAnB0/K,QAAmB,IAAnBA,GAAAA,EAAqBz+K,aAOfJ,EAAeX,+BACtBrG,EAAAA,EAAco7K,sBAAsB,CAChC9/K,MAAOK,EAAAA,GAAKC,IAAI,eAChBC,SAAUF,EAAAA,GAAKC,IAAI,yBACnBW,UAAWA,KACHspL,EAAoBloL,UACpBqJ,EAAe9I,OAAO,IACf8I,EACHI,cAAc,EACdD,aAAc,IAAID,OAEZ,OAAVi3K,QAAU,IAAVA,GAAAA,IACJ,EAEJpiL,WAAYrR,UAA2C,IAApC,cAAEsR,EAAa,YAAEsD,GAAahT,EAC7C,GAAIu5L,EAAoBloL,QACpB,GAAIkoL,EAAoB0B,gBAAiB,CACrCvrL,GAAc,GACd,MAAM,GAAE9F,EAAE,SAAEqJ,GAAasmL,EAAoBloL,cACvCqpL,EAAc,CAChBrsL,UAAWzE,EACX+wL,YAAa1nL,EACb2nL,iBAAiB,EACjBC,SAAUpjC,EAAAA,EAAYglC,WAE1B/sL,GAAc,GACdsD,GAAY,IAAgB,OAAV6+K,QAAU,IAAVA,OAAU,EAAVA,GAAa,IACnC,KAAO,CACH,MAAMztL,EAAY/F,IACF,OAARA,QAAQ,IAARA,GAAAA,EAAU84D,aACVz8C,EAAe9I,OAAO,CAClBP,QAAShT,EAAS2I,KAAKg1E,OACvB8hG,SAAS,EACTjjK,aAAc,IAAID,KAClBE,cAAc,EACdmgL,iBAAiB,IAEX,OAAVpJ,QAAU,IAAVA,GAAAA,IACJ,EAEJ4I,EAAqB,CACjBO,YACAH,SAAUpjC,EAAAA,EAAYglC,SACtBr4L,WACA65K,SAAU4T,GAElB,CACJ,EAEJ9C,SAAU8C,IAGJ,OAAVA,QAAU,IAAVA,GAAAA,IA1DA4J,EAAO,CACHT,YACAH,SAAUpjC,EAAAA,EAAYglC,SACtBX,UAAWA,IAAgB,OAAVjK,QAAU,IAAVA,OAAU,EAAVA,GAAa,GAC9B5T,SAAU4T,GAwDtB,EAuOqB4J,SAAQiB,oBA3BDA,CACxBC,EACAC,EACA/B,KAEA,MAAMtB,EAAsB7+K,EAAeb,WACtC0/K,EAAoBloL,QASdkoL,EAAoBzb,QAC3BpqK,EAAAA,EAAco7K,sBAAsB,CAChC9/K,MAAOK,EAAAA,GAAKC,IAAI,eAChBC,SAAUF,EAAAA,GAAKC,IAAI,iCACnBE,KAAMH,EAAAA,GAAKC,IAAI,+BACfG,WAAYA,IAAMksL,EAAK,CAAEG,UAAWa,EAAkB9B,eAG1D8B,IAhBAjpL,EAAAA,EAAco7K,sBAAsB,CAChC9/K,MAAOK,EAAAA,GAAKC,IAAI,eAChBC,SAAUF,EAAAA,GAAKC,IAAI,4BACnBE,KAAMH,EAAAA,GAAKC,IAAI,0BACfG,WAAYA,IAAMksL,EAAK,CAAEG,UAAWa,EAAkB9B,aACtD5qL,UAAW2sL,EACX7N,SAAU6N,GAWlB,EAG8CnC,uBAAsBC,gBAAe,uLC/RpF,MAAMnJ,EAA6BvxL,IAKX,IALgC,KAC3DugG,EAAI,oBACJixF,EAAmB,UACnBQ,EAAS,aACTC,GACqBjyL,EAErB,MAAM42D,GAAYimI,EAAAA,EAAAA,MACZj5E,GAAWC,EAAAA,EAAAA,KACX7qD,GAAkBguD,EAAAA,EAAAA,MAClB9tG,GAAYC,EAAAA,EAAAA,KACZrP,GAAMsiF,EAAAA,EAAAA,MAENrb,EAAuBhnE,IAAoB,IAAD47E,EAC5C,MAAM,MAAE/0B,EAAQ,IAAO9mD,EAAI+P,WACrB0mD,EAAO3P,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAW7kD,EAAK6kD,SACjD,OAAW,OAAJ2R,QAAI,IAAJA,GAA8B,QAA1BolB,EAAJplB,EAAMtP,gCAAwB,IAAA00B,OAA1B,EAAJA,EAAgCriC,YAAY,EA0GjDw5I,EAAuBC,IACzB,MAAM,KAAEhzL,EAAI,iBAAE0nL,EAAgB,SAAE50I,EAAQ,qBAAEmgJ,EAAoB,kBAAEnM,EAAiB,KAAEz6H,GAC/E2mI,EASJ,GARAE,EAAyB,CACrBlzL,OACA0nL,mBACAn4H,aAAczc,EACdmgJ,uBACAnM,oBACAz6H,SAEAvZ,EAAS51C,OAAS44C,EAAAA,GAAaM,QAAS,CACxC,MAAM+8I,EAAsBjoI,EAAAA,EAAgBW,0CAA0C/Y,EAAU40I,EAAiB1rI,WAC7Gm3I,GACAC,EAAwBpzL,EAAM0nL,EAAkByL,EAAqBA,EAAoBx5I,cAEjG,GAOEy5I,EAA0BA,CAC5BpzL,EACA0nL,EACA50I,EACAhxC,KAEA,MAAMuxL,EAA8BtrL,QAAQ+qC,EAASyG,eAAiBxxC,QAAQ+qC,EAAS0H,yBACvF0Q,EAAAA,EAAgBgB,aAAa,CACzBpZ,WACA3C,QAAS2C,EAAS3C,QAClBruC,OAAc,OAANA,QAAM,IAANA,EAAAA,EAAU,GAClB+qD,UAAWA,EACXT,eAAgB5qD,IAAsF,IAAD8xL,EAAA,IAAlFxgJ,SAAUygJ,GAAmE/xL,EAC5F,MAAM,UAAEw6C,EAAY,IAAO0rI,GAEtB5lL,GAAUgxC,EAAS0G,mBAAmBg6I,kCACvCD,EAAyBE,EAAAA,EAAsBC,sCAC3C1zL,EACAuzL,IAIR,MAAMI,EAAmBzoI,EAAAA,EAAgBE,gBAAgBpP,EAAWu3I,GACpE7L,EAAiB1rI,UAAY23I,EAC7B,MAAM96L,EAAS46L,EAAAA,EAAsBG,0BAA0B,CAAElM,mBAAkBtwI,iBAAkB4vB,EAAoBhnE,GAAOmP,cAChIu4K,EAAiBn1H,QAAU15D,EAAO05D,QAClCm1H,EAAiB/1H,gBAAkB94D,EAAO84D,gBAEH,QAAvC2hI,EAAIC,EAAuBh6I,oBAAY,IAAA+5I,GAAnCA,EAAqChvI,aACrCivI,EAAuBr7I,SAAU,GAGrCuvI,EAAoB,CAChBC,mBACAZ,kBAAmByM,EAAuB35I,eAC1C+tI,yBAAyB,EACzBt7H,KAAM,CAAE7iD,OAAQ,0BAA2B6pL,iCAG/Cx5E,EAASmvE,iBAAiB,CACtBC,WAAYvtE,EAAAA,EAASC,GACrBnmD,OAAQyyH,EAAUjoL,GAClBkpL,WAAYqK,EACZv3I,UAAW0rI,EAAiB1rI,UAC5B0tC,MAAO,OAGN2pG,GAA+BE,EAAuBr7I,SACvDg7I,EAAyB,CACrBlzL,OACA0nL,mBACAn4H,aAAcgkI,EACdN,sBAAsB,GAE9B,EAEJC,yBAA2B3jI,IACvB2jI,EAAyB,CACrBlzL,OACA0nL,mBACAn4H,eACA0jI,sBAAsB,GACxB,GAER,EASAC,EAA4Bn/L,IAC9B,MAAM,KAAEiM,EAAI,aAAEuvD,EAAY,iBAAEm4H,EAAgB,qBAAEuL,EAAoB,kBAAEnM,EAAiB,KAAEz6H,GAASt4D,EAC1FioD,EAAY0rI,EAAiB1rI,WAAa,IAC1C,kBAAEyP,GAAsBP,EAAAA,EAAgBI,qBAAqBtP,GAE7DoG,EAA+BjC,EAAAA,EAAckC,gBAAgB2kB,EAAoBhnE,IAEvF,GAAsB,OAAjByrD,QAAiB,IAAjBA,GAAAA,EAAmBvT,QAGjB,CACH,MAAM27I,EAAqD3oI,EAAAA,EAAgBsG,sBAAsB,CAC7FjC,eACAvT,YACAoG,iCAEJ,GAAIyxI,EACAJ,EAAAA,EAAsBK,iBAAiB,CAAEpM,mBAAkB1rI,YAAW6U,cAAegjI,IACrFpM,EAAoB,CAAEC,mBAAkBZ,oBAAmBz6H,aACxD,CACHq7H,EAAiBn4D,aAAc,EAC/Bm4D,EAAiB1rI,UAAYA,EAC7B,MAAMnjD,EAAS46L,EAAAA,EAAsBG,0BAA0B,CAAElM,mBAAkBtwI,iBAAkB4vB,EAAoBhnE,GAAOmP,cAChIu4K,EAAiBn1H,QAAU15D,EAAO05D,QAClCm1H,EAAiB/1H,gBAAkB94D,EAAO84D,gBAC1C3V,EAAUxnC,SAASunC,GAAOA,EAAE8U,eAAgB,IAE5C42H,EAAoB,CAAEC,mBAAkBZ,oBAAmBz6H,QAC/D,CACJ,MArBIonI,EAAAA,EAAsBK,iBAAiB,CAAEpM,mBAAkB1rI,YAAW6U,cAAepF,IACrFg8H,EAAoB,CAAEC,mBAAkBZ,oBAAmBz6H,SAsB/D,GAAI4mI,EAAsB,CAEtB,MAAMlK,EAAiD79H,EAAAA,EAAgBuE,uBACnEF,EACAvT,GAEA+sI,GACAlvE,EAASmvE,iBAAiB,CACtBC,WAAYvtE,EAAAA,EAASC,GACrBnmD,OAAQyyH,EAAUjoL,GAClBkpL,WAAYH,EACZ/sI,UAAW0rI,EAAiB1rI,UAC5B0tC,MAAOgyB,EAAAA,EAASytE,WAG5B,GAIJ,MAAO,CAAE4K,qBAvPoBA,CACzB/zL,EACA0nL,EACA50I,EACAkhJ,MAEAviJ,EAAAA,EAAAA,KAAUp9C,UACN,MAAM2nD,EAAiC0rI,EAAiB1rI,WAAa,GAC/Di4I,EAAsB/oI,EAAAA,EAAgBoE,2BAA2Bxc,EAAUkJ,GAC3Ek4I,EAAuC9L,EAAAA,EAAgB+L,uBAAuBn0L,EAAMw2F,GAC1F1jD,EAAS3C,QAAUsM,EAAAA,EAAsB+N,cAClB,OAAnBypI,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB9jJ,UAAW+jJ,EAChC,CAAC,GAGL,MAAM98I,EAAmB4vB,EAAoBhnE,GAC7CkrD,EAAAA,EAAgByB,mBAAmB7Z,EAAUkhJ,EAAiB58I,GAC9D,MAAMg9I,EAAwClpI,EAAAA,EAAgBE,gBAAgBpP,EAAWlJ,GACzFoY,EAAAA,EAAgBoF,oBAAoB,CAAEtU,UAAWo4I,EAAkB5jI,eAAgB0jI,EAAqB98I,qBACxGswI,EAAiB1rI,UAAYo4I,EAE7B,MAAM,WAAEjmI,GAAa,GAAS6lI,EAC9B,GAAI7lI,GAAcrb,EAASoF,QAAS,CAChC,MAAM82E,EAA4B9jE,EAAAA,EAAgB2D,yBAAyBulI,GAC3E,GAAIplE,EAA0BjgE,oBAAqB,CAC/C24H,EAAiB1rI,UAAYo4I,EAC7B1M,EAAiBn4D,aAAc,EAC/Bk4D,EAAoB,CAChBC,mBACAr7H,KAAM,CAAEwgC,MAAO,iDAAkDmiC,+BAErE,MAAM9N,EAAwBA,KAG1Bh2D,EAAAA,EAAgBoC,uBAAuB,CAAExa,aAEzC,MAAM6gJ,EAAmBzoI,EAAAA,EAAgBE,gBAAgBpP,EAAWlJ,GACpE40I,EAAiB1rI,UAAY23I,EAC7BjM,EAAiBn4D,aAAc,EAC/Bk4D,EAAoB,CAChBC,mBACAZ,mBAAmB,EACnBz6H,KAAM,CACFwgC,MAAO,6CACPmiC,+BAGJl8E,EAASoF,SACT66I,EAAoB,CAAE/yL,OAAM0nL,mBAAkB50I,YAClD,EAEJmc,EAAgBoxD,0BAA0BrgH,EAAK6kD,OAASmqE,EAA2B9N,EACvF,MACIjyD,EAAgBl/C,MAAM/P,EAAK6kD,QAC3BkuI,EAAoB,CAChB/yL,OACA0nL,mBACA50I,WACAmgJ,qBAAsB9kI,EACtB24H,mBAAmB,EACnBz6H,KAAM,CACFmJ,OAAQx1D,EAAK6kD,OACbgoC,MAAO,6BACP7sF,OACA8yC,WACAkhJ,kBACAx9F,SAIhB,KAAO,CAAC,IAAD69F,EACHplI,EAAgBl/C,MAAM/P,EAAK6kD,QAC3B,MAAMhsD,EAAS46L,EAAAA,EAAsBG,0BAA0B,CAAElM,mBAAkBtwI,iBAAkB4vB,EAAoBhnE,GAAOmP,cAChIu4K,EAAiBn1H,QAAU15D,EAAO05D,QAClCm1H,EAAiB/1H,gBAAkB94D,EAAO84D,gBAC1C81H,EAAoB,CAChBC,mBACAZ,mBAAmB,EACnBz6H,KAAM,CAAEwgC,MAAO,iCAAkC7sF,OAAM8yC,WAAUkhJ,kBAAiBx9F,UAGlF1jD,EAAS51C,OAAS44C,EAAAA,GAAaG,iBAAwC,QAAzBo+I,EAAIvhJ,EAASiG,oBAAY,IAAAs7I,GAArBA,EAAuBvnL,SAAWgmC,EAASoF,SAS7F2hE,EAASkuE,oCACLrsE,EAAAA,EAASC,GACTssE,EAAUjoL,GACV8yC,EACA4oE,EAAAA,EAASI,WAGrB,IACF,EAqJyBs3E,0BAAyB,iDCpUrD,MAAMkB,GAAAA,EAEKC,WAAa,WACvB,QADiDjgL,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAClClB,QAAO2oC,GAAKA,EAAE/D,eAAcgZ,MAAK,CAACjV,EAAGvH,KAAWuH,EAAE7D,SACxE,EAJSo8I,EAMKE,eAAiB,SAAC1hJ,GAA4D,IAApCkJ,EAAyB1nC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAChF,OAAO0nC,EAAUA,EAAUlvC,OAAS,GAAGjN,KAAOizC,EAASjzC,EAC3D,8HCHG,SAAS40L,EAA4Bj+H,GAAwF,IAA3Cg4H,EAAmCl6K,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAC3H,MACM4yC,GAFwE5yC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IACrClB,QAAQ2oC,GAAMA,EAAEoW,eAAiBtJ,EAAAA,GAAa6rI,aAAe34I,EAAE7+C,OAAS44C,EAAAA,GAAaM,UACtEkM,MAAK,CAACxP,EAAU0B,KACvE,MAAMp/C,EAAY09C,EAAS+a,qBACrB9a,EAAa0J,EAAAA,EAAsB+N,aACrC/N,EAAAA,EAAsBqO,wBAAwB0jI,GAC9C7lI,EAAAA,EAAqBgsI,kBAAkBn+H,IAK3C,OAHmB1jB,EAAS+a,sBAExB5b,EAAAA,EAAgBW,0BAA0B,CAAEE,WAAU19C,YAAW29C,cACrD,IAEpB,OAAOrF,EAAAA,EAAYC,MAAMuZ,EAC7B,CAEO,SAAS0tI,EAAwCp+H,GAAwF,IAADolB,EAAA,IAA1C4yG,EAAmCl6K,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GACvI,MACM4yC,GAFoF5yC,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IACjDlB,QAAQ2oC,GAAMA,EAAEoW,eAAiBtJ,EAAAA,GAAa6rI,aAAe34I,EAAE7+C,OAAS44C,EAAAA,GAAaM,UACtEkM,MAAK,CAACxP,EAAU0B,KACvE,MAAMp/C,EAAY09C,EAAS+a,qBACrB9a,EAAa0J,EAAAA,EAAsB+N,aACrC/N,EAAAA,EAAsBqO,wBAAwB0jI,GAC9C7lI,EAAAA,EAAqBgsI,kBAAkBn+H,IAK3C,OAHmB1jB,EAAS+a,sBAExB5b,EAAAA,EAAgBW,0BAA0B,CAAEE,WAAU19C,YAAW29C,cACrD,IAGpB,OAAiC,QAA7B6oC,EAAAplB,EAAKtP,gCAAwB,IAAA00B,OAAA,EAA7BA,EAA+B/7E,OAA+B,OAAxBqnD,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0BrnD,IACzD6tC,EAAAA,EAAYC,MAAMuZ,GAEtBsP,EAAKtP,wBAChB,CAEO,SAAS2tI,EAAmCr+H,GAAwF,IAA3Cg4H,EAAmCl6K,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAMlI,MAAO,CAAEwgL,2BAN4ExgL,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,IAC5ClB,QAAQ2oC,GAAMA,EAAEoW,eAAiBtJ,EAAAA,GAAa6rI,aAAe34I,EAAE7+C,OAAS44C,EAAAA,GAAaM,UAK7FrD,WAJjB0J,EAAAA,EAAsB+N,aACrC/N,EAAAA,EAAsBqO,wBAAwB0jI,GAC9C7lI,EAAAA,EAAqBgsI,kBAAkBn+H,IAEKA,OACpD,kGCsCO,MAAM4xH,GAwXZ2M,EAxXY3M,EAAAA,EACK+L,uBAAyB,CAACn0L,EAAgBw2F,EAAoBxjD,KACxE,MAAMwjB,EAAOx2D,EAC2B,IAADolE,EAAA4vH,EAAA7lE,EAIHvzC,EAIGq5G,EAAAC,EAAAjgI,EAMIkgI,EAAAC,EAAAlgI,EAMFmgI,EAAAC,EAAAngI,EApBzC,OAAIqhC,IAAS3tC,EAAAA,GAAa6rI,aACmD,QAAlEtvH,EAAAla,EAAAA,EAAgBI,qBAAsC,QAAlB6jE,EAACnvH,EAAKqoH,oBAAY,IAAA8G,OAAA,EAAjBA,EAAmBnzE,kBAAU,IAAAopB,GAAmB,QAAnB4vH,EAAlE5vH,EAAoE3Z,yBAAiB,IAAAupI,OAAnB,EAAlEA,EAAuF7kJ,UACvF4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAa0sI,SAEtD/+F,IAAS3tC,EAAAA,GAAauJ,UACc,QAA7BwpB,EAAAplB,EAAKtP,gCAAwB,IAAA00B,OAAA,EAA7BA,EAA+BzrC,UAC/B4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAa6rI,aAEtDl+F,IAAS3tC,EAAAA,GAAa++H,aAEiD,QAAnEqN,EAAA/pI,EAAAA,EAAgBI,qBAAuC,QAAnB2J,EAACj1D,EAAK01D,qBAAa,IAAAT,OAAA,EAAlBA,EAAoBjZ,kBAAU,IAAAi5I,GAAmB,QAAnBC,EAAnED,EAAqExpI,yBAAiB,IAAAypI,OAAnB,EAAnEA,EAAwF/kJ,UACrF4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAauJ,SAAUpf,GAGhEwjD,IAAS3tC,EAAAA,GAAag/H,iBAEoD,QAAtEsN,EAAAjqI,EAAAA,EAAgBI,qBAA0C,QAAtB4J,EAACl1D,EAAK21D,wBAAgB,IAAAT,OAAA,EAArBA,EAAuBlZ,kBAAU,IAAAm5I,GAAmB,QAAnBC,EAAtED,EAAwE1pI,yBAAiB,IAAA2pI,OAAnB,EAAtEA,EAA2FjlJ,UACxF4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAa++H,YAAa50I,GAGnEwjD,IAAS3tC,EAAAA,GAAaC,eAEwD,QAA1EusI,EAAAnqI,EAAAA,EAAgBI,qBAA8C,QAA1B6J,EAACn1D,EAAK41D,4BAAoB,IAAAT,OAAA,EAAzBA,EAA2BnZ,kBAAU,IAAAq5I,GAAmB,QAAnBC,EAA1ED,EAA4E5pI,yBAAiB,IAAA6pI,OAAnB,EAA1EA,EAA+FnlJ,UAC5F4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAag/H,gBAAiB70I,GAIpEhzC,EAAKg1D,sBAAwB,CAAC,CAAC,EA9BjCozH,EAiCKC,iBAAmB,CAACroL,EAAgBw2F,IAC1CA,IAAS3tC,EAAAA,GAAauJ,SACfpyD,EAAK01D,cAEZ8gC,IAAS3tC,EAAAA,GAAa++H,YACf5nL,EAAK21D,iBAEZ6gC,IAAS3tC,EAAAA,GAAag/H,gBACf7nL,EAAK41D,qBAEZ4gC,IAAS3tC,EAAAA,GAAaC,cACf9oD,EAAK61D,uBADhB,EA3CKuyH,EAiDKoN,gBAAkB,CAACx5I,EAA2Bw6C,KACxD,MAAM2xF,EAAgBnsI,EAAU5oC,QAAQ2oC,GAAMA,EAAEoW,eAAiBqkC,IACjE,MAAO,CAAEA,OAAMx6C,UAAWmsI,EAAe,EAnDpCC,EAsDKqN,yBAA2Bx/L,IAYR,IAZS,OACtCu/D,EAAM,KACNx1D,EAAI,YACJw2C,EAAW,YACXkjB,EAAW,aACXC,EAAY,UACZ3d,EAAY,GAAE,iBACd5E,EAAgB,yBAChBs+I,EAAwB,SACxBx+I,EAAW,GAAE,UACb/nC,EAAS,QACT6jC,GACuB/8C,EAIvB,MAAMoyH,EAAersE,EAAU5oC,QAAQ2oC,GAAMA,EAAEoW,eAAiBtJ,EAAAA,GAAa0sI,UACvEI,EACF31L,EAAKqoH,cACLorE,EAAAA,EAAsBmC,mBAAmB,CACrCp/F,KAAM3tC,EAAAA,GAAa0sI,QACnBv5I,UAAWqsE,EACX7xE,gBAEJk/I,GACAX,EAAKc,0BAA0B,CAAE1+I,UAAWqe,EAAQxZ,UAAW25I,EAAkB35I,UAAW9E,aAEhGl3C,EAAKqoH,aAAe0sE,EAAKtN,oBAAoB,CACzCU,cAAewN,EACfxlJ,QAAS4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAa0sI,SACxDpmL,cAOJ,MAAMqnD,EAAOx2D,EACb,GAAIw2C,IAAgBC,EAAAA,GAAoBG,OAASJ,IAAgBC,EAAAA,GAAoBI,MAAO,CACxF,MAAMi/I,EAA+Bt/H,EAAKtP,yBACtC4uI,GACA5qI,EAAAA,EAAgBoF,oBAAoB,CAChCtU,UAAW,CAAC85I,GACZtlI,eAAgBukI,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAa6rI,cAG3E,CAMA,MAAMh/H,EAAgB1Z,EAAU5oC,QAAQ2oC,GAAMA,EAAEoW,eAAiBtJ,EAAAA,GAAauJ,WACxE2jI,EACF/1L,EAAK01D,eACL+9H,EAAAA,EAAsBmC,mBAAmB,CACrCp/F,KAAM3tC,EAAAA,GAAauJ,SACnBpW,UAAW0Z,EACXlf,gBAEJk/I,GACAX,EAAKc,0BAA0B,CAAE1+I,UAAWqe,EAAQxZ,UAAW+5I,EAAmB/5I,UAAW9E,WAAUE,qBAE3Gp3C,EAAK01D,cAAgBq/H,EAAKtN,oBAAoB,CAC1CU,cAAe4N,EACf5lJ,QAAS4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAauJ,UACxDhb,mBACAjoC,YACA6jC,YAMJ,MAAM2iB,EAAmB3Z,EAAU5oC,QAAQ2oC,GAAMA,EAAEoW,eAAiBtJ,EAAAA,GAAa++H,cAC3EoO,EACFh2L,EAAK21D,kBACL89H,EAAAA,EAAsBmC,mBAAmB,CACrCp/F,KAAM3tC,EAAAA,GAAa++H,YACnB5rI,UAAW2Z,EACXnf,gBAEJk/I,GACAX,EAAKc,0BAA0B,CAAE1+I,UAAWqe,EAAQxZ,UAAWg6I,EAAsBh6I,UAAW9E,WAAUE,qBAE9Gp3C,EAAK21D,iBAAmBo/H,EAAKtN,oBAAoB,CAC7CU,cAAe6N,EACf7lJ,QAAS4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAa++H,aACxDxwI,mBACAjoC,cAOJ,MAAMymD,EAAuB5Z,EAAU5oC,QAAQ2oC,GAAMA,EAAEoW,eAAiBtJ,EAAAA,GAAag/H,kBAC/EoO,EACFj2L,EAAK41D,sBACL69H,EAAAA,EAAsBmC,mBAAmB,CACrCp/F,KAAM3tC,EAAAA,GAAag/H,gBACnB7rI,UAAW4Z,EACXpf,gBAEJk/I,GACAX,EAAKc,0BAA0B,CAAE1+I,UAAWqe,EAAQxZ,UAAWi6I,EAA0Bj6I,UAAW9E,WAAUE,qBAElHp3C,EAAK41D,qBAAuBm/H,EAAKtN,oBAAoB,CACjDU,cAAe8N,EACf9lJ,QAAS4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAag/H,iBACxDzwI,mBACAjoC,cAOJ,MAAM0mD,EAAoB7Z,EAAU5oC,QAAQ2oC,GAAMA,EAAEoW,eAAiBtJ,EAAAA,GAAaC,gBAC5EotI,EACFl2L,EAAK61D,mBACL49H,EAAAA,EAAsBmC,mBAAmB,CACrCp/F,KAAM3tC,EAAAA,GAAaC,cACnB9M,UAAW6Z,EACXrf,cACAkjB,cACAC,iBAEJ+7H,GACAX,EAAKc,0BAA0B,CAAE1+I,UAAWqe,EAAQxZ,UAAWk6I,EAAuBl6I,UAAW9E,WAAUE,qBAE/Gp3C,EAAK61D,kBAAoBk/H,EAAKtN,oBAAoB,CAC9CU,cAAe+N,EACf/lJ,QAAS4kJ,EAAKZ,uBAAuBn0L,EAAM6oD,EAAAA,GAAaC,eACxD1R,mBACAjoC,aACF,EA9LGi5K,EAmMK+N,4BAA8B30L,IASR,IATS,KACzCg1F,EAAI,oBACJ4/F,EAAmB,UACnBp6I,EAAY,GAAE,gBACdyO,EAAkB,CAAC,EAAC,yBACpBirI,EAAwB,SACxBx+I,EAAW,GAAE,UACb/nC,EAAS,QACT6jC,GAC0BxxC,EAC1B,MAAM2mL,EAAgBnsI,EAAU5oC,QAAQ2oC,GAAMA,EAAEoW,eAAiBqkC,IAC3D6/F,EAAqBD,GACvB3C,EAAAA,EAAsBmC,mBAAmB,CAAEp/F,KAAM3tC,EAAAA,GAAa0sI,QAASv5I,UAAWmsI,EAAe3xI,YAAaC,EAAAA,GAAoBC,UAKtI,OAHIg/I,GACAX,EAAKc,0BAA0B,CAAE75I,UAAWq6I,EAAmBr6I,UAAW9E,aAEvE69I,EAAKtN,oBAAoB,CAC5BU,cAAekO,EACflmJ,QAASsa,EACTt7C,aACF,EAxNGi5K,EA2NKyN,0BAA4B3mL,IACL,IADM,UAAEioC,EAAS,UAAE6E,EAAY,GAAE,SAAE9E,EAAW,GAAE,iBAAEE,GACxDloC,EAClB,OAAT8sC,QAAS,IAATA,GAAAA,EAAWxnC,SAASs+B,IAChB6C,EAAAA,EAAmBqB,uBAAuB,CACtCG,YACAC,mBACAtE,SAAUA,EACVoE,YACF,GACJ,EApOGkxI,EAuOKX,oBAAsBjuH,IAMc,IANb,cACjC2uH,EAAa,QACbh4I,EAAU,CAAC,EAAC,iBACZiH,EAAgB,QAChBpE,EAAO,UACP7jC,GACmBqqD,EACnB2uH,EAAc33H,eAAiBrgB,EAC/B,MACM6L,GAAyB,OAAbmsI,QAAa,IAAbA,OAAa,EAAbA,EAAensI,YAAa,GAC9C,GAAIA,EAAUlvC,OAAS,EAAG,CACtBo+C,EAAAA,EAAgBwE,8CAA8C1T,EAH7B,OAIjCkP,EAAAA,EAAgBoF,oBAAoB,CAAEtU,YAAW5E,mBAAkBoZ,eAAgBrgB,EAAS6C,YAC5F,MAAM+b,EAAsB7D,EAAAA,EAAgB2D,yBAAyB7S,GACrE,IAAI,gBAAE2V,EAAe,QAAEY,GAAYrH,EAAAA,EAAgByG,gBAAgB,CAC/D3V,UAAWA,EACX5E,mBACAjoC,cAIJg5K,EAAcnsI,UAAYA,EAC1BmsI,EAAc54D,aAAcxgE,EAAoBA,qBAA8B4C,EAC9Ew2H,EAAc51H,QAAUA,EACxB41H,EAAcp5H,oBAAsBA,EAAoBA,oBAClDA,OACAt0D,CACV,MACI0tL,EAAcnsI,UAAYA,EAC1BmsI,EAAc54D,aAAc,EAC5B44D,EAAc51H,SAAU,EACxB41H,EAAcp5H,yBAAsBt0D,EAExC,OAAO0tL,CAAa,EAxQfC,EA2QKkO,mCAAqCz4H,IAMZ,IANa,UAChD7hB,EAAY,GAAE,eACdwU,EAAiB,CAAC,EAAC,SACnBtZ,EAAW,GAAE,6BACbq/I,EAA4B,yBAC5Bb,GAC6B73H,EAC7B,GAAI7hB,EAAUlvC,OAAS,EAAG,CAClB4oL,GAEA15I,EAAUxnC,SAASs+B,GACf6C,EAAAA,EAAmBqB,uBAAuB,CAAElE,WAAUoE,eAI9DgU,EAAAA,EAAgBwE,8CAA8C1T,EAAWu6I,GACzErrI,EAAAA,EAAgBoF,oBAAoB,CAAEtU,YAAWwU,mBAEjD,MAAMgmI,EAAyCx6I,IAG3C,MAAM,oBAAE+S,EAAmB,4BAAEC,GACzB9D,EAAAA,EAAgB2D,yBAAyB7S,GAC7C,GAAI+S,GAAuBC,EAA6B,CACpD,MAAM,gBAAExB,GAAoBtC,EAAAA,EAAgBoC,uBAAuB,CAC/Dxa,SAAUkc,IAEd,OAAO9D,EAAAA,EAAgBE,gBAAgBpP,EAAWwR,EACtD,CACA,OAAOxR,CAAS,EAEpBw6I,EAAsCx6I,EAC1C,GA3SKosI,EAgTKkB,yBAA2B,CAACtpL,EAAgBw2F,KACtD,MAAMigG,EAAW1B,EAAK2B,gBAAgB12L,EAAMw2F,GACtCmgG,GAAcF,IAAmB,OAARA,QAAQ,IAARA,OAAQ,EAARA,EAAUlnE,aACzC,OAAI/4B,IAAS3tC,EAAAA,GAAa++H,YACf+O,GAAe5B,EAAKzL,yBAAyBtpL,EAAM6oD,EAAAA,GAAauJ,UAEvEokC,IAAS3tC,EAAAA,GAAag/H,gBACf8O,GAAe5B,EAAKzL,yBAAyBtpL,EAAM6oD,EAAAA,GAAa++H,aAEvEpxF,IAAS3tC,EAAAA,GAAaC,eACf6tI,GAAe5B,EAAKzL,yBAAyBtpL,EAAM6oD,EAAAA,GAAag/H,gBAEhE,EA5TNO,EA+TKK,sBAAwB,CAACzoL,EAAiBw2F,KAAyB,IAADogG,EACxCC,EAGGC,EAGIC,EAGFC,EATzC,OAAIxgG,IAAS3tC,EAAAA,GAAauJ,SACX,OAAJpyD,QAAI,IAAJA,GAAkB,QAAd62L,EAAJ72L,EAAMs7G,oBAAY,IAAAu7E,OAAd,EAAJA,EAAoBnhI,cAE3B8gC,IAAS3tC,EAAAA,GAAa++H,YACX,OAAJ5nL,QAAI,IAAJA,GAAkB,QAAd82L,EAAJ92L,EAAMs7G,oBAAY,IAAAw7E,OAAd,EAAJA,EAAoBnhI,iBAE3B6gC,IAAS3tC,EAAAA,GAAag/H,gBACX,OAAJ7nL,QAAI,IAAJA,GAAkB,QAAd+2L,EAAJ/2L,EAAMs7G,oBAAY,IAAAy7E,OAAd,EAAJA,EAAoBnhI,qBAE3B4gC,IAAS3tC,EAAAA,GAAaC,cACX,OAAJ9oD,QAAI,IAAJA,GAAkB,QAAdg3L,EAAJh3L,EAAMs7G,oBAAY,IAAA07E,OAAd,EAAJA,EAAoBnhI,kBAEpB,OAAJ71D,QAAI,IAAJA,GAAkB,QAAd42L,EAAJ52L,EAAMs7G,oBAAY,IAAAs7E,OAAd,EAAJA,EAAoBr7E,KAAK,EA5U3B6sE,EA+UKsO,gBAAkB,CAAC12L,EAAgBw2F,KACL,IAADxxB,EAGIC,EAKFC,EARzC,OAAIsxB,IAAS3tC,EAAAA,GAAa++H,YACG,QAAlB5iH,EAAAhlE,EAAK01D,qBAAa,IAAAsP,GAAlBA,EAAoBuqD,YAAcwlE,EAAK2B,gBAAgB12L,EAAM6oD,EAAAA,GAAauJ,UAAYpyD,EAAK01D,cAElG8gC,IAAS3tC,EAAAA,GAAag/H,gBACM,QAArB5iH,EAAAjlE,EAAK21D,wBAAgB,IAAAsP,GAArBA,EAAuBsqD,YACxBwlE,EAAK2B,gBAAgB12L,EAAM6oD,EAAAA,GAAa++H,aACxC5nL,EAAK21D,iBAEX6gC,IAAS3tC,EAAAA,GAAaC,cACU,QAAzBoc,EAAAllE,EAAK41D,4BAAoB,IAAAsP,GAAzBA,EAA2BqqD,YAC5BwlE,EAAK2B,gBAAgB12L,EAAM6oD,EAAAA,GAAag/H,iBACxC7nL,EAAK41D,0BAHf,CAMgB,EA9VXwyH,EAiWKsB,YAAc,CAAC1pL,EAAgBw2F,KACP,IAADygG,EAGGC,EAKGC,EAKI/hI,EAb3C,OAAIohC,IAAS3tC,EAAAA,GAAauuI,MACG,QAAlBH,EAAAj3L,EAAK01D,qBAAa,IAAAuhI,GAAlBA,EAAoB1nE,YAAcwlE,EAAKrL,YAAY1pL,EAAM6oD,EAAAA,GAAauJ,UAAYpyD,EAAK01D,cAE9F8gC,IAAS3tC,EAAAA,GAAauJ,SACM,QAArB8kI,EAAAl3L,EAAK21D,wBAAgB,IAAAuhI,GAArBA,EAAuB3nE,YACxBwlE,EAAKrL,YAAY1pL,EAAM6oD,EAAAA,GAAa++H,aACpC5nL,EAAK21D,iBAEX6gC,IAAS3tC,EAAAA,GAAa++H,YACU,QAAzBuP,EAAAn3L,EAAK41D,4BAAoB,IAAAuhI,GAAzBA,EAA2B5nE,YAC5BwlE,EAAKrL,YAAY1pL,EAAM6oD,EAAAA,GAAag/H,iBACpC7nL,EAAK41D,qBAEX4gC,IAAS3tC,EAAAA,GAAag/H,gBACO,QAAtBzyH,EAAAp1D,EAAK61D,yBAAiB,IAAAT,GAAtBA,EAAwBm6D,YACzBwlE,EAAKrL,YAAY1pL,EAAM6oD,EAAAA,GAAaC,eACpC9oD,EAAK61D,uBAHf,CAKgB,8FC5bjB,MAAM6lD,EAST,mBAAc27E,CAAaC,GAAkD,IAA3BC,EAAoBjjL,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EACrE,GAAIgjL,EAAS,CACT,MAAME,EAAgBF,EAAQnyD,wBAC9B,OACIqyD,EAAK9pL,KAAO,GACZ8pL,EAAKhqL,MAAQ,GACbgqL,EAAKhvG,OAAS+uG,IAAiBjnL,OAAOyjJ,aAAe1+E,SAASs+E,gBAAgBG,eAC9E0jC,EAAK/pL,QAAU6C,OAAOujJ,YAAcx+E,SAASs+E,gBAAgBC,YAErE,CACA,OAAO,CACX,EApBSl4C,EAEKC,GAAK,gBAFVD,EAIKI,WAAa,IAJlBJ,EAKKytE,UAAY,IALjBztE,EAOK+7E,aAAe,IAgB1B,MAAM39E,EAAcA,KAqPhB,CAAE49E,8BAjP6BA,CAACC,EAA2BC,KAE9D,MAAMC,EAAkCxiH,SAASC,eAA8B,OAAfsiH,QAAe,IAAfA,EAAAA,EAAmB,IAGnF,GAAIC,IAAgBn8E,EAAS27E,aAAaQ,EAAa,IAAK,CAAC,IAADC,EACxD,MAAMC,EAAqD,QAA5BD,EAAc,OAAXD,QAAW,IAAXA,OAAW,EAAXA,EAAaG,oBAAY,IAAAF,EAAAA,EAAI,EAGzDG,EADyB3nL,OAAOyjJ,aAAe1+E,SAASs+E,gBAAgBG,aAGxEokC,EAAgCL,EAAY1yD,wBAClD,IAAIgzD,EAA2B7nL,OAAO8nL,YAAcF,EAAqBxqL,IAGrE2qL,EAA8BF,EAG9BF,EAA0BF,IAC1BM,EAAuBF,EAAkBF,EAA0BF,GAIvE,MAAMO,EAA6ClyH,EAAAA,EAAmBS,sBAAsB8wH,GACtFY,EAAuCljH,SAASC,eAAegjH,GAErE,GAAIC,EAAkB,CAAC,IAADC,EAKlB,GAHuDT,GADc,QAAjCS,EAAmB,OAAhBD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkBP,oBAAY,IAAAQ,EAAAA,EAAI,GAI5BP,EAAyB,CAClE,MAAMQ,EAA6CF,EAAiBpzD,wBACpEgzD,EAAmB7nL,OAAO8nL,YAAcK,EAAkC/qL,IAC1E2qL,EAAsBF,CAC1B,CACJ,CAIAE,EAAsBA,EADD,GACsC,GAE3D,MAAMK,EAAyCrjH,SAASC,eAAeomC,EAASC,IAC9D,OAAlB+8E,QAAkB,IAAlBA,GAAAA,EAAoBC,SAAS,CAAEC,SAAU,SAAUlrL,IAAK2qL,GAC5D,GAqMoC58E,YA9LpB,SAACwtE,EAAoB4P,GAAgD,IAA/B9wF,EAAiBzzF,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,IAAAA,UAAA,GAGvE,GAFA7D,EAAAA,EAAOC,IAAI,cAAe,CAAEu4K,aAAY4P,UAAS9wF,aAE5C8wF,EAGE,CAEH,MAAMhxC,EAA0BxyE,SAASC,eAAsB,OAAPujH,QAAO,IAAPA,EAAAA,EAAW,IAGnE,GAAIhxC,EAAK,CAAC,IAADixC,EACL,MAAMC,EAAqC,QAApBD,EAAM,OAAHjxC,QAAG,IAAHA,OAAG,EAAHA,EAAKmwC,oBAAY,IAAAc,EAAAA,EAAI,EAEzCE,EAAkBjxF,EAAW,GAAK,GAElCkxF,EAAyB3oL,OAAOyjJ,aAAe1+E,SAASs+E,gBAAgBG,aAExEolC,EAAwBrxC,EAAI1iB,wBAClC,IAAIgzD,EAA0B7nL,OAAO8nL,YAAcc,EAAaxrL,IAAMsrL,EAGlEX,EAA8BF,EAGlC,MAAMF,EAAkCgB,EAAiBD,EACrDf,EAA0Bc,IAC1BV,EAAsBF,EAAkBF,EAA0Bc,GAItEV,GADqB,GAGrB,MAAMx+E,EAA+BxkC,SAASC,eAAe2zG,GAQrD,OAARpvE,QAAQ,IAARA,GAAAA,EAAU8+E,SAAS,CAAEC,SAAU,SAAUlrL,IAAK2qL,GAClD,CACJ,KAxCc,CACV,MAAMK,EAAyCrjH,SAASC,eAAe2zG,GACrD,OAAlByP,QAAkB,IAAlBA,GAAAA,EAAoBS,SAAS,CAAEP,SAAU,SAAUlrL,IAAK,GAC5D,CAsCJ,EAkJqDs7K,iBA5I5B/yL,IAUnB,IAVoB,WACtBgzL,EAAU,OACVzzH,EAAM,WACN0zH,EAAU,UACVltI,EAAY,GAAE,aACd0qB,EACA0yH,aAAc3tI,EAAiB,MAC/Bi+B,EAAQ,GAAE,KACVr9B,GACqBp2D,EAYrB2E,YAAW,KACP,MAAMg9L,EAAkBlxH,GAAgBN,EAAAA,EAAmBQ,iBAAiBpR,EAAkB,OAAV0zH,QAAU,IAAVA,OAAU,EAAVA,EAAYrpL,IAC1Fu5L,EAAe3tI,GAAqBP,EAAAA,EAAgBoE,2BAA2B45H,EAAaltI,GAC5F27I,EAAoBvxH,EAAAA,EAAmBQ,iBAAiBpR,EAAoB,OAAZ4jI,QAAY,IAAZA,OAAY,EAAZA,EAAcv5L,IAC9Eg6G,EAA+BxkC,SAASC,eAAe2zG,GAE7D,GAAIpvE,GAAY+9E,EAAiB,CAC7B,MAAMyB,EAAoCx/E,EAASsrB,wBAE7C0yD,EAAkCxiH,SAASC,eAA8B,OAAfsiH,QAAe,IAAfA,EAAAA,EAAmB,IAC7E0B,EAAwBzB,GAAen8E,EAAS27E,aAAaQ,GAEnE,GAAIA,IAAgByB,EAAuB,CAAC,IAADC,EACvC,MAAMxB,EAAqD,QAA5BwB,EAAc,OAAX1B,QAAW,IAAXA,OAAW,EAAXA,EAAaG,oBAAY,IAAAuB,EAAAA,EAAI,EAEzDC,EAAwB3B,EAAY1yD,wBACpC8zD,EAAyB3oL,OAAOyjJ,aAAe1+E,SAASs+E,gBAAgBG,aAGxE2lC,EAAeJ,EAAa3rL,IAElC,IAAI2qL,EAA8B,EAElC,GAAIgB,EAAaj2L,OAASo2L,EAAap2L,OAAQ,CAI3C,MACMs2L,EADa19I,EAAU5oC,QAAO2oC,GAAKh0C,QAAQg0C,EAAE/D,gBAAelrC,OAAS,EAClD,GAAK,EAC9BurL,EAAsBmB,EAAahxG,OAASixG,EAAeJ,EAAaj2L,OAASs2L,EAGjFjpL,EAAAA,EAAOC,IAAI,SAAU,CAAE27C,QAE3B,MAGIgsI,EAAsBmB,EAAa9rL,IAAM+rL,EACzChpL,EAAAA,EAAOC,IAAI,SAAU,CAAE27C,SAI3B,MAAMstI,EAAsCvzH,EAAAA,EAAmBS,sBAAsB8wH,GAC/EiC,EAAuCvkH,SAASC,eAAeqkH,GAErE,GAAIC,EAAkB,CAClB,MAAMC,EAAiCD,EAAiBz0D,wBAClD20D,EAAe,GACfC,EAAkCF,EAAsBz2L,OAAS02L,EAAeN,EAAap2L,OAE/Fi2L,EAAaj2L,OAAS22L,GACtB1B,EAAsBmB,EAAahxG,OAASixG,EAAeJ,EAAaj2L,QAAUy2L,EAAsBz2L,OAAS,IAEjHqN,EAAAA,EAAOC,IAAI,cAIX2nL,EAAsBwB,EAAsBnsL,IAAM+rL,EAClDhpL,EAAAA,EAAOC,IAAI,WAAY,CAAEqpL,kCAAiCN,eAAcpB,sBAAqBx+E,WAAUo/E,iBAAgBY,wBAAuBL,eAAczB,oBAAmBsB,iBAEvL,CAOQ,OAARx/E,QAAQ,IAARA,GAAAA,EAAU8+E,SAAS,CAAEC,SAAU,SAAUlrL,IAAK2qL,IAE9C,MAAM2B,EAAgBX,EAAaj2L,OAASi2L,EAAa3rL,IACnDusL,EAAepgF,EAASogF,aAAeR,EAC7ChpL,EAAAA,EAAOg9B,gBAAkBh9B,EAAAA,EAAOC,IAAI,sBAAuB,CAAEspL,gBAAeP,eAAcpB,sBAAqBx+E,WAAUogF,eAAchB,iBAAgBO,eAAczB,oBAAmBsB,eAAc3rL,IAAK2qL,EAAqBhsI,QACpO,CACJ,IACDq9B,EAAM,EA6C0Dq+F,oCAvC3B,SACxCkB,EACAzzH,EACA0zH,GAGAtuL,YAAW,KACP,MAAMg9L,EAAkBxxH,EAAAA,EAAmBQ,iBAAiBpR,EAAQ0zH,EAAWrpL,IACzEg6G,EAA+BxkC,SAASC,eAAe2zG,GAC7D,GAAIpvE,GAAY+9E,EAAiB,CAC7B,MAAMyB,EAAoCx/E,EAASsrB,wBAE7C0yD,EAAkCxiH,SAASC,eAA8B,OAAfsiH,QAAe,IAAfA,EAAAA,EAAmB,IAEnF,GAAIC,IAAgBn8E,EAAS27E,aAAaQ,GAAc,CACpD,MAAM2B,EAAwB3B,EAAY1yD,wBAEpCs0D,EAAeJ,EAAa3rL,IAClC,IAAI2qL,EAAsBmB,EAAahxG,OAASixG,EAAeJ,EAAaj2L,OAAS,EAGrFi1L,EAqBpB,SAAgCA,EAA6BgB,GACzD,MAAMa,EAAiB7B,EAAsBgB,EAAaj2L,OAASs4G,EAAS+7E,aAAe4B,EAAa7wG,OAOxG,OANA/3E,EAAAA,EAAOC,IAAI,gCAAiC,CACxCypL,oBAAqB9B,EAAsBgB,EAAaj2L,OACxD82L,iBAAgB7B,sBAChBgB,eACAe,mBAAmB,+EAAD/4L,OAAiFg3L,EAAsB38E,EAAS+7E,aAAe4B,EAAaj2L,OAAM,OAAA/B,OAAMg4L,EAAa7wG,OAAM,4BAE1L0xG,EAAiB7B,EAAsB38E,EAAS+7E,aAAeY,EAAsB,CAChG,CA9B0CgC,CAAuBhC,EAAqBgB,GAC1D,OAARx/E,QAAQ,IAARA,GAAAA,EAAU8+E,SAAS,CAAEC,SAAU,SAAUlrL,IAAK2qL,GAClD,CACJ,IApBS/jL,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,GAsBpB,EAa4Gs1K,cATtF,SAACX,GAAiD,IAA7BqR,EAAmBhmL,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,EAC7D7D,EAAAA,EAAOC,IAAI,cAAe,CAAEu4K,aAAYqR,gBACxC,MAAMzgF,EAA+BxkC,SAASC,eAAe2zG,GAC7D,GAAIpvE,EAAU,CACV,MAAMw+E,EAAsBx+E,EAASogF,aAAeK,EAC5C,OAARzgF,QAAQ,IAARA,GAAAA,EAAU8+E,SAAS,CAAEC,SAAU,SAAUlrL,IAAK2qL,GAClD,CACJ,0ZCtRG,MAAMkC,EAEX,uBAAc3mI,CAAiB2e,GAC7B,OAAOolF,EAAAA,EAAWpyJ,IAA8B0nE,EAAAA,EAAQ0B,kBAAkB4D,GAC5E,wECMK,MAAMioH,EAA2BA,CACpC3mI,EACAhB,EACA1jD,KAGA,MAAM,UAAE6sC,EAAY,GAAE,eAAE2jB,GAAmB9M,GACrC,MAAEhM,EAAQ,GAAE,SAAEwN,EAAW,GAAE,UAAEC,EAAY,GAAE,aAAEkN,EAAe,IAAO3N,EAEnE4mI,EAAqBA,CAACz6L,EAAgB8rD,KAAoC,IAADmJ,EAAAC,EAAAC,EAAAC,EAC3E,MAAMpZ,EAAY8P,EAAkB,CAACA,GAAmB,GAOxD,OANA9P,EAAUrnD,SACgB,QAAlBsgE,EAAAj1D,EAAK01D,qBAAa,IAAAT,OAAA,EAAlBA,EAAoBjZ,YAAc,OACb,QAArBkZ,EAAAl1D,EAAK21D,wBAAgB,IAAAT,OAAA,EAArBA,EAAuBlZ,YAAc,OACZ,QAAzBmZ,EAAAn1D,EAAK41D,4BAAoB,IAAAT,OAAA,EAAzBA,EAA2BnZ,YAAc,OACnB,QAAtBoZ,EAAAp1D,EAAK61D,yBAAiB,IAAAT,OAAA,EAAtBA,EAAwBpZ,YAAc,IAEvCkP,EAAAA,EAAgB2D,yBAAyB7S,EAAU,EAGxD0+I,EAAwBA,CAAC16L,EAAgB26L,KACvCA,EAAqB5rI,qBACrB/uD,EAAKgvH,0BAA4B2rE,EACjC9zI,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAW7kD,EAAK6kD,SAASmqE,0BAA4B2rE,GAEzE36L,EAAKgvH,+BAA4Bv0H,CACrC,EAGJ,GAAIosD,EAAM/5C,QAAUunD,EAASvnD,QAAUwnD,EAAUxnD,OAAQ,CACrD+5C,EAAMryC,SAASxU,IAAiB,IAADi6E,EAAA2gH,EAC3B,MAAM1zI,EAA2BlnD,EAAKknD,yBAChC9P,EAA2C,OAAxB8P,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0B3N,aAC7Cm1C,EAAuF,QAAtEzU,EAAGzY,EAAalf,MAAMhtC,IAAC,IAAAmsD,EAAA,OAAc,QAAdA,EAAKnsD,EAAE0wC,eAAO,IAAAyb,OAAA,EAATA,EAAWzQ,MAAM0mB,GAAMA,IAAM13E,EAAK6kD,QAAO,WAAC,IAAAo1B,GAC9D,QAD8D2gH,EAAnE3gH,EACpB0J,iCAAyB,IAAAi3G,OAD8D,EAAnEA,EACQ56L,EAAK6kD,QAEvC7kD,EAAKg1D,qBAAuBvY,EAAAA,EAAsB+N,aAC9C/N,EAAAA,EAAsBqO,wBAAsC,OAAd6U,QAAc,IAAdA,OAAc,EAAdA,EAAgB3jB,WAC9D2M,EAAAA,EAAqBgsI,kBAAkB30L,EAAM0uF,IAEjD05F,EAAAA,EAAgBqN,yBAAyB,CACrCjgI,OAAQx1D,EAAK6kD,OACb7kD,OACAg8C,YACA5E,mBACAZ,YAAax2C,EAAK9C,OAASu6D,EAAAA,GAASC,IAAMjhB,EAAAA,GAAoBG,MAAQH,EAAAA,GAAoBI,MAC1F1nC,cAEJ,IAAIwrL,EAAuBF,EAAmBz6L,EAAMA,EAAKknD,0BACzDlnD,EAAKgvH,0BAA4B2rE,EAAqB5rI,oBAChD4rI,OACAlgM,CAAS,IAGnB45D,EAAS7/C,SAASxU,IAAoB,IAAD66L,EAAAC,EACjC,MAAMtkI,EAAO3P,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAW7kD,EAAK6kD,SAC3CqC,EAA2BsP,EAAKtP,yBAChC9P,EAA2C,OAAxB8P,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0B3N,aAC7Cm1C,EAAuF,QAAtEmsG,EAAGr5H,EAAalf,MAAMhtC,IAAC,IAAAusD,EAAA,OAAc,QAAdA,EAAKvsD,EAAE0wC,eAAO,IAAA6b,OAAA,EAATA,EAAW7Q,MAAM0mB,GAAMA,IAAM13E,EAAK6kD,QAAO,WAAC,IAAAg2I,GAC9D,QAD8DC,EAAnED,EACpBl3G,iCAAyB,IAAAm3G,OAD8D,EAAnEA,EACQ96L,EAAK6kD,QAEvC7kD,EAAKg1D,qBAAuBrM,EAAAA,EAAqBoyI,qBAAqB/6L,EAAMw2D,EAAMk4B,GAClF05F,EAAAA,EAAgBqN,yBAAyB,CACrCjgI,OAAQx1D,EAAK81D,UACb91D,OACAg8C,YACA5E,mBACAZ,YAAaC,EAAAA,GAAoBK,SACjC4iB,YAAa15D,EAAK9C,KAClBiS,cAEJurL,EAAsB16L,EAAMy6L,EAAmBz6L,IAC/CA,EAAKw5G,iBAAmB8K,EAAAA,EAAe4L,kBAAkBlwH,EAAMq0D,EAAS,IAG5EC,EAAU9/C,SAASxU,IAAqB,IAADg7L,EAAAC,EACnC,MAAMzkI,EAAO3P,EAAMvE,MAAMzG,GAAMA,EAAEgJ,SAAW7kD,EAAK6kD,SAC3CqC,EAA2BsP,EAAKtP,yBAChC9P,EAA2C,OAAxB8P,QAAwB,IAAxBA,OAAwB,EAAxBA,EAA0B3N,aAC7Cm1C,EAAuF,QAAtEssG,EAAGx5H,EAAalf,MAAMhtC,IAAC,IAAA4lL,EAAA,OAAc,QAAdA,EAAK5lL,EAAE0wC,eAAO,IAAAk1I,OAAA,EAATA,EAAWlqI,MAAM0mB,GAAMA,IAAM13E,EAAK6kD,QAAO,WAAC,IAAAm2I,GAC9D,QAD8DC,EAAnED,EACpBr3G,iCAAyB,IAAAs3G,OAD8D,EAAnEA,EACQj7L,EAAK6kD,QAEvC7kD,EAAKg1D,qBAAuBrM,EAAAA,EAAqBwyI,sBAAsBn7L,EAAMw2D,EAAMk4B,GACnF05F,EAAAA,EAAgBqN,yBAAyB,CACrCjgI,OAAQx1D,EAAK+1D,WACb/1D,OACAg8C,YACA5E,mBACAZ,YAAaC,EAAAA,GAAoBM,aACjC4iB,aAAc35D,EAAK9C,KACnBiS,cAGJurL,EAAsB16L,EAAMy6L,EAAmBz6L,IAC/CA,EAAKw5G,iBAAmB8K,EAAAA,EAAe+L,mBAAmBrwH,EAAMs0D,EAAU,IAG9EzN,EAAMryC,SAASxU,GAAiBA,EAAKw5G,iBAAmB8K,EAAAA,EAAe4J,eAAeluH,EAAM6mD,KAE5F,MAAMouE,EAAiB3Q,EAAAA,EAAeyJ,YAAYlnE,GAClD,MAAO,CAAEy+H,UAAU,EAAMz+H,QAAOwN,WAAUC,YAAW2gE,iBACzD,CACA,MAAO,CAAEqwD,UAAU,EAAOrwD,gBAAgB,EAAO,EAGxCmmE,EAA2BA,CAACvnI,EAA2BhB,EAAwB1jD,KACxF,MAAM,UAAE6sC,EAAY,GAAE,eAAE2jB,EAAc,aAAEC,EAAY,aAAEC,GAAiBhN,GACjE,MAAEhM,EAAQ,IAAOgN,EACjBwnI,EAAWx0I,EAAMzzC,QAAOkC,GAAKA,EAAEpY,OAASu6D,EAAAA,GAASC,MACjD4jI,EAAYz0I,EAAMzzC,QAAOkC,GAAKA,EAAEpY,OAASu6D,EAAAA,GAASG,OAElD2jI,EAAwB9+I,EAAAA,EAAsBqO,wBAAsC,OAAd6U,QAAc,IAAdA,OAAc,EAAdA,EAAgB3jB,WACtFw/I,EAAqB/+I,EAAAA,EAAsB+N,aAAa+wI,EAAuB,CACjFn/I,YAAa,CACT,CAACK,EAAAA,EAAsB+L,uBAAwB/L,EAAAA,EAAsB6L,2BAA2BzB,GAASpK,EAAAA,EAAsBgM,wBAA0B,IAE7J5B,MAAOw0I,EAASt7L,KAAIy2D,GAAQ7N,EAAAA,EAAqBC,mBAAmB4N,EAAM3N,EAAAA,GAAaC,iBACvFod,MAAOo1H,EAAUv7L,KAAIy2D,GAAQ7N,EAAAA,EAAqBC,mBAAmB4N,EAAM3N,EAAAA,GAAaC,mBAE5Fs/H,EAAAA,EAAgB+N,4BAA4B,CACxC3/F,KAAM3tC,EAAAA,GAAa8iB,aACnByqH,oBAAqBx2H,EACrBnV,gBAAiB+wI,EACjBx/I,YACA7sC,cAGJ,MAAMssL,EAA4Bh/I,EAAAA,EAAsBqO,wBAAoC,OAAZ8U,QAAY,IAAZA,OAAY,EAAZA,EAAc5jB,WAQ9F,OAPAosI,EAAAA,EAAgB+N,4BAA4B,CACxC3/F,KAAM3tC,EAAAA,GAAa+iB,aACnBwqH,oBAAqBv2H,EACrB7jB,YACA7sC,YACAs7C,gBAAiBgxI,GAA6BD,IAE3C,IAAK3oI,EAAYyyH,UAAU,EAAM1lH,eAAcC,eAAc,EAI3D67H,EAA4BA,CAAC7nI,EAA2BhB,KACjE,MAAM,eAAE8M,GAAmB9M,GACrB,MAAEhM,EAAQ,IAAOgN,EACjBwnI,EAAWx0I,EAAMzzC,QAAOkC,GAAKA,EAAEpY,OAASu6D,EAAAA,GAASC,MACjD4jI,EAAYz0I,EAAMzzC,QAAOkC,GAAKA,EAAEpY,OAASu6D,EAAAA,GAASG,OAElD2jI,EAAwB9+I,EAAAA,EAAsBqO,wBAAsC,OAAd6U,QAAc,IAAdA,OAAc,EAAdA,EAAgB3jB,WAQ5F,OAP2BS,EAAAA,EAAsB+N,aAAa+wI,EAAuB,CACjFn/I,YAAa,CACT,CAACK,EAAAA,EAAsB+L,uBAAwB/L,EAAAA,EAAsB6L,2BAA2BzB,GAASpK,EAAAA,EAAsBgM,wBAA0B,IAE7J5B,MAAOw0I,EAASt7L,KAAIy2D,GAAQ7N,EAAAA,EAAqBC,mBAAmB4N,EAAM3N,EAAAA,GAAaC,iBACvFod,MAAOo1H,EAAUv7L,KAAIy2D,GAAQ7N,EAAAA,EAAqBC,mBAAmB4N,EAAM3N,EAAAA,GAAaC,kBAEnE,EC5IhB6yI,EAAyB1lM,IAAiD,IAAhD,YAAE+4L,GAAwC/4L,EAC7E,MAAMkZ,GAAYC,EAAAA,EAAAA,KACZuB,GAAiBV,EAAAA,EAAAA,MACjB8iH,GAAYy3D,EAAAA,EAAAA,KAiJlB,MAAO,CAAEoR,kBA/IiBvnM,UAA6D,IAADk/H,EAAA86D,EAAA,IAArD,SAAEr5L,EAAQ,UAAEgnD,GAAoCx6C,EAC7EwtL,EAAY,CAAE6M,YAAaC,EAAAA,EAAYC,gBACvC,MAAMC,QAAwDzB,EAAiB3mI,iBAAiB5+D,IAC1F,gBACFs7L,EACAC,aAAcr5I,EAAQ,qBACtB+kJ,EAAoB,aACpBC,GACAF,EAAsB/+L,KAC1B0T,EAAe9I,OAAO,CAClBP,QAAS20L,EAAqBhqH,OAC9Bi/G,gBAAiB+K,EAAqBE,kBACtCC,mBAAoBH,EAAqBI,mBACzCtoB,SAAS,EACTjjK,kBAAcrW,EACdsW,cAAc,IAGlB,MAAM4uD,EAAiByoH,EAAAA,EAAgBoN,gBAAgBx5I,EAAW6M,EAAAA,GAAa6iB,gBACzE9L,EAAewoH,EAAAA,EAAgBoN,gBAAgBx5I,EAAW6M,EAAAA,GAAa8iB,cACvE9L,EAAeuoH,EAAAA,EAAgBoN,gBAAgBx5I,EAAW6M,EAAAA,GAAa+iB,cAEvE73E,EAAyC,CAC3CmjD,WACAq/I,8BAA8B,EAC9Bb,0BAA0B,GAE9BtN,EAAAA,EAAgBkO,mCAAmC,IAAKviM,EAAQioD,UAAW2jB,EAAe3jB,YAE1F,MAAQjnD,MAAOs8H,EAAS,0BAAE1tC,GAA8ByvC,EAAAA,EAAgBxC,mBAAmB0/D,EAAiBv9D,GAE7F,QAAfQ,EAAAlC,EAAUxqE,aAAK,IAAA0sE,GAAfA,EAAiB/+G,SAASxU,IAEtB,MAAMknD,GAA2ButI,EAAAA,EAAAA,IAA4Bz0L,EAAMg8C,EAAW2jB,EAAe3jB,WACxFkL,EASDlnD,EAAKknD,yBAA2BvR,EAAAA,EAAmBqB,uBAAuB,CACtEG,UAAWn3C,EAAK6kD,OAChB/R,SAAUoU,EACVhQ,aAXJzmC,EAAAA,EAAOs9B,aAAa,CAChB9wC,KAAM,CACFjI,eACG6/L,EAAAA,EAAAA,IAAmC70L,EAAMg8C,EAAW2jB,EAAe3jB,YAE1ExhD,MAAO,CAAEtF,MAAO,IAAII,MAAM,yCAQlC,IAGJ,MAAMswD,EAAazF,EAAAA,EAAcyG,kBAAkByqE,EAAUxqE,OAC7DmoI,EAAY,CAAE6M,YAAaC,EAAAA,EAAYvwD,MACvC,MAAMxrI,EAAMymF,EAAAA,EAAUwuC,UAAU,CAAEnuE,MAAOwqE,EAAUxqE,MAAQ88B,4BAA2B/9B,eAEtFopI,EAAY,CAAE6M,YAAaC,EAAAA,EAAYQ,oBAC9B,QAATjO,EAAAtuL,EAAI8mD,aAAK,IAAAwnI,GAATA,EAAW75K,SAASxU,IAAiB,IAADu8L,EAAAC,EAAArtE,EAAAl6D,EAAAC,EAAAC,EAAAC,EAChC,MACMhe,EAD+Bp3C,EAAKknD,yBACY3N,aAChDm1C,EAA6C,OAAzB/K,QAAyB,IAAzBA,OAAyB,EAAzBA,EAA4B3jF,EAAK6kD,QAE3D7kD,EAAKg1D,qBAAuBvY,EAAAA,EAAsB+N,aAC9C/N,EAAAA,EAAsBqO,wBAAwB6U,EAAe3jB,WAC7D2M,EAAAA,EAAqBgsI,kBAAkB30L,EAAM0uF,IAGjD05F,EAAAA,EAAgBqN,yBAAyB,CACrCjgI,OAAQx1D,EAAK6kD,OACb7kD,OACAg8C,YACA5E,mBACAZ,YAAax2C,EAAK9C,OAASu6D,EAAAA,GAASC,IAAMjhB,EAAAA,GAAoBG,MAAQH,EAAAA,GAAoBI,MAC1F6+I,0BAA0B,EAC1Bx+I,WACA/nC,cAGS,QAAbotL,EAAAv8L,EAAKq0D,gBAAQ,IAAAkoI,GAAbA,EAAe/nL,SAASsjD,IACpBA,EAAQ9C,qBAAuBrM,EAAAA,EAAqBoyI,qBAChDjjI,EACA93D,EACA0uF,GAEJ05F,EAAAA,EAAgBqN,yBAAyB,CACrCjgI,OAAQsC,EAAQhC,UAChB91D,KAAM83D,EACN9b,YACA5E,mBACAZ,YAAaC,EAAAA,GAAoBK,SACjC4iB,YAAa5B,EAAQ56D,KACrBw4L,0BAA0B,EAC1Bx+I,WACA/nC,cAEJ2oD,EAAQ0hD,iBAAmB8K,EAAAA,EAAe4L,kBAAkBp4D,EAAS93D,EAAKq0D,SAAU,IAE1E,QAAdmoI,EAAAx8L,EAAKs0D,iBAAS,IAAAkoI,GAAdA,EAAgBhoL,SAAS2jD,IACrBA,EAASnD,qBAAuBrM,EAAAA,EAAqBwyI,sBACjDhjI,EACAn4D,EACA0uF,GAEJ05F,EAAAA,EAAgBqN,yBAAyB,CACrCjgI,OAAQ2C,EAASpC,WACjB/1D,KAAMm4D,EACNnc,YACA5E,mBACAZ,YAAaC,EAAAA,GAAoBM,aACjC4iB,aAAcxB,EAASj7D,KACvBw4L,0BAA0B,EAC1Bx+I,WACA/nC,cAEJgpD,EAASqhD,iBAAmB8K,EAAAA,EAAe+L,mBAAmBl4D,EAAUn4D,EAAKs0D,UAAW,IAE5F,MAAMzF,EAA2B3D,EAAAA,EAAgB2D,yBAAyB,KAClD,QAAjBsgE,EAAAnvH,EAAKqoH,oBAAY,IAAA8G,OAAA,EAAjBA,EAAmBnzE,YAAa,GACnCh8C,EAAKknD,6BACgB,QAAlB+N,EAAAj1D,EAAK01D,qBAAa,IAAAT,OAAA,EAAlBA,EAAoBjZ,YAAa,OACZ,QAArBkZ,EAAAl1D,EAAK21D,wBAAgB,IAAAT,OAAA,EAArBA,EAAuBlZ,YAAa,OACX,QAAzBmZ,EAAAn1D,EAAK41D,4BAAoB,IAAAT,OAAA,EAAzBA,EAA2BnZ,YAAa,OAClB,QAAtBoZ,EAAAp1D,EAAK61D,yBAAiB,IAAAT,OAAA,EAAtBA,EAAwBpZ,YAAa,KAE5Ch8C,EAAKgvH,0BAA4BngE,EAAyBE,oBACpDF,OACAp0D,EACNuF,EAAKw5G,iBAAmB8K,EAAAA,EAAe4J,eAAeluH,EAAMD,EAAI8mD,MAAO,IAG3E,MAAMm/D,GAA2BsuE,EAAAA,EAAiBC,WAAW50H,EAAe3jB,WAC5Ej8C,EAAIk1H,eAAiB3Q,EAAAA,EAAeyJ,YAAYhuH,EAAI8mD,OAEpD,MAAMuY,EAAoB,CAAEO,iBAAgBC,eAAcC,eAAcmmD,0BAAyB58C,YAAa8yH,GAExGO,EAAwBf,EAA0B37L,EAAKq/D,GAC7DgpH,EAAAA,EAAgBkO,mCAAmC,IAAKviM,EAAQioD,UAAW4jB,EAAa5jB,UAAWwU,eAAgBisI,IAEnH,MAAMC,EDC4BC,EAAC9oI,EAA2BhB,KAClE,MAAM,aAAE+M,GAAiB/M,EACnB2oI,EAAqBE,EAA0B7nI,EAAUhB,GAE/D,OADkCpW,EAAAA,EAAsBqO,wBAAoC,OAAZ8U,QAAY,IAAZA,OAAY,EAAZA,EAAc5jB,YAC1Dw/I,CAAkB,ECLnBmB,CAA2B58L,EAAKq/D,GAG/D,OAFAgpH,EAAAA,EAAgBkO,mCAAmC,IAAKviM,EAAQioD,UAAW6jB,EAAa7jB,UAAWwU,eAAgBksI,IAE5G,CAAE7oI,SAAU9zD,KAAQq/D,EAAO,EAGV,ECxKzB,MAAMw9H,EAET,wBAAcC,GACV,OAAOllC,EAAAA,EAAWpyJ,IAAuC0nE,EAAAA,EAAQI,oBACrE,CAEA,iBAAcyvH,CAAWC,GACrB,OAAOplC,EAAAA,EAAWpyJ,IAAgC0nE,EAAAA,EAAQK,YAAYyvH,GAC1E,QCXG,MAAMC,GA2BZC,EA3BYD,EAAAA,EAEKE,YAAc7oM,UAGxB,GAF2B0T,aAAoBtN,IAAZgH,GAAqC,cAAZA,GAGxD,OAAOw7L,EAAKE,qBAGhB,IAEI,MAAO,CAAE17L,UAAS63D,mBADiCsjI,EAAWE,WAAWr7L,IACjCxE,KAC5C,CAAE,MAAO/H,GAEL,GADiBA,EACJ26C,WACT,OAAOotJ,EAAKE,qBAEhB,MAAMjoM,CACV,GAlBK8nM,EAqBKG,mBAAqB9oM,UAC/B,MACMoN,SAD+Bm7L,EAAWC,qBACT5/L,KAAK4C,GAE5C,MAAO,CAAE4B,UAAS63D,mBADiCsjI,EAAWE,WAAWr7L,IACjCxE,KAAM,iBCqBtD,MAAMmgM,EAAejpM,EAAAA,cAAuC,CACxDY,MAAO,CAAC,EACR+a,SAAUA,KAAA,CAAS,GACnBk/K,YAAaA,OACbnnL,OAAQA,OACR6nL,kBAAmBA,SAEVzpE,EAAkBA,IAAM9xH,EAAAA,WAAiBipM,GACzCC,EAAuBA,IAAMp3E,IAAkBlxH,MAC/C+9L,EAAeA,IAAM3+L,EAAAA,WAAiBipM,GAAcroM,MAAM83D,UAE1DywI,EAAgBrnM,IAAgD,IAA/C,SAAE8F,GAAuC9F,EACnE,MAAM8J,GAAMsiF,EAAAA,EAAAA,MACNlzE,GAAYC,EAAAA,EAAAA,KACZuB,GAAiBV,EAAAA,EAAAA,OACfxO,QAASorD,EAAWrxD,IAAKgrE,IAAexyE,EAAAA,EAAAA,KAC1Cs8C,GAAWkjI,EAAAA,EAAAA,MAEXga,GAAe1lL,EAAAA,EAAAA,GAAyB,CAAE+zL,YAAaC,EAAAA,EAAYyB,QACzEltL,EAAAA,EAAAA,IAAa,IAAOC,OAAOktL,WAAahQ,EAAa19K,WAErD,MAAMlF,EAAS+wL,EAAuB,CAAE3M,YAAaxB,EAAa3lL,UAClEumL,EAAAA,EAAAA,IAAyBruL,EAAIhL,MAAOy4L,EAAaz4L,OAEjD,MA4IM8S,EAAU9T,IACZ,IAAI,YAAE0pM,EAAW,UAAEzW,EAAS,kBAAEF,EAAiB,iBAAEC,EAAgB,YAAEr7E,EAAW,KAAEr/C,GAASt4D,EACrF8/D,EAA4B,IAAK9zD,EAAI+P,cAAek3K,GAIxD,GAHAv2K,EAAAA,EAAOC,IAAI,0BAA2B3c,GAGlC0pM,EAAa,CACb,MAAM5qI,EAAa26H,EAAa19K,WAChC,IAAI+jD,EAA4B9zD,EAAI+P,WACpC,MAAM4tL,EAAiB,IAAK7qI,KAAe4qI,GAEvC5pI,EAASivD,kBACT0qE,EAAa3lL,OAAOuzL,EAAyBvnI,EAAU6pI,EAAgBvuL,IAEvEq+K,EAAa3lL,OAAO61L,EAE5B,CAEA,GAAI1W,EAEA,GAAIF,GAAqBp7E,GAAeq7E,EAAkB,CACtD,MAAMl0H,EAAa26H,EAAa19K,YAC1B,WACF81C,EAAU,uBACV+3I,EACAtxI,KAAMuxI,GACNC,GAAyBhqI,EAAUhB,EAAYxG,GAEnDwH,EAD+B9rD,QAAQ2jG,GAAeq7E,GAAoB4W,GACtC59L,EAAIkjH,iBAAiBpvD,GAAYA,EACrE,MAAM,SAAEyxH,KAAawY,GAAqBtD,EAAyB3mI,EAAUhB,EAAY1jD,GACnF4uL,EAAe,IAAKlqI,KAAaiqI,EAAkBl4I,cACzD7lD,EAAI8H,OAAO,CACP+D,OAAQmyL,EACR1xI,KAAM,IAAKuxI,EAAsB5W,YAAWF,uBAE5CjzH,EAASivD,mBACT0qE,EAAa3lL,OAAOuzL,EAAyB2C,EAAclrI,EAAY1jD,GAE/E,MACIpP,EAAI8H,OAAO,CACP+D,OAAQo7K,EACR36H,KAAM,IAAKA,EAAM2xI,YAAa,uBAAwBhX,YAAWF,uBAKxEn2K,EAAeb,WAAWikK,UAAYroE,IAAeo7E,GACtDn2K,EAAe9I,OAAO,CAAEksK,SAAS,GACrC,EAWEkqB,EAAmBpqI,IAChBljD,EAAeb,WAAWikK,SAC3BpjK,EAAe9I,OAAO,CAAEksK,SAAS,IAGrClgH,EAAW9zD,EAAIkjH,iBAAiBpvD,GAChC,MAAMhB,EAAa26H,EAAa19K,YAC1B,SAAEw1K,KAAawY,GAAqBtD,EAAyB3mI,EAAUhB,EAAY1jD,GACzF,MAAO,IAAK0kD,KAAaiqI,EAAkBh7E,mBAAmB,EAAO,EASzE,OANA3uH,EAAAA,WAAgB,IAAM4L,EAAIojH,iBAAiB,CAAEK,MAAOy6E,KAAoB,CAACl+L,EAAKk+L,IAE9EC,GApNaziM,MACTg2C,EAAAA,EAAAA,KACIp9C,UAEI,IADcm5L,EAAa19K,WAChBwM,YAAa,CAAC,IAAD6hL,EACpB3Q,EAAa3lL,OAAO,CAAEg0L,YAAaC,EAAAA,EAAYlmC,QAASliK,SAAS,IACjE,MAAM,QAAE+N,EAAO,YAAE63D,SAAsB0jI,EAAcE,YAAYrwI,GACjE9mD,EAAAA,EAAkBq4L,cACdr8L,EAAAA,EAAoBC,aAAa,CAAEP,QAASA,EAAUjG,IAAKgrE,KAE/DlN,EAAYtd,UACP5oC,QAAQ2oC,GAAMA,EAAEoW,eAAiBtJ,EAAAA,GAAa6iB,iBAC9Cl3D,SAASunC,GAAOA,EAAE/D,cAAe,IACtC,IAAIgE,EAAYoqB,EAAAA,EAAmBC,uBAAuB/M,EAAYtd,UAAW7sC,GAKjF,GAJA6sC,EAAYoqB,EAAAA,EAAmBK,+BAA+BzqB,GAE9DrrC,EAAeZ,QAEG,QAAlBouL,EAAI7tJ,EAASv7C,aAAK,IAAAopM,GAAdA,EAAgBnpM,SAAU,CAC1Bw4L,EAAa3lL,OAAO,CAAEg0L,YAAaC,EAAAA,EAAYC,gBAE/C,MAAM,SACFloI,EAAQ,eACR8L,EAAc,aACdC,EAAY,aACZC,EAAY,wBACZmmD,EAAuB,YACvB58C,SACMx+D,EAAOgxL,kBAAkB,CAAE5mM,SAAUs7C,EAASv7C,MAAMC,SAAUgnD,cAExEwxI,EAAa3lL,OAAO,CAChBglD,UAAWprD,EACXo6L,iBAAaphM,EACb6+D,cACAtd,YACA2jB,iBACAC,eACAC,eACAuJ,cACA48C,0BACA1pG,aAAa,IAGjBvc,EAAI8H,OAAO,CAAE+D,OAAQioD,EAAUxH,KAAM,CAAEwgC,MAAO,2BAC9C9sF,EAAImjH,WA4CR,KAAO,CACH,MAAMvjD,EAAiByoH,EAAAA,EAAgBoN,gBAAgBx5I,EAAW6M,EAAAA,GAAa6iB,gBACzE9L,EAAewoH,EAAAA,EAAgBoN,gBAAgBx5I,EAAW6M,EAAAA,GAAa8iB,cACvE9L,EAAeuoH,EAAAA,EAAgBoN,gBAAgBx5I,EAAW6M,EAAAA,GAAa+iB,cAE7E4hH,EAAa3lL,OAAO,CAChBglD,UAAWprD,EACXo6L,iBAAaphM,EACb6+D,cACAtd,YACA2jB,iBACAC,eACAC,eACAmmD,yBAAyB,EACzBtyH,SAAS,EACT4oB,aAAa,GAErB,CACJ,IAEJ,CACIs1B,aAAeysJ,IAGX,GAFA7Q,EAAa3lL,OAAO,CAAEg0L,iBAAaphM,IACnCgW,EAAAA,EAAOvb,MAAM,uBAAwBmpM,GAChCA,EAAuBxuJ,WAMxB,OALAe,EAAAA,EAAMC,UAAU,CACZ5rC,MAAOK,EAAAA,GAAKC,IAAI,oBAChBopC,QAASrpC,EAAAA,GAAKC,IAAI,wBAClBisC,SAAU,MAEP16B,QAAQlgB,SAAQ,GAE3B,GAAKynM,EAAuBnpE,WAAY,CACpC,MAAMopE,EAAWD,EAWjB,OAVA5tL,EAAAA,EAAOs9B,aAAa,CAChB14C,QAASmxF,EAAAA,EAAUouC,uBACnB5mF,MAAOC,EAAAA,EAAa34C,MACpBkF,MAAO8jM,EAASppM,QAEpB07C,EAAAA,EAAMC,UAAU,CACZ5rC,MAAOK,EAAAA,GAAKC,IAAI,oBAChBopC,QAASrpC,EAAAA,GAAKC,IAAI,qBAClBisC,SAAU,MAEP16B,QAAQlgB,SAAQ,EAC3B,CACA,OAAOkgB,QAAQlgB,SAAQ,EAAM,GAGxC,IA4EL2nM,GAAsB1xI,EAAW2Z,EAAYgnH,EAAaz4L,MAAO8S,GACjE22L,GAAwBhR,EAAaz4L,MAAOy4L,EAAa3lL,SAGrDtU,EAAAA,EAAAA,KAAC6pM,EAAa5sL,SAAQ,CAClBhW,MAAO,CACHzF,MAAOy4L,EAAaz4L,MACpB+a,SAAU09K,EAAa19K,SACvBk/K,YAAaxB,EAAa3lL,OAC1BA,SACA6nL,kBAhCcA,KACtB,MAAM77H,EAA4B9zD,EAAI+P,WAChC+iD,EAAa26H,EAAa19K,WAChC09K,EAAa3lL,OAAOuzL,EAAyBvnI,EAAUhB,EAAY1jD,IAAY,KAC3EpP,EAAIkwG,SAAS,CAAErkG,OAAQ,CAAEk3G,mBAAmB,IAAS,GACvD,GA4BI/mH,SACDA,GACmB,EAI1BmiM,EAAYziM,IAAwB,IAADgjM,EAAAC,EAErC,MAAM3iL,EAAwE,QAAzD0iL,GAAGt1J,EAAAA,EAAAA,KAAap0C,GAAoBA,EAAMymB,wBAAe,IAAAijL,OAAA,EAAtDA,EAAwD1iL,gBAC1E4iL,EAAyB,QAAVD,GAAG1hM,EAAAA,EAAAA,aAAO,IAAA0hM,OAAA,EAAPA,EAASzhM,KAE3B2hM,GAAa7iL,GAAoBA,GAAmB4iL,EAQ1D,OAPAxqM,EAAAA,WAAgB,KACRyqM,GACAnjM,GACJ,GAED,CAACmjM,IAEGA,CAAS,EAGdL,GAAwBA,CAC1B1xI,EACA2Z,EACAzxE,EACA8S,KAEA1T,EAAAA,WAAgB,KACRqyE,GAAczxE,EAAMunB,cACpBzU,EAAO,CAAE41L,YAAa,CAAEj3H,cAAcna,KAAM,CAAEwgC,MAAO,6BAA8BrmB,gBACnFzgE,EAAAA,EAAkBq4L,cAAcr8L,EAAAA,EAAoBC,aAAa,CAAEP,QAASorD,KAChF,GAED,CAAC2Z,EAAYzxE,EAAMunB,aAAa,EAGjCkiL,GAA0BA,CAACzpM,EAA4Bi6L,KAAwD,IAADpc,EAChH,MAAMjiK,GAAiBV,EAAAA,EAAAA,MACvB9b,EAAAA,WAAgB,KAAO,IAADw+K,EACd59K,EAAMqqE,OAA6B,QAAxBuzG,EAAIhiK,EAAe5b,aAAK,IAAA49K,GAApBA,EAAsBoB,SACrCib,EAAY,CAAE5vH,WAAO3kE,GACzB,GAED,CAAC1F,EAAMqqE,MAA2B,QAAtBwzG,EAAEjiK,EAAe5b,aAAK,IAAA69K,OAAA,EAApBA,EAAsBmB,SAAS,EAG9C8pB,GAA2BA,CAAChqI,EAAoChB,EAAiCxG,KAAgB,IAADolB,EAAAwD,EAElH,IAAI0oH,GAAyB,EACzB/3I,EAAaiO,EAASjO,WAEZ,QAAd6rB,EAAA5d,EAAShN,aAAK,IAAA4qB,GAAdA,EAAgBj9D,SAASgiD,IAAU,IAADqoI,EAC9BroI,EAAKtP,0BAA2B0tI,EAAAA,EAAAA,IAC5Bp+H,EACA3D,EAAW7W,UACc,QADL6iJ,EACpBhsI,EAAW8M,sBAAc,IAAAk/H,OAAA,EAAzBA,EAA2B7iJ,UAC9B,IAGL,MAAM8iJ,EAAwC,QAAjB7pH,EAAGphB,EAAShN,aAAK,IAAAouB,OAAA,EAAdA,EAAgBjkB,MAAMwF,IAAU,IAADolB,EAAAmjH,EAC3D,MAAM3nJ,EAAgD,QAAhCwkC,EAAGplB,EAAKtP,gCAAwB,IAAA00B,OAAA,EAA7BA,EAA+BriC,aAClDqM,EAAgC,QAAtBm5I,EAAGlrI,EAASjO,kBAAU,IAAAm5I,OAAA,EAAnBA,EAAqBz8I,MAAMhtC,IAAC,IAAAmsD,EAAA,OAAc,QAAdA,EAAKnsD,EAAE0wC,eAAO,IAAAyb,OAAA,EAATA,EAAWzQ,MAAM0mB,GAAMA,IAAMlhB,EAAK3R,QAAO,IAC7F,OAAuB,OAAhBzN,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB9F,SAAmB,OAAVsU,QAAU,IAAVA,OAAU,EAAVA,EAAYE,YAAW,IAS7D,OAPIg5I,IACAl5I,EAAazF,EAAAA,EAAcyG,kBAAkBiN,EAAShN,OACtDwF,EAAO,IAAKA,EAAM2yI,cAAc,qBAAuBp5I,cACvD+3I,GAAyB,GAG7BltL,EAAAA,EAAOC,IAAI,mBAAoB,CAAEmjD,WAAU8pI,yBAAwB/3I,eAC5D,CAAEA,aAAY+3I,yBAAwBtxI,OAAM,iDC3WhD,IAAKyvI,EAAW,SAAXA,GAAW,OAAXA,EAAW,mBAAXA,EAAW,yBAAXA,EAAW,qCAAXA,EAAW,iBAAXA,EAAW,sCAAXA,CAAW,iHCyChB,MAAMrI,EAoGT,4CAAcC,CAAsCl9H,EAAgByoI,GA6BhE,OAAOA,CACX,CAEA,gCAAcrL,CAAyB39L,GAI6B,IAJ5B,iBACpCyxL,EAAgB,iBAChBtwI,EAAgB,UAChBjoC,GAC8BlZ,EAC9B,MAAMipM,EAAsD,CACxDvtI,iBAAiB,EACjBY,SAAS,EACT4sI,mCAA+B1kM,GAW7B5B,GARcmH,EAQM0nL,EAPfx8H,EAAAA,EAAgByG,gBAAgB,CACnC3V,UAAWh8C,EAAKg8C,UAChB5E,mBACAjoC,eAJYnP,MAgBpB,OAPIk/L,EAAqB3sI,UAAY15D,EAAO05D,UACxC2sI,EAAqB3sI,SAAU,GAE/B2sI,EAAqBvtI,kBAAoB94D,EAAO84D,kBAChDutI,EAAqBvtI,iBAAkB,GAGpCutI,CACX,EAeHE,EA/KY3L,EAAAA,EAGK4L,0BAA4B79L,IAKW,IALV,SACvCsxC,EAAQ,YACR0D,EAAW,YACXkjB,EAAW,aACXC,GACkCn4D,EAClC,MAAM89L,EAAwBA,IAAe9oJ,IAAgB1D,EAAS+H,aACtE,IAAI0kJ,GAA+B,EACnC,GAAIzsJ,EAASiI,4BAA6B,CACtC,MAAMgf,EAAgDjnB,EAASiI,4BAC3DvE,IAAgBC,EAAAA,GAAoBK,UAAY4iB,IAC5CA,IAAgBM,EAAAA,GAAYC,OAC5BslI,EAAsBD,KAA2BvlI,EAAgBG,cAEjER,IAAgBM,EAAAA,GAAYG,cAC5BolI,EAAsBD,KAA2BvlI,EAAgBK,sBAEjEV,IAAgBM,EAAAA,GAAYK,YAC5BklI,EAAsBD,KAA2BvlI,EAAgBO,qBAEjEZ,IAAgBM,EAAAA,GAAYO,aAC5BglI,EAAsBD,KAA2BvlI,EAAgBS,sBAEjEd,IAAgBM,EAAAA,GAAYS,UAC5B8kI,EAAsBD,KAA2BvlI,EAAgBW,uBAEjEhB,IAAgBM,EAAAA,GAAYW,YAC5B4kI,EAAsBD,KAA2BvlI,EAAgBa,oBAG7E,MAAO,GAAI9nB,EAASkI,iCAAkC,CAClD,MAAM6f,EAAwD/nB,EAASkI,iCACnExE,IAAgBC,EAAAA,GAAoBM,cAAgB4iB,IAChDA,IAAiBmB,EAAAA,EAAaC,gBAC9BwkI,EAAsBD,KAA2BzkI,EAAoBG,uBAErErB,IAAiBmB,EAAAA,EAAaG,iBAC9BskI,EAAsBD,KAA2BzkI,EAAoBK,wBAErEvB,IAAiBmB,EAAAA,EAAaK,WAC9BokI,EAAsBD,KAA2BzkI,EAAoBO,iBAErEzB,IAAiBmB,EAAAA,EAAaO,mBAC9BkkI,EAAsBD,KAA2BzkI,EAAoBS,0BAErE3B,IAAiBmB,EAAAA,EAAaS,OAC9BgkI,EAAsBD,KAA2BzkI,EAAoBW,aAErE7B,IAAiBmB,EAAAA,EAAaW,YAC9B8jI,EAAsBD,KAA2BzkI,EAAoBa,kBAErE/B,IAAiBmB,EAAAA,EAAaL,UAC9B8kI,EAAsBD,KAA2BzkI,EAAoBc,gBAErEhC,IAAiBmB,EAAAA,EAAac,SAC9B2jI,EAAsBD,KAA2BzkI,EAAoBgB,eAErElC,IAAiBmB,EAAAA,EAAagB,UAC9ByjI,EAAsBD,KAA2BzkI,EAAoBkB,gBAErEpC,IAAiBmB,EAAAA,EAAakB,eAC9BujI,EAAsBD,KAA2BzkI,EAAoBoB,sBAErEtC,IAAiBmB,EAAAA,EAAaoB,aAC9BqjI,EAAsBD,KAA2BzkI,EAAoBsB,oBAErExC,IAAiBmB,EAAAA,EAAab,OAC9BslI,EAAsBD,KAA2BzkI,EAAoBuB,aAErEzC,IAAiBmB,EAAAA,EAAag7C,SAC9BypF,EAAsBD,KAA2BzkI,EAAoBwB,eAErE1C,IAAiBmB,EAAAA,EAAag9C,aAC9BynF,EAAsBD,KAA2BzkI,EAAoByB,oBAGjF,MACIijI,EAAsBD,IAE1B,OAAOC,CAAmB,EAlFrB9L,EAqFKmC,mBAAqB1mL,IAMmB,IANlB,KAChCsnF,EAAI,UACJx6C,EAAS,YACTxF,EAAW,YACXkjB,EAAW,aACXC,GACuBzqD,EAMvB,MAAO,CAAEsnF,OAAMx6C,UAL+BtO,EAAAA,EAAYC,MACtDqO,EAAU5oC,QAAQ0/B,GACdssJ,EAAKC,0BAA0B,CAAEvsJ,WAAU0D,cAAakjB,cAAaC,oBAGjC,EAjGvC85H,EAmKKK,iBAAmBt6H,IAA6E,IAA5E,iBAAEkuH,EAAgB,UAAE1rI,EAAS,cAAE6U,GAAuC2I,EAChG46H,EAAmBp4I,EACvBA,EAAUxnC,SAASunC,GAAOA,EAAE8U,eAAgB,IACxCA,IACAA,EAAcA,eAAgB,EAC9BujI,EAAmBlpI,EAAAA,EAAgBE,gBAAgBpP,EAAW6U,IAElE62H,EAAiBn4D,aAAc,EAC/Bm4D,EAAiBn1H,SAAU,EAC3Bm1H,EAAiB/1H,iBAAkB,EACnC+1H,EAAiB1rI,UAAYo4I,CAAgB,mICjN9C,MAAMzrI,GAmHZ62I,EAnHY72I,EAAAA,EACKgsI,kBAAoB,SAC9B30L,EACA0uF,GAEmB,IAAD+wG,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IADlBC,EAA4BhsL,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhC,MAAMisL,EAA0B7yJ,EAAAA,EAAYC,MAAM2yJ,GAiDlD,OA/CAC,EAAwBC,gBAAkBxgM,EAAK9C,KAC/CqjM,EAAwBE,oBAAoBzgM,EAAKqgE,gBAAyC,IAAxBrgE,EAAKqgE,eACvEkgI,EAAwBG,6CAA+C1gM,EAAK84H,wCAExE94H,EAAK9C,OAASu6D,EAAAA,GAASC,MACvB6oI,EAAwBI,mBAAqB3gM,EAAKsoH,aAClDi4E,EAAwB3uE,UAAY5xH,EAAK2/E,SACzC4gH,EAAwB1uE,WAAap1E,EAAAA,EAAsB2L,2BAA2BpoD,EAAKm3D,WAC3FopI,EAAwBK,2BAA6B5gM,EAAKg3D,qBAC1DupI,EAAwBvuE,yBAA2BhyH,EAAKk3D,sBACxDqpI,EAAwBjuI,mBAAqBo8B,EAC7C6xG,EAAwB7nE,YAAc14H,EAAK04H,YAC3C6nE,EAAwBM,aAAe7gM,EAAKi7G,aAExCj7G,EAAKq3D,cAAgBwoB,EAAAA,EAAQG,GAC7BugH,EAAwBzuE,kBAAoBxsH,EAAAA,GAAKC,IAAI,qDAC9CvF,EAAKq3D,cAAgBwoB,EAAAA,EAAQC,MACpCygH,EAAwBzuE,kBAAoB9xH,EAAK2nE,kBAGrD3nE,EAAK9C,OAASu6D,EAAAA,GAASG,OACvB2oI,EAAwBO,UAAY9gM,EAAK2/E,SACzC4gH,EAAwBQ,WAAatkJ,EAAAA,EAAsB2L,2BAA2BpoD,EAAKm3D,WAC3FopI,EAAwBS,UAAYhhM,EAAKq+D,SACzCkiI,EAAwBU,2BAA6BjhM,EAAKg3D,qBAC1DupI,EAAwBW,yBAA2BlhM,EAAKk3D,sBACxDqpI,EAAwBY,YAAcnhM,EAAK04H,YAC3C6nE,EAAwBa,aAAephM,EAAKi7G,cAGhDslF,EAAwBhpI,eAAiB,CAErC8pI,KAAyB,QAArB5B,EAAEz/L,EAAKu3D,sBAAc,IAAAkoI,OAAA,EAAnBA,EAAqBl9H,KAC3B++H,gBAAoC,QAArB5B,EAAE1/L,EAAKu3D,sBAAc,IAAAmoI,OAAA,EAAnBA,EAAqBj9H,eACtC8+H,iBAAqC,QAArB5B,EAAE3/L,EAAKu3D,sBAAc,IAAAooI,OAAA,EAAnBA,EAAqBh9H,gBACvC6+H,OAA2B,QAArB5B,EAAE5/L,EAAKu3D,sBAAc,IAAAqoI,OAAA,EAAnBA,EAAqB/8H,OAC7B4+H,UAA8B,QAArB5B,EAAE7/L,EAAKu3D,sBAAc,IAAAsoI,OAAA,EAAnBA,EAAqB78H,UAChC0+H,OAA2B,QAArB5B,EAAE9/L,EAAKu3D,sBAAc,IAAAuoI,OAAA,EAAnBA,EAAqBlkI,OAC7B+lI,QAA4B,QAArB5B,EAAE//L,EAAKu3D,sBAAc,IAAAwoI,OAAA,EAAnBA,EAAqB78H,QAC9B0+H,KAAyB,QAArB5B,EAAEhgM,EAAKu3D,sBAAc,IAAAyoI,OAAA,EAAnBA,EAAqB58H,KAE3By+H,UAA8B,QAArB5B,EAAEjgM,EAAKu3D,sBAAc,IAAA0oI,OAAA,EAAnBA,EAAqBn8H,SAChCg+H,eAAmC,QAArB5B,EAAElgM,EAAKu3D,sBAAc,IAAA2oI,OAAA,EAAnBA,EAAqBl8H,aACrC+9H,mBAAuC,QAArB5B,EAAEngM,EAAKu3D,sBAAc,IAAA4oI,OAAA,EAAnBA,EAAqBj8H,kBACzC89H,YAAgC,QAArB5B,EAAEpgM,EAAKu3D,sBAAc,IAAA6oI,OAAA,EAAnBA,EAAqBh8H,WAClC69H,QAA4B,QAArB5B,EAAErgM,EAAKu3D,sBAAc,IAAA8oI,OAAA,EAAnBA,EAAqB/7H,SAE3Bi8H,CACX,EAxDS53I,EA0DKoyI,qBAAuB,CACjCjjI,EACAtB,EACAk4B,KACmB,IAADwzG,EAClB,MAAM3B,EAA2C,CAAC,EAClDA,EAAwBjuI,mBAAqBo8B,EAC7C6xG,EAAwB4B,qBAAuBp6L,QAAwC,QAAjCm6L,EAACpqI,EAAQkhE,gCAAwB,IAAAkpE,OAAA,EAAhCA,EAAkCp1L,QACzFyzL,EAAwB6B,uBAAyB98L,EAAAA,GAAKC,IAAI,qBAADlE,OAAsBy2D,EAAQ56D,OACvFqjM,EAAwB8B,6BAA+BvqI,EAAQxa,KAC/D,MAAMglJ,EAAc9C,EAAK52I,mBAAmB4N,EAAM3N,EAAAA,GAAaC,eAC/D,OAAOrM,EAAAA,EAAsB+N,aAAa83I,EAAa/B,EAAwB,EArE1E53I,EAwEKwyI,sBAAwB,CAClChjI,EACA3B,EACAk4B,KACmB,IAAD6zG,EAAAC,EAClB,MAAMjC,EAA2C,CAAC,EAClDA,EAAwBkC,4BAA8Bn9L,EAAAA,GAAKC,IAAI,yBAADlE,OACjC82D,EAASj7D,OAEtCqjM,EAAwBjuI,mBAAqBo8B,EAC7C6xG,EAAwBmC,2BAAiD,QAAvBH,EAAGpqI,EAASynB,mBAAW,IAAA2iH,EAAAA,EAAI9lJ,EAAAA,EAAsBuM,QACnGu3I,EAAwBoC,2BAAiD,QAAvBH,EAAGrqI,EAAS4nB,mBAAW,IAAAyiH,EAAAA,EAAI/lJ,EAAAA,EAAsBuM,QACnG,MAAMs5I,EAAc9C,EAAK52I,mBAAmB4N,EAAM3N,EAAAA,GAAaC,eAC/D,OAAOrM,EAAAA,EAAsB+N,aAAa83I,EAAa/B,EAAwB,EArF1E53I,EAwFKC,mBAAqB,CAAC5oD,EAAgBw2F,KACN,IAADpxB,EAAA4vH,EAAA5/H,EAME6/H,EAAAC,EAAA//H,EAMJggI,EAAAC,EAAAlgI,EAMHmgI,EAAAC,EAAArgI,EAlBpC,OAAIuhC,IAAS3tC,EAAAA,GAAaC,eAEqD,QAAvEsc,EAAAla,EAAAA,EAAgBI,qBAA2C,QAAvB8J,EAACp1D,EAAK61D,yBAAiB,IAAAT,OAAA,EAAtBA,EAAwBpZ,kBAAU,IAAAopB,GAAmB,QAAnB4vH,EAAvE5vH,EAAyE3Z,yBAAiB,IAAAupI,OAAnB,EAAvEA,EAA4F7kJ,UAC5FqvJ,EAAK52I,mBAAmB5oD,EAAM6oD,EAAAA,GAAag/H,iBAG/CrxF,IAAS3tC,EAAAA,GAAag/H,iBAEwD,QAA1EoN,EAAA/pI,EAAAA,EAAgBI,qBAA8C,QAA1B6J,EAACn1D,EAAK41D,4BAAoB,IAAAT,OAAA,EAAzBA,EAA2BnZ,kBAAU,IAAAi5I,GAAmB,QAAnBC,EAA1ED,EAA4ExpI,yBAAiB,IAAAypI,OAAnB,EAA1EA,EACM/kJ,UAAWqvJ,EAAK52I,mBAAmB5oD,EAAM6oD,EAAAA,GAAa++H,aAGhEpxF,IAAS3tC,EAAAA,GAAa++H,aAEoD,QAAtEuN,EAAAjqI,EAAAA,EAAgBI,qBAA0C,QAAtB4J,EAACl1D,EAAK21D,wBAAgB,IAAAT,OAAA,EAArBA,EAAuBlZ,kBAAU,IAAAm5I,GAAmB,QAAnBC,EAAtED,EAAwE1pI,yBAAiB,IAAA2pI,OAAnB,EAAtEA,EAA2FjlJ,UAC3FqvJ,EAAK52I,mBAAmB5oD,EAAM6oD,EAAAA,GAAauJ,UAG/CokC,IAAS3tC,EAAAA,GAAauJ,UAEiD,QAAnEijI,EAAAnqI,EAAAA,EAAgBI,qBAAuC,QAAnB2J,EAACj1D,EAAK01D,qBAAa,IAAAT,OAAA,EAAlBA,EAAoBjZ,kBAAU,IAAAq5I,GAAmB,QAAnBC,EAAnED,EAAqE5pI,yBAAiB,IAAA6pI,OAAnB,EAAnEA,EAAwFnlJ,UACxFqvJ,EAAK52I,mBAAmB5oD,EAAM6oD,EAAAA,GAAauuI,OAG5Cp3L,EAAKg1D,sBAAwB,CAAC,CAAC,oHCvHvC,IAAK2kD,EAAO,SAAPA,GAAO,OAAPA,EAAO,YAAPA,EAAO,YAAPA,EAAO,cAAPA,CAAO,MAOZ,MAAMipF,EAAW3sM,IAAqC,IAApC,KAAEiH,EAAI,MAAEvJ,GAAsBsC,EACnD,MAAM4sM,EAAYC,EAAY5lM,GAC9B,OACIsC,EAAAA,EAAAA,MAAC+K,EAAS,CAAC5W,MAAO,IAAKkvM,KAAclvM,GAAQoI,SAAA,CACxCmB,IAASy8G,EAAQrkH,QAAS/B,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOs6G,UAAS,CAACjpH,MAAO,CAAEyN,YAAa,MACnE7N,EAAAA,EAAAA,KAAC05K,EAAI,CAAAlxK,SAAEuJ,EAAAA,GAAKC,IAAI,WAADlE,OAAYnE,QACnB,EAId4lM,EAAe5lM,IACjB,MAAMvJ,EAAuB,CAAC,EAC9B,OAAQuJ,GACJ,KAAKy8G,EAAQC,KACTjmH,EAAMgL,MAAQ,UACdhL,EAAMC,WAAa,UACnB,MACJ,KAAK+lH,EAAQgD,KACThpH,EAAMgL,MAAQ,QACdhL,EAAMC,WAAa,UACnB,MACJ,KAAK+lH,EAAQrkH,MACT3B,EAAMgL,MAAQ,UACdhL,EAAMC,WAAa,YAG3B,OAAOD,CAAK,EAGV4W,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BiD,OAAQ,GACRwK,SAAU,GACVjN,WAAY,IACZH,SAAU,EACVyN,WAAY,OACZyuG,cAAe,YACf99G,QAAS,OACT4E,WAAY,SACZ2J,eAAgB,WAGd8/J,GAAO9sK,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CACxBiE,WAAY,0HChCZ2+L,EAA6B5uM,EAAAA,YAAiB,SAAuB8C,EAAOuE,GAC9E,IAAIwnM,EAAwB/rM,EAAMgsM,eAC9BA,OAA2C,IAA1BD,GAA2CA,EAC5DzlM,EAAUtG,EAAMsG,QAChBC,EAAYvG,EAAMuG,UAClBO,GAAQC,EAAAA,EAAAA,GAAyB/G,EAAO,CAAC,iBAAkB,UAAW,cAE1E,OAAoB9C,EAAAA,cAAoB,OAAOmF,EAAAA,EAAAA,GAAS,CACtDkE,WAAWW,EAAAA,EAAAA,SAAKZ,EAAQa,KAAMZ,GAAYylM,GAAkB1lM,EAAQsqI,SACpErsI,IAAKA,GACJuC,GACL,IA4BA,SAAeU,EAAAA,EAAAA,GAxDK,CAElBL,KAAM,CACJQ,QAAS,OACT4E,WAAY,SACZ/C,QAAS,EACT0M,eAAgB,WAChBU,KAAM,YAIRg6H,QAAS,CACP,yBAA0B,CACxB1mI,WAAY,KA2CgB,CAChC3L,KAAM,oBADR,CAEGutM,gHC5CH,MAAMG,EAAoBjtM,IAK0B,IALzB,MACvBgP,EAAK,SACLnH,EAAQ,WACRqlM,EAAU,cACVC,GAC0CntM,EAC1C,OACIuJ,EAAAA,EAAAA,MAAC+oF,EAAAA,EAAM,CACHhrF,QAAS,CACLa,KAAMu0G,IAAW,CACb,8CAA8C,EAC9CywF,kBAEJj8L,MAAO,iDAEXvC,QAASu+L,EAAWpnM,SAAA,EACpBxI,EAAAA,EAAAA,KAAA,OAAKiK,UAAU,6CAA4CzB,SACtD+B,GAAWvK,EAAAA,EAAAA,KAAC+O,EAAAA,EAAO+gM,iBAAgB,KAAM9vM,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOghM,gBAAe,OAErE/vM,EAAAA,EAAAA,KAAA,OAAKiK,UAAU,8CAA6CzB,SAAEkJ,MACzD,EAEf,IAWGs+L,EAAqB,SAArBA,GAAqB,OAArBA,EAAAA,EAAqB,mBAArBA,EAAAA,EAAqB,mBAArBA,CAAqB,EAArBA,GAAqB,IAKnB,MAAMC,EAA8BhiM,IAMF,IANG,QACxC2E,EAAO,eACP6iJ,EAAc,mBACdipC,EAAkB,2BAClBwR,EAA0B,uBAC1BC,GAC+BliM,EAC/B,MAAMmjL,GAAkB53G,EAAAA,EAAAA,MAEjBr3B,EAAQ80C,GAAar2F,EAAAA,cAAkDsG,IACvEkpM,EAAWC,GAAgBzvM,EAAAA,SAAuB,KAElD+Y,EAAQ22L,GAAe1vM,EAAAA,WACxBg+L,EAAajlL,GAAoB22L,EAAY32L,GAgB7C06F,EAAYv6C,IACb,OAADA,QAAC,IAADA,GAAAA,EAAGw6C,iBARCnyD,IAAW6tJ,EAAsBO,OACjCL,EAA2BtR,GACpBz8I,IAAW6tJ,EAAsBQ,QAAUJ,GAClDD,EAAuBC,EAAWxR,EAMpB,EAStB,OACI5+L,EAAAA,EAAAA,KAAC20G,EAAAA,EAAU,CACP/hG,QARc8/K,KACb/4K,GACD/G,GACJ,EAMIlB,MAAO0/K,EAAKrX,cAAc,CAAEztK,GAAI,gBAChCmpJ,eAAgBA,EAAejtJ,UAC/ByD,EAAAA,EAAAA,MAAA,QAAMhC,UAAU,sCAAsCoqG,SAAUA,EAAS7rG,SAAA,EACrExI,EAAAA,EAAAA,KAAA,OAAKiK,UAAU,sCAAqCzB,UAChDxI,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAG,2CAEzBL,EAAAA,EAAAA,MAAA,OAAKhC,UAAU,gDAA+CzB,SAAA,EAC1DxI,EAAAA,EAAAA,KAAC2vM,EAAiB,CACdj+L,OACI1R,EAAAA,EAAAA,KAAA,OAAKiK,UAAU,yCAAwCzB,UACnDxI,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CACbC,GAAG,0CACH+L,OAAQ,CACJpW,MACIjC,EAAAA,EAAAA,KAAA,QAAMiK,UAAU,wCAAuCzB,SAClDk2L,SAOzBn0L,SAAU43C,IAAW6tJ,EAAsBO,OAC3CX,WAAYA,IAAM34G,EAAU+4G,EAAsBO,WAEtDvwM,EAAAA,EAAAA,KAAC2vM,EAAiB,CACdj+L,OAAO1R,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAG,2CAC5B/B,SAAU43C,IAAW6tJ,EAAsBQ,OAC3CZ,WAAYA,IAAM34G,EAAU+4G,EAAsBQ,QAClDX,eAAa,OAGpB1tJ,IAAW6tJ,EAAsBQ,SAC9BxwM,EAAAA,EAAAA,KAACiZ,EAAmB,CAAAzQ,UAChBxI,EAAAA,EAAAA,KAACo5K,EAAAA,GAAe,CACZ7nK,OAAQ,CAAEkE,MAAOg+E,GACjB6C,YAAa86F,EAAKrX,cAAc,CAAEztK,GAAI,2CACtCrF,MAAOmpM,EACPv9G,SAAUw9G,EACVh7F,WAAS,OAIrBr1G,EAAAA,EAAAA,KAACwvM,EAAa,CAACxlM,QAAS,CAAEa,KAAM,6CAA8CrC,UAC1ExI,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTlI,QAASyI,EAAAA,EAAcS,KACvBxC,OAAO1R,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAG,oBAC5B+E,QAASgjG,EACTrqG,QAAS,CAAEa,KAAM,mCACjBmG,WA3EXmxC,IAAW6tJ,EAAsBQ,QAAUh8L,QAAQ47L,IAAejuJ,IAAW6tJ,EAAsBO,SA2EtD52L,EAClChG,OAAQgG,UAIX,EAIf85E,EAAuB,CACzBkB,aAAc,EACd9kF,OAAQ,GACR3C,QAAS,EACToD,YAAa,GACbC,aAAc,GACd1D,WAAY,SACZO,WAAY,IACZH,SAAU,IAGRgM,GAAsBrM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACtCiN,UAAW,GACX,4BAA6B,CAAEvJ,YAAa,MC1JnCmgM,EAAsB/tM,IAAkF,IAAjF,KAAEoP,EAAI,eAAE4+L,EAAc,QAAE99L,EAAO,eAAE6iJ,GAA0C/yJ,EAC3G,MAAM0uL,GAAkB53G,EAAAA,EAAAA,MAEjB42H,EAAWC,GAAgBzvM,EAAAA,SAAe,KAE1C+Y,EAAQ22L,GAAe1vM,EAAAA,WACxBg+L,EAAajlL,GAAoB22L,EAAY32L,GAE7C06F,EAAYv6C,IACb,OAADA,QAAC,IAADA,GAAAA,EAAGw6C,iBACC87F,GACAM,EAAeN,EAAWxR,EAC9B,EASJ,OACI5+L,EAAAA,EAAAA,KAAC20G,EAAAA,EAAU,CACP/hG,QAAS6iJ,OAAiBvuJ,EARZwrL,KACb/4K,GACD/G,GACJ,EAMIlB,MAAO0/K,EAAKrX,cAAc,CAAEztK,GAAI,gBAAiB9D,UACjDyD,EAAAA,EAAAA,MAAA,QAAMhC,UAAU,8BAA8BoqG,SAAUA,EAAS7rG,SAAA,EAC7DxI,EAAAA,EAAAA,KAACo5K,EAAAA,GAAe,CACZ7nK,OAAQ,CAAEkE,MAAOg+E,EAAO7/E,MAAO+/F,GAC/B//F,OAAO5T,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAG,mCAC5BgqF,YAAa86F,EAAKrX,cAAc,CAAEztK,GAAI,yCACtCrF,MAAOmpM,EACPv9G,SAAUw9G,EACVh7F,WAAS,KAEbr1G,EAAAA,EAAAA,KAACwvM,EAAa,CAACxlM,QAAS,CAAEa,KAAM,qCAAsCrC,UAClExI,EAAAA,EAAAA,KAACkT,EAAAA,EAAY,CACTlI,QAASyI,EAAAA,EAAcS,KACvBxC,OAAO1R,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAG,oBAC5B+E,QAASgjG,EACTrqG,QAAS,CAAEa,KAAM,2BACjBmG,UAAWo/L,GAAaz2L,EACxBhG,OAAQgG,UAIX,EAIf85E,EAAuB,CACzBkB,aAAc,EACd9kF,OAAQ,GACR3C,QAAS,EACToD,YAAa,GACbC,aAAc,GACdL,OAAQ,oBACR7P,WAAY,OACZwM,WAAY,SACZO,WAAY,IACZH,SAAU,IAER0mG,EAAuB,CACzB9mG,WAAY,SACZO,WAAY,IACZH,SAAU,4LC7DP,MAAM0jM,EAAmBjuM,IAOF,IAPG,KAC7BoP,EAAI,MACJJ,EAAK,SACLO,EAAQ,YACR2+L,EAAW,QACXh+L,EAAO,cACP0rL,GACoB57L,GCZqB,WAA0D,IAAzD,YAAEkuM,GAA4C7vL,UAAAxH,OAAA,QAAArS,IAAA6Z,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC5F,MAAM8vL,EAAgB/vM,UAMlB,GALAoc,EAAAA,EAAOC,IAAI,iCAAkC,CACzCrb,UACAgvM,kBAAmB90H,EAAAA,EAAmBK,+BAA+Bv6E,EAAQ6H,QAG7EqyE,EAAAA,EAAmBK,+BAA+Bv6E,EAAQ6H,MAAO,CAAC,IAADonM,EAAAC,EAAAC,EAAAC,EACjE92C,EAAAA,EAAImB,4BAEEv6J,EAAAA,EAAYooK,sBAAsB,CACpCphJ,aAAclmB,EAAQqvM,OAAOz0H,MAC7B1zD,cAAe,GACfjB,WAAYW,EAAAA,EAAUC,WAG1B,MAAMyoL,EAAa,CACfznM,KAAMC,EAAAA,EAAYyR,SAClBq5C,oBAAqB,CACjBpoD,GAAkB,QAAhBykM,EAAEjvM,EAAQqvM,cAAM,IAAAJ,OAAA,EAAdA,EAAgBzkM,GACpBiP,WAA0B,QAAhBy1L,EAAElvM,EAAQqvM,cAAM,IAAAH,OAAA,EAAdA,EAAgBz1L,WAC5BE,UAAyB,QAAhBw1L,EAAEnvM,EAAQqvM,cAAM,IAAAF,OAAA,EAAdA,EAAgBx1L,UAC3Bi/K,MAAqB,QAAhBwW,EAAEpvM,EAAQqvM,cAAM,IAAAD,OAAA,EAAdA,EAAgBxW,cAIzBxyK,EAAAA,EAAU0iJ,UAAUwmC,GAE1Bl0L,EAAAA,EAAOs9B,aAAa,CAChBC,MAAOC,EAAAA,EAAaC,YACpB74C,QAAS,6CACT4H,KAAM0nM,IAEC,OAAXR,QAAW,IAAXA,GAAAA,GACJ,MAAW50H,EAAAA,EAAmBW,wBAAwB76E,EAAQ6H,OAC1DywJ,EAAAA,EAAIoB,sBACR,EAGE61C,EAAmBzwM,EAAAA,aACpB04F,IACG,MACM75C,GADiC,CAAC,wBAAyB,iCACvBxL,SAAc,OAALqlD,QAAK,IAALA,OAAK,EAALA,EAAO5vF,KAAKsX,QAE/D,GAAIs4E,EAAMh4C,SAAWzN,EAAAA,EAAU0F,UAAW,CACtC,MAAMwkJ,EAAiCzkG,EAAM5vF,KAC7C+1C,GAAWviC,EAAAA,EAAOC,IAAI,oCAAsCm8E,EAAMh4C,OAAQg4C,EAAM5vF,MAChFmnM,EAAc9S,EAClB,IAEJ,CAAC8S,IAGLjwM,EAAAA,WAAgB,KACZsc,EAAAA,EAAOs9B,aAAa,CAChBC,MAAOC,EAAAA,EAAaC,YACpB74C,QAAS,mDAEbib,OAAOg9E,iBAAiB,UAAWs3G,GAC5B,IAAMt0L,OAAOi9E,oBAAoB,UAAWq3G,KACpD,GACP,CDhDIC,CAA8B,CAAEV,gBAEhC,MAAMW,EAAeC,IAErB,OACIxxM,EAAAA,EAAAA,KAACyxF,EAAAA,GAAM,CACHnlF,GAAG,cACHwF,KAAMA,EACNc,QAAS0rL,OAAgBp3L,EAAY0L,EACrC5I,QAAS,CAAEynM,MAAOF,EAAaE,OAAQjpM,UACvCyD,EAAAA,EAAAA,MAAC+K,EAAS,CAAAxO,SAAA,EACJ81L,IACEt+L,EAAAA,EAAAA,KAAC4xF,EAAW,CAACvgF,QAASuB,EAAQpK,UAC1BxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAOipF,UAAS,MAGxBtmF,GAASO,IACNhG,EAAAA,EAAAA,MAACgL,EAAM,CAAAzO,SAAA,EACHxI,EAAAA,EAAAA,KAAC+O,EAAAA,EAAO2iM,WAAU,KAClBzlM,EAAAA,EAAAA,MAAC0lM,EAAc,CAAAnpM,SAAA,EACXxI,EAAAA,EAAAA,KAACkZ,EAAK,CAAA1Q,SAAEkJ,KACR1R,EAAAA,EAAAA,KAACi2J,EAAQ,CAAAztJ,SAAEyJ,WAIvBjS,EAAAA,EAAAA,KAAC4xM,EAAM,CAACtlM,GAAG,cAAc64E,IAAKtxC,EAAAA,EAAU2F,sBAEvC,EAIXxiC,GAAYpK,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CAC5BS,MAAO,OACP2M,SAAU,WACVnK,OAAQ,OACRxP,WAAY,uBAEVuxF,GAAchlF,EAAAA,EAAAA,GAAOgE,EAAAA,EAAPhE,CAAmB,CACnCoN,SAAU,WACV3M,MAAO,GACPwC,OAAQ,GACRqK,MAAO,GACPC,IAAK,GACL,CAAC,sBAADrM,OAAuBC,EAAAA,GAAamoJ,UAAS,QAAQ,CACjDl8I,SAAU,WACVE,MAAO,EACPC,IAAK,EACL8oE,OAAQ,EACR,aAAc,cAGhBhsE,GAASrK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CACzBvM,WAAY,qBACZiyF,UAAW,SACXjnF,QAAS,OACT4E,WAAY,SACZ4J,UAAW,GACXxM,MAAO,OACPiD,YAAa,QACbC,aAAc,MAEd,CAAC,sBAADzC,OAAuBC,EAAAA,GAAamoJ,UAAS,QAAQ,CACjDl8I,SAAU,WACVG,IAAK,GACLM,cAAe,SACfnN,UAAW,YAGbqkM,GAAiB/kM,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CACjCxB,MAAO,UACPwC,WAAY,GACZ,CAAC,sBAADE,OAAuBC,EAAAA,GAAamoJ,UAAS,QAAQ,CAAEr8I,UAAW,GAAIjM,WAAY,KAEhFsL,GAAQtM,EAAAA,EAAAA,GAAOkN,EAAAA,GAAPlN,CAAsB,CAChCK,SAAU,GACVyN,WAAY,KACZ,CAAC,sBAAD5M,OAAuBC,EAAAA,GAAamoJ,UAAS,QAAQ,CAAEx7I,WAAY,OAEjEu7I,GAAWrpJ,EAAAA,EAAAA,GAAO,OAAPA,CAAe,CAC5BK,SAAU,GACV4M,UAAW,EACXa,WAAY,KACZ,CAAC,sBAAD5M,OAAuBC,EAAAA,GAAamoJ,UAAS,QAAQ,CAAEx7I,WAAY,KAAMzN,SAAU,MAEjF2kM,GAAShlM,EAAAA,EAAAA,GAAO,SAAPA,CAAiB,CAC5BiD,OAAQ,IACRK,OAAQ,EACR,CAAC,sBAADpC,OAAuBC,EAAAA,GAAamoJ,UAAS,QAAQ,CAAEr8I,UAAW,MAGhE23L,GAAmB9uF,EAAAA,EAAAA,GAAW,CAChC+uF,MAAO,CACH,YAAa,QACb,CAAC,sBAAD3jM,OAAuBC,EAAAA,GAAamoJ,UAAS,QAAQ,CACjDrmJ,OAAQ,OACR,YAAa,OACb,aAAc,mDEhHnB,IAkFHgiM,GAA0C,KAE9C,MAAMC,GAAsB12J,IAA2B,IAAD22J,EACnC,QAAfA,EAAAF,UAAe,IAAAE,GAAfA,EAAiBC,WAAW52J,EAAQ,EAGlC1lC,GAAeu8L,IACO,OAApBJ,KACAA,GAAgBK,gBACN,OAAVD,QAAU,IAAVA,GAAAA,IACJ,EAEG,MAAM77L,IAAAA,GAGK+7L,mBAAsBC,IAC5BP,IACAA,GAAgBK,gBAEpBL,GAAkBO,CAAS,EAPtBh8L,GAcK0oL,wBAA0Bp8L,IAA0E,IAAzE,eAAE+yJ,EAAc,WAAEl/I,EAAU,SAAEk7K,GAA+B/uL,EAClGovM,IACI9xM,EAAAA,EAAAA,KAACywM,EAAmB,CAChB3+L,MAAM,EACN4+L,eAAgBA,CAACrT,EAAqBuB,KAClCroL,EAAW,CAAE8mL,cAAauB,YAAWlpL,gBAAc,EAEvD9C,QAASA,IAAM8C,GAAY+7K,GAC3Bh8B,eAAgBA,IAEvB,EAxBIr/I,GA2BKqoL,gCAAkCxwL,IAMN,IANO,mBAC7CywL,EAAkB,qBAClBC,EAAoB,iBACpBE,EAAgB,SAChBpN,EAAQ,eACRh8B,GAC0BxnJ,EAC1B6jM,IACI9xM,EAAAA,EAAAA,KAACiwM,EAA2B,CACxBvR,mBAAoBA,EACpBwR,2BAA6BtR,IACzBD,EAAqB,CACjBtB,YAAaqB,EACbE,YACAlpL,gBACF,EAENy6L,uBAAwBA,CAAC9S,EAAqBuB,KAC1CC,EAAiB,CAAExB,cAAauB,YAAWlpL,gBAAc,EAE7D9C,QAASA,IAAM8C,GAAY+7K,GAC3Bh8B,eAAgBA,IAEvB,EAlDIr/I,GAuDKo7K,sBAAwB71K,IAYA,IAZC,MACnCjK,EAAK,KACLQ,EAAI,SACJD,EAAQ,WACRm7G,EAAU,YACVE,EAAW,WACXn7G,EAAU,UACVQ,EAAS,SACT8+K,EAAQ,OACRlgL,EAAM,aACN+8G,GAAe,EAAK,YACpBz7G,GAAc,GACQ8I,EACtBm2L,IACI9xM,EAAAA,EAAAA,KAAC6R,GAAAA,EAAiB,CACdu7G,WAAYA,EACZE,YAAaA,EACbx7G,MAAM,EACNJ,MAAOA,EACPO,SAAUA,EACVC,KAAMA,EACNC,WAAaC,IACTD,EAAW,CAAEC,gBAAesD,gBAAc,EAE9C/C,UAAYP,IACC,OAATO,QAAS,IAATA,GAAAA,EAAY,CAAEP,gBAAesD,gBAAc,EAE/C9C,QAASA,IAAM8C,GAAY+7K,GAC3BlgL,OAAQA,EACR+8G,aAAcA,EACdz7G,YAAaA,IAEpB,EAvFIuD,GA2FKC,oBAAsB4vD,IAOA,IAPC,MACjCv0D,EAAK,SACLO,EAAQ,YACR2D,EAAW,aACXU,EAAY,YACZggF,EAAW,WACX//E,GACoB0vD,EACpB6rI,IACI9xM,EAAAA,EAAAA,KAAC62F,GAAAA,EAAe,CACZ/kF,MAAM,EACNJ,MAAOA,EACPO,SAAUA,EACV2D,YAAaA,EACbU,aAAcA,EACdggF,YAAaA,EACb//E,WAAYA,CAACd,EAAOrD,KAChBmE,EAAW,CACPd,QACArD,gBACAsD,YAAcs4G,GAAet4G,GAAYs4G,IAC3C,EAENp7G,QAASA,IAAM8C,OAEtB,EApHIU,GAuHKk7K,qBAAuBhnH,IAMI,IANH,MAClC54D,EAAK,SACLO,EAAQ,kBACRo/K,EAAiB,SACjBI,EAAQ,cACR6M,GACyBh0H,EACzBwnI,IACI9xM,EAAAA,EAAAA,KAAC2wM,EAAgB,CACb7+L,MAAM,EACNJ,MAAOA,EACPO,SAAUA,EACV2+L,YAAaA,IAAMl7L,GAAY27K,GAC/Bz+K,QAASA,IAAM8C,GAAY+7K,GAC3B6M,cAAeA,IAEtB,EAvIIloL,GA0IKk+D,uBAAyBvC,IAMI,IANH,MACpCrgE,EAAK,KACLQ,EAAI,YACJqiE,EAAW,cACXC,EAAa,SACbi9G,GAC2B1/G,EAC3B+/H,IACI9xM,EAAAA,EAAAA,KAACwyL,GAAAA,EAAkB,CACf9gL,MAAOA,EACPQ,KAAMA,EACNqiE,YAAaA,EACbC,cAAgBpiE,IACZoiE,EAAc,CAAEpiE,gBAAesD,gBAAc,EAEjD9C,QAASA,IAAM8C,GAAY+7K,KAElC,wFC1PF,MAAMj/K,EAAkB8M,WAAAA,GAAA,KAkBtBy/B,QAAWszJ,GAAyB/xM,EAAAA,GAAey+C,QAAQ,CAAE19C,SAAUgxM,IAAU,KAIjFC,OAAS,IAAMhyM,EAAAA,GAAegyM,QAAS,CApB9C,iBAAcp5H,GACZ54E,EAAAA,GAAeiyM,QAAO,CAACx1J,EAAyBrxC,KAA1B,GAIxB,EAqBD8mM,EA5BYhgM,EAAAA,EASGigM,KAAQC,IACpB,MAAM,MAAEr3J,EAAK,QAAE0D,EAAO,MAAEv9C,EAAK,OAAE+M,GAAWmkM,EACtC3zJ,EACFz+C,EAAAA,GAAey+C,QAAQ,CAAE19C,SAAUg6C,EAAO75C,QAAO+M,WAEjDjO,EAAAA,GAAec,KAAK,CAAEC,SAAUg6C,EAAO75C,QAAO+M,UAChD,EAfSiE,EAoBGq4L,cAAiB8H,GAAiCryM,EAAAA,GAAey+C,QAAQ,CAAExwC,OAAmB,OAAXokM,QAAW,IAAXA,OAAW,EAAXA,EAAajkM,aApBnG8D,EAwBGoV,SAAW,IAAYpV,EAAkBigM,KAAK,CAAEp3J,MAAOxH,EAAAA,EAAU0F,YAxBpE/mC,EA0BGC,eAAkBjS,GAA4BgS,EAAkBigM,KAAK,CAAEp3J,MAAO/5C,EAAAA,EAAUmP,YAAalC,OAAc,OAAN/N,QAAM,IAANA,OAAM,EAANA,EAAQkO,0RCKjIkkM,EAA+BhyM,EAAAA,YAAiB,SAAyB8C,EAAOuE,GAClF,IAAIyD,EAAShI,EAAMgI,OACf1B,EAAUtG,EAAMsG,QAChBC,EAAYvG,EAAMuG,UAClBnI,EAAU4B,EAAM5B,QAChB+wM,EAAcnvM,EAAMuH,KACpBA,OAAuB,IAAhB4nM,EAAyB,QAAUA,EAC1CroM,GAAQC,EAAAA,EAAAA,GAAyB/G,EAAO,CAAC,SAAU,UAAW,YAAa,UAAW,SAE1F,OAAoB9C,EAAAA,cAAoBi1J,EAAAA,GAAO9vJ,EAAAA,EAAAA,GAAS,CACtDkF,KAAMA,EACN2vK,QAAQ,EACRC,UAAW,EACX5wK,WAAWW,EAAAA,EAAAA,SAAKZ,EAAQa,KAAMZ,GAC9BhC,IAAKA,GACJuC,GAAqB5J,EAAAA,cAAoB,MAAO,CACjDqJ,UAAWD,EAAQlI,SAClBA,GAAU4J,EAAsB9K,EAAAA,cAAoB,MAAO,CAC5DqJ,UAAWD,EAAQ0B,QAClBA,GAAU,KACf,IAiCA,SAAeR,EAAAA,EAAAA,IAvFK,SAAgBC,GAClC,IAAI2nM,EAAkC,UAAvB3nM,EAAMM,QAAQ9B,KAAmB,GAAM,IAClD6B,GAAkBunM,EAAAA,EAAAA,IAAU5nM,EAAMM,QAAQpL,WAAWquD,QAASokJ,GAClE,MAAO,CAELjoM,MAAM9E,EAAAA,EAAAA,GAAS,CAAC,EAAGoF,EAAM6nM,WAAWC,OAAO/yL,EAAAA,EAAAA,GAAgB,CACzD9U,MAAOD,EAAMM,QAAQkwK,gBAAgBnwK,GACrCA,gBAAiBA,EACjBH,QAAS,OACT4E,WAAY,SACZ0xK,SAAU,OACVz0K,QAAS,WACTynF,aAAcxpF,EAAM8gF,MAAM0I,aAC1Bu+G,SAAU,GACT/nM,EAAMwlL,YAAYvjD,GAAG,MAAO,CAC7B8lE,SAAU,UACV74L,SAAU,OAIZvY,QAAS,CACPoL,QAAS,SAIXxB,OAAQ,CACNL,QAAS,OACT4E,WAAY,SACZrC,WAAY,OACZ0C,YAAa,GACbzC,aAAc,GAGpB,GAsDkC,CAChC5L,KAAM,sBADR,CAEG2wM,GCnFI,IAqEHO,EAAwBvyM,EAAAA,YAAiB,SAAkB8C,EAAOuE,GACpE,IAAIyD,EAAShI,EAAMgI,OACf0nM,EAAsB1vM,EAAM6zF,aAM5BC,GALJ47G,OAA8C,IAAxBA,EAAiC,CACrD57G,SAAU,SACVC,WAAY,UACV27G,GAE+B57G,SAC/BC,EAAa27G,EAAoB37G,WACjC47G,EAAwB3vM,EAAM4vM,iBAC9BA,OAA6C,IAA1BD,EAAmC,KAAOA,EAC7D7qM,EAAW9E,EAAM8E,SACjBwB,EAAUtG,EAAMsG,QAChBC,EAAYvG,EAAMuG,UAClBspM,EAAyB7vM,EAAM6vM,uBAC/BC,EAAe9vM,EAAM8vM,aACrBC,EAAwB/vM,EAAMgwM,0BAC9BA,OAAsD,IAA1BD,GAA2CA,EACvE3xM,EAAU4B,EAAM5B,QAChB8Q,EAAUlP,EAAMkP,QAChB+gM,EAAUjwM,EAAMiwM,QAChBC,EAAYlwM,EAAMkwM,UAClBC,EAAanwM,EAAMmwM,WACnBC,EAASpwM,EAAMowM,OACfC,EAAWrwM,EAAMqwM,SACjBC,EAAYtwM,EAAMswM,UAClBC,EAAevwM,EAAMuwM,aACrBC,EAAexwM,EAAMwwM,aACrBpiM,EAAOpO,EAAMoO,KACbqiM,EAAqBzwM,EAAMywM,mBAC3BC,EAAwB1wM,EAAM2wM,oBAC9BA,OAAgD,IAA1BD,EAAmCE,EAAAA,EAAOF,EAChEG,EAAwB7wM,EAAM8wM,mBAC9BA,OAA+C,IAA1BD,EAAmC,CAC1DE,MAAOx2J,EAAAA,GAASy2J,eAChBC,KAAM12J,EAAAA,GAAS22J,eACbL,EACAM,EAAkBnxM,EAAMmxM,gBACxBrqM,GAAQC,EAAAA,EAAAA,GAAyB/G,EAAO,CAAC,SAAU,eAAgB,mBAAoB,WAAY,UAAW,YAAa,yBAA0B,eAAgB,4BAA6B,UAAW,UAAW,UAAW,YAAa,aAAc,SAAU,WAAY,YAAa,eAAgB,eAAgB,OAAQ,qBAAsB,sBAAuB,qBAAsB,oBAE5YoxM,EAAgBl0M,EAAAA,SAEhBm0M,EAAkBn0M,EAAAA,UAAe,GACjCo0M,EAASD,EAAgB,GACzBE,EAAYF,EAAgB,GAE5BG,GAAcC,EAAAA,EAAAA,IAAiB,WAC7BviM,GACFA,EAAQqN,WAAM,EAAQc,UAE1B,IACIq0L,GAAmBD,EAAAA,EAAAA,IAAiB,SAAUE,GAC3CziM,GAAoC,MAAzByiM,IAIhBC,aAAaR,EAAcvsM,SAC3BusM,EAAcvsM,QAAUlB,YAAW,WACjC6tM,EAAY,KAAM,UACpB,GAAGG,GACL,IACAz0M,EAAAA,WAAgB,WAKd,OAJIkR,GACFsjM,EAAiB9B,GAGZ,WACLgC,aAAaR,EAAcvsM,QAC7B,CACF,GAAG,CAACuJ,EAAMwhM,EAAkB8B,IAG5B,IAAIG,EAAc,WAChBD,aAAaR,EAAcvsM,QAC7B,EAIIitM,EAAe50M,EAAAA,aAAkB,WACX,MAApB0yM,GACF8B,EAAuC,MAAtBjB,EAA6BA,EAAwC,GAAnBb,EAEvE,GAAG,CAACA,EAAkBa,EAAoBiB,IA6C1C,OAbAx0M,EAAAA,WAAgB,WACd,IAAK8yM,GAA6B5hM,EAGhC,OAFAiL,OAAOg9E,iBAAiB,QAASy7G,GACjCz4L,OAAOg9E,iBAAiB,OAAQw7G,GACzB,WACLx4L,OAAOi9E,oBAAoB,QAASw7G,GACpCz4L,OAAOi9E,oBAAoB,OAAQu7G,EACrC,CAIJ,GAAG,CAAC7B,EAA2B8B,EAAc1jM,KAExCA,GAAQkjM,EACJ,KAGWp0M,EAAAA,cAAoB60M,EAAAA,GAAmB1vM,EAAAA,EAAAA,GAAS,CAClE2vM,YAhCoB,SAAyBp8G,GACzC1mF,GACFA,EAAQ0mF,EAAO,YAEnB,GA6BGi6G,GAAsC3yM,EAAAA,cAAoB,OAAOmF,EAAAA,EAAAA,GAAS,CAC3EkE,WAAWW,EAAAA,EAAAA,SAAKZ,EAAQa,KAAMb,EAAQ,eAAe8D,QAAOgtK,EAAAA,EAAAA,GAAWtjF,IAAW1pF,QAAOgtK,EAAAA,EAAAA,GAAWrjF,KAAextF,GACnHgqM,aAnDqB,SAA0B36G,GAC3C26G,GACFA,EAAa36G,GAGfi8G,GACF,EA8CErB,aA5CqB,SAA0B56G,GAC3C46G,GACFA,EAAa56G,GAGfk8G,GACF,EAuCEvtM,IAAKA,GACJuC,GAAqB5J,EAAAA,cAAoByzM,GAAqBtuM,EAAAA,EAAAA,GAAS,CACxE4vM,QAAQ,EACR7yL,GAAIhR,EACJ6hM,SAASiC,EAAAA,EAAAA,IA/BO,WAChBX,GAAU,EACZ,GA6B8CtB,GAC5CC,UAAWA,EACXC,WAAYA,EACZC,OAAQA,EACRC,UAAU6B,EAAAA,EAAAA,IAvCO,WACjBX,GAAU,EACZ,GAqCgDlB,GAC9CC,UAAWA,EACXnvL,QAAS2vL,EACTtlH,UAAwB,QAAbsI,EAAqB,OAAS,MACxCq9G,GAAkBrsM,GAAyB5H,EAAAA,cAAoBgyM,GAAiB7sM,EAAAA,EAAAA,GAAS,CAC1FjE,QAASA,EACT4J,OAAQA,GACP8nM,MACL,IAoKA,SAAetoM,EAAAA,EAAAA,IAnYK,SAAgBC,GAClC,IAAI0qM,EAAO,CACT17L,IAAK,GAEH27L,EAAU,CACZ7gH,OAAQ,GAEN/6E,EAAQ,CACVN,eAAgB,YAEdK,EAAO,CACTL,eAAgB,cAEdm8L,EAAO,CACT57L,IAAK,IAEH67L,EAAU,CACZ/gH,OAAQ,IAENghH,EAAS,CACX/7L,MAAO,IAELg8L,EAAQ,CACVj8L,KAAM,IAEJkuE,EAAS,CACXluE,KAAM,MACNC,MAAO,OACPw8D,UAAW,oBAEb,MAAO,CAEL7rE,KAAM,CACJqwK,OAAQ/vK,EAAM+vK,OAAOi7B,SACrBn8L,SAAU,QACV3O,QAAS,OACT4O,KAAM,EACNC,MAAO,EACPN,eAAgB,SAChB3J,WAAY,UAIdmmM,uBAAuBrwM,EAAAA,EAAAA,GAAS,CAAC,EAAG8vM,GAAM31L,EAAAA,EAAAA,GAAgB,CAAC,EAAG/U,EAAMwlL,YAAYvjD,GAAG,OAAOrnI,EAAAA,EAAAA,GAAS,CAAC,EAAGgwM,EAAM5tH,KAG7GkuH,0BAA0BtwM,EAAAA,EAAAA,GAAS,CAAC,EAAG+vM,GAAS51L,EAAAA,EAAAA,GAAgB,CAAC,EAAG/U,EAAMwlL,YAAYvjD,GAAG,OAAOrnI,EAAAA,EAAAA,GAAS,CAAC,EAAGiwM,EAAS7tH,KAGtHmuH,sBAAsBvwM,EAAAA,EAAAA,GAAS,CAAC,EAAG8vM,EAAM37L,GAAOgG,EAAAA,EAAAA,GAAgB,CAAC,EAAG/U,EAAMwlL,YAAYvjD,GAAG,OAAOrnI,EAAAA,EAAAA,GAAS,CACvGkU,KAAM,QACL87L,EAAME,KAGTM,yBAAyBxwM,EAAAA,EAAAA,GAAS,CAAC,EAAG+vM,EAAS57L,GAAOgG,EAAAA,EAAAA,GAAgB,CAAC,EAAG/U,EAAMwlL,YAAYvjD,GAAG,OAAOrnI,EAAAA,EAAAA,GAAS,CAC7GkU,KAAM,QACL+7L,EAASC,KAGZO,qBAAqBzwM,EAAAA,EAAAA,GAAS,CAAC,EAAG8vM,EAAM57L,GAAMiG,EAAAA,EAAAA,GAAgB,CAAC,EAAG/U,EAAMwlL,YAAYvjD,GAAG,OAAOrnI,EAAAA,EAAAA,GAAS,CACrGmU,MAAO,QACN67L,EAAMG,KAGTO,wBAAwB1wM,EAAAA,EAAAA,GAAS,CAAC,EAAG+vM,EAAS77L,GAAMiG,EAAAA,EAAAA,GAAgB,CAAC,EAAG/U,EAAMwlL,YAAYvjD,GAAG,OAAOrnI,EAAAA,EAAAA,GAAS,CAC3GmU,MAAO,QACN87L,EAASE,KAEhB,GA+TkC,CAChCQ,MAAM,EACNz0M,KAAM,eAFR,CAGGkxM,6BCzYI,MAwBDn8L,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC5BS,MAAO,GACPwC,OAAQ,oBC7BL,IAAK8mM,EAAe,SAAfA,GAAe,OAAfA,EAAe,cAAfA,EAAe,kBAAfA,EAAe,YAAfA,CAAe,MAcpB,MAAMC,EAAcl0M,IAAwE,IAC3FqiH,GADoB,KAAEp7G,EAAI,MAAE+H,EAAK,QAAE0pC,EAAO,YAAEy7J,GAA+Bn0M,EAE/E,OAAQiH,GACJ,KAAKgtM,EAAgBG,MACjB/xF,EAAOgyF,EACP,MACJ,KAAKJ,EAAgBx1M,QACjB4jH,EAAOiyF,EACP,MACJ,QACIjyF,EAAOkyF,EAsBf,OAnBiChpM,IAA0B,IAAzB,WAAEipM,GAAiBjpM,EACjD,MAAM7N,EAAQ+2M,EAASxtM,GACvB,OACI3J,EAAAA,EAAAA,KAACuzF,EAAAA,GAAO,CAAC7hF,OAAO1R,EAAAA,EAAAA,KAACo3M,EAAY,CAAA5uM,SAAE4yC,IAAyBi8J,UAAU,aAAY7uM,UAC1EyD,EAAAA,EAAAA,MAAC+K,EAAS,CAAC5W,MAAOA,EAAMoI,SAAA,EACpBxI,EAAAA,EAAAA,KAACs3M,EAA0B,CAAC5tM,KAAiB,OAAXmtM,QAAW,IAAXA,EAAAA,EAAez7J,KACjDp7C,EAAAA,EAAAA,KAACs/G,EAAa,CAAA92G,UACVxI,EAAAA,EAAAA,KAAC+kH,EAAI,CAAC3kH,MAAO,CAAEiN,MAAO,GAAIwC,OAAQ,SAGtC5D,EAAAA,EAAAA,MAACinF,EAAI,CAAA1qF,SAAA,EACDxI,EAAAA,EAAAA,KAACkZ,EAAK,CAAA1Q,SAAEkJ,IAAS1R,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAE,cAAAwB,OAAgBnE,QACrD3J,EAAAA,EAAAA,KAAC0Q,EAAO,CAAAlI,SAAE4yC,WAGZ,CAIG,EAGnBpkC,GAAYpK,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEvB,QAAS,OAAQgC,MAAO,OAAQkoG,UAAW,KACvE+J,GAAgB1yG,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEq2E,OAAQ,wBAExCm0H,GAAexqM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEO,WAAY,iBAE3CmqM,GAA6B1qM,EAAAA,EAAAA,IDnDGlJ,IAClC,MAAOoO,EAAM8kF,IAAWj2F,EAAAA,EAAAA,WAAS,GAOjC,OACIsL,EAAAA,EAAAA,MAAC+K,EAAS,IAAKtT,EAAK8E,SAAA,EAChBxI,EAAAA,EAAAA,KAAC4Q,EAAAA,EAAU,CAACS,QAPJA,KACZyrC,UAAU84H,UAAUC,UAAUnyK,EAAMgG,MACpCktF,GAAQ,EAAK,EAKoBpuF,UACzBxI,EAAAA,EAAAA,KAACu3M,EAAAA,EAAY,OAEjBv3M,EAAAA,EAAAA,KAACmzM,EAAQ,CACLrxM,SAAS9B,EAAAA,EAAAA,KAACqM,EAAAA,EAAgB,CAACC,GAAG,+CAC9BirF,aAAc,CAAEC,SAAU,MAAOC,WAAY,UAC7C67G,iBAAkB,IAClB1gM,QAASA,IAAMgkF,GAAQ,GACvB9kF,KAAMA,MAEF,GC+BelF,CAA8B,CAC7DoN,SAAU,WACVG,IAAK,EACLD,MAAO,KAGLg5E,GAAOtmF,EAAAA,EAAAA,GAAOwN,EAAAA,EAAPxN,CAAc,CACvBS,MAAO,UACPF,WAAY,WACZS,WAAY,GACZ2M,cAAe,KAGbrB,GAAQtM,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAAEiN,UAAW,GAAIE,aAAc,EAAG9M,SAAU,GAAIG,WAAY,SAClFsD,GAAU9D,EAAAA,EAAAA,GAAO,MAAPA,CAAc,CAC1BK,SAAU,GACVuqM,SAAU,aACV18L,SAAU,SACVC,aAAc,WACd,qBAAsB,EACtB1P,QAAS,cACT,qBAAsB,aAGpB8rM,EAAYxtM,IACd,IAAIvJ,EAAuB,CAAC,EAU5B,OATIuJ,IAASgtM,EAAgBG,QACzB12M,EAAMC,WAAa,WAEnBsJ,IAASgtM,EAAgBhzC,OACzBvjK,EAAMC,WAAa,WAEnBsJ,IAASgtM,EAAgBx1M,UACzBf,EAAMC,WAAa,WAEhBD,CAAK,EAKV22M,EAAaljG,IAEX7zG,EAAAA,EAAAA,KAAA,OAAKqN,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,UAAWyvB,EAAKrrG,UACjExI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,qoGAKdwsH,EAAYpjG,IAEV5nG,EAAAA,EAAAA,MAAA,OAAKoB,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,UAAWyvB,EAAKrrG,SAAA,EACjExI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,ovBACRzqF,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,8cAKdusH,EAAcnjG,IAEZ7zG,EAAAA,EAAAA,KAAA,OAAKqN,MAAM,KAAKwC,OAAO,KAAK6zE,QAAQ,YAAYU,KAAK,UAAWyvB,EAAKrrG,UACjExI,EAAAA,EAAAA,KAAA,QAAMyqF,EAAE,6mGCjGb,MAAMptC,EACT,kBAAcgnI,CAAYozB,GACtB,MAAM,MAAE/lM,EAAK,QAAE0pC,GAAYq8J,EAC3B,OAAOC,EAAAA,GAAM/gE,QAAQigE,EAAY,CAAEjtM,KAAMgtM,EAAgBx1M,QAASuQ,QAAO0pC,YAC7E,CAEA,gBAAckC,CAAUm6J,GACpB,MAAM,MAAE/lM,EAAK,QAAE0pC,EAAO,cAAEu8J,EAAa,SAAE15J,GAAaw5J,EACpD,OAAOC,EAAAA,GAAM/1M,MACTi1M,EAAY,CACRjtM,KAAMgtM,EAAgBG,MACtBplM,QACA0pC,UACAu8J,kBAEJ,CAAEC,UAAW35J,GAErB,CAEA,eAAcs7C,CAASk+G,GACnB,MAAM,MAAE/lM,EAAK,QAAE0pC,EAAO,YAAEy7J,EAAW,cAAEc,EAAa,SAAE15J,GAAaw5J,EACjE,OAAOC,EAAAA,GAAM/1M,MACTi1M,EAAY,CACRjtM,KAAMgtM,EAAgBhzC,KACtBjyJ,QACA0pC,UACAy7J,cACAc,kBAEJ,CAAEC,UAAW35J,GAErB,EAoBH45J,EAnDYx6J,EAAAA,EAkCKy6J,iBAAoBC,GAA8C,GAlCvE16J,EAmCK26J,mBAAqB,CAACC,EAAkBF,IAA8C,GAnC3F16J,EAqCK66J,QAAWD,GAAqBP,EAAAA,GAAMQ,QAAQD,GArCnD56J,EAuCKs5F,QAAWwhE,GAAyB96J,EAAMgnI,YAAY,CAAEjpI,QAASrpC,EAAAA,GAAKC,IAAImmM,KAvC/E96J,EAwCK17C,MAASw2M,GAAyB96J,EAAMC,UAAU,CAAElC,QAASrpC,EAAAA,GAAKC,IAAImmM,KAxC3E96J,EA0CK+6J,eAAiB,IACpBV,EAAAA,GAAM/gE,QACTigE,EAAY,CACRjtM,KAAMgtM,EAAgBhzC,KACtBjyJ,MAAO,kBACP0pC,QAAS,6FCvElB,MAAMtuC,GAAAA,EAGKC,MAAQ,CAClBF,WAAY,2BACZwD,qBAAsB,2BACtBgoM,6BAA8B,oCAC9BroM,yBAA0B,gCAC1BsoM,8BAA+B,qCAE/Bz2B,mBAAoB,yBAEpB70K,iBAAkB,uBAClBurM,iBAAkB,uBAClBC,sBAAuB,6BAdlB1rM,EAiBK2rM,OAAS,CACnBnkE,QAAS,OACTokE,aAAc,MACdC,cAAe,OACfC,aAAc,OAEd3rM,SAAU,OACV4rM,eAAgB,OAEhBC,aAAc,OACdC,YAAa,OACbC,qBAAsB,QA5BjBlsM,EA+BK+rK,gBAAuC,CAAE,kBAAmB,QA/BjE/rK,EAiCKspJ,oBAAqB1zC,EAAAA,EAAAA,GAAW,CAC1CjtG,MAAO,CACH,uBAAwB,CACpB,kBAAmB,aAEvB,kDAAmD,CAC/C,qBAAsB,OACtBwtE,OAAQ,GAEZ,kDAAmD,CAC/C,qBAAsB,OACtBA,OAAQ,gJCrBxB,MACA,EAAe,IAA0B,uECDzC,MACA,EAAe,IAA0B,uECDzC,MACA,EAAe,IAA0B,wECGzC,MACA,EAAe,IAA0B,mECAzC,MACA,EAAe,IAA0B,wECKzC,MACA,EAAe,IAA0B,6DCOzC,MACA,EAAe,IAA0B,wECjBzC,MACA,EAAe,IAA0B,qECEzC,MACA,EAAe,IAA0B,6ECGzC,MACA,EAAe,IAA0B,8ECRzC,MACA,EAAe,IAA0B,6DCDzC,MACA,EAAe,IAA0B,mECGzC,MACA,EAAe,IAA0B,mECJzC,MACA,EAAe,IAA0B,8DCMzC,MACA,EAAe,IAA0B,6DCEzC,MACA,EAAe,IAA0B,qECXzC,MACA,EAAe,IAA0B,mECDzC,MACA,EAAe,IAA0B,kECazC,MACA,EAAe,IAA0B,8DCDzC,MACA,EAAe,IAA0B,8DCbzC,MACA,EAAe,IAA0B,4DC4BzC,MACA,EAAe,IAA0B,8DCtCzC,MACA,EAAe,IAA0B,4DCYzC,MACA,EAAe,IAA0B,gECTzC,MACA,EAAe,IAA0B,qECJzC,MACA,EAAe,IAA0B,oECWzC,MACA,EAAe,IAA0B,4DCLzC,MACA,EAAe,IAA0B,kECOzC,MACA,EAAe,IAA0B,8DCRzC,MACA,EAAe,IAA0B,oECDzC,MACA,EAAe,IAA0B,qECJzC,MACA,EAAe,IAA0B,sECazC,MACA,EAAe,IAA0B,4DCDzC,MACA,EAAe,IAA0B,mECnBzC,MACA,EAAe,IAA0B,8DCDzC,MACA,EAAe,IAA0B,oECOzC,MACA,EAAe,IAA0B,mECTzC,MACA,EAAe,IAA0B,sECYzC,MACA,EAAe,IAA0B,+ECwHzC,MACA,EAAe,IAA0B,yDC1HzC,MACA,EAAe,IAA0B,wVC8BzC,MACA,EAAe,IAA0B,yECVzC,MACA,EAAe,IAA0B,yECWzC,MACA,EAAe,IAA0B,yECKzC,MACA,GAAe,IAA0B,yECzDzC,MACA,GAAe,IAA0B,mFCDzC,MACA,GAAe,IAA0B,iFCDzC,MACA,GAAe,IAA0B,kFCDzC,MACA,GAAe,IAA0B,gFCzBzC,IAAI,GAAO,GAAQ,GAAQ,GAAQ,GAAQg2H,GAAQC,GAAQC,GAAQC,GACnE,SAAS,KAAiS,OAApR,GAAWx0M,OAAOC,OAASD,OAAOC,OAAOw0M,OAAS,SAAUx4L,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUxH,OAAQuH,IAAK,CAAE,IAAIE,EAASD,UAAUD,GAAI,IAAK,IAAIX,KAAOa,EAAcpc,OAAOqB,UAAU+/K,eAAe5gL,KAAK4b,EAAQb,KAAQU,EAAOV,GAAOa,EAAOb,GAAU,CAAE,OAAOU,CAAQ,EAAU,GAASZ,MAAM5a,KAAM0b,UAAY,CAElV,SAASu4L,GAAyB52M,EAAM62M,GACtC,IAAI,MACF7nM,EAAK,QACL8nM,KACG91M,GACDhB,EACJ,OAAoB,gBAAoB,MAAO,GAAS,CACtD2K,MAAO,GACPwC,OAAQ,GACR6zE,QAAS,YACTU,KAAM,OACNX,MAAO,6BACPx7E,IAAKsxM,EACL,kBAAmBC,GAClB91M,GAAQgO,EAAqB,gBAAoB,QAAS,CAC3DpF,GAAIktM,GACH9nM,GAAS,KAAM,KAAU,GAAqB,gBAAoB,OAAQ,CAC3Eq5E,SAAU,UACVstG,SAAU,UACV5tG,EAAG,qDACHrG,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChE2G,SAAU,UACVstG,SAAU,UACV5tG,EAAG,kNACHrG,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChE2G,SAAU,UACVstG,SAAU,UACV5tG,EAAG,0CACHrG,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChE2G,SAAU,UACVstG,SAAU,UACV5tG,EAAG,wMACHrG,KAAM,aACH,KAAW,GAAsB,gBAAoB,OAAQ,CAChE2G,SAAU,UACVstG,SAAU,UACV5tG,EAAG,0DACHrG,KAAM,aACH60H,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEluH,SAAU,UACVstG,SAAU,UACV5tG,EAAG,gDACHrG,KAAM,aACH80H,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEnuH,SAAU,UACVstG,SAAU,UACV5tG,EAAG,6CACHrG,KAAM,aACH+0H,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEpuH,SAAU,UACVstG,SAAU,UACV5tG,EAAG,qDACHrG,KAAM,aACHg1H,KAAWA,GAAsB,gBAAoB,OAAQ,CAChEruH,SAAU,UACVstG,SAAU,UACV5tG,EAAG,oMACHrG,KAAM,aAEV,CACA,MAAM,GAA0B,aAAiBk1H,IAClC,ICpCf,MACA,GAAe,IAA0B,4DCRzC,MACA,GAAe,IAA0B,6DCDzC,MACA,GAAe,IAA0B,4DCczC,MACA,GAAe,IAA0B,2ECZzC,MACA,GAAe,IAA0B,kECKzC,MACA,GAAe,IAA0B,iECLzC,MACA,GAAe,IAA0B,sEC6DzC,MACA,GAAe,IAA0B,gECDzC,MACA,GAAe,IAA0B,qECpCzC,MACA,GAAe,IAA0B,oECVzC,MACA,GAAe,IAA0B,2DCHzC,MACA,GAAe,IAA0B,4DCPzC,MACA,GAAe,IAA0B,uECAzC,MACA,GAAe,IAA0B,iECFzC,MACA,GAAe,IAA0B,2FCoDlC,MAAMv0F,GAAOriH,IAAA,IAAC,KAAET,KAAS07G,GAAiBj7G,EAAA,OAAK1C,EAAAA,GAAAA,KAAA,UAAS29G,EAAM87F,IAAKx3M,GAAQ,EAE3E,MAAM8M,IAAAA,GAGK2qM,SAAW,IAAM30F,GAAK,CAAE5/B,IAAKw0H,EAAS13M,KAAM,SAHjD8M,GAIK6qM,SAAW,IAAM70F,GAAK,CAAE5/B,IAAK00H,EAAS53M,KAAM,SAJjD8M,GAKK+qM,SAAY9vM,IAAwBhK,EAAAA,GAAAA,KAAC+kH,GAAI,IAAK/6G,EAASm7E,IAAK40H,IALjEhrM,GAMKirM,cAAiBhwM,IAAwBhK,EAAAA,GAAAA,KAAC+kH,GAAI,IAAK/6G,EAASm7E,IAAK80H,IANtElrM,GAQKyvG,WAAa,IAAMuG,GAAK,CAAE5/B,IAAK+0H,EAAWj4M,KAAM,WARrD8M,GASK6uK,SAAW,IAAM74D,GAAK,CAAE5/B,IAAKg1H,EAASl4M,KAAM,SATjD8M,GAUKqrM,cAAgB,KAC1Bp6M,EAAAA,GAAAA,KAACq6M,EAAAA,EAAO,CAAA7xM,UACJyD,EAAAA,GAAAA,MAAA,KAAGm4E,KAAK,OAAO,YAAU,UAAS57E,SAAA,EAC9ByD,EAAAA,GAAAA,MAAA,KAAGyqE,UAAU,iBAAiB0N,KAAK,OAAM57E,SAAA,EACrCxI,EAAAA,GAAAA,KAAA,UAAQm+G,GAAG,IAAIC,GAAG,IAAI91D,EAAE,OACxBtoD,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,mDAEZzqF,EAAAA,GAAAA,KAAA,QAAM2qF,OAAO,OAAOF,EAAE,uBACtBx+E,EAAAA,GAAAA,MAAA,KAAGyqE,UAAU,eAAcluE,SAAA,EACvBxI,EAAAA,GAAAA,KAAA,QACIyqF,EAAE,8HACFE,OAAO,OACPvG,KAAK,aAETpkF,EAAAA,GAAAA,KAAA,UAAQokF,KAAK,OAAO+5B,GAAG,MAAMC,GAAG,MAAM91D,EAAE,cAxB/Cv5C,GA6BKooK,gBAAkB,KAC5BlrK,EAAAA,GAAAA,MAACouM,EAAAA,EAAO,CAAC32H,QAAQ,YAAWl7E,SAAA,EACxBxI,EAAAA,GAAAA,KAAA,QACIyqF,EAAE,oHACF/T,UAAU,yBACV0N,KAAK,aACTpkF,EAAAA,GAAAA,KAAA,QACIyqF,EAAE,28DACF/T,UAAU,wBArCb3nE,GAyCKurM,UAAa52M,GAAsBqhH,GAAK,CAAE5/B,IAAKo1H,EAAUt4M,KAAM,WAAYyB,IAzChFqL,GA2CKyrM,eAAkB92M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKs1H,KAAoB/2M,IA3C5EqL,GA6CK2rM,eAAiB,IAAM31F,GAAK,CAAE5/B,IAAKw1H,EAAgB14M,KAAM,gBA7C9D8M,GA8CKa,mBAAsBlM,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKy1H,KAAyBl3M,IA9CrFqL,GAgDK4B,kBAAqBjN,IAC/B1D,EAAAA,GAAAA,KAACq6M,EAAAA,EAAO,CACJhtM,MAAO,EACPwC,OAAQ,GACR6zE,QAAQ,WACRU,KAAK,UACLX,MAAM,6BACN/M,UAAU,cACVt2E,MAAO,CAAEiN,MAAO,EAAGwC,OAAQ,OACvBnM,EAAK8E,UACTxI,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,oJA1DP17E,GA8DK8rM,mBAAqB,IAAM91F,GAAK,CAAE5/B,IAAK21H,EAAqB74M,KAAM,eA9DvE8M,GA+DKgsM,kBAAoB,IAAMh2F,GAAK,CAAE5/B,IAAK61H,EAAoB/4M,KAAM,eA/DrE8M,GAiEKghM,gBAAkB,IAAMhrF,GAAK,CAAE5/B,IAAK81H,EAAiBh5M,KAAM,iBAjEhE8M,GAkEK+gM,iBAAmB,IAAM/qF,GAAK,CAAE5/B,IAAK+1H,EAAkBj5M,KAAM,kBAlElE8M,GAmEKosM,oBAAsB,IAAMp2F,GAAK,CAAE5/B,IAAKi2H,EAAqBn5M,KAAM,qBAnExE8M,GAqEKssM,cAAiB33M,GAAsBqhH,GAAK,CAAE5/B,IAAKm2H,EAAer5M,KAAM,SArE7E8M,GAuEKwsM,eAAkB73M,GAAsBqhH,GAAK,CAAE5/B,IAAKq2H,EAAgBv5M,KAAM,SAvE/E8M,GAwEK0sM,eAAkB/3M,GAAsBqhH,GAAK,CAAE5/B,IAAKu2H,EAAgBz5M,KAAM,UAxE/E8M,GA0EK4sM,gBAAmBj4M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKy2H,EAAiB35M,KAAM,YAAcyB,IA1E9FqL,GA2EK8sM,WAAcn4M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAK22H,EAAW75M,KAAM,eAAiByB,IA3EtFqL,GA6EKipF,UAAat0F,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAK42H,KAAcr4M,IA7EjEqL,GA+EKitM,eAAkBt4M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK82H,EAAgBh6M,KAAK,UA/ExF8M,GAiFKmtM,aAAgBx4M,GAAsBqhH,GAAK,CAAE5/B,IAAKg3H,EAAal6M,KAAM,aAjF1E8M,GAmFKqtM,gBAAmB14M,IAC7B1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKk3H,EAAgBp6M,KAAM,kBAAoByB,IApFhDqL,GAuFKC,UAAatL,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKm3H,EAAUr6M,KAAK,WAAYyB,IAvF9EqL,GAwFKwtM,wBAA2B74M,GACrCqhH,GAAK,CAAE5/B,qyCAAgCljF,KAAM,8BAzFxC8M,GA2FKytM,wBAA2B94M,GACrCqhH,GAAK,CAAE5/B,IAAKs3H,EAA2Bx6M,KAAM,8BA5FxC8M,GA8FK2tM,iBAAoBh5M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKw3H,KAAsBj5M,IA9FhFqL,GAgGK6tM,kBAAqBl5M,GAC/BqhH,GAAK,CAAE5/B,IAAK03H,EAAmB56M,KAAM,sBAjGhC8M,GAmGK+tM,iBAAoBp5M,GAAsBqhH,GAAK,CAAE5/B,IAAK43H,EAAkB96M,KAAM,qBAnGnF8M,GAqGKiuM,wBAA2Bt5M,GACrCqhH,GAAK,CAAE5/B,IAAK83H,EAA0Bh7M,KAAM,6BAtGvC8M,GAwGKmuM,kBAAqBx5M,GAC/BqhH,GAAK,CAAE5/B,IAAKg4H,EAAoBl7M,KAAM,uBAzGjC8M,GA0GKquM,mBAAqB,IAAMr4F,GAAK,CAAE5/B,u5BA1GvCp2E,GA4GKsuM,iBAAoB35M,GAAsBqhH,GAAK,CAAE5/B,IAAKm4H,EAAkBr7M,KAAM,qBA5GnF8M,GA8GK2iM,WAAchuM,GAAsBqhH,GAAK,CAAE5/B,IAAKo4H,EAAWt7M,KAAM,cA9GtE8M,GAkHKyuM,sBAAwBC,GAlH7B1uM,GAoHKqmK,KAAQ1xK,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKu4H,IApHzD3uM,GAsHK4uM,WAAcj6M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKy4H,KAAyBl6M,IAtH7EqL,GA0HKwyK,eAAkB79K,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK04H,IA1HnE9uM,GA2HKoK,YAAezV,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAK24H,KAAep6M,IA3HpEqL,GA4HKgvM,iBAAoBr6M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAK64H,KAAqBt6M,IA5H/EqL,GA8HKkvM,kBAAqBv6M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK+4H,IA9HtEnvM,GA+HKovM,0BAA6Bz6M,IACvC1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKi5H,IAhIjBrvM,GAmIKsvM,2BAA8B36M,IACxC1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKm5H,KApIjBvvM,GAsIKwvM,6BAAgC76M,IAC1C1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKq5H,KAvIjBzvM,GAyIK0vM,4BAA+B/6M,IACzC1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKu5H,KA1IjB3vM,GA4IK4vM,0BAA6Bj7M,IACvC1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKy5H,KA7IjB7vM,GAgJK8vM,sBAAyBn7M,IACnC1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK25H,GAAwB1+M,MAAO,CAAE4Z,SAAU,WAAYG,IAAK,EAAGD,MAAO,KAjJvFnL,GAmJKgwM,SAAYr7M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK65H,KAnJ7DjwM,GAqJK2mF,SAAYhyF,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK85H,KArJ7DlwM,GAsJKumF,UAAa5xF,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK+5H,KAtJ9DnwM,GAwJKowM,cAAiBz7M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKi6H,KAxJlErwM,GAyJKswM,aAAgB37M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKm6H,KAzJjEvwM,GA2JKwwM,kBAAqB77M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKq6H,KA3JtEzwM,GA6JK0wM,QAAW/7M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKu6H,KA7J5D3wM,GA8JK4wM,SAAYj8M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKy6H,KA9J7D7wM,GAgKK8wM,cAAgB,KAEtB7/M,EAAAA,GAAAA,KAAA,OAAKqN,MAAM,KAAKwC,OAAO,IAAI6zE,QAAQ,WAAWU,KAAK,OAAOX,MAAM,6BAA4Bj7E,UACxFxI,EAAAA,GAAAA,KAAA,QACIyqF,EAAE,kDACFE,OAAO,QACPC,YAAY,IACZyzB,cAAc,YAvKrBtvG,GA6KK+wM,gBAAmBp8M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK46H,KA7KpEhxM,GA8KK+nK,aAAgBpzK,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK66H,KA9KjEjxM,GA+KKgoK,iBAAoBrzK,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK86H,KA/KrElxM,GAiLKmxM,kBAAqBx8M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,u0IAjLjEp2E,GAkLKoxM,uBAA0Bz8M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,+pNAlLtEp2E,GAmLKqxM,4BAA+B18M,IACzC1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,+qKApLZp2E,GAuLKsxM,wBAA2B38M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKm7H,KAvL5EvxM,GAwLKwxM,aAAgB78M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKq7H,KAxLjEzxM,GAyLK0xM,sBAAyB/8M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAKu7H,KAzL1E3xM,GA2LKs0G,gBAAkBp1G,IAA0C,IAAzC,MAAE7N,GAAiC6N,EAChE,OACIhC,EAAAA,GAAAA,MAAA,OACIoB,MAAM,KACNwC,OAAO,KACP6zE,QAAQ,YACRU,KAAK,OACLX,MAAM,6BACNrjF,MAAOA,EAAMoI,SAAA,EACbyD,EAAAA,GAAAA,MAAA,KAAGm5G,SAAS,yBAAyBhhC,KAAK,UAAS57E,SAAA,EAC/CxI,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,qoBACRzqF,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,4mBACRzqF,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,wxBACRzqF,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,+vBACRzqF,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,gNAEZzqF,EAAAA,GAAAA,KAAA,QAAAwI,UACIxI,EAAAA,GAAAA,KAAA,YAAUsM,GAAG,mBAAkB9D,UAC3BxI,EAAAA,GAAAA,KAAA,QAAMqN,MAAM,KAAKwC,OAAO,KAAKu0E,KAAK,gBAGxC,EAhNLr1E,GAoNKs6G,UAAY1tG,IAAkF,IAAjF,MAAEvb,EAAK,KAAEkpH,GAAkE3tG,EAClG,OACI3b,EAAAA,GAAAA,KAAA,OACII,MAAOA,KACHkpH,EACJj8G,MAAM,KACNwC,OAAO,KACP6zE,QAAQ,YACRU,KAAK,OACLX,MAAM,6BAA4Bj7E,UAClCyD,EAAAA,GAAAA,MAAA,KAAGm4E,KAAK,UAAS57E,SAAA,EACbxI,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,oNACRzqF,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,+rBACRzqF,EAAAA,GAAAA,KAAA,QAAMyqF,EAAE,gfAEV,EAnOL17E,GAuOK4xM,eAAiB16I,IAAkF,IAAjF,MAAE7lE,EAAK,KAAEkpH,GAAkErjD,EACvG,OACIh6D,EAAAA,GAAAA,MAAA,OACI7L,MAAOA,KACHkpH,EACJj8G,MAAM,KACNwC,OAAO,KACP6zE,QAAQ,YACRU,KAAK,OACLX,MAAM,6BAA4Bj7E,SAAA,EAClCxI,EAAAA,GAAAA,KAAA,UAAQm+G,GAAG,KAAKC,GAAG,KAAK91D,EAAE,KAAK87B,KAAK,aACpCpkF,EAAAA,GAAAA,KAAA,QACIyqF,EAAE,8CACFE,OAAO,QACPC,YAAY,MACZyzB,cAAc,YAEhB,EAxPLtvG,GA4PK6xM,WAAcl9M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK07H,IA5P/D9xM,GA6PKyE,WAAc9P,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,IAAKrhH,EAAOyhF,IAAK27H,IA7P/D/xM,GA+PKgyM,mBAAsBr9M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAK67H,KAA2Bt9M,IA/PvFqL,GAgQKkyM,mBAAsBv9M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAK+7H,KAA2Bx9M,IAhQvFqL,GAiQKoyM,mBAAsBz9M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKi8H,KAA2B19M,IAjQvFqL,GAkQKsyM,mBAAsB39M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKm8H,KAA2B59M,IAlQvFqL,GAoQKwyM,kBAAqB79M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKq8H,KAA0B99M,IApQrFqL,GAqQK0yM,kBAAqB/9M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKu8H,KAA0Bh+M,IArQrFqL,GAsQK4yM,kBAAqBj+M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAKy8H,KAA0Bl+M,IAtQrFqL,GAuQK8yM,kBAAqBn+M,IAAsB1D,EAAAA,GAAAA,KAAC+kH,GAAI,CAAC5/B,IAAK28H,MAA0Bp+M,oDC9R3F,SAAS9B,EAAUC,EAAWC,EAASigN,GAE1C,QADY,IAARA,IAAkBA,EAAMhgN,QACvBF,EACD,MAAM,IAAIkgN,EAAIjgN,EAEtB,gCC1Ee,SAASkgN,EAAQC,EAAI/+M,GAChC,IAAIM,EAAQN,GAAWA,EAAQM,MAAQN,EAAQM,MAAQ0+M,EACnDC,EAAaj/M,GAAWA,EAAQi/M,WAAaj/M,EAAQi/M,WAAaC,EAEtE,OADel/M,GAAWA,EAAQm/M,SAAWn/M,EAAQm/M,SAAWC,GAChDL,EAAI,CAChBz+M,MAAOA,EACP2+M,WAAYA,GAEpB,CAOA,SAASI,EAAQN,EAAIz+M,EAAO2+M,EAAYK,GACpC,IAJiBv7M,EAIbtD,EAHa,OADAsD,EAIUu7M,IAHe,kBAAVv7M,GAAuC,mBAAVA,EAG3Bu7M,EAAML,EAAWK,GAC/CC,EAAgBj/M,EAAMwO,IAAIrO,GAK9B,MAJ6B,qBAAlB8+M,IACPA,EAAgBR,EAAG78M,KAAKC,KAAMm9M,GAC9Bh/M,EAAMy0I,IAAIt0I,EAAU8+M,IAEjBA,CACX,CACA,SAASC,EAAST,EAAIz+M,EAAO2+M,GACzB,IAAItrK,EAAOzwB,MAAMngB,UAAUowC,MAAMjxC,KAAK2b,UAAW,GAC7Cpd,EAAWw+M,EAAWtrK,GACtB4rK,EAAgBj/M,EAAMwO,IAAIrO,GAK9B,MAJ6B,qBAAlB8+M,IACPA,EAAgBR,EAAGhiM,MAAM5a,KAAMwxC,GAC/BrzC,EAAMy0I,IAAIt0I,EAAU8+M,IAEjBA,CACX,CACA,SAASE,EAASV,EAAIrlK,EAASylK,EAAU7+M,EAAO+d,GAC5C,OAAO8gM,EAAShJ,KAAKz8J,EAASqlK,EAAIz+M,EAAO+d,EAC7C,CACA,SAAS+gM,EAAgBL,EAAI/+M,GAEzB,OAAOy/M,EAASV,EAAI58M,KADS,IAAd48M,EAAG1oM,OAAegpM,EAAUG,EACPx/M,EAAQM,MAAM42H,SAAUl3H,EAAQi/M,WACxE,0BAUA,IAAIC,EAAoB,WACpB,OAAO5+L,KAAKC,UAAU1C,UAC1B,EAIA,SAAS6hM,IACLv9M,KAAK7B,MAAQoB,OAAOw1H,OAAO,KAC/B,CACAwoF,EAA4B38M,UAAU+L,IAAM,SAAUmO,GAClD,OAAO9a,KAAK7B,MAAM2c,EACtB,EACAyiM,EAA4B38M,UAAUgyI,IAAM,SAAU93H,EAAKlZ,GACvD5B,KAAK7B,MAAM2c,GAAOlZ,CACtB,EACA,IAAIi7M,EAAe,CACf9nF,OAAQ,WAEJ,OAAO,IAAIwoF,CACf,GAEOC,EAAa,CACpBH,SA/BJ,SAA0BT,EAAI/+M,GAC1B,OAAOy/M,EAASV,EAAI58M,KAAMq9M,EAAUx/M,EAAQM,MAAM42H,SAAUl3H,EAAQi/M,WACxE,EA8BII,QA7BJ,SAAyBN,EAAI/+M,GACzB,OAAOy/M,EAASV,EAAI58M,KAAMk9M,EAASr/M,EAAQM,MAAM42H,SAAUl3H,EAAQi/M,WACvE,oKCjDWW,ECAA/xH,EAwCAgyH,YAQJ,SAASC,EAAiB7hE,GAC7B,OAAOA,EAAGx3I,OAASonF,EAAKkyH,OAC5B,CACO,SAASC,EAAkB/hE,GAC9B,OAAOA,EAAGx3I,OAASonF,EAAKw9E,QAC5B,CACO,SAAS40C,EAAgBhiE,GAC5B,OAAOA,EAAGx3I,OAASonF,EAAK9mC,MAC5B,CACO,SAASm5J,EAAcjiE,GAC1B,OAAOA,EAAGx3I,OAASonF,EAAKp4E,IAC5B,CACO,SAAS0qM,EAAcliE,GAC1B,OAAOA,EAAGx3I,OAASonF,EAAKu+E,IAC5B,CACO,SAASg0C,EAAgBniE,GAC5B,OAAOA,EAAGx3I,OAASonF,EAAKwyH,MAC5B,CACO,SAASC,EAAgBriE,GAC5B,OAAOA,EAAGx3I,OAASonF,EAAK0yH,MAC5B,CACO,SAASC,EAAeviE,GAC3B,OAAOA,EAAGx3I,OAASonF,EAAK4yH,KAC5B,CACO,SAASC,EAAaziE,GACzB,OAAOA,EAAGx3I,OAASonF,EAAKpZ,GAC5B,CACO,SAASksI,EAAiB1iE,GAC7B,SAAUA,GAAoB,kBAAPA,GAAmBA,EAAGx3I,OAASo5M,EAAc94J,OACxE,CACO,SAAS65J,EAAmB3iE,GAC/B,SAAUA,GAAoB,kBAAPA,GAAmBA,EAAGx3I,OAASo5M,EAAcgB,SACxE,ED/EA,SAAWjB,GAEPA,EAAUA,EAAyC,8BAAI,GAAK,gCAE5DA,EAAUA,EAA0B,eAAI,GAAK,iBAE7CA,EAAUA,EAA8B,mBAAI,GAAK,qBAEjDA,EAAUA,EAAgC,qBAAI,GAAK,uBAEnDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAiC,sBAAI,GAAK,wBAEpDA,EAAUA,EAAmC,wBAAI,GAAK,0BAEtDA,EAAUA,EAAsC,2BAAI,GAAK,6BAEzDA,EAAUA,EAAkC,uBAAI,GAAK,yBAErDA,EAAUA,EAAqC,0BAAI,IAAM,4BAEzDA,EAAUA,EAA4C,iCAAI,IAAM,mCAEhEA,EAAUA,EAA0C,+BAAI,IAAM,iCAE9DA,EAAUA,EAA+C,oCAAI,IAAM,sCAEnEA,EAAUA,EAAgD,qCAAI,IAAM,uCAEpEA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAA2C,gCAAI,IAAM,kCAE/DA,EAAUA,EAAoD,yCAAI,IAAM,2CAKxEA,EAAUA,EAAoD,yCAAI,IAAM,2CAExEA,EAAUA,EAA4C,iCAAI,IAAM,mCAKhEA,EAAUA,EAA8C,mCAAI,IAAM,qCAIlEA,EAAUA,EAA8C,mCAAI,IAAM,qCAElEA,EAAUA,EAAgC,qBAAI,IAAM,uBAEpDA,EAAUA,EAAuB,YAAI,IAAM,cAE3CA,EAAUA,EAA4B,iBAAI,IAAM,mBAEhDA,EAAUA,EAAiC,sBAAI,IAAM,wBAErDA,EAAUA,EAAwB,aAAI,IAAM,cAC/C,CA7DD,CA6DGA,IAAcA,EAAY,CAAC,IC7D9B,SAAW/xH,GAIPA,EAAKA,EAAc,QAAI,GAAK,UAI5BA,EAAKA,EAAe,SAAI,GAAK,WAI7BA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAW,KAAI,GAAK,OAIzBA,EAAKA,EAAa,OAAI,GAAK,SAI3BA,EAAKA,EAAa,OAAI,GAAK,SAK3BA,EAAKA,EAAY,MAAI,GAAK,QAI1BA,EAAKA,EAAU,IAAI,GAAK,KAC3B,CAtCD,CAsCGA,IAASA,EAAO,CAAC,IAEpB,SAAWgyH,GACPA,EAAcA,EAAsB,OAAI,GAAK,SAC7CA,EAAcA,EAAwB,SAAI,GAAK,UAClD,CAHD,CAGGA,IAAkBA,EAAgB,CAAC,IC3C/B,IAAIiB,EAAwB,+CCI/BC,EAAkB,4KAOf,SAASC,EAAsBC,GAClC,IAAI7+M,EAAS,CAAC,EA0Gd,OAzGA6+M,EAASplK,QAAQklK,GAAiB,SAAU/kK,GACxC,IAAI1I,EAAM0I,EAAM3lC,OAChB,OAAQ2lC,EAAM,IAEV,IAAK,IACD55C,EAAO8+M,IAAc,IAAR5tK,EAAY,OAAiB,IAARA,EAAY,SAAW,QACzD,MAEJ,IAAK,IACDlxC,EAAOqqK,KAAe,IAARn5H,EAAY,UAAY,UACtC,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAIo4H,WAAW,gEAEzB,IAAK,IACL,IAAK,IACD,MAAM,IAAIA,WAAW,8CAEzB,IAAK,IACL,IAAK,IACDtpK,EAAO6qK,MAAQ,CAAC,UAAW,UAAW,QAAS,OAAQ,UAAU35H,EAAM,GACvE,MAEJ,IAAK,IACL,IAAK,IACD,MAAM,IAAIo4H,WAAW,2CACzB,IAAK,IACDtpK,EAAO8qK,IAAM,CAAC,UAAW,WAAW55H,EAAM,GAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAIo4H,WAAW,6DAEzB,IAAK,IACDtpK,EAAO++M,QAAkB,IAAR7tK,EAAY,QAAkB,IAARA,EAAY,SAAW,QAC9D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAIo4H,WAAW,iDAEzBtpK,EAAO++M,QAAU,CAAC,QAAS,OAAQ,SAAU,SAAS7tK,EAAM,GAC5D,MACJ,IAAK,IACD,GAAIA,EAAM,EACN,MAAM,IAAIo4H,WAAW,iDAEzBtpK,EAAO++M,QAAU,CAAC,QAAS,OAAQ,SAAU,SAAS7tK,EAAM,GAC5D,MAEJ,IAAK,IACDlxC,EAAOg/M,QAAS,EAChB,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAI11C,WAAW,8DAEzB,IAAK,IACDtpK,EAAOi/M,UAAY,MACnBj/M,EAAOk/M,KAAO,CAAC,UAAW,WAAWhuK,EAAM,GAC3C,MACJ,IAAK,IACDlxC,EAAOi/M,UAAY,MACnBj/M,EAAOk/M,KAAO,CAAC,UAAW,WAAWhuK,EAAM,GAC3C,MACJ,IAAK,IACDlxC,EAAOi/M,UAAY,MACnBj/M,EAAOk/M,KAAO,CAAC,UAAW,WAAWhuK,EAAM,GAC3C,MACJ,IAAK,IACDlxC,EAAOi/M,UAAY,MACnBj/M,EAAOk/M,KAAO,CAAC,UAAW,WAAWhuK,EAAM,GAC3C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAIo4H,WAAW,oEAEzB,IAAK,IACDtpK,EAAOm/M,OAAS,CAAC,UAAW,WAAWjuK,EAAM,GAC7C,MAEJ,IAAK,IACDlxC,EAAOo/M,OAAS,CAAC,UAAW,WAAWluK,EAAM,GAC7C,MACJ,IAAK,IACL,IAAK,IACD,MAAM,IAAIo4H,WAAW,8DAEzB,IAAK,IACDtpK,EAAOq/M,aAAenuK,EAAM,EAAI,QAAU,OAC1C,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACD,MAAM,IAAIo4H,WAAW,wEAE7B,MAAO,EACX,IACOtpK,CACX,CCvHO,IAAIs/M,EAAoB,wCC8B/B,IAAIC,EAA2B,mCAC3BC,EAA8B,wBAC9BC,EAAsB,0BACtBC,EAA8B,SAClC,SAASC,EAA0Br5J,GAC/B,IAAItmD,EAAS,CAAC,EA6Bd,MA5B4B,MAAxBsmD,EAAIA,EAAIryC,OAAS,GACjBjU,EAAO4/M,iBAAmB,gBAEG,MAAxBt5J,EAAIA,EAAIryC,OAAS,KACtBjU,EAAO4/M,iBAAmB,iBAE9Bt5J,EAAI7M,QAAQ+lK,GAA6B,SAAU5iK,EAAGijK,EAAIC,GAoBtD,MAlBkB,kBAAPA,GACP9/M,EAAO+/M,yBAA2BF,EAAG5rM,OACrCjU,EAAOggN,yBAA2BH,EAAG5rM,QAGzB,MAAP6rM,EACL9/M,EAAO+/M,yBAA2BF,EAAG5rM,OAGtB,MAAV4rM,EAAG,GACR7/M,EAAOggN,yBAA2BH,EAAG5rM,QAIrCjU,EAAO+/M,yBAA2BF,EAAG5rM,OACrCjU,EAAOggN,yBACHH,EAAG5rM,QAAwB,kBAAP6rM,EAAkBA,EAAG7rM,OAAS,IAEnD,EACX,IACOjU,CACX,CACA,SAASigN,EAAU35J,GACf,OAAQA,GACJ,IAAK,YACD,MAAO,CACH45J,YAAa,QAErB,IAAK,kBACL,IAAK,KACD,MAAO,CACHC,aAAc,cAEtB,IAAK,cACL,IAAK,KACD,MAAO,CACHD,YAAa,UAErB,IAAK,yBACL,IAAK,MACD,MAAO,CACHA,YAAa,SACbC,aAAc,cAEtB,IAAK,mBACL,IAAK,KACD,MAAO,CACHD,YAAa,cAErB,IAAK,8BACL,IAAK,MACD,MAAO,CACHA,YAAa,aACbC,aAAc,cAEtB,IAAK,aACL,IAAK,KACD,MAAO,CACHD,YAAa,SAG7B,CACA,SAASE,EAAyCC,GAE9C,IAAIrgN,EAaJ,GAZgB,MAAZqgN,EAAK,IAA0B,MAAZA,EAAK,IACxBrgN,EAAS,CACLsgN,SAAU,eAEdD,EAAOA,EAAKtvK,MAAM,IAED,MAAZsvK,EAAK,KACVrgN,EAAS,CACLsgN,SAAU,cAEdD,EAAOA,EAAKtvK,MAAM,IAElB/wC,EAAQ,CACR,IAAIkgN,EAAcG,EAAKtvK,MAAM,EAAG,GAShC,GARoB,OAAhBmvK,GACAlgN,EAAOkgN,YAAc,SACrBG,EAAOA,EAAKtvK,MAAM,IAEG,OAAhBmvK,IACLlgN,EAAOkgN,YAAc,aACrBG,EAAOA,EAAKtvK,MAAM,KAEjB2uK,EAA4B1uK,KAAKqvK,GAClC,MAAM,IAAI5jN,MAAM,6CAEpBuD,EAAOugN,qBAAuBF,EAAKpsM,MACvC,CACA,OAAOjU,CACX,CACA,SAASwgN,EAAqBC,GAC1B,IACIC,EAAWT,EAAUQ,GACzB,OAAIC,GAFS,CAAC,CAMlB,CAIO,SAASC,EAAoBC,GAEhC,IADA,IAAI5gN,EAAS,CAAC,EACL6gN,EAAK,EAAGC,EAAWF,EAAQC,EAAKC,EAAS7sM,OAAQ4sM,IAAM,CAC5D,IAAIzpI,EAAQ0pI,EAASD,GACrB,OAAQzpI,EAAMipI,MACV,IAAK,UACL,IAAK,IACDrgN,EAAOlF,MAAQ,UACf,SACJ,IAAK,QACDkF,EAAOlF,MAAQ,UACfkF,EAAO24G,MAAQ,IACf,SACJ,IAAK,WACD34G,EAAOlF,MAAQ,WACfkF,EAAOy7K,SAAWrkG,EAAMx5E,QAAQ,GAChC,SACJ,IAAK,YACL,IAAK,KACDoC,EAAO+gN,aAAc,EACrB,SACJ,IAAK,oBACL,IAAK,IACD/gN,EAAOmT,sBAAwB,EAC/B,SACJ,IAAK,eACL,IAAK,OACDnT,EAAOlF,MAAQ,OACfkF,EAAOghN,KAAqB5pI,EAAMx5E,QAAQ,GArJ1C67C,QAAQ,UAAW,IAsJnB,SACJ,IAAK,gBACL,IAAK,IACDz5C,EAAOsgN,SAAW,UAClBtgN,EAAOihN,eAAiB,QACxB,SACJ,IAAK,eACL,IAAK,KACDjhN,EAAOsgN,SAAW,UAClBtgN,EAAOihN,eAAiB,OACxB,SACJ,IAAK,aACDjhN,GAASkhN,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,IAAS,CAAC,EAAGlhN,GAAS,CAAEsgN,SAAU,eAAiBlpI,EAAMx5E,QAAQyf,QAAO,SAAU2yB,EAAKywK,GAAO,OAAQS,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,IAAS,CAAC,EAAGlxK,GAAMwwK,EAAqBC,GAAQ,GAAG,CAAC,IAC9L,SACJ,IAAK,cACDzgN,GAASkhN,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,IAAS,CAAC,EAAGlhN,GAAS,CAAEsgN,SAAU,gBAAkBlpI,EAAMx5E,QAAQyf,QAAO,SAAU2yB,EAAKywK,GAAO,OAAQS,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,IAAS,CAAC,EAAGlxK,GAAMwwK,EAAqBC,GAAQ,GAAG,CAAC,IAC/L,SACJ,IAAK,kBACDzgN,EAAOsgN,SAAW,WAClB,SAEJ,IAAK,oBACDtgN,EAAOmhN,gBAAkB,eACzBnhN,EAAOohN,YAAc,SACrB,SACJ,IAAK,mBACDphN,EAAOmhN,gBAAkB,OACzBnhN,EAAOohN,YAAc,QACrB,SACJ,IAAK,uBACDphN,EAAOmhN,gBAAkB,OACzBnhN,EAAOohN,YAAc,OACrB,SACJ,IAAK,sBACDphN,EAAOmhN,gBAAkB,SACzB,SACJ,IAAK,QACDnhN,EAAO24G,MAAQxxC,WAAWiQ,EAAMx5E,QAAQ,IACxC,SAEJ,IAAK,gBACD,GAAIw5E,EAAMx5E,QAAQqW,OAAS,EACvB,MAAM,IAAIq1J,WAAW,4DAEzBlyF,EAAMx5E,QAAQ,GAAG67C,QAAQgmK,GAAqB,SAAU7iK,EAAGijK,EAAIC,EAAIuB,EAAIC,EAAIC,GACvE,GAAI1B,EACA7/M,EAAOugN,qBAAuBT,EAAG7rM,WAEhC,IAAIotM,GAAMC,EACX,MAAM,IAAI7kN,MAAM,sDAEf,GAAI8kN,EACL,MAAM,IAAI9kN,MAAM,mDACpB,CACA,MAAO,EACX,IACA,SAGR,GAAIijN,EAA4B1uK,KAAKomC,EAAMipI,MACvCrgN,EAAOugN,qBAAuBnpI,EAAMipI,KAAKpsM,YAG7C,GAAIsrM,EAAyBvuK,KAAKomC,EAAMipI,MAAxC,CAII,GAAIjpI,EAAMx5E,QAAQqW,OAAS,EACvB,MAAM,IAAIq1J,WAAW,iEAEzBlyF,EAAMipI,KAAK5mK,QAAQ8lK,GAA0B,SAAU3iK,EAAGijK,EAAIC,EAAIuB,EAAIC,EAAIC,GAkBtE,MAhBW,MAAPzB,EACA9/M,EAAO07K,sBAAwBmkC,EAAG5rM,OAG7BotM,GAAgB,MAAVA,EAAG,GACdrhN,EAAOmT,sBAAwBkuM,EAAGptM,OAG7BqtM,GAAMC,GACXvhN,EAAO07K,sBAAwB4lC,EAAGrtM,OAClCjU,EAAOmT,sBAAwBmuM,EAAGrtM,OAASstM,EAAGttM,SAG9CjU,EAAO07K,sBAAwBmkC,EAAG5rM,OAClCjU,EAAOmT,sBAAwB0sM,EAAG5rM,QAE/B,EACX,IACA,IAAIwsM,EAAMrpI,EAAMx5E,QAAQ,GAEZ,MAAR6iN,EACAzgN,GAASkhN,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,IAAS,CAAC,EAAGlhN,GAAS,CAAEwhN,oBAAqB,mBAE1Df,IACLzgN,GAASkhN,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,IAAS,CAAC,EAAGlhN,GAAS2/M,EAA0Bc,IAG1E,MAEA,GAAIjB,EAA4BxuK,KAAKomC,EAAMipI,MACvCrgN,GAASkhN,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,IAAS,CAAC,EAAGlhN,GAAS2/M,EAA0BvoI,EAAMipI,WAD5E,CAIA,IAAIK,EAAWT,EAAU7oI,EAAMipI,MAC3BK,IACA1gN,GAASkhN,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,IAAS,CAAC,EAAGlhN,GAAS0gN,IAE5C,IAAIe,EAAsCrB,EAAyChpI,EAAMipI,MACrFoB,IACAzhN,GAASkhN,EAAAA,EAAAA,KAASA,EAAAA,EAAAA,IAAS,CAAC,EAAGlhN,GAASyhN,GAP5C,CASJ,CACA,OAAOzhN,CACX,CCpSO,ICFH0hN,EDEOC,EAAW,CAClB,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,MAAO,CACH,IACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,QAAS,CACL,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,QAAS,CACL,IACA,IACA,MAEJ,QAAS,CACL,IACA,IACA,MAEJ,QAAS,CACL,IACA,IACA,MAEJ,QAAS,CACL,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,QAAS,CACL,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,SAAU,CACN,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,SAAU,CACN,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IA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A,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,KAC7B,CEvvCA,SAASy4H,GAAcr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QADc,CAAC,OAAQggL,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,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AAC,OAAQ+/B,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,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O,IACT,CAEA,OAAOA,CACT,CC1LO,MAAMh5G,EAAOu3G,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAIW0B,EAAM1B,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGW2B,EAAa3B,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOW4B,EAAgB5B,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGW6B,EAAS7B,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKW8B,EAAmB9B,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGW36K,EAAO26K,EAAO,CAAC,UCrRfv3G,EAAOu3G,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,SAGW0B,EAAM1B,EAAO,CACxB,gBACA,aACA,WACA,qBACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGW6B,EAAS7B,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,UAGW+B,EAAM/B,EAAO,CACxB,aACA,SACA,cACA,YACA,gBCzWWgC,EAAgB/B,EAAK,6BACrBgC,EAAWhC,EAAK,yBAChBiC,EAAcjC,EAAK,iBACnBkC,EAAYlC,EAAK,8BACjBmC,EAAYnC,EAAK,kBACjBoC,EAAiBpC,EAC5B,6FAEWqC,EAAoBrC,EAAK,yBACzBsC,EAAkBtC,EAC7B,+DAEWuC,EAAevC,EAAK,WACpBwC,EAAiBxC,EAAK,0NCSnC,MAAMyC,EAAY,C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","sources":["Web/Pages/CRMLanding/CRMLandingPage.tsx","../node_modules/@loadable/component/dist/loadable.esm.mjs","Web/Components/Templates/Loading/AsyncPageLoading.tsx","Web/Pages/Quote/QuotePageLoading.ts","Web/Pages/Projects/ProjectsPageLoading.ts","Web/Hooks/useIsBoUser.ts","../node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js","../node_modules/@material-ui/core/esm/TableRow/TableRow.js","Web/Pages/Projects/Components/QuotationList.tsx","Web/Pages/Projects/ProjectDetailsPage/components/ButtonBack.tsx","Web/Pages/Projects/ProjectDetailsPage/components/ButtonDeleteProject.tsx","Web/Pages/Projects/ProjectDetailsPage/components/ButtonExportProject.tsx","Web/Pages/Projects/ProjectDetailsPage/components/ButtonResume.tsx","Web/Pages/Projects/ProjectDetailsPage/ProjectDetailsPageController.ts","Web/Pages/Projects/ProjectDetailsPage/ProjectDetailsPage.tsx","Configs/AppRoutes.ts","Configs/CurrentProjectContext.tsx","../node_modules/redux-persist/es/constants.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../node_modules/redux-persist/es/createPersistoid.js","../node_modules/redux-persist/es/getStoredState.js","../node_modules/redux-persist/es/purgeStoredState.js","../node_modules/redux-persist/es/persistReducer.js","../node_modules/redux-persist/es/persistStore.js","../node_modules/redux-thunk/es/index.js","Services/Authentication/AuthenticationMiddleware.ts","Services/Me/MeMiddleware.ts","Services/Authentication/AuthenticationReducer.ts","Services/Me/MeReducer.ts","Locales/fr.ts","Locales/frFloorPlanMessages.ts","Locales/i18nReducer.ts","Configs/PolStore.ts","Configs/StoreProvider.ts","../node_modules/connected-react-router/esm/middleware.js","Configs/browserHistory.ts","Constants.ts","Errors/Logger.ts","Errors/PolErrorHandler.ts","Helpers/ConditionHelper.ts","Helpers/ConfigurationUtils.ts","Helpers/EstimationUrlHelper.ts","Helpers/ImageProduitHelper.ts","Helpers/ObjectUtils.ts","Helpers/ProductHelper.ts","Helpers/ProjectHelper.ts","Helpers/QuestionContextHelper.ts","Helpers/QuestionsHelper.ts","Helpers/QuotationHelper.ts","Helpers/QuoteQuestionUtils.ts","Helpers/RoomHeatingTypeErrorHelper.ts","Helpers/StoreHelper.ts","Helpers/SynthesesHelper.ts","Helpers/TauxDeTvaHelper.ts","Hooks/Visibility.ts","Hooks/WindowLog.ts","Locales/I18nService.tsx","Models/ApiUrls.ts","Models/Authentication/AuthResponse.ts","Models/ErrorCodes.ts","Models/Projects/Configuration.ts","Models/Projects/ProjectDto.ts","Models/Questions/QuestionDto.ts","Models/Quotations/Quotations.ts","Models/StmacPostMessages/StmacLoginMessages.ts","Models/StmacPostMessages/StmacSaveProjectMessage.ts","Models/Users/Me.ts","Plugins/FloorPlan/Components/Images/ExportMapSvgV3.tsx","Plugins/FloorPlan/Components/Images/Helpers/ExportMapPngHelper.ts","Plugins/FloorPlan/Components/Images/Helpers/SvgGenerationHelpers.ts","Plugins/FloorPlan/Components/Images/Laizes/LaizeExportBandsSvgV3.tsx","Plugins/FloorPlan/Components/Images/Laizes/LaizeExportRoomBandsSvgV3.tsx","Plugins/FloorPlan/Components/Images/LaizeDebugMapSvgV3.tsx","Plugins/FloorPlan/Components/Laizes/Debug/Tests/TestCases.ts","Plugins/FloorPlan/Components/Laizes/Debug/Tests/LaizeDebugTest.ts","Plugins/FloorPlan/Components/Laizes/Debug/LaizeV3DebugDialog.tsx","Plugins/FloorPlan/Components/Laizes/Debug/LaizeDebugController.tsx","Plugins/FloorPlan/Components/Laizes/Debug/LaizeDebugProvider.tsx","Plugins/FloorPlan/Components/Laizes/Dialog/LaizeCalcDialogProvider.tsx","Plugins/FloorPlan/Components/Laizes/Dialog/Widgets/MapUIWalls.tsx","Plugins/FloorPlan/Components/Laizes/Laize.ts","Plugins/FloorPlan/Components/Laizes/LaizeCalc.ts","Plugins/FloorPlan/Components/Laizes/v3/LaizeBands.ts","Plugins/FloorPlan/Components/Laizes/v3/LaizeBandTrace.ts","Plugins/FloorPlan/Components/Laizes/v3/LaizeLeftOver.ts","Plugins/FloorPlan/Components/Laizes/v3/LaizeSurfaces.ts","Plugins/FloorPlan/Components/Laizes/v3/LaizeV3.ts","Plugins/FloorPlan/Components/Laizes/v3/LaizeV3Traces.tsx","Plugins/FloorPlan/Components/Widgets/BoxWalls/EditCoteDialog.tsx","Plugins/FloorPlan/Components/Widgets/BoxWalls/BoxWallRibs.tsx","Plugins/FloorPlan/Components/Widgets/BoxWalls/BoxWalls.tsx","Plugins/FloorPlan/Components/Widgets/BoxWalls/ZoomScaleComponents.ts","Plugins/FloorPlan/Components/Widgets/Cotes.tsx","Plugins/FloorPlan/Components/Widgets/MenuContext/ContextIconMenu.tsx","Plugins/FloorPlan/Components/Widgets/MenuContext/ContextMenuItems.tsx","Plugins/FloorPlan/Components/Widgets/MenuContext/MenuContext.tsx","Plugins/FloorPlan/Components/Widgets/MenuContext/MenuDeleteDialog.tsx","Plugins/FloorPlan/Components/Widgets/Openings/BoxBindOpening.tsx","Plugins/FloorPlan/Components/Widgets/Openings/OpeningGestureController.ts","Plugins/FloorPlan/Components/Widgets/Openings/BoxCarpentryItems.tsx","Plugins/FloorPlan/Components/Widgets/Openings/CarpentryFactory.tsx","Plugins/FloorPlan/Components/Widgets/Openings/CarpentryPicto.tsx","Plugins/FloorPlan/Components/Widgets/RoomItems/BoxBindRoomItem.tsx","Plugins/FloorPlan/Components/Widgets/RoomItems/RoomItemGestureController.ts","Plugins/FloorPlan/Components/Widgets/RoomItems/BoxRoomItems.tsx","Plugins/FloorPlan/Components/Widgets/RoomItems/RoomItemIconFactory.tsx","Plugins/FloorPlan/Components/Widgets/Rooms/BoxAreas.tsx","Plugins/FloorPlan/Context/EditNameContext.tsx","Plugins/FloorPlan/Context/GestureContext.tsx","Plugins/FloorPlan/Context/IncompatibilityContext.tsx","Plugins/FloorPlan/Context/LaizeDirectionContext.tsx","Plugins/FloorPlan/Context/MapKeybordEvents.tsx","Plugins/FloorPlan/Context/MapContext.tsx","Plugins/FloorPlan/Context/MapExportContext.tsx","Plugins/FloorPlan/Context/MapReadyContext.tsx","Plugins/FloorPlan/Context/MapViewerContext.tsx","Plugins/FloorPlan/Context/UndoRedoMapContext.tsx","Plugins/FloorPlan/Helpers/BaseOpeningFactory.ts","Plugins/FloorPlan/Helpers/BaseRoomFactory.ts","Plugins/FloorPlan/Helpers/BaseRoomItemFactory.ts","Plugins/FloorPlan/Helpers/CompleteHelper.ts","Plugins/FloorPlan/Helpers/MapExport/MapExportV2.ts","Plugins/FloorPlan/Helpers/MapExport/MapExportV3.ts","Plugins/FloorPlan/Helpers/MapExport/MapExportV31.ts","Plugins/FloorPlan/Helpers/MapExport/MapExportV32.ts","Plugins/FloorPlan/Helpers/MapExport/MapExportHelper.ts","Plugins/FloorPlan/Helpers/RoomItemHelper.ts","Plugins/FloorPlan/Helpers/MapHelper.ts","Plugins/FloorPlan/Utils/PerimeterCalc.ts","Plugins/FloorPlan/Helpers/LaizeComputer.ts","Plugins/FloorPlan/Helpers/MapResult.ts","Plugins/FloorPlan/MapConstants.ts","Plugins/FloorPlan/Models/IMapItem.ts","Plugins/FloorPlan/Models/IOpening.ts","Plugins/FloorPlan/Models/IRoom.ts","Plugins/FloorPlan/Models/IRoomItem.ts","Plugins/FloorPlan/Utils/Collisions/CollisionRoomUtils.ts","Plugins/FloorPlan/Utils/Collisions/InvalidPositionDetection.ts","Plugins/FloorPlan/Utils/Editor.ts","Plugins/FloorPlan/Utils/EventUtils.ts","Plugins/FloorPlan/Utils/Funcs.ts","Plugins/FloorPlan/Utils/IdGenerator.ts","Plugins/FloorPlan/Utils/JstsUtils.ts","Plugins/FloorPlan/Utils/MagnetizedUtils.ts","Plugins/FloorPlan/Utils/Opening/OpeningUtils.ts","Plugins/FloorPlan/Utils/PointUtils.ts","../node_modules/tinyqueue/index.js","Plugins/FloorPlan/Utils/PolylabelUtils.ts","Plugins/FloorPlan/Utils/Room/RoomDiffUtils.ts","Plugins/FloorPlan/Utils/Room/RoomMove.ts","Plugins/FloorPlan/Utils/Room/RoomUtils.ts","Plugins/FloorPlan/Utils/RoomItem/RoomItemUtils.ts","Plugins/FloorPlan/Utils/SAT/SATUtils.ts","Plugins/FloorPlan/Utils/Wall/WallTools.ts","Plugins/FloorPlan/Utils/Wall/WallMove.ts","Plugins/FloorPlan/Utils/Wall/WallUtils.ts","Plugins/FloorPlan/Utils/ZoomUtils.ts","Plugins/FloorPlan/Utils/qSVG.ts","Events/withEvent.ts","Plugins/FloorPlan/Widgets/BaseDialog.tsx","Plugins/FloorPlan/Widgets/DimensInput.tsx","../node_modules/@material-ui/core/esm/InputAdornment/InputAdornment.js","Plugins/FloorPlan/Widgets/SelectField.tsx","Plugins/GTM/GTM.ts","Plugins/GTM/GTMTexts.ts","Services/Analytics/Informations/UserInformations.ts","Services/Analytics/Informations/DeviceInformations.ts","Services/Analytics/AnalyticsLogger.ts","Services/Analytics/LogLevelType.ts","Services/Analytics/LoglevelLogger.ts","Services/Api/ProjectsApi.ts","Services/Api/QuestionApi.ts","Services/Api/QuotationsApi.ts","Services/Authentication/AuthHelper.ts","Services/Api/AuthApi.ts","Services/Api/CRMApi.ts","Services/Authentication/AuthenticationActions.ts","Services/Authentication/AuthService.ts","Services/Authentication/typings/AuthenticationActionTypes.ts","Services/Me/MeActions.ts","Services/Api/MeApi.ts","Services/Me/MeService.ts","Services/XHR/ApiError.ts","Services/XHR/ApiClient.ts","Services/XHR/ApiRequest.ts","Services/XHR/XHRRequest.ts","Utils/BrowserUtils.ts","../node_modules/date-fns/esm/parseISO/index.js","Utils/DateUtils.ts","Utils/ExportUtils.ts","Web/Components/Templates/CustomLoader.tsx","Web/Components/Templates/Loading/LoadingPage.tsx","Web/Components/Templates/Logo.tsx","Web/Components/Templates/Wrappers/JSONViewer/JSONViewer.tsx","Web/Components/Templates/Wrappers/MountActionsGate/EssentialsActionsGate.tsx","Web/Components/Views/CustomButton/AppointmentButton.tsx","Web/Components/Views/CustomButton/ButtonsFactory.tsx","Web/Components/Views/CustomButton/CustomButton.tsx","Web/Components/Views/CustomTextField/CustomTextField.tsx","Web/Components/Views/PageLayout/Header/HeaderButton.tsx","../node_modules/@material-ui/core/esm/AppBar/AppBar.js","Plugins/Promos/PromoBandeau.tsx","Services/Api/PromosApi.ts","Web/Components/Views/PageLayout/Header/HeaderButtonUser.tsx","Web/Components/Views/PageLayout/Header/HeaderLayout.tsx","Web/Components/Views/PageLayout/PageLayout.tsx","Web/Components/Views/PriceLabel/PriceLabel.tsx","Web/Components/Widgets/ButtonClose.tsx","Web/Components/Widgets/LoadingView.tsx","Web/Components/Widgets/Stack.tsx","Web/Components/Widgets/Typographies.tsx","Web/Context/Debug/DebugContext.tsx","Web/Context/Debug/DebugControl.tsx","Web/Context/Debug/DebugDialog.tsx","../node_modules/react-helmet-async/lib/index.esm.js","Web/Context/PlatformContext/PlatformContext.tsx","Web/Hooks/URL/URLUtils.ts","Utils/UserUtils.ts","Web/Hooks/User/useAuthenticatedUser.tsx","Web/Hooks/Vendeur/useVendeur.ts","Web/Hooks/ViewState/ViewState.ts","Web/Hooks/useDebounce.ts","Web/Pages/Projects/Components/ChoiceDialog/SingleChoiceDialog.tsx","Web/Pages/Projects/Components/ChoiceDialog/YesNoChoiceDialog.tsx","Web/Pages/Projects/Components/InputTextField.tsx","Web/Pages/Projects/Components/EditInputDialog.tsx","Web/Pages/Projects/ProjectsUtils.ts","Web/Pages/Quote/Components/Pannels/Rooms/Controllers/RoomEditController.tsx","Web/Pages/Quote/Components/Pannels/Rooms/Controllers/RoomEditSectionController.ts","Web/Pages/Quote/Components/Pannels/Rooms/Controllers/RoomInfosFocus.ts","Web/Pages/Quote/Components/Pannels/Rooms/Controllers/RoomInfosValues.ts","Web/assets/flooring_direction/ClassiqueHorizontal.tsx","Web/assets/flooring_direction/ClassiqueHorizontalSelected.tsx","Web/assets/flooring_direction/ClassiqueVertical.tsx","Web/assets/flooring_direction/ClassiqueVerticalSelected.tsx","Web/assets/flooring_direction/LaizeHorizontal.tsx","Web/assets/flooring_direction/LaizeHorizontalSelected.tsx","Web/assets/flooring_direction/LaizeVertical.tsx","Web/assets/flooring_direction/LaizeVerticalSelected.tsx","Web/assets/flooring_direction/LameHorizontal.tsx","Web/assets/flooring_direction/LameHorizontalSelected.tsx","Web/assets/flooring_direction/LameVertical.tsx","Web/assets/flooring_direction/LameVerticalSelected.tsx","Web/assets/flooring_direction/FlooringDirectionAssets.tsx","Web/Pages/Quote/Components/Pannels/Rooms/RoomDirection/RoomDirection.tsx","Web/Pages/Quote/Components/Pannels/Widgets/Focus.tsx","Web/Pages/Quote/Controllers/GtmEventController.tsx","Web/Pages/Quote/Controllers/HabitationContextController.ts","Web/Pages/Quote/Controllers/QuoteProviderController.ts","Web/Services/StmacPostMessageService.ts","Web/Pages/Quote/Controllers/QuoteSaveController.ts","Web/Pages/Quote/Controllers/StepQuestionsController.ts","Web/Pages/Quote/Helpers/HabitationHelper.ts","Web/Pages/Quote/Helpers/ProduitPrincipalHelper.ts","Web/Pages/Quote/Helpers/QuestionPrepare.ts","Web/Pages/Quote/Helpers/Scroller.ts","Services/Api/ConfigurationApi.ts","Web/Pages/Quote/Utils/UpdateQuestions.ts","Web/Pages/Quote/Controllers/QuoteLoadController.ts","Services/Api/VersionApi.ts","Web/Pages/Quote/Helpers/VersionLoader.ts","Web/Pages/Quote/QuotePageController.tsx","Web/Pages/Quote/QuoteState.ts","Web/Pages/Quote/Utils/ContextQuestionsUtils.ts","Web/Pages/Quote/Utils/QuestionContextUtils.ts","Web/Pages/Quote/Widgets/TagLabel.tsx","../node_modules/@material-ui/core/esm/DialogActions/DialogActions.js","Web/Components/Views/Dialogs/CreateOrUpdateProjectDialog/CreateOrUpdateProjectDialog.tsx","Web/Components/Views/Dialogs/CreateProjectDialog/CreateProjectDialog.tsx","Web/Pages/Auth/StmacLoginDialog.tsx","Web/Pages/Auth/StmacLoginDialogController.ts","Web/Services/DialogService.tsx","Web/Services/NavigationService.ts","../node_modules/@material-ui/core/esm/SnackbarContent/SnackbarContent.js","../node_modules/@material-ui/core/esm/Snackbar/Snackbar.js","Web/Components/Views/CustomButton/CopyToClipboardButton.tsx","Web/Components/Views/CustomToast/CustomToast.tsx","Web/Services/ToastService.tsx","Web/Themes/ThemeRes.ts","Web/assets/icons/ic_arrow_down_blue.svg","Web/assets/icons/ic_arrow_next_blue.svg","Web/assets/icons/ic_arrow_next_white.svg","Web/assets/icons/ic_arrow_right.svg","Web/assets/icons/ic_arrow_right_thin.svg","Web/assets/icons/ic_check.svg","Web/assets/icons/ic_checkbox_checked.svg","Web/assets/icons/ic_checkbox_rect.svg","Web/assets/icons/ic_checkbox_rect_checked.svg","Web/assets/icons/ic_circle_arrow_down_blue.svg","Web/assets/icons/ic_close.svg","Web/assets/icons/ic_close_white.svg","Web/assets/icons/ic_cross_white.svg","Web/assets/icons/ic_delete.svg","Web/assets/icons/ic_devis.svg","Web/assets/icons/ic_download_file.svg","Web/assets/icons/ic_edit_orange.svg","Web/assets/icons/ic_edit_white.svg","Web/assets/icons/ic_export.svg","Web/assets/icons/ic_import.svg","Web/assets/icons/ic_home.svg","Web/assets/icons/ic_laptop.svg","Web/assets/icons/ic_load.svg","Web/assets/icons/ic_projects.svg","Web/assets/icons/ic_radio_checked.svg","Web/assets/icons/ic_radio_normal.svg","Web/assets/icons/ic_save.svg","Web/assets/icons/ic_save_white.svg","Web/assets/icons/ic_search.svg","Web/assets/icons/ic_search_black.svg","Web/assets/icons/ic_selected_blue.svg","Web/assets/icons/ic_selected_white.svg","Web/assets/icons/ic_user.svg","Web/assets/icons/ic_user_advice.svg","Web/assets/icons/ic_rename.svg","Web/assets/icons/ic_rename_white.svg","Web/assets/icons/ic_cross_black.svg","Web/assets/icons/ic_search_product.svg","Web/assets/icons/ic_search_product_selected.svg","Web/assets/logos/logo.svg","Web/assets/images/img_produit_default.svg","Web/assets/icons/ic_plan_onboarding_0.svg","Web/assets/icons/ic_plan_onboarding_1.svg","Web/assets/icons/ic_plan_onboarding_2.svg","Web/assets/icons/ic_plan_onboarding_3.svg","Web/assets/icons/ic_tutorial_bottom_arrow_white.svg","Web/assets/icons/ic_tutorial_left_arrow_white.svg","Web/assets/icons/ic_tutorial_right_arrow_white.svg","Web/assets/icons/ic_tutorial_top_arrow_white.svg","Web/assets/logos/logo_recommended_choice.svg","Web/assets/icons/ic_help.svg","Web/assets/icons/ic_minus.svg","Web/assets/icons/ic_plus.svg","Web/assets/images/img_produit_recommened.svg","Web/assets/icons/ic_rect_empty.svg","Web/assets/icons/ic_rect_fill.svg","Web/assets/icons/ic_exclude_option.svg","Web/assets/icons/ic_calendar.svg","Web/assets/icons/ic_calendar_dark.svg","Web/assets/icons/ic_download_pdf.svg","Web/assets/icons/ic_sol.svg","Web/assets/icons/ic_wall.svg","Web/assets/icons/ic_poseurs_experts.svg","Web/assets/icons/ic_quote_tva.svg","Web/assets/icons/ic_quote_pose_garantie.svg","Web/assets/Assets.tsx","../node_modules/@formatjs/ecma402-abstract/lib/utils.js","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/@formatjs/intl/lib/src/error.js","../node_modules/@formatjs/intl/lib/src/utils.js","../node_modules/@material-ui/core/Dialog/Dialog.js","../node_modules/@material-ui/core/Tooltip/Tooltip.js","../node_modules/@material-ui/core/colors/blue.js","../node_modules/@material-ui/core/colors/common.js","../node_modules/@material-ui/core/colors/green.js","../node_modules/@material-ui/core/colors/grey.js","../node_modules/@material-ui/core/colors/indigo.js","../node_modules/@material-ui/core/colors/orange.js","../node_modules/@material-ui/core/colors/pink.js","../node_modules/@material-ui/core/colors/red.js","../node_modules/@material-ui/core/esm/Backdrop/Backdrop.js","../node_modules/@material-ui/core/esm/Button/Button.js","../node_modules/@material-ui/core/esm/ButtonBase/Ripple.js","../node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js","../node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js","../node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js","../node_modules/@material-ui/core/esm/Dialog/Dialog.js","../node_modules/@material-ui/core/esm/Divider/Divider.js","../node_modules/@material-ui/core/esm/Fade/Fade.js","../node_modules/@material-ui/core/esm/FilledInput/FilledInput.js","../node_modules/@material-ui/core/esm/FormControl/FormControl.js","../node_modules/@material-ui/core/esm/FormControl/FormControlContext.js","../node_modules/@material-ui/core/esm/FormControl/formControlState.js","../node_modules/@material-ui/core/esm/FormControl/useFormControl.js","../node_modules/@material-ui/core/esm/Grow/Grow.js","../node_modules/@material-ui/core/esm/IconButton/IconButton.js","../node_modules/@material-ui/core/esm/Input/Input.js","../node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js","../node_modules/@material-ui/core/esm/InputBase/InputBase.js","../node_modules/@material-ui/core/esm/InputBase/utils.js","../node_modules/@material-ui/core/esm/List/ListContext.js","../node_modules/@material-ui/core/esm/List/List.js","../node_modules/@material-ui/core/esm/MenuList/MenuList.js","../node_modules/@material-ui/core/esm/Menu/Menu.js","../node_modules/@material-ui/core/esm/ListItem/ListItem.js","../node_modules/@material-ui/core/esm/MenuItem/MenuItem.js","../node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js","../node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js","../node_modules/@material-ui/core/esm/Modal/Modal.js","../node_modules/@material-ui/core/esm/Modal/ModalManager.js","../node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js","../node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js","../node_modules/@material-ui/core/esm/Paper/Paper.js","../node_modules/@material-ui/core/esm/Popover/Popover.js","../node_modules/popper.js/src/utils/isBrowser.js","../node_modules/popper.js/src/utils/debounce.js","../node_modules/popper.js/src/utils/isFunction.js","../node_modules/popper.js/src/utils/getStyleComputedProperty.js","../node_modules/popper.js/src/utils/getParentNode.js","../node_modules/popper.js/src/utils/getScrollParent.js","../node_modules/popper.js/src/utils/getReferenceNode.js","../node_modules/popper.js/src/utils/isIE.js","../node_modules/popper.js/src/utils/getOffsetParent.js","../node_modules/popper.js/src/utils/getRoot.js","../node_modules/popper.js/src/utils/findCommonOffsetParent.js","../node_modules/popper.js/src/utils/isOffsetContainer.js","../node_modules/popper.js/src/utils/getScroll.js","../node_modules/popper.js/src/utils/getBordersSize.js","../node_modules/popper.js/src/utils/getWindowSizes.js","../node_modules/popper.js/src/utils/getClientRect.js","../node_modules/popper.js/src/utils/getBoundingClientRect.js","../node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js","../node_modules/popper.js/src/utils/includeScroll.js","../node_modules/popper.js/src/utils/isFixed.js","../node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js","../node_modules/popper.js/src/utils/getBoundaries.js","../node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","../node_modules/popper.js/src/utils/computeAutoPlacement.js","../node_modules/popper.js/src/utils/getReferenceOffsets.js","../node_modules/popper.js/src/utils/getOuterSizes.js","../node_modules/popper.js/src/utils/getOppositePlacement.js","../node_modules/popper.js/src/utils/getPopperOffsets.js","../node_modules/popper.js/src/utils/find.js","../node_modules/popper.js/src/utils/runModifiers.js","../node_modules/popper.js/src/utils/findIndex.js","../node_modules/popper.js/src/methods/update.js","../node_modules/popper.js/src/utils/isModifierEnabled.js","../node_modules/popper.js/src/utils/getSupportedPropertyName.js","../node_modules/popper.js/src/methods/destroy.js","../node_modules/popper.js/src/utils/getWindow.js","../node_modules/popper.js/src/utils/setupEventListeners.js","../node_modules/popper.js/src/methods/enableEventListeners.js","../node_modules/popper.js/src/methods/disableEventListeners.js","../node_modules/popper.js/src/utils/removeEventListeners.js","../node_modules/popper.js/src/utils/isNumeric.js","../node_modules/popper.js/src/utils/setStyles.js","../node_modules/popper.js/src/modifiers/computeStyle.js","../node_modules/popper.js/src/utils/isModifierRequired.js","../node_modules/popper.js/src/methods/placements.js","../node_modules/popper.js/src/utils/clockwise.js","../node_modules/popper.js/src/modifiers/flip.js","../node_modules/popper.js/src/modifiers/offset.js","../node_modules/popper.js/src/modifiers/index.js","../node_modules/popper.js/src/modifiers/shift.js","../node_modules/popper.js/src/modifiers/preventOverflow.js","../node_modules/popper.js/src/modifiers/keepTogether.js","../node_modules/popper.js/src/modifiers/arrow.js","../node_modules/popper.js/src/utils/getOppositeVariation.js","../node_modules/popper.js/src/modifiers/inner.js","../node_modules/popper.js/src/modifiers/hide.js","../node_modules/popper.js/src/utils/getRoundedOffsets.js","../node_modules/popper.js/src/modifiers/applyStyle.js","../node_modules/popper.js/src/utils/setAttributes.js","../node_modules/popper.js/src/methods/defaults.js","../node_modules/popper.js/src/index.js","../node_modules/@material-ui/core/esm/Popper/Popper.js","../node_modules/@material-ui/core/esm/Portal/Portal.js","../node_modules/@material-ui/core/esm/Select/SelectInput.js","../node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js","../node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js","../node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js","../node_modules/@material-ui/core/esm/Select/Select.js","../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js","../node_modules/@material-ui/core/esm/internal/SwitchBase.js","../node_modules/@material-ui/core/esm/Switch/Switch.js","../node_modules/@material-ui/core/esm/FormLabel/FormLabel.js","../node_modules/@material-ui/core/esm/InputLabel/InputLabel.js","../node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js","../node_modules/@material-ui/core/esm/TextField/TextField.js","../node_modules/@material-ui/core/esm/Tooltip/Tooltip.js","../node_modules/@material-ui/core/esm/Typography/Typography.js","../node_modules/@material-ui/core/esm/styles/colorManipulator.js","../node_modules/@material-ui/core/esm/styles/createBreakpoints.js","../node_modules/@material-ui/core/esm/styles/createMixins.js","../node_modules/@material-ui/core/esm/colors/common.js","../node_modules/@material-ui/core/esm/colors/grey.js","../node_modules/@material-ui/core/esm/colors/indigo.js","../node_modules/@material-ui/core/esm/colors/pink.js","../node_modules/@material-ui/core/esm/colors/red.js","../node_modules/@material-ui/core/esm/colors/orange.js","../node_modules/@material-ui/core/esm/colors/blue.js","../node_modules/@material-ui/core/esm/colors/green.js","../node_modules/@material-ui/core/esm/styles/createPalette.js","../node_modules/@material-ui/core/esm/styles/createTypography.js","../node_modules/@material-ui/core/esm/styles/shadows.js","../node_modules/@material-ui/core/esm/styles/shape.js","../node_modules/@material-ui/core/esm/styles/createTheme.js","../node_modules/@material-ui/core/esm/styles/createSpacing.js","../node_modules/@material-ui/core/esm/styles/defaultTheme.js","../node_modules/@material-ui/core/esm/styles/makeStyles.js","../node_modules/@material-ui/core/esm/styles/styled.js","../node_modules/@material-ui/core/esm/styles/transitions.js","../node_modules/@material-ui/core/esm/styles/useTheme.js","../node_modules/@material-ui/core/esm/styles/withStyles.js","../node_modules/@material-ui/core/esm/styles/zIndex.js","../node_modules/@material-ui/core/esm/transitions/utils.js","../node_modules/@material-ui/core/esm/useMediaQuery/useMediaQuery.js","../node_modules/@material-ui/core/esm/utils/capitalize.js","../node_modules/@material-ui/core/esm/utils/createChainedFunction.js","../node_modules/@material-ui/core/esm/utils/createSvgIcon.js","../node_modules/@material-ui/core/esm/utils/debounce.js","../node_modules/@material-ui/core/esm/utils/getScrollbarSize.js","../node_modules/@material-ui/core/esm/utils/deprecatedPropType.js","../node_modules/@material-ui/core/esm/utils/requirePropFactory.js","../node_modules/@material-ui/core/esm/utils/unsupportedProp.js","../node_modules/@material-ui/core/esm/utils/isMuiElement.js","../node_modules/@material-ui/core/esm/utils/ownerDocument.js","../node_modules/@material-ui/core/esm/utils/ownerWindow.js","../node_modules/@material-ui/core/esm/utils/setRef.js","../node_modules/@material-ui/core/esm/utils/unstable_useId.js","../node_modules/@material-ui/core/esm/utils/useControlled.js","../node_modules/@material-ui/core/esm/utils/useEventCallback.js","../node_modules/@material-ui/core/esm/utils/useForkRef.js","../node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js","../node_modules/@material-ui/core/styles/colorManipulator.js","../node_modules/@material-ui/core/styles/createBreakpoints.js","../node_modules/@material-ui/core/styles/createMixins.js","../node_modules/@material-ui/core/styles/createPalette.js","../node_modules/@material-ui/core/styles/createSpacing.js","../node_modules/@material-ui/core/styles/createTheme.js","../node_modules/@material-ui/core/styles/createTypography.js","../node_modules/@material-ui/core/styles/defaultTheme.js","../node_modules/@material-ui/core/styles/shadows.js","../node_modules/@material-ui/core/styles/shape.js","../node_modules/@material-ui/core/styles/transitions.js","../node_modules/@material-ui/core/styles/useTheme.js","../node_modules/@material-ui/core/styles/withStyles.js","../node_modules/@material-ui/core/styles/zIndex.js","../node_modules/@material-ui/core/utils/capitalize.js","../node_modules/@material-ui/core/utils/deprecatedPropType.js","../node_modules/@material-ui/core/utils/setRef.js","../node_modules/@material-ui/core/utils/unstable_useId.js","../node_modules/@material-ui/core/utils/useControlled.js","../node_modules/@material-ui/core/utils/useForkRef.js","../node_modules/@material-ui/core/utils/useIsFocusVisible.js","../node_modules/@material-ui/icons/BugReport.js","../node_modules/@material-ui/icons/Close.js","../node_modules/@material-ui/icons/FileCopy.js","../node_modules/@material-ui/icons/GetApp.js","../node_modules/@material-ui/icons/Layers.js","../node_modules/@material-ui/icons/Map.js","../node_modules/@material-ui/icons/QuestionAnswer.js","../node_modules/@material-ui/icons/Settings.js","../node_modules/@material-ui/icons/utils/createSvgIcon.js","../node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js","../node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js","../node_modules/@material-ui/styles/esm/ThemeProvider/nested.js","../node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js","../node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js","../node_modules/@material-ui/styles/esm/createStyles/createStyles.js","../node_modules/@material-ui/styles/esm/ServerStyleSheets/ServerStyleSheets.js","../node_modules/@material-ui/styles/esm/withTheme/withTheme.js","../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","../node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","../node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","../node_modules/hyphenate-style-name/index.js","../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","../node_modules/css-vendor/dist/css-vendor.esm.js","../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","../node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js","../node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js","../node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js","../node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js","../node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js","../node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js","../node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js","../node_modules/@material-ui/styles/esm/styled/styled.js","../node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js","../node_modules/@material-ui/styles/esm/useTheme/useTheme.js","../node_modules/@material-ui/styles/esm/withStyles/withStyles.js","../node_modules/@material-ui/system/esm/borders.js","../node_modules/@material-ui/system/esm/breakpoints.js","../node_modules/@material-ui/system/esm/compose.js","../node_modules/@material-ui/system/esm/display.js","../node_modules/@material-ui/system/esm/flexbox.js","../node_modules/@material-ui/system/esm/grid.js","../node_modules/@material-ui/system/esm/merge.js","../node_modules/@material-ui/system/esm/palette.js","../node_modules/@material-ui/system/esm/positions.js","../node_modules/@material-ui/system/esm/shadows.js","../node_modules/@material-ui/system/esm/sizing.js","../node_modules/@material-ui/system/esm/spacing.js","../node_modules/@material-ui/system/esm/memoize.js","../node_modules/@material-ui/system/esm/style.js","../node_modules/@material-ui/system/esm/styleFunctionSx.js","../node_modules/@material-ui/system/esm/typography.js","../node_modules/@material-ui/utils/esm/deepmerge.js","../node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js","../node_modules/@material-ui/utils/esm/chainPropTypes.js","../node_modules/@material-ui/utils/esm/elementAcceptingRef.js","../node_modules/@material-ui/utils/esm/elementTypeAcceptingRef.js","../node_modules/@material-ui/utils/esm/exactProp.js","../node_modules/@material-ui/utils/esm/getDisplayName.js","../node_modules/@material-ui/utils/esm/HTMLElementType.js","../node_modules/@material-ui/utils/esm/ponyfillGlobal.js","../node_modules/@material-ui/utils/esm/refType.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/utils.js","../node_modules/bowser/es5.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/classnames/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/connected-react-router/esm/actions.js","../node_modules/connected-react-router/esm/selectors.js","../node_modules/connected-react-router/esm/ConnectedRouter.js","../node_modules/connected-react-router/esm/reducer.js","../node_modules/connected-react-router/esm/structure/plain/index.js","../node_modules/connected-react-router/esm/structure/plain/getIn.js","../node_modules/connected-react-router/esm/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","../node_modules/date-fns/esm/locale/fr/index.js","../node_modules/date-fns/esm/locale/fr/_lib/match/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/define-data-property/index.js","../node_modules/dompurify/src/utils.js","../node_modules/dompurify/src/tags.js","../node_modules/dompurify/src/attrs.js","../node_modules/dompurify/src/regexp.js","../node_modules/dompurify/src/purify.js","../node_modules/es-define-property/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/index.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/get-intrinsic/index.js","../node_modules/gopd/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/has-proto/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/hasown/index.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/invariant/browser.js","../node_modules/is-in-browser/dist/module.js","../node_modules/json-logic-js/logic.js","../node_modules/jss/dist/jss.esm.js","../node_modules/jsts/src/org/locationtech/jts/util/NumberUtil.js","../node_modules/jsts/src/java/lang/Exception.js","../node_modules/jsts/src/java/lang/IllegalArgumentException.js","../node_modules/jsts/src/java/lang/Long.js","../node_modules/jsts/src/java/lang/Double.js","../node_modules/jsts/src/java/lang/Comparable.js","../node_modules/jsts/src/java/lang/Cloneable.js","../node_modules/jsts/src/java/util/Comparator.js","../node_modules/jsts/src/java/io/Serializable.js","../node_modules/jsts/src/java/lang/RuntimeException.js","../node_modules/jsts/src/org/locationtech/jts/util/AssertionFailedException.js","../node_modules/jsts/src/org/locationtech/jts/util/Assert.js","../node_modules/jsts/src/org/locationtech/jts/geom/Coordinate.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateXY.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateXYM.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateXYZM.js","../node_modules/jsts/src/hasInterface.js","../node_modules/jsts/src/java/util/Collection.js","../node_modules/jsts/src/java/lang/IndexOutOfBoundsException.js","../node_modules/jsts/src/java/util/List.js","../node_modules/jsts/src/java/util/NoSuchElementException.js","../node_modules/jsts/src/java/util/ArrayList.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateList.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateSequenceFilter.js","../node_modules/jsts/src/org/locationtech/jts/geom/Envelope.js","../node_modules/jsts/src/java/lang/StringBuffer.js","../node_modules/jsts/src/java/lang/Integer.js","../node_modules/jsts/src/java/lang/Character.js","../node_modules/jsts/src/org/locationtech/jts/math/DD.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/CGAlgorithmsDD.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateSequence.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/Orientation.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/Intersection.js","../node_modules/jsts/src/java/lang/System.js","../node_modules/jsts/src/org/locationtech/jts/math/MathUtil.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/Distance.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateSequenceFactory.js","../node_modules/jsts/src/org/locationtech/jts/geom/GeometryComponentFilter.js","../node_modules/jsts/src/org/locationtech/jts/geom/Geometry.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateFilter.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/Length.js","../node_modules/jsts/src/org/locationtech/jts/geom/Lineal.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateSequences.js","../node_modules/jsts/src/java/lang/UnsupportedOperationException.js","../node_modules/jsts/src/org/locationtech/jts/geom/Dimension.js","../node_modules/jsts/src/org/locationtech/jts/geom/GeometryFilter.js","../node_modules/jsts/src/org/locationtech/jts/geom/LineString.js","../node_modules/jsts/src/org/locationtech/jts/geom/Puntal.js","../node_modules/jsts/src/org/locationtech/jts/geom/Point.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/Area.js","../node_modules/jsts/src/java/util/Arrays.js","../node_modules/jsts/src/org/locationtech/jts/geom/Polygonal.js","../node_modules/jsts/src/org/locationtech/jts/geom/Polygon.js","../node_modules/jsts/src/java/util/Set.js","../node_modules/jsts/src/java/util/SortedSet.js","../node_modules/jsts/src/java/util/TreeSet.js","../node_modules/jsts/src/org/locationtech/jts/geom/GeometryCollection.js","../node_modules/jsts/src/org/locationtech/jts/geom/MultiPoint.js","../node_modules/jsts/src/org/locationtech/jts/geom/LinearRing.js","../node_modules/jsts/src/org/locationtech/jts/geom/Coordinates.js","../node_modules/jsts/src/org/locationtech/jts/geom/CoordinateArrays.js","../node_modules/jsts/src/java/lang/StringBuilder.js","../node_modules/jsts/src/org/locationtech/jts/geom/impl/CoordinateArraySequence.js","../node_modules/jsts/src/org/locationtech/jts/geom/impl/CoordinateArraySequenceFactory.js","../node_modules/jsts/src/org/locationtech/jts/geom/MultiPolygon.js","../node_modules/jsts/src/java/util/Map.js","../node_modules/jsts/src/java/util/HashSet.js","../node_modules/jsts/src/java/util/HashMap.js","../node_modules/jsts/src/org/locationtech/jts/geom/PrecisionModel.js","../node_modules/jsts/src/org/locationtech/jts/geom/MultiLineString.js","../node_modules/jsts/src/org/locationtech/jts/geom/GeometryFactory.js","../node_modules/jsts/src/org/locationtech/jts/io/WKTParser.js","../node_modules/jsts/src/org/locationtech/jts/io/WKTWriter.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/LineIntersector.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/RobustLineIntersector.js","../node_modules/jsts/src/org/locationtech/jts/geom/LineSegment.js","../node_modules/jsts/src/org/locationtech/jts/geom/Location.js","../node_modules/jsts/src/org/locationtech/jts/geom/IntersectionMatrix.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/Angle.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/NotRepresentableException.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/HCoordinate.js","../node_modules/jsts/src/org/locationtech/jts/geom/Triangle.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/NoninvertibleTransformationException.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/AffineTransformation.js","../node_modules/jsts/src/org/locationtech/jts/math/Matrix.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/AffineTransformationBuilder.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/AffineTransformationFactory.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/ComponentCoordinateExtracter.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/GeometryCollectionMapper.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/GeometryCombiner.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/GeometryEditor.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/GeometryExtracter.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/GeometryMapper.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/GeometryTransformer.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/LineStringExtracter.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/LinearComponentExtracter.js","../node_modules/jsts/src/java/util/Collections.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/PointExtracter.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/PolygonExtracter.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/ShortCircuitedGeometryVisitor.js","../node_modules/jsts/src/org/locationtech/jts/util/GeometricShapeFactory.js","../node_modules/jsts/src/org/locationtech/jts/geom/util/SineStarFactory.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/distance/PointPairDistance.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/distance/DistanceToPoint.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/distance/DiscreteHausdorffDistance.js","../node_modules/jsts/src/org/locationtech/jts/index/ItemVisitor.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/locate/PointOnGeometryLocator.js","../node_modules/jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeNode.js","../node_modules/jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeLeafNode.js","../node_modules/jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeBranchNode.js","../node_modules/jsts/src/org/locationtech/jts/index/intervalrtree/SortedPackedIntervalRTree.js","../node_modules/jsts/src/org/locationtech/jts/index/ArrayListVisitor.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/RayCrossingCounter.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/locate/IndexedPointInAreaLocator.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/PointLocation.js","../node_modules/jsts/src/java/util/Iterator.js","../node_modules/jsts/src/org/locationtech/jts/geom/GeometryCollectionIterator.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/locate/SimplePointInAreaLocator.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/match/SimilarityMeasure.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/match/HausdorffSimilarityMeasure.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/match/AreaSimilarityMeasure.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/match/SimilarityMeasureCombiner.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/Centroid.js","../node_modules/jsts/src/java/util/EmptyStackException.js","../node_modules/jsts/src/java/util/Stack.js","../node_modules/jsts/src/org/locationtech/jts/util/UniqueCoordinateArrayFilter.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/ConvexHull.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/InteriorPointArea.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/InteriorPointLine.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/InteriorPointPoint.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/BoundaryNodeRule.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/PointLocator.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/MinimumBoundingCircle.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/MinimumDiameter.js","../node_modules/jsts/src/org/locationtech/jts/densify/Densifier.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/Quadrant.js","../node_modules/jsts/src/org/locationtech/jts/edgegraph/HalfEdge.js","../node_modules/jsts/src/org/locationtech/jts/edgegraph/MarkHalfEdge.js","../node_modules/jsts/src/org/locationtech/jts/edgegraph/EdgeGraph.js","../node_modules/jsts/src/org/locationtech/jts/dissolve/DissolveHalfEdge.js","../node_modules/jsts/src/org/locationtech/jts/dissolve/DissolveEdgeGraph.js","../node_modules/jsts/src/org/locationtech/jts/dissolve/LineDissolver.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/Position.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChain.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/index/SweepLineEvent.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/index/SegmentIntersector.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/index/SimpleMCSweepLineIntersector.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/index/EdgeSetIntersector.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/TopologyLocation.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/Label.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/EdgeIntersection.js","../node_modules/jsts/src/java/util/SortedMap.js","../node_modules/jsts/src/java/util/TreeMap.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/EdgeIntersectionList.js","../node_modules/jsts/src/org/locationtech/jts/util/IntArrayList.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChainIndexer.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChainEdge.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/Depth.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/GraphComponent.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/Edge.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/Node.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/NodeMap.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/EdgeEnd.js","../node_modules/jsts/src/org/locationtech/jts/geom/TopologyException.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/DirectedEdge.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/NodeFactory.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/PlanarGraph.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/GeometryGraph.js","../node_modules/jsts/src/org/locationtech/jts/index/kdtree/KdNodeVisitor.js","../node_modules/jsts/src/org/locationtech/jts/index/kdtree/KdNode.js","../node_modules/jsts/src/org/locationtech/jts/index/kdtree/KdTree.js","../node_modules/jsts/src/org/locationtech/jts/index/quadtree/NodeBase.js","../node_modules/jsts/src/org/locationtech/jts/index/quadtree/DoubleBits.js","../node_modules/jsts/src/org/locationtech/jts/index/quadtree/Key.js","../node_modules/jsts/src/org/locationtech/jts/index/quadtree/Node.js","../node_modules/jsts/src/org/locationtech/jts/index/quadtree/IntervalSize.js","../node_modules/jsts/src/org/locationtech/jts/index/quadtree/Root.js","../node_modules/jsts/src/org/locationtech/jts/index/SpatialIndex.js","../node_modules/jsts/src/org/locationtech/jts/index/quadtree/Quadtree.js","../node_modules/jsts/src/org/locationtech/jts/index/strtree/Boundable.js","../node_modules/jsts/src/org/locationtech/jts/index/strtree/ItemBoundable.js","../node_modules/jsts/src/org/locationtech/jts/util/PriorityQueue.js","../node_modules/jsts/src/org/locationtech/jts/index/strtree/AbstractNode.js","../node_modules/jsts/src/org/locationtech/jts/index/strtree/EnvelopeDistance.js","../node_modules/jsts/src/org/locationtech/jts/index/strtree/BoundablePair.js","../node_modules/jsts/src/org/locationtech/jts/index/strtree/AbstractSTRtree.js","../node_modules/jsts/src/org/locationtech/jts/index/strtree/ItemDistance.js","../node_modules/jsts/src/org/locationtech/jts/index/strtree/STRtree.js","../node_modules/jsts/src/org/locationtech/jts/io/GeoJSONParser.js","../node_modules/jsts/src/org/locationtech/jts/io/OL3Parser.js","../node_modules/jsts/src/org/locationtech/jts/io/GeoJSONReader.js","../node_modules/jsts/src/org/locationtech/jts/io/GeoJSONWriter.js","../node_modules/jsts/src/org/locationtech/jts/io/WKTReader.js","../node_modules/jsts/src/org/locationtech/jts/noding/SegmentPointComparator.js","../node_modules/jsts/src/org/locationtech/jts/noding/SegmentNode.js","../node_modules/jsts/src/org/locationtech/jts/noding/SegmentNodeList.js","../node_modules/jsts/src/org/locationtech/jts/noding/Octant.js","../node_modules/jsts/src/org/locationtech/jts/noding/SegmentString.js","../node_modules/jsts/src/org/locationtech/jts/noding/NodableSegmentString.js","../node_modules/jsts/src/org/locationtech/jts/noding/NodedSegmentString.js","../node_modules/jsts/src/org/locationtech/jts/index/chain/MonotoneChainOverlapAction.js","../node_modules/jsts/src/org/locationtech/jts/index/chain/MonotoneChain.js","../node_modules/jsts/src/org/locationtech/jts/index/chain/MonotoneChainBuilder.js","../node_modules/jsts/src/org/locationtech/jts/noding/Noder.js","../node_modules/jsts/src/org/locationtech/jts/noding/SinglePassNoder.js","../node_modules/jsts/src/org/locationtech/jts/noding/MCIndexNoder.js","../node_modules/jsts/src/org/locationtech/jts/noding/ScaledNoder.js","../node_modules/jsts/src/org/locationtech/jts/operation/BoundaryOp.js","../node_modules/jsts/src/org/locationtech/jts/operation/IsSimpleOp.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/BufferParameters.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/RightmostEdgeFinder.js","../node_modules/jsts/src/java/util/LinkedList.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/BufferSubgraph.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/EdgeRing.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/MinimalEdgeRing.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/MaximalEdgeRing.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/PolygonBuilder.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/BufferInputLineSimplifier.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/OffsetSegmentString.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/OffsetSegmentGenerator.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/OffsetCurveBuilder.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/SubgraphDepthLocater.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/OffsetCurveSetBuilder.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/EdgeEndStar.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/DirectedEdgeStar.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/OverlayNodeFactory.js","../node_modules/jsts/src/org/locationtech/jts/noding/OrientedCoordinateArray.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/EdgeList.js","../node_modules/jsts/src/org/locationtech/jts/noding/SegmentIntersector.js","../node_modules/jsts/src/org/locationtech/jts/noding/IntersectionAdder.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/BufferBuilder.js","../node_modules/jsts/src/org/locationtech/jts/noding/NodingValidator.js","../node_modules/jsts/src/org/locationtech/jts/noding/snapround/HotPixel.js","../node_modules/jsts/src/org/locationtech/jts/index/chain/MonotoneChainSelectAction.js","../node_modules/jsts/src/org/locationtech/jts/noding/snapround/MCIndexPointSnapper.js","../node_modules/jsts/src/org/locationtech/jts/noding/InteriorIntersectionFinderAdder.js","../node_modules/jsts/src/org/locationtech/jts/noding/snapround/MCIndexSnapRounder.js","../node_modules/jsts/src/org/locationtech/jts/operation/buffer/BufferOp.js","../node_modules/jsts/src/org/locationtech/jts/operation/distance/GeometryLocation.js","../node_modules/jsts/src/org/locationtech/jts/operation/distance/ConnectedElementLocationFilter.js","../node_modules/jsts/src/org/locationtech/jts/operation/distance/DistanceOp.js","../node_modules/jsts/src/org/locationtech/jts/operation/linemerge/EdgeString.js","../node_modules/jsts/src/org/locationtech/jts/planargraph/GraphComponent.js","../node_modules/jsts/src/org/locationtech/jts/planargraph/DirectedEdge.js","../node_modules/jsts/src/org/locationtech/jts/operation/linemerge/LineMergeDirectedEdge.js","../node_modules/jsts/src/org/locationtech/jts/planargraph/Edge.js","../node_modules/jsts/src/org/locationtech/jts/planargraph/DirectedEdgeStar.js","../node_modules/jsts/src/org/locationtech/jts/planargraph/Node.js","../node_modules/jsts/src/org/locationtech/jts/operation/linemerge/LineMergeEdge.js","../node_modules/jsts/src/org/locationtech/jts/planargraph/NodeMap.js","../node_modules/jsts/src/org/locationtech/jts/planargraph/PlanarGraph.js","../node_modules/jsts/src/org/locationtech/jts/operation/linemerge/LineMergeGraph.js","../node_modules/jsts/src/org/locationtech/jts/operation/linemerge/LineMerger.js","../node_modules/jsts/src/org/locationtech/jts/planargraph/Subgraph.js","../node_modules/jsts/src/org/locationtech/jts/planargraph/algorithm/ConnectedSubgraphFinder.js","../node_modules/jsts/src/org/locationtech/jts/operation/linemerge/LineSequencer.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/snap/LineStringSnapper.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/snap/GeometrySnapper.js","../node_modules/jsts/src/org/locationtech/jts/noding/BasicSegmentString.js","../node_modules/jsts/src/org/locationtech/jts/noding/NodingIntersectionFinder.js","../node_modules/jsts/src/org/locationtech/jts/noding/FastNodingValidator.js","../node_modules/jsts/src/org/locationtech/jts/geomgraph/EdgeNodingValidator.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/LineBuilder.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/PointBuilder.js","../node_modules/jsts/src/org/locationtech/jts/precision/CommonBits.js","../node_modules/jsts/src/org/locationtech/jts/precision/CommonBitsRemover.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/snap/SnapOverlayOp.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/snap/SnapIfNeededOverlayOp.js","../node_modules/jsts/src/org/locationtech/jts/operation/GeometryGraphOperation.js","../node_modules/jsts/src/org/locationtech/jts/operation/overlay/OverlayOp.js","../node_modules/jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeDirectedEdge.js","../node_modules/jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeEdge.js","../node_modules/jsts/src/org/locationtech/jts/operation/valid/ConnectedInteriorTester.js","../node_modules/jsts/src/org/locationtech/jts/operation/relate/EdgeEndBuilder.js","../node_modules/jsts/src/org/locationtech/jts/operation/relate/EdgeEndBundle.js","../node_modules/jsts/src/org/locationtech/jts/operation/relate/EdgeEndBundleStar.js","../node_modules/jsts/src/org/locationtech/jts/operation/relate/RelateNode.js","../node_modules/jsts/src/org/locationtech/jts/operation/relate/RelateNodeFactory.js","../node_modules/jsts/src/org/locationtech/jts/operation/relate/RelateNodeGraph.js","../node_modules/jsts/src/org/locationtech/jts/operation/valid/ConsistentAreaTester.js","../node_modules/jsts/src/org/locationtech/jts/operation/valid/IndexedNestedRingTester.js","../node_modules/jsts/src/org/locationtech/jts/operation/valid/TopologyValidationError.js","../node_modules/jsts/src/org/locationtech/jts/operation/valid/IsValidOp.js","../node_modules/jsts/src/org/locationtech/jts/operation/polygonize/EdgeRing.js","../node_modules/jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeGraph.js","../node_modules/jsts/src/org/locationtech/jts/operation/polygonize/HoleAssigner.js","../node_modules/jsts/src/org/locationtech/jts/operation/polygonize/Polygonizer.js","../node_modules/jsts/src/org/locationtech/jts/operation/relate/RelateComputer.js","../node_modules/jsts/src/org/locationtech/jts/operation/predicate/RectangleContains.js","../node_modules/jsts/src/org/locationtech/jts/algorithm/RectangleLineIntersector.js","../node_modules/jsts/src/org/locationtech/jts/operation/predicate/RectangleIntersects.js","../node_modules/jsts/src/org/locationtech/jts/operation/relate/RelateOp.js","../node_modules/jsts/src/org/locationtech/jts/operation/union/PointGeometryUnion.js","../node_modules/jsts/src/org/locationtech/jts/operation/union/InputExtracter.js","../node_modules/jsts/src/org/locationtech/jts/operation/union/OverlapUnion.js","../node_modules/jsts/src/org/locationtech/jts/operation/union/CascadedPolygonUnion.js","../node_modules/jsts/src/org/locationtech/jts/operation/union/UnaryUnionOp.js","../node_modules/jsts/src/org/locationtech/jts/precision/PrecisionReducerCoordinateOperation.js","../node_modules/jsts/src/org/locationtech/jts/precision/GeometryPrecisionReducer.js","../node_modules/jsts/src/org/locationtech/jts/simplify/DouglasPeuckerLineSimplifier.js","../node_modules/jsts/src/org/locationtech/jts/simplify/DouglasPeuckerSimplifier.js","../node_modules/jsts/src/org/locationtech/jts/simplify/TaggedLineSegment.js","../node_modules/jsts/src/org/locationtech/jts/simplify/TaggedLineString.js","../node_modules/jsts/src/org/locationtech/jts/simplify/LineSegmentIndex.js","../node_modules/jsts/src/org/locationtech/jts/simplify/TaggedLineStringSimplifier.js","../node_modules/jsts/src/org/locationtech/jts/simplify/TaggedLinesSimplifier.js","../node_modules/jsts/src/org/locationtech/jts/simplify/TopologyPreservingSimplifier.js","../node_modules/jsts/src/org/locationtech/jts/simplify/VWLineSimplifier.js","../node_modules/jsts/src/org/locationtech/jts/simplify/VWSimplifier.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/SplitSegment.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/ConstraintSplitPointFinder.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/NonEncroachingSplitPointFinder.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/quadedge/TrianglePredicate.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/quadedge/Vertex.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/ConstraintVertex.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdge.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/IncrementalDelaunayTriangulator.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeLocator.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/quadedge/LastFoundQuadEdgeLocator.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/quadedge/LocateFailureException.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/quadedge/TriangleVisitor.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeSubdivision.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/Segment.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/ConstraintEnforcementException.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/ConformingDelaunayTriangulator.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/DelaunayTriangulationBuilder.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/ConformingDelaunayTriangulationBuilder.js","../node_modules/jsts/src/org/locationtech/jts/triangulate/VoronoiDiagramBuilder.js","../node_modules/jsts/src/org/locationtech/jts/linearref/LinearIterator.js","../node_modules/jsts/src/org/locationtech/jts/linearref/LengthIndexOfPoint.js","../node_modules/jsts/src/org/locationtech/jts/linearref/LinearLocation.js","../node_modules/jsts/src/org/locationtech/jts/linearref/LocationIndexOfPoint.js","../node_modules/jsts/src/org/locationtech/jts/linearref/LocationIndexOfLine.js","../node_modules/jsts/src/org/locationtech/jts/linearref/LengthLocationMap.js","../node_modules/jsts/src/org/locationtech/jts/linearref/LinearGeometryBuilder.js","../node_modules/jsts/src/org/locationtech/jts/linearref/ExtractLineByLocation.js","../node_modules/jsts/src/org/locationtech/jts/linearref/LengthIndexedLine.js","../node_modules/jsts/src/org/locationtech/jts/linearref/LocationIndexedLine.js","../node_modules/jsts/src/org/locationtech/jts/util/CollectionUtil.js","../node_modules/jsts/src/org/locationtech/jts/util/CoordinateArrayFilter.js","../node_modules/jsts/src/org/locationtech/jts/util/CoordinateCountFilter.js","../node_modules/jsts/src/org/locationtech/jts/util/ObjectCounter.js","../node_modules/jsts/src/java/io/PrintStream.js","../node_modules/jsts/src/java/io/StringReader.js","../node_modules/jsts/src/java/io/ByteArrayOutputStream.js","../node_modules/jsts/src/java/io/IOException.js","../node_modules/jsts/src/java/io/LineNumberReader.js","../node_modules/jsts/src/org/locationtech/jts/util/StringUtil.js","../node_modules/jsts/src/org/locationtech/jts/operation/union/UnionOp.js","../node_modules/jsts/src/org/locationtech/jts/monkey.js","../node_modules/jsts/src/jsts.js","../node_modules/linq/linq.js","../node_modules/lodash.isequalwith/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/eq.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isMap.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSet.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/lodash.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/loglevel-plugin-remote/lib/loglevel-plugin-remote.js","../node_modules/loglevel/lib/loglevel.js","../node_modules/object-assign/index.js","../node_modules/object-inspect/index.js","../node_modules/path-to-regexp/index.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/index.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/utils.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-gtm-module/dist/Snippets.js","../node_modules/react-gtm-module/dist/TagManager.js","../node_modules/react-gtm-module/dist/index.js","../node_modules/react-gtm-module/dist/utils/warn.js","../node_modules/react-intl/lib/src/components/createFormattedComponent.js","../node_modules/react-intl/lib/index.js","../node_modules/react-intl/lib/src/components/injectIntl.js","../node_modules/react-intl/lib/src/components/message.js","../node_modules/react-intl/lib/src/components/useIntl.js","../node_modules/react-intl/lib/src/utils.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-json-view/dist/main.js","../node_modules/react-loaders/dist/react-loaders.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/utils/bindActionCreators.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/react-router-navigation-prompt/es/index.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/Prompt.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/withRouter.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react-toastify/esm/react-toastify.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/redux-devtools-extension/index.js","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/redux-persist/lib/storage/createWebStorage.js","../node_modules/redux-persist/lib/storage/getStorage.js","../node_modules/redux-persist/lib/storage/index.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/sat/SAT.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/set-function-length/index.js","../node_modules/shallowequal/index.js","../node_modules/side-channel/index.js","../node_modules/ua-parser-js/src/ua-parser.js","../node_modules/uuid/lib/bytesToUuid.js","../node_modules/uuid/lib/rng-browser.js","../node_modules/uuid/v4.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/interopRequireWildcard.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/tslib/tslib.es6.mjs","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@datadog/browser-core/src/tools/display.ts","../node_modules/@datadog/browser-core/src/tools/catchUserErrors.ts","../node_modules/@datadog/browser-core/src/tools/monitor.ts","../node_modules/@datadog/browser-core/src/tools/utils/polyfills.ts","../node_modules/@datadog/browser-core/src/tools/getGlobalObject.ts","../node_modules/@datadog/browser-core/src/tools/utils/byteUtils.ts","../node_modules/@datadog/browser-core/src/tools/getZoneJsOriginalValue.ts","../node_modules/@datadog/browser-core/src/tools/timer.ts","../node_modules/@datadog/browser-core/src/tools/utils/functionUtils.ts","../node_modules/@datadog/browser-core/src/tools/utils/typeUtils.ts","../node_modules/@datadog/browser-core/src/tools/mergeInto.ts","../node_modules/@datadog/browser-core/src/tools/serialisation/jsonStringify.ts","../node_modules/@datadog/browser-core/src/tools/serialisation/sanitize.ts","../node_modules/@datadog/browser-core/src/tools/observable.ts","../node_modules/@datadog/browser-core/src/domain/context/heavyCustomerDataWarning.ts","../node_modules/@datadog/browser-core/src/domain/context/contextManager.ts","../node_modules/@datadog/browser-core/src/tools/boundedBuffer.ts","../node_modules/@datadog/browser-core/src/tools/utils/numberUtils.ts","../node_modules/@datadog/browser-core/src/tools/utils/timeUtils.ts","../node_modules/@datadog/browser-core/src/tools/utils/stringUtils.ts","../node_modules/@datadog/browser-core/src/browser/cookie.ts","../node_modules/@datadog/browser-core/src/domain/synthetics/syntheticsWorkerValues.ts","../node_modules/@datadog/browser-core/src/tools/experimentalFeatures.ts","../node_modules/@datadog/browser-core/src/transport/eventBridge.ts","../node_modules/@datadog/browser-core/src/browser/addEventListener.ts","../node_modules/@datadog/browser-core/src/domain/context/storedContextManager.ts","../node_modules/@datadog/browser-core/src/tools/encoder.ts","../node_modules/@datadog/browser-core/src/domain/error/computeStackTrace.ts","../node_modules/@datadog/browser-core/src/domain/error/error.ts","../node_modules/@datadog/browser-core/src/domain/user/user.ts","../node_modules/@datadog/browser-core/src/tools/utils/objectUtils.ts","../node_modules/@datadog/browser-core/src/domain/session/sessionConstants.ts","../node_modules/@datadog/browser-core/src/tools/utils/browserDetection.ts","../node_modules/@datadog/browser-core/src/domain/session/storeStrategies/sessionStoreStrategy.ts","../node_modules/@datadog/browser-core/src/domain/session/sessionState.ts","../node_modules/@datadog/browser-core/src/domain/session/oldCookiesMigration.ts","../node_modules/@datadog/browser-core/src/domain/session/storeStrategies/sessionInCookie.ts","../node_modules/@datadog/browser-core/src/domain/session/storeStrategies/sessionInLocalStorage.ts","../node_modules/@datadog/browser-core/src/domain/session/sessionStoreOperations.ts","../node_modules/@datadog/browser-core/src/domain/session/sessionStore.ts","../node_modules/@datadog/browser-core/src/tools/utils/urlPolyfill.ts","../node_modules/@datadog/browser-core/src/domain/configuration/intakeSites.ts","../node_modules/@datadog/browser-core/src/domain/configuration/endpointBuilder.ts","../node_modules/@datadog/browser-core/src/domain/configuration/tags.ts","../node_modules/@datadog/browser-core/src/domain/configuration/transportConfiguration.ts","../node_modules/@datadog/browser-core/src/domain/configuration/configuration.ts","../node_modules/@datadog/browser-core/src/tools/matchOption.ts","../node_modules/@datadog/browser-rum-core/src/domain/tracing/tracer.ts","../node_modules/@datadog/browser-rum-core/src/domain/configuration.ts","../node_modules/@datadog/browser-rum-core/src/domain/contexts/commonContext.ts","../node_modules/@datadog/browser-core/src/tools/sendToExtension.ts","../node_modules/@datadog/browser-core/src/domain/telemetry/rawTelemetryEvent.types.ts","../node_modules/@datadog/browser-core/src/domain/telemetry/telemetry.ts","../node_modules/@datadog/browser-core/src/browser/pageExitObservable.ts","../node_modules/@datadog/browser-rum-core/src/browser/domMutationObservable.ts","../node_modules/@datadog/browser-core/src/browser/runOnReadyState.ts","../node_modules/@datadog/browser-rum-core/src/domain/resource/resourceUtils.ts","../node_modules/@datadog/browser-rum-core/src/browser/htmlDomUtils.ts","../node_modules/@datadog/browser-rum-core/src/domain/tracing/getDocumentTraceId.ts","../node_modules/@datadog/browser-rum-core/src/browser/performanceCollection.ts","../node_modules/@datadog/browser-core/src/domain/error/error.types.ts","../node_modules/@datadog/browser-core/src/domain/eventRateLimiter/createEventRateLimiter.ts","../node_modules/@datadog/browser-rum-core/src/domain/contexts/syntheticsContext.ts","../node_modules/@datadog/browser-rum-core/src/domain/limitModification.ts","../node_modules/@datadog/browser-rum-core/src/domain/assembly.ts","../node_modules/@datadog/browser-rum-core/src/domain/contexts/ciTestContext.ts","../node_modules/@datadog/browser-core/src/tools/abstractLifeCycle.ts","../node_modules/@datadog/browser-core/src/browser/xhrObservable.ts","../node_modules/@datadog/browser-rum-core/src/domain/lifeCycle.ts","../node_modules/@datadog/browser-core/src/tools/valueHistory.ts","../node_modules/@datadog/browser-rum-core/src/domain/contexts/viewContexts.ts","../node_modules/@datadog/browser-core/src/tools/instrumentMethod.ts","../node_modules/@datadog/browser-core/src/browser/fetchObservable.ts","../node_modules/@datadog/browser-rum-core/src/domain/requestCollection.ts","../node_modules/@datadog/browser-core/src/tools/utils/responseUtils.ts","../node_modules/@datadog/browser-core/src/tools/readBytesFromStream.ts","../node_modules/@datadog/browser-rum-core/src/domain/trackEventCounts.ts","../node_modules/@datadog/browser-rum-core/src/domain/waitPageActivityEnd.ts","../node_modules/@datadog/browser-rum-core/src/domain/action/getActionNameFromElement.ts","../node_modules/@datadog/browser-rum-core/src/domain/getSelectorFromElement.ts","../node_modules/@datadog/browser-rum-core/src/domain/action/clickChain.ts","../node_modules/@datadog/browser-rum-core/src/domain/action/listenActionEvents.ts","../node_modules/@datadog/browser-rum-core/src/domain/action/computeFrustration.ts","../node_modules/@datadog/browser-rum-core/src/domain/action/trackClickActions.ts","../node_modules/@datadog/browser-rum-core/src/domain/action/actionCollection.ts","../node_modules/@datadog/browser-core/src/domain/error/trackRuntimeError.ts","../node_modules/@datadog/browser-core/src/domain/console/consoleObservable.ts","../node_modules/@datadog/browser-core/src/domain/report/reportObservable.ts","../node_modules/@datadog/browser-rum-core/src/domain/error/errorCollection.ts","../node_modules/@datadog/browser-rum-core/src/domain/error/trackConsoleError.ts","../node_modules/@datadog/browser-rum-core/src/domain/error/trackReportError.ts","../node_modules/@datadog/browser-rum-core/src/domain/resource/matchRequestTiming.ts","../node_modules/@datadog/browser-rum-core/src/domain/resource/resourceCollection.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackFirstContentfulPaint.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackLargestContentfulPaint.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackInitialViewMetrics.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackNavigationTimings.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackFirstHidden.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackFirstInput.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackCumulativeLayoutShift.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/interactionCountPolyfill.ts","../node_modules/@datadog/browser-rum-core/src/browser/viewportObservable.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackInteractionToNextPaint.ts","../node_modules/@datadog/browser-rum-core/src/browser/scroll.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackScrollMetrics.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackCommonViewMetrics.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewMetrics/trackLoadingTime.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/trackViews.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/trackViewEventCounts.ts","../node_modules/@datadog/browser-rum-core/src/domain/view/viewCollection.ts","../node_modules/@datadog/browser-core/src/domain/session/sessionManager.ts","../node_modules/@datadog/browser-rum-core/src/domain/rumSessionManager.ts","../node_modules/@datadog/browser-core/src/transport/batch.ts","../node_modules/@datadog/browser-core/src/transport/sendWithRetryStrategy.ts","../node_modules/@datadog/browser-core/src/transport/httpRequest.ts","../node_modules/@datadog/browser-core/src/transport/flushController.ts","../node_modules/@datadog/browser-rum-core/src/transport/startRumBatch.ts","../node_modules/@datadog/browser-core/src/transport/startBatchWithReplica.ts","../node_modules/@datadog/browser-rum-core/src/domain/contexts/urlContexts.ts","../node_modules/@datadog/browser-rum-core/src/browser/locationChangeObservable.ts","../node_modules/@datadog/browser-rum-core/src/domain/contexts/featureFlagContext.ts","../node_modules/@datadog/browser-rum-core/src/domain/startCustomerDataTelemetry.ts","../node_modules/@datadog/browser-rum-core/src/domain/contexts/pageStateHistory.ts","../node_modules/@datadog/browser-rum-core/src/domain/getSessionReplayUrl.ts","../node_modules/@datadog/browser-rum/src/types/sessionReplayConstants.ts","../node_modules/@datadog/browser-rum/src/domain/record/assembly.ts","../node_modules/@datadog/browser-rum/src/constants.ts","../node_modules/@datadog/browser-rum/src/domain/record/privacy.ts","../node_modules/@datadog/browser-rum/src/domain/record/serialization/serializationUtils.ts","../node_modules/@datadog/browser-rum/src/domain/record/serialization/serializeStyleSheets.ts","../node_modules/@datadog/browser-rum/src/domain/record/serialization/serializeAttribute.ts","../node_modules/@datadog/browser-rum/src/domain/record/serialization/serializeAttributes.ts","../node_modules/@datadog/browser-rum/src/domain/record/serialization/serializeNode.ts","../node_modules/@datadog/browser-rum/src/domain/record/serialization/serializeDocument.ts","../node_modules/@datadog/browser-rum/src/domain/record/eventsUtils.ts","../node_modules/@datadog/browser-rum/src/domain/record/viewports.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/moveObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/scrollObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/mouseInteractionObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/inputObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/styleSheetObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/viewportResizeObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/mutationBatch.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/mutationObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/observers.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/recordIds.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/mediaInteractionObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/focusObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/observers/frustrationObserver.ts","../node_modules/@datadog/browser-rum/src/domain/record/shadowRootsController.ts","../node_modules/@datadog/browser-rum/src/domain/record/record.ts","../node_modules/@datadog/browser-rum/src/domain/record/elementsScrollPositions.ts","../node_modules/@datadog/browser-rum/src/domain/replayStats.ts","../node_modules/@datadog/browser-rum/src/domain/segmentCollection/segment.ts","../node_modules/@datadog/browser-rum/src/domain/segmentCollection/segmentCollection.ts","../node_modules/@datadog/browser-rum/src/domain/segmentCollection/buildReplayPayload.ts","../node_modules/@datadog/browser-rum/src/boot/isBrowserSupported.ts","../node_modules/@datadog/browser-rum/src/domain/getSessionReplayLink.ts","../node_modules/@datadog/browser-rum/src/domain/deflate/deflateEncoder.ts","../node_modules/@datadog/browser-rum/src/domain/deflate/deflateWorker.ts","../node_modules/@datadog/browser-rum/src/entries/main.ts","../node_modules/@datadog/browser-rum/src/boot/recorderApi.ts","../node_modules/@datadog/browser-rum/src/boot/startRecording.ts","../node_modules/@datadog/browser-rum-core/src/boot/rumPublicApi.ts","../node_modules/@datadog/browser-core/src/boot/init.ts","../node_modules/@datadog/browser-rum-core/src/boot/startRum.ts","../node_modules/@datadog/browser-rum-core/src/transport/startRumEventBridge.ts","../node_modules/@datadog/browser-rum-core/src/domain/contexts/displayContext.ts","../node_modules/@datadog/browser-rum-core/src/domain/longTask/longTaskCollection.ts","../node_modules/@datadog/browser-rum-core/src/domain/contexts/internalContext.ts","Plugins/Datadog/Datadog.ts","Plugins/Didomi/Didomi.ts","Setup.ts","Web/Components/Templates/AppRouter/AppRouter.tsx","Web/Components/Templates/CustomDialogContainer.tsx","Web/Components/Templates/CustomToastContainer.tsx","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfYear/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/startOfHour/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/@date-io/date-fns/build/index.esm.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isSameHour/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/eachDayOfInterval/index.js","../node_modules/@material-ui/core/esm/CssBaseline/CssBaseline.js","../node_modules/@material-ui/src/MuiPickersUtilsProvider.tsx","Web/Components/Templates/MuiApp.tsx","../node_modules/redux-persist/es/integration/react.js","Web/Components/Templates/ReduxApp.tsx","../node_modules/@formatjs/intl/lib/src/message.js","../node_modules/@formatjs/intl/lib/src/number.js","../node_modules/@formatjs/intl/lib/src/relativeTime.js","../node_modules/@formatjs/intl/lib/src/dateTime.js","../node_modules/@formatjs/intl/lib/src/plural.js","../node_modules/@formatjs/intl/lib/src/list.js","../node_modules/@formatjs/intl/lib/src/displayName.js","../node_modules/@formatjs/intl/lib/src/create-intl.js","../node_modules/react-intl/lib/src/components/provider.js","Web/Components/Templates/Wrappers/IntlWrapper.tsx","Web/Components/Templates/Wrappers/MountActionsGate/PolQueryAuthenticationGate.tsx","Web/Components/Templates/Wrappers/AppWrapper.tsx","Web/Pages/Auth/StmacLoginViewGateController.ts","Web/Components/Templates/Wrappers/LoadingGate/LoadingGate.tsx","Web/Pages/Auth/StmacLoginViewGate.tsx","Web/Themes/ThemeMuiProvider.ts","Application.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport { CRMQueryParameter } from '../../../Models/CRM/CRM';\nimport { AuthenticateResultType, AuthService } from '../../../Services/Authentication/AuthService';\nimport { useQuery } from '../../Hooks/URL/URLUtils';\n\nimport { LoadingView } from '../../Components/Widgets/LoadingView';\nimport { AppRoutes } from '../../../Configs/AppRoutes';\n\nexport const CRMLandingPage = () => {\n const { loginInProgress } = useCRMLandingPageController();\n return ;\n};\n\nexport const useCRMLandingPageController = () => {\n const browserHistory = useHistory();\n const params: CRMQueryParameter = useQuery();\n\n const [loginInProgress, setLoginInProgress] = useState(false);\n\n React.useEffect(() => {\n crmLogin();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const crmLogin = async () => {\n try {\n setLoginInProgress(true);\n const response: AuthenticateResultType = await AuthService.CRMlogin(params);\n setLoginInProgress(false);\n if (response === AuthenticateResultType.SUCCESS) {\n browserHistory.push({ pathname: AppRoutes.DEFAULT_ROUTE, state: { configId: params.id_config } });\n }\n } catch (error) {\n setLoginInProgress(false);\n }\n };\n\n return { loginInProgress };\n};\n","import React from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n\n/* eslint-disable import/prefer-default-export */\nfunction invariant(condition, message) {\n if (condition) return;\n var error = new Error(\"loadable: \" + message);\n error.framesToPop = 1;\n error.name = 'Invariant Violation';\n throw error;\n}\nfunction warn(message) {\n // eslint-disable-next-line no-console\n console.warn(\"loadable: \" + message);\n}\n\nvar Context = /*#__PURE__*/\nReact.createContext();\n\nvar LOADABLE_REQUIRED_CHUNKS_KEY = '__LOADABLE_REQUIRED_CHUNKS__';\nfunction getRequiredChunkKey(namespace) {\n return \"\" + namespace + LOADABLE_REQUIRED_CHUNKS_KEY;\n}\n\nvar sharedInternals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getRequiredChunkKey: getRequiredChunkKey,\n invariant: invariant,\n Context: Context\n});\n\nvar LOADABLE_SHARED = {\n initialChunks: {}\n};\n\nvar STATUS_PENDING = 'PENDING';\nvar STATUS_RESOLVED = 'RESOLVED';\nvar STATUS_REJECTED = 'REJECTED';\n\nfunction resolveConstructor(ctor) {\n if (typeof ctor === 'function') {\n return {\n requireAsync: ctor,\n resolve: function resolve() {\n return undefined;\n },\n chunkName: function chunkName() {\n return undefined;\n }\n };\n }\n\n return ctor;\n}\n\nvar withChunkExtractor = function withChunkExtractor(Component) {\n var LoadableWithChunkExtractor = function LoadableWithChunkExtractor(props) {\n return React.createElement(Context.Consumer, null, function (extractor) {\n return React.createElement(Component, Object.assign({\n __chunkExtractor: extractor\n }, props));\n });\n };\n\n if (Component.displayName) {\n LoadableWithChunkExtractor.displayName = Component.displayName + \"WithChunkExtractor\";\n }\n\n return LoadableWithChunkExtractor;\n};\n\nvar identity = function identity(v) {\n return v;\n};\n\nfunction createLoadable(_ref) {\n var _ref$defaultResolveCo = _ref.defaultResolveComponent,\n defaultResolveComponent = _ref$defaultResolveCo === void 0 ? identity : _ref$defaultResolveCo,\n _render = _ref.render,\n onLoad = _ref.onLoad;\n\n function loadable(loadableConstructor, options) {\n if (options === void 0) {\n options = {};\n }\n\n var ctor = resolveConstructor(loadableConstructor);\n var cache = {};\n /**\n * Cachekey represents the component to be loaded\n * if key changes - component has to be reloaded\n * @param props\n * @returns {null|Component}\n */\n\n function _getCacheKey(props) {\n if (options.cacheKey) {\n return options.cacheKey(props);\n }\n\n if (ctor.resolve) {\n return ctor.resolve(props);\n }\n\n return 'static';\n }\n /**\n * Resolves loaded `module` to a specific `Component\n * @param module\n * @param props\n * @param Loadable\n * @returns Component\n */\n\n\n function resolve(module, props, Loadable) {\n var Component = options.resolveComponent ? options.resolveComponent(module, props) : defaultResolveComponent(module); // FIXME: suppressed due to https://github.com/gregberge/loadable-components/issues/990\n // if (options.resolveComponent && !ReactIs.isValidElementType(Component)) {\n // throw new Error(\n // `resolveComponent returned something that is not a React component!`,\n // )\n // }\n\n hoistNonReactStatics(Loadable, Component, {\n preload: true\n });\n return Component;\n }\n\n var cachedLoad = function cachedLoad(props) {\n var cacheKey = _getCacheKey(props);\n\n var promise = cache[cacheKey];\n\n if (!promise || promise.status === STATUS_REJECTED) {\n promise = ctor.requireAsync(props);\n promise.status = STATUS_PENDING;\n cache[cacheKey] = promise;\n promise.then(function () {\n promise.status = STATUS_RESOLVED;\n }, function (error) {\n console.error('loadable-components: failed to asynchronously load component', {\n fileName: ctor.resolve(props),\n chunkName: ctor.chunkName(props),\n error: error ? error.message : error\n });\n promise.status = STATUS_REJECTED;\n });\n }\n\n return promise;\n };\n\n var InnerLoadable =\n /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(InnerLoadable, _React$Component);\n\n InnerLoadable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var cacheKey = _getCacheKey(props);\n\n return _extends({}, state, {\n cacheKey: cacheKey,\n // change of a key triggers loading state automatically\n loading: state.loading || state.cacheKey !== cacheKey\n });\n };\n\n function InnerLoadable(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n result: null,\n error: null,\n loading: true,\n cacheKey: _getCacheKey(props)\n };\n invariant(!props.__chunkExtractor || ctor.requireSync, 'SSR requires `@loadable/babel-plugin`, please install it'); // Server-side\n\n if (props.__chunkExtractor) {\n // This module has been marked with no SSR\n if (options.ssr === false) {\n return _assertThisInitialized(_this);\n } // We run load function, we assume that it won't fail and that it\n // triggers a synchronous loading of the module\n\n\n ctor.requireAsync(props)[\"catch\"](function () {\n return null;\n }); // So we can require now the module synchronously\n\n _this.loadSync();\n\n props.__chunkExtractor.addChunk(ctor.chunkName(props));\n\n return _assertThisInitialized(_this);\n } // Client-side with `isReady` method present (SSR probably)\n // If module is already loaded, we use a synchronous loading\n // Only perform this synchronous loading if the component has not\n // been marked with no SSR, else we risk hydration mismatches\n\n\n if (options.ssr !== false && ( // is ready - was loaded in this session\n ctor.isReady && ctor.isReady(props) || // is ready - was loaded during SSR process\n ctor.chunkName && LOADABLE_SHARED.initialChunks[ctor.chunkName(props)])) {\n _this.loadSync();\n }\n\n return _this;\n }\n\n var _proto = InnerLoadable.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true; // retrieve loading promise from a global cache\n\n var cachedPromise = this.getCache(); // if promise exists, but rejected - clear cache\n\n if (cachedPromise && cachedPromise.status === STATUS_REJECTED) {\n this.setCache();\n } // component might be resolved synchronously in the constructor\n\n\n if (this.state.loading) {\n this.loadAsync();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Component has to be reloaded on cacheKey change\n if (prevState.cacheKey !== this.state.cacheKey) {\n this.loadAsync();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n if (this.mounted) {\n this.setState(nextState, callback);\n }\n }\n /**\n * returns a cache key for the current props\n * @returns {Component|string}\n */\n ;\n\n _proto.getCacheKey = function getCacheKey() {\n return _getCacheKey(this.props);\n }\n /**\n * access the persistent cache\n */\n ;\n\n _proto.getCache = function getCache() {\n return cache[this.getCacheKey()];\n }\n /**\n * sets the cache value. If called without value sets it as undefined\n */\n ;\n\n _proto.setCache = function setCache(value) {\n if (value === void 0) {\n value = undefined;\n }\n\n cache[this.getCacheKey()] = value;\n };\n\n _proto.triggerOnLoad = function triggerOnLoad() {\n var _this2 = this;\n\n if (onLoad) {\n setTimeout(function () {\n onLoad(_this2.state.result, _this2.props);\n });\n }\n }\n /**\n * Synchronously loads component\n * target module is expected to already exists in the module cache\n * or be capable to resolve synchronously (webpack target=node)\n */\n ;\n\n _proto.loadSync = function loadSync() {\n // load sync is expecting component to be in the \"loading\" state already\n // sounds weird, but loading=true is the initial state of InnerLoadable\n if (!this.state.loading) return;\n\n try {\n var loadedModule = ctor.requireSync(this.props);\n var result = resolve(loadedModule, this.props, Loadable);\n this.state.result = result;\n this.state.loading = false;\n } catch (error) {\n console.error('loadable-components: failed to synchronously load component, which expected to be available', {\n fileName: ctor.resolve(this.props),\n chunkName: ctor.chunkName(this.props),\n error: error ? error.message : error\n });\n this.state.error = error;\n }\n }\n /**\n * Asynchronously loads a component.\n */\n ;\n\n _proto.loadAsync = function loadAsync() {\n var _this3 = this;\n\n var promise = this.resolveAsync();\n promise.then(function (loadedModule) {\n var result = resolve(loadedModule, _this3.props, Loadable);\n\n _this3.safeSetState({\n result: result,\n loading: false\n }, function () {\n return _this3.triggerOnLoad();\n });\n })[\"catch\"](function (error) {\n return _this3.safeSetState({\n error: error,\n loading: false\n });\n });\n return promise;\n }\n /**\n * Asynchronously resolves(not loads) a component.\n * Note - this function does not change the state\n */\n ;\n\n _proto.resolveAsync = function resolveAsync() {\n var _this$props = this.props,\n __chunkExtractor = _this$props.__chunkExtractor,\n forwardedRef = _this$props.forwardedRef,\n props = _objectWithoutPropertiesLoose(_this$props, [\"__chunkExtractor\", \"forwardedRef\"]);\n\n return cachedLoad(props);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n forwardedRef = _this$props2.forwardedRef,\n propFallback = _this$props2.fallback,\n __chunkExtractor = _this$props2.__chunkExtractor,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"forwardedRef\", \"fallback\", \"__chunkExtractor\"]);\n\n var _this$state = this.state,\n error = _this$state.error,\n loading = _this$state.loading,\n result = _this$state.result;\n\n if (options.suspense) {\n var cachedPromise = this.getCache() || this.loadAsync();\n\n if (cachedPromise.status === STATUS_PENDING) {\n throw this.loadAsync();\n }\n }\n\n if (error) {\n throw error;\n }\n\n var fallback = propFallback || options.fallback || null;\n\n if (loading) {\n return fallback;\n }\n\n return _render({\n fallback: fallback,\n result: result,\n options: options,\n props: _extends({}, props, {\n ref: forwardedRef\n })\n });\n };\n\n return InnerLoadable;\n }(React.Component);\n\n var EnhancedInnerLoadable = withChunkExtractor(InnerLoadable);\n var Loadable = React.forwardRef(function (props, ref) {\n return React.createElement(EnhancedInnerLoadable, Object.assign({\n forwardedRef: ref\n }, props));\n });\n Loadable.displayName = 'Loadable'; // In future, preload could use ``\n\n Loadable.preload = function (props) {\n Loadable.load(props);\n };\n\n Loadable.load = function (props) {\n return cachedLoad(props);\n };\n\n return Loadable;\n }\n\n function lazy(ctor, options) {\n return loadable(ctor, _extends({}, options, {\n suspense: true\n }));\n }\n\n return {\n loadable: loadable,\n lazy: lazy\n };\n}\n\nfunction defaultResolveComponent(loadedModule) {\n // eslint-disable-next-line no-underscore-dangle\n return loadedModule.__esModule ? loadedModule[\"default\"] : loadedModule[\"default\"] || loadedModule;\n}\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable =\n/*#__PURE__*/\ncreateLoadable({\n defaultResolveComponent: defaultResolveComponent,\n render: function render(_ref) {\n var Component = _ref.result,\n props = _ref.props;\n return React.createElement(Component, props);\n }\n}),\n loadable = _createLoadable.loadable,\n lazy = _createLoadable.lazy;\n\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nvar _createLoadable$1 =\n/*#__PURE__*/\ncreateLoadable({\n onLoad: function onLoad(result, props) {\n if (result && props.forwardedRef) {\n if (typeof props.forwardedRef === 'function') {\n props.forwardedRef(result);\n } else {\n props.forwardedRef.current = result;\n }\n }\n },\n render: function render(_ref) {\n var result = _ref.result,\n props = _ref.props;\n\n if (props.children) {\n return props.children(result);\n }\n\n return null;\n }\n}),\n loadable$1 = _createLoadable$1.loadable,\n lazy$1 = _createLoadable$1.lazy;\n\n/* eslint-disable no-underscore-dangle, camelcase */\nvar BROWSER = typeof window !== 'undefined';\nfunction loadableReady(done, _temp) {\n if (done === void 0) {\n done = function done() {};\n }\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$namespace = _ref.namespace,\n namespace = _ref$namespace === void 0 ? '' : _ref$namespace,\n _ref$chunkLoadingGlob = _ref.chunkLoadingGlobal,\n chunkLoadingGlobal = _ref$chunkLoadingGlob === void 0 ? '__LOADABLE_LOADED_CHUNKS__' : _ref$chunkLoadingGlob;\n\n if (!BROWSER) {\n warn('`loadableReady()` must be called in browser only');\n done();\n return Promise.resolve();\n }\n\n var requiredChunks = null;\n\n if (BROWSER) {\n var id = getRequiredChunkKey(namespace);\n var dataElement = document.getElementById(id);\n\n if (dataElement) {\n requiredChunks = JSON.parse(dataElement.textContent);\n var extElement = document.getElementById(id + \"_ext\");\n\n if (extElement) {\n var _JSON$parse = JSON.parse(extElement.textContent),\n namedChunks = _JSON$parse.namedChunks;\n\n namedChunks.forEach(function (chunkName) {\n LOADABLE_SHARED.initialChunks[chunkName] = true;\n });\n } else {\n // version mismatch\n throw new Error('loadable-component: @loadable/server does not match @loadable/component');\n }\n }\n }\n\n if (!requiredChunks) {\n warn('`loadableReady()` requires state, please use `getScriptTags` or `getScriptElements` server-side');\n done();\n return Promise.resolve();\n }\n\n var resolved = false;\n return new Promise(function (resolve) {\n window[chunkLoadingGlobal] = window[chunkLoadingGlobal] || [];\n var loadedChunks = window[chunkLoadingGlobal];\n var originalPush = loadedChunks.push.bind(loadedChunks);\n\n function checkReadyState() {\n if (requiredChunks.every(function (chunk) {\n return loadedChunks.some(function (_ref2) {\n var chunks = _ref2[0];\n return chunks.indexOf(chunk) > -1;\n });\n })) {\n if (!resolved) {\n resolved = true;\n resolve();\n }\n }\n }\n\n loadedChunks.push = function () {\n originalPush.apply(void 0, arguments);\n checkReadyState();\n };\n\n checkReadyState();\n }).then(done);\n}\n\n/* eslint-disable no-underscore-dangle */\nvar loadable$2 = loadable;\nloadable$2.lib = loadable$1;\nvar lazy$2 = lazy;\nlazy$2.lib = lazy$1;\nvar __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sharedInternals;\n\nexport default loadable$2;\nexport { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, lazy$2 as lazy, loadableReady };\n","import loadable from '@loadable/component';\nimport React from 'react';\nimport { LoadingPage } from './LoadingPage';\n\nexport const withAsyncLoading = (asyncPageImport: () => Promise>) => {\n return loadable(asyncPageImport, { fallback: });\n};\n","import { withAsyncLoading } from \"../../Components/Templates/Loading/AsyncPageLoading\";\n\nexport const QuotePageLoading = withAsyncLoading(async () =>\n import(\"./QuotePage\").then((res) => res.QuotePage)\n);\n\n","import { withAsyncLoading } from \"../../Components/Templates/Loading/AsyncPageLoading\";\n\n\nexport const ProjectsPageLoading = withAsyncLoading(async () =>\n import(\"./ProjectsPage\").then((res) => res.ProjectsPage)\n);\n","import { useMe } from '../../Configs/PolStore';\nimport { UserTypeDto } from '../../Models/Users/Me';\nimport { MeState } from '../../Services/Me/MeReducer';\n\nexport const useIsBoUser = () => {\n const me: MeState = useMe();\n return me.data?.type === UserTypeDto.BoUserAsStore || me.data?.type === UserTypeDto.BoUserAsCustomer;\n};\n","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar Tablelvl2Context = React.createContext();\n\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\n\nexport default Tablelvl2Context;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport { alpha } from '../styles/colorManipulator';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n color: 'inherit',\n display: 'table-row',\n verticalAlign: 'middle',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n '&$hover:hover': {\n backgroundColor: theme.palette.action.hover\n },\n '&$selected, &$selected:hover': {\n backgroundColor: alpha(theme.palette.secondary.main, theme.palette.action.selectedOpacity)\n }\n },\n\n /* Pseudo-class applied to the root element if `selected={true}`. */\n selected: {},\n\n /* Pseudo-class applied to the root element if `hover={true}`. */\n hover: {},\n\n /* Styles applied to the root element if table variant=\"head\". */\n head: {},\n\n /* Styles applied to the root element if table variant=\"footer\". */\n footer: {}\n };\n};\nvar defaultComponent = 'tr';\n/**\n * Will automatically set dynamic row height\n * based on the material table element parent (head, body, etc).\n */\n\nvar TableRow = /*#__PURE__*/React.forwardRef(function TableRow(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? defaultComponent : _props$component,\n _props$hover = props.hover,\n hover = _props$hover === void 0 ? false : _props$hover,\n _props$selected = props.selected,\n selected = _props$selected === void 0 ? false : _props$selected,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"hover\", \"selected\"]);\n\n var tablelvl2 = React.useContext(Tablelvl2Context);\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, className, tablelvl2 && {\n 'head': classes.head,\n 'footer': classes.footer\n }[tablelvl2.variant], hover && classes.hover, selected && classes.selected),\n role: Component === defaultComponent ? null : 'row'\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableRow.propTypes = {\n /**\n * Should be valid children such as `TableCell`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * If `true`, the table row will shade on hover.\n */\n hover: PropTypes.bool,\n\n /**\n * If `true`, the table row will have the selected shading.\n */\n selected: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTableRow'\n})(TableRow);","import MuiTableRow from '@material-ui/core/TableRow';\nimport { styled } from '@material-ui/styles';\nimport { AppRoutes } from 'Configs/AppRoutes';\nimport { EstimationUrlHelper } from 'Helpers';\nimport { LocationDescriptor } from 'history';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { QuotationSummaryDto } from '../../../../Models/Projects/ProjectDto';\nimport { DateUtils } from '../../../../Utils/DateUtils';\nimport { Assets } from '../../../assets/Assets';\nimport { PriceLabel } from '../../../Components/Views/PriceLabel/PriceLabel';\nimport { MOBILE_LIMIT, useIsMobile } from '../../../Context/PlatformContext/PlatformContext';\nimport { ThemeRes } from '../../../Themes/ThemeRes';\nimport { useVersion } from '../ProjectsUtils';\n\nexport type QuotationListProps = { items?: QuotationSummaryDto[] };\nexport const QuotationList = ({ items = [] }: QuotationListProps) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {items.map((item) => (\n \n ))}\n \n
\n );\n};\n\nconst HeaderRoomCount = () => {\n const isMobile = useIsMobile();\n return isMobile ? (\n \n ) : (\n \n );\n};\n\nconst HeaderCell = styled('th')({\n fontFamily: ThemeRes.Fonts.fontFamilyAvenir,\n fontSize: 16,\n color: 'black',\n padding: '12px 0px 12px 16px',\n whiteSpace: 'nowrap',\n fontWeight: 400,\n '&:first-child': {\n width: '70%',\n },\n '&:nth-child(2)': {\n width: '25%',\n },\n '&:last-child': {\n padding: 12,\n },\n});\nconst HeaderContainer = styled('thead')({\n textAlign: 'left',\n borderBottom: '1px solid rgba(19, 19, 58, 0.15)',\n borderTop: '1px solid rgba(19, 19, 58, 0.15)',\n});\nconst Table = styled('table')({\n maxWidth: '75%',\n borderCollapse: 'collapse',\n borderSpacing: '0 8px',\n marginLeft: 'auto',\n marginRight: 'auto',\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: {\n maxWidth: '100%',\n },\n});\n\nexport type QuotationItemProps = { item: QuotationSummaryDto };\n\nexport const QuotationItemRow = ({ item }: QuotationItemProps) => {\n const version = useVersion();\n const to: LocationDescriptor = {\n pathname: AppRoutes.ESTIMATION,\n state: { configId: item.configuration_id },\n search: EstimationUrlHelper.toQueryParam({ version }).toString(),\n };\n return (\n }>\n \n \n \n {DateUtils.formatDateTime(item.created_date, )}\n \n \n \n \n {item.room_count}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nconst StyledLink = styled(Link)({\n textDecoration: 'none !important',\n background: 'white',\n color: 'black',\n fontFamily: ThemeRes.Fonts.fontFamilyNunitoSansBold,\n fontSize: 14,\n alignItems: 'center',\n border: '0.5px solid #ffffff',\n borderStyle: 'inset',\n '@media (hover)': {\n '&:hover': {\n border: '1px solid #13123A',\n },\n },\n});\n\nconst DateContainer = styled('div')({ display: 'flex', gap: 32, alignItems: 'center' });\nconst PriceContainer = styled('div')({ fontFamily: ThemeRes.Fonts.fontFamilyNunitoSansBold, fontSize: 18 });\nconst RoomCountContainer = styled('div')({ display: 'flex', gap: 5, alignItems: 'center' });\nconst RoomCount = styled('span')({ fontSize: 18 });\nconst RoomLabel = styled('span')({\n fontFamily: ThemeRes.Fonts.fontFamilyNunitoSans,\n fontSize: 16,\n fontWeight: 400,\n});\n\nconst Cell = styled('td')({\n height: '71px',\n paddingLeft: 15,\n whiteSpace: 'nowrap',\n '&:first-child': {\n whiteSpace: 'normal',\n },\n '&:last-child': {\n textAlign: 'right',\n paddingLeft: 32,\n paddingRight: 24,\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: {\n paddingLeft: 39,\n paddingRight: 17,\n },\n },\n});\n","import React from 'react';\nimport { useVersion } from '../../ProjectsUtils';\nimport { LocationDescriptor } from 'history';\nimport { AppRoutes } from 'Configs/AppRoutes';\nimport { EstimationUrlHelper } from 'Helpers';\nimport { Link } from 'react-router-dom';\nimport { Assets } from 'Web/assets/Assets';\n\nimport { styled } from '@material-ui/styles';\nimport { IconButton } from '@material-ui/core';\n\nexport const ButtonBack = () => {\n const version = useVersion();\n const to: LocationDescriptor = {\n pathname: AppRoutes.MY_PROJECTS,\n search: EstimationUrlHelper.toQueryParam({ version }).toString(),\n };\n return (\n \n \n \n \n \n );\n};\nconst Content = styled(IconButton)({ width: 41, height: 41, paddingTop: 8 });\n","import { handleError } from 'Errors/PolErrorHandler';\nimport { EstimationUrlHelper } from 'Helpers';\nimport { useVisibility } from 'Hooks/Visibility';\nimport { I18n, Message } from 'Locales/I18nService';\nimport React from 'react';\nimport { ProjectsApi } from 'Services/Api/ProjectsApi';\nimport { DeleteButton } from 'Web/Components/Views/CustomButton/ButtonsFactory';\nimport { NavigationService } from 'Web/Services/NavigationService';\n\nimport { YesNoChoiceDialog } from '../../Components/ChoiceDialog/YesNoChoiceDialog';\nimport { useVersion } from '../../ProjectsUtils';\n\ntype ButtonDeleteProjectProps = { projectId: string; disabled?: boolean };\nexport const ButtonDeleteProject = ({ projectId, disabled }: ButtonDeleteProjectProps) => {\n const version = useVersion();\n const dialog = useVisibility();\n\n const confirmDelete = async (setValidating: (busy: boolean) => void) => {\n try {\n setValidating(true);\n await ProjectsApi.deleteProject(projectId);\n setValidating(false);\n dialog.hide();\n NavigationService.goToMyProjects(EstimationUrlHelper.toQueryParam({ version }));\n } catch (error) {\n setValidating(false);\n handleError(error);\n }\n };\n\n return (\n <>\n }\n />\n {dialog.visible && (\n \n )}\n \n );\n};\n","import { I18n } from 'Locales/I18nService';\nimport React from 'react';\nimport { ProjectsApi } from 'Services/Api/ProjectsApi';\nimport { ExportFileType, ExportUtils } from 'Utils/ExportUtils';\nimport { Assets } from 'Web/assets/Assets';\nimport { ButtonVariant, CustomButton } from 'Web/Components/Views/CustomButton/CustomButton';\nimport { useIsBoUser } from 'Web/Hooks/useIsBoUser';\n\ntype ButtonExportProjectProps = { projectId: string; disabled?: boolean };\nexport const ButtonExportProject = ({ projectId, disabled }: ButtonExportProjectProps) => {\n const isBoUser = useIsBoUser();\n const [exporting, setExporting] = React.useState(false);\n\n const downloadExportedProject = async () => {\n try {\n setExporting(true);\n const data = await ProjectsApi.exportProject(projectId);\n ExportUtils.saveToFile(data, `exported-project-${projectId}`, ExportFileType.ZIP);\n } finally {\n setExporting(false);\n }\n };\n\n return (\n }\n title={I18n.get('ProjectDetails_Export')}\n variant={ButtonVariant.BorderedBlue}\n isBusy={exporting}\n disabled={disabled}\n styles={{\n root: { marginRight: 16, border: '2px solid #13123A' },\n label: { fontSize: 16 },\n }}\n />\n );\n};\n","import { AppRoutes } from 'Configs/AppRoutes';\nimport { EstimationUrlHelper } from 'Helpers';\nimport { LocationDescriptor } from 'history';\nimport { Message } from 'Locales/I18nService';\nimport { ProjectDto } from 'Models';\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport { ButtonVariant, CustomButton } from 'Web/Components/Views/CustomButton/CustomButton';\n\nimport { useVersion } from '../../ProjectsUtils';\n\ntype ButtonResumeProps = { project?: ProjectDto; disabled?: boolean };\nexport const ButtonResume = ({ project, disabled }: ButtonResumeProps) => {\n const version = useVersion();\n\n const { configuration_id, quotation_list = [] } = project ?? {};\n //! If the project's CurrentConfiguration is null, use latest configuration.\n const configIdToLoad = configuration_id || quotation_list[0]?.configuration_id;\n\n const to: LocationDescriptor = {\n pathname: AppRoutes.DEFAULT_ROUTE,\n state: { configId: configIdToLoad },\n search: EstimationUrlHelper.toQueryParam({ version }).toString(),\n };\n return (\n \n }\n variant={ButtonVariant.Blue}\n styles={{ root: { height: 50, width: 278 }, label: { fontWeight: 400 } }}\n disabled={disabled || !project}\n />\n \n );\n};\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useMe } from '../../../../Configs/PolStore';\nimport { handleError } from '../../../../Errors/PolErrorHandler';\nimport { ProjectHelper } from '../../../../Helpers/ProjectHelper';\nimport { I18n } from '../../../../Locales/I18nService';\nimport { ProjectDto, ProjectResponse } from '../../../../Models/Projects/ProjectDto';\nimport { ProjectsApi } from '../../../../Services/Api/ProjectsApi';\nimport { RouteParams, RouteQueryParams } from '../../../../Types/RouteParams';\nimport { EnhancedViewState, useViewState } from '../../../Hooks/ViewState/ViewState';\nimport { DialogService, InputValidateActionParams } from '../../../Services/DialogService';\nimport { NavigationService } from 'Web/Services/NavigationService';\nimport { EstimationUrlHelper } from 'Helpers';\nimport { useQuery } from 'Web/Hooks/URL/URLUtils';\n\nexport type ProjectDetailsViewState = EnhancedViewState<{\n project: ProjectDto;\n isAllowedToUpdateMetaData: boolean;\n exporting: boolean\n customerId?: string;\n}>;\n\nexport enum EditDialogType {\n Intitule = 'Intitule',\n Description = 'Description',\n CustomerId = 'CustomerId',\n}\n\nexport const useProjectDetailsPageController = () => {\n const me = useMe();\n const { projectId, configId } = useParams();\n const { state, update } = useViewState({ loading: true });\n\n //#region //* LOAD PROJECT\n\n React.useEffect(() => {\n if (Boolean(me.data)) {\n refresh();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [projectId, configId, me.data]);\n\n const refresh = async () => {\n try {\n update({ loading: true });\n const projectResponse: ProjectResponse = await ProjectsApi.getProject(projectId);\n const project = projectResponse.data;\n update({\n project,\n loading: false,\n isAllowedToUpdateMetaData: ProjectHelper.isAllowedToUpdateMetaData({\n me,\n createdByStoreId: project.created_by_store?.store.id,\n createdByCustomerID: project.created_by_customer?.user.id,\n }),\n customerId: project.customer_id,\n });\n } catch (error) {\n update({ loading: false });\n handleError(error);\n }\n };\n\n const version = useQuery().version;//review\n const onBack = (): void => NavigationService.goToMyProjects(EstimationUrlHelper.toQueryParam({ version }));\n\n const onValidateEditDialog = async (\n type: EditDialogType,\n { input, setValidating, closeDialog }: InputValidateActionParams\n ) => {\n const { intitule = '', description = '' } = state.project ?? {};\n try {\n setValidating(true);\n await ProjectsApi.updateProjectMetaData(projectId, {\n intitule: type === EditDialogType.Intitule ? input : intitule,\n description: type === EditDialogType.Description ? input : description,\n customer_id: type === EditDialogType.CustomerId ? input : state.customerId,\n });\n setValidating(false);\n closeDialog(() => {\n if (type === EditDialogType.CustomerId) {\n onBack();\n } else {\n refresh();\n }\n });\n } catch (error) {\n setValidating(false);\n handleError(error);\n }\n };\n\n const onEditIntitule = (): void => {\n DialogService.showEditInputDialog({\n title: I18n.get('ProjectDetails_Intitule'),\n description: I18n.get('ProjectDetails_DialogEditIntituleInformation'),\n initialValue: state.project?.intitule,\n onValidate: (validateParams) => onValidateEditDialog(EditDialogType.Intitule, validateParams),\n });\n };\n\n const onEditDescription = (): void => {\n DialogService.showEditInputDialog({\n title: I18n.get('ProjectDetails_Description'),\n description: I18n.get('ProjectDetails_DialogEditDescriptionInformation'),\n initialValue: state.project?.description,\n onValidate: (validateParams) => onValidateEditDialog(EditDialogType.Description, validateParams),\n });\n };\n\n const onEditCustomerId = (): void => {\n DialogService.showEditInputDialog({\n title: I18n.get('ProjectDetails_CustomerId'),\n description: I18n.format('ProjectDetails_DialogEditCustomerIdInformation'),\n initialValue: state.customerId,\n onValidate: (validateParams) => onValidateEditDialog(EditDialogType.CustomerId, validateParams),\n });\n };\n\n return { state, events: { update, onEditIntitule, onEditDescription, onEditCustomerId } };\n};\n","import IconButton from '@material-ui/core/IconButton';\nimport { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\nimport { FormattedNumber } from 'react-intl';\nimport { Stack } from 'Web/Components/Widgets/Stack';\nimport { GlendaleTitle, NunitoSansBoldTitle } from 'Web/Components/Widgets/Typographies';\nimport { MOBILE_LIMIT } from 'Web/Context/PlatformContext/PlatformContext';\nimport { useIsBoUser } from 'Web/Hooks/useIsBoUser';\nimport { useIsVendeur } from 'Web/Hooks/Vendeur/useVendeur';\n\nimport { I18n, Message } from '../../../../Locales/I18nService';\nimport { CreatedByTypeDto, ProjectDto } from '../../../../Models/Projects/ProjectDto';\nimport { DateUtils } from '../../../../Utils/DateUtils';\nimport { Assets } from '../../../assets/Assets';\nimport { CustomLoader } from '../../../Components/Templates/CustomLoader';\nimport { PageLayout } from '../../../Components/Views/PageLayout/PageLayout';\nimport { ThemeRes } from '../../../Themes/ThemeRes';\nimport { QuotationList } from '../Components/QuotationList';\nimport { ButtonBack } from './components/ButtonBack';\nimport { ButtonDeleteProject } from './components/ButtonDeleteProject';\nimport { ButtonExportProject } from './components/ButtonExportProject';\nimport { ButtonResume } from './components/ButtonResume';\nimport { ProjectDetailsViewState, useProjectDetailsPageController } from './ProjectDetailsPageController';\n\nexport const ProjectDetailsPage = () => {\n return (\n \n \n \n );\n};\n\nconst ProjectDetails = () => {\n const { state, events } = useProjectDetailsPageController();\n return (\n \n
\n \n \n \n \n \n \n \n
\n {state.loading ? (\n \n ) : (\n \n )}\n
\n );\n};\n\ntype BodyProps = {\n state: ProjectDetailsViewState;\n onEditIntitule: VoidFunction;\n onEditDescription: VoidFunction;\n onEditCustomerId: VoidFunction;\n};\nconst Content = ({ state, onEditIntitule, onEditDescription, onEditCustomerId }: BodyProps) => {\n return (\n <>\n \n \n \n \n \n \n ),\n }}\n />\n \n \n \n \n {state.project?.opening_count}\n \n \n \n {state.project?.room_count}\n \n \n \n \n \n ),\n }}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <Message id=\"ProjectDetails_Intitule\" />\n \n {state.isAllowedToUpdateMetaData ? (\n \n \n \n ) : undefined}\n \n \n {state.project?.intitule}\n \n \n \n \n \n <Message id=\"ProjectDetails_Description\" />\n \n {state.isAllowedToUpdateMetaData ? (\n \n \n \n ) : undefined}\n \n \n {state.project?.description ?? I18n.get('ProjectDetails_Description_Placeholder')}\n \n \n \n \n {Boolean(state.project?.quotation_list?.length) && (\n <>\n \n \n \n \n \n )}\n \n \n \n \n \n \n );\n};\n\nconst DeleteButtonContainer = styled('div')({\n display: 'flex',\n justifyContent: 'flex-end',\n width: '100%',\n marginTop: 24,\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: { justifyContent: 'center' },\n});\nconst HistoryTitle = styled(GlendaleTitle)({\n fontSize: 24,\n color: '#464646',\n marginBottom: 24,\n textAlign: 'center',\n paddingRight: 16,\n paddingLeft: 16,\n});\nconst LoaderStyle: CSSProperties = {\n position: 'absolute',\n marginLeft: 'auto',\n marginRight: 'auto',\n left: 0,\n right: 0,\n top: 52,\n};\nconst LeftColumn = styled(Stack)({\n width: '30%',\n paddingTop: 10,\n gap: 36,\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: {\n gap: 24,\n width: '100%',\n marginBottom: 12,\n },\n});\nconst RightColumn = styled(Stack)({\n minWidth: 328,\n flex: 1,\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: { gap: 12 },\n});\nconst Container = styled('div')({\n color: '#464646',\n backgroundColor: '#fff',\n paddingBottom: '143px',\n paddingLeft: '62px',\n paddingRight: '62px',\n height: '100%',\n width: '100%',\n overflowY: 'auto',\n\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: {\n paddingBottom: '24px',\n paddingLeft: 0,\n paddingRight: 0,\n },\n});\n\nconst Header = styled('div')({\n display: 'flex',\n alignItems: 'center',\n marginTop: 42,\n marginBottom: 15,\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: { flexDirection: 'column' },\n});\n\nconst HeaderTitleContainer = styled('div')({\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: { marginBottom: 16 },\n});\n\nconst HeaderTitle = styled(GlendaleTitle)({ fontSize: 24, color: '#464646', lineHeight: '44px', marginLeft: 7 });\n\nconst SummaryContainer = styled('div')({\n fontSize: 16,\n display: 'flex',\n flexDirection: 'row',\n gap: 41,\n paddingLeft: 48,\n marginBottom: 72,\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: {\n flexDirection: 'column',\n paddingRight: 16,\n paddingLeft: 16,\n gap: 0,\n },\n});\n\nconst SummaryInfoLabel = styled(NunitoSansBoldTitle)({\n display: 'flex',\n fontSize: 14,\n color: '#464646',\n lineHeight: '20px',\n whiteSpace: 'nowrap',\n});\nconst SummaryInfoValue = styled('span')({\n marginLeft: 6,\n fontFamily: ThemeRes.Fonts.fontFamilyNunitoSans,\n fontWeight: 400,\n fontSize: 16,\n color: '#464646',\n whiteSpace: 'initial',\n});\n\nconst InputContainer = styled('div')({\n marginBottom: 24,\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: { marginBottom: 0 },\n});\nconst InputLabelContainer = styled('div')({ display: 'flex', alignItems: 'center' });\nconst InputValue = styled('div')({\n background: '#fff',\n border: '1px solid #13123A',\n padding: '10px 16px 10px 16px',\n height: 42,\n minWidth: 328,\n color: 'black',\n fontSize: 16,\n fontFamily: ThemeRes.Fonts.fontFamilyNunitoSans,\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_900}px)`]: {\n width: '100%',\n maxWidth: '100% !important',\n },\n});\nconst InputStyle: CSSProperties = { cursor: 'pointer' };\nconst InputTitleStyle: CSSProperties = {\n ...InputStyle,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: 328,\n};\nconst DescriptionStyle: CSSProperties = {\n ...InputStyle,\n height: 132,\n maxWidth: 677,\n width: '100%',\n background: '#EFEFEF',\n border: 'unset',\n overflowY: 'auto',\n};\n\nconst Title = styled(NunitoSansBoldTitle)({ fontSize: 14 });\n\nconst Separator = styled('div')({\n background: 'rgba(19, 19, 58, 0.15)',\n width: '100%',\n height: '2px',\n marginTop: '32px',\n marginBottom: '25px',\n});\n\n//#region //* NESTED COMPONENTS\n\ntype CreatedByProps = { project: ProjectDto };\nconst CreatedBy = ({ project }: CreatedByProps) => {\n let createdByLabel = '';\n const { created_by_type, created_by_customer, created_by_store } = project || {};\n if (created_by_type === CreatedByTypeDto.Customer && created_by_customer) {\n createdByLabel = I18n.format('COMMON_USER_FULLNAME', {\n firstName: created_by_customer.user.first_name ?? '',\n lastName: created_by_customer.user.last_name ?? '',\n });\n } else if (created_by_type === CreatedByTypeDto.Store && created_by_store) {\n createdByLabel = created_by_store.store.id;\n }\n return <>{createdByLabel};\n};\n\ntype AuthorIdInputProps = {\n customerId?: string;\n isAllowedToUpdateMetaData?: boolean;\n onEditCustomerId: VoidFunction;\n};\n\nconst AuthorIdInput = ({ customerId = '', isAllowedToUpdateMetaData, onEditCustomerId }: AuthorIdInputProps) => {\n const isBoUser = useIsBoUser();\n const isVendeur = useIsVendeur();\n return !(isBoUser || isVendeur) ? null : (\n \n \n \n <Message id=\"ProjectDetails_CustomerId\" values={{ authorType: customerId }} />\n \n {isAllowedToUpdateMetaData && (\n \n \n \n )}\n \n \n {customerId}\n \n \n );\n};\n\n//#endregion\n","import { Route } from \"react-router-dom\";\nimport { RouteItem } from \"../Web/Components/Templates/AppRouter/RouteItem\";\nimport { CRMLandingPage } from \"../Web/Pages/CRMLanding/CRMLandingPage\";\nimport { QuotePageLoading } from \"../Web/Pages/Quote/QuotePageLoading\";\nimport { ProjectsPageLoading } from \"../Web/Pages/Projects/ProjectsPageLoading\";\nimport { ProjectDetailsPage } from \"../Web/Pages/Projects/ProjectDetailsPage/ProjectDetailsPage\";\n\nexport class AppRoutes {\n\n public static CRM_LANDING = \"/crm/devis\"; //* CRM\n public static ESTIMATION = \"/estimation\"; //* ESTIMATION\n\n //* MY PROJECTS\n public static MY_PROJECTS = \"/projets\";\n public static PROJECT_DETAILS = \"/projets/:projectId\";\n public static GET_PROJECT_DETAILS = (id: string) => `/projets/${id}`;\n\n public static DEFAULT_ROUTE = AppRoutes.ESTIMATION;\n\n public static getRoutes = (): RouteItem[] => [\n { render: Route, props: { path: AppRoutes.CRM_LANDING, component: CRMLandingPage } },\n { render: Route, props: { path: AppRoutes.ESTIMATION, component: QuotePageLoading } },\n //* PROJECTS\n { render: Route, props: { path: AppRoutes.MY_PROJECTS, component: ProjectsPageLoading } },\n { render: Route, props: { path: AppRoutes.PROJECT_DETAILS, component: ProjectDetailsPage } }\n ];\n}\n\n","import React from 'react';\nimport { Logger } from '../Errors/Logger';\nimport { useWindowLog } from '../Hooks/WindowLog';\nimport { ProjectDto } from '../Models/Projects/ProjectDto';\nimport { LogMessageFields } from '../Services/Analytics/LogMessageModel';\nimport { AuthHelper } from '../Services/Authentication/AuthHelper';\nimport { EnhancedViewState, useViewState } from '../Web/Hooks/ViewState/ViewState';\n\nexport type CurrentProjectState = Partial<{\n project: ProjectDto;\n isUpdateAllowed: boolean;\n isTouchedBySellers: boolean;\n isDirty: boolean;\n lastSaveDate: Date;\n lastAutoSave: boolean;\n isSaving: boolean;\n}>;\n\ntype CurrentProjectContextValue = {\n state?: CurrentProjectState;\n getState: () => CurrentProjectState;\n update: (values: CurrentProjectState) => void;\n reset: () => void;\n isLastSaveWasMoreThan5minAgo: () => boolean;\n};\nexport const CurrentProjectContext = React.createContext({\n state: {},\n getState: () => ({}),\n update: () => {},\n reset: () => {},\n isLastSaveWasMoreThan5minAgo: () => false,\n});\nexport const useCurrentProject = () => React.useContext(CurrentProjectContext);\nexport const CurrentProjectProvider = ({ children }: React.PropsWithChildren<{}>) => {\n const { state, getState, update: updateState, resetState } = useViewState({});\n useWindowLog(() => (window.CurrentProjectState = getState));\n\n const update = (values: Partial>) => {\n Logger.log('CurrentProjectContext update', values);\n updateState(values, () => (currentProject = getState()));\n };\n\n const isLastSaveWasMoreThan5minAgo = (): boolean => {\n const state = getState();\n if (state.project) {\n const now = new Date();\n const lastSaveDate = state.lastSaveDate;\n\n if (state.lastAutoSave) {\n const FIVE_MINUTES = 5 * 60 * 1000;\n\n //@ts-ignore\n const diff: number = now - lastSaveDate;\n const lastSaveWasMoreThan5minAgo: boolean = diff > FIVE_MINUTES;\n return lastSaveWasMoreThan5minAgo;\n } else {\n const TWO_MINUTES = 2 * 60 * 1000;\n\n //@ts-ignore\n const diff: number = now - lastSaveDate;\n const lastSaveWasMoreThan2minAgo: boolean = diff > TWO_MINUTES;\n return lastSaveWasMoreThan2minAgo;\n }\n }\n return false;\n };\n\n return (\n \n {children}\n \n );\n};\n\n/**\n * @deprecated Use CurrentProjectContext instead\n */\nlet currentProject: CurrentProjectState | undefined;\n\nexport const withCurrentProjectLogs = (): Partial => {\n const isCustomer: boolean = AuthHelper.isAuthenticatedAsCustomerUser();\n const isCrmStore: boolean = AuthHelper.isAuthenticatedAsCrmStoreUser();\n\n return {\n projectId: currentProject?.project?.id,\n\n //! Dans le cas d'un parcours client\n customerId: isCustomer ? AuthHelper.getMeCustomer()?.id : undefined,\n\n //! Dans le cas d'une config ouverte à partir du CRM\n CustomerID: isCrmStore ? AuthHelper.getMeCrmStore()?.as_customer.id : undefined,\n StoreId: isCrmStore ? currentProject?.project?.created_by_store?.store.id : undefined,\n };\n};\n","export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel1: \n - merges 1 level of substate\n - skips substate if already modified\n*/\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n } // otherwise hard set the new value\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}","import { KEY_PREFIX } from './constants';\nexport default function getStoredState(config) {\n var transforms = config.transforms || [];\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var debug = config.debug;\n var deserialize;\n\n if (config.deserialize === false) {\n deserialize = function deserialize(x) {\n return x;\n };\n } else if (typeof config.deserialize === 'function') {\n deserialize = config.deserialize;\n } else {\n deserialize = defaultDeserialize;\n }\n\n return storage.getItem(storageKey).then(function (serialized) {\n if (!serialized) return undefined;else {\n try {\n var state = {};\n var rawState = deserialize(serialized);\n Object.keys(rawState).forEach(function (key) {\n state[key] = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key, rawState);\n }, deserialize(rawState[key]));\n });\n return state;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n throw err;\n }\n }\n });\n}\n\nfunction defaultDeserialize(serial) {\n return JSON.parse(serial);\n}","import { KEY_PREFIX } from './constants';\nexport default function purgeStoredState(config) {\n var storage = config.storage;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n @TODO add validation / handling for:\n - persisting a reducer which has nested _persist\n - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (!config) throw new Error('config is required for persistReducer');\n if (!config.key) throw new Error('key is required in persistor config');\n if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n }\n\n var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n var debug = config.debug || false;\n var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n var getStoredState = config.getStoredState || defaultGetStoredState;\n var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n var _persistoid = null;\n var _purge = false;\n var _paused = true;\n\n var conditionalUpdate = function conditionalUpdate(state) {\n // update the persistoid only if we are rehydrated and not paused\n state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n return state;\n };\n\n return function (state, action) {\n var _ref = state || {},\n _persist = _ref._persist,\n rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n var restState = rest;\n\n if (action.type === PERSIST) {\n var _sealed = false;\n\n var _rehydrate = function _rehydrate(payload, err) {\n // dev warning if we are already sealed\n if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n if (!_sealed) {\n action.rehydrate(config.key, payload, err);\n _sealed = true;\n }\n };\n\n timeout && setTimeout(function () {\n !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n }, timeout); // @NOTE PERSIST resumes if paused.\n\n _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n if (_persist) {\n // We still need to call the base reducer because there might be nested\n // uses of persistReducer which need to be aware of the PERSIST action\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n }\n\n if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n action.register(config.key);\n getStoredState(config).then(function (restoredState) {\n var migrate = config.migrate || function (s, v) {\n return Promise.resolve(s);\n };\n\n migrate(restoredState, version).then(function (migratedState) {\n _rehydrate(migratedState);\n }, function (migrateErr) {\n if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n _rehydrate(undefined, migrateErr);\n });\n }, function (err) {\n _rehydrate(undefined, err);\n });\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: {\n version: version,\n rehydrated: false\n }\n });\n } else if (action.type === PURGE) {\n _purge = true;\n action.result(purgeStoredState(config));\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === FLUSH) {\n action.result(_persistoid && _persistoid.flush());\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === PAUSE) {\n _paused = true;\n } else if (action.type === REHYDRATE) {\n // noop on restState if purging\n if (_purge) return _objectSpread({}, restState, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n }) // @NOTE if key does not match, will continue to default else below\n\n });\n\n if (action.key === config.key) {\n var reducedState = baseReducer(restState, action);\n var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n var _newState = _objectSpread({}, reconciledRest, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n })\n });\n\n return conditionalUpdate(_newState);\n }\n } // if we have not already handled PERSIST, straight passthrough\n\n\n if (!_persist) return baseReducer(state, action); // run base reducer:\n // is state modified ? return original : return updated\n\n var newState = baseReducer(restState, action);\n if (newState === restState) return state;\n return conditionalUpdate(_objectSpread({}, newState, {\n _persist: _persist\n }));\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createStore } from 'redux';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\nvar initialState = {\n registry: [],\n bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case REGISTER:\n return _objectSpread({}, state, {\n registry: [].concat(_toConsumableArray(state.registry), [action.key])\n });\n\n case REHYDRATE:\n var firstIndex = state.registry.indexOf(action.key);\n\n var registry = _toConsumableArray(state.registry);\n\n registry.splice(firstIndex, 1);\n return _objectSpread({}, state, {\n registry: registry,\n bootstrapped: registry.length === 0\n });\n\n default:\n return state;\n }\n};\n\nexport default function persistStore(store, options, cb) {\n // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n if (process.env.NODE_ENV !== 'production') {\n var optionsToTest = options || {};\n var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n bannedKeys.forEach(function (k) {\n if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n });\n }\n\n var boostrappedCb = cb || false;\n\n var _pStore = createStore(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n var register = function register(key) {\n _pStore.dispatch({\n type: REGISTER,\n key: key\n });\n };\n\n var rehydrate = function rehydrate(key, payload, err) {\n var rehydrateAction = {\n type: REHYDRATE,\n payload: payload,\n err: err,\n key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n };\n store.dispatch(rehydrateAction);\n\n _pStore.dispatch(rehydrateAction);\n\n if (boostrappedCb && persistor.getState().bootstrapped) {\n boostrappedCb();\n boostrappedCb = false;\n }\n };\n\n var persistor = _objectSpread({}, _pStore, {\n purge: function purge() {\n var results = [];\n store.dispatch({\n type: PURGE,\n result: function result(purgeResult) {\n results.push(purgeResult);\n }\n });\n return Promise.all(results);\n },\n flush: function flush() {\n var results = [];\n store.dispatch({\n type: FLUSH,\n result: function result(flushResult) {\n results.push(flushResult);\n }\n });\n return Promise.all(results);\n },\n pause: function pause() {\n store.dispatch({\n type: PAUSE\n });\n },\n persist: function persist() {\n store.dispatch({\n type: PERSIST,\n register: register,\n rehydrate: rehydrate\n });\n }\n });\n\n if (!(options && options.manualPersist)) {\n persistor.persist();\n }\n\n return persistor;\n}","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import { AnyAction, Middleware, MiddlewareAPI } from 'redux';\n\nimport { NavigationService } from '../../Web/Services/NavigationService';\n\nimport { TokenType } from '../../Models/Authentication/AuthResponse';\nimport { MeService } from '../Me/MeService';\nimport { AuthenticationState } from './AuthenticationReducer';\nimport * as AuthenticationTypes from './typings/AuthenticationActionTypes';\nimport { ReloadAppActions } from '../../Web/Components/Templates/Wrappers/MountActionsGate/EssentialsActionsGate';\n\nexport const AuthenticationMiddleware: Middleware =\n ({ dispatch, getState }: MiddlewareAPI) =>\n (next: any) =>\n (action: AnyAction) => {\n if (action) {\n switch (action.type) {\n case AuthenticationTypes.AuthActionType.LOG_OUT:\n NavigationService.goToHome();\n break;\n case ReloadAppActions.APP_ESSENTIAL_RELOAD:\n const res = next(action);\n const { token_type, access_token = '' } = (getState().Authentication || {}) as AuthenticationState;\n if (token_type && access_token) {\n MeService.getMyInfo().catch((err: any) => err);\n }\n return res;\n default:\n break;\n }\n }\n return next(action);\n };\n","import { AnyAction, MiddlewareAPI } from 'redux';\n\nimport { TokenType } from '../../Models/Authentication/AuthResponse';\nimport { AuthActionType, SetAuthenticatedAction } from '../Authentication/typings/AuthenticationActionTypes';\nimport { MeActions } from './MeActions';\nimport { MeService } from './MeService';\n\nexport const MeMiddleware =\n ({ dispatch }: MiddlewareAPI) =>\n (next: any) =>\n (action: AnyAction) => {\n if (action) {\n switch (action.type) {\n case AuthActionType.SET_AUTHENTICATED:\n const res = next(action);\n const setAuthAction = action as SetAuthenticatedAction;\n if (\n setAuthAction.payload.isAuthenticated &&\n setAuthAction.payload.authorization.token_type !== TokenType.StmacJWT\n ) {\n MeService.getMyInfo().catch((err: any) => err);\n } else {\n dispatch(MeActions.setInfo(undefined));\n }\n return res;\n default:\n break;\n }\n }\n return next(action);\n };\n","import * as AuthenticationTypes from './typings/AuthenticationActionTypes';\nexport interface AuthenticationState {\n isAuthenticated: boolean;\n initialized: boolean;\n error: any;\n\n //* EMAIL\n access_token: string;\n refresh_token: string;\n token_type: string;\n}\n\nconst initialAuthState: AuthenticationState = {\n isAuthenticated: false,\n initialized: false,\n error: null,\n\n // EMAIL\n access_token: '',\n refresh_token: '',\n token_type: '',\n};\n\nexport const AuthenticationReducer = (\n state = initialAuthState,\n action: AuthenticationTypes.AuthenticationAction\n): AuthenticationState => {\n switch (action.type) {\n default:\n return state;\n case AuthenticationTypes.AuthActionType.LOG_OUT:\n return { ...initialAuthState, initialized: true };\n case AuthenticationTypes.AuthActionType.SET_AUTHENTICATED:\n return {\n ...state,\n access_token: action.payload.authorization.access_token,\n refresh_token: action.payload.authorization.refresh_token,\n token_type: action.payload.authorization.token_type,\n isAuthenticated: action.payload.isAuthenticated,\n initialized: action.payload.initialized,\n };\n }\n};\n\n","import { MeDto } from '../../Models/Users/Me';\nimport { MeAction, MeActions } from './MeActions';\n\nexport type MeState = { data?: MeDto; };\n\nconst initialMeState: MeState = { data: undefined };\n\nexport const MeReducer = (state = initialMeState, action: MeAction): MeState => {\n switch (action.type) {\n default:\n return state;\n case MeActions.SET_INFO:\n return {\n ...state,\n data: action.payload.info\n };\n }\n};\n","import { frFloorPlanMessages } from './frFloorPlanMessages';\n\n//🇫🇷\nexport const frMessages = {\n ApplicationName: 'Clic & Pose',\n\n //* COMMON\n COMMON_SAVE: 'Enregistrer',\n COMMON_DELETE: 'Supprimer',\n COMMON_CONTINUE: 'Continuer',\n COMMON_CANCEL: 'Annuler',\n COMMON_QUIT: 'Quitter',\n COMMON_YES: 'Oui',\n COMMON_NO: 'Non',\n COMMON_OK: 'OK',\n COMMON_OR: 'ou',\n COMMON_VALIDATE: 'Valider',\n COMMON_CLEAR: 'Effacer',\n COMMON_DATE_DEFAULT_VALUE: '?',\n COMMON_USER_FULLNAME: '{firstName} {lastName}',\n COMMON_WARNING: 'Attention !',\n COMMON_NEXT: 'Suivant',\n COMMON_OTHER: 'Autre',\n COMMON_PREVIOUS: 'Précédent',\n COMMON_LOADING: 'Chargement...',\n\n COMMON_ADD: 'Ajouter',\n COMMON_EDIT: 'Éditer',\n COMMON_FINISH: 'Terminer',\n\n COMMON_ERROR_TITLE: 'Erreur : {code}',\n COMMON_SORRY_TITLE: 'Désolé,',\n COMMON_SORRY_TITLE_WITHOUT_COMMA: 'Désolé',\n COMMON_ERROR_MESSAGE: \"Quelque chose ne s'est pas passé comme prévu, merci de réessayer.\",\n\n TEST_STORE_USER_FULLNAME: 'Test vendeur: {firstName} {lastName}',\n TEST_CUSTOMER_USER_FULLNAME: 'Test client: {firstName} {lastName}',\n\n //* TOAST\n Toast_TitleSuccess: 'Bravo',\n Toast_TitleError: 'Erreur',\n Toast_TitleInfo: 'Info',\n\n ERROR_LOADING_CONFIGURATION: \"La configuration n'a pas pu être chargé.\",\n ERROR_AUTHENTICATION_IFRAME_TIMEOUT: \"Impossible de joindre le serveur d'authentification, merci de réessayer.\",\n Error_FORBIDDEN: \"Quelque chose ne s'est pas passé comme prévu, merci de réessayer.\",\n ERROR_UPDATE_UNAUTHORIZED: \"Vous n'avez pas les droits nécessaire pour éditer ce projet.\",\n ERROR_LOADING_MAP: \"Quelque chose ne s'est pas passé comme prévu lors du chargment du plan.\",\n\n ERROR_STORE_TOKEN_IN_FUTUR: 'Problème de synchro NTP',\n ERROR_CUSTOMER_TOKEN_IN_FUTUR: \"Veuillez vérifier l'heure de votre appareil.\",\n ERROR_INVALID_WALL_MOVE: 'Ce déplacement rentre en collision avec une autre pièce',\n\n //* SNACKBAR\n\n CopyToClipboardButton_CopiedSnakbarMessage: 'Copié dans le presse-papier',\n\n //* DIALOG\n\n Dialog_LogoutTitle: 'Déconnexion',\n Dialog_LogoutMessageHeader: 'Vous êtes sur le point de vous déconnecter',\n Dialog_LogoutMessageBody: \"Confirmez-vous l'opération ?\",\n Dialog_Error_CantCompleteProject: 'Nous sommes désolés mais nous ne pouvons pas finaliser votre devis estimatif en ligne.\\nEnregistrez votre projet dans votre compte client, un conseiller vous contactera pour le finaliser.',\n DialogLogin_Error_CantCompleteProject: 'Nous sommes désolés mais nous ne pouvons pas finaliser votre devis estimatif en ligne.\\nUn conseiller va prendre contact avec vous afin de finaliser votre projet.',\n\n CreateProjectDialog_InputLabel: 'Donnez un nom à ce projet.',\n CreateProjectDialog_InputPlaceholder: 'Ex : Chambre',\n\n CreateOrUpdateProjectDialog_Message: 'Sur quel projet voulez-vous enregistrer ? ',\n CreateOrUpdateProjectDialog_SaveProject: 'Enregistrer sur le projet « {name} »',\n CreateOrUpdateProjectDialog_NewProject: 'Créer un nouveau projet et enregistrer',\n CreateOrUpdateProjectDialog_InputLabel: 'Nom du projet',\n\n PermissionDialog_NotAuthenticated: \"Vous n'êtes pas authentifié\",\n\n ProjectDetails_deleteDialogTitle: 'Supprimer le projet',\n ProjectDetails_deleteDialogHeader: 'Vous êtes sur le point de supprimer un projet',\n ProjectDetails_deleteDialogBody: \"Confirmez-vous l'opération ?\",\n ProjectDetails_Description_Placeholder: 'Saisissez votre description ici',\n\n //! COMPONENTS\n //* Header\n Header_MySpace: 'Mon compte',\n Header_Logout: 'Se déconnecter',\n Header_Login: 'Se connecter',\n Header_MyProjects: 'Mes projets',\n\n\n //todo REMOVE : NOT UTILE\n Header_Version: '{environment} - {version_number}',\n Header_Environment_localdev: 'local development',\n Header_Environment_dev: 'development',\n Header_Environment_test: 'test',\n Header_Environment_beta: 'beta',\n Header_Environment_uat: 'uat',\n Header_Environment_preprod: 'pp',\n Header_Environment_prod: 'production',\n\n MonthYearPicker_Short_Label_January: 'Jan',\n MonthYearPicker_Short_Label_February: 'Fév',\n MonthYearPicker_Short_Label_March: 'Mars',\n MonthYearPicker_Short_Label_April: 'Avr',\n MonthYearPicker_Short_Label_May: 'Mai',\n MonthYearPicker_Short_Label_June: 'Juin',\n MonthYearPicker_Short_Label_July: 'Juil',\n MonthYearPicker_Short_Label_August: 'Août',\n MonthYearPicker_Short_Label_September: 'Sept',\n MonthYearPicker_Short_Label_October: 'Oct',\n MonthYearPicker_Short_Label_November: 'Nov',\n MonthYearPicker_Short_Label_December: 'Déc',\n\n MapContextMenu_Modify: 'Modifier',\n MapContextMenu_Complete: 'Compléter',\n MapContextMenu_Add: 'Ajouter',\n MapContextMenu_Move: 'Déplacer',\n MapContextMenu_Duplicate: 'Dupliquer',\n MapContextMenu_Delete: 'Supprimer',\n MapContextMenu_DeleteRoom: 'Supprimer la pièce {name}',\n\n //! PAGES\n\n //* Quote\n Quote_Advice: 'Notre conseil',\n Quote_MultipleOptionsLabel_SubText: '(plusieurs choix possibles)',\n\n Quote_QuestionNumberError: 'la valeur doit être comprise entre {min} et {max}',\n Quote_ProductSelect_Search: 'Chercher un autre produit',\n Quote_ProductSelect_Search_Catalog: 'Chercher dans notre catalogue',\n Quote_ProductSelect_Ref: 'Réf: {produit}',\n Quote_ProductSelect_Search_Instruction: 'Trouvez-votre produit dans notre catalogue',\n Quote_ProductSelect_Search_NoResult: 'Le produit « {search} » n’existe pas dans notre catalogue.',\n Quote_ProductSelect_Search_Empty: 'Aucun produit selectionné',\n Quote_ProductSelect_Suggest_SameAsBefore: 'Le même que choisi précédemment',\n Quote_ProductCodeShort: '{code_article}/{code_coloris}',\n\n Quote_IncompatibilityAnswer: \"Oups, ce choix n'est pas possible avec ce que vous avez sélectionné auparavant. Ok pour changer cette réponse\",\n Quote_IncompatibilityAnswer_Title: 'Attention',\n Quote_IncompatibilityAnswer_RedirectButton: 'Choisir un autre produit dans le catalogue',\n Quote_IncompatibilityAnswer_FinDeParcours_RightAction: 'Retour',\n QuoteStepViewModel_ReadonlyProduct_Error: 'Le produit souhaité n’existe pas dans le catalogue.',\n QuoteStepViewModel_TravelExpense_Unallowed_Error: \"Il n'est pas possible d'expédier une commande à cette adresse. Nous livrons exclusivement en France Métropolitaine.\",\n QuoteStepViewModel_TravelExpense_Error: \"Le code postal saisi n'a pas été trouvé.\",\n\n Quote_Alert_ConfigNotSavedTitle: \"Votre configuration de pose n'est pas enregistrée.\",\n Quote_Alert_ConfigNotSavedSubTitle: 'En continuant, vous allez perdre vos modifications non enregistrées.',\n\n Quote_Project_Created: 'Le projet « {name} » a été crée avec succès',\n Quote_Project_ConfigurationUpdated: 'La configuration du projet « {name} » a été mis à jour',\n\n //* Steps 4\n Quote_Step4_TotalPriceTitle: 'Montant Global',\n Quote_Step4_PriceFormat: '{price} €',\n QuoteEstimation_ProduitDetails_Title: 'MON PRODUIT A POSER',\n QuoteEstimation_ProjectDetails_Title: 'Mon projet',\n\n QuoteEstimation_Recap_Title: 'Récapitulatif',\n QuoteEstimation_Recap_DownloadPdfLabel: 'Télécharger le devis estimatif de mon projet',\n QuoteEstimation_Recap_PromoTva: 'Remise TVA offerte sur le produit posé',\n\n QuoteEstimation_Recap_Produit_Ref: 'Référence',\n QuoteEstimation_Recap_Produit_Label: 'Désignation',\n QuoteEstimation_Recap_Produit_Unit: 'Prix unitaire',\n QuoteEstimation_Recap_Produit_Unit_MainProduit: 'Prix unitaire m²',\n QuoteEstimation_Recap_Produit_Conditionnement: 'Conditionnement',\n QuoteEstimation_Recap_Produit_Conditionnement_PaquetDe_Format: 'Paquet(s) de {value} {unit}',\n QuoteEstimation_Recap_Produit_Conditionnement_Unitaire: 'Unitaire',\n QuoteEstimation_Recap_Produit_Quantity: 'Quantité',\n QuoteEstimation_Recap_Produit_Quantity_LongText: 'Quantité de produit ',\n QuoteEstimation_Recap_Produit_Total: 'Total produit',\n\n QuoteEstimation_Recap_MainProduit_Title: 'Produit principal à poser',\n QuoteEstimation_Recap_TotalMainProduit_Title: 'Total produit pincipal',\n\n QuoteEstimation_Recap_MainOeuvre_Title: 'Main d’œuvre',\n QuoteEstimation_Recap_CategorieOptionsServices_Depose: 'Dépose',\n QuoteEstimation_Recap_CategorieOptionsServices_PreparationDuSupportAvantPose: 'Préparation du support avant pose',\n QuoteEstimation_Recap_CategorieOptionsServices_PoseDuRevetementPrincipal: 'Pose du revêtement principal',\n QuoteEstimation_Recap_CategorieOptionsServices_PoseAccessoires: 'Pose accessoires',\n QuoteEstimation_Recap_CategorieOptionsServices_ComplementForfaitDivers: 'Complément forfait divers',\n QuoteEstimation_Recap_CategorieOptionsServices_Nettoyage: 'Nettoyage',\n QuoteEstimation_Recap_CategorieOptionsServices_Autres: 'Autres',\n QuoteEstimation_Recap_CategorieOptionsServices_ForfaitBesoinSupplementaire: 'Forfait besoin supplémentaire',\n QuoteEstimation_Recap_CategorieOptionsServices_GestionDesDechets: 'Gestion des déchets',\n QuoteEstimation_Recap_TotalMainOeuvre_Title: 'Total main d’œuvre',\n\n QuoteEstimation_Recap_ProduitsComplementaires_Title: 'Produits complémentaires',\n QuoteEstimation_Recap_TotalProduitsComplementaires_Title: 'Total produits complémentaires ',\n\n QuoteEstimation_Recap_TotalLivraison: 'Livraison',\n QuoteEstimation_Recap_TotalLivraison_StoreQuotationNeeded: 'Sur devis en magasin',\n\n QuoteEstimation_Recap_Total: 'Total projet',\n QuoteEstimation_Recap_TotalHtPrice_Title: 'Total HT',\n QuoteEstimation_Recap_TotalTva_Title: 'TVA ({tva_percentage}%)',\n QuoteEstimation_Recap_TotalTtcPrice_Title: 'Total projet TTC',\n QuoteEstimation_Recap_TotalTtcPrice_Subtitle: 'Visite à domicile offerte.',\n\n QuoteEstimation_WhatNext_Unauthenticated_Title: 'Recevoir un devis estimatif',\n QuoteEstimation_WhatNext_Unauthenticated_Description:\n 'Connectez-vous pour obtenir le détail de votre estimation et/ou prendre rendez-vous avec l’un de nos conseillers.',\n QuoteEstimation_WhatNext_LogInButton: 'Je me connecte',\n\n QuoteEstimation_WhatNext_AuthenticatedCustomer_Title: 'Finalisez votre projet !',\n QuoteEstimation_WhatNext_AuthenticatedCustomer_Description:\n 'Prenez rendez-vous avec l’un de nos conseillers pour finaliser votre estimation.',\n QuoteEstimation_WhatNext_AppointmentButton: 'Prendre RDV',\n\n QuoteEstimation_WhatNext_AuthenticatedStore_Title: 'ET MAINTENANT ?',\n QuoteEstimation_WhatNext_AuthenticatedStore_Description:\n 'Fermez votre navigateur pour retrouver votre configuration dans le CRM Vendeur. Si vous ne souhaitez pas que cette configuration soit transmise au CRM Vendeur, vous pouvez annuler sa récupération dans le CRM Vendeur.',\n QuoteEstimation_WhatNext_AuthenticatedStore_CancelButton: 'Annuler la récupération CRM',\n QuoteEstimation_WhatNext_AuthenticatedStore_CancelDialogTitle: 'Récupération annulée',\n QuoteEstimation_WhatNext_AuthenticatedStore_CancelDialogMessage:\n 'La récupération de la configuration a été annulée. Vous pouvez fermer votre navigateur, la configuration ne sera pas transmise au CRM Vendeur.',\n\n QuoteEstimation_ProjectDetails_GeneralTitle: 'Général',\n QuoteEstimation_WhatNext_SaveButton: 'Enregistrer mon projet',\n\n QuoteEstimation_LegalNotice:\n 'Ce devis estimatif ne vaut pas devis définitif, ni commande.{br}Un conseiller prendra contact avec vous pour finaliser votre projet. Les prix affichés sont des prix publics conseillés TTC.{br}Le devis estimatif inclut le taux de TVA réduite selon les conditions légales en vigueur.{br}Voir nos {cgvLink} et {cgpLink} pour plus d’informations.',\n QuoteEstimation_WithLivraison_LegalNotice:\n 'Ce devis estimatif ne vaut pas devis définitif, ni commande.{br}Un conseiller prendra contact avec vous pour finaliser votre projet. Les prix affichés sont des prix publics conseillés TTC.{br}Le devis estimatif inclut le taux de TVA réduite selon les conditions légales en vigueur.{br}Voir nos {cgvLink} et {cgpLink} pour plus d’informations.',\n\n QuoteEstimation_PromoTvaMessagePart1: \"Avec la TVA offerte sur les produits posés** jusqu'au {endDate}, \",\n QuoteEstimation_PromoTvaMessagePart2: ' vous ÉCONOMISEZ {price} EUROS sur votre projet',\n QuoteEstimation_LegalPromoTva:\n '**Offre valable du {startDate} au {endDate}. Faites une estimation pose sur {host}, enregistrez votre projet et bénéficiez de TVA offerte sur les produits posés si vous confiez la pose de votre projet à Saint Maclou. Offre valable en magasin Saint Maclou. Hors promotions et commandes en cours, hors accessoires et consommables, non cumulable. Remise valable uniquement pour les particuliers. Remise de 16,67% correspondant à la valeur de la TVA à 20%, ou remise de 9,09% correspondant à la valeur de la TVA à 10%, selon le taux de TVA applicable à votre projet.',\n\n //#region //todo REMOVE : UNUSED\n\n QuoteEstimation_LegalNotice_CGV: 'CGV',\n QuoteEstimation_LegalNotice_CGP: 'CGP',\n QuoteEstimation_LegalNotice_CGV_VenteEnLigne: 'CGV de vente en ligne',\n QuoteEstimation_LegalNotice_CGU: 'CGU',\n QuoteEstimation_LegalPromoTva_STMAC: 'saint-maclou.com',\n Quote_Step9_EstimationTitle: 'Estimation',\n Quote_Step9_PriceFormat: '{price} €',\n Quote_Step9_PriceUnitFormat_M: 'le {unitPrice}',\n Quote_Step9_PriceUnitFormat_F: 'la {unitPrice}',\n Quote_Step9_PriceUnitFormat_m: 'm',\n Quote_Step9_PriceUnitFormat_m2: 'm²',\n Quote_Step9_PriceUnitFormat_Piece: 'pièce',\n Quote_Step9_PriceUnitPaquetFormat_Piece: 'pièces',\n Quote_Step9_PriceUnitPaquetFormat_m2: 'm²',\n\n Floorplan_Title: 'Éditeur de plan',\n\n Floorplan_ErrorNoContext:\n \"Les évaluations 'Localisation' et/ou 'Type de local' sont absents dans la version de paramètrage utilisé\",\n Floorplan_Error_NoLaizeDirection: \"Aucun sens de pose n'a été sélectionné\",\n Floorplan_Error_EmptyPlan: \"Aucun élément de plan n'a été ajouté\",\n Floorplan_Error_Collision: 'Certaines pièces se chevauchent, veuillez les replacer',\n Floorplan_Error_RoomItemOverlaping:\n 'Certains autres éléments se chevauchent, ou débordent d’une pièce. Veuillez les replacer.',\n Floorplan_ErrorNoRoom: 'Veuillez créer une pièce afin de placer cet élément',\n\n Floorplan_QuoteMenu_TotalSurface: 'Le plan',\n Floorplan_QuoteMenu_TotalSurfaceValue: '{area} m²',\n Floorplan_QuoteMenu_LaizeDirection: 'Sens de pose',\n Floorplan_QuoteMenu_LaizeDirection_vertical: 'vertical',\n Floorplan_QuoteMenu_LaizeDirection_horizontal: 'horizontal',\n Floorplan_QuoteMenu_LaizeDirection_none: 'Aucun',\n Floorplan_QuoteMenu_Contournements: 'Contournements',\n Floorplan_QuoteMenu_OpeningCount: 'Ouverture(s)',\n Floorplan_QuoteMenu_OtherElementCount: 'Autres élément(s)',\n Floorplan_QuoteMenu_ContournementsCount: 'Contournement(s)',\n\n //#endregion\n\n Floorplan_HowItWorksOnboarding_Title: 'Comment ça marche ?',\n Floorplan_HowItWorksOnboarding_0: 'Décrivez votre habitation',\n Floorplan_HowItWorksOnboarding_1: 'Dessinez votre plan',\n Floorplan_HowItWorksOnboarding_2: 'Détaillez votre projet',\n Floorplan_HowItWorksOnboarding_3: 'Visualisez votre devis',\n Floorplan_HowItWorksOnboarding_Start: 'Je réalise mon devis estimatif',\n\n Floorplan_Onboarding_Next: 'Suivant',\n Floorplan_Onboarding_Previous: 'Précédent',\n Floorplan_Onboarding_Skip: 'Passer',\n Floorplan_Onboarding_Final: 'Démarrer mon plan',\n Floorplan_Onboarding_Footer_Label: 'Ne plus afficher',\n Floorplan_Onboarding_Step1_Title: 'Mon plan',\n Floorplan_Onboarding_Step1_Text:\n \"Dessinez votre pièce, placez vos ouvertures, vos éléments spécifiques, vos contournements ... Chaque élément a son importance afin d'estimer précisément votre projet.\",\n Floorplan_Onboarding_Step2_Title: 'Pièce',\n Floorplan_Onboarding_Step2_Text:\n \"Créez votre projet à partir d'une forme de pièce prédéfinie et ajustez les dimensions de vos murs en fonction de vos mesures. Ajoutez ou dupliquez une pièce, déplacez les murs ... Personnalisez votre plan afin qu'il soit le plus fidèle possible.\",\n Floorplan_Onboarding_Step3_Title: 'Ouvertures',\n Floorplan_Onboarding_Step3_Text:\n \"Placez vos ouvertures : porte, porte-fenêtre, baie vitrée ou même un passage ouvert vers une autre pièce, renseignez leurs dimensions et leurs matières. Vos dimensions ne sont pas standards ? C'est prévu ! Vous pouvez saisir la mesure exacte.\",\n Floorplan_Onboarding_Step4_Title: 'Autres éléments',\n Floorplan_Onboarding_Step4_Text:\n \"Un placard, une douche, des meubles de cuisine ... autant d'élements que nous déduisons de la surface totale de la pièce. Indiquez leurs dimensions, positionnez-les et le tour est joué !\",\n\n Floorplan_Opening_door: 'Porte',\n Floorplan_Opening_armored_door: 'Porte blindée',\n Floorplan_Opening_front_door: \"Porte d'entrée\",\n Floorplan_Opening_french_door: 'Porte fenêtre',\n Floorplan_Opening_patio_door: 'Baie vitrée',\n Floorplan_Opening_opening: 'Passage ouvert',\n\n Floorplan_RoomElement_shower_bathtub: 'Douche / Baignoire',\n Floorplan_RoomElement_fixed_furniture: 'Meuble non déplaçable',\n Floorplan_RoomElement_cupboard: 'Placard',\n Floorplan_RoomElement_kitchen_furniture: 'Meuble de cuisine',\n Floorplan_RoomElement_trap: 'Trappe',\n Floorplan_RoomElement_fireplace: 'Cheminée',\n Floorplan_RoomElement_opening: 'Ouverture',\n Floorplan_RoomElement_stairs: 'Marche',\n Floorplan_RoomElement_divider: 'Cloison',\n\n Floorplan_RoomFloorList_RDC_Short: 'RDC',\n Floorplan_RoomFloorList_RDC_Long: 'Rez de chaussée',\n\n //* Projects\n Projects_Title: 'Mes projets',\n Projects_ListItemTitle: 'Créer un projet',\n Projects_CreatedBy: 'Créé par {user}',\n Projects_CreatedBy_Store: 'le magasin {storeId}',\n Projects_CreatedBy_Client: 'Client',\n Projects_CreatedByDate: 'le {date}',\n Projects_LastSave: 'Dernière sauvegarde :',\n Projects_Search_Placeholder: 'Rechercher un projet',\n\n Projects_Import: 'Importer un projet',\n Projects_Import_Success: '{imported_count} projet(s) importé(s) avec succès.',\n Projects_Import_Ignored: '{ignored_count} projet(s) ignoré(s)',\n Projects_Import_ExistedProjectIgnored: 'Le projet existe déjà.\\n(ID CLIENT : {customerId})',\n Projects_Import_Error: \"Erreur lors de l'import du projet\",\n Projects_Import_CustomerOverrideDialogTitle: 'Import du projet',\n Projects_Import_CustomerOverrideDialogBody: 'Vous êtes connecté en tant que client.\\n\\nSouhaitez vous importer ce(s) projet(s) pour le client actuel ? (customer_id override)',\n\n Projects_SeeMore: 'Voir le détail',\n ProjectDetails_Resume: 'Continuer le projet',\n ProjectDetails_DeleteProject: 'Supprimer le projet',\n ProjectDetails_AreaValue: '{area} m²',\n ProjectDetails_AmountValue: '{amount} €',\n ProjectDetails_RoomCountValue: 'pièce(s)',\n ProjectDetails_ProjectSummary: 'Résumé du projet',\n ProjectDetails_Area: 'Superficie :',\n ProjectDetails_OpeningCount: \"Nombre d'ouvertures :\",\n ProjectDetails_RoomCount: 'Nombre de pièces :',\n ProjectDetails_LastSave: 'Dernière sauvegarde :',\n ProjectDetails_CreatedBy: 'Créé par :',\n ProjectDetails_CustomerId: 'ID Client :',\n ProjectDetails_Intitule: 'Intitulé du projet',\n ProjectDetails_Description: 'Description',\n ProjectDetails_HistoryList: 'Historique des versions du projet',\n ProjectDetails_Version_CreationDate: 'Date de création',\n ProjectDetails_Version_RoomCount: 'Nombre de pièces',\n ProjectDetails_Version_RoomCount_Short: 'Nbr pièces',\n ProjectDetails_version_Amount: 'Montant',\n ProjectDetails_DialogEditIntituleInformation: \"Veuillez saisir l'intitulé du projet\",\n ProjectDetails_DialogEditDescriptionInformation: 'Veuillez saisir la description du projet',\n ProjectDetails_DialogEditCustomerIdInformation: \"Veuillez saisir l'ID Client du projet\",\n ProjectDetails_Export: 'Exporter le projet',\n\n CardWithDetails_Reference: 'Réf: ',\n CardWithDetails_ReferenceFormat: 'Réf: {value}',\n CardWithDetails_ConditionnementPar: 'Paquet(s) de {value} {unit} ',\n CardWithDetails_Inclus: 'INCLUS',\n RecommendedChoiceBadge_Text: 'Conseillé',\n ZipCodeQuestion_DialogTitle: 'Votre code postal',\n ZipCodeQuestion_DescriptionLabel: 'Localité : ',\n\n //* when click on book an appointment\n Dialog_ProjectSaveHeader: \"Votre projet n'est pas encore enregistré. Souhaitez-vous enregister votre projet ?\\nPour obtenir un devis, vous devez enregistrer votre projet.\",\n Dialog_ProjectSaveBody: 'Souhaitez-vous enregister votre projet ?',\n\n Dialog_ProjectSaveDirtyHeader: 'Des modifications ont été apportées à votre projet',\n Dialog_ProjectSaveDirtyBody: \"Confirmez-vous l'enregistrement des modifications ?\",\n\n DialogLogin_Title: 'Le plan, c’est fait!',\n DialogLogin_Subtitle: 'Assurez vous de bien sauvegarder votre projet avant de passer aux prochaines étapes',\n\n CatalogDialog_BackButton_Label: 'Revenir sur Clic&Pose',\n\n AddressDialog_Title: 'L’adresse du lieu de pose',\n AddressDialog_Description: \"Afin d'éditer votre devis estimatif, nous avons\\nbesoin de connaître l'adresse du lieu de pose.\",\n AddressDialog_Placeholder: \"L'adresse du lieu de pose\",\n AddressDialog_Error_Mistmatch_ZipCode: \"Les codes postaux ne sont pas identiques.\\nVous pouvez retourner à l'étape habitation pour changer votre code postal.\",\n\n //AUTO SAVE : show dialog after 5 min\n Dialog_AutoSaveTitle: 'Enregistrer',\n Dialog_AutoSaveHeader: 'Souhaitez-vous enregister votre projet ?',\n\n ERROR_ROOM_HEATING_TYPE_MISSING_TITLE: 'Type de chauffage manquant',\n ERROR_ROOM_HEATING_TYPE_MISSING_CONTENT: 'Il semblerait que le type de chauffage soit manquant, merci de renseigner cette information dans votre projet avant de poursuivre',\n\n //* MESAGE FROM V3\n ...frFloorPlanMessages,\n //! PLAN\n FloorPlanTutorial_Add_Room: 'Ajoutez{br}une pièce',\n FloorPlanTutorial_Edit_Room: 'Modifiez les dimensions{br}de votre pièce',\n FloorPlanTutorial_Edit_Infos: '& Configurez votre pièce',\n FloorPlanTutorial_Edit_Infos_Mobile: '& Configurez la',\n Room_Area: '{area} m²',\n Room_AreaWithoutItems: '{area} m² / {areaWithoutRoomItems} m² utilisables',\n EditCoteDialog_Title: 'Édition de cote',\n EditCoteDialog_DimensionPropertyLabel: 'Dimension (cm)',\n EditCoteDialog_DimensionPropertyDescription: 'la cote doit être comprise entre ({min}) et ({max}) cm',\n\n Opening_Title: 'Ouvertures /{br}Aménagements',\n Habitation_Title: 'Mon habitation',\n\n //!PANELS\n RoomShapePannel_Title_Sol: 'Séléctionner la forme de votre pièce',\n RoomShapePannel_Title_Wall: 'Séléctionner la forme de votre mur',\n RoomShape_Other: 'Autre',\n RoomShape_Other_Header: 'Pièce atypique',\n RoomShape_Other_Title: 'Votre pièce a une forme atypique ?',\n RoomShape_Other_Subtitle: \"Faites plutôt deviser votre projet par l'un de nos experts afin d'obtenir l'estimation la plus précise possible.\",\n RoomShape_Other_SaveAdvice: 'Un conseiller vous contactera dans les plus brefs délais',\n RoomShape_Other_AppointmentBtn: 'Prendre RDV',\n\n Room_Title_Sol: 'Pièce',\n Room_Title_Wall: 'Murs',\n\n RoomEdit_Wall: 'Type de mur',\n RoomEdit_HeaderTitle_Sol: 'Ma pièce',\n RoomEdit_HeaderTitle_Wall: 'Mon mur',\n RoomEdit_Title_Sol: 'Affinez votre pièce',\n RoomEdit_Title_Wall: 'Affinez votre mur',\n RoomEdit_Subtitle_Sol: 'Complétez les informations manquantes sur votre pièce.',\n RoomEdit_Subtitle_Wall: 'Complétez les informations manquantes sur votre mur.',\n RoomEdit_Button: 'Revenir au plan',\n\n RoomEdit_Localisation_Dialog: `Les aménagements présents sur votre pièce ne sont pas compatibles avec votre changement. En continuant, vous allez les perdre.\\nSouhaitez-vous continuer ?`,\n RoomEdit_Shape: 'Forme de la pièce',\n RoomEdit_Localisation: 'Situation de la pièce',\n RoomEdit_Type: 'Type de la pièce',\n RoomEdit_Floor: 'Etage',\n RoomEdit_RevetementAuSol_Sol: \"Présence d'un revêtement au sol\",\n RoomEdit_RevetementAuSol_Wall: \"Présence d'un revêtement au mur\",\n RoomEdit_FloorType: 'Revêtement actuel',\n RoomEdit_Heating: \"Présence d'un chauffage au sol\",\n RoomEdit_HeatingType: 'Type de chauffage au sol',\n RoomEdit_SearchProduit_BtnTitle: 'Chercher dans notre catalogue',\n RoomEdit_FlooringDirection: 'Sens de pose ?',\n RoomEdit_FlooringDirection_LaizeVertical: 'Sens de pose vertical',\n RoomEdit_FlooringDirection_LaizeHorizontal: 'Sens de pose horizontal',\n RoomEdit_FlooringDirection_LameVertical: 'Lames entières à la verticale',\n RoomEdit_FlooringDirection_LameHorizontal: \"Lames entières à l'horizontal\",\n RoomEdit_FlooringDirection_ClassiqueVertical: 'Optimisation des lames à la verticale',\n RoomEdit_FlooringDirection_ClassiqueHorizontal: \"Optimisation des lames à l'horizontal\",\n\n LaizeView_Description_Reference_Format: 'RÉF: {reference}',\n LaizeView_Description_Unit_Rouleau: 'Mètres linéaires',\n\n RoomEdit_Amenagements_Title: 'Mes aménagements',\n RoomEdit_Amenagements_Openings: 'Ouverture(s)',\n RoomEdit_Amenagements_RoomItems: 'Aménagement(s)',\n RoomEdit_Amenagements_Contournements: 'Autre aménagement(s)',\n RoomEdit_Amenagements_EmptyMessage: 'Vous n’avez pas encore ajouter des aménagements dans cette pièce ajouter un.',\n RoomEdit_Amenagements_AddAmenagement: 'Ajouter un aménagement',\n\n OpeningSelect_Title_Sol: 'Ajouter une ouverture ou{br}un aménagement à votre pièce',\n OpeningSelect_Title_Wall: 'Ajouter une ouverture ou{br}un aménagement à votre mur',\n OpeningSelect_Room_Title_Sol: 'Pièce attachée',\n OpeningSelect_Room_Title_Wall: 'Mur attaché',\n\n OpeningSelect_OpeningList_Title: 'Ouvertures',\n OpeningSelect_RoomElementList_Title_Sol: 'Aménagements',\n OpeningSelect_RoomElementList_Title_Wall: 'Ouvertures',\n OpeningSelect_ContournementList_Title_Sol: 'Autres aménagements',\n OpeningSelect_ContournementList_Title_Wall: 'Aménagements',\n\n OpeningSelect_Contournement_MountedRadiator: 'Radiateur {br}sur pied',\n OpeningSelect_Contournement_MountedElement: 'Element {br}sur pied',\n OpeningSelect_Contournement_Pillar: 'Pilier /{br}obstacle',\n OpeningSelect_Contournement_Stonewall: 'Murs en pierres{br}apparentes ou{br}arrondis',\n OpeningSelect_Contournement_Stairs: 'Escalier',\n OpeningSelect_Contournement_Pipe: 'Tuyau au sol',\n OpeningSelect_Contournement_Railing: 'Rambarde',\n OpeningSelect_Contournement_Tree: 'Arbre',\n\n OpeningSelect_Contournement_WallPipe: 'Tuyau filant /{br}gaine',\n OpeningSelect_Contournement_WallPipeHole: 'Trou tuyau',\n OpeningSelect_Contournement_ElectricEquipment: 'Equipement{br}électrique',\n OpeningSelect_Contournement_WallPillar: 'Pilier /{br}obstacle',\n OpeningSelect_Contournement_Hotspot: 'Point chaud',\n\n OpeningSelect_ContournementDialog_Stonewall_Count: 'Nombre de mètre(s) linéaire(s) dans cette pièce:',\n OpeningSelect_ContournementDialog_Count: 'Nombre de {label} dans cette pièce:',\n\n Opening_Info_TypeTitle: 'Le type d’ouverture*',\n Opening_Info_DimensTitle: 'Dimension*',\n Opening_Info_OtherTitle: 'Autre dimension*',\n OpeningEdit_Title: 'Détail d’Ouverture',\n OpeningEdit_Button: 'Revenir au plan',\n\n RoomItem_Info_TypeTitle: 'Le type d’aménagement*',\n RoomItem_Info_WidthTitle: 'Largeur*',\n RoomItem_Info_HeightTitle_Sol: 'Longueur*',\n RoomItem_Info_HeightTitle_Wall: 'Hauteur*',\n RoomItem_Info_DimensPlaceholder: 'Saisissez la dimension ici',\n RoomItem_Info_DimensUnit: 'cm',\n RoomItem_Info_Dimensions: 'Dimension*',\n RoomItem_Info_Dimensions_Format: 'H {height} x l {width}',\n RoomItemEdit_Button: 'Revenir au plan',\n RoomItemEdit_Title: 'Détail d’Aménagement',\n\n TagType_ToDo: 'à compléter',\n TagType_Done: 'complet',\n TagType_Error: 'erreur',\n\n Step_Title_StepPose: 'Ma pose',\n Step_Title_StepSupport: 'Mon support',\n Step_Title_StepPreparation: 'Ma préparation',\n Step_Title_StepFinitions: 'Mes finitions',\n\n Question_Help: 'En savoir plus',\n\n Product_Ref: 'Réf : {ref}',\n Product_TTC_Label: '*TTC',\n Product_Promo_Banner: 'Promo',\n\n Estimation_Header_Title: 'DEVIS ESTIMATIF',\n Estimation_Pdf_Title: 'Télécharger le devis estimatif',\n Estimation_Appointment_Title: \"Plus qu'une étape !\",\n Estimation_Appointment_SubTitle: `Un conseiller vous contactera prochainement pour vous aider à concrétiser votre projet !\n\n Mais vous pouvez aussi prendre rendez-vous dés à présent avec l'un de nos experts.`,\n Estimation_Appointment_Title2: \"Besoin d'aide pour finaliser votre devis estimatif ?\",\n Estimation_Appointment_SubTitle2: `Prenez rendez-vous en ligne avec un expert pour échanger sur votre projet.\n\n À domicile, en magasin ou par téléphone : on s'occupe de tout !`,\n\n //OBSOLETE\n Estimation_Store_Title: 'Le magasin le plus proche',\n Estimation_Store_Change: 'Changer de magasin',\n\n StoreLocator_HeaderTitle: 'Recherche Votre MAGASIN',\n StoreLocator_SelectStore: 'Choisir ce magasin',\n StoreLocator_NearMyProject: 'Proche de mon projet',\n StoreLocator_SearchPlaceholder: 'Ex: Paris 75000',\n StoreLocator_SearchTitle: 'Saisissez votre code postal ou le nom de votre ville.',\n StoreLocator_SearchResults: '{count} magasins à proximité',\n\n StoreLocator_Store_Days: 'Horaires',\n StoreLocator_Store_Day_1: 'Lundi :',\n StoreLocator_Store_Day_2: 'Mardi :',\n StoreLocator_Store_Day_3: 'Mercredi :',\n StoreLocator_Store_Day_4: 'Jeudi :',\n StoreLocator_Store_Day_5: 'Vendredi :',\n StoreLocator_Store_Day_6: 'Samedi :',\n StoreLocator_Store_Day_7: 'Dimanche :',\n StoreLocator_Store_Open: 'Ouvert',\n StoreLocator_Store_Closed: 'Fermé',\n\n Estimation_Price_Total_HT: 'Total H.T.',\n Estimation_Price: 'DÉTAIL PRIX',\n Estimation_Price_Total_TVA_PERCENTAGE: 'Total TVA ({percentage}%)',\n Estimation_Price_Total_TTC: 'Total TTC',\n Estimation_Price_Total_EcoContribution: 'Dont éco-contribution',\n Appointment_Button_Title: 'Je prends rendez-vous',\n Appointment_Button_ShortTitle: 'Prendre RDV',\n\n Estimation_Habitation: 'MON PROJET',\n Estimation_Habitation_Title: 'Infos générales sur mon projet',\n Estimation_Habitation_Edit: 'Modifier',\n Estimation_Habitation_Edit_Questions_Message:\n 'Ces informations ont un impact direct sur le calcul de votre estimation.{br}Changer vos réponses nécessitera peut-être de répondre à nouveau à certaines questions.{br}Souhaitez-vous continuer ?',\n\n Estimation_Synthese_General: 'Infos générales',\n Estimation_NotCompleted: 'COMPLÉTEZ VOS PIÈCES POUR OBTENIR VOTRE DEVIS ESTIMATIF',\n Estimation_NotCompleted_Button: 'Complétez votre projet',\n Estimation_NotCompleted_NoRoom: 'CRÉEZ LE PLAN DE VOTRE HABITATION POUR OBTENIR UN DEVIS ESTIMATIF',\n Estimation_NotCompleted_NoRoom_Button: 'Reprendre mon parcours',\n Button_ShowEstimation: 'Voir mon devis',\n Estimation_Recap_Produit_Principal: 'Produit principal à poser',\n Estimation_Recap_Produits_Principaux: 'Produits principaux à poser',\n Estimation_Recap_Produit_Complementaire: 'Produits complémentaires',\n Estimation_Recap_Produit_Quantity: 'Quantité : ',\n Estimation_Recap_Produit_Paquet: 'Paquet(s) de {conditionnement} {unit}',\n Estimation_Recap_Produit_Unitaire: 'Unitaire',\n Estimation_Recap_Produit_TotalPrice: 'Soit ',\n\n Estimation_Recap_Main_Oeuvre: 'Main d’œuvre',\n Estimation_Recap_Pose_Depose: 'Dépose',\n Estimation_Recap_Pose_Preparation_Support_Avant_Pose: 'Préparation du support avant pose',\n Estimation_Recap_Pose_Revetement_Principal: 'Pose du revêtement principal',\n Estimation_Recap_Pose_Accessoires: 'Pose accessoires',\n Estimation_Recap_Pose_Complement_Forfait_Divers: 'Complément forfait divers',\n Estimation_Recap_Pose_Nettoyage: 'Nettoyage',\n Estimation_Recap_Pose_Autres: 'Autres',\n Estimation_Recap_Pose_Forfait_Besoin_Supplementaire: 'Forfait besoin supplémentaire',\n Estimation_Recap_Pose_Gestion_Dechets: 'Gestion des déchets',\n\n Estimation_Recap_Livraison: 'Livraison',\n\n HabitationEdit_Title: 'Informations générales',\n HabitationEdit_Subtitle: 'Complétez les informations manquantes sur votre projet.',\n\n CopyProperties_Copy: 'Recopier',\n CopyProperties_CopyValidate: 'Valider la recopie',\n CopyProperties_Continue: 'Passer',\n CopyProperties_Room_Sol: \"Souhaitez-vous recopier les réponses d'une autre pièce ?\",\n CopyProperties_Room_Wall: \"Souhaitez-vous recopier les réponses d'un autre mur ?\",\n CopyProperties_Dialog_Room_Sol: \"Recopier les réponses d'une autre pièce\",\n CopyProperties_Dialog_Room_Wall: \"Recopier les réponses d'un autre mur\",\n CopyProperties_Opening: \"Souhaitez-vous recopier les réponses d'une autre ouverture ?\",\n CopyProperties_Dialog_Opening: \"Recopier les réponses d'une autre ouverture\",\n CopyProperties_RoomItem: \"Souhaitez-vous recopier les réponses d'un autre aménagement ?\",\n CopyProperties_Dialog_RoomItem: \"Recopier les réponses d'un autre aménagement\",\n\n MapSwitch_Sol: 'Revêtement de sol',\n MapSwitch_Wall: 'Revêtement de mur',\n MapSwitch_Mobile_Sol: 'Sol',\n MapSwitch_Mobile_Wall: 'Mur',\n\n Room_DeleteDialog_Title_Sol: 'Supprimer la pièce \"{name}\"',\n Room_DeleteDialog_Title_Wall: 'Supprimer le mur \"{name}\"',\n\n //* Analyse calcul en lés\n LaizeCalcDialog_Title: 'Studio',\n LaizeCalcDialog_Back: 'Retour',\n LaizeCalcDialog_Params_Title: 'Paramètres',\n LaizeCalcDialog_Params_Type: 'Type :',\n LaizeCalcDialog_Params_Type_rouleau: 'Rouleau',\n LaizeCalcDialog_Params_Type_lamePleine: 'Lame pleine',\n LaizeCalcDialog_Params_LaizeMargin: 'Marge interne lé {readonly}',\n LaizeCalcDialog_Params_BandWidth: 'Largeur rouleau {readonly}',\n LaizeCalcDialog_Params_RaccordLength: 'Taille raccord {readonly}',\n LaizeCalcDialog_Params_MotifWidth: 'Largeur motif {readonly}',\n LaizeCalcDialog_Params_MotifLength: 'Longueur motif {readonly}',\n LaizeCalcDialog_Params_LongueurCm: 'Longueur {readonly}',\n LaizeCalcDialog_Params_LaizeConsecutiveBandsMargin: 'Marges supplémentaires {readonly}',\n LaizeCalcDialog_Params_ReadonlyValueFormat: '{value} cm',\n\n LaizeCalcDialog_ProductSelector_Title: 'Produit :',\n LaizeCalcDialog_IterationStep_Title: 'Étape :',\n\n LaizeCalcDialog_Band_Title: 'BANDE {index}',\n LaizeCalcDialog_Band_Lenght: 'Longueur :',\n LaizeCalcDialog_Band_Width: 'Largeur :',\n\n LaizeCalcDialog_LaizeResult_Total: 'TOTAL : ',\n LaizeCalcDialog_LaizeResult_RaccordLength: 'Longueur raccord :',\n LaizeCalcDialog_LaizeResult_FormatM: '{value} m',\n LaizeCalcDialog_LaizeResult_FormatML: '{value} mL',\n\n LaizeCalcDialog_LaizeDirection_Part1: 'SENS',\n LaizeCalcDialog_LaizeDirection_Part2: 'DE POSE',\n //FIN DE PARCOURS\n FinDeParcours_Title: 'Finalisez votre projet',\n FinDeParcours_Step_Options: 'Options',\n FinDeParcours_Step_Syntheses: 'Synthèse',\n FinDeParcours_Step_Quote: 'Devis',\n\n FinDeParcours_Step_Options_Title: 'Mes Options',\n\n FinDeParcours_Step_Syntheses_Title: 'Synthèse de Mon projet',\n FinDeParcours_Step_Syntheses_StoreTitle: 'Le magasin qui prendra en charge votre projet : ',\n FinDeParcours_Step_Syntheses_StoreChange: 'Changer de magasin',\n FinDeParcours_Step_Syntheses_StoreMessage: 'Un conseiller va vous contacter pour vous accompagner sur votre projet.',\n\n FinDeParcours_Step_ChangesAlert: \"Ces informations ont un impact direct sur le calcul de votre estimation.\\nChanger vos réponses nécessitera peut-être de répondre à nouveau à certaines questions.\\nSouhaitez-vous continuer ?\",\n\n FinDeParcours_Step_Quote_Title: 'Mon Devis',\n FinDeParcours_Step_Quote_TotalTitle: 'Confiez la pose de vos produits à nos experts',\n FinDeParcours_Step_Quote_Subtitle: 'Prises de mesures, diagnostic, préparation des sols... nos experts assurent la pose de votre chantier !',\n\n FinDeParcours_Step_Congratulation_Title: 'félicitations',\n FinDeParcours_Step_Congratulation_Subtitle: 'vous avez terminé votre projet !',\n FinDeParcours_Step_Congratulation_Text: \"Félicitations vous avez finalisé votre projet. Un conseiller du magasin de {ville} va recevoir votre\\nprojet et vous rappeler dans les prochaines heures. Si vous le souhaitez, vous pouvez également\\nprendre rendez-vous pour suivre votre projet (validation des produits, diagnostic technique, prises\\nde mesure).\",\n\n RoomDimens_Title_Sol: \"Préciser les dimensions principales de votre pièce\",\n RoomDimens_Title_Wall: \"Préciser les dimensions principales de votre mur\",\n RoomDimens_Shape_Sol: \"La forme de votre pièce*\",\n RoomDimens_Shape_Wall: \"La forme de votre mur*\",\n Dimens_WidthTitle: 'Largeur*',\n Dimens_HeightTitle: 'Longueur*',\n Dimens_HeightTitle_Sol: 'Longueur*',\n Dimens_HeightTitle_Wall: 'Hauteur*',\n Dimens_InputPlaceholder: 'Saisissez la dimension ici',\n Dimens_DimensUnit: 'cm',\n Dimens_ErrorLimits: 'Veuillez saisir la largeur comprise entre ({min}) et ({max}) cm',\n};\n\nexport type StringKey = keyof typeof frMessages;\n","\n\n//*todo : merge with frMessages in fr.ts\nexport const frFloorPlanMessages = {\n\n Locale: 'fr-FR',\n\n COMMON_CM_UNIT: 'cm',\n\n AddRoomDialogTitle: 'Pièces',\n AddOpeningWarningDialogTitle: 'Ouvertures',\n AddRoomItemDialogTitle: 'Autres éléments',\n LaizeDirectionTitle_rouleau_vertical: 'Sens de pose : vertical',\n LaizeDirectionTitle_rouleau_horizontal: 'Sens de pose : horizontal',\n LaizeDirectionTitle_lamePleine_vertical: 'Disposition des lames : vertical',\n LaizeDirectionTitle_lamePleine_horizontal: 'Disposition des lames : horizontal',\n LaizeDirectionTitle_lamePleine_classique: 'Disposition des lames : optimisation des lames',\n LaizeDirectionTitle_lamePleine_non: 'Disposition des lames : optimisation des lames',\n LegendInfoText_Sol: 'Les côtes représentent les dimensions intérieures des pièces.',\n LegendInfoText_Wall: 'Les côtes représentent les dimensions intérieures des murs.',\n EditCoteTitle: 'Édition de cote',\n\n LegendInfoText: 'Les cotes représentent les dimensions intérieures des pièces.',\n\n //* OPENINGS\n Opening_Door: 'Porte',\n Opening_ArmoredDoor: 'Porte blindée',\n Opening_FrenchDoor: 'Porte fenêtre',\n Opening_FrontDoor: \"Porte d'entrée\",\n Opening_PatioDoor: 'Baie vitrée',\n Opening_opening: 'Passage ouvert',\n\n //* ROOM ITEMS - SOL\n RoomItem_ShowerBathtub: 'Douche / Baignoire',\n RoomItem_FixedFurniture: 'Meuble non déplaçable',\n RoomItem_Cupboard: 'Placard',\n RoomItem_KitchenFurniture: 'Meuble de cuisine',\n RoomItem_Trap: 'Trappe',\n RoomItem_Fireplace: 'Cheminée',\n RoomItem_Opening: 'Ouverture',\n RoomItem_Stairs: 'Marche',\n RoomItem_Divider: 'Cloison',\n RoomItem_HeavyElement: 'Élément lourd (jaccuzi, pot fleur...)',\n RoomItem_SewerPlate: 'Regard, plaque égout',\n\n //* ROOM ITEMS - WALL\n RoomItem_Door: 'Porte',\n RoomItem_Window: 'Fenêtre',\n RoomItem_UnlaidArea: 'Zone non posée',\n\n RoomItemDialog_Stairs_Warning: 'Attention : Cet élément représente une seule marche.',\n RoomItemDialog_DimensionsWidthPropertyMissingError: \"Veuillez saisir la largeur de l'élément.\",\n RoomItemDialog_DimensionsWidthPropertyMissingErrorLimits: 'Veuillez saisir la largeur comprise entre ({min}) et ({max}) cm',\n\n RoomItemDialog_DimensionsLengthPropertyMissingError: \"Veuillez saisir la longueur de l'élément.\",\n RoomItemDialog_DimensionsLengthPropertyMissingErrorLimits:\n 'Veuillez saisir la longueur comprise entre ({min}) et ({max}) cm',\n RoomItemDialog_PutFlooringPropertyLabel: 'Faut-il y poser le revêtement ?',\n RoomItemDialog_PutPlinthesPropertyLabel: 'Faut-il poser des plinthes également ?',\n\n EditCoteDialog_DimensionPropertyLabel: 'Dimension (cm)',\n EditCoteDialog_DimensionPropertyDescription: 'la cote doit être comprise entre ({mini}) et ({maxi}) cm',\n\n RoomItemDialog_RoomTypeList_ChambreDressing: 'Chambre / Dressing',\n RoomItemDialog_RoomTypeList_Bureau: 'Bureau',\n RoomItemDialog_RoomTypeList_Salon: 'Salon',\n RoomItemDialog_RoomTypeList_SalleManger: 'Salle à manger',\n RoomItemDialog_RoomTypeList_Cuisine: 'Cuisine',\n RoomItemDialog_RoomTypeList_WC: 'WC',\n RoomItemDialog_RoomTypeList_SalleEau: \"Salle d'eau ou salle de bain\",\n RoomItemDialog_RoomTypeList_Buanderie: 'Buanderie',\n RoomItemDialog_RoomTypeList_Veranda: 'Veranda',\n RoomItemDialog_RoomTypeList_HallEntree: 'Hall / entrée',\n RoomItemDialog_RoomTypeList_Couloir: 'Couloir',\n RoomItemDialog_RoomTypeList_Garage: 'Garage',\n RoomItemDialog_RoomTypeList_TerasseBalconCouvert: 'Terrasse ou balcon sous abri',\n RoomItemDialog_RoomTypeList_TerasseBalconNonCouvert: 'Terrasse ou balcon non couverte',\n RoomItemDialog_RoomTypeList_BordPiscinePlat: 'Bord de piscine plat',\n RoomItemDialog_RoomTypeList_BordPiscineIncline: 'Bord de piscine incliné',\n RoomItemDialog_RoomTypeList_Jardin: 'Jardin',\n RoomItemDialog_RoomTypeList_LocalProIndividuel: 'Local professionnel individuel',\n RoomItemDialog_RoomTypeList_PartieCommuneCoPro: \"Parties communes d'une co-propriété\",\n RoomItemDialog_RoomTypeList_LocalProCollectif: 'Local professionnel collectif',\n RoomItemDialog_RoomTypeList_ChambreHotel: \"Chambre d'hotel\",\n RoomItemDialog_RoomTypeList_Boutique: 'Boutique',\n RoomItemDialog_RoomTypeList_LieuTresFrequente: 'Lieu très fréquenté',\n RoomItemDialog_RoomTypeList_Industrie: 'Industrie',\n RoomItemDialog_RoomTypeList_Evenementiel: 'Évènementiel',\n RoomItemDialog_RoomTypeList_Ascenseur: 'Ascenseur',\n RoomItemDialog_RoomTypeList_AutresPartiesCommunes: 'Autres parties communes',\n RoomItemDialog_RoomTypeList_Cour: 'Cour',\n RoomItemDialog_RoomTypeList_ToitTerrasseAvecEtanchéite: 'Toit terrasse avec étanchéité',\n RoomItemDialog_RoomTypeList_Paves: 'Pavés',\n RoomItemDialog_RoomTypeList_GraviersEnrobes: 'Graviers / enrobés',\n RoomItemDialog_RoomTypeList_StructureBoisMetal: 'Structure (Bois, métal)',\n\n RoomItemDialog_RoomFloorList_RDC: 'RDC',\n RoomItemDialog_RoomFloorList_Etage1a3: '1er au 3ème étage',\n RoomItemDialog_RoomFloorList_4etPlus: '4ème étage et plus',\n RoomItemDialog_RoomFloorList_Floor: 'étage',\n\n RoomItemDialog_RoomCurrentFlooringList_Beton: 'Béton (Fondation dalle brute)',\n RoomItemDialog_RoomCurrentFlooringList_Ciment: 'Ciment (chape ou ragréage)',\n RoomItemDialog_RoomCurrentFlooringList_PlancherBois: 'Plancher en bois',\n RoomItemDialog_RoomCurrentFlooringList_BétonPeintCire: 'Béton peint ou ciré',\n RoomItemDialog_RoomCurrentFlooringList_ChapeSeche: 'Chape sèche (plaque de rénovation)',\n RoomItemDialog_RoomCurrentFlooringList_Terre: 'Terre',\n RoomItemDialog_RoomCurrentFlooringList_ParquetColle: 'Parquet collé',\n RoomItemDialog_RoomCurrentFlooringList_ParquetStratifieNonColle: 'Parquet ou stratifié non collé',\n RoomItemDialog_RoomCurrentFlooringList_Carrelage: 'Carrelage',\n RoomItemDialog_RoomCurrentFlooringList_Moquette: 'Moquette',\n RoomItemDialog_RoomCurrentFlooringList_RevetementPlastique: 'Plastique (vinyle, lino, dalle, gazon)',\n RoomItemDialog_RoomCurrentFlooringList_TerasseBoisComposite: 'Terrasse bois ou composite',\n\n RoomItemDialog_RoomCurrentFlooringList_Peinture: 'Peinture',\n RoomItemDialog_RoomCurrentFlooringList_PapierPeint: 'Papier peint',\n RoomItemDialog_RoomCurrentFlooringList_Crepis: 'Crepis',\n RoomItemDialog_RoomCurrentFlooringList_Lambris: 'Lambris',\n RoomItemDialog_RoomCurrentFlooringList_MoquetteMurale: 'Moquette murale',\n RoomItemDialog_RoomCurrentFlooringList_VinyleMural: 'Vinyle mural',\n\n RoomItemDialog_RoomCurrentFlooringList_PlacoPlatreCiment: 'Placo / Platre / Ciment',\n RoomItemDialog_RoomCurrentFlooringList_Beton_Wall: 'Beton',\n RoomItemDialog_RoomCurrentFlooringList_Bois: 'Bois',\n RoomItemDialog_RoomCurrentFlooringList_Pierre: 'Pierre',\n RoomItemDialog_RoomCurrentFlooringList_Parpaing: 'Parpaing',\n\n RoomItemDialog_RoomHeatingTypeList_PasDeChauffage: \"Je n'ai pas de chauffage au sol\",\n RoomItemDialog_RoomHeatingTypeList_BasseTemperatureEau: 'Basse T° à eau (<28°)',\n RoomItemDialog_RoomHeatingTypeList_BasseTemperatureAccumulation: 'Basse T° à accumulation (<28°)',\n RoomItemDialog_RoomHeatingTypeList_HauteTemperature: 'Haute température (>28°)',\n RoomItemDialog_RoomHeatingTypeList_ElectriqueRayonnant: 'Électrique rayonnant',\n RoomItemDialog_RoomHeatingTypeList_Reversible: 'Réversible',\n RoomItemDialog_RoomHeatingTypeList_SystemeRapporte: 'Système rapporté',\n RoomItemDialog_RoomHeatingTypeList_UnknownType: 'Je ne connais pas le type de chauffage au sol',\n\n RoomItemDialog_RoomWallTypeList_Mur: 'Mur',\n RoomItemDialog_RoomWallTypeList_Credence: 'Crédence',\n RoomItemDialog_RoomWallTypeList_TablierBaignoire: 'Tablier baignoire',\n\n LaizeLines_Title: 'CONSO PRODUIT',\n LaizeDirectionDialog_Description: \"Le sens de pose ne se choisit pas au hasard, il impacte la quantité de produit : on peut opter pour une pose en fonction de l'entrée de la lumière dans la pièce, du sens de la marche ou encore en fonction du nombre de raccords. Si vous avez un projet multi-pièces le sens de pose sera identique. Réfléchissez-y, nous validerons avec vous !\",\n LaizeView_Title: 'CONSO PRODUIT',\n LaizeDirectionView_length: 'Mètres linéaires',\n LaizeDirectionView_length_LamePleine_Horizontal: \"Lames entières à l'horizontal\",\n LaizeDirectionView_length_LamePleine_Vertical: 'Lames entières à la verticale',\n LaizeDirectionView_length_LamePleine_Classique: 'Optimisation des lames',\n\n AmenagementDialog_Title: \"Etes-vous sûr de ne pas avoir d'aménagement ?\",\n AmenagementDialog_Subtitle: `Une ouverture peut être une porte, porte-fenêtre, baie vitrée ou même un passage ouvert vers une autre pièce.\\nUn aménagement peut être un placard, une douche, des meubles de cuisine ... soit des d'éléments que nous déduisons de la surface totale de la pièce.\\nPositionnez-les pour avoir l'estimation la plus juste possible !`,\n AmenagementDialog_Yes: 'Finalisez votre projet',\n AmenagementDialog_No: 'Revenir au plan',\n\n OpeningWarning_RoomInfoIncomplete_Dialog_Title: 'Il manque quelque chose',\n OpeningWarning_RoomInfoIncomplete_Dialog_Subtitle: `Merci de compléter la section \"Ma pièce\" pour ajouter un aménagement sur cette pièce.`,\n OpeningWarning_RoomInfoIncomplete_Dialog_CTA: 'Compléter \"Ma pièce\"',\n\n OpeningWarning_SelectRoom_Dialog_Title: \"Déplacement de l'ouverture\",\n OpeningWarning_SelectRoom_Dialog_Subtitle: \"Attacher l'ouverture à une pièce ?\",\n OpeningWarning_SelectRoom_Dialog_Validate: \"Choisir cette pièce\",\n\n MoveAmenagementWarning_Dialog_Title: 'Déplacement impossible',\n MoveAmenagementWarning_Dialog_Title_CTA: 'Annuler le déplacement',\n MoveOpeningWarning_Dialog_Subtitle: `Le type d'ouverture \"{type}\" n'est pas compatible sur les pièces {localisation}.`,\n MoveRoomItemWarning_Dialog_Subtitle: `Le type d'aménagement \"{roomItemType}\" n'est pas compatible sur les pièces {unit} - {localisation} - {roomType}.`,\n\n Contournement_Toast_Success: 'Contournements enregistrés !',\n\n EstimationViewRollOver_Title_Complete: 'Finalisez votre projet',\n EstimationViewRollOver_Title_ToDo: 'Finaliser mon projet',\n EstimationViewRollOver_Title_NoRoom_Sol: 'Ajouter une pièce',\n EstimationViewRollOver_Title_NoRoom_Wall: 'Ajouter un mur',\n EstimationViewRollOver_Title_SeeQuote: 'Voir mon devis',\n};\n\nexport type FloorPlanStringKey = keyof typeof frFloorPlanMessages;\n","import Redux from 'redux';\nimport { frMessages } from './fr';\n\nexport type StringsState = {\n defaultLocale: string;\n locale: string;\n supported_locales: string[];\n messages: Record;\n}\n\nconst initialStringsState: StringsState = {\n defaultLocale: 'fr',\n locale: 'fr',\n supported_locales: ['fr'],\n messages: frMessages,\n};\n\nexport const I18nReducer = (state = initialStringsState, action: Redux.Action) => state;\n\n\n","import { RouterState } from 'connected-react-router';\nimport { useSelector } from 'react-redux';\nimport * as Redux from 'redux';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport * as ReduxLoger from 'redux-logger';\nimport { Persistor, persistReducer, persistStore } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport ThunkMiddleware from 'redux-thunk';\n\nimport { Constants } from '../Constants';\nimport { AuthenticationMiddleware } from '../Services/Authentication/AuthenticationMiddleware';\nimport { MeMiddleware } from '../Services/Me/MeMiddleware';\nimport { AuthenticationReducer, AuthenticationState } from '../Services/Authentication/AuthenticationReducer';\nimport { MeReducer, MeState } from '../Services/Me/MeReducer';\nimport { frMessages } from '../Locales/fr';\nimport { RouterReducer } from './browserHistory';\nimport { StringsState, I18nReducer } from '../Locales/i18nReducer';\n\nconst I18n: StringsState = {\n locale: 'fr',\n defaultLocale: 'fr',\n supported_locales: ['fr'],\n messages: frMessages,\n};\n\nexport type AppState = {\n router: RouterState;\n I18n: StringsState;\n Authentication: AuthenticationState;\n Me: MeState;\n};\n\nexport let store: Redux.Store;\n\nexport type PolStoreConfig = { store: Redux.Store; persistor: Persistor };\n\nexport class PolStore {\n public static getStore = (): PolStoreConfig => {\n const middlewares: Array = [ThunkMiddleware, AuthenticationMiddleware, MeMiddleware];\n if (Constants.isLocalDev) {\n middlewares.push(\n ReduxLoger.createLogger({\n //* action from RouterReducer\n predicate: (getState, action) => !action.type.includes('@@router'),\n })\n );\n }\n\n const rawAppReducer = Redux.combineReducers({\n router: RouterReducer,\n I18n: I18nReducer,\n Authentication: AuthenticationReducer,\n Me: MeReducer,\n });\n\n const ApplicationReducer = persistReducer(\n {\n key: Constants.AUTH_STORAGE_KEY,\n whitelist: ['Authentication'],\n storage,\n },\n rawAppReducer\n );\n\n const composeEnhancers = composeWithDevTools({});\n const enhancer = composeEnhancers(Redux.applyMiddleware(...middlewares));\n\n const initialAppState = { I18n };\n store = Redux.createStore(ApplicationReducer, initialAppState, enhancer);\n const persistor: Persistor = persistStore(store);\n return { store, persistor };\n };\n}\n\nexport const useAppState = (): AppState => useSelector((state: AppState) => state);\n\nexport const useMe = () => useSelector((state: AppState) => state.Me);\n","import * as Redux from 'redux';\nimport { AuthService } from '../Services/Authentication/AuthService';\nimport { AppState } from './PolStore';\n\nimport { store } from './PolStore'\n\nexport class StoreProvider {\n\n public static getStore = (): Redux.Store => store;\n\n public static getState = (): AppState => StoreProvider.getStore().getState();\n public static dispatch = (action: any) => StoreProvider.getStore().dispatch(action);\n\n public static getToken = async (requestBy?: string): Promise => {\n //const authToken: string = await this.getAuthorization(`[ REQUESTED BY ] withAuth for ${url}`);\n return AuthService.getAuthorization();\n }\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { CALL_HISTORY_METHOD } from './actions';\n/**\n * This middleware captures CALL_HISTORY_METHOD actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\n\nvar routerMiddleware = function routerMiddleware(history) {\n return function (store) {\n return function (next) {\n return function (action) {\n // eslint-disable-line no-unused-vars\n if (action.type !== CALL_HISTORY_METHOD) {\n return next(action);\n }\n\n var _action$payload = action.payload,\n method = _action$payload.method,\n args = _action$payload.args;\n history[method].apply(history, _toConsumableArray(args));\n };\n };\n };\n};\n\nexport default routerMiddleware;","import { connectRouter, routerMiddleware as createRouterMiddleware } from 'connected-react-router';\nimport { createBrowserHistory, History } from 'history';\nimport { Middleware, Reducer } from 'redux';\n\nexport const browserHistory: History = createBrowserHistory();\nexport const RouterReducer: Reducer = connectRouter(browserHistory);\nexport const RouterMiddleware: Middleware = createRouterMiddleware(browserHistory);\n\n\n","import { AppRoutes } from './Configs/AppRoutes';\n\nexport class Constants {\n //public static SHOW_ONBOARDING_STORAGE_KEY = 'pol-showOnboarding';//OBSOLETE IN V3\n\n //* STORAGE KEY\n public static AUTH_STORAGE_KEY = 'pol-auth';\n public static DEVICE_ID_STORAGE_KEY = 'pol-deviceId';\n public static ONBOARDING_HOWITWORKS_SEEN_STORAGE_KEY = 'pol-onboarding-howitworks-seen';\n public static BO_CLEAR_TOKEN: string = 'BO_ClearToken';\n\n //* API\n public static CLIENT_ID = 'CLICANDPOSE_FRONT';\n public static CLIENT_SECRET = 'Ideine';\n private static API_BASE_URL = '__API_HOST__';\n private static API_BASE_URL_DEV = 'https://clic-and-pose-api-beta.azurewebsites.net';\n //private static API_BASE_URL_DEV = 'http://localhost:5001';\n\n public static isLocalDev = process.env.NODE_ENV === 'development';\n public static VERSION_NUMBER = Constants.isLocalDev ? '3.0.0' : '__BUILD_ID__';\n public static ENVIRONMENT = Constants.isLocalDev ? 'localdev' : '__ENVIRONMENT__';\n\n public static isStMacProd = () => Constants.ENVIRONMENT === 'prod';\n public static isIdeineProd = () => !['dev', 'test', 'beta', 'preprod'].includes(Constants.ENVIRONMENT);\n\n public static QUESTION_PRODUIT_COUNT: number = 4;\n public static QUESTION_SUGGESTION_PRODUIT_COUNT: number = 100; //NO LIMIT\n\n public static getRoot = () => (Constants.isLocalDev ? Constants.API_BASE_URL_DEV : Constants.API_BASE_URL);\n\n public static LOGS = {\n elasticSearchUrl: `${Constants.getRoot()}/api/v1/logwebproxy/sendlog`,\n elasticSearchIndex: Constants.isLocalDev ? 'clic-and-pose-front-web-local' : '__ELASTIC_SEARCH_INDEX__',\n apiKey: '9813d35f-95e0-4a40-9db5-6117ec02055c',\n };\n\n public static isCrmLocation = (pathname: string) => pathname.startsWith(AppRoutes.CRM_LANDING);\n\n public static FASTERIZE_MEDIA_URL = `/fstrz/r/s/`;\n private static USE_FASTERIZE_MEDIA_URL_STRING = Constants.isLocalDev ? 'FALSE' : '__USE_FASTERIZE_MEDIA_URL__';\n public static USE_FASTERIZE_MEDIA_URL = Constants.USE_FASTERIZE_MEDIA_URL_STRING === 'TRUE';\n\n public static USE_DATADOG_RUM = Constants.isLocalDev ? 'FALSE' : '__USE_DATADOG_RUM__';\n public static isDatadogRumEnabled = () => Constants.USE_DATADOG_RUM === 'TRUE';\n\n private static DD_RUM_SESSION_SAMPLE_RATE = Constants.isLocalDev ? '1' : '__DD_RUM_SESSION_SAMPLE_RATE__';\n public static GetDdRumSessionSampleRate = parseInt(Constants.DD_RUM_SESSION_SAMPLE_RATE);\n private static DD_RUM_SESSION_REPLAY_SAMPLE_RATE = Constants.isLocalDev ? '10' : '__DD_RUM_SESSION_REPLAY_SAMPLE_RATE__';\n public static GetDdRumSessionReplaySampleRate = parseInt(Constants.DD_RUM_SESSION_REPLAY_SAMPLE_RATE);\n\n //#region //* STMAC\n\n public static STMAC_CDN_IMAGE_URL_DEV = 'https://media-uat.cdn.saint-maclou.com';\n public static STMAC_CDN_IMAGE_URL = Constants.isLocalDev\n ? Constants.STMAC_CDN_IMAGE_URL_DEV\n : '__STMAC_CDN_IMAGE_URL__';\n\n public static USE_STMAC_CDN_IMAGE_NEW_URL = false; // Constants.USE_STMAC_CDN_IMAGE_URL_NEW_FORMAT === 'TRUE';\n\n public static STMAC_URL_DEV = 'https://front-uat.saint-maclou.com';\n //public static STMAC_URL_DEV = 'https://stmaclou-react-dev.datasolution.site';\n //public static STMAC_URL_DEV = 'https://pol-stmaclou.datasolution.site';\n public static STMAC_URL_PROD = 'https://www.saint-maclou.com';\n\n public static STMAC_FRAME_ID = 'StmacViewFrame-po';\n public static STMAC_URL = Constants.isLocalDev ? Constants.STMAC_URL_DEV : '__STMAC_URL__';\n public static STMAC_LOGIN_URL = `${Constants.STMAC_URL}/simulateur-pose/connexion`;\n public static STMAC_IFRAME_RESPONSE_TIMEOUT_MS = Constants.isLocalDev ? 5000 : 30000;\n\n public static STMAC_CATALOG_BASE_URL_DEV = 'https://pol-stmaclou.datasolution.site';\n public static STMAC_CATALOG_BASE_URL = Constants.isStMacProd()\n ? Constants.STMAC_URL_PROD\n : Constants.isLocalDev\n ? Constants.STMAC_CATALOG_BASE_URL_DEV\n : '__STMAC_CATALOG_URL__';\n public static STMAC_CATALOG_URL = `${Constants.STMAC_CATALOG_BASE_URL}/simulateur-pose/produits/revetement-sol`;\n\n //#endregion\n\n public static GTM_ID = 'GTM-W9X3KST';\n\n public static STMAC_BOOK_APPOINTMENT_URL = (store_slug?: string) =>\n Boolean(store_slug)\n ? `https://www.saint-maclou.com/appointment-scheduling/${store_slug}?origine=clicetpose`\n : 'https://www.saint-maclou.com/appointment-scheduling?origine=clicetpose';\n public static STMAC_CGV_URL = 'https://www.saint-maclou.com/entreprise/conditions-generales-de-vente';\n public static STMAC_CGP_URL =\n 'https://www.saint-maclou.com/entreprise/conditions-generales-de-prestations-de-services';\n}\n","import { withCurrentProjectLogs } from '../Configs/CurrentProjectContext';\nimport { ObjectUtils } from '../Helpers/ObjectUtils';\nimport { AnalyticsLogger } from '../Services/Analytics/AnalyticsLogger';\nimport { LoglevelLogger } from '../Services/Analytics/LoglevelLogger';\nimport { LogLevelType } from '../Services/Analytics/LogLevelType';\nimport { LogMessageFields } from '../Services/Analytics/LogMessageModel';\n\ninterface LogAnalyticsParameters {\n level?: LogLevelType;\n message?: string;\n value?: any;\n data?: any;\n body?: any;\n type?: string;\n}\n\nexport class Logger {\n public static LoggerId = 'pol-devDebug';\n public static LoggerMapId = 'pol-devDebugMap';\n\n public static isLogEnabled = (): boolean => Boolean(localStorage.getItem(this.LoggerId));\n\n public static log(message: string, data: any = '') {\n Logger.isLogEnabled() && console.log(message, ObjectUtils.clone(data));\n }\n\n public static debug(message: string, data?: any) {\n Logger.isLogEnabled() && console.log(message, ObjectUtils.clone(data));\n LoglevelLogger.info(message, data);\n }\n\n public static error(message: string, data?: any) {\n Logger.isLogEnabled() && console.log(message, ObjectUtils.clone(data));\n LoglevelLogger.error(message, data);\n }\n\n public static logInfo(parameters: LogAnalyticsParameters) {\n Logger.isLogEnabled() && console.log(ObjectUtils.clone(parameters));\n this.logAnalytics({ level: LogLevelType.Information, ...parameters });\n }\n\n public static logAnalytics(parameters: LogAnalyticsParameters) {\n const { message = '', value = {}, data = {}, body, level = LogLevelType.Error, type } = parameters;\n const content: LogMessageFields = {\n data,\n error: value?.error ?? value,\n route: value?.errorResponse?.config?.url,\n CustomMessage: message,\n Message: value?.message ?? value.error?.message,\n Stack: value?.stack ?? value?.errorResponse?.stack ?? value.error?.stack,\n LogLevel: level,\n body,\n type,\n ...withCurrentProjectLogs(),\n };\n Logger.isLogEnabled() && console.log(parameters.message, content);\n AnalyticsLogger.send(content);\n }\n}\n","import { StringKey } from '../Locales/fr';\nimport { I18n } from '../Locales/I18nService';\nimport { ApiErrorCodes } from '../Models/ErrorCodes';\nimport { AuthHelper } from '../Services/Authentication/AuthHelper';\nimport { ApiError, HttpStatusCode, toApiError } from '../Services/XHR/ApiError';\nimport { Toast } from '../Web/Services/ToastService';\nimport { Logger } from './Logger';\n\n\nconst logError = (logMessage: string, customHttpErrors: ApiError, dataError: any) => {\n Logger.logAnalytics({\n message: `${logMessage}`,\n value: { ...customHttpErrors, dataError },\n });\n};\n\nexport const handleError = async (error: any): Promise => {\n const customHttpErrors = toApiError(error);\n\n const { isApiError, httpStatusCode, error_code, checkError }: ApiError = customHttpErrors;\n\n const dataError = {\n log_level: 'error',\n timestamp: new Date(),\n context: { userAgent: navigator.userAgent, location: window.location },\n error,\n };\n\n if (httpStatusCode === HttpStatusCode.Unauthorized) {\n if (customHttpErrors.error_message === ApiErrorCodes.TOKEN_IN_FUTURE) {\n //* customer or store\n const isCustomer = AuthHelper.isCustomer();\n Toast.showError({ content: I18n.get(isCustomer ? 'ERROR_CUSTOMER_TOKEN_IN_FUTUR' : 'ERROR_STORE_TOKEN_IN_FUTUR') });\n } else {\n Toast.showError({ content: I18n.get('PermissionDialog_NotAuthenticated') });\n }\n //* il n'y pas d'accueil ou d'écran de connection\n //* pour se logguer si le token est expiré\n return Promise.resolve(true);\n }\n\n if (httpStatusCode === HttpStatusCode.BadRequest) {\n logError('POL: handleError BadRequest', customHttpErrors, dataError);\n }\n\n if (httpStatusCode === HttpStatusCode.Forbidden) {\n logError('POL: handleError Forbidden', customHttpErrors, dataError);\n if (customHttpErrors.error_message === ApiErrorCodes.UPDATE_NOT_ALLOWED) {\n Toast.showError({ content: I18n.get('ERROR_UPDATE_UNAUTHORIZED') });\n } else {\n Toast.showError({ content: I18n.get('Error_FORBIDDEN') });\n }\n return Promise.resolve(true);\n }\n\n if (isApiError && checkError) {\n logError('POL: handleError', customHttpErrors, dataError);\n\n //* let message = 'An error occurred with the server';\n const message =\n I18n.getValue(`Error_${error_code}` as StringKey) ||\n error_code ||\n //errorMessage || //* can be generic error so not usable\n I18n.get(`COMMON_ERROR_MESSAGE` as StringKey) ||\n //* default message in FR 🇫🇷\n \"Quelque chose ne s'est pas passé comme prévu, merci de réessayer.\";\n\n Toast.showError({ content: message });\n }\n\n return Promise.resolve(true);\n};\n\n/**\n * Create a custom error handler, that show a detailled error if needed.\n * @param showDetailledError\n * @returns\n */\nexport const createCustomErrorHandler =\n (showDetailledError: boolean = false) =>\n (error: any) => {\n if (error.isApiError) {\n const apiError = error as ApiError;\n const errorTitle: string = showDetailledError\n ? Boolean(apiError.error_code)\n ? I18n.format('COMMON_ERROR_TITLE', { code: apiError.error_code })\n : apiError.error_code\n ? I18n.format('COMMON_ERROR_TITLE', { code: apiError.httpStatusCode.toString() })\n : I18n.get('Toast_TitleError')\n : I18n.get('Toast_TitleError');\n\n const errorMessage: string = showDetailledError\n ? apiError.error_message || I18n.get('COMMON_ERROR_MESSAGE')\n : I18n.get('COMMON_ERROR_MESSAGE');\n\n Toast.showError({ title: errorTitle, content: errorMessage, duration: 5000 });\n return Promise.resolve(true);\n }\n return Promise.resolve(false);\n };\n\nexport const wrapError = async (\n execAction: () => Promise,\n execParams?: { errorHandler: (error: any) => Promise }\n): Promise => {\n const { errorHandler } = execParams || {};\n try {\n const result: TResult = await execAction();\n return result;\n } catch (error) {\n //* error CAN BE : RESULT of onRequestFailed\n const errorHandled = await errorHandler?.(error) || false;\n if (!errorHandled && !await handleError(error)) {\n throw error;\n }\n }\n};\n","/* eslint-disable no-useless-escape */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport jsonLogic, { RulesLogic } from 'json-logic-js';\nimport Enumerable from 'linq';\nimport _ from 'lodash';\n\n//import { ClipboardUtils } from '../Utils/ClipbordUtils';\nimport { Logger } from '../Errors/Logger';\n\nimport { ConditionDto, QuestionItem } from '../Models/Questions/QuestionDto';\n\nimport { ObjectUtils } from './ObjectUtils';\nimport { QuestionContext } from './QuestionContextHelper';\n\ntype MergedInOperator = { and: Array };\n\ntype InOperator = { in: [string, Array] };\n\nexport interface IsConditionItemVisibleParams {\n readonly question?: QuestionItem;\n readonly condition: ConditionDto;\n rawContext: QuestionContext;\n withLog?: boolean;\n log?: Record;\n}\n\njsonLogic.add_operation('starts_with', (data, params) => {\n return data?.startsWith(params) ?? false;\n});\njsonLogic.add_operation('ends_with', (data, params) => {\n return data?.endsWith(params) ?? false;\n});\n\nexport class ConditionHelper {\n public static addUndefinedInNotAny(rawLogic: string): string {\n const notInRegex = /\"!\":{\"in[^\\]]+\\]\\]\\}/g;\n const originalInRegex = /\\{\"in[^\\]]+\\]\\]\\}/g;\n const optionsRegex = /,.*?\\]/g;\n const result = rawLogic.replace(notInRegex, (correspondance: string) => {\n const inOperator = correspondance.match(originalInRegex);\n if (inOperator !== null) {\n const options = inOperator[0].match(optionsRegex);\n if (options !== null) {\n const newOptionString = options[0].replace(']', `, \"undefined\" ]`);\n const newInOperator = inOperator[0].replace(optionsRegex, newOptionString);\n return correspondance.replace(originalInRegex, newInOperator);\n }\n }\n return correspondance;\n });\n return result;\n }\n\n public static isConditionEvaluateToTrue(isConditionItemVisibleParams: IsConditionItemVisibleParams): boolean {\n const { question, condition, rawContext, withLog, log } = isConditionItemVisibleParams;\n if (condition) {\n const context = ObjectUtils.clone(rawContext);\n const rawLogic: string = condition.json_logic;\n const varValues: Array = ConditionHelper.getVarValues(rawLogic);\n let contextToUse: QuestionContext = context;\n\n let missingsValues = ConditionHelper.getMissingValues(contextToUse, varValues, withLog);\n if (missingsValues.length > 0) {\n //* inject in rawContext missing keys with default value : undefined\n contextToUse = ConditionHelper.injectKeysWithDefaultValue(missingsValues, contextToUse, withLog);\n }\n let logicToUse = ConditionHelper.addUndefinedInNotAny(rawLogic);\n logicToUse = ConditionHelper.qcmParameterInjectionIntoInOperator(logicToUse, contextToUse); //only alter in operator\n\n try {\n const jsonRules = JSON.parse(logicToUse);\n const rules: RulesLogic = jsonRules as RulesLogic;\n const isTrue: boolean = jsonLogic.apply(rules, contextToUse);\n\n if (withLog) {\n //ClipboardUtils.copy(JSON.stringify(contextToUse));\n Logger.debug('ConditionHelper: isConditionEvaluateToTrue', {\n isTrue,\n question,\n condition,\n rawLogic,\n logicToUse,\n varValues,\n result: jsonLogic.apply(rules, contextToUse),\n context: JSON.stringify(context),\n rawContext: JSON.stringify(rawContext),\n contextToUse: JSON.stringify(contextToUse),\n log,\n });\n }\n return isTrue;\n } catch (error) {\n Logger.logAnalytics({\n message: 'POL: ConditionHelper.isConditionEvaluateToTrue',\n value: {\n error,\n condition,\n context: JSON.stringify(context),\n rawContext: JSON.stringify(context),\n contextToUse: JSON.stringify(contextToUse),\n rawLogic,\n },\n });\n return false;\n }\n }\n return true;\n }\n\n public static isSyntheseConditionItemVisible(condition: ConditionDto, context: QuestionContext = {}): boolean {\n if (condition) {\n const rawLogic: string = condition.json_logic;\n const jsonRules = JSON.parse(rawLogic);\n const rules: RulesLogic = jsonRules as RulesLogic;\n const isVisible: boolean = jsonLogic.apply(rules, context);\n return isVisible;\n }\n return true;\n }\n\n private static getVarValues(rawLogic: string): Array {\n let values: Array = [];\n\n //* Regex : find string after \"var\" inside quotes\n //* https://regex101.com/r/nE5eV3/3\n //* (\"?)var\\1.*?\"(.*?)\"/g\n\n const regexPattern = /(\"?)var\\1.*?\"(.*?)\"/g;\n //const regex = new RegExp(regexPattern);\n\n const matches = rawLogic.match(regexPattern);\n matches?.forEach((matchItem: string) => {\n const keyAndValue: Array = matchItem.split(':');\n //* keyAndValue[0] === key \"var\"\n //* keyAndValue[1] === value like question_${id}_option\n let value: string = keyAndValue[1];\n //* remove double quote \"\n value = value.replace(/\"/g, '');\n values = [...values, value];\n });\n //console.log(\"getVarValues\", { rawLogic, regex, matches, values });\n return values.length > 0 ? Enumerable.from(values).distinct().toArray() : [];\n }\n\n private static getMissingValues(\n context: QuestionContext = {},\n values: Array = [],\n withLog: boolean = false\n ): Array {\n if (values.length > 0) {\n let missingValues: Array = [];\n\n values.forEach((key: string) => {\n let valueExist: boolean = false;\n\n if (key.includes('.')) {\n //* like \"evaluations.isLocataire\"\n const splitKeys: Array = key.split('.');\n let currentJsonObject: QuestionContext = context;\n\n splitKeys.forEach((currentKey: string, index: number) => {\n const isLastKey = index === splitKeys.length - 1;\n const valueForCurrentKey: any = currentJsonObject[currentKey];\n if (isLastKey) {\n valueExist = valueForCurrentKey !== undefined;\n } else {\n currentJsonObject = valueForCurrentKey ?? {};\n }\n });\n } else {\n const value: any = context[key];\n valueExist = value !== undefined;\n }\n if (!valueExist) {\n missingValues = [...missingValues, key];\n }\n });\n return missingValues;\n }\n return [];\n }\n\n private static injectKeysWithDefaultValue(\n keys: Array = [],\n rawContext: QuestionContext = {},\n withLog: boolean = false\n ): QuestionContext {\n let contextToUpdate = ObjectUtils.clone(rawContext);\n\n keys.forEach((currentKey: string) => {\n if (currentKey.includes('.')) {\n contextToUpdate = {\n ...contextToUpdate,\n ...ObjectUtils.toObject({\n origin: contextToUpdate,\n path: currentKey,\n value: undefined,\n withLog,\n }),\n };\n } else {\n const value: any = contextToUpdate[currentKey];\n if (value === undefined) {\n contextToUpdate[currentKey] = 'undefined';\n }\n }\n });\n\n return contextToUpdate;\n }\n\n // customize rule with data reorganisation to handle \"in\" operator correctly\n // take the original in operator in entry, e.g.:\n // {\"in\":[ \"question_a\", [\"option_1\", \"option_2\", \"option_3\", \"option_4\"] ]}\n //\n // inject all the selected QCM parameters as an individual in operator linked with and operator, e.g.:\n // {\"and\": [{\"in\":[ \"option_2\", [\"option_1\", \"option_2\", \"option_4\"] ]}, {\"in\":[ \"option_3\", [\"option_1\", \"option_2\", \"option_4\"] ]}]}\n //\n // does it for all IN\n private static qcmParameterInjectionIntoInOperator(rawLogic: string, data: Record): string {\n const originalInRegex = /\\{\"in[^\\]]+\\]\\]\\}/g; // extract and isolate each IN operations\n const questionRegex = /\"question[^,\\}]+/g; // extract question var (e.g. : question_19fdb6ef-08a0-42c4-8418-0bcdb637fbae_option), to get the correct value from context\n const replaceParameterRegex = /\\{\"var[^,]*/g; // replace the whole var object to the corresponding string value (e.g. : option_51ef2837-2951-4f88-b052-c34f95c4e3f3) from context\n const optionRegex = /\"option[^,\\]]+/g; // retrieve options from the rule; an exception is defined to handle correctly IN operator with only 1 option\n\n let abortInTransformation = false;\n // match & substitute values\n const result = rawLogic.replace(originalInRegex, (correspondance: string) => {\n optionRegex.lastIndex = 0;\n let ruleOptions = optionRegex.exec(correspondance);\n\n let m: RegExpExecArray | null;\n\n let newInOperator: MergedInOperator = { and: [] };\n\n questionRegex.lastIndex = 0;\n if ((m = questionRegex.exec(correspondance)) !== null) {\n const match = m[0];\n\n const questionOption: string = JSON.parse(match);\n const dataQuestionOption = _.get(data, questionOption); // handle access object child properties using dot notation string\n\n if (!Boolean(dataQuestionOption)) {\n //! note: le 'abortInTransformation' en dessous\n //! peut provoquer un bug sur la transformation final\n //! car il bypass les transformations précedente\n //! SUGGESTION si bug il y'a : remplacer \"abortInTransformation = true\"\n //! par \"return correspondance\"\n //! VU AVEC @thierry et @mmc\n //! origin bug : https://ideine.visualstudio.com/XBacklog/_workitems/edit/21124\n abortInTransformation = true;\n } else {\n if (Array.isArray(dataQuestionOption)) {\n for (const option of dataQuestionOption as Array) {\n if (ruleOptions?.length === 1 && correspondance.search(JSON.stringify(option)) !== -1) {\n // exception to handle only one IN with 1 value\n newInOperator.and.push(\n JSON.parse(correspondance.replace(replaceParameterRegex, JSON.stringify(option)))\n );\n }\n }\n } else if (correspondance.search(JSON.stringify(dataQuestionOption)) !== -1) {\n newInOperator.and.push(\n JSON.parse(\n correspondance.replace(replaceParameterRegex, JSON.stringify(dataQuestionOption))\n )\n );\n }\n }\n } else {\n return correspondance;\n }\n\n return JSON.stringify(newInOperator);\n });\n return abortInTransformation ? rawLogic : result;\n }\n}\n","import Enumerable from 'linq';\nimport {\n ConfigurationReponseDto,\n ReponseContextTypeDto,\n ReponseQuestionTypeDto,\n SetConfigurationReponseDto,\n} from '../Models/Projects/Configuration';\nimport { ProduitDto } from '../Models/Questions/ProduitDto';\nimport {\n EvaluationDto,\n OptionDto,\n QuestionContextType,\n QuestionItem,\n QuestionType,\n} from '../Models/Questions/QuestionDto';\nimport { ConditionHelper } from './ConditionHelper';\nimport { ObjectUtils } from './ObjectUtils';\nimport { QuestionContext, QuestionContextHelper } from './QuestionContextHelper';\nimport { Logger } from 'Errors/Logger';\n\nexport interface ToConfigurationReponseParameters {\n readonly question: QuestionItem;\n readonly opening_id?: string;\n readonly room_id?: string;\n readonly room_element_id?: string;\n}\n\nexport interface ApplyReponseToQuestionParameters {\n contextId?: string;\n question: QuestionItem;\n reponses: Array;\n produitPrincipal?: ProduitDto;\n withLog?: boolean;\n}\n\nexport class ConfigurationUtils {\n public static canBeSaved = (question: QuestionItem): boolean => {\n switch (question.showQuestion && question.type) {\n case QuestionType.Produit:\n return Boolean(question.produitValue || question.excludeResponseSelected);\n case QuestionType.SingleChoice:\n return Boolean(question.optionValue);\n case QuestionType.MultipleChoices:\n return Boolean(question.optionValues);\n case QuestionType.Number:\n return Boolean(question.numberValue);\n case QuestionType.Comment:\n return Boolean(question.commentValue);\n case QuestionType.ZipCode:\n return Boolean(question.zipCodeValue);\n default:\n return false;\n }\n };\n\n public static hasReponseContext = (reponse: SetConfigurationReponseDto): boolean => {\n switch (reponse.context_type) {\n case ReponseContextTypeDto.Rooms:\n return Boolean(reponse.rooms_context_properties);\n case ReponseContextTypeDto.Openings:\n return Boolean(reponse.openings_context_properties);\n case ReponseContextTypeDto.RoomElements:\n return Boolean(reponse.room_elements_context_properties);\n default:\n return true;\n }\n };\n\n public static toConfigurationReponses = (\n questions: Array = [],\n parameters?: Partial\n ): Array => {\n const toConfigurationReponseDto = (\n parameters: ToConfigurationReponseParameters\n ): SetConfigurationReponseDto => {\n const { question } = parameters;\n\n const configurationReponse: SetConfigurationReponseDto = {\n question_id: question.id,\n type: ConfigurationUtils.toReponseQuestionTypeDto(question.type),\n context_type: question.isFirstProduct\n ? ReponseContextTypeDto.Rooms\n : ConfigurationUtils.toReponseContextTypeDto(question.context_type),\n exclude_response_selected: question.excludeResponseSelected,\n };\n if (question.type === QuestionType.SingleChoice && question.optionValue) {\n configurationReponse.single_choice_properties = { option_id: question.optionValue.id };\n }\n if (question.type === QuestionType.MultipleChoices && question.optionValues) {\n configurationReponse.multiple_choices_properties = {\n option_id_list: question.optionValues.map((x) => x.id),\n };\n }\n if (question.type === QuestionType.Number && question.numberValue) {\n configurationReponse.number_properties = { value: question.numberValue };\n }\n if (question.type === QuestionType.Comment && question.commentValue) {\n configurationReponse.comment_properties = { value: question.commentValue };\n }\n if (question.type === QuestionType.Produit) {\n configurationReponse.produit_properties = {\n code: question.produitValue?.code,\n user_search: question.produitSearch,\n };\n }\n if (question.type === QuestionType.ZipCode && question.zipCodeValue) {\n configurationReponse.zip_code_properties = {\n value: question.zipCodeValue.zipcode,\n description: question.zipCodeValue.description,\n name: question.zipCodeValue.name,\n };\n }\n if (parameters.room_id) {\n configurationReponse.rooms_context_properties = { room_id: parameters.room_id };\n }\n if (parameters.opening_id) {\n configurationReponse.openings_context_properties = { opening_id: parameters.opening_id };\n }\n if (parameters.room_element_id) {\n configurationReponse.room_elements_context_properties = { room_element_id: parameters.room_element_id };\n }\n\n return configurationReponse;\n };\n const results = questions.filter(ConfigurationUtils.canBeSaved)\n .map((question: QuestionItem) => toConfigurationReponseDto({\n question,\n room_id: parameters?.room_id,\n opening_id: parameters?.opening_id,\n room_element_id: parameters?.room_element_id,\n }));\n //sur fin de parcours avec des questions non à jours services/options liées à des pièces\n const ignoreReponses = results.filter((r) => !ConfigurationUtils.hasReponseContext(r));\n if (ignoreReponses.length) {\n Logger.log('toConfigurationReponses', { ignoreReponses });\n }\n return results.filter(ConfigurationUtils.hasReponseContext);\n };\n\n public static toReponseQuestionTypeDto(questionType: QuestionType): ReponseQuestionTypeDto {\n switch (questionType) {\n case QuestionType.SingleChoice:\n return ReponseQuestionTypeDto.SingleChoice;\n case QuestionType.MultipleChoices:\n return ReponseQuestionTypeDto.MultipleChoices;\n case QuestionType.Number:\n return ReponseQuestionTypeDto.Number;\n case QuestionType.Comment:\n return ReponseQuestionTypeDto.Comment;\n case QuestionType.Produit:\n return ReponseQuestionTypeDto.Produit;\n case QuestionType.ZipCode:\n return ReponseQuestionTypeDto.ZipCode;\n default:\n throw getNotSupportedError(questionType);\n }\n }\n\n public static toReponseContextTypeDto(contextType: QuestionContextType): ReponseContextTypeDto {\n switch (contextType) {\n case QuestionContextType.General:\n return ReponseContextTypeDto.General;\n case QuestionContextType.Rooms:\n return ReponseContextTypeDto.Rooms;\n case QuestionContextType.Walls:\n return ReponseContextTypeDto.Walls;\n case QuestionContextType.Openings:\n return ReponseContextTypeDto.Openings;\n case QuestionContextType.RoomElements:\n return ReponseContextTypeDto.RoomElements;\n default:\n throw getNotSupportedError(contextType);\n }\n }\n\n public static applyReponseToQuestion(applyReponseToQuestionParameters: ApplyReponseToQuestionParameters) {\n const { question, reponses, contextId, produitPrincipal, withLog } = applyReponseToQuestionParameters;\n\n const reponse: ConfigurationReponseDto | undefined =\n (contextId\n ? ConfigurationUtils.getReponseByQuestionAndContext(contextId, question.id, reponses)\n : ConfigurationUtils.getReponseByQuestionId(question.id, reponses)) ??\n ConfigurationUtils.getReponseInContextGeneral(question.id, reponses);\n\n withLog &&\n console.log(\n 'applyReponseToQuestion 0',\n ObjectUtils.clone({ question, reponse, contextId, produitPrincipal, reponses })\n );\n\n if (reponse) {\n if (reponse.type === ReponseQuestionTypeDto.Number) {\n const numberValue = reponse.number_properties?.value as string;\n\n const { minimum, maximum } = question.number_properties;\n const valueAsNumber: number = parseInt(numberValue);\n const isValueAsNumberValid = valueAsNumber >= minimum && valueAsNumber <= maximum;\n question.numberValue = numberValue;\n question.showQuestion = true;\n\n if (!isValueAsNumberValid) {\n //* question answer is not valid, show error\n question.errorInvalidNumberValue = true;\n question.isValid = false;\n } else {\n question.errorInvalidNumberValue = false;\n question.isValid = true;\n }\n }\n if (question.type === QuestionType.SingleChoice) {\n if (question.single_choice_properties!.option_list.length > 0) {\n const optionValue: OptionDto | undefined = Enumerable.from(\n question.single_choice_properties!.option_list\n ).firstOrDefault((o) => o.id === reponse.single_choice_properties?.option_id);\n if (optionValue) {\n question.optionValue = optionValue;\n question.isValid = true;\n question.showQuestion = true;\n\n withLog &&\n console.log('applyReponseToQuestion optionValue', {\n question,\n optionValue,\n reponse,\n contextId,\n });\n }\n }\n }\n if (question.type === QuestionType.MultipleChoices) {\n if (question.multiple_choices_properties!.option_list?.length > 0) {\n const reponseOptionValues: Array =\n reponse.multiple_choices_properties?.option_id_list ?? [];\n\n const optionValues: Array = Enumerable.from(\n question.multiple_choices_properties!.option_list\n )\n .where((o: OptionDto) => reponseOptionValues.includes(o.id))\n .toArray();\n\n if (optionValues) {\n question.optionValues = optionValues;\n question.isValid = question.optionValues !== undefined;\n question.showQuestion = true;\n }\n }\n }\n if (question.type === QuestionType.Comment) {\n const commentValue = reponse.comment_properties?.value as string;\n question.commentValue = commentValue;\n question.isValid = true; //* no check on comment\n question.showQuestion = true;\n }\n if (question.type === QuestionType.Produit) {\n const produitValue = reponse.produit_properties?.produit;\n question.produitValue = produitValue;\n question.produitPrincipalCode = produitPrincipal?.code;\n question.produitSearch = reponse.produit_properties?.produit?.code;\n question.produitsLoaded = false;\n question.loadingProduits = false;\n question.isValid = question.produit_properties.is_required ? Boolean(question.produitValue) : true;\n question.showQuestion = true;\n }\n if (question.type === QuestionType.ZipCode) {\n const zipCodeValue = reponse.zip_code_properties?.locality;\n if (zipCodeValue) {\n question.zipCodeData = {\n found: true,\n zipCode: reponse.zip_code_properties?.value,\n localities: [zipCodeValue],\n };\n\n question.zipCodeValue = zipCodeValue;\n question.isValid = Boolean(zipCodeValue);\n question.showQuestion = true;\n }\n }\n question.excludeResponseSelected = reponse.exclude_response_selected;\n }\n withLog &&\n console.log(\n 'applyReponseToQuestion 1',\n ObjectUtils.clone({ question, reponse, contextId, produitPrincipal, reponses })\n );\n return question;\n }\n\n public static getReponseInContextGeneral = (questionId: string, reponses: Array = []) => {\n return reponses.length > 0\n ? Enumerable.from(reponses).firstOrDefault((q: ConfigurationReponseDto) => {\n return q.question_id === questionId && q.context_type === ReponseContextTypeDto.General;\n })\n : undefined;\n };\n\n public static getReponseByQuestionId = (\n questionId: string,\n questions: Array = []\n ): ConfigurationReponseDto | undefined => {\n return questions.length > 0\n ? Enumerable.from(questions).firstOrDefault((q: ConfigurationReponseDto) => q.question_id === questionId)\n : undefined;\n };\n\n public static getReponseByQuestionAndContext = (\n contextId: string,\n questionId: string,\n questions: Array = []\n ): ConfigurationReponseDto | undefined => {\n return questions.length > 0\n ? Enumerable.from(questions).firstOrDefault((q: ConfigurationReponseDto) => {\n if (q.question_id === questionId) {\n if (q.room_elements_context_properties) {\n return q.room_elements_context_properties.room_element_id === contextId;\n }\n if (q.rooms_context_properties) {\n return q.rooms_context_properties.room_id === contextId;\n }\n if (q.openings_context_properties) {\n return q.openings_context_properties.opening_id === contextId;\n }\n }\n return false;\n })\n : undefined;\n };\n\n public static evalQuestionEvalutations = (question: QuestionItem, context: QuestionContext): QuestionContext => {\n //* evaluate attribute\n const evaluations: Array = question.evaluation_list ?? [];\n const evaluationsContext = context.evaluations ?? {};\n\n evaluations.forEach((evaluation: EvaluationDto) => {\n if (evaluation.evaluation_condition) {\n //* AJOUT des evaluations dans le context\n const isEvaluationToAdd: boolean = ConditionHelper.isConditionEvaluateToTrue({\n condition: evaluation.evaluation_condition,\n rawContext: context,\n });\n if (isEvaluationToAdd) {\n evaluationsContext[QuestionContextHelper.toEvaluationValue(evaluation.name)] = evaluation.value;\n }\n } else {\n evaluationsContext[QuestionContextHelper.toEvaluationValue(evaluation.name)] = evaluation.value;\n }\n });\n context.evaluations = evaluationsContext;\n\n return ObjectUtils.clone(context);\n };\n}\n\nexport const getNotSupportedError = (value: any) => {\n return new Error(`${value} : NOT_SUPPORTED`);\n};\n","\nexport type EstimationUrlParameters = { version: string; ref?: string; }\n\nexport class EstimationUrlHelper {\n\n public static toQueryParam({ version, ref }: EstimationUrlParameters): URLSearchParams {\n const params = new URLSearchParams();\n\n const addQuery = (key: string, value: string = '') => {\n if (Boolean(value)) {\n params.append(key, value);\n } else {\n params.delete(key);\n }\n }\n addQuery('version', version);\n addQuery('ref', ref);\n\n return params;\n }\n}","import { Constants } from '../Constants';\n\nexport class ImageProduitHelper {\n //\"https://media.cdn.saint-maclou.com/width-100/96550_3927_Small.jpg\"\n //\"https://media-pp.cdn.saint-maclou.com/412x180/96550_3927_Small.jpg\"\n\n public static toImageUrl(produitCode: string, width: number): string {\n const produitCodeTransformed: string = ImageProduitHelper.transformProduitCode(produitCode);\n //const oldUrl = `https://media.cdn.saint-maclou.com/width-${width}/${produitCodeTransformed}_Small.jpg`;\n const frzImageUrl = `https://media.cdn.saint-maclou.com/${produitCodeTransformed}_Small.jpg?frz-w=${width}&frz-resizeimgs=true`;\n\n return Constants.USE_STMAC_CDN_IMAGE_NEW_URL\n ? `${Constants.STMAC_CDN_IMAGE_URL}/cdn-cgi/image/width=${width}/${produitCodeTransformed}_P1.jpg`\n : frzImageUrl;\n }\n\n public static toImageUrlP1(produitCode: string, size: number): string {\n const produitCodeTransformed: string = ImageProduitHelper.transformProduitCode(produitCode);\n return `https://media.cdn.saint-maclou.com/cdn-cgi/image/format=auto,width=${size},height=${size}/${produitCodeTransformed}_P1.jpg`;\n }\n\n //* on enleve les zéros (0) au début : 003701 -> 3701\n private static removeZeroFromStart(number: string): string {\n const val = number.replace(/^0+/, '');\n return val === '' ? '0' : val;\n }\n\n //* 003701-00049 -> 3701-49 : remove 0 before first number other than 0\n public static transformProduitCode(produitCode: string): string {\n const produitCodes: Array = produitCode.split('-');\n if (produitCodes.length === 2) {\n const [produitCode1, produitCode2] = produitCodes;\n return `${ImageProduitHelper.removeZeroFromStart(produitCode1)}_${ImageProduitHelper.removeZeroFromStart(\n produitCode2\n )}`;\n }\n return produitCode;\n }\n}\n","import cloneDeep from 'lodash/cloneDeep';\n\nexport interface ToObjectParameters {\n readonly origin: Record;\n readonly path: string;\n readonly value: any;\n readonly withLog?: boolean;\n}\n\nexport class ObjectUtils {\n public static clone(source: T): T {\n return cloneDeep(source);\n }\n\n public static toObject = (toObjectParameters: ToObjectParameters): Record => {\n const { origin, path, value } = toObjectParameters;\n\n let keys: Array = path.split('.');\n let objects: Array> = [];\n let currentObj: Record = {};\n\n const getValueInOrigin = (key: string): any | undefined => {\n const value: any = origin[key];\n return value;\n };\n\n while (keys.length > 0) {\n //head = question_8e5149a3-05af-4f8c-bbe9-e33f1408f06c\n //tail = [infos_produit.groupe_article.famille_article.sous_famille_article.code]\n const [head, ...tail] = keys;\n\n if (currentObj[head] === undefined) {\n if (keys.length === 1) {\n currentObj[head] = value;\n } else {\n const headValue = getValueInOrigin(head);\n currentObj[head] = ObjectUtils.clone({ ...headValue });\n }\n objects = [...objects, currentObj];\n }\n currentObj = currentObj[head];\n keys = tail;\n }\n const result = objects[0];\n return result;\n };\n\n public static deepEqual(object1: any, object2: any): boolean {\n if (object1 === undefined && object2 === undefined) {\n return true;\n }\n if (object1 !== undefined && object2 === undefined) {\n return false;\n }\n\n if (object1 === undefined && object2 !== undefined) {\n return false;\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n const val2 = object2[key];\n const areObjects = ObjectUtils.isObject(val1) && ObjectUtils.isObject(val2);\n if ((areObjects && !ObjectUtils.deepEqual(val1, val2)) || (!areObjects && val1 !== val2)) {\n return false;\n }\n }\n\n return true;\n }\n\n public static isObject(object: any) {\n return object !== undefined && object !== null && typeof object === 'object';\n }\n\n public static hasProperties = (object: any, keys: Array = []) => {\n if (!ObjectUtils.isObject(object)) {\n return false;\n }\n const objectKeys = Object.keys(object);\n const hasProperties = keys.every((key) => objectKeys.includes(key as string));\n return hasProperties;\n };\n public static toHashCode = (obj: any): number => {\n return this.hashCode(JSON.stringify(obj));\n }\n\n public static hashCode = (str: string): number => {\n let hash = 0;\n if (str.length === 0) {\n return hash;\n }\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return hash;\n }\n\n public static size = (object: any) => {\n const objectList = [];\n const stack = [object];\n let bytes = 0;\n\n while (stack.length) {\n const value = stack.pop();\n\n if (typeof value === 'boolean') {\n bytes += 4;\n }\n else if (typeof value === 'string') {\n bytes += value.length * 2;\n }\n else if (typeof value === 'number') {\n bytes += 8;\n }\n else if\n (\n typeof value === 'object'\n && objectList.indexOf(value) === -1\n ) {\n objectList.push(value);\n\n for (let i in value) {\n stack.push(value[i]);\n }\n }\n }\n\n const roundOff = (value: number) => Math.round(value * 100) / 100;\n\n const fileSize = bytes;\n const fileSizeKB = roundOff(fileSize * 0.001);\n const fileSizeMB = roundOff(fileSizeKB * 0.001);\n //const fileSizeGB = roundOff(fileSizeMB * 0.001);\n // console.log(\"File sizes: \");\n // console.log(fileSize + \" Bytes\");\n // console.log(fileSizeKB + \"KB\");\n // console.log(fileSizeMB + \"MB\");\n // console.log(fileSizeGB + \"GB\");\n\n return fileSizeMB > 0 ? `${fileSizeMB} Mb` : fileSizeKB > 0 ? `${fileSizeKB} Kb` : `${fileSize} b`;\n }\n\n public static filterDuplicate = (arr: T[]): T[] => {\n return arr.filter((obj, i, arr) => arr.findIndex((obj2) => JSON.stringify(obj2) === JSON.stringify(obj)) === i);\n };\n\n public static ignoreDuplicates = (arr: T[]): T[] => {\n return arr.filter((obj, i, arr) => arr.filter((obj2) => JSON.stringify(obj2) === JSON.stringify(obj)).length === 1);\n }\n}\n","import { I18n } from '../Locales/I18nService';\nimport { ProduitDto } from '../Models/Questions/ProduitDto';\nimport { ProductProperties } from '../Models/Questions/QuestionDto';\nimport { TauxTvaDto } from '../Models/VersionParametrages/VersionParametrage';\nimport { DEFAULT_LAIZE_PROPS, LaizeProps, ProductType } from '../Plugins/FloorPlan/Components/Laizes/Laize';\nimport { IRoom } from '../Plugins/FloorPlan/Models/IRoom';\nimport { TauxDeTva } from './TauxDeTvaHelper';\n\nexport class ProductHelper {\n public static productCodeTrimFrontZero = (code: string) => parseInt(code).toString();\n\n public static toProduitPrixTTC(produit: ProduitDto, tauxDeTva?: TauxDeTva): number | undefined {\n switch (tauxDeTva) {\n case TauxDeTva.intermediaire:\n case TauxDeTva.intermédiaire:\n return (\n produit.infos_vente?.prix_ttc?.tva_intermediaire?.prix_produit ??\n produit.infos_vente?.prix_ttc?.tva_normale?.prix_produit\n );\n default:\n return produit.infos_vente?.prix_ttc?.tva_normale?.prix_produit;\n }\n }\n\n public static toPrixTTC(priceHT: number, contextTauxDeTva?: TauxDeTva, tauxTva?: TauxTvaDto): number {\n const getTvaPercentage = () => {\n if (tauxTva) {\n switch (contextTauxDeTva) {\n case TauxDeTva.intermediaire:\n return tauxTva.by_evaluation_value.intermediaire;\n case TauxDeTva.intermédiaire:\n return tauxTva.by_evaluation_value.intermédiaire;\n case TauxDeTva.normal:\n return tauxTva.by_evaluation_value.normal;\n default:\n return tauxTva.default;\n }\n }\n return undefined;\n };\n const tvaPercentage: number = getTvaPercentage() ?? 0;\n const priceTTC: number = tvaPercentage ? priceHT * (1 + tvaPercentage) : priceHT;\n const roundedPriceTTC = Math.round(priceTTC * 100) / 100;\n return roundedPriceTTC;\n }\n\n public static devidePrice = (price: number) => {\n const floor = Math.floor(price);\n const decimal = price.toFixed(2).split('.')[1];\n return { floor, decimal };\n };\n\n public static toUnitPrice = (unite_vente: string): string => {\n return I18n.format(`Quote_Step9_PriceUnitFormat_${unite_vente === 'Piece' ? 'F' : 'M'}`, {\n unitPrice: I18n.format(`Quote_Step9_PriceUnitFormat_${unite_vente}`),\n });\n };\n\n public static toReference = (p: ProduitDto) => {\n return I18n.format('Quote_ProductCodeShort', {\n code_article: ProductHelper.productCodeTrimFrontZero(p.infos_produit.code_article),\n code_coloris: ProductHelper.productCodeTrimFrontZero(p.infos_produit.code_coloris),\n });\n };\n public static toCodeShort = (codeProduit: string) => {\n const [code_article = '', code_coloris = ''] = codeProduit.split('-');\n return I18n.format('Quote_ProductCodeShort', {\n code_article: ProductHelper.productCodeTrimFrontZero(code_article),\n code_coloris: ProductHelper.productCodeTrimFrontZero(code_coloris),\n });\n };\n\n public static getCompleteCode = (produit?: ProduitDto) => produit?.sous_famille_produit_complete_code;\n\n public static hasDefaultItem = (items: Array = []) => {\n const result: ProduitDto | undefined = items.find((x) => x.is_default);\n return result !== undefined;\n };\n\n public static toExcludeResponse = (productProperties: ProductProperties) => {\n return productProperties.exclude_response_label && productProperties.exclude_response_image_id\n ? {\n label: productProperties.exclude_response_label,\n imageId: productProperties.exclude_response_image_id,\n }\n : undefined;\n };\n\n public static toLaizeProps = (produit?: ProduitDto, roomId?: string): LaizeProps => {\n let laizeProps: LaizeProps = {\n ...DEFAULT_LAIZE_PROPS,\n productCode: produit?.code,\n type: this.getProductType(produit),\n produit,\n roomIds: roomId ? [roomId] : [],\n };\n switch (laizeProps.type) {\n case ProductType.Rouleau:\n const useMotif = produit?.attributs.find((x) => x.name === 'RACCORD_MOTIF_SOL_ROULEAU')?.value ?? false;\n laizeProps = {\n ...laizeProps,\n raccordCm: useMotif\n ? produit?.attributs.find((x) => x.name === 'LONGUEUR_RACCORD_CM_SOL_ROULEAU')?.value ?? 0\n : 0,\n largeurMarginCm: useMotif\n ? produit?.attributs.find((x) => x.name === 'TAILLE_LARG_MOTIF_CM_MOQUETTE')?.value ?? 0\n : 0,\n longueurMarginCm: useMotif\n ? produit?.attributs.find((x) => x.name === 'TAILLE_LONG_MOTIF_CM_MOQUETTE')?.value ?? 0\n : 0,\n largeurCm: (produit?.infos_produit.largeur ?? 1) * 100, // infos_produit.largeur en mètre, traitement en cm\n longueurCm: (produit?.infos_produit.longueur_rouleau ?? 500) * 100, // infos_produit.longueur_rouleau en mètre, traitement en cm\n };\n break;\n case ProductType.LamePleine:\n laizeProps = {\n ...laizeProps,\n raccordCm: 0,\n largeurMarginCm: 0,\n longueurMarginCm: 5,\n largeurCm: produit?.attributs.find((x) => x.name === 'F008-Largeur')?.value ?? 0,\n longueurCm: produit?.attributs.find((x) => x.name === 'S057-Longueur')?.value ?? 0,\n };\n break;\n }\n return laizeProps;\n };\n\n public static ToArrayLaizeProps = (rooms?: Array) => {\n return (\n rooms?.reduce((acc, curr) => {\n const produitPrincipal = curr.questionProduitPrincipal?.produitValue;\n if (!produitPrincipal) {\n return acc;\n }\n const laizeProps = acc.find((x) => x.productCode === produitPrincipal.code);\n if (laizeProps) {\n laizeProps.roomIds?.push(curr.roomId!);\n } else {\n acc.push(ProductHelper.toLaizeProps(produitPrincipal, curr.roomId));\n }\n return acc;\n }, [] as Array) ?? []\n );\n };\n\n public static getProductType = (produit?: ProduitDto): ProductType | undefined => {\n if (this.isLaizeProduct(produit)) {\n return ProductType.Rouleau;\n } else if (this.isLameProduct(produit)) {\n return ProductType.LamePleine;\n }\n return undefined;\n };\n\n public static isLaizeProduct(produitPrincipal?: ProduitDto) {\n const produitPrincipalCompleteCode = ProductHelper.getCompleteCode(produitPrincipal);\n\n const famille_code_laize_list = [\n 'F001', //Moquette rouleau\n 'F004_S023', //Autre revêtement - Gazon\n 'F004_S034', //Autre revêtement - Sizal\n 'F004_S035', //Autre revêtement - Jonc de mer\n 'F006_S041', //Vinyle - Rouleau\n ];\n\n return produitPrincipalCompleteCode\n ? !!famille_code_laize_list.find((x) => produitPrincipalCompleteCode.startsWith(x))\n : false;\n }\n\n public static isLameProduct(produit?: ProduitDto) {\n const sous_famille_exterieur = 'S057';\n const produitIsExterieur =\n produit?.sous_famille_produit_complete_code.endsWith(sous_famille_exterieur) ?? false;\n const produitIsLame = produit?.attributs.find((x) => x.name === 'TYPE_SOL_TERRASSE')?.value === 'Lame';\n return produitIsExterieur && produitIsLame;\n }\n public static sortByLaizeType(p1: ProduitDto, p2: ProduitDto) {\n const p1IsLaize = ProductHelper.isLaizeProduct(p1);\n const p2IsLaize = ProductHelper.isLaizeProduct(p2);\n const compareCode = (p1: ProduitDto, p2: ProduitDto) => p1.code.localeCompare(p2.code);\n return (p1IsLaize && p2IsLaize) ? compareCode(p1, p2) : (p1IsLaize && !p2IsLaize) ? -1 : 1;\n }\n\n public static toMetierDePose = (produit?: ProduitDto): string => {\n return produit?.attributs?.find((x) => x.name === 'METIER_DE_POSE')?.value || '';\n };\n}\n","import { CreatedByTypeDto } from '../Models/Projects/ProjectDto';\nimport { UserTypeDto } from '../Models/Users/Me';\nimport { MeState } from '../Services/Me/MeReducer';\n\nexport type IsAllowedToUpdateParams = { createdByType?: CreatedByTypeDto; userType?: UserTypeDto };\nexport type IsAllowedToUpdateMetaDataParams = { me: MeState; createdByStoreId?: string; createdByCustomerID?: string };\n\nexport class ProjectHelper {\n public static isAllowedToUpdate = ({ createdByType, userType }: IsAllowedToUpdateParams): boolean => {\n switch (createdByType) {\n case CreatedByTypeDto.Customer:\n return userType === UserTypeDto.Customer || userType === UserTypeDto.BoUserAsCustomer;\n case CreatedByTypeDto.Store:\n return userType === UserTypeDto.StmacStore || userType === UserTypeDto.BoUserAsStore;\n }\n return true;\n };\n\n public static isAllowedToUpdateMetaData = ({\n me,\n createdByStoreId,\n createdByCustomerID,\n }: IsAllowedToUpdateMetaDataParams): boolean => {\n const customerID = me?.data?.customer_properties?.id ?? me.data?.stmac_store_properties?.as_customer.id;\n const storeId = me?.data?.stmac_store_properties?.id;\n return createdByCustomerID === customerID || createdByStoreId === storeId;\n };\n}\n","import { IMapItem } from 'Plugins/FloorPlan/Models/IMapItem';\nimport { I18n } from '../Locales/I18nService';\nimport { AttributDto, ProduitDto } from '../Models/Questions/ProduitDto';\nimport { QuestionItem, QuestionStep } from '../Models/Questions/QuestionDto';\nimport { LocalityDto } from '../Models/TravelExpenses/TravelExpenseDto';\nimport { RoomType } from '../Plugins/FloorPlan/Models/IRoom';\nimport { ObjectUtils } from './ObjectUtils';\nimport { QuestionsHelper } from './QuestionsHelper';\nimport { QuestionContextUtils } from 'Web/Pages/Quote/Utils/QuestionContextUtils';\nimport Enumerable from 'linq';\n\nexport type EvaluationContext = Record;\nexport interface ContournementsContext {\n //* SOL\n pipe?: number;\n mounted_element?: number;\n mounted_radiator?: number;\n pillar?: number;\n stonewall?: number;\n stairs?: number;\n railing?: number;\n tree?: number;\n //* WALL\n wall_pipe?: number;\n wall_pipe_hole?: number;\n electric_equipment?: number;\n wall_pillar?: number;\n hotspot?: number;\n}\n\nexport interface QuestionContext {\n revetement_type?: RoomType;\n //* in evaluations : { '$name1' : $value1, '$name2' : $value2 }\n evaluations?: EvaluationContext;\n\n contournements?: ContournementsContext;\n\n km_over_20?: number;\n\n //* Pièce contiguës et présence de longueur du raccord\n are_rooms_contiguous?: any;\n connection_needed?: any;\n\n //* ROOM\n room_wall?: any;\n room_type?: any;\n room_heating_type?: any;\n room_floor?: any;\n room_existing_floor_type?: any;\n has_room_existing_flooring?: any;\n room_should_lay_plinthes_inside_room_element?: any;\n room_length?: any;\n room_surface?: any;\n //* WALL\n wall_type?: any;\n wall_floor?: any;\n has_wall_existing_flooring?: any;\n wall_existing_floor_type?: any;\n wall_length?: any;\n wall_surface?: any;\n\n //* Questions Floorplans, opening\n opening_type_localized?: any;\n opening_dimension_centimetre?: any;\n\n //* Questions Floorplans, roomElement\n room_element_type_localized?: any;\n should_lay_flooring_inside?: any;\n should_lay_plinthes_inside?: any;\n room_element_area?: any;\n\n localisation_piece?: any;\n flooring_direction?: any;\n\n rooms?: QuestionContext[];\n openings?: QuestionContext[];\n room_items?: QuestionContext[];\n\n prix_metier_de_pose?: string;\n\n [field: string]: any;\n}\n\nexport class QuestionContextHelper {\n //* To identify optional questions without value\n public static NOT_SET = 'NOT_SET';\n\n public static toQuestionDebug = (id: string): string => `question_debug_${id}`;\n\n //* question type SingleChoice\n public static toQuestionOption = (id: string): string => `question_${id}_option`;\n public static toQuestionValue = (id: string): string => `question_${id}_value`;\n public static toOptionId = (id: string): string => `option_${id}`;\n\n //* question type Comment\n public static toQuestionCommentvalue = (id: string): string => `question_${id}_value`;\n\n //* question type Produit\n //* public static toQuestion = (id: string): string => `question_${id}`; //\n //!: {\n //! attribut_produit_F001-ChauffageSol : F001-ChauffageSol,\n //! attribut_produit_F001-Decor : F001-Decor\n //!: }\n public static toQuestionProduitValue = (id: string) => `question_${id}_produit`; //* NOT USED\n public static toQuestionProduitKey = (id: string) => `question_${id}`;\n public static toProduitAttributName = (name: string) => `attribut_produit_${name}`;\n public static infoProduitKey = 'infos_produit';\n\n public static toProduitValue = (produit: ProduitDto) => {\n const produitContext: QuestionContext = {};\n const attributs: Array = produit.attributs ?? [];\n attributs.forEach((attribut: AttributDto) => {\n produitContext[QuestionContextHelper.toProduitAttributName(attribut.name)] = attribut.value;\n });\n produitContext[QuestionContextHelper.infoProduitKey] = produit.infos_produit;\n\n return produitContext;\n };\n\n public static toZipCodeValue = (localityDto: LocalityDto) => {\n const zipCodeContext: QuestionContext = {};\n if (localityDto.travel_expenses) {\n zipCodeContext.km_over_20 = localityDto.travel_expenses.billable_distance_in_meters / 1000;\n }\n return zipCodeContext;\n };\n\n public static withRegionParisienne = (localityDto: LocalityDto, context: QuestionContext = {}): QuestionContext => {\n const evaluationsContext = context.evaluations ?? {};\n evaluationsContext[QuestionContextHelper.toRegionParisienne] = localityDto.travel_expenses?.is_paris_area\n ? QuestionContextHelper.toIsRegionPariennes\n : undefined;\n context.evaluations = evaluationsContext;\n return context;\n };\n\n public static toEvaluationValue = (key: string): string => `${key}`;\n\n public static toRegionParisienne = 'région parisienne';\n public static toIsRegionPariennes = 'oui';\n\n //ragréage obligatoire\n public static ragreageObligatoreKey = 'Ragréage';\n public static ragreageObligatoreValue = 'Obligatoire';\n\n public static transformIntoLongFloorName(floorName: string = '') {\n return floorName === I18n.get('Floorplan_RoomFloorList_RDC_Short')\n ? I18n.get('Floorplan_RoomFloorList_RDC_Long')\n : floorName;\n }\n\n public static isRagreageObligatoireExist(rooms: IMapItem[] = []): boolean {\n if (!rooms.length) {\n return false;\n }\n const ragreageObligatoireIsInEvaluation = (evaluationContext: EvaluationContext = {}) => {\n return (\n evaluationContext[QuestionContextHelper.ragreageObligatoreKey] ===\n QuestionContextHelper.ragreageObligatoreValue\n );\n };\n const roomWithRagreage = Enumerable.from(rooms).firstOrDefault(x => {\n // const roomQuestions = x.questions.filter((x: QuestionItem) => x.showQuestion);\n // const findQuestion = roomQuestions.find((x: QuestionItem) => ragreageObligatoireIsInEvaluation(x.context.evaluations));\n // hasRagreageObligatoire = Boolean(findQuestion);\n const lastContext = QuestionContextUtils.getLastStepContext(x, QuestionStep.StepFinitions);\n return ragreageObligatoireIsInEvaluation(lastContext.evaluations);\n });\n return Boolean(roomWithRagreage);\n }\n\n public static mergeContext = (\n previousContext: QuestionContext = {},\n context: QuestionContext = {}\n ): QuestionContext => {\n context.evaluations = QuestionContextHelper.mergeEvaluations(previousContext.evaluations, context.evaluations);\n return {\n ...ObjectUtils.clone(previousContext),\n ...ObjectUtils.clone(context),\n };\n };\n\n public static mergeEvaluations = (\n previousEvaluationContext: EvaluationContext = {},\n evaluationContext: EvaluationContext = {}\n ): QuestionContext => {\n const mergeEvaluationContext: EvaluationContext = {\n ...ObjectUtils.clone(previousEvaluationContext ?? {}),\n ...ObjectUtils.clone(evaluationContext ?? {}),\n };\n return ObjectUtils.clone(mergeEvaluationContext);\n };\n\n //* INv3\n //* last question habitation + question produit principal\n public static getBaseQuestionsContext = (questions: QuestionItem[] = [], questionProduitPrincipal?: QuestionItem): QuestionContext => {\n const lastQuestionContext = questions[questions.length - 1]?.context;\n if (questionProduitPrincipal) {\n const valueContext = QuestionsHelper.getValidatedContext(questionProduitPrincipal);\n return QuestionContextHelper.mergeContext(lastQuestionContext, valueContext);\n }\n return QuestionContextHelper.mergeContext(lastQuestionContext, {});\n };\n}\n","import Enumerable from 'linq';\n\nimport { Constants } from '../Constants';\nimport { Logger } from '../Errors/Logger';\nimport { wrapError } from '../Errors/PolErrorHandler';\nimport { I18n } from '../Locales/I18nService';\nimport { ProduitDto, ProduitListResponse, ProduitResponse } from '../Models/Questions/ProduitDto';\nimport {\n CommentPropertiesInputType,\n ConditionDto,\n IncompatibilityDto,\n OptionDto,\n QuestionContextType,\n QuestionItem,\n QuestionStep,\n QuestionType,\n} from '../Models/Questions/QuestionDto';\nimport { LocalitiesSearchResultDto, LocalityDto } from '../Models/TravelExpenses/TravelExpenseDto';\nimport { ProductType } from '../Plugins/FloorPlan/Components/Laizes/Laize';\nimport { QuestionApi } from '../Services/Api/QuestionApi';\nimport { Toast } from '../Web/Services/ToastService';\nimport { ConditionHelper } from './ConditionHelper';\nimport { ConfigurationUtils } from './ConfigurationUtils';\nimport { ObjectUtils } from './ObjectUtils';\nimport { ProductHelper } from './ProductHelper';\nimport { QuestionContext, QuestionContextHelper } from './QuestionContextHelper';\n\n//#region //* Methods Parameters\n\nexport interface InitilizeQuestionsParameters {\n questions: Array;\n initialContext?: QuestionContext;\n produitPrincipal?: ProduitDto;\n withLog?: boolean;\n}\n\nexport interface SetValueOnQuestionParameter {\n readonly value?: string | OptionDto | Array | LocalityDto;\n readonly valueExludeResponse?: boolean;\n readonly removeValue?: boolean;\n readonly checkValue?: boolean;\n readonly scrollToNextQuestion?: boolean;\n}\n\nexport type SetValueOnQuestionResult = { updatedQuestion: QuestionItem; updatedContext: QuestionContext; }\nexport type InvalidValueOnQuestionResult = { updatedQuestion: QuestionItem; updatedContext: QuestionContext; }\nexport type InvalidValueOnQuestionParameters = { question: QuestionItem; }\nexport type UpdateQuestionAfterLoadProduitsParameters = { question: QuestionItem; logs?: any }\nexport type FindFirstIncompatibilityResult = { findIncompatibility?: IncompatibilityDto; questionWithIncompatibility?: QuestionItem; }\n\nexport interface IsQuestionVisibleParameters {\n readonly question: QuestionItem;\n readonly context: QuestionContext;\n readonly produitPrincipalCompleteCode: string | undefined;\n readonly log?: string;\n readonly withLog?: boolean;\n}\n\n\nexport interface IsConditionVisibleParameters {\n readonly condition: ConditionDto;\n readonly context: QuestionContext;\n readonly produitPrincipalCompleteCode: string | undefined;\n readonly familleProduitCodeList: Array;\n readonly log?: string;\n readonly withLog?: boolean;\n}\n\nexport interface UpdateQuestionVisibilityAndContextParams {\n readonly question: QuestionItem;\n readonly previousQuestion?: QuestionItem;\n readonly produitPrincipalCompleteCode?: string;\n log?: string;\n}\n\nexport interface NextQuestionToShowParameters {\n readonly fromQuestion: QuestionItem;\n readonly questions?: Array;\n\n //* La sous-famille en cours est celle du produit sélectionné à la première question produit affichée du formulaire\n readonly produitPrincipalCompleteCode?: string;\n}\n\n\nexport interface LoadProduitsParameters {\n readonly question: QuestionItem;\n readonly search?: string;\n readonly context: QuestionContext;\n readonly updateQuestion: (params: UpdateQuestionAfterLoadProduitsParameters) => void;\n readonly showNextQuestionIfNeeded?: (fromQuestion: QuestionItem) => void;\n readonly handleIncompatibilityOnDefaultProduit?: (\n questionWithIncompatibility: QuestionItem,\n findIncompatibility: IncompatibilityDto\n ) => void;\n readonly versionId: string;\n}\n\nexport interface LoadLocalityParameters {\n readonly question: QuestionItem;\n readonly zipCode: string;\n readonly updateQuestion: (question: QuestionItem, value?: LocalitiesSearchResultDto) => void;\n versionId: string;\n}\n\nexport interface CheckStepCompletedParameters {\n readonly isVendeur?: boolean;\n readonly questions?: Array;\n readonly produitPrincipal?: ProduitDto;\n readonly withLog?: boolean;\n}\n\nexport interface IsStepCompletedResult {\n readonly isEmpty: boolean; //pas de question visible (question respisration exclus)\n readonly isStepCompleted: boolean;\n}\n\n//#endregion\nexport class QuestionsHelper {\n public static DATE_VALIDATOR = new RegExp(/^((0[1-9])|([1-9])|(1[0-2]))\\/[0-9]{4}$/); //* MM/YYYY\n\n public static updateQuestions(questions: QuestionItem[], questionToUpdate: QuestionItem): QuestionItem[] {\n return questions.map((question: QuestionItem) => question.id === questionToUpdate.id ? questionToUpdate : question);\n }\n\n public static getPreviousVisibleQuestion = (\n fromQuestion: QuestionItem,\n questions: Array = []\n ): QuestionItem | undefined => {\n if (questions.length > 0) {\n const previousQuestion: QuestionItem | undefined = Enumerable.from(questions).lastOrDefault(\n (q: QuestionItem) => q.index < fromQuestion.index && !!q.showQuestion\n );\n return previousQuestion;\n }\n return undefined;\n };\n\n public static getNextVisibleQuestion = (\n fromQuestion: QuestionItem,\n questions: Array = []\n ): QuestionItem | undefined => {\n if (questions.length > 0) {\n const nextQuestion: QuestionItem | undefined = Enumerable.from(questions).firstOrDefault(\n (q: QuestionItem) => q.index > fromQuestion.index && !!q.showQuestion\n );\n return nextQuestion;\n }\n return undefined;\n };\n\n public static getLastShownQuestion(questions: Array = []) {\n const lastShownQuestionIndex: number = Enumerable.from(questions).lastIndexOf((q: QuestionItem) =>\n Boolean(q.showQuestion)\n );\n const lastShownQuestion = questions[lastShownQuestionIndex];\n return { lastShownQuestion, lastShownQuestionIndex };\n }\n\n public static getLastQuestionContext(questions: QuestionItem[] = []) {\n return questions[questions.length - 1];\n }\n\n public static validateCommentAndRespirationQuestionIfNeeded = (\n questions: Array,\n validCommentType: boolean = true\n ) => {\n const { lastShownQuestion } = QuestionsHelper.getLastShownQuestion(questions);\n questions.forEach((question: QuestionItem) => {\n if (\n question.index <= lastShownQuestion?.index &&\n (question.type === QuestionType.Respiration ||\n (validCommentType && question.type === QuestionType.Comment))\n ) {\n question.isValid = true;\n }\n });\n };\n\n public static hideQuestionsAfter(lastVisibleQuestion: QuestionItem, questions: Array) {\n questions.forEach((question: QuestionItem) => {\n if (question.index > lastVisibleQuestion.index) {\n question.showQuestion = false;\n }\n });\n }\n\n public static findQuestionProduitWhichRefersTheQuestion(\n questionProduit: QuestionItem,\n questions: Array = []\n ): QuestionItem | undefined {\n return questions.length > 0\n ? Enumerable.from(questions).firstOrDefault(\n (q) =>\n Boolean(q.showQuestion) &&\n q.type === QuestionType.Produit &&\n Boolean(\n questionProduit.produits.find(\n (x) => x.suggestion.reference_question.id === questionProduit.id\n )\n )\n )\n : undefined;\n }\n\n public static firstQuestionWithNoResponse = (questions: Array = []) => {\n if (questions.length) {\n return (\n Enumerable.from(questions).firstOrDefault((q: QuestionItem) => Boolean(q.showQuestion) && !q.isValid) ||\n questions[0]\n );\n }\n return undefined;\n };\n\n //#region PRODUITS\n\n public static async loadProduits(loadProduitsParameter: LoadProduitsParameters) {\n const { question, search, updateQuestion } = loadProduitsParameter;\n try {\n question.produitSearch = search ?? question.produitSearch;\n question.loadingProduits = true;\n question.produitsLoaded = false;\n updateQuestion({ question, logs: 'before fetchProduits' });\n\n const { isSuccess, produitList } = await this.fetchProduits(loadProduitsParameter);\n\n question.produitsLoaded = true;\n question.loadingProduits = false;\n\n if (isSuccess) {\n const produits: Array = produitList!;\n question.produits = produits;\n question.needLoadProduits = false;\n\n // autoselect readonly product.\n if (question.produitReadonlyReference) {\n this.setValueOnQuestion(question, { value: question.produitReadonlyReference });\n }\n updateQuestion({ question, logs: 'after success fetchProduits' });\n }\n } catch (error) {\n console.log('loadProduits error', { error });\n question.loadingProduits = false;\n question.produitsLoaded = true;\n question.produits = [];\n updateQuestion({ question, logs: 'after failed fetchProduits' });\n }\n }\n\n private static fetchProduits = async (loadProduitsParameter: LoadProduitsParameters) => {\n const { context, question, search, updateQuestion, versionId } = loadProduitsParameter;\n\n const stringContext: string = JSON.stringify(context ?? {});\n\n if (question.produitReadonlyReference) {\n try {\n const produitResponse: ProduitResponse = await QuestionApi.getProduit(\n question.produitReadonlyReference,\n { data_context: { context: stringContext } }\n );\n\n return {\n isSuccess: produitResponse.is_success,\n produitList: produitResponse.data ? [{ ...produitResponse.data, is_default: true }] : undefined,\n };\n } catch (error) {\n Toast.showError({ content: I18n.get('QuoteStepViewModel_ReadonlyProduct_Error') });\n\n //Reset the question to allow the user to search a product...\n question.produitReadonlyReference = undefined;\n updateQuestion({ question });\n }\n }\n\n const withSearch = question.produit_properties.catalogue_search_allowed ? search : '';\n const produitListResponse: ProduitListResponse = await QuestionApi.getProduits(question.id, {\n versionId,\n search: withSearch,\n data_context: { context: stringContext },\n count: withSearch ? Constants.QUESTION_PRODUIT_COUNT : Constants.QUESTION_SUGGESTION_PRODUIT_COUNT,\n });\n\n return { isSuccess: produitListResponse.is_success, produitList: produitListResponse.data };\n };\n\n //#endregion\n\n //#region ZIPCODE\n\n public static loadLocality({ question, updateQuestion, zipCode, versionId }: LoadLocalityParameters) {\n class UnAllowedError extends Error { }\n wrapError(async () => {\n question.zipCodeValueLoading = true;\n updateQuestion(question, { ...question.zipCodeValue, zipCode });\n\n try {\n if (zipCode) {\n const travelExpense = await QuestionApi.getLocalities(question.id, { zipCode, versionId });\n question.zipCodeValueLoading = false;\n\n if ('is_success' in travelExpense) {\n updateQuestion(question, { ...travelExpense.data, zipCode });\n\n if (travelExpense.data.unallowed) {\n throw new UnAllowedError(`The zip code ${zipCode} is not allowed`);\n }\n\n if (!travelExpense.is_success || !travelExpense.data || !travelExpense.data.found) {\n throw new Error('No travel expense found');\n }\n } else {\n updateQuestion(question, { ...question.zipCodeData });\n }\n } else {\n question.zipCodeValueLoading = false;\n updateQuestion(question, { localities: [], zipCode: '' });\n }\n } catch (e) {\n question.zipCodeValueLoading = false;\n updateQuestion(question, { zipCode });\n if (e instanceof UnAllowedError) {\n Toast.showError({\n title: I18n.get('COMMON_SORRY_TITLE'),\n content: I18n.get('QuoteStepViewModel_TravelExpense_Unallowed_Error'),\n });\n } else {\n Toast.showError({ content: I18n.get('QuoteStepViewModel_TravelExpense_Error') });\n }\n }\n });\n }\n\n //#endregion\n\n //#region INITIALIZE / PREPARE QUESTIONS\n\n public static initializeQuestions = (initilizeQuestionsParameters: InitilizeQuestionsParameters) => {\n let { questions, initialContext, produitPrincipal, withLog } = initilizeQuestionsParameters;\n\n const produitPrincipalCompleteCode = ProductHelper.getCompleteCode(produitPrincipal);\n\n //* INVALID QUESTION PRODUIT IF PRODUIT PRINCIPAL HAS CHANGED\n questions.filter((q) => Boolean(q.produitValue)).forEach((q) => {\n if (q.produitPrincipalCode !== produitPrincipal?.code) {\n withLog && Logger.log('update >> QuestionsHelper.invalidValueOnQuestion', { question: q, produitPrincipal });\n QuestionsHelper.invalidValueOnQuestion({ question: q });\n }\n });\n\n let continueProcess: boolean = true;\n let lastShownQuestion: QuestionItem | undefined = undefined;\n questions.forEach((question: QuestionItem) => {\n if (continueProcess) {\n const previousVisibleQuestion = QuestionsHelper.getPreviousVisibleQuestion(question, questions);\n const valueContext = this.getValidatedContext(question);\n\n //* FIRST QUESTION : no context heritage\n if (!previousVisibleQuestion) {\n question.context = QuestionContextHelper.mergeContext(initialContext, valueContext);\n QuestionsHelper.updateQuestionVisibilityAndContext({ question, produitPrincipalCompleteCode });\n } else {\n const previousQuestion: QuestionItem = ObjectUtils.clone(previousVisibleQuestion);\n //* assign empty context + previous context\n question.context = QuestionContextHelper.mergeContext(previousQuestion.context, valueContext);\n QuestionsHelper.updateQuestionVisibilityAndContext({\n question,\n previousQuestion,\n produitPrincipalCompleteCode,\n });\n }\n\n if (question.type === QuestionType.Respiration) {\n QuestionsHelper.setValueOnQuestion(question, {});\n }\n\n //* continueProcess until\n //* current question has no response et isVisible with own context\n if (question.showQuestion && !question.isValid) {\n question.focusQuestion = true;\n lastShownQuestion = question;\n continueProcess = false;\n }\n }\n });\n\n //* Si une modification de paramétrage fait qu'une question,\n //* au milieu du questionnaire n'est pas répondu\n //* alors je dois pouvoir naviguer jusqu'à cette question\n //* mais les questions suivantes ne doivent pas être affichées.\n //* Si je réponds à la question manquante,\n //* ce qui était déjà répondu ensuite doit être appliqué\n\n //const { lastShownQuestion } = this.getLastShownQuestion(questions);\n if (lastShownQuestion) {\n QuestionsHelper.hideQuestionsAfter(lastShownQuestion, questions);\n }\n };\n\n public static invalidValueOnQuestion({ question }: InvalidValueOnQuestionParameters): InvalidValueOnQuestionResult {\n const context: QuestionContext = question.context;\n if (question.type === QuestionType.Number) {\n question.numberValue = undefined;\n question.errorInvalidNumberValue = false;\n question.isValid = false;\n context[QuestionContextHelper.toQuestionValue(question.id)] = undefined;\n }\n if (question.type === QuestionType.SingleChoice) {\n question.optionValue = undefined;\n context[QuestionContextHelper.toQuestionOption(question.id)] = undefined;\n context[QuestionContextHelper.toQuestionValue(question.id)] = undefined;\n question.isValid = false;\n }\n if (question.type === QuestionType.MultipleChoices) {\n question.optionValues = undefined;\n context[QuestionContextHelper.toQuestionOption(question.id)] = undefined;\n context[QuestionContextHelper.toQuestionValue(question.id)] = undefined;\n question.isValid = false;\n }\n if (question.type === QuestionType.Comment) {\n question.commentValue = undefined;\n context[QuestionContextHelper.toQuestionCommentvalue(question.id)] = undefined;\n question.isValid = false; //* no check on comment\n }\n\n if (question.type === QuestionType.Produit) {\n const questionProduitKey = QuestionContextHelper.toQuestionProduitKey(question.id);\n delete context[QuestionContextHelper.toQuestionProduitValue(question.id)];\n context[questionProduitKey] = undefined; //! delete key\n question.produitValue = undefined;\n\n question.produits = [];\n question.produitsLoaded = false;\n question.needLoadProduits = true;\n question.produitSearch = undefined;\n question.produitPrincipalCode = undefined;\n\n question.isValid = question.produit_properties.is_required && Boolean(question.produitValue);\n }\n question.context = context;\n\n const invalidValueOnQuestionResult: InvalidValueOnQuestionResult = {\n updatedQuestion: question,\n updatedContext: context,\n };\n return invalidValueOnQuestionResult;\n }\n\n //#endregion\n\n public static hasInfobules = (question: QuestionItem) => {\n return (question.infobulle_list || []).some((infobulle) =>\n QuestionsHelper.isVisible(question, infobulle.visibility_condition)\n );\n };\n\n public static isVisible = (\n question: QuestionItem,\n condition: ConditionDto,\n withLog?: boolean,\n log?: Record\n ): boolean => {\n const resultIsVisible: boolean = ConditionHelper.isConditionEvaluateToTrue({\n question,\n condition,\n rawContext: question.context,\n log,\n withLog,\n });\n return resultIsVisible;\n };\n\n public static isQuestionVisible(questionVisibleParameters: IsQuestionVisibleParameters): boolean {\n const { question, context, produitPrincipalCompleteCode, withLog, log } = questionVisibleParameters;\n return QuestionsHelper.isConditionVisible({\n context,\n condition: question.visibility_condition,\n familleProduitCodeList: question.famille_produit_code_list,\n produitPrincipalCompleteCode,\n withLog,\n log,\n });\n }\n\n public static isConditionVisible = (conditionVisibleParameters: IsConditionVisibleParameters) => {\n const {\n condition,\n familleProduitCodeList = [],\n context,\n produitPrincipalCompleteCode,\n withLog,\n log,\n } = conditionVisibleParameters;\n\n const isQuestionSousFamillesIncludesPrincipalPrduit = (): boolean => {\n if (produitPrincipalCompleteCode && familleProduitCodeList.length > 0) {\n //* on vérifie\n //* si le produit principal est de la bonne sous-famille que la question\n //* si oui -> on affiche la question\n const isFamilleCodeListIncludesPrincipalCompleCode =\n familleProduitCodeList.includes(produitPrincipalCompleteCode);\n //console.log(`${log} : isFamilleCodeListIncludesPrincipalCompleCode 0`, ObjectUtils.clone({ question, context, produitPrincipalCompleteCode, isFamilleCodeListIncludesPrincipalCompleCode }));\n return isFamilleCodeListIncludesPrincipalCompleCode;\n }\n //* si pas de prduit principal\n //* alors pas de restriction d'affichage\n return true;\n };\n\n //* can be QUESTION or PRICE\n let itemIsVisible: boolean = true;\n\n if (condition) {\n const itemIsVisibleBySousFamille: boolean = isQuestionSousFamillesIncludesPrincipalPrduit();\n const itemIsVisibleByCondition: boolean = ConditionHelper.isConditionEvaluateToTrue({\n condition,\n rawContext: context,\n withLog,\n });\n itemIsVisible = itemIsVisibleBySousFamille && itemIsVisibleByCondition;\n withLog &&\n console.log(`${log} : isConditionVisible 1 + V-Condition`, {\n itemIsVisibleBySousFamille,\n itemIsVisibleByCondition,\n condition,\n itemIsVisible,\n context,\n produitPrincipalCompleteCode,\n });\n } else {\n const itemIsVisibleBySousFamille: boolean = isQuestionSousFamillesIncludesPrincipalPrduit();\n itemIsVisible = itemIsVisibleBySousFamille;\n withLog &&\n console.log(\n `${log} : isConditionVisible 2 - V-Condition`,\n ObjectUtils.clone({\n itemIsVisibleBySousFamille,\n condition,\n itemIsVisible,\n context,\n produitPrincipalCompleteCode,\n })\n );\n }\n return itemIsVisible;\n };\n\n public static setValueOnQuestion(\n question: QuestionItem,\n valueParameter: SetValueOnQuestionParameter,\n produitPrincipal?: ProduitDto\n ): SetValueOnQuestionResult {\n const { value, valueExludeResponse, removeValue, checkValue } = valueParameter;\n\n let context: QuestionContext = ObjectUtils.clone(question.context || {});\n\n if (question.type === QuestionType.Number) {\n const numberValue = value as string;\n\n const { minimum, maximum } = question.number_properties;\n const valueAsNumber: number = parseInt(numberValue);\n const isValueAsNumberValid = valueAsNumber >= minimum && valueAsNumber <= maximum;\n question.numberValue = numberValue;\n\n if (!isValueAsNumberValid) {\n //* question answer is not valid, show error\n question.errorInvalidNumberValue = true;\n question.isValid = false;\n } else {\n question.errorInvalidNumberValue = false;\n context[QuestionContextHelper.toQuestionValue(question.id)] = numberValue;\n question.isValid = true;\n }\n }\n if (question.type === QuestionType.SingleChoice) {\n const optionValue = value as OptionDto;\n question.optionValue = optionValue;\n context[QuestionContextHelper.toQuestionOption(question.id)] = QuestionContextHelper.toOptionId(\n optionValue.id\n );\n context[QuestionContextHelper.toQuestionValue(question.id)] = optionValue.value;\n question.isValid = question.optionValue !== undefined;\n }\n if (question.type === QuestionType.MultipleChoices) {\n const optionValues = value as Array;\n question.optionValues = optionValues;\n context[QuestionContextHelper.toQuestionOption(question.id)] = optionValues.map((x) =>\n QuestionContextHelper.toOptionId(x.id)\n );\n context[QuestionContextHelper.toQuestionValue(question.id)] = optionValues.values;\n question.isValid = !optionValues.length ? false : question.isValid;\n if (valueParameter.checkValue) {\n question.isValid = question.optionValues !== undefined;\n }\n }\n if (question.type === QuestionType.Comment) {\n const commentValue = value as string;\n question.commentValue = commentValue;\n\n if (question.comment_properties.input_type === CommentPropertiesInputType.DateMMAAAA) {\n question.isValid = this.DATE_VALIDATOR.test(commentValue);\n } else if (valueParameter.checkValue) {\n question.isValid = true\n }\n\n if (valueParameter.checkValue) {\n context[QuestionContextHelper.toQuestionCommentvalue(question.id)] = commentValue;\n }\n }\n if (question.type === QuestionType.Produit) {\n const produitCode = value as string;\n\n const questionProduitKey = QuestionContextHelper.toQuestionProduitKey(question.id);\n question.excludeResponseSelected = valueExludeResponse;\n if (!produitCode) {\n //* si click sur la croix de l'élément selectioné ou la réponse d'éxclusion\n if (removeValue) {\n delete context[QuestionContextHelper.toQuestionProduitValue(question.id)];\n context[questionProduitKey] = undefined; //! delete key\n question.produitValue = undefined;\n question.produitPrincipalCode = undefined;\n }\n //* si click sur la réponse d'éxclusion\n if (checkValue) {\n question.isValid = Boolean(question.produitValue) || question.excludeResponseSelected;\n }\n } else {\n const produit = question.produits.find((p: ProduitDto) => p.code === produitCode);\n if (produit) {\n question.produitValue = produit;\n question.produitPrincipalCode = produitPrincipal?.code;\n context[questionProduitKey] = QuestionContextHelper.toProduitValue(produit);\n context[QuestionContextHelper.toQuestionProduitValue(question.id)] = produit.code;\n }\n if (checkValue) {\n question.isValid = question.produitValue !== undefined;\n }\n }\n }\n if (question.type === QuestionType.Respiration) {\n question.isValid = true;\n }\n if (question.type === QuestionType.ZipCode) {\n const localityDto = value as LocalityDto;\n question.zipCodeValue = localityDto;\n question.isValid = Boolean(localityDto);\n\n if (question.isValid) {\n const questionProduitKey = QuestionContextHelper.toQuestionProduitKey(question.id);\n context[questionProduitKey] = QuestionContextHelper.toZipCodeValue(localityDto);\n context = QuestionContextHelper.withRegionParisienne(localityDto, context);\n }\n }\n\n const contextWithEvaluation: QuestionContext = ConfigurationUtils.evalQuestionEvalutations(question, context);\n question.context = contextWithEvaluation;\n\n const setValueOnQuestionResult: SetValueOnQuestionResult = {\n updatedQuestion: question,\n updatedContext: context,\n };\n return setValueOnQuestionResult;\n }\n\n public static getValidatedContext(question: QuestionItem): QuestionContext {\n let context: QuestionContext = ObjectUtils.clone({});\n\n if (question.type === QuestionType.Number) {\n context[QuestionContextHelper.toQuestionValue(question.id)] = question.numberValue;\n }\n if (question.type === QuestionType.SingleChoice && question.optionValue) {\n const optionValue = question.optionValue;\n context[QuestionContextHelper.toQuestionOption(question.id)] = QuestionContextHelper.toOptionId(\n optionValue.id\n );\n context[QuestionContextHelper.toQuestionValue(question.id)] = question.optionValue.value;\n }\n if (question.type === QuestionType.MultipleChoices && question.optionValues) {\n const optionValues = question.optionValues;\n context[QuestionContextHelper.toQuestionOption(question.id)] = optionValues.map((x) =>\n QuestionContextHelper.toOptionId(x.id)\n );\n context[QuestionContextHelper.toQuestionValue(question.id)] = optionValues.values;\n }\n if (question.type === QuestionType.Comment) {\n context[QuestionContextHelper.toQuestionCommentvalue(question.id)] = question.commentValue;\n }\n if (question.type === QuestionType.Produit && question.produitValue) {\n const questionProduitKey = QuestionContextHelper.toQuestionProduitKey(question.id);\n const produit = question.produitValue;\n context[questionProduitKey] = QuestionContextHelper.toProduitValue(produit);\n context[QuestionContextHelper.toQuestionProduitValue(question.id)] = produit.code;\n }\n if (question.type === QuestionType.ZipCode && question.zipCodeValue) {\n const localityDto = question.zipCodeValue;\n const questionProduitKey = QuestionContextHelper.toQuestionProduitKey(question.id);\n context[questionProduitKey] = QuestionContextHelper.toZipCodeValue(localityDto);\n context = QuestionContextHelper.withRegionParisienne(localityDto, context);\n }\n\n const contextWithEvaluation: QuestionContext = ConfigurationUtils.evalQuestionEvalutations(question, context);\n context = contextWithEvaluation;\n\n return context;\n }\n\n //!\\ ONLY FOR DEBUG\n public static getValidatedDebugContext(question: QuestionItem): QuestionContext {\n let context: QuestionContext = ObjectUtils.clone({});\n\n if (question.type === QuestionType.Number) {\n //context[QuestionContextHelper.toQuestionValue(question.id)] = question.numberValue;\n }\n if (question.type === QuestionType.SingleChoice && question.optionValue) {\n // const optionValue = question.optionValue;\n // context[QuestionContextHelper.toQuestionOption(question.id)] = QuestionContextHelper.toOptionId(\n // optionValue.id\n // );\n // context[QuestionContextHelper.toQuestionValue(question.id)] = question.optionValue;\n }\n if (question.type === QuestionType.MultipleChoices && question.optionValues) {\n // const optionValues = question.optionValues;\n // context[QuestionContextHelper.toQuestionOption(question.id)] = optionValues.map((x) =>\n // QuestionContextHelper.toOptionId(x.id)\n // );\n //context[QuestionContextHelper.toQuestionValue(question.id)] = optionValues.values;\n }\n if (question.type === QuestionType.Comment) {\n //context[QuestionContextHelper.toQuestionCommentvalue(question.id)] = question.commentValue;\n }\n if (question.type === QuestionType.Produit && question.produitValue) {\n // const questionProduitKey = QuestionContextHelper.toQuestionProduitKey(question.id);\n // const produit = question.produitValue;\n // context[questionProduitKey] = QuestionContextHelper.toProduitValue(produit);\n // context[QuestionContextHelper.toQuestionProduitValue(question.id)] = produit.code;\n }\n if (question.type === QuestionType.ZipCode && question.zipCodeValue) {\n // const localityDto = question.zipCodeValue;\n // const questionProduitKey = QuestionContextHelper.toQuestionProduitKey(question.id);\n // context[questionProduitKey] = QuestionContextHelper.toZipCodeValue(localityDto);\n // context = QuestionContextHelper.withRegionParisienne(localityDto, context);\n }\n context[QuestionContextHelper.toQuestionDebug(question.id)] = question.id;\n\n const contextWithEvaluation: QuestionContext = ConfigurationUtils.evalQuestionEvalutations(question, context);\n context = contextWithEvaluation;\n\n return context;\n }\n\n public static updateContextWithQuestionValue(question: QuestionItem) {\n let context: QuestionContext = ObjectUtils.clone(question.context);\n if (question.showQuestion && question.isValid) {\n if (question.type === QuestionType.Number && question.numberValue) {\n const numberValue: string = question.numberValue;\n context[QuestionContextHelper.toQuestionValue(question.id)] = numberValue;\n }\n if (question.type === QuestionType.SingleChoice && question.optionValue) {\n const optionValue: OptionDto = question.optionValue;\n if (\n !ConditionHelper.isConditionEvaluateToTrue({\n condition: optionValue.visibility_condition,\n rawContext: context,\n })\n ) {\n question.optionValue = undefined;\n question.isValid = false;\n } else {\n context[QuestionContextHelper.toQuestionOption(question.id)] = QuestionContextHelper.toOptionId(\n optionValue.id\n );\n context[QuestionContextHelper.toQuestionValue(question.id)] = optionValue.value;\n question.isValid = question.optionValue !== undefined;\n }\n }\n if (question.type === QuestionType.MultipleChoices && question.optionValues) {\n const optionValues: Array = question.optionValues;\n\n let resetValues: boolean = false;\n optionValues.forEach((option: OptionDto) => {\n if (\n !resetValues &&\n !ConditionHelper.isConditionEvaluateToTrue({\n condition: option.visibility_condition,\n rawContext: context,\n })\n ) {\n resetValues = true;\n }\n });\n if (resetValues) {\n question.optionValues = undefined;\n question.isValid = false;\n } else {\n context[QuestionContextHelper.toQuestionOption(question.id)] = optionValues.map((x) =>\n QuestionContextHelper.toOptionId(x.id)\n );\n context[QuestionContextHelper.toQuestionValue(question.id)] = optionValues.values;\n }\n }\n if (question.type === QuestionType.Comment && question.commentValue) {\n context[QuestionContextHelper.toQuestionCommentvalue(question.id)] = question.commentValue;\n }\n if (question.type === QuestionType.Produit && question.produitValue) {\n const questionProduitKey = QuestionContextHelper.toQuestionProduitKey(question.id);\n const produit: ProduitDto = question.produitValue;\n context[questionProduitKey] = QuestionContextHelper.toProduitValue(produit);\n context[QuestionContextHelper.toQuestionProduitValue(question.id)] = produit.code;\n }\n if (question.type === QuestionType.ZipCode && question.zipCodeValue) {\n const questionProduitKey = QuestionContextHelper.toQuestionProduitKey(question.id);\n context[questionProduitKey] = QuestionContextHelper.toZipCodeValue(question.zipCodeValue);\n context = QuestionContextHelper.withRegionParisienne(question.zipCodeValue, context);\n }\n\n const contextWithEvaluation: QuestionContext = ConfigurationUtils.evalQuestionEvalutations(\n question,\n context\n );\n question.context = ObjectUtils.clone(contextWithEvaluation);\n }\n\n return { updatedQuestion: question, updatedContext: context };\n }\n\n public static updateQuestionVisibilityAndContext = (params: UpdateQuestionVisibilityAndContextParams): void => {\n const { question, previousQuestion, produitPrincipalCompleteCode, log } = params;\n\n //* update context with question value (IF QUESTION VALID)\n QuestionsHelper.updateContextWithQuestionValue(question);\n\n const context: QuestionContext = ObjectUtils.clone(\n ConfigurationUtils.evalQuestionEvalutations(question, question.context)\n );\n\n const isVisible: boolean = QuestionsHelper.isQuestionVisible({\n question,\n context,\n produitPrincipalCompleteCode,\n log: `${log} | updateQuestionVisibilityAndContext`,\n });\n\n question.showQuestion = isVisible;\n question.context = context;\n\n //* update context with question value (IF QUESTION VALID)\n QuestionsHelper.updateContextWithQuestionValue(question);\n\n question.previousVisibleQuestion = previousQuestion;\n };\n\n public static findFirstIncompatibility(questions: Array = []): FindFirstIncompatibilityResult {\n const questionsToUse = questions.filter((question: QuestionItem) => question.showQuestion);\n let findIncompatibility: IncompatibilityDto | undefined = undefined;\n let questionWithIncompatibility: QuestionItem | undefined;\n for (const question of questionsToUse) {\n for (const incompatibility of question.incompatibility_list ?? []) {\n if (\n !findIncompatibility &&\n ConditionHelper.isConditionEvaluateToTrue({\n condition: incompatibility.visibility_condition,\n rawContext: question.context,\n })\n ) {\n findIncompatibility = incompatibility;\n questionWithIncompatibility = question;\n return { findIncompatibility, questionWithIncompatibility };\n }\n }\n }\n return { findIncompatibility: undefined, questionWithIncompatibility: undefined };\n }\n\n public static getNextQuestionToShow = (\n nextQuestionToShowParameters: NextQuestionToShowParameters\n ): QuestionItem | undefined => {\n const { fromQuestion, questions = [], produitPrincipalCompleteCode } = nextQuestionToShowParameters;\n\n const nextQuestion: QuestionItem | undefined = questions.find(\n (q: QuestionItem) => q.index > fromQuestion.index\n );\n\n if (nextQuestion) {\n const previousVisibleQuestion = QuestionsHelper.getPreviousVisibleQuestion(nextQuestion, questions);\n\n //* FIRST QUESTION : no context heritage\n if (!previousVisibleQuestion) {\n nextQuestion.context = {}; //* assign empty context if step 1, if step 2 => assign last step1 context\n QuestionsHelper.updateQuestionVisibilityAndContext({\n question: nextQuestion,\n produitPrincipalCompleteCode,\n log: 'getNextQuestionToShow',\n });\n } else {\n const previousQuestion: QuestionItem = ObjectUtils.clone(previousVisibleQuestion);\n //* assign empty context + previous context\n nextQuestion.context = QuestionContextHelper.mergeContext(previousQuestion.context, {});\n QuestionsHelper.updateQuestionVisibilityAndContext({\n question: nextQuestion,\n previousQuestion,\n produitPrincipalCompleteCode,\n log: 'getNextQuestionToShow',\n });\n }\n\n if (nextQuestion.showQuestion && nextQuestion.type === QuestionType.Respiration) {\n QuestionsHelper.setValueOnQuestion(nextQuestion, {});\n }\n\n if (!nextQuestion.showQuestion || (nextQuestion.showQuestion && Boolean(nextQuestion.isValid))) {\n return QuestionsHelper.getNextQuestionToShow({\n ...nextQuestionToShowParameters,\n fromQuestion: nextQuestion,\n });\n }\n }\n return nextQuestion;\n };\n\n //* all visible question are valid and there are no nextQuestion from last visibleQuestion\n //! rename to isAllVisibleQuestionsAreValid\n public static isStepCompleted = (\n checkStepCompletedParameters: CheckStepCompletedParameters\n ): IsStepCompletedResult => {\n const { questions = [], produitPrincipal, isVendeur } = checkStepCompletedParameters;\n\n const { lastShownQuestion: lastVisibleQuestion } = QuestionsHelper.getLastShownQuestion(questions);\n\n const findNextNotVisibleQuestion = (fromQuestionIndex: number): QuestionItem | undefined => {\n const nextQuestion: QuestionItem | undefined = questions.find(\n (q: QuestionItem) => q.index > fromQuestionIndex\n );\n\n if (nextQuestion) {\n const previousVisibleQuestion: QuestionItem | undefined = QuestionsHelper.getPreviousVisibleQuestion(\n nextQuestion,\n questions\n );\n\n let contextToUse = QuestionContextHelper.mergeContext(previousVisibleQuestion?.context ?? {}, {});\n contextToUse = ObjectUtils.clone(\n ConfigurationUtils.evalQuestionEvalutations(nextQuestion, contextToUse)\n );\n\n const nextQuestionIsVisible: boolean = QuestionsHelper.isQuestionVisible({\n question: nextQuestion,\n produitPrincipalCompleteCode: ProductHelper.getCompleteCode(produitPrincipal),\n context: contextToUse,\n log: 'findNextNotVisibleQuestion',\n });\n if (\n !nextQuestionIsVisible ||\n (nextQuestionIsVisible && nextQuestion.showQuestion) ||\n (nextQuestionIsVisible &&\n (nextQuestion.type === QuestionType.Comment || nextQuestion.type === QuestionType.Respiration))\n ) {\n return findNextNotVisibleQuestion(nextQuestion.index);\n }\n }\n return nextQuestion;\n };\n\n const getNestedIncompletedQuestionsExceptedCommentAndRespiration = (\n questions: Array = []\n ): Array => {\n let incompletedQuestions: Array =\n questions.length > 0\n ? Enumerable.from(questions)\n .where(\n (q) =>\n q.type !== QuestionType.Comment &&\n q.type !== QuestionType.Respiration &&\n !!q.showQuestion &&\n ConditionHelper.isConditionEvaluateToTrue({\n condition: q.visibility_condition,\n rawContext: q.context,\n }) &&\n !q.isValid\n )\n .toArray()\n : [];\n return incompletedQuestions;\n };\n\n const questionToShowNotExist = (questions: Array): boolean => {\n return !Boolean(questions.find((x: QuestionItem) => x.showQuestion && x.type !== QuestionType.Respiration));\n };\n\n if (questions.length > 0 && !questionToShowNotExist(questions)) {\n const isStepPose = questions[0].related_step === QuestionStep.StepPose;\n const productType = ProductHelper.getProductType(produitPrincipal);\n const shouldCheckFlooringDirection =\n questions[0].context_type === QuestionContextType.Rooms &&\n isVendeur &&\n isStepPose &&\n (productType === ProductType.LamePleine || productType === ProductType.Rouleau);\n if (shouldCheckFlooringDirection && !Boolean(questions[0].context.flooring_direction)) {\n return { isEmpty: false, isStepCompleted: false };\n }\n const nextQuestion: QuestionItem | undefined = lastVisibleQuestion\n ? findNextNotVisibleQuestion(lastVisibleQuestion.index)\n : findNextNotVisibleQuestion(-1);\n if (nextQuestion) {\n return { isEmpty: false, isStepCompleted: false };\n } else {\n const incompletedQuestions = getNestedIncompletedQuestionsExceptedCommentAndRespiration(questions);\n return { isEmpty: false, isStepCompleted: incompletedQuestions.length === 0 };\n }\n }\n\n return { isStepCompleted: true, isEmpty: true };\n };\n}\n","import { QuoteLoadUtils } from 'Web/Pages/Quote/Controllers/QuoteProviderController';\nimport { QuoteState } from 'Web/Pages/Quote/QuoteState';\n\nimport {\n BaseDeCalculDto,\n OpeningsContextPropertiesDto,\n PrixContextType,\n PrixDto,\n QuestionItem,\n RoomElementsContextPropertiesDto,\n} from '../Models/Questions/QuestionDto';\nimport {\n DetailQuotationProduitDto,\n EvaluationByPlanItemDto,\n GetQuotationDto,\n QuotationEvaluationDto,\n QuotationPrixDto,\n QuotationReplyBaseDto,\n ReponsePrixContextTypeDto,\n ReponsePrixMetierDePoseContextPropertiesDto,\n ReponsePrixOpeningsContextPropertiesDto,\n ReponsePrixRoomContextPropertiesDto,\n ReponsePrixRoomElementsContextPropertiesDto,\n RoomDetailSection,\n SetQuotationAdditionalDetailsDto,\n} from '../Models/Quotations/Quotations';\nimport { MapContextState } from '../Plugins/FloorPlan/Context/MapContext';\nimport { MapExportContextValue } from '../Plugins/FloorPlan/Context/MapExportContext';\nimport { IMapItem } from '../Plugins/FloorPlan/Models/IMapItem';\nimport { IOpening, OpeningType } from '../Plugins/FloorPlan/Models/IOpening';\nimport { IRoom, RoomType } from '../Plugins/FloorPlan/Models/IRoom';\nimport { IRoomItem, RoomItemType } from '../Plugins/FloorPlan/Models/IRoomItem';\nimport { AuthHelper } from '../Services/Authentication/AuthHelper';\nimport { ConditionHelper } from './ConditionHelper';\nimport { getNotSupportedError } from './ConfigurationUtils';\nimport { ObjectUtils } from './ObjectUtils';\nimport { ProductHelper } from './ProductHelper';\nimport { EvaluationContext, QuestionContext, QuestionContextHelper } from './QuestionContextHelper';\nimport { QuestionsHelper } from './QuestionsHelper';\nimport { RoomHeatingTypeErrorHelper } from './RoomHeatingTypeErrorHelper';\nimport { QuestionsSyntheses, SynthesesHelper } from './SynthesesHelper';\n\ntype BaseDeCalculValueComment = { value: number; commentaire?: string };\n\nexport type GetBaseCalculParameters = {\n baseDeCalcul: BaseDeCalculDto;\n map?: MapContextState;\n contextType?: PrixContextType;\n item?: IRoom | IRoomItem | IOpening;\n}\n\ntype GetGetQuotationDtoParameters = {\n map: MapContextState;\n quoteState: QuoteState;\n exportImageMap: MapExportContextValue;\n}\n\ntype GetQuotationAdditionalDetailsParameters = {\n exportImageMap: MapExportContextValue;\n map: MapContextState;\n syntheses: QuestionsSyntheses;\n}\n\ntype FillPrixListParams = {\n prix: PrixDto;\n baseDeCalcul: number | undefined;\n contextType: PrixContextType;\n prixContextProperties:\n | ReponsePrixMetierDePoseContextPropertiesDto\n | ReponsePrixRoomContextPropertiesDto\n | ReponsePrixOpeningsContextPropertiesDto\n | ReponsePrixRoomElementsContextPropertiesDto;\n commentaire?: string;\n};\n\nexport class QuotationHelper {\n public static getReducedProduitList = (produits?: DetailQuotationProduitDto[]) => {\n return produits?.reduce((acc, cur) => {\n const existingProduit = acc.find((x) => x.code_produit === cur.code_produit && x.pu_ttc === cur.pu_ttc);\n if (existingProduit) {\n existingProduit.total_ttc += cur.total_ttc;\n existingProduit.quantity += cur.quantity;\n existingProduit.eco_contribution += cur.eco_contribution;\n } else {\n acc.push({ ...cur });\n }\n return acc;\n }, [] as DetailQuotationProduitDto[]);\n };\n\n public static getEcoContributionTotal = (quote?: QuotationReplyBaseDto): number => {\n return (\n this.getEcoContribution(quote?.detail_main_produit_list) +\n this.getEcoContribution(quote?.detail_produits_complementaires.items)\n );\n };\n\n private static getEcoContribution = (produits?: DetailQuotationProduitDto[]): number => {\n return produits?.reduce((acc, item) => acc + (item.eco_contribution ?? 0) * (item.quantity ?? 0), 0) ?? 0;\n };\n\n public static getLastGeneralQuestion = (quoteState: QuoteState) => {\n const { stepHabitation, stepServices, stepSynthese } = quoteState;\n if (stepSynthese?.questions.length) {\n return QuestionsHelper.getLastQuestionContext(stepSynthese.questions);\n }\n if (stepServices?.questions.length) {\n return QuestionsHelper.getLastQuestionContext(stepServices.questions);\n }\n return QuestionsHelper.getLastQuestionContext(stepHabitation?.questions);\n }\n\n public static async getGetQuotationDto(params: GetGetQuotationDtoParameters) {\n\n const { quoteState, map, exportImageMap } = params;\n\n const lastGeneralQuestion = QuotationHelper.getLastGeneralQuestion(quoteState);\n if (RoomHeatingTypeErrorHelper.isRoomHeatingTypeMissing(map.rooms, lastGeneralQuestion?.context?.evaluations)) {\n throw RoomHeatingTypeErrorHelper.createMissingRoomHeatingTypeError();\n }\n\n const { quotationPrixList: prix_list, quotePrixContextDebugMap } = this.toQuotationPrixList(params);\n\n const evaluations: QuotationEvaluationDto = this.getQuotationEvaluation(params);\n\n const configuration = QuoteLoadUtils.getConfiguration({ mapState: map, quoteState });\n\n const additional_details: SetQuotationAdditionalDetailsDto = await this.getQuotationAdditionalDetails({\n exportImageMap,\n map,\n syntheses: SynthesesHelper.getSyntheses({ quoteState, map }),\n });\n\n const bodyRequest: GetQuotationDto = { evaluations, prix_list, configuration, additional_details };\n\n return { bodyRequest, quotePrixContextDebugMap };\n }\n\n private static getQuotationEvaluation({ map, quoteState }: GetGetQuotationDtoParameters): QuotationEvaluationDto {\n const { rooms = [], openings = [], roomItems = [] } = map;\n const lastGeneralQuestion = QuotationHelper.getLastGeneralQuestion(quoteState);\n\n const globalsEvaluations: EvaluationContext = lastGeneralQuestion?.context?.evaluations ?? {};\n\n const roomElementsEvaluations: EvaluationByPlanItemDto = {};\n const roomsEvaluations: EvaluationByPlanItemDto = {};\n const openingsEvaluations: EvaluationByPlanItemDto = {};\n\n const addEvaluations = (\n items: Array,\n getId: (item: T) => string,\n evaluationByPlanItem: EvaluationByPlanItemDto\n ) => {\n items.forEach(\n (item: T) => (evaluationByPlanItem[getId(item)] = item.questionsBaseContext?.evaluations ?? {})\n );\n items.forEach((item: T) => {\n const tryAddEvaluations = (questions: Array = []) => {\n const { lastShownQuestion } = QuestionsHelper.getLastShownQuestion(questions);\n if (lastShownQuestion) {\n const itemId = getId(item);\n const evaluations: EvaluationContext = lastShownQuestion.context?.evaluations ?? {};\n const existingEvaluations: Record | undefined = evaluationByPlanItem[itemId];\n\n if (existingEvaluations) {\n const mergeEvaluations: EvaluationContext = {\n ...ObjectUtils.clone(existingEvaluations),\n ...ObjectUtils.clone(evaluations),\n };\n evaluationByPlanItem[itemId] = mergeEvaluations;\n } else {\n evaluationByPlanItem[itemId] = evaluations;\n }\n }\n };\n tryAddEvaluations(item.questionsPose?.questions);\n tryAddEvaluations(item.questionsSupport?.questions);\n tryAddEvaluations(item.questionsPreparation?.questions);\n tryAddEvaluations(item.questionsFinition?.questions);\n });\n };\n\n addEvaluations(rooms, (item) => item.roomId!, roomsEvaluations);\n addEvaluations(openings, (item) => item.openingId!, openingsEvaluations);\n addEvaluations(roomItems, (item) => item.roomItemId!, roomElementsEvaluations);\n\n const evaluations: QuotationEvaluationDto = {\n globals: globalsEvaluations,\n room_elements: roomElementsEvaluations,\n rooms: roomsEvaluations,\n openings: openingsEvaluations,\n };\n return evaluations;\n }\n\n private static async getQuotationAdditionalDetails({\n exportImageMap,\n map,\n syntheses,\n }: GetQuotationAdditionalDetailsParameters): Promise {\n const { rooms = [], openings = [], roomItems = [] } = map;\n const roomDetailList = await Promise.all(\n rooms.map(async (room) => {\n const plan_png_base64 = await exportImageMap\n .exportBandItems()\n .find((x) => x.room.roomId === room.roomId)\n ?.capturePng();\n\n const roomDetailSection: RoomDetailSection = {\n id: room.roomId!,\n formatted_syntheses:\n syntheses.synthesesByRoom.find((x) => x.item?.roomId === room.roomId)?.formattedSyntheses ?? [],\n plan_png_base64,\n properties: {\n name: room.name,\n type: room.type!,\n existing_flooring: room.roomExistingFlooring,\n existing_floor_type: room.roomExistingFloorType,\n floor: room.roomFloor,\n heating_type: room.roomHeating,\n contournements_numbers: room.contournements || {},\n //contournements_numbers: room.contournements?.ToContournementsNumbersDefaultValue(),\n },\n };\n return roomDetailSection;\n })\n );\n\n return {\n general: {\n plan_png_base64: await exportImageMap.capturePng(RoomType.Sol),\n plan_walls_png_base64: await exportImageMap.capturePng(RoomType.Wall),\n formatted_syntheses: syntheses.synthesesGeneral,\n },\n rooms: roomDetailList,\n openings: openings.map((opening) => ({\n id: opening.openingId!,\n formatted_syntheses:\n syntheses.synthesesByOpening.find((x) => x.item?.openingId === opening.openingId)\n ?.formattedSyntheses ?? [],\n properties: {\n name: opening.name,\n type: opening.type,\n size: opening.size,\n room_id: opening.roomId,\n },\n })),\n room_elements: roomItems.map((roomItem) => ({\n id: roomItem.roomItemId!,\n formatted_syntheses:\n syntheses.synthesesByRoomItem.find((x) => x.item?.roomItemId === roomItem.roomItemId)\n ?.formattedSyntheses ?? [],\n properties: {\n name: roomItem.name,\n type: roomItem.type,\n room_id: roomItem.roomId,\n },\n })),\n };\n }\n\n //#region //* PRICES\n\n private static toQuotationPrixDto({\n prix,\n baseDeCalcul,\n contextType,\n commentaire,\n prixContextProperties,\n }: FillPrixListParams): QuotationPrixDto {\n const quotationPrix: QuotationPrixDto = {\n prix_id: prix.id,\n base_calcul: baseDeCalcul,\n context_type: this.toPrixContextTypeDto(contextType),\n commentaire: commentaire,\n };\n if (contextType === PrixContextType.MetierDePose) {\n quotationPrix.metier_de_pose_context_properties =\n prixContextProperties as ReponsePrixMetierDePoseContextPropertiesDto;\n }\n if (contextType === PrixContextType.Rooms || contextType === PrixContextType.Walls) {\n quotationPrix.rooms_context_properties = prixContextProperties as ReponsePrixRoomContextPropertiesDto;\n }\n if (contextType === PrixContextType.Openings) {\n quotationPrix.openings_context_properties =\n prixContextProperties as ReponsePrixOpeningsContextPropertiesDto;\n }\n if (contextType === PrixContextType.RoomElements) {\n quotationPrix.room_elements_context_properties =\n prixContextProperties as ReponsePrixRoomElementsContextPropertiesDto;\n }\n return quotationPrix;\n }\n\n private static getBaseCalcul = (\n baseCalculParameters: GetBaseCalculParameters\n ): Array | BaseDeCalculValueComment | undefined => {\n const { contextType, baseDeCalcul, map, item } = baseCalculParameters;\n\n const toBaseDeCalcul = (value?: any) => {\n return value ? parseFloat(value) : 0;\n };\n\n if (baseDeCalcul === BaseDeCalculDto.NoBase) {\n //* do nothing, handled by api\n }\n\n //#region //* OPENING\n if (contextType === PrixContextType.Openings) {\n const opening = item as IOpening;\n if (baseDeCalcul === BaseDeCalculDto.OpeningDimensionCentimetre) {\n return { value: toBaseDeCalcul(opening?.size) };\n }\n }\n //#endregion\n\n\n //#region ROOM AND WALL\n if ([PrixContextType.Rooms, PrixContextType.Walls].includes(contextType!)) {\n const room = item as IRoom;\n if (baseDeCalcul === BaseDeCalculDto.LongueurRaccordMetre) {\n return { value: toBaseDeCalcul(room.raccord_length) };\n }\n }\n //#endregion\n\n //#region //* ROOM\n if (contextType === PrixContextType.Rooms) {\n const room = item as IRoom;\n\n if (baseDeCalcul === BaseDeCalculDto.RoomLongueurTotaleLaizeMetre) {\n return map?.laizeResults\n ?.find((x) => x.roomIds?.includes(room.roomId!))\n ?.laizes?.filter((x) => !x.leftOverUsed && x.roomId === room.roomId!)\n ?.map((x) => ({ value: x.length, commentaire: `Bande ${x.id}` }));\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomLamePleineQuantity) {\n return {\n value:\n map?.laizeResults\n ?.find((x) => x.roomIds?.includes(room.roomId!))\n ?.laizes?.filter((x) => !x.leftOverUsed && x.roomId === room.roomId!)?.length ?? 0,\n };\n }\n\n if (baseDeCalcul === BaseDeCalculDto.RoomPerimeterMetre) {\n return { value: toBaseDeCalcul(room.perimeter) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomPerimeterPlinthesMetre) {\n return { value: toBaseDeCalcul(room.perimeter_plinthes) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomSurfaceMetreCarre) {\n return { value: toBaseDeCalcul(room.surface_area_without_room_item) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomSurfaceManipuleeProrataMetreCarre) {\n return { value: toBaseDeCalcul(room.surface_manipulee_prorata) };\n }\n //* CONTOURNEMENTS\n if (baseDeCalcul === BaseDeCalculDto.RoomPipeOnFloorCount) {\n return { value: toBaseDeCalcul(room.contournements?.Pipe) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomThingsOnAStandCount) {\n return { value: toBaseDeCalcul(room.contournements?.MountedElement) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomRadiatorCount) {\n return { value: toBaseDeCalcul(room.contournements?.MountedRadiator) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomObstacleCount) {\n return { value: toBaseDeCalcul(room.contournements?.Pillar) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomStairsCount) {\n return { value: toBaseDeCalcul(room.contournements?.Stairs) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomStoneWallMetre) {\n return { value: toBaseDeCalcul(room.contournements?.Stonewall) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomRailingCount) {\n return { value: toBaseDeCalcul(room.contournements?.Railing) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomTreeCount) {\n return { value: toBaseDeCalcul(room.contournements?.Tree) };\n }\n }\n //#endregion\n\n //#region //* WALL\n if (contextType === PrixContextType.Walls) {\n const room = item as IRoom;\n if (baseDeCalcul === BaseDeCalculDto.WallSurfaceMetreCarre) {\n return { value: toBaseDeCalcul(room.surface_area_without_room_item) };\n }\n if (baseDeCalcul === BaseDeCalculDto.WallPerimeterMetre) {\n return { value: toBaseDeCalcul(room.perimeter) };\n }\n if (baseDeCalcul === BaseDeCalculDto.WallSurfaceManipuleeProrataMetreCarre) {\n return { value: toBaseDeCalcul(room.surface_manipulee_prorata) };\n }\n\n //* CONTOURNEMENTS\n if (baseDeCalcul === BaseDeCalculDto.WallPipeCount) {\n return { value: toBaseDeCalcul(room.contournements?.WallPipe) };\n }\n if (baseDeCalcul === BaseDeCalculDto.WallPipeHoleCount) {\n return { value: toBaseDeCalcul(room.contournements?.WallPipeHole) };\n }\n if (baseDeCalcul === BaseDeCalculDto.ElectricEquipmentCount) {\n return { value: toBaseDeCalcul(room.contournements?.ElectricEquipment) };\n }\n if (baseDeCalcul === BaseDeCalculDto.WallPillarCount) {\n return { value: toBaseDeCalcul(room.contournements?.WallPillar) };\n }\n if (baseDeCalcul === BaseDeCalculDto.HotspotCount) {\n return { value: toBaseDeCalcul(room.contournements?.Hotspot) };\n }\n }\n //#endregion\n\n //#region //* ROOM ELEMENT\n if (contextType === PrixContextType.RoomElements) {\n const roomItem = item as IRoomItem;\n\n if (baseDeCalcul === BaseDeCalculDto.RoomElementsArea) {\n return { value: toBaseDeCalcul(roomItem?.surface) };\n }\n if (baseDeCalcul === BaseDeCalculDto.RoomElementsMetreLineaire) {\n return { value: toBaseDeCalcul(roomItem?.room_elements_length) };\n }\n if (baseDeCalcul === BaseDeCalculDto.MarcheLengthMetreLineaire) {\n const value =\n (Math.min(roomItem?.horizontal_size!, roomItem?.vertical_size!) * 2 +\n Math.max(roomItem?.horizontal_size!, roomItem?.vertical_size!)) /\n 100;\n\n return { value: toBaseDeCalcul(value) };\n }\n }\n //#endregion\n\n return undefined;\n };\n\n public static toQuotationPrixList(params: GetGetQuotationDtoParameters) {\n const { map, quoteState } = params;\n const prixList = quoteState.versionData?.prix_list || [];\n const quotationPrixList: QuotationPrixDto[] = [];\n\n type AddPrixParameters = {\n context: QuestionContext;\n prixItems: Array;\n contextType: PrixContextType;\n item?: T;\n openingType?: OpeningType;\n roomItemType?: RoomItemType;\n questionProduitPrincipal?: QuestionItem;\n prixContextProperties:\n | ReponsePrixMetierDePoseContextPropertiesDto\n | ReponsePrixRoomContextPropertiesDto\n | ReponsePrixOpeningsContextPropertiesDto\n | ReponsePrixRoomElementsContextPropertiesDto;\n };\n\n const addPrices = ({\n context,\n item,\n prixItems,\n contextType,\n openingType,\n roomItemType,\n questionProduitPrincipal,\n prixContextProperties,\n }: AddPrixParameters) => {\n const isPrixInContext = (prix: PrixDto): boolean => {\n const isPrixWithContext = (): boolean => prix.context_type === contextType;\n\n let prixIsInContext: boolean = false;\n if (prix.openings_context_properties) {\n const openingsContext: OpeningsContextPropertiesDto = prix.openings_context_properties;\n if (contextType === PrixContextType.Openings && openingType) {\n if (openingType === OpeningType.Door) {\n prixIsInContext = isPrixWithContext() && openingsContext.is_for_porte;\n }\n if (openingType === OpeningType.ArmoredDoor) {\n prixIsInContext = isPrixWithContext() && openingsContext.is_for_porte_blindee;\n }\n if (openingType === OpeningType.FrontDoor) {\n prixIsInContext = isPrixWithContext() && openingsContext.is_for_porte_entree;\n }\n if (openingType === OpeningType.FrenchDoor) {\n prixIsInContext = isPrixWithContext() && openingsContext.is_for_porte_fenetre;\n }\n if (openingType === OpeningType.Opening) {\n prixIsInContext = isPrixWithContext() && openingsContext.is_for_passage_ouvert;\n }\n if (openingType === OpeningType.PatioDoor) {\n prixIsInContext = isPrixWithContext() && openingsContext.is_for_baie_vitree;\n }\n }\n } else if (prix.room_elements_context_properties) {\n const roomElementsContext: RoomElementsContextPropertiesDto = prix.room_elements_context_properties;\n if (contextType === PrixContextType.RoomElements && roomItemType) {\n if (roomItemType === RoomItemType.ShowerBathtub) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_shower_bathtub;\n }\n if (roomItemType === RoomItemType.FixedFurniture) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_fixed_furniture;\n }\n if (roomItemType === RoomItemType.Cupboard) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_cupboard;\n }\n if (roomItemType === RoomItemType.KitchenFurniture) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_kitchen_furniture;\n }\n if (roomItemType === RoomItemType.Trap) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_trap;\n }\n if (roomItemType === RoomItemType.Fireplace) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_fireplace;\n }\n if (roomItemType === RoomItemType.Opening) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_opening;\n }\n if (roomItemType === RoomItemType.Stairs) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_stairs;\n }\n if (roomItemType === RoomItemType.Divider) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_divider;\n }\n if (roomItemType === RoomItemType.HeavyElement) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_heavy_element;\n }\n if (roomItemType === RoomItemType.SewerPlate) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_sewer_plate;\n }\n if (roomItemType === RoomItemType.Door) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_door;\n }\n if (roomItemType === RoomItemType.SewerPlate) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_window;\n }\n if (roomItemType === RoomItemType.SewerPlate) {\n prixIsInContext = isPrixWithContext() && roomElementsContext.is_for_unlaid_area;\n }\n }\n } else {\n prixIsInContext = isPrixWithContext();\n }\n return prixIsInContext;\n };\n\n const isPrixPrevisible = (prix: PrixDto): boolean => {\n return QuestionsHelper.isConditionVisible({\n context,\n condition: prix.pre_visibility_condition,\n familleProduitCodeList: prix.famille_produit_code_list,\n produitPrincipalCompleteCode: ProductHelper.getCompleteCode(questionProduitPrincipal?.produitValue),\n });\n };\n\n prixItems.forEach((prix: PrixDto) => {\n const prixInContext = isPrixInContext(prix);\n const prixIsPrevisible = isPrixPrevisible(prix);\n const isConditionEvaluateToTrue = ConditionHelper.isConditionEvaluateToTrue({\n condition: prix.visibility_condition,\n rawContext: context,\n });\n\n if (prixInContext && prixIsPrevisible && isConditionEvaluateToTrue) {\n const baseDeCalcul: Array | BaseDeCalculValueComment | undefined =\n this.getBaseCalcul({ contextType, baseDeCalcul: prix.base_de_calcul_type, map, item });\n //@ts-ignore\n if (typeof baseDeCalcul?.value === 'number' || typeof baseDeCalcul === 'undefined') {\n const baseDeCalculNotArray = baseDeCalcul as BaseDeCalculValueComment | undefined;\n quotationPrixList.push(\n this.toQuotationPrixDto({\n prix,\n baseDeCalcul: baseDeCalculNotArray?.value,\n contextType: prix.context_type,\n prixContextProperties,\n commentaire: baseDeCalculNotArray?.commentaire,\n })\n );\n } else {\n const baseDeCalculArray = baseDeCalcul as Array;\n for (const detailedBaseCalcul of baseDeCalculArray) {\n quotationPrixList.push(\n this.toQuotationPrixDto({\n prix,\n baseDeCalcul: detailedBaseCalcul?.value,\n contextType: prix.context_type,\n prixContextProperties,\n commentaire: detailedBaseCalcul?.commentaire,\n })\n );\n }\n }\n }\n });\n };\n\n const isSeller = AuthHelper.isAuthenticatedAsStoreUser();\n const prixListFiltered = prixList.filter((p) => (isSeller ? true : !p.show_only_to_sellers));\n\n const generalPrixList = prixListFiltered.filter((p) => p.context_type === PrixContextType.MetierDePose);\n const roomPrixList = prixListFiltered.filter((p) => p.context_type === PrixContextType.Rooms);\n const wallPrixList = prixListFiltered.filter((p) => p.context_type === PrixContextType.Walls);\n const roomElementsPrixList = prixListFiltered.filter((p) => p.context_type === PrixContextType.RoomElements);\n const openingsPrixList = prixListFiltered.filter((p) => p.context_type === PrixContextType.Openings);\n\n const { rooms = [], roomItems = [], openings = [] } = map;\n const roomsSOL = rooms.filter((x) => x.type === RoomType.Sol);\n const roomsWALL = rooms.filter((x) => x.type === RoomType.Wall);\n\n const quotePrixContextDebugMap = PrixContextDebugMapDefault;\n\n const metierDePoseListContext = this.getMetierDePoseListContext(params);\n metierDePoseListContext.forEach(({ metierDePose, metierDePoseContext }) => {\n quotePrixContextDebugMap.metierDePoses[metierDePose] = metierDePoseContext;\n addPrices({\n prixItems: generalPrixList,\n context: metierDePoseContext,\n contextType: PrixContextType.MetierDePose,\n prixContextProperties: { metier_de_pose: metierDePose },\n });\n });\n\n roomsSOL.forEach((roomSol) => {\n const roomSolPrixContext = this.getContext(roomSol, roomSol.questionsBaseContext);\n quotePrixContextDebugMap.rooms[roomSol.roomId!] = roomSolPrixContext;\n addPrices({\n prixItems: roomPrixList,\n item: roomSol,\n context: roomSolPrixContext,\n contextType: PrixContextType.Rooms,\n questionProduitPrincipal: roomSol.questionProduitPrincipal,\n prixContextProperties: { room_id: roomSol.roomId! },\n });\n });\n roomsWALL.forEach((roomWall) => {\n const roomWallPrixContext = this.getContext(roomWall, roomWall.questionsBaseContext);\n quotePrixContextDebugMap.rooms[roomWall.roomId!] = roomWallPrixContext;\n addPrices({\n prixItems: wallPrixList,\n item: roomWall,\n context: roomWallPrixContext,\n contextType: PrixContextType.Walls,\n questionProduitPrincipal: roomWall.questionProduitPrincipal,\n prixContextProperties: { room_id: roomWall.roomId! },\n });\n });\n\n roomItems.forEach((roomItem) => {\n const room = rooms.find((item) => item.roomId === roomItem.roomId)!;\n const roomItemPrixContext = this.getContext(roomItem, roomItem.questionsBaseContext);\n quotePrixContextDebugMap.rooms[roomItem.roomItemId!] = roomItemPrixContext;\n addPrices({\n prixItems: roomElementsPrixList,\n item: roomItem,\n context: roomItemPrixContext,\n contextType: PrixContextType.RoomElements,\n roomItemType: roomItem.type,\n questionProduitPrincipal: room.questionProduitPrincipal,\n prixContextProperties: { room_element_id: roomItem.roomItemId!, room_id: room.roomId! },\n });\n });\n openings.forEach((opening) => {\n const room = rooms.find((item) => item.roomId === opening.roomId)!;\n const openingPrixContext = this.getContext(opening, opening.questionsBaseContext);\n quotePrixContextDebugMap.rooms[opening.openingId!] = openingPrixContext;\n addPrices({\n prixItems: openingsPrixList,\n item: opening,\n context: openingPrixContext,\n contextType: PrixContextType.Openings,\n openingType: opening.type,\n questionProduitPrincipal: room.questionProduitPrincipal,\n prixContextProperties: { opening_id: opening.openingId!, room_id: room.roomId! },\n });\n });\n\n return { quotationPrixList, quotePrixContextDebugMap };\n }\n\n public static getContext = (item: IMapItem, defaultContext: QuestionContext = {}) => {\n const questions = [\n ...item.questionsPose?.questions! || [],\n ...item.questionsSupport?.questions! || [],\n ...item.questionsPreparation?.questions! || [],\n ...item.questionsFinition?.questions! || [],\n ];\n return QuestionsHelper.getLastShownQuestion(questions).lastShownQuestion?.context || defaultContext;\n };\n\n public static getMetierDePoseListContext = ({ map, quoteState }: GetGetQuotationDtoParameters) => {\n const { rooms: allRooms = [] } = map;\n const roomsSols = allRooms.filter(r => r.type === RoomType.Sol);\n const roomWalls = allRooms.filter(r => r.type === RoomType.Wall);\n\n const metierDePoseList = Array.from(\n new Set(\n allRooms.map((r) => ProductHelper.toMetierDePose(r.questionProduitPrincipal?.produitValue)).filter(Boolean)\n )\n );\n\n const lastGeneralQuestion = QuotationHelper.getLastGeneralQuestion(quoteState);\n const generalContext = QuestionContextHelper.mergeContext(lastGeneralQuestion?.context);\n\n const metierDePoseListContext: MetierDePoseWithContext[] = metierDePoseList.map((metierDePose) => {\n //* Un tableau des contextes de chacune des pièces reliées à ce métier de pose\n const roomsContext = roomsSols\n .filter((r) => ProductHelper.toMetierDePose(r.questionProduitPrincipal?.produitValue) === metierDePose)\n .map((room) => {\n const roomContext = this.getContext(room, lastGeneralQuestion?.context);\n\n //! UNLOCK LATER #36373 : Quand on aura baisser la liste des attributs\n //* Dans chaque pièce, un tableau des contextes des ouvertures de la pièce\n // roomContext.openings = room.openings?.map(item => this.getContext(item, lastGeneralQuestion?.context));\n //* Dans chaque pièce, un tableau des contextes des autres éléments de la pièce\n //roomContext.room_items = room.roomItems?.map(item => this.getContext(item, lastGeneralQuestion?.context));\n return roomContext;\n });\n\n //* Un tableau des contextes de chacune des pièces reliées à ce métier de pose\n const wallsContext = roomWalls\n .filter((r) => ProductHelper.toMetierDePose(r.questionProduitPrincipal?.produitValue) === metierDePose)\n .map((room) => {\n const roomContext = this.getContext(room, lastGeneralQuestion?.context);\n //! UNLOCK LATER #36373 : Quand on aura baisser la liste des attributs\n //* Dans chaque pièce, un tableau des contextes des ouvertures de la pièce\n // roomContext.openings = room.openings?.map(item => this.getContext(item, lastGeneralQuestion?.context));\n //* Dans chaque pièce, un tableau des contextes des autres éléments de la pièce\n //roomContext.room_items = room.roomItems?.map(item => this.getContext(item, lastGeneralQuestion?.context));\n return roomContext;\n });\n return {\n metierDePose,\n //* Le contexte général\n metierDePoseContext: { ...ObjectUtils.clone(generalContext), rooms: roomsContext, walls: wallsContext, prix_metier_de_pose: metierDePose },\n };\n });\n\n return metierDePoseListContext;\n };\n\n public static toPrixContextTypeDto(contextType: PrixContextType): ReponsePrixContextTypeDto {\n switch (contextType) {\n case PrixContextType.MetierDePose:\n return ReponsePrixContextTypeDto.MetierDePose;\n case PrixContextType.Rooms:\n return ReponsePrixContextTypeDto.Rooms;\n case PrixContextType.Walls:\n return ReponsePrixContextTypeDto.Walls;\n case PrixContextType.Openings:\n return ReponsePrixContextTypeDto.Openings;\n case PrixContextType.RoomElements:\n return ReponsePrixContextTypeDto.RoomElements;\n default:\n throw getNotSupportedError(contextType);\n }\n }\n\n //#endregion\n}\n\ntype MetierDePoseWithContext = { metierDePose: string; metierDePoseContext: QuestionContext };\n\nexport type PrixContextDebugMap = {\n metierDePoses: Record;\n rooms: Record;\n walls: Record;\n openings: Record;\n roomItems: Record;\n};\n\nconst PrixContextDebugMapDefault: PrixContextDebugMap = {\n metierDePoses: {},\n rooms: {},\n walls: {},\n openings: {},\n roomItems: {},\n};\n","import Enumerable from 'linq';\n\nimport { ProduitDto } from '../Models/Questions/ProduitDto';\nimport { OptionDto, QuestionItem, QuestionType } from '../Models/Questions/QuestionDto';\nimport { QuestionsHelper } from './QuestionsHelper';\n\n\nexport class QuoteQuestionUtils {\n\n public static toQuestionId = (questionId?: string): string => `question_${questionId}`;\n public static toStepPlanQuestionItemId = (itemId?: string, questionId?: string): string => {\n return `toStepPlanQuestionItem_${itemId}-question_${questionId}`;\n };\n\n public static toQuestionItemId = (itemId?: string, questionId?: string): string => {\n return `toQuestionItemId-${itemId}-question_${questionId}`;\n };\n\n\n public static withtoListInfobulleId = (id?: string): string => `${id}_list_infobulle`;\n\n public static endStepActionId = 'QuoteStepEnd';\n\n public static questionsContainerId = 'QuestionsContainer';\n\n public static filterSellersQuestions(questions: QuestionItem[] = [], isSeller: boolean): QuestionItem[] {\n return (questions)\n .filter((q) => (isSeller ? true : !q.show_only_to_sellers))\n .map((q) => ({\n ...q,\n multiple_choices_properties: q.multiple_choices_properties\n ? {\n ...q.multiple_choices_properties,\n option_list: QuoteQuestionUtils.filterSellersOptions(\n q.multiple_choices_properties.option_list,\n isSeller\n ),\n }\n : undefined,\n single_choice_properties: q.single_choice_properties\n ? {\n ...q.single_choice_properties,\n option_list: QuoteQuestionUtils.filterSellersOptions(\n q.single_choice_properties.option_list,\n isSeller\n ),\n }\n : undefined,\n }));\n }\n\n public static makeFirstProduitReadonly(questions: QuestionItem[], produitRef: string) {\n let isFirstProduct = true;\n return questions.map((q) => {\n if (isFirstProduct && q.type === QuestionType.Produit) {\n isFirstProduct = false;\n return { ...q, produitReadonlyReference: produitRef };\n }\n return q;\n });\n }\n\n public static markFirstProduitAsFirstProduct(questions: QuestionItem[]) {\n let isFirstProduct = true;\n return questions.map((q) => {\n if (q.type === QuestionType.Produit && isFirstProduct) {\n isFirstProduct = false;\n return { ...q, isFirstProduct: true };\n }\n return q;\n });\n }\n\n private static filterSellersOptions(options: OptionDto[], isSeller: boolean) {\n return options?.filter((o) => (isSeller ? true : !o.show_only_to_sellers));\n }\n\n public static getProduitPrincipal = (questions: Array = []): ProduitDto | undefined => {\n //* get produit principal\n //* La sous-famille en cours est celle du produit sélectionné\n //* à la première question produit affichée du formulaire\n if (questions.length > 0) {\n const questionWith: QuestionItem | undefined = Enumerable.from(questions)\n .where((q: QuestionItem) =>\n q.type === QuestionType.Produit && !!q.showQuestion && q.produitValue !== undefined\n )\n .firstOrDefault();\n\n return questionWith?.produitValue;\n }\n return undefined;\n };\n\n public static getLastVisibleQuestion = (questions: Array = []): QuestionItem | undefined => {\n const { lastShownQuestion } = QuestionsHelper.getLastShownQuestion(questions);\n return lastShownQuestion;\n };\n\n public static getFirstVisibleNotValidQuestion = (questions: Array = []): QuestionItem | undefined => {\n const findQuestion: QuestionItem | undefined = questions.length\n ? Enumerable.from(questions).firstOrDefault((q: QuestionItem) => Boolean(q.showQuestion) && !q.isValid)\n : undefined;\n return findQuestion;\n };\n\n\n\n}\n","import { I18n } from \"../Locales/I18nService\";\nimport { IRoom, LocalisationName, RoomLocalisation } from \"../Plugins/FloorPlan/Models/IRoom\";\nimport { DialogService } from \"../Web/Services/DialogService\";\n\nimport { EvaluationContext } from \"./QuestionContextHelper\";\n\ntype RoomHeatingTypeError = { errorCode: string }\n\n//* HOTFIX #29953 C&P > Ajouter un message d'erreur de non enregistrement (type de chauffage)\nexport class RoomHeatingTypeErrorHelper {\n\n public static ERROR_CODE_MISSING_ROOM_HEATING_TYPE = 'MISSING_ROOM_HEATING_TYPE'\n\n public static createMissingRoomHeatingTypeError = (): RoomHeatingTypeError => {\n return { errorCode: this.ERROR_CODE_MISSING_ROOM_HEATING_TYPE }\n }\n\n public static isRoomHeatingTypeMissing = (rooms: Array = [], evaluations: EvaluationContext = {}) => {\n const localisation = evaluations[LocalisationName];\n if (localisation === RoomLocalisation.Inside) {\n const hasRoomWithoutHeatingType = rooms.some(room => {\n const isMissing = !Boolean(room.roomHeatingType);\n isMissing && console.log('isRoomHeatingTypeMissing', { room, isMissing });\n return isMissing;\n })\n return hasRoomWithoutHeatingType;\n }\n return false;\n }\n\n public static isErrorFromRoomHeatingTypeHelper = (error: RoomHeatingTypeError) => {\n return error.errorCode === this.ERROR_CODE_MISSING_ROOM_HEATING_TYPE;\n }\n\n public static handleError = async (error: RoomHeatingTypeError) => {\n DialogService.showDeadEndErrorDialog({\n title: I18n.get('ERROR_ROOM_HEATING_TYPE_MISSING_TITLE'),\n body: I18n.get('ERROR_ROOM_HEATING_TYPE_MISSING_CONTENT'),\n labelChoice: I18n.get('COMMON_CONTINUE'),\n onClickChoice: ({ closeDialog }) => closeDialog()\n });\n return true;\n }\n}","import { Constants } from '../Constants';\nimport { QuestionItem, QuestionType } from '../Models/Questions/QuestionDto';\nimport { StoreDto } from '../Models/TravelExpenses/StoreDto';\nimport { LocalityDto } from '../Models/TravelExpenses/TravelExpenseDto';\nimport { QuoteState } from '../Web/Pages/Quote/QuoteState';\n\nexport class StoreHelper {\n public static toDesciption(store: StoreDto) {\n const [line1] = store.address_lines || [];\n return `${line1}, ${store.zipcode} ${store.city}`;\n }\n\n public static toBookAppointmentUrl(store?: StoreDto) {\n const websiteUrl = store?.website;\n if (websiteUrl) {\n const storeSlug = websiteUrl.slice(websiteUrl.lastIndexOf('/') + 1);\n return Constants.STMAC_BOOK_APPOINTMENT_URL(storeSlug);\n }\n return Constants.STMAC_BOOK_APPOINTMENT_URL();\n }\n\n public static getStoreId = (questions: Array): string => {\n const zipCodeQuestion = questions.find((x) => x.type === QuestionType.ZipCode);\n return zipCodeQuestion?.zipCodeValue?.travel_expenses?.store.store_id ?? '';\n };\n\n public static getAddressLocality = (questions: QuestionItem[] = []): LocalityDto | undefined => {\n const zipCodeQuestion = questions.find((x) => x.type === QuestionType.ZipCode);\n return zipCodeQuestion?.zipCodeValue;\n };\n\n public static getProjectStore = ({ projetStore, stepHabitation }: Partial): StoreDto | undefined => {\n return projetStore ?? StoreHelper.getAddressLocality(stepHabitation?.questions)?.travel_expenses?.store\n };\n\n public static getProjectLocation = ({ stepHabitation }: Partial): LocalityDto | undefined => {\n return StoreHelper.getAddressLocality(stepHabitation?.questions)\n };\n}\n","import { IMapItem } from '../Plugins/FloorPlan/Models/IMapItem';\nimport { IOpening } from '../Plugins/FloorPlan/Models/IOpening';\nimport { IRoom } from '../Plugins/FloorPlan/Models/IRoom';\nimport { IRoomItem } from '../Plugins/FloorPlan/Models/IRoomItem';\nimport { OptionDto, QuestionItem, QuestionStep, QuestionType, SyntheseDto } from '../Models/Questions/QuestionDto';\nimport { ConditionHelper } from './ConditionHelper';\nimport { QuestionContext, QuestionContextHelper } from './QuestionContextHelper';\nimport { QuoteQuestionUtils } from './QuoteQuestionUtils';\nimport { MapContextState } from '../Plugins/FloorPlan/Context/MapContext';\nimport { QuoteState } from 'Web/Pages/Quote/QuoteState';\n\nexport type SyntheseMapItem = { item?: T; formattedSyntheses: Array; }\n\nexport type GetSynthesesParameters = { map: MapContextState; quoteState: QuoteState }\n\nexport interface QuestionsSyntheses {\n synthesesGeneral: string[];\n synthesesByRoom: SyntheseMapItem[];\n synthesesByOpening: SyntheseMapItem[];\n synthesesByRoomItem: SyntheseMapItem[];\n}\n\nexport class MatchHelper {\n public static UUIDV4_Regex = new RegExp(/[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}/gi);\n public static SyntheseMapItemProperty_Regex = new RegExp(/question_floorplan_(\\w+)/g);\n}\n\nexport class SynthesesHelper {\n\n public static getSyntheses = ({ quoteState, map }: GetSynthesesParameters) => {\n const { stepHabitation, stepServices, stepSynthese } = quoteState;\n\n const { rooms, openings, roomItems } = map;\n const synthesesGeneral: string[] = [\n ...this.toFormattedSyntheses(stepHabitation?.questions),\n ...this.toFormattedSyntheses(stepServices?.questions),\n ...this.toFormattedSyntheses(stepSynthese?.questions)\n ];\n const synthesesByRoom = this.toSyntheseMapItems(rooms);\n const synthesesByOpening = this.toSyntheseMapItems(openings);\n const synthesesByRoomItem = this.toSyntheseMapItems(roomItems);\n\n return { synthesesGeneral, synthesesByRoom, synthesesByOpening, synthesesByRoomItem };\n };\n\n private static toSyntheseMapItems = (\n mapItems: Array = []\n ): Array> => {\n return mapItems.map((item) => {\n let questions = [\n ...(item.questionsPose?.questions || []),\n ...(item.questionsSupport?.questions || []),\n ...(item.questionsPreparation?.questions || []),\n ...(item.questionsFinition?.questions || []),\n ];\n const room = item as IRoom;\n if (room.questionProduitPrincipal) {\n questions = [room.questionProduitPrincipal, ...questions]\n }\n const items: SyntheseMapItem = { item, formattedSyntheses: this.toFormattedSyntheses(questions) };\n return items;\n });\n };\n\n private static toFormattedSyntheses = (questions: QuestionItem[] = []): Array => {\n let formattedSyntheses: string[] = [];\n questions\n .filter((question) => [QuestionStep.StepHabitation, QuestionStep.StepServices, QuestionStep.StepSynthese].includes(question.related_step) || question?.showQuestion)\n .forEach((question: QuestionItem): void => {\n question.synthese_list?.forEach((synthese: SyntheseDto): void => {\n if (\n ConditionHelper.isSyntheseConditionItemVisible(synthese.visibility_condition, question.context)\n ) {\n let templateSynthese: string = synthese.template;\n let formattedSynthese: string | undefined;\n\n const tags = templateSynthese.match(MatchHelper.UUIDV4_Regex);\n if (tags) {\n for (const tag of tags) {\n const currentSyntheseQuestion = questions.find((x) => x.id === tag);\n if (currentSyntheseQuestion) {\n formattedSynthese = this.transformSyntheseTemplate(\n currentSyntheseQuestion,\n question.context,\n questions,\n templateSynthese\n );\n }\n }\n } else {\n const mapItemTags = Array.from(\n templateSynthese.matchAll(MatchHelper.SyntheseMapItemProperty_Regex),\n (m) => ({ baseTag: m[0], shortTag: m[1] })\n );\n if (mapItemTags) {\n formattedSynthese = this.transformMapItemPropertiesAnswers(\n question.context,\n templateSynthese,\n mapItemTags\n );\n }\n }\n\n if (formattedSynthese !== undefined) {\n formattedSyntheses.push(formattedSynthese);\n }\n }\n });\n });\n return formattedSyntheses;\n };\n\n private static transformSyntheseTemplate(\n syntheseQuestion: QuestionItem,\n context: QuestionContext = {},\n questionSyntheses: Array,\n formattedSynthese: string\n ): string | undefined {\n const syntheseQuestionId: string = QuoteQuestionUtils.toQuestionId(syntheseQuestion.id);\n let formattedSyntheseResult: string | undefined;\n\n const isInContext = (key: string, context: QuestionContext): boolean => {\n return context[key] !== undefined && context[key] !== '';\n };\n\n const transform = (template: string, key: string, value: string): string => {\n if (template.includes(key)) {\n return template.replaceAll(key, value);\n }\n return template;\n };\n\n switch (syntheseQuestion.type) {\n case QuestionType.SingleChoice:\n if (syntheseQuestion.single_choice_properties) {\n if (formattedSynthese.includes(syntheseQuestionId)) {\n const syntheseQuestionOption: string = QuestionContextHelper.toQuestionOption(\n syntheseQuestion.id\n );\n if (isInContext(syntheseQuestionOption, context)) {\n const questionOptionValue: string = context[syntheseQuestionOption];\n //* search option label\n const currentSyntheseQuestion = questionSyntheses.find((x) => x.id === syntheseQuestion.id);\n currentSyntheseQuestion?.single_choice_properties!.option_list.forEach(\n (option: OptionDto) => {\n const optionIdKey = QuestionContextHelper.toOptionId(option.id);\n if (questionOptionValue === optionIdKey) {\n formattedSyntheseResult = transform(\n formattedSynthese,\n syntheseQuestionId,\n option.label\n );\n }\n }\n );\n }\n }\n }\n break;\n\n case QuestionType.Produit:\n if (formattedSynthese.includes(syntheseQuestionId)) {\n if (isInContext(syntheseQuestionId, context)) {\n const produit = context[syntheseQuestionId];\n const libelleKey = Object.keys(produit).filter((x) => x.endsWith('LibelleWeb'))[0];\n const produitLibelleWeb = `${produit[libelleKey]} (${parseInt(\n produit['infos_produit']['code_article'],\n )}/${parseInt(produit['infos_produit']['code_coloris'])})`;\n formattedSyntheseResult = transform(formattedSynthese, syntheseQuestionId, produitLibelleWeb);\n }\n }\n break;\n\n case QuestionType.Number:\n if (formattedSynthese.includes(syntheseQuestionId)) {\n const questionValueKey: string = QuestionContextHelper.toQuestionValue(syntheseQuestion.id);\n if (isInContext(questionValueKey, context)) {\n const number = context[questionValueKey];\n formattedSyntheseResult = transform(formattedSynthese, syntheseQuestionId, number);\n }\n }\n break;\n\n case QuestionType.MultipleChoices:\n if (syntheseQuestion.multiple_choices_properties) {\n if (formattedSynthese.includes(syntheseQuestionId)) {\n const questionOptionKey: string = QuestionContextHelper.toQuestionOption(syntheseQuestion.id);\n\n if (isInContext(questionOptionKey, context)) {\n const questionOptionsValues: Array = context[questionOptionKey];\n const selectedOptionsLabels: Array =\n syntheseQuestion.multiple_choices_properties.option_list\n .filter((x) =>\n questionOptionsValues.includes(QuestionContextHelper.toOptionId(x.id))\n )\n .map((x) => x.label);\n\n formattedSyntheseResult = transform(\n formattedSynthese,\n syntheseQuestionId,\n selectedOptionsLabels.join(', ')\n );\n }\n }\n }\n break;\n\n case QuestionType.Comment:\n if (formattedSynthese.includes(syntheseQuestionId)) {\n const questionValueKey: string = QuestionContextHelper.toQuestionValue(syntheseQuestion.id);\n if (isInContext(questionValueKey, context)) {\n const comment = context[questionValueKey];\n formattedSyntheseResult = transform(formattedSynthese, syntheseQuestionId, comment);\n }\n }\n break;\n\n case QuestionType.ZipCode:\n const zipCode = syntheseQuestion.zipCodeValue?.zipcode;\n formattedSyntheseResult = zipCode\n ? transform(formattedSynthese, syntheseQuestionId, zipCode)\n : formattedSynthese;\n break;\n }\n return formattedSyntheseResult;\n }\n\n private static transformMapItemPropertiesAnswers(\n context: QuestionContext,\n formattedSynthese: string,\n mapItemPropertiesTags: Array<{ baseTag: string; shortTag: string; }>\n ): string | undefined {\n const defaultValueIfNeeded = (value: string): string => {\n return value === QuestionContextHelper.NOT_SET ? '-' : value;\n };\n for (const tag of mapItemPropertiesTags) {\n if (context?.[tag.shortTag] !== undefined && context?.[tag.shortTag] !== '') {\n formattedSynthese = formattedSynthese.replace(tag.baseTag, defaultValueIfNeeded(context[tag.shortTag]));\n } else if (\n //@ts-ignore\n context?.contournements?.[tag.shortTag] !== undefined &&\n //@ts-ignore\n context?.contournements?.[tag.shortTag] !== ''\n ) {\n //@ts-ignore\n formattedSynthese = formattedSynthese.replace(tag.baseTag, context?.contournements[tag.shortTag]);\n } else {\n return undefined;\n }\n }\n return formattedSynthese;\n }\n}\n","import { QuestionContext } from './QuestionContextHelper';\n\nexport const TauxDeTvaKey = 'Taux de TVA';\n\nexport enum TauxDeTva {\n intermediaire = 'intermediaire',\n intermédiaire = 'intermédiaire',\n normal = 'normal',\n}\n\nexport class TauxDeTvaHelper {\n public static getTauxDeTva = (context: QuestionContext = {}): TauxDeTva => {\n const evaluations = context.evaluations ?? {};\n const tauxDeTva: TauxDeTva = evaluations[TauxDeTvaKey] as TauxDeTva;\n return tauxDeTva;\n };\n}\n","import React from \"react\";\n\nexport const useVisibility = (isVisible: boolean = false) => {\n const [visible, setVisible] = React.useState(isVisible);\n const hide = () => setVisible(false);\n const show = () => setVisible(true);\n const toggle = () => setVisible(prev => !prev);\n return { visible, show, hide, toggle };\n};","import React from 'react';\n\nimport { CurrentProjectState } from '../Configs/CurrentProjectContext';\nimport { GestureState } from '../Plugins/FloorPlan/Context/GestureContext';\nimport { MapContextState } from '../Plugins/FloorPlan/Context/MapContext';\nimport { DebugContextState } from '../Web/Context/Debug/DebugContext';\nimport { QuoteState } from '../Web/Pages/Quote/QuoteState';\nimport { IncompatibilityState } from '../Plugins/FloorPlan/Context/IncompatibilityContext';\nimport { UndoRedoState } from '../Plugins/FloorPlan/Context/UndoRedoMapContext';\n\nexport const useWindowLog = (setState: Function) => {\n React.useEffect(() => {\n setState();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n};\n\ndeclare global {\n interface Window {\n MapConstants: any;\n CurrentProjectState: () => Partial;\n MapState: () => Partial;\n QuoteState: () => Partial;\n IncompatibilityState: () => Partial;\n GestureState: () => Partial;\n DebugState: () => Partial;\n UndoRedoSolMapStack: () => UndoRedoState;\n UndoRedoWallMapStack: () => UndoRedoState;\n }\n}\n","import React, { ReactNode } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nimport { StringKey } from './fr';\nimport { StringsState } from './i18nReducer';\n\nlet messages: Record = {};\n\nexport class I18n {\n public static initialize = (i18nState: StringsState) => (messages = i18nState.messages);\n\n public static get = (id: StringKey): string => messages[id] || id;\n public static getValue = (id: StringKey): string => messages[id];\n\n //* placeholders is type of { [key: string]: string }\n public static format = (id: string, placeholders: Record = {}): string => {\n let message = messages[id] || '';\n for (const propertyName in placeholders) {\n const re = new RegExp(`{${propertyName}}`, 'gm');\n message = message.replace(re, placeholders[propertyName]!);\n }\n return message;\n };\n}\n\ntype MessageProps = { id: StringKey; values?: Record };\nexport const Message = ({ id, values = {} }: MessageProps) => {\n return ;\n};\n\nexport const useMessage = (id: StringKey): string => {\n const messages = useIntl().messages;\n return String(messages[id]);\n};\n","export const ApiUrls = {\n LOGIN: '/api/v1/front/oauth2/authenticate',\n REFRESH: '/api/v1/front/oauth2/refresh',\n\n ME: '/api/v1/front/me',\n\n GET_CURRENT_VERSION: '/api/v1/front/parametrages/versions/current',\n GET_VERSION: (versionId: string) => `/api/v1/front/parametrages/versions/${versionId}`,\n\n //* QUESTIONS\n QUESTION_DETAILS: (questionId: string) => `api/v1/back/questions/${questionId}`,\n\n //* QUESTIONS -> PRODUITS\n QUESTION_PRODUIT_LIST: (versionId: string, questionId: string) =>\n `/api/v1/front/parametrages/versions/${versionId}/questions/${questionId}/produits`,\n QUESTION_PRODUIT_GET: (produitRef: string) => `/api/v1/front/produits/${produitRef}`,\n\n QUESTION_LOCALITY_SEARCH: (versionId: string, questionId: string, zipCode: string) =>\n `/api/v1/front/parametrages/versions/${versionId}/questions/${questionId}/localities/${zipCode}`,\n STORE_LOCALITY_SEARCH: (versionId: string, zipCode: string) => `/api/v1/front/parametrages/versions/${versionId}/stores/localities/${zipCode}`,\n STORE_SEARCH: (versionId: string) => `/api/v1/front/parametrages/versions/${versionId}/stores`,\n //* SYNTHESES\n QUESTION_SYNTHESE_LIST: (versionId: string) =>\n `/api/v1/front/parametrages/versions/${versionId}/questions/syntheses`,\n\n //* PROJECTS\n PROJECT_LIST: '/api/v1/front/projets',\n GET_PROJECT: (project_id: string) => `/api/v1/front/projets/${project_id}`,\n DELETE_PROJECT: (project_id: string) => `/api/v1/front/projets/${project_id}`,\n\n CANCEL_CRM_CALLBACK: `/api/v1/front/crmauth/callback/cancel`,\n\n //* QUOTATIONS\n CREATE_QUOTATIONS: (projetId: string) => `/api/v1/front/projets/${projetId}/quotations`,\n GET_QUOTATION: `/api/v1/front/quotations`,\n GET_QUOTATION_PDF: (projetId: string, quotationId: string) =>\n `/api/v1/front/projets/${projetId}/quotations/${quotationId}/pdf`,\n\n CHECK_ADDRESS: (address: string) => `/api/v1/front/checkaddress/${address}`,\n\n GET_IMAGE: (imageId: string) => `/api/v1/front/images/${imageId}`,\n\n //* CONFIGURATIONS\n GET_CONFIGURATION: (configuration_id: string) => `/api/v1/front/projets/configurations/${configuration_id}`,\n\n //* CRM\n SET_CRM_INFOS: (project_id: string) => `/api/v1/front/projets/${project_id}/configurations/history`,\n\n //* PROJECTS\n AUTHENTICATE: '/api/v1/front/crmauth/authenticate',\n CREATE_PROJECT: `/api/v1/front/projets/`,\n UPDATE_PROJECT_METADATA: (project_id: string) => `/api/v1/front/projets/${project_id}`,\n UPDATE_PROJECT_CONFIGURATION: (project_id: string) => `/api/v1/front/projets/${project_id}/configurations/current`,\n UPDATE_PROJECT_REFERENCE: (project_id: string) => `/api/v1/front/projets/${project_id}`,\n IMPORT_PROJECT: `/api/v1/front/projects/import`,\n EXPORT_PROJECT: `/api/v1/front/projects/export`,\n\n //* PROMOS\n GET_CURRENT_PROMOTION_BANDEAU: '/api/v1/front/promotions/bandeaux/current',\n};\n","import { ApiDataResponse } from '../ApiData';\n\nexport enum TokenType {\n Bearer = 'Bearer',\n CrmAXStore = 'CrmAXStore',\n StmacJWT = 'StmacJWT',\n}\nexport interface RefreshRequest {\n refresh_token: string;\n client_id: string;\n client_secret: string;\n}\n\nexport interface AuthenticationResult {\n access_token: string;\n refresh_token: string;\n token_type: string;\n}\n\nexport type AuthenticationResponse = ApiDataResponse;\n","export enum ApiErrorCodes {\n INVALID_CLIENT_MESSAGE = 'INVALID_CLIENT_MESSAGE',\n INVALID_CREDENTIALS_MESSAGE = 'Invalid user login and/or password',\n\n UPDATE_NOT_ALLOWED = 'Authenticated user is not allowed to UPDATE this projet',\n\n TOKEN_IN_FUTURE = 'token in futur',\n\n //* QUOTATIONS\n PRIX_NOT_FOUND = 'PRIX_NOT_FOUND',\n POSE_NOT_FOUND = 'POSE_NOT_FOUND',\n REFERENCE_QUESTION_NOT_FOUND = 'REFERENCE_QUESTION_NOT_FOUND',\n PRODUIT_NOT_FOUND = 'PRODUIT_NOT_FOUND',\n CODE_TVA_NOT_FOUND = 'CODE_TVA_NOT_FOUND',\n PRICE_CALCULATION_ERROR = 'PRICE_CALCULATION_ERROR',\n}\n","import { ApiDataResponse } from '../ApiData';\nimport { ProduitDto } from '../Questions/ProduitDto';\nimport { StoreDto } from '../TravelExpenses/StoreDto';\nimport { LocalityDto } from '../TravelExpenses/TravelExpenseDto';\nimport { ProjectDto } from './ProjectDto';\n\nexport enum ReponseQuestionTypeDto {\n Comment = 'Comment',\n Number = 'Number',\n Produit = 'Produit',\n ZipCode = 'ZipCode',\n SingleChoice = 'SingleChoice',\n MultipleChoices = 'MultipleChoices',\n}\n\nexport interface ReponseCommentPropertiesDto {\n readonly value: string;\n}\nexport interface ReponseNumberPropertiesDto {\n readonly value: string;\n}\nexport interface SetReponseProduitPropertiesDto {\n readonly user_search?: string;\n readonly code?: string;\n}\n\nexport interface SetReponseZipCodePropertiesDto {\n readonly value: string;\n readonly description: string;\n readonly name: string;\n}\nexport interface ReponseSingleChoicePropertiesDto {\n readonly option_id: string;\n}\n\nexport interface ReponseMultipleChoicesPropertiesDto {\n readonly option_id_list: Array;\n}\n\nexport enum ReponseContextTypeDto {\n General = 'General',\n Rooms = 'Rooms',\n Walls = 'Walls',\n Openings = 'Openings',\n RoomElements = 'RoomElements',\n}\nexport interface ReponseQuestionRoomContextPropertiesDto {\n room_id: string;\n}\nexport interface ReponseQuestionOpeningsContextPropertiesDto {\n opening_id: string;\n}\nexport interface ReponseQuestionRoomElementsContextPropertiesDto {\n room_element_id: string;\n}\n\nexport interface SetConfigurationReponseDto {\n readonly question_id: string;\n readonly type: ReponseQuestionTypeDto;\n\n comment_properties?: ReponseCommentPropertiesDto;\n number_properties?: ReponseNumberPropertiesDto;\n single_choice_properties?: ReponseSingleChoicePropertiesDto;\n multiple_choices_properties?: ReponseMultipleChoicesPropertiesDto;\n produit_properties?: SetReponseProduitPropertiesDto;\n zip_code_properties?: SetReponseZipCodePropertiesDto;\n\n context_type?: ReponseContextTypeDto;\n rooms_context_properties?: ReponseQuestionRoomContextPropertiesDto;\n openings_context_properties?: ReponseQuestionOpeningsContextPropertiesDto;\n room_elements_context_properties?: ReponseQuestionRoomElementsContextPropertiesDto;\n\n exclude_response_selected?: boolean;\n}\n\nexport interface SetConfigurationDto {\n readonly total_surface: number;\n readonly opening_count: number;\n readonly room_count: number;\n readonly room_element_count?: number;\n readonly version_parametrage_id: string;\n readonly floor_plan_json: string;\n readonly reponse_list: Array;\n readonly store_id: string;\n}\n\nexport interface ReponseProduitPropertiesDto {\n readonly user_search: string;\n readonly produit: ProduitDto; // * without is_default\n}\n\nexport interface ReponseZipCodePropertiesDto {\n readonly value: string;\n readonly locality?: LocalityDto;\n}\n\nexport interface ConfigurationReponseDto {\n readonly question_id: string;\n readonly type: ReponseQuestionTypeDto;\n\n readonly comment_properties?: ReponseCommentPropertiesDto;\n readonly number_properties?: ReponseNumberPropertiesDto;\n readonly single_choice_properties?: ReponseSingleChoicePropertiesDto;\n readonly multiple_choices_properties?: ReponseMultipleChoicesPropertiesDto;\n readonly produit_properties?: ReponseProduitPropertiesDto;\n readonly zip_code_properties?: ReponseZipCodePropertiesDto;\n\n readonly context_type?: ReponseContextTypeDto;\n readonly rooms_context_properties?: ReponseQuestionRoomContextPropertiesDto;\n readonly openings_context_properties?: ReponseQuestionOpeningsContextPropertiesDto;\n readonly room_elements_context_properties?: ReponseQuestionRoomElementsContextPropertiesDto;\n\n readonly exclude_response_selected?: boolean;\n}\n\nexport interface ConfigurationProjetDto {\n readonly projet: ProjectDto;\n readonly touched_by_sellers: boolean;\n readonly is_update_allowed: boolean;\n}\n\nexport interface ConfigurationDto {\n readonly floor_plan_json: string;\n readonly reponse_list: Array;\n readonly configuration_projet: ConfigurationProjetDto;\n readonly projet_store: StoreDto;\n}\n\nexport type GetConfigurationResponse = ApiDataResponse;\n","import { ApiDataResponse } from '../ApiData';\nimport { SetConfigurationDto } from './Configuration';\n\nexport enum CreatedByTypeDto {\n Customer = 'Customer',\n Store = 'Store',\n}\n\nexport interface CustomerDto {\n readonly id: string;\n readonly first_name: string;\n readonly last_name: string;\n}\n\nexport type CreateByStoreDto = { id: string };\n\nexport interface CustomerActionSummaryDto {\n readonly date: string;\n readonly user: CustomerDto;\n}\n\nexport type StoreActionSummaryDto = { date: string; store: CreateByStoreDto };\n\nexport interface QuotationSummaryDto {\n readonly id: string;\n readonly created_date: string;\n readonly room_count: number;\n readonly total_amount: number;\n readonly configuration_id: string;\n}\n\nexport interface ProjectDto {\n readonly id: string;\n readonly projet_reference_id: string;\n readonly intitule: string;\n readonly description: string;\n readonly total_surface: number;\n readonly opening_count: number;\n readonly room_count: number;\n readonly configuration_id: string;\n readonly created_by_type: CreatedByTypeDto;\n readonly created_by_customer?: CustomerActionSummaryDto;\n readonly created_by_store?: StoreActionSummaryDto;\n readonly customer_id: string;\n readonly last_saved_date: string; //! ISO date\n readonly quotation_list: Array;\n}\n\nexport interface ProjectSummaryDto {\n readonly id: string;\n readonly intitule: string;\n readonly created_by_type: CreatedByTypeDto;\n readonly created_by_customer?: CustomerActionSummaryDto;\n readonly created_by_store?: StoreActionSummaryDto;\n readonly last_saved_date: string;\n}\n\nexport interface PostProjetDto {\n readonly intitule: string;\n readonly description?: string;\n readonly configuration?: SetConfigurationDto;\n readonly from_projet_id?: string;\n}\n\nexport interface UpdateProjetDto {\n readonly intitule: string;\n readonly description?: string;\n readonly customer_id?: string;\n}\n\nexport interface SetProjetReferenceDto {\n readonly projet_reference_id: string;\n}\n\nexport interface SetProjectReplyDto {\n readonly id: string;\n readonly projet: ProjectDto;\n}\n\nexport interface ImportProjectsResultDto {\n readonly imported_count: number;\n readonly ignore_count: number;\n readonly project_with_customer_id: string;\n}\n\nexport type SetProjectReplyResponse = ApiDataResponse;\n\nexport type ProjectResponse = ApiDataResponse;\n\nexport type ProjectsResponse = ApiDataResponse>;\n\nexport type ImportProjectsResultResponse = ApiDataResponse;\n","import { QuestionContext } from '../../Helpers/QuestionContextHelper';\nimport { LocalitiesSearchResultDto, LocalityDto } from '../TravelExpenses/TravelExpenseDto';\nimport { ProduitDto } from './ProduitDto';\n\nexport enum QuestionStep {\n Infos = 'Infos', //!\\\\ (par pièce, ouvertures et autres éléments)\n\n StepHabitation = 'StepHabitation',\n StepTva = 'StepTva', //!\\\\ (par pièce)\n StepProduit = 'StepProduit', //!\\\\ (par pièce)\n StepPose = 'StepPose', //!\\\\ (par pièce)\n StepSupport = 'StepSupport', //!\\\\ (par pièce)\n StepPreparation = 'StepPreparation', //!\\\\ (par pièce)\n StepFinitions = 'StepFinitions', //!\\\\ (par pièce, ouvertures et autres éléments)\n\n StepServices = 'StepServices', //!\\\\ (général) dans fin de parcours - options\n StepSynthese = 'StepSynthese', //!\\\\ (général) dans fin de parcours - synthese\n}\n\nexport enum QuestionType {\n SingleChoice = 'SingleChoice',\n MultipleChoices = 'MultipleChoices',\n Number = 'Number',\n Comment = 'Comment',\n Produit = 'Produit',\n Respiration = 'Respiration',\n ZipCode = 'ZipCode',\n}\n\nexport enum QuestionContextType {\n General = 'General',\n Rooms = 'Rooms',\n Walls = 'Walls',\n Openings = 'Openings',\n RoomElements = 'RoomElements',\n}\n\nexport enum PrixContextType {\n MetierDePose = 'MetierDePose',\n Rooms = 'Rooms',\n Walls = 'Walls',\n Openings = 'Openings',\n RoomElements = 'RoomElements',\n}\n\nexport interface ProductFamilySummary {\n readonly id: string;\n readonly name: string;\n}\n\nexport interface ConditionDto {\n readonly json_logic: string;\n}\n\nexport interface Infobulle {\n readonly id: string;\n readonly index: number;\n readonly label: string;\n readonly visibility_condition: ConditionDto;\n}\n\nexport interface SyntheseDto {\n readonly id: string;\n readonly index: number;\n readonly template: string;\n readonly visibility_condition: ConditionDto;\n}\n\nexport interface PoseDto {\n readonly numero_rubrique: number;\n readonly tarif_ht: number;\n readonly label: string;\n}\n\n//#region //* SingleChoice\n\nexport enum ChoiceDisplayStyle {\n BigSquares = 'BigSquares',\n LittleRectangles = 'LittleRectangles',\n CardsWithDetails = 'CardsWithDetails',\n Supplement = 'Supplement',\n}\n\nexport interface OptionDto {\n readonly id: string;\n readonly label: string;\n readonly description?: string;\n readonly show_only_to_sellers: boolean;\n readonly is_recommended_choice: boolean;\n readonly include_price: boolean;\n readonly exclude_other_options: boolean;\n readonly index: number;\n readonly value: number;\n readonly image_id: string;\n readonly pose: PoseDto;\n readonly visibility_condition: ConditionDto;\n}\nexport interface SingleChoiceProperties {\n readonly display_style: ChoiceDisplayStyle;\n readonly option_list: Array;\n}\nexport interface MultipleChoicesProperties {\n readonly option_list: Array;\n readonly display_style: ChoiceDisplayStyle;\n}\n//#endregion\nexport interface NumberProperties {\n readonly minimum: number;\n readonly maximum: number;\n readonly placeholder: string;\n readonly unit: string;\n}\nexport interface CommentProperties {\n readonly placeholder: string;\n readonly input_type: CommentPropertiesInputType;\n}\n\nexport enum CommentPropertiesInputType {\n FreeText = 'FreeText',\n DateMMAAAA = 'DateMMAAAA',\n}\nexport interface RespirationProperties {\n image_id: string;\n}\n\nexport interface ZipCodeProperties {\n placeholder: string;\n}\nexport interface QuestionSummary {\n id: string;\n}\n\n//#region PRIX\n\nexport enum FrontCalculType {\n SendToAPI = 'SendToAPI',\n FrontLaize = 'FrontLaize',\n}\n\nexport interface ModeCalculDto {\n readonly id: string;\n readonly name: FrontCalculType;\n}\n\nexport enum BaseDeCalculDto {\n NoBase = 'NoBase',\n\n //* ROOM AND WALL\n LongueurRaccordMetre = 'LongueurRaccordMetre',\n\n //* ROOM\n RoomSurfaceMetreCarre = 'RoomSurfaceMetreCarre',\n RoomPerimeterMetre = 'RoomPerimeterMetre',\n RoomSurfaceManipuleeProrataMetreCarre = 'RoomSurfaceManipuleeProrataMetreCarre',\n RoomLamePleineQuantity = 'RoomLamePleineQuantity',\n\n RoomPerimeterPlinthesMetre = 'RoomPerimeterPlinthesMetre',\n RoomLongueurTotaleLaizeMetre = 'RoomLongueurTotaleLaizeMetre',\n\n //* WALL\n WallSurfaceMetreCarre = 'WallSurfaceMetreCarre',\n WallPerimeterMetre = 'WallPerimeterMetre',\n WallSurfaceManipuleeProrataMetreCarre = 'WallSurfaceManipuleeProrataMetreCarre',\n\n //* OPENING\n OpeningDimensionCentimetre = 'OpeningDimensionCentimetre',\n\n //* ROOM ITEM\n RoomElementsArea = 'RoomElementsArea',\n RoomElementsMetreLineaire = 'RoomElementsMetreLineaire',\n MarcheLengthMetreLineaire = 'MarcheLengthMetreLineaire',\n\n //* ROOM CONTOURNEMENTS\n RoomRadiatorCount = 'RoomRadiatorCount',\n RoomThingsOnAStandCount = 'RoomThingsOnAStandCount',\n RoomObstacleCount = 'RoomObstacleCount',\n RoomStoneWallMetre = 'RoomStoneWallMetre',\n RoomStairsCount = 'RoomStairsCount',\n RoomPipeOnFloorCount = 'RoomPipeOnFloorCount',\n RoomTreeCount = 'RoomTreeCount',\n RoomRailingCount = 'RoomRailingCount',\n\n //* WALL CONTOURNEMENTS\n WallPipeCount = 'WallPipeCount',\n WallPipeHoleCount = 'WallPipeHoleCount',\n ElectricEquipmentCount = 'ElectricEquipmentCount',\n WallPillarCount = 'WallPillarCount',\n HotspotCount = 'HotspotCount',\n}\n\nexport interface PrixDto {\n readonly id: string;\n readonly base_de_calcul_type: BaseDeCalculDto;\n readonly visibility_condition: ConditionDto;\n\n readonly show_only_to_sellers: boolean;\n readonly pre_visibility_condition: ConditionDto;\n readonly context_type: PrixContextType;\n readonly openings_context_properties: OpeningsContextPropertiesDto;\n readonly room_elements_context_properties: RoomElementsContextPropertiesDto;\n readonly famille_produit_code_list: Array;\n}\n\n//#endregion\n\nexport type ExcludeResponse = { label: string; imageId: string };\n\nexport type ProductProperties = Partial<{\n is_required: boolean;\n have_suggestions: boolean;\n placeholder: string;\n catalogue_search_allowed: boolean;\n allow_copy_last_choosed_product: boolean;\n exclude_response_label?: string;\n exclude_response_image_id?: string;\n}>\n\nexport interface EvaluationDto {\n readonly id: string;\n readonly index: number;\n readonly name: string;\n readonly value: string;\n readonly evaluation_condition: ConditionDto;\n}\n\nexport enum IncompatibilityTypeDto {\n Produit = 'Produit',\n FinDeParcours = 'FinDeParcours',\n}\n\nexport interface IncompatibilityDto {\n readonly id: string;\n readonly index: number;\n readonly explanation: string;\n readonly redirect_url: string;\n readonly cta: string;\n readonly type: IncompatibilityTypeDto;\n readonly visibility_condition: ConditionDto;\n}\n\nexport interface OpeningsContextPropertiesDto {\n readonly is_for_porte: boolean;\n readonly is_for_porte_blindee: boolean;\n readonly is_for_porte_entree: boolean;\n readonly is_for_porte_fenetre: boolean;\n readonly is_for_passage_ouvert: boolean;\n readonly is_for_baie_vitree: boolean;\n}\n\nexport interface RoomElementsContextPropertiesDto {\n readonly is_for_shower_bathtub: boolean;\n readonly is_for_fixed_furniture: boolean;\n readonly is_for_cupboard: boolean;\n readonly is_for_kitchen_furniture: boolean;\n readonly is_for_trap: boolean;\n readonly is_for_fireplace: boolean;\n readonly is_for_opening: boolean;\n readonly is_for_stairs: boolean;\n readonly is_for_divider: boolean;\n readonly is_for_heavy_element: boolean;\n readonly is_for_sewer_plate: boolean;\n readonly is_for_door: boolean;\n readonly is_for_window: boolean;\n readonly is_for_unlaid_area: boolean;\n}\nexport interface QuestionItem {\n readonly id: string;\n readonly title: string;\n readonly label: string;\n readonly label_single_choice: string;\n readonly related_step: QuestionStep;\n readonly famille_produit_code_list: Array;\n readonly additional_informations: string;\n readonly comment: string;\n readonly index: number;\n readonly type: QuestionType;\n readonly context_type: QuestionContextType;\n readonly show_only_to_sellers: boolean;\n\n readonly openings_context_properties: OpeningsContextPropertiesDto;\n readonly room_elements_context_properties: RoomElementsContextPropertiesDto;\n\n readonly number_properties: NumberProperties;\n readonly comment_properties: CommentProperties;\n readonly single_choice_properties?: SingleChoiceProperties;\n readonly multiple_choices_properties?: MultipleChoicesProperties;\n readonly respiration_properties: RespirationProperties;\n readonly zip_code_properties: ZipCodeProperties;\n //* retrieve products from question id\n //* in parameter : reference question response : id ?\n readonly produit_properties: ProductProperties;\n\n readonly infobulle_list: Array;\n readonly evaluation_list: Array;\n readonly visibility_condition: ConditionDto;\n //readonly prix_list: Array;//! TO DELETE LATER\n readonly incompatibility_list: Array;\n readonly synthese_list: Array;\n\n isFirstProduct?: boolean;\n loadingProduits?: boolean;\n produits: Array;\n produitsLoaded?: boolean;\n produitValue?: ProduitDto;\n produitPrincipalCode?: string;\n produitSearch?: string;\n needLoadProduits?: boolean;\n produitReadonlyReference?: string;\n\n excludeResponseSelected?: boolean;\n\n showQuestion?: boolean;\n optionValue?: OptionDto;\n optionValues?: Array;\n numberValue?: string;\n commentValue?: string;\n\n zipCodeData?: LocalitiesSearchResultDto;\n zipCodeValue?: LocalityDto;\n zipCodeValueLoading?: boolean;\n errorInvalidNumberValue?: boolean;\n\n isFirstQuestion?: boolean;\n\n //* answer is valid\n isValid?: boolean;\n //! or user skip to next question to make it valid (question type Comment)\n //! isSkip?: boolean;\n\n //* review de la gestion du context sur les questions (14/03/2021)\n context: QuestionContext;\n previousVisibleQuestion?: QuestionItem;\n\n focusQuestion?: boolean;\n\n linkedWithStepPlanId?: string;\n}\n","// {\n// \"produit_list\":[\n// {\n// \"code-produit\": \"Moquette-16566516\",\n// \"quantité\": 25,//m² <--- issu d'un calcul pour la piece 1 a partir de la surface\n// \"mode-calcul\": \"m²\"\n// },\n// {\n// \"code-produit\": \"Moquette-16566516\",\n// \"quantité\": 10//m² <--- issu d'un calcul pour la piece 2 a partir de la surface\n// \"mode-calcul\": \"m²\"\n// },\n// {//Issu d'une qustion produit un choix client\n// \"code-produit\": \"Plinthe-465416419-3m_de_long\",\n// \"quantité\": 10//Unité <--- issu du calcul du front\n// \"mode-calcul\": \"Plinthe-like\"\n// },\n// {//Issu d'un élémnt de prix associé a la plinthe\n// \"code-produit\": \"Colle-pour-plinthe-465416419-3m_de_long\",\n// \"quantité\": 60//Unité <--- issu du calcul du front\n// \"mode-calcul\": \"Unité\"\n// }\n// ],\n// \"service_list\":[\n// {\n// \"référence-service\": \"dépose-moquette-1564654\", // <--présent ou non selon la condition de visibilité.\n// \"quantité\": 25\n// },\n// {\n// \"référence-service\": \"dépose-moquette-1564654\",\n// \"quantité\": 10\n// }\n// ]\n// }\n// }\nimport { IContournements } from '../../Plugins/FloorPlan/Models/Contournements';\nimport { OpeningType } from '../../Plugins/FloorPlan/Models/IOpening';\nimport { RoomItemType } from '../../Plugins/FloorPlan/Models/IRoomItem';\nimport { ApiDataResponse } from '../ApiData';\nimport { SetConfigurationDto } from '../Projects/Configuration';\nimport { ProjectDto } from '../Projects/ProjectDto';\nimport { ConditionnementDto } from '../Questions/ProduitDto';\n\nexport enum ReponsePrixContextTypeDto {\n MetierDePose = 'MetierDePose',\n Rooms = 'Rooms',\n Openings = 'Openings',\n RoomElements = 'RoomElements',\n Walls = 'Walls',\n}\n\nexport interface ReponsePrixMetierDePoseContextPropertiesDto {\n metier_de_pose: string;\n}\nexport interface ReponsePrixRoomContextPropertiesDto {\n room_id: string;\n}\nexport interface ReponsePrixOpeningsContextPropertiesDto {\n opening_id: string;\n room_id: string;\n}\nexport interface ReponsePrixRoomElementsContextPropertiesDto {\n room_element_id: string;\n room_id: string;\n}\n\nexport interface QuotationPrixDto {\n readonly prix_id: string;\n\n //* peut être //m² <--- issu d'un calcul pour la piece 1 a partir de la surface\n readonly base_calcul?: number; //! undefined BaseDeCalculDto.Manual\n\n context_type?: ReponsePrixContextTypeDto;\n metier_de_pose_context_properties?: ReponsePrixMetierDePoseContextPropertiesDto;\n rooms_context_properties?: ReponsePrixRoomContextPropertiesDto;\n openings_context_properties?: ReponsePrixOpeningsContextPropertiesDto;\n room_elements_context_properties?: ReponsePrixRoomElementsContextPropertiesDto;\n\n readonly commentaire?: string;\n}\n\nexport interface GetQuotationsParameters {\n readonly projetId: string;\n readonly data: GetQuotationDto;\n}\n\nexport interface EvaluationByPlanItemDto {\n //key : room_id : Messages\n [key: string]: Record;\n}\n\nexport interface QuotationEvaluationDto {\n readonly globals: Record;\n readonly rooms: EvaluationByPlanItemDto;\n readonly openings: EvaluationByPlanItemDto;\n readonly room_elements: EvaluationByPlanItemDto;\n}\n\nexport interface GetQuotationDto {\n readonly prix_list: Array;\n readonly configuration: SetConfigurationDto;\n readonly evaluations: QuotationEvaluationDto;\n readonly additional_details: SetQuotationAdditionalDetailsDto;\n}\n\nexport interface SetQuotationAdditionalDetailsDto {\n readonly general: DetailGeneralSection;\n readonly rooms?: RoomDetailSection[];\n readonly openings?: OpeningDetailSection[];\n readonly room_elements?: RoomItemDetailSection[];\n}\n\nexport interface DetailGeneralSection {\n plan_png_base64?: string;\n plan_walls_png_base64?: string;\n formatted_syntheses: string[];\n}\nexport interface DetailSection extends DetailGeneralSection {\n readonly id: string;\n}\nexport interface RoomDetailSection extends DetailSection {\n properties: RoomProperties;\n}\nexport interface OpeningDetailSection extends DetailSection {\n properties: OpeningProperties;\n}\nexport interface RoomItemDetailSection extends DetailSection {\n properties: ElementProperties;\n}\n\nexport interface RoomProperties {\n name?: string;\n type?: string;\n existing_flooring?: string;\n existing_floor_type?: string;\n floor?: string;\n heating_type?: string;\n contournements_numbers?: IContournements;\n}\n\nexport interface OpeningProperties {\n type?: OpeningType;\n name?: string;\n size?: number;\n room_id?: string;\n}\nexport interface ElementProperties {\n type?: RoomItemType;\n name?: string;\n room_id?: string;\n}\n\nexport interface OrderLineDto {\n readonly code_produit: string;\n readonly libelle: string;\n readonly quantity: number; //quantity\n readonly prix_ttc: number;\n readonly calcul_log_list: Array;\n}\n\nexport interface QuotationProduitDto {\n readonly codeQCT: string;\n readonly largeur: number;\n readonly longueur: number;\n readonly qte: number;\n readonly pu_ttc: number;\n readonly total_ttc: number;\n readonly code_tva: string;\n readonly promo_taux_remise?: number;\n}\n\nexport interface QuotationRubriqueDePoseDto {\n readonly NoRub: number;\n readonly qte: number;\n readonly pu_ht: number;\n readonly total_ht: number;\n readonly code_tva: string;\n readonly texte: string;\n}\n\nexport interface QuotationDto {\n readonly token: string;\n readonly id_config_origin: string;\n readonly id_config: string;\n readonly produits: Array;\n readonly rubriques_pose: Array;\n}\n\nexport enum QuotationPromoTypeDto {\n TvaOfferte = 'TvaOfferte',\n}\n\nexport interface QuotationPromoDto {\n readonly type: QuotationPromoTypeDto;\n readonly starting_date: Date;\n readonly ending_date: Date;\n readonly discount_amount: number;\n}\n\nexport interface PoseOrderLineDto {\n readonly NoRub: string;\n readonly qte: string;\n readonly pu_ht: string;\n readonly total_ht: string;\n readonly code_tva: string;\n readonly texte: string;\n}\n\nexport interface DetailMainOeuvreCategoryDto {\n readonly total: number;\n readonly pose_lines: Array;\n}\n\nexport interface DetailMainOeuvrePose {\n readonly total_pose: number;\n readonly depose: DetailMainOeuvreCategoryDto;\n readonly autres: DetailMainOeuvreCategoryDto;\n readonly complement_forfait_divers: DetailMainOeuvreCategoryDto;\n readonly forfait_besoin_supplementaire: DetailMainOeuvreCategoryDto;\n readonly gestion_des_dechets: DetailMainOeuvreCategoryDto;\n readonly nettoyage: DetailMainOeuvreCategoryDto;\n readonly pose_accessoires: DetailMainOeuvreCategoryDto;\n readonly pose_du_revetement_principal: DetailMainOeuvreCategoryDto;\n readonly preparation_du_support_avant_pose: DetailMainOeuvreCategoryDto;\n}\n\nexport interface DetailQuotationProduitDto {\n readonly code_produit: string;\n readonly code_article: string;\n readonly code_coloris: string;\n readonly libelle_produit: string;\n readonly pu_ttc: number;\n quantity: number;\n total_ttc: number;\n readonly promo_taux_remise: number;\n readonly conditionnement: number;\n readonly detail_conditionnement: ConditionnementDto;\n readonly is_unitaire: number;\n eco_contribution: number;\n}\n\nexport interface DetailProduitsComplementaires {\n readonly total_produits_complementaires_ttc: number;\n readonly items: Array;\n}\n\nexport interface DetailTotalPriceDto {\n readonly total_price_ht?: number;\n readonly total_price_ttc?: number;\n readonly total_tva?: number;\n readonly tva_percentage?: number;\n}\n\nexport interface QuotationReplyBaseDto {\n readonly id?: string;\n readonly projet: ProjectDto;\n readonly quotation?: QuotationDto;\n\n readonly detail_main_produit_list: Array;\n readonly detail_produits_complementaires: DetailProduitsComplementaires;\n readonly detail_main_oeuvre_pose: DetailMainOeuvrePose;\n readonly detail_livraison: QuotationLivraisonPropertiesDto;\n readonly detail_total_price: DetailTotalPriceDto;\n readonly detail_total_price_by_tva: Record;\n readonly promos: Array;\n}\n\nexport type QuotationLivraisonPropertiesDto = { total_livraison_ttc: number; is_store_quotation_needed: boolean };\n\nexport type CreateQuotationResponse = ApiDataResponse;\n\nexport type ComputeQuotationsResponse = ApiDataResponse;\n","import { StmacPostMessage } from './StmacPostMessage';\n\nexport interface StmacClient {\n readonly id: string;\n readonly token: string;\n // ISO Date string\n readonly token_expiry: string;\n readonly first_name: string;\n readonly last_name: string;\n readonly email: string;\n}\n\nexport interface StmacLoginMessage extends StmacPostMessage {\n readonly mode: string;\n readonly client: StmacClient; //* if isPostMessageUser | isPostMessageReGetUser | isPostMessageResSetUser\n readonly success: boolean;\n}\n\nexport class StmacLoginMessages {\n public static GET_USER_REQUEST_ID = 'POL_GET_USER_REQUEST_ID';\n public static GET_SET_TOKEN_ID = 'POL_GET_SET_TOKEN_ID';\n\n public static isPostMessageReady = (type: string) => type === 'embed:ready';\n\n //handle only in Dialog\n public static isPostMessageUserAuthenticated = (type: string) => type === 'user_authenticated';\n\n public static getCurrentUser = () => ({\n type: 'get_user',\n tid: StmacLoginMessages.GET_USER_REQUEST_ID,\n });\n\n public static isPostMessageResGetUser = (type: string) => type === 'res:get_user';\n\n public static getSetToken = (token: string) => ({\n type: 'set_user',\n tid: StmacLoginMessages.GET_SET_TOKEN_ID,\n token,\n });\n\n public static isPostMessageResSetUser = (type: string) => type === 'res:set_user';\n}\n","import { ObjectUtils } from '../../Helpers/ObjectUtils';\nimport { MapContextState } from '../../Plugins/FloorPlan/Context/MapContext';\nimport { AuthService } from '../../Services/Authentication/AuthService';\nimport { CreatedByTypeDto, ProjectDto } from '../Projects/ProjectDto';\nimport { QuotationReplyBaseDto } from '../Quotations/Quotations';\nimport { StoreDto } from '../TravelExpenses/StoreDto';\nimport { StmacPostMessage } from './StmacPostMessage';\n\nexport enum SaveProjectType {\n Request = 'save_project:pol',\n Response = 'res:save_project:pol',\n}\n\nexport enum ProjectOrigin {\n Vendeur = 1,\n Client = 2,\n}\n\nexport interface SaveProjectRequestMessage extends StmacPostMessage {\n token?: string; // token : jwt customer connected\n\n /** Optional. If provided, the existing project will be updated instead of creating a new one.**/\n project_id?: string;\n\n /** Numeric prices (as stored in DB).*/\n product_price?: number;\n\n accessories_price?: number; //* total_other_produits\n\n total_price?: number;\n service_price?: number;\n\n /* Shipping information */\n shipping_price?: number;\n shipping_store_quotation_needed?: boolean;\n\n /** Formatted prices string (as displayed to the user).*/\n product_price_formatted?: string;\n\n accessories_price_formatted?: string; //* total_other_produits\n service_price_formatted?: string; //* unknown from ideine\n total_price_formatted?: string;\n\n /** Surface in m².*/\n surface_m2?: number;\n\n /** Formatted surface string.*/\n surface?: string;\n\n project_name?: string;\n product_name?: string;\n product_qct?: string;\n\n /** Magasin ID. Default to 050 (web store). */\n store_id?: string;\n config_id?: string;\n\n /** 1: vendeur | 2: client */\n project_origin?: ProjectOrigin;\n}\n\nexport interface SaveProjectResponseMessage extends StmacPostMessage {\n readonly success: boolean;\n readonly client_id: string;\n readonly project_id: string;\n //* true if project was updated, false if it was created\n readonly project_updated: boolean;\n}\n\ninterface GetSaveProjectRequestMessageParameters {\n projet: ProjectDto;\n projetStore?: StoreDto;\n quotationReply: QuotationReplyBaseDto | undefined;\n mapState: MapContextState;\n}\n\nexport class StmacSaveProjectMessage {\n public static SAVE_PROJECT_REQUEST_ID = 'POL_SAVE_PROJECT';\n public static SAVE_PROJECT_REQUEST_ID_SEPARATOR = ':'; //* add project id\n\n public static isPostMessageResSaveProject = (type: string) => type === SaveProjectType.Response;\n\n public static formatRequestId = (projectId: string) => {\n return `${StmacSaveProjectMessage.SAVE_PROJECT_REQUEST_ID}${StmacSaveProjectMessage.SAVE_PROJECT_REQUEST_ID_SEPARATOR}${projectId}`;\n };\n\n public static getOriginProjectIdFromRequestId = (tid: string): string | undefined => {\n const requestIds = tid.split(StmacSaveProjectMessage.SAVE_PROJECT_REQUEST_ID_SEPARATOR);\n if (requestIds.length === 2) {\n return requestIds[1];\n }\n return undefined;\n };\n\n public static toProjectOrigin(createdByType: CreatedByTypeDto): ProjectOrigin | undefined {\n switch (createdByType) {\n case CreatedByTypeDto.Customer:\n return ProjectOrigin.Client;\n case CreatedByTypeDto.Store:\n return ProjectOrigin.Vendeur;\n default:\n return undefined;\n }\n }\n\n public static isStoreIdValid = (storeId?: string) => {\n return Boolean(storeId?.replaceAll('0', '').length);\n };\n\n public static toDataToLog = (requestMessage: SaveProjectRequestMessage): SaveProjectRequestMessage => {\n const dataToLog: SaveProjectRequestMessage = ObjectUtils.clone(requestMessage);\n\n const token = requestMessage.token || '';\n const first3letters = token.substring(0, 3);\n const last3letters = token.substring(token.length - 3, token.length);\n dataToLog.token = `${first3letters}xxxx${last3letters}`;\n return dataToLog;\n };\n\n public static getSaveProjectRequestMessage = async ({\n projet,\n projetStore,\n quotationReply,\n mapState,\n }: GetSaveProjectRequestMessageParameters): Promise => {\n //todo : fix @mmc\n const mainProduit = mapState.rooms?.[0].questionProduitPrincipal?.produitValue;\n const storeId = projetStore?.store_id!;\n\n const saveMessage: SaveProjectRequestMessage = {\n type: SaveProjectType.Request,\n tid: StmacSaveProjectMessage.formatRequestId(projet.id),\n\n project_id: projet.projet_reference_id,\n config_id: projet.configuration_id,\n store_id: storeId,\n project_name: projet.intitule,\n project_origin: StmacSaveProjectMessage.toProjectOrigin(projet.created_by_type),\n\n token: quotationReply?.quotation?.token ?? (await AuthService.getAccessToken()),\n surface_m2: mapState.global_surface_area,\n\n //todo: @mmc fix\n product_name: mainProduit?.libelle,\n product_qct: mainProduit?.code,\n\n product_price: quotationReply?.detail_main_produit_list?.reduce((acc, cur) => acc + cur?.total_ttc, 0),\n total_price: quotationReply?.detail_total_price?.total_price_ttc,\n accessories_price: quotationReply?.detail_produits_complementaires?.total_produits_complementaires_ttc,\n service_price: quotationReply?.detail_main_oeuvre_pose?.total_pose,\n };\n const livraison = quotationReply?.detail_livraison;\n if (livraison) {\n saveMessage.shipping_store_quotation_needed = livraison.is_store_quotation_needed;\n if (!livraison.is_store_quotation_needed) {\n saveMessage.shipping_price = livraison.total_livraison_ttc;\n }\n }\n\n return saveMessage;\n };\n\n public static isValid = (saveMessage: SaveProjectRequestMessage) => {\n //!\\\\ 35227 C&P - Sécurisation Post_Message (Error : 400 Bad Request) when \"Missing field: product_qct\"\n const hasProductQct = Boolean(saveMessage.product_qct);\n //!\\\\ + Afin d' éviter des erreurs techniques , il ne faut pas appeler le postMessage si le qct et la surface ne sont pas renseignées.\n const hasSurface = Boolean(saveMessage.surface_m2);\n\n const hasStoreId = this.isStoreIdValid(saveMessage.store_id);\n const hasTotalPrice = Boolean(saveMessage.total_price);\n\n return (hasSurface && hasProductQct) && (hasStoreId || hasTotalPrice);\n }\n}\n","import { ApiDataResponse } from '../ApiData';\n\nexport type UserSummary = {\n id: string;\n first_name: string;\n last_name: string;\n};\n\nexport enum UserTypeDto {\n Customer = 'Customer',\n StmacStore = 'StmacStore',\n BoUserAsCustomer = 'BoUserAsCustomer',\n BoUserAsStore = 'BoUserAsStore',\n}\n\nexport interface CustomerPropertiesDto {\n id: string;\n first_name: string;\n last_name: string;\n email: string;\n}\n\nexport interface StmacStorePropertiesDto {\n id: string;\n as_customer: CustomerPropertiesDto;\n}\n\nexport interface BackOfficeUserAsStorePropertiesDto {\n id: string;\n email: string;\n first_name: string;\n last_name: string;\n}\n\nexport interface BackOfficeUserAsCustomerPropertiesDto {\n id: string;\n first_name: string;\n last_name: string;\n}\nexport interface MeDto {\n type: UserTypeDto;\n customer_properties?: CustomerPropertiesDto; // GET FROM POST MESSAGE\n stmac_store_properties?: StmacStorePropertiesDto;\n bo_user_as_store_properties?: BackOfficeUserAsStorePropertiesDto;\n bo_user_as_customer_properties?: BackOfficeUserAsCustomerPropertiesDto;\n}\n\n//* RESPONSE\nexport type MeResponse = ApiDataResponse;\n","import { styled } from '@material-ui/styles';\nimport React, { CSSProperties, forwardRef } from 'react';\n\nimport { Logger } from '../../../../Errors/Logger';\nimport { StringKey } from '../../../../Locales/fr';\nimport { Message } from '../../../../Locales/I18nService';\nimport { LogLevelType } from '../../../../Services/Analytics/LogLevelType';\nimport { ThemeRes } from '../../../../Web/Themes/ThemeRes';\nimport { MapContextState } from '../../Context/MapContext';\nimport { IOpening } from '../../Models/IOpening';\nimport { IRoom, RoomType } from '../../Models/IRoom';\nimport { IRoomItem } from '../../Models/IRoomItem';\nimport { PointUtils } from '../../Utils/PointUtils';\nimport { BoundingBox, CoordPoint, Wall } from '../../Utils/Types';\nimport { RawBoxRoomsRibs } from '../Widgets/BoxWalls/BoxWallRibs';\nimport { RawBoxWalls } from '../Widgets/BoxWalls/BoxWalls';\nimport { RawCarpentryItems } from '../Widgets/Openings/BoxCarpentryItems';\nimport { RawBoxRoomItems } from '../Widgets/RoomItems/BoxRoomItems';\nimport { RawBoxAreas } from '../Widgets/Rooms/BoxAreas';\nimport { ExportMapImageHelper } from './Helpers/ExportMapPngHelper';\nimport { SvgHelpers } from './Helpers/SvgGenerationHelpers';\n\ntype ExportMapSvgV3Props = MapContextState & { style?: CSSProperties };\n\nexport const useExportMapSvgV3 = ({ style, ...mapState }: ExportMapSvgV3Props = {}) => {\n const svgWrapper = React.useRef(null);\n const svgWrapperWall = React.useRef(null);\n\n const assertHasRooms = (type: RoomType) => {\n return mapState.rooms?.filter((x) => x.type === type).length !== 0;\n };\n const getRef = (type: RoomType) => (type === RoomType.Sol ? svgWrapper : svgWrapperWall);\n const captureSvg = (type: RoomType) => {\n if (!assertHasRooms(type)) {\n return '';\n }\n return SvgHelpers.capture(getRef(type).current?.outerHTML, true);\n };\n const capturePng = (type: RoomType) => {\n if (!assertHasRooms(type)) {\n return Promise.resolve('');\n }\n const svgImage = captureSvg(type);\n if (!svgImage) {\n Logger.logAnalytics({\n message: 'capturePng',\n level: LogLevelType.Warning,\n type: 'NULL_SVG_IMAGE',\n data: {\n svgWrapper: svgWrapper.current?.outerHTML || '-',\n document: document.getElementById(`MapSvgV3-${type}`)?.outerHTML || '-',\n roomLength: mapState.rooms?.length || 0,\n },\n });\n return Promise.resolve('');\n }\n return ExportMapImageHelper.exportMapPng(svgImage);\n };\n\n return {\n captureSvg,\n capturePng,\n mapView: (type: RoomType) => (\n \n ),\n };\n};\n\ntype ExportMapViewProps = {\n walls?: Array;\n rooms?: Array;\n roomItems?: Array;\n openings?: Array;\n showLegend?: boolean;\n rotationAngle?: number;\n style?: CSSProperties;\n type?: RoomType;\n tagId?: string;\n};\n\nexport const ExportMapView = forwardRef(\n (\n { style, walls = [], rooms = [], openings = [], roomItems = [], showLegend = true, rotationAngle = 0, type },\n ref\n ) => {\n const roomsByType = rooms.filter((r) => r.type === type);\n const roomIdsByType = roomsByType.map((r) => r.roomId!);\n const wallsByType = walls.filter((x) => roomIdsByType.includes(x.roomId!));\n const openingsByType = openings.filter((x) => roomIdsByType.includes(x.roomId!));\n const roomItemsByType = roomItems.filter((x) => roomIdsByType.includes(x.roomId!));\n\n const points = [\n ...wallsByType.map((x) => x.start),\n ...roomItemsByType.reduce>((items, x) => [...items, ...(x.coordsReal || [])], []),\n ];\n\n const overallBBox = PointUtils.calculateBoundingBox({ points: points })!;\n if (!overallBBox) {\n return null;\n }\n\n const legendHeight = 50;\n const margin = rotationAngle !== 0 ? 300 : 100;\n const boxMargin = margin / 5;\n const exportWidth = 1080;\n const minWidth = 480;\n\n const xMin = overallBBox.xMin - boxMargin;\n const yMin = overallBBox.yMin - boxMargin;\n const xMax = overallBBox.xMax + boxMargin;\n const yMax = overallBBox.yMax + boxMargin + legendHeight;\n const height = yMax - yMin + legendHeight;\n const width = Math.max(xMax - xMin, minWidth);\n\n const shrinkScale = toShrinkScale(width);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {showLegend && }\n \n \n );\n }\n);\n\nconst Container = styled('div')({ display: 'none' });\n\n//#region //* LEGEND\n\ntype LegendProps = { overallBBox: BoundingBox; margin: number; type?: RoomType };\nconst Legend = ({ overallBBox, margin, type }: LegendProps) => {\n return (\n \n \n \n \n \n );\n};\n\nconst LegendText = styled('text')({ fontSize: 8, fill: '#414447', textAnchor: 'start' });\n\n//#endregion\n\nconst toShrinkScale = (width: number) => {\n if (width < 500) {\n return 4;\n }\n if (width < 800) {\n return 2;\n }\n return 1;\n};\n","/**\n * Helper function to generate a base64 image of a custom size from a SVGDataURL.\n * @param SVGDataURL\n * @returns Promise\n */\nexport class ExportMapImageHelper {\n public static exportMapPng(SVGDataURL: string) {\n const quality = 1;\n const mimeType = 'image/png';\n const newWidth = 1080;\n\n return new Promise((resolve, reject) => {\n // 1. Create an abstract canvas\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d')!;\n\n // 2. Create an image element to load the SVG\n const img = new Image();\n img.crossOrigin = 'anonymous';\n\n img.onload = () => {\n // Declare initial dimensions of the image\n let originalWidth = img.width;\n let originalHeight = img.height;\n\n // Declare the new width of the image\n // And calculate the new height to preserve the aspect ratio\n img.width = newWidth;\n img.height = (originalHeight / originalWidth) * newWidth;\n\n // Set the dimensions of the canvas to the new dimensions of the image\n canvas.width = img.width;\n canvas.height = img.height;\n\n // Render image in Canvas\n ctx.drawImage(img, 0, 0, img.width, img.height);\n\n resolve(canvas.toDataURL(mimeType, quality));\n };\n\n //* Load the DataURL of the SVG\n if (SVGDataURL) {\n img.src = SVGDataURL;\n } else {\n resolve('');\n }\n });\n }\n\n //* old name exportSvgDebugLaizeBandOpenLink\n public static openLink = (title: string = '', imageSrc: string) => {\n const image = new Image();\n image.src = imageSrc;\n const w = window.open('about:blank', '_blank');\n if (w) {\n w.document.write(image.outerHTML);\n w.document.title = title;\n w.stop();\n }\n };\n}\n","const replaceAll = (target: string, search: string, replacement: string) => {\n return target.split(search).join(replacement);\n};\n\nexport class SvgHelpers {\n public static capture(outerHTML: string = '', toBase64?: boolean) {\n if (outerHTML) {\n const svgStr = outerHTML;\n const result = toBase64\n ? `data:image/svg+xml;base64,${SvgHelpers.utf8_to_b64(this.convertCssVariableToRawValue(svgStr))}`\n : this.convertCssVariableToRawValue(svgStr);\n return result;\n }\n return '';\n }\n\n public static convertCssVariableToRawValue(p: string) {\n const regex = /var\\(--\\S+\\)/gm;\n return p.replace(regex, (replacement) => {\n const group = /\\((.*?)\\)/gm.exec(replacement)!;\n\n const bodyStyles = window.getComputedStyle(document.body);\n const retrievedStyleVariableValue = bodyStyles.getPropertyValue(group[1]);\n\n return replaceAll(retrievedStyleVariableValue, '\"', \"'\");\n });\n }\n\n public static replaceUseSvgReferenceByInlineSvg(svgWrapper: SVGSVGElement) {\n // const useReferences = svgWrapper.find('use');\n // useReferences.replaceWith((index) => {\n // let newInlineSvg = $('');\n // let use = $(useReferences[index]);\n // Array.from(use.prop('attributes')).forEach((x) => {\n // if (x.name !== 'href') {\n // newInlineSvg.attr(x.name, x.value);\n // }\n // });\n // const loadedSvg = $(use.attr('href')).clone();\n // newInlineSvg.append(loadedSvg);\n // return newInlineSvg;\n // });\n }\n\n public static utf8_to_b64(str: string) {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n}\n","/**\n * Take all rooms in parameters, output base64 svg\n * Output example : https://ideine-my.sharepoint.com/:i:/g/personal/thierry_levisse_ideine_fr/EVPE9m3CMgxHqO9-mDJqRaUBWkUxy3DllRJIa6kG-vmivw?e=gAiDjQ\n * @constructor\n */\nimport React from 'react';\n\nimport { MapContextState } from '../../../Context/MapContext';\nimport { ExportRoomLaizeBandsSvgItem, SvgByRoom } from './LaizeExportBands';\nimport { LaizeExportRoomBandsSvgV3 } from './LaizeExportRoomBandsSvgV3';\n\nexport const useExportMapLaizeBandsSvgV3 = ({\n rooms = [],\n roomItems = [],\n laizeResults = [],\n busy,\n}: MapContextState) => {\n const svgHolders = React.useRef>(rooms.map((room) => ({ roomId: room.roomId! })));\n const exportItems = React.useRef>([]);\n\n React.useEffect(() => {\n const currentHolders = svgHolders.current || [];\n svgHolders.current = rooms.map((room) => {\n const currentRoomHolder = currentHolders.find((x) => x.roomId === room.roomId);\n return { ...currentRoomHolder, roomId: room.roomId! };\n });\n }, [rooms]);\n\n if (busy || !Boolean(laizeResults.length) || !svgHolders.current.length) {\n exportItems.current = [];\n } else {\n exportItems.current = rooms\n .filter((room) => laizeResults.some((x) => x.roomIds?.some((y) => y === room.roomId)))\n .map((room) => {\n const result = LaizeExportRoomBandsSvgV3({\n room,\n rooms,\n roomItems,\n laizeResult: laizeResults.find((x) => x.roomIds?.some((y) => y === room.roomId))?.calculator,\n getHolder: () => svgHolders.current.find((r) => r.roomId === room.roomId)!,\n });\n return result;\n });\n }\n\n return { exportItems: () => exportItems.current };\n};\n","import { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\n\nimport { ThemeRes } from '../../../../../Web/Themes/ThemeRes';\nimport { MapConstants } from '../../../MapConstants';\nimport { IRoom } from '../../../Models/IRoom';\nimport { IRoomItem } from '../../../Models/IRoomItem';\nimport { PointUtils } from '../../../Utils/PointUtils';\nimport { CoordPoint } from '../../../Utils/Types';\nimport { LaizeBand, LaizeCalculatorResult } from '../../Laizes/Laize';\nimport { LaizeBandDimensions, LaizeBands } from '../../Laizes/v3/LaizeBands';\nimport { LaizeBandItemV3 } from '../../Laizes/v3/LaizeBandTrace';\nimport { RawBoxWalls } from '../../Widgets/BoxWalls/BoxWalls';\nimport { RawBoxRoomItems } from '../../Widgets/RoomItems/BoxRoomItems';\nimport { ExportMapImageHelper } from '../Helpers/ExportMapPngHelper';\nimport { SvgHelpers } from '../Helpers/SvgGenerationHelpers';\nimport { ExportRoomLaizeBandsSvgItem, SvgByRoom } from './LaizeExportBands';\n\ntype ExportRoomLaizeBandsSvgV3Params = {\n room: IRoom;\n rooms: Array;\n roomItems: Array;\n laizeResult?: LaizeCalculatorResult;\n getHolder: () => SvgByRoom;\n};\n\nexport const LaizeExportRoomBandsSvgV3 = ({\n room,\n rooms,\n roomItems,\n laizeResult,\n getHolder,\n}: ExportRoomLaizeBandsSvgV3Params): ExportRoomLaizeBandsSvgItem => {\n const bandDetails = laizeResult?.roomsBandsDetails.find((x) => x.roomId === room.roomId)?.bands || [];\n const bands: Array =\n laizeResult?.bands_v3\n ?.filter(\n (item) =>\n item.roomId === room.roomId && ['band-new', 'band-reusable', 'band-reused'].includes(item.type)\n )\n .map(toBandV3) || [];\n\n const captureSvg = (toBase64: boolean = true) => {\n const holder = getHolder();\n return SvgHelpers.capture(holder?.svgWrapper?.current?.outerHTML, toBase64);\n };\n\n const capturePng = (toBase64: boolean = true) => {\n const imageSrc = captureSvg(toBase64);\n return ExportMapImageHelper.exportMapPng(imageSrc);\n };\n\n return {\n room,\n captureSvg,\n capturePng,\n getHolder,\n renderView: ({ id, style }: React.HTMLAttributes = {}) => (\n {\n const holder = getHolder();\n if (holder) {\n holder.svgWrapper = ref;\n }\n }}\n room={room}\n rooms={rooms}\n roomItems={roomItems}\n bands={bands}\n bandDetails={bandDetails}\n style={style}\n />\n ),\n };\n};\n\nconst toBandV3 = (item: LaizeBandItemV3): BandV3 => {\n const { bandId, points, type } = item;\n\n //TODO : REFACTOR THIS WITH LaizeV3Traces\n const textDimensions = getTextDimensions(LaizeBands.getBandDimensions(points));\n\n return {\n origin: item,\n type,\n id: bandId,\n coords: points,\n center: PointUtils.bboxCenter(points),\n textDimensions,\n };\n};\n\ntype BandV3 = {\n id?: number;\n coords: Array;\n type?: string;\n center: CoordPoint;\n textDimensions: string;\n\n surfaceCoveredDimensions?: string;\n leftOverDimensions?: string;\n\n origin: LaizeBandItemV3;\n};\n\ntype SvgViewProps = {\n setSvgWrapper: (ref: React.RefObject) => void;\n room: IRoom;\n rooms: Array;\n roomItems: Array;\n bands: Array;\n bandDetails: Array;\n style?: CSSProperties;\n exportMode?: boolean;\n};\nconst RoomLaizeBandsViewV3 = ({\n setSvgWrapper,\n room,\n rooms,\n roomItems,\n bands,\n bandDetails,\n style,\n exportMode,\n}: SvgViewProps) => {\n const svgWrapper = React.useRef(null);\n\n React.useEffect(() => {\n setSvgWrapper(svgWrapper);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [svgWrapper.current]);\n\n const { boxBandList, bandNumberList, legendItemList } = toWidgets({ bands, bandDetails });\n const bandPoints = bands?.reduce>((current, b) => [...current, ...b.coords], []);\n const overallBBox = PointUtils.calculateBoundingBox({ points: bandPoints })!;\n if (!overallBBox) {\n return null;\n }\n\n const legendHeight = 300;\n const margin = 50;\n const exportWidth = 1080;\n const xMin = overallBBox.xMin - margin - 320;\n const yMin = overallBBox.yMin - margin - 50;\n const xMax = overallBBox.xMax + margin;\n const yMax = overallBBox.yMax + margin + legendHeight;\n const width = xMax - xMin;\n const height = yMax - yMin;\n\n return (\n \n \n \n \n \n \n \n \n \n {boxBandList}\n {bandNumberList}\n \n \n \n {room.name}\n {room.questionProduitPrincipal?.produitValue?.code && (\n \n {' '}\n - {room.questionProduitPrincipal?.produitValue?.code}\n \n )}\n \n {legendItemList}\n \n \n \n );\n};\n\nconst Container = styled('div')({ display: 'none' });\n\ntype WidgetsProps = { bands: Array; bandDetails: Array };\n\nconst getTextDimensions = (dimensions: LaizeBandDimensions) => {\n const meter = MapConstants.meter;\n const displayedWidth = Math.round((dimensions.width * 100) / meter);\n const displayedHeight = Math.round((dimensions.height * 100) / meter);\n const textDimensions = `${displayedWidth}cm x ${displayedHeight}cm`;\n return textDimensions;\n};\nconst toWidgets = ({ bands, bandDetails }: WidgetsProps) => {\n let bandCount = 0;\n\n const boxBandList: Array = [];\n const bandNumberList: Array = [];\n const legendItemList: Array = [];\n\n const bandFillColorPair = '#fbe995';\n const bandStrokeColorPair = '#e5a033';\n const bandNumberColorPair = '#e5a033';\n const bandFillColorImpair = '#24e8fb';\n const bandStrokeColorImpair = '#172e60';\n const bandNumberColorImpair = '#1c1a37';\n\n let textY = 40;\n let colorPairImpair = false;\n bands?.forEach((band: BandV3, i) => {\n if (band.type !== 'band-reusable') {\n const correspondingBand = bandDetails[bandCount];\n\n if (correspondingBand !== undefined) {\n //! On prends la première chute. A revoir avec #36360\n const leftOverCoords = correspondingBand.leftOverCoords?.[0];\n if (leftOverCoords !== undefined) {\n band.leftOverDimensions = getTextDimensions(LaizeBands.getBandDimensions(leftOverCoords));\n }\n if (correspondingBand.surfaceCoveredCoords !== undefined) {\n band.surfaceCoveredDimensions = getTextDimensions(\n LaizeBands.getBandDimensions(correspondingBand.surfaceCoveredCoords)\n );\n }\n }\n bandCount++;\n }\n\n let fillColor;\n let strokeColor;\n let fillOpacity;\n let dashArray = false;\n\n switch (band.type) {\n case 'band-new':\n fillColor = colorPairImpair ? bandFillColorImpair : bandFillColorPair;\n strokeColor = colorPairImpair ? bandStrokeColorImpair : bandStrokeColorPair;\n fillOpacity = colorPairImpair ? 0.08 : 0.46;\n break;\n case 'band-reusable':\n colorPairImpair = !colorPairImpair;\n strokeColor = colorPairImpair ? bandStrokeColorImpair : bandStrokeColorPair;\n fillOpacity = 0.1;\n dashArray = true;\n break;\n case 'band-reused':\n fillColor = colorPairImpair ? bandFillColorImpair : bandFillColorPair;\n strokeColor = colorPairImpair ? bandStrokeColorImpair : bandStrokeColorPair;\n fillOpacity = colorPairImpair ? 0.08 : 0.46;\n break;\n default:\n break;\n }\n const coords = band.coords.map((p) => `${p.x},${p.y}`);\n\n const props: React.SVGAttributes = {\n d: `M${coords[0]} ${coords.map((coord) => `L${coord}`).join(' ')} L${coords[0]}`,\n stroke: strokeColor,\n strokeWidth: band.type === 'band-reusable' ? 4 : 2,\n strokeOpacity: 1,\n strokeDasharray: dashArray ? '3 3' : undefined,\n fill: fillColor,\n fillOpacity: fillOpacity,\n fillRule: 'evenodd',\n };\n\n boxBandList.push();\n\n if (band.type === 'band-reusable') {\n const props: React.SVGAttributes = {\n d: `M${coords[0]} ${coords.map((coord) => `L${coord}`).join(' ')} L${coords[0]}`,\n stroke: strokeColor,\n strokeWidth: 2,\n strokeOpacity: 1,\n fill: 'white',\n fillOpacity: fillOpacity,\n fillRule: 'evenodd',\n };\n boxBandList.push();\n }\n\n if (band.type !== 'band-reusable') {\n bandNumberList.push(\n \n \n \n {band.id}\n \n \n );\n\n //* Gestion légende des bandes\n if (band.type === 'band-new' && band.leftOverDimensions) {\n //* check next band\n legendItemList.push(\n \n );\n textY += 144;\n } else if (band.type === 'band-reused') {\n legendItemList.push(\n \n );\n textY += 90;\n } else {\n legendItemList.push(\n \n );\n textY += 90;\n }\n }\n\n colorPairImpair = !colorPairImpair;\n });\n\n return { bandCount, boxBandList, bandNumberList, legendItemList };\n};\n\nconst BandText = styled('text')({ fontFamily: 'NunitoSans', fontWeight: 900, fontSize: 18 });\n\ntype LegendItemProps = {\n bandId: number;\n bandName: string;\n\n color: string;\n posY: number;\n\n text1?: string;\n text2?: string;\n text3?: string;\n};\nconst LegendItem = ({ bandId, bandName, text1, text2, text3, color, posY }: LegendItemProps) => {\n return (\n \n \n \n \n {bandId}\n \n \n \n \n {bandName}\n \n {text1 && (\n \n {text1}\n \n )}\n {text2 && (\n \n {text2}\n \n )}\n {text3 && (\n \n {text3}\n \n )}\n \n \n );\n};\nconst TextSpan = styled('tspan')({ fontWeight: 400, fontSize: 16 });\n","import React, { CSSProperties } from 'react';\n\nimport { IOpening } from '../../Models/IOpening';\nimport { IRoom } from '../../Models/IRoom';\nimport { IRoomItem } from '../../Models/IRoomItem';\nimport { PointUtils } from '../../Utils/PointUtils';\nimport { CoordPoint, Wall } from '../../Utils/Types';\nimport { LaizeBandItemV3 } from '../Laizes/v3/LaizeBandTrace';\nimport { LaizeV3TraceList } from '../Laizes/v3/LaizeV3Traces';\nimport { RawBoxRoomsRibs } from '../Widgets/BoxWalls/BoxWallRibs';\nimport { RawBoxWalls } from '../Widgets/BoxWalls/BoxWalls';\nimport { RawCarpentryItems } from '../Widgets/Openings/BoxCarpentryItems';\nimport { RawBoxRoomItems } from '../Widgets/RoomItems/BoxRoomItems';\nimport { RawBoxAreas } from '../Widgets/Rooms/BoxAreas';\n\ntype LaizeDebugMapSvgV3Props = {\n svgWrapper?: React.RefObject;\n walls?: Array;\n roomItems?: Array;\n rooms: Array;\n openings: Array;\n\n roomId?: string;\n style?: CSSProperties;\n bands_v3?: Array;\n exportMode?: boolean;\n};\n\nexport const LaizeDebugMapSvgV3 = ({\n style,\n svgWrapper,\n roomId,\n walls = [],\n roomItems = [],\n rooms,\n openings,\n bands_v3 = [],\n exportMode,\n}: LaizeDebugMapSvgV3Props) => {\n const legendHeight = 50;\n\n const selectedRoom = rooms.find((x) => x.roomId === roomId);\n const rotationAngle = selectedRoom?.rotationAngle || 0;\n\n const margin = rotationAngle !== 0 ? 300 : 100;\n const boxMargin = margin / 5;\n const exportWidth = 1080;\n\n const points = [\n ...walls.map((x) => x.start),\n ...roomItems.reduce>((items, x) => [...items, ...(x.coordsReal || [])], []),\n ...bands_v3.reduce>((items, x) => [...items, ...x.points], []),\n ];\n\n const overallBBox = PointUtils.calculateBoundingBox({ points: points })!;\n\n if (!overallBBox) {\n return null;\n }\n\n const laizeTraceDesciptionWidth = 100;\n\n const xMin = overallBBox.xMin - boxMargin;\n const yMin = overallBBox.yMin - boxMargin;\n const xMax = overallBBox.xMax + boxMargin;\n const yMax = overallBBox.yMax + boxMargin + legendHeight;\n const width = xMax - xMin + laizeTraceDesciptionWidth;\n const height = yMax - yMin + legendHeight;\n\n const viewWidth = exportMode ? exportWidth : width;\n const viewHeight = exportMode ? (exportWidth * height) / width : height;\n\n return (\n
\n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n
\n );\n};\n","import { YesOrNo } from '../../../../Models/IMapItem';\nimport { OpeningType } from '../../../../Models/IOpening';\nimport { IRoom, RoomShape } from '../../../../Models/IRoom';\nimport { RoomItemType } from '../../../../Models/IRoomItem';\n\nexport interface TestCase {\n name?: string;\n rooms?: Array;\n savedPlan?: TestCase;\n}\nexport const LAIZE_TEST_CASES: Array = [\n {\n name: 'Rectangle 5x3',\n rooms: [\n {\n name: 'Rectangle5x3',\n customPoints: [\n { x: 0, y: 0 },\n { x: 5, y: 0 },\n { x: 5, y: 3 },\n { x: 0, y: 3 },\n ],\n },\n ],\n },\n {\n name: 'Rectangle 5x3 (rota 90)',\n rooms: [\n {\n name: 'Rectangle5x3',\n rotationAngle: 90,\n customPoints: [\n { x: 0, y: 0 },\n { x: 5, y: 0 },\n { x: 5, y: 3 },\n { x: 0, y: 3 },\n ],\n },\n ],\n },\n {\n name: 'Rectangle 4x3 + U',\n rooms: [\n {\n name: 'Rectangle 4x3',\n customPoints: [\n { x: 0, y: 0 },\n { x: 4, y: 0 },\n { x: 4, y: 3 },\n { x: 0, y: 3 },\n ],\n },\n {\n name: 'Pièce en U vers le haut',\n rotationAngle: 180,\n customPoints: [\n { x: 0, y: 0 },\n { x: 0, y: 8 },\n { x: 4, y: 8 },\n { x: 4, y: 2 },\n { x: 8, y: 2 },\n { x: 8, y: 8 },\n { x: 12, y: 8 },\n { x: 12, y: 0 },\n ],\n },\n ],\n },\n {\n name: 'Diamant top left',\n rooms: [\n {\n name: 'Diamant top left',\n rotationAngle: 45,\n customPoints: [\n { x: 0, y: 0 },\n { x: 0, y: -2 },\n { x: 2, y: -4 },\n { x: 4, y: -4 },\n { x: 4, y: 0 },\n ],\n },\n ],\n },\n {\n name: 'Rectangles V&H',\n rooms: [\n {\n name: 'Rectangle Vertical',\n customPoints: [\n { x: 0, y: 0 },\n { x: 0, y: -8 },\n { x: 5, y: -8 },\n { x: 5, y: 0 },\n ],\n },\n {\n name: 'Rectangle Horizontal',\n rotationAngle: 90,\n customPoints: [\n { x: 0, y: 0 },\n { x: 0, y: -3 },\n { x: 5, y: -3 },\n { x: 5, y: 0 },\n ],\n },\n ],\n },\n {\n name: 'Pièce en U vers le bas',\n rooms: [\n {\n name: 'Pièce en U vers le bas',\n customPoints: [\n { x: 0, y: 0 },\n { x: 0, y: 8 },\n { x: 4, y: 8 },\n { x: 4, y: 2 },\n { x: 8, y: 2 },\n { x: 8, y: 8 },\n { x: 12, y: 8 },\n { x: 12, y: 0 },\n ],\n },\n ],\n },\n {\n name: 'Pièce en U vers le haut',\n rooms: [\n {\n name: 'Pièce en U vers le haut',\n rotationAngle: 180,\n customPoints: [\n { x: 0, y: 0 },\n { x: 0, y: 8 },\n { x: 4, y: 8 },\n { x: 4, y: 2 },\n { x: 8, y: 2 },\n { x: 8, y: 8 },\n { x: 12, y: 8 },\n { x: 12, y: 0 },\n ],\n },\n ],\n },\n {\n name: 'Pièce en U vers la droite',\n rooms: [\n {\n name: 'Pièce en U vers la droite',\n rotationAngle: -90,\n customPoints: [\n { x: 0, y: 0 },\n { x: 0, y: 8 },\n { x: 4, y: 8 },\n { x: 4, y: 2 },\n { x: 8, y: 2 },\n { x: 8, y: 8 },\n { x: 12, y: 8 },\n { x: 12, y: 0 },\n ],\n },\n ],\n },\n {\n name: 'Pièce en étoile',\n rooms: [\n {\n name: 'Pièce en étoile 1',\n customPoints: [\n { x: 2, y: 0 },\n { x: 2, y: 2 },\n { x: 0, y: 4 },\n { x: 2, y: 4 },\n { x: 4, y: 8 },\n { x: 6, y: 4 },\n { x: 8, y: 4 },\n { x: 6, y: 2 },\n { x: 6, y: 0 },\n { x: 4, y: 2 },\n ],\n },\n ],\n },\n {\n name: 'Rectangle 5x3 (rota 40°)',\n rooms: [\n {\n name: 'Rectangle5x3',\n rotationAngle: 40,\n customPoints: [\n { x: 0, y: 0 },\n { x: 5, y: 0 },\n { x: 5, y: 3 },\n { x: 0, y: 3 },\n ],\n },\n ],\n },\n {\n name: 'Diamant + Placard',\n savedPlan: {\n rooms: [\n {\n roomId: '19526696',\n name: 'Diamant + Placard',\n shape: RoomShape.Custom,\n // dimensions: {},\n roomExistingFlooring: 'Oui',\n roomFloor: 'RDC',\n roomHeating: 'Non',\n roomHeatingType: \"Je n'ai pas de chauffage au sol\",\n roomType: 'Chambre / Dressing',\n center: { x: 43.8, y: 82 },\n roomItems: [\n {\n roomItemId: '95592572',\n type: RoomItemType.Cupboard,\n name: 'Placard',\n putFlooring: YesOrNo.Yes,\n putPlinthes: YesOrNo.No,\n isMoveableOutside: true,\n width: 100,\n height: 100,\n coords: [\n { x: -50, y: -50 },\n { x: 50, y: -50 },\n { x: 50, y: 50 },\n { x: -50, y: 50 },\n { x: -50, y: -50 },\n ],\n graphTranslation: { x: 4470, y: 7950 },\n coordsReal: [\n { x: 4420, y: 7900 },\n { x: 4520, y: 7900 },\n { x: 4520, y: 8000 },\n { x: 4420, y: 8000 },\n { x: 4420, y: 7900 },\n ],\n // graph: {\n // 0: {},\n // length: 1,\n // },\n roomId: '19526696',\n },\n ],\n customPoints: [\n { x: 41.8, y: 84 },\n { x: 41.8, y: 82 },\n { x: 43.8, y: 80 },\n { x: 45.8, y: 80 },\n { x: 45.8, y: 84 },\n ],\n rotationAngle: 45,\n },\n ],\n },\n },\n {\n name: 'Rectangle5x3 rota 90 + placard',\n savedPlan: {\n rooms: [\n {\n roomId: '22638533',\n name: 'Rectangle5x3',\n shape: RoomShape.Custom,\n // dimensions: {},\n center: {\n x: 44.3,\n y: 81.5,\n },\n roomItems: [\n {\n roomItemId: '98582057',\n\n type: RoomItemType.Cupboard,\n name: 'Placard',\n putFlooring: YesOrNo.Yes,\n putPlinthes: YesOrNo.No,\n isMoveableOutside: true,\n width: 100,\n height: 100,\n coords: [\n { x: -50, y: -50 },\n { x: 50, y: -50 },\n { x: 50, y: 50 },\n { x: -50, y: 50 },\n { x: -50, y: -50 },\n ],\n graphTranslation: {\n wall: {\n start: { x: 4150, y: 7950 },\n end: { x: 4710, y: 7950 },\n roomId: '22638533',\n angle: 0,\n },\n roomId: '22638533',\n x: 4274,\n y: 7950,\n distance: 5,\n },\n coordsReal: [\n { x: 4224, y: 7900 },\n { x: 4324, y: 7900 },\n { x: 4324, y: 8000 },\n { x: 4224, y: 8000 },\n { x: 4224, y: 7900 },\n ],\n // graph: {\n // 0: {},\n // length: 1,\n // },\n roomId: '22638533',\n },\n ],\n customPoints: [\n { x: 41.8, y: 80 },\n { x: 46.8, y: 80 },\n { x: 46.8, y: 83 },\n { x: 41.8, y: 83 },\n ],\n rotationAngle: -90,\n },\n ],\n },\n },\n {\n name: '3 pièces différentes',\n savedPlan: {\n rooms: [\n {\n roomId: '76561366',\n name: 'Rectangle5x3',\n shape: RoomShape.Custom,\n // dimensions: {},\n center: { x: 55.09, y: 80.36 },\n roomItems: [],\n customPoints: [\n { x: 52.59, y: 78.86 },\n { x: 57.59, y: 78.86 },\n { x: 57.59, y: 81.86 },\n { x: 52.59, y: 81.86 },\n ],\n },\n {\n roomId: '17668114',\n name: 'Chambre / Dressing - RDC',\n shape: RoomShape.Diamond_topright,\n // dimensions: {\n // left_crown: 3,\n // table: 2.8284271247461903,\n // right_crown: 5,\n // },\n roomExistingFloorType: 'default',\n roomExistingFlooring: 'Oui',\n roomFloor: 'RDC',\n roomHeating: 'Non',\n roomHeatingType: \"Je n'ai pas de chauffage au sol\",\n roomType: 'Chambre / Dressing',\n center: { x: 46.55, y: 80.72999999999999 },\n openings: [],\n roomItems: [],\n },\n {\n roomId: '70614353',\n name: 'Chambre / Dressing - RDC',\n shape: RoomShape.Flyingwing_bottomright,\n // dimensions: {\n // right_wingtip: 2,\n // right_trailing_edge: 5,\n // left_trailing_edge: 3,\n // left_wingtip: 3.5,\n // },\n roomExistingFloorType: 'default',\n roomExistingFlooring: 'Oui',\n roomFloor: 'RDC',\n roomHeating: 'Non',\n roomHeatingType: \"Je n'ai pas de chauffage au sol\",\n roomType: 'Chambre / Dressing',\n center: { x: 52.31, y: 87.31666666666666 },\n openings: [],\n roomItems: [],\n },\n ],\n },\n },\n {\n name: 'Pièces contigues',\n savedPlan: {\n rooms: [\n {\n roomId: '77206721',\n name: 'Rectangle5x3',\n shape: RoomShape.Custom,\n // dimensions: {},\n center: {\n x: 44.3,\n y: 81.5,\n },\n roomItems: [],\n customPoints: [\n {\n x: 41.8,\n y: 80,\n },\n {\n x: 46.8,\n y: 80,\n },\n {\n x: 46.8,\n y: 83,\n },\n {\n x: 41.8,\n y: 83,\n },\n ],\n },\n {\n roomId: '21252999',\n name: 'Chambre / Dressing - RDC',\n shape: RoomShape.Diamond_topleft,\n // dimensions: {\n // left_crown: 3,\n // table: 2.8284271247461903,\n // right_crown: 5,\n // },\n roomExistingFloorType: 'default',\n roomExistingFlooring: 'Oui',\n roomFloor: 'RDC',\n roomHeating: 'Non',\n roomHeatingType: \"Je n'ai pas de chauffage au sol\",\n roomType: 'Chambre / Dressing',\n center: { x: 50, y: 81.83000000000001 },\n openings: [\n {\n openingId: '49044181',\n location_side: 'left_crown',\n location_position_from_edge: 2.31,\n size: 0.63,\n name: 'Porte',\n type: OpeningType.Door,\n },\n ],\n roomItems: [],\n },\n ],\n },\n },\n {\n name: 'Pièces contigues, sens pose différent',\n savedPlan: {\n rooms: [\n {\n roomId: '69977750',\n name: 'Rectangle Vertical',\n shape: RoomShape.Custom,\n // dimensions: {},\n center: { x: 44.3, y: 84 },\n openings: [],\n roomItems: [],\n customPoints: [\n { x: 41.8, y: 88 },\n { x: 41.8, y: 80 },\n { x: 46.8, y: 80 },\n { x: 46.8, y: 88 },\n ],\n },\n {\n roomId: '66149100',\n name: 'Rectangle Horizontal',\n shape: RoomShape.Custom,\n // dimensions: {},\n center: { x: 49.3, y: 83.7 },\n openings: [\n {\n openingId: '94661669',\n location_side: 'side_0',\n location_position_from_edge: 1.72,\n size: 0.63,\n name: 'Porte',\n type: OpeningType.Door,\n },\n ],\n roomItems: [],\n customPoints: [\n { x: 46.8, y: 85.2 },\n { x: 46.8, y: 82.2 },\n { x: 51.8, y: 82.2 },\n { x: 51.8, y: 85.2 },\n ],\n rotationAngle: 90,\n },\n ],\n },\n },\n {\n name: 'Autre élément séparateur (U)',\n savedPlan: {\n rooms: [\n {\n roomId: '47741136',\n name: 'Rectangle5x3',\n shape: RoomShape.Custom,\n // dimensions: {},\n center: { x: 44.3, y: 81.5 },\n openings: [],\n roomItems: [\n {\n roomItemId: '71423169',\n type: RoomItemType.FixedFurniture,\n name: 'Meuble non déplaçable',\n putFlooring: YesOrNo.No,\n putPlinthes: YesOrNo.No,\n isMoveableOutside: false,\n width: 477,\n height: 56,\n coords: [\n { x: -238.5, y: -28 },\n { x: 238.5, y: -28 },\n { x: 238.5, y: 28 },\n { x: -238.5, y: 28 },\n { x: -238.5, y: -28 },\n ],\n graphTranslation: {\n wall: {\n start: { x: 4418.5, y: 8272 },\n end: { x: 4418.5, y: 8028 },\n roomId: '47741136',\n angle: -1.5707963267948966,\n },\n roomId: '47741136',\n x: 4418.5,\n y: 8132,\n distance: 210.5,\n },\n coordsReal: [\n { x: 4180, y: 8104 },\n { x: 4657, y: 8104 },\n { x: 4657, y: 8160 },\n { x: 4180, y: 8160 },\n { x: 4180, y: 8104 },\n ],\n // graph: {\n // 0: {},\n // length: 1,\n // },\n roomId: '47741136',\n },\n ],\n customPoints: [\n { x: 41.8, y: 80 },\n { x: 46.8, y: 80 },\n { x: 46.8, y: 83 },\n { x: 41.8, y: 83 },\n ],\n },\n ],\n },\n },\n {\n name: 'Ilot central',\n savedPlan: {\n rooms: [\n {\n roomId: '47741136',\n name: 'Rectangle5x3',\n shape: RoomShape.Custom,\n // dimensions: {},\n center: { x: 46.120000000000005, y: 81.5 },\n openings: [],\n roomItems: [\n {\n roomItemId: '71423169',\n type: RoomItemType.FixedFurniture,\n name: 'Meuble non déplaçable',\n putFlooring: YesOrNo.No,\n putPlinthes: YesOrNo.No,\n isMoveableOutside: false,\n width: 733,\n height: 56,\n coords: [\n { x: -366.5, y: -28 },\n { x: 366.5, y: -28 },\n { x: 366.5, y: 28 },\n { x: -366.5, y: 28 },\n { x: -366.5, y: -28 },\n ],\n graphTranslation: { x: 4609.25, y: 8155 },\n coordsReal: [\n { x: 4242.75, y: 8127 },\n { x: 4975.75, y: 8127 },\n { x: 4975.75, y: 8183 },\n { x: 4242.75, y: 8183 },\n { x: 4242.75, y: 8127 },\n ],\n // graph: {\n // 0: {},\n // length: 1,\n // },\n roomId: '47741136',\n },\n ],\n customPoints: [\n { x: 41.8, y: 80 },\n { x: 50.44, y: 80 },\n { x: 50.44, y: 83 },\n { x: 41.8, y: 83 },\n ],\n },\n ],\n },\n },\n {\n name: 'Chute réutilisable',\n savedPlan: {\n rooms: [\n {\n roomId: '77767612',\n name: 'Chute réutilisable',\n shape: RoomShape.Rectangle,\n // dimensions: { width: 0.99, height: 3 },\n roomExistingFlooring: 'Oui',\n roomFloor: 'RDC',\n roomHeating: 'Non',\n roomHeatingType: \"Je n'ai pas de chauffage au sol\",\n roomType: 'Chambre / Dressing',\n center: { x: 42.295, y: 81.5 },\n openings: [],\n roomItems: [],\n },\n {\n roomId: '97969171',\n name: 'Chambre / Dressing - RDC',\n shape: RoomShape.Rectangle,\n // dimensions: { width: 0.99, height: 3 },\n roomExistingFlooring: 'Oui',\n roomFloor: 'RDC',\n roomHeating: 'Non',\n roomHeatingType: \"Je n'ai pas de chauffage au sol\",\n roomType: 'Chambre / Dressing',\n center: { x: 42.295, y: 84.5 },\n openings: [],\n roomItems: [],\n },\n ],\n },\n },\n];\n","import * as _ from 'lodash';\n\nimport { Logger } from '../../../../../../Errors/Logger';\nimport { IRoom, RoomShape } from '../../../../Models/IRoom';\nimport { CreateRoomFactory } from '../../../../Utils/Room/RoomUtils';\nimport { LAIZE_TEST_CASES, TestCase } from './TestCases';\n\nexport class LaizeDebugTest {\n public static convertLaizeCaseToImportableRoomObj(testCase: TestCase): Array {\n const rooms: Array = [];\n testCase.rooms?.forEach((room) => {\n rooms.push({ ...room, shape: room.customPoints ? RoomShape.Custom : room.shape });\n });\n return rooms;\n }\n\n public static getTestCases(): Array {\n const localTestCases: Array = JSON.parse(localStorage.getItem('pol-LaizeTestCases') ?? '[]');\n return [...LAIZE_TEST_CASES, ...localTestCases];\n }\n\n public static saveTestCase(testCase: TestCase, name: string) {\n const newTestCase = { name, savedPlan: _.cloneDeep(testCase) };\n const localTestCases = JSON.parse(localStorage.getItem('pol-LaizeTestCases') ?? '[]');\n localTestCases.push(newTestCase);\n localStorage.setItem('pol-LaizeTestCases', JSON.stringify(localTestCases));\n Logger.log('LaizeDebugTest saveTestCase', { newTestCase });\n }\n\n public static toSaveRoom = (baseRoom: IRoom): IRoom => {\n const room = CreateRoomFactory.exportRoom(baseRoom);\n return {\n roomId: room.roomId,\n name: room.name,\n shape: room.shape,\n obsoleteDimensions: room.obsoleteDimensions,\n roomExistingFloorType: room.roomExistingFloorType,\n roomExistingFlooring: room.roomExistingFlooring,\n roomFloor: room.roomFloor,\n roomHeating: room.roomHeating,\n roomHeatingType: room.roomHeatingType,\n roomType: room.roomType,\n center: room.center,\n openings: room.openings,\n roomItems: room.roomItems,\n customPoints: room.customPoints,\n rotationAngle: room.rotationAngle,\n };\n };\n}\n","import { Button, Dialog, Divider, IconButton, Popover, StandardTextFieldProps, Tooltip } from '@material-ui/core';\nimport DownloadIcon from '@material-ui/icons/GetApp';\nimport { styled } from '@material-ui/styles';\nimport React, { CSSProperties, HTMLAttributes, useEffect } from 'react';\n\nimport { useVisibility } from '../../../../../Hooks/Visibility';\nimport { ProduitDto } from '../../../../../Models/Questions/ProduitDto';\nimport { ButtonSave } from '../../../../../Web/Components/Views/CustomButton/ButtonsFactory';\nimport { DebugDialog } from '../../../../../Web/Context/Debug/DebugDialog';\nimport { useViewState } from '../../../../../Web/Hooks/ViewState/ViewState';\nimport { useThrottle } from '../../../../../Web/Hooks/useDebounce';\nimport { EditInputDialog } from '../../../../../Web/Pages/Projects/Components/EditInputDialog';\nimport { Assets } from '../../../../../Web/assets/Assets';\nimport { useMapContext } from '../../../Context/MapContext';\nimport { MapHelper } from '../../../Helpers/MapHelper';\nimport { IOpening } from '../../../Models/IOpening';\nimport { IRoom } from '../../../Models/IRoom';\nimport { IRoomItem } from '../../../Models/IRoomItem';\nimport { Wall } from '../../../Utils/Types';\nimport { DimensInput } from '../../../Widgets/DimensInput';\nimport { SelectField } from '../../../Widgets/SelectField';\nimport { ExportMapImageHelper } from '../../Images/Helpers/ExportMapPngHelper';\nimport { LaizeDebugMapSvgV3 } from '../../Images/LaizeDebugMapSvgV3';\nimport { SvgByRoom } from '../../Images/Laizes/LaizeExportBands';\nimport { LaizeExportRoomBandsSvgV3 } from '../../Images/Laizes/LaizeExportRoomBandsSvgV3';\nimport { FlooringDirection, LaizeCalculatorResult, LaizeDirection, LaizeProps, ProductType } from '../Laize';\nimport { CalculLaizeParams, LaizeCalc } from '../LaizeCalc';\nimport { LaizeV3 } from '../v3/LaizeV3';\nimport { LaizeDebugTest } from './Tests/LaizeDebugTest';\nimport { TestCase } from './Tests/TestCases';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\ntype DialogDebuggerV3Props = { onClose: () => void };\n\ntype EditLaizeProps = {\n type?: ProductType;\n direction: LaizeDirection;\n\n bandWidth?: number;\n longueurCm?: number;\n raccordLength?: number;\n laizeMargin?: number;\n motifLength?: number;\n motifWidth?: number;\n laizeConsecutiveBandsMargin?: number;\n\n iteration?: number;\n rotationAngle?: number;\n roomId?: string;\n\n //V3\n flooringDirectionByRoomId: { [roomId: string]: FlooringDirection | undefined };\n produit?: ProduitDto;\n};\n\nconst PLAN_GENERAL_KEY = 'plan_general';\n\ntype MapDebugState = {\n laizeProps: LaizeProps;\n walls: Array;\n rooms: Array;\n openings: Array;\n roomItems: Array;\n\n selectedCase?: TestCase;\n};\n\nexport const LaizeV3DebugDialog = ({ onClose }: DialogDebuggerV3Props) => {\n const map = useMapContext();\n const editMap = useViewState({});\n const { state: editProps, update: updateProps } = useViewState({\n type: ProductType.Rouleau,\n direction: LaizeDirection.None,\n iteration: 0,\n rotationAngle: 0,\n });\n\n React.useEffect(() => {\n const { laizeProps = [], walls, rooms, openings, roomItems } = map.getState();\n\n const laizePropsToUse = laizeProps[0];\n const roomsToUse = rooms?.filter((r) => laizePropsToUse?.roomIds?.some((x) => x === r.roomId)) || [];\n const openingsToUse = openings?.filter((o) => roomsToUse.some((r) => r.roomId === o.roomId)) || [];\n const roomItemsToUse = roomItems?.filter((ri) => roomsToUse.some((r) => r.roomId === ri.roomId)) || [];\n const LAIZE_MARGIN = laizePropsToUse?.type === ProductType.Rouleau ? 10 : 0;\n const LAIZE_CONSECUTIVE_BANDS_MARGIN = laizePropsToUse?.type === ProductType.Rouleau ? 10 : 0;\n updateProps({\n type: laizePropsToUse?.type || ProductType.Rouleau,\n bandWidth: laizePropsToUse?.largeurCm,\n laizeMargin: LAIZE_MARGIN,\n raccordLength: laizePropsToUse?.raccordCm,\n motifWidth: laizePropsToUse?.largeurMarginCm,\n motifLength: laizePropsToUse?.longueurMarginCm,\n longueurCm: laizePropsToUse?.longueurCm,\n laizeConsecutiveBandsMargin: LAIZE_CONSECUTIVE_BANDS_MARGIN,\n flooringDirectionByRoomId: LaizeCalc.getFlooringDirectionByRoomId(roomsToUse),\n produit: laizePropsToUse?.produit,\n });\n\n editMap.update({\n laizeProps: laizePropsToUse,\n walls,\n rooms: roomsToUse,\n openings: openingsToUse,\n roomItems: roomItemsToUse,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const [laizeResult, setLaizeResult] = React.useState();\n React.useEffect(() => {\n const { laizeProps = {}, walls = [], rooms = [], openings = [], roomItems = [] } = editMap.getState();\n const laizeCalcProps = LaizeCalc.toLaizeCalcProps(laizeProps);\n laizeCalcProps.BAND_WIDTH = editProps.bandWidth || laizeCalcProps.BAND_WIDTH;\n laizeCalcProps.LAIZE_MARGIN = editProps.laizeMargin || laizeCalcProps.LAIZE_MARGIN;\n laizeCalcProps.RACCORD_SIZE = editProps.raccordLength || laizeCalcProps.RACCORD_SIZE;\n laizeCalcProps.MARGIN_WIDTH = editProps.motifWidth || laizeCalcProps.MARGIN_WIDTH;\n laizeCalcProps.MARGIN_LENGTH = editProps.motifLength || laizeCalcProps.MARGIN_LENGTH;\n laizeCalcProps.LAIZE_CONSECUTIVE_BANDS_MARGIN =\n editProps.laizeConsecutiveBandsMargin || laizeCalcProps.LAIZE_CONSECUTIVE_BANDS_MARGIN;\n laizeCalcProps.LONGUEUR_CM = editProps.longueurCm || laizeCalcProps.LONGUEUR_CM;\n laizeCalcProps.TYPE = editProps.type || laizeCalcProps.TYPE;\n\n const params: CalculLaizeParams = {\n laizeCalcProps,\n rooms,\n openings,\n roomItems,\n walls,\n flooringDirectionByRoomId: editProps.flooringDirectionByRoomId,\n };\n\n const logName = 'from LaizeV3DebugDialog';\n const laizeResult = LaizeV3.calculLaizeV3({\n ...params,\n iteration: editProps.iteration,\n logName,\n requestedBy: 'LaizeV3DebugDialog',\n });\n if (laizeResult) {\n if (editProps.iteration! > laizeResult.roomsBandsDetailsContiguous.length) {\n const iteration = laizeResult.roomsBandsDetailsContiguous.length;\n updateProps({ iteration });\n }\n }\n setLaizeResult(laizeResult);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editProps]);\n\n const onSelectTestCase = (selectedCase: TestCase) => {\n const testCase = selectedCase.savedPlan || selectedCase;\n const importRooms = LaizeDebugTest.convertLaizeCaseToImportableRoomObj(testCase);\n const mapResults = MapHelper.importRooms({ importRooms });\n editMap.resetState({ ...mapResults, selectedCase });\n updateProps({ iteration: 0, roomId: undefined });\n };\n\n const saveTestCase = (name: string) => {\n const { rooms = [] } = editMap.getState();\n const roomToSave = rooms.map(LaizeDebugTest.toSaveRoom);\n const testCaseToSave: TestCase = { rooms: roomToSave };\n LaizeDebugTest.saveTestCase(testCaseToSave, name);\n };\n\n const onCloseTestCase = () => {\n const { walls, rooms, openings, roomItems } = map.getState();\n editMap.update({ walls, rooms, openings, roomItems, selectedCase: undefined });\n updateProps({ iteration: 0, roomId: undefined });\n };\n\n const reachMaxIteration =\n editProps.iteration !== 0 && editProps.iteration === laizeResult?.roomsBandsDetailsContiguous.length;\n const incrementDisabled = laizeResult?.isPossible && reachMaxIteration;\n const showResult = !laizeResult?.isPossible || incrementDisabled;\n return (\n \n \n
\n \n \n <ButtonSaveTestCase onValidate={saveTestCase} />\n </Header>\n <SelectedTestCase testCase={editMap.state.selectedCase} onCloseTest={onCloseTestCase} />\n <Header id=\"Header2\">\n <HeaderSelect>\n <SelectField\n values={[\n { value: PLAN_GENERAL_KEY, label: 'Plan' },\n ...(editMap.state.rooms || []).map((r) => ({ value: r.roomId!, label: r.name })),\n ]}\n value={editProps.roomId || PLAN_GENERAL_KEY}\n onChangeValue={(value) => {\n updateProps({ roomId: value === PLAN_GENERAL_KEY ? undefined : value });\n }}\n styles={{ root: { height: 40, width: 200, alignSelf: 'center' } }}\n />\n <SelectField\n values={\n map.state.laizeProps?.map((x) => ({\n value: x.productCode!,\n label: x.produit?.libelle || '',\n })) || []\n }\n value={editProps.produit?.code || ''}\n onChangeValue={(value) => {\n const laizeProps = map.state.laizeProps?.find((x) => x.productCode === value);\n const rooms =\n map.state.rooms?.filter((x) => laizeProps?.roomIds?.some((r) => r === x.roomId)) ||\n [];\n const openings =\n map.state.openings?.filter((x) => rooms.some((r) => r.roomId === x.roomId)) || [];\n const roomItems =\n map.state.roomItems?.filter((x) => rooms.some((r) => r.roomId === x.roomId)) || [];\n editMap.update({ rooms, openings, roomItems, laizeProps });\n updateProps({\n produit: laizeProps?.produit,\n type: laizeProps?.type || ProductType.Rouleau,\n bandWidth: laizeProps?.largeurCm,\n raccordLength: laizeProps?.raccordCm,\n motifWidth: laizeProps?.largeurMarginCm,\n motifLength: laizeProps?.longueurMarginCm,\n longueurCm: laizeProps?.longueurCm,\n laizeMargin: laizeProps?.type === ProductType.Rouleau ? 10 : 0,\n laizeConsecutiveBandsMargin: laizeProps?.type === ProductType.Rouleau ? 10 : 0,\n flooringDirectionByRoomId: LaizeCalc.getFlooringDirectionByRoomId(rooms),\n });\n }}\n styles={{ root: { height: 40, width: 500, alignSelf: 'center' } }}\n />\n </HeaderSelect>\n <Counter\n value={editProps.iteration}\n onChange={(iteration) => updateProps({ iteration })}\n incrementDisabled={incrementDisabled}\n />\n <ButtonOptions selectedCase={editMap.state.selectedCase} onValidate={onSelectTestCase} />\n </Header>\n <Divider id=\"Divider\" style={{ marginTop: 12 }} />\n <Body id=\"Body\" style={{ paddingTop: 12 }}>\n <MapImage\n rooms={editMap.state.rooms}\n walls={editMap.state.walls}\n openings={editMap.state.openings}\n roomItems={editMap.state.roomItems}\n roomId={editProps.roomId}\n laizeResult={laizeResult}\n />\n <MenuContainer id=\"MenuContainer\">\n <Menu id=\"Menu\">\n <Field title=\"Type :\">\n <SelectField\n values={[\n { value: ProductType.Rouleau, label: 'Rouleau' },\n { value: ProductType.LamePleine, label: 'Lame pleine' },\n ]}\n value={editProps.type}\n onChangeValue={(type) => updateProps({ type: type as ProductType })}\n styles={{ root: { height: 40 } }}\n />\n </Field>\n {/* <Field title=\"Sens de pose :\">\n <SelectField\n values={[\n { value: LaizeDirection.None, label: 'Aucun' },\n { value: LaizeDirection.Vertical, label: 'Vertical' },\n { value: LaizeDirection.Horizontal, label: 'Horizontal' },\n ]}\n value={editProps.direction}\n onChangeValue={(direction) => {\n updateProps({ direction: direction as LaizeDirection });\n }}\n styles={{ root: { height: 40 } }}\n />\n </Field> */}\n <Field title=\"Code produit :\">\n <Tooltip title={editMap.state.laizeProps?.produit?.libelle || ''}>\n <ProductCode>{editMap.state.laizeProps?.productCode}</ProductCode>\n </Tooltip>\n </Field>\n <Field id=\"laizeProps-bandWidth\" title=\"Largeur rouleau :\">\n <Input\n value={editProps.bandWidth}\n onInputChange={(value) => updateProps({ bandWidth: parseInt(value) })}\n />\n </Field>\n <Field id=\"laizeProps-laizeMargin\" title=\"Marge interne lé :\">\n <Input\n value={editProps.laizeMargin}\n onInputChange={(value) => updateProps({ laizeMargin: parseInt(value) })}\n />\n </Field>\n <Field id=\"laizeProps-raccordLength\" title=\"Taille raccord :\">\n <Input\n value={editProps.raccordLength}\n onInputChange={(value) => updateProps({ raccordLength: parseInt(value) })}\n />\n </Field>\n <Field id=\"laizeProps-motifWidth\" title=\"Largeur motif :\">\n <Input\n a\n value={editProps.motifWidth}\n onInputChange={(value) => updateProps({ motifWidth: parseInt(value) })}\n />\n </Field>\n <Field id=\"laizeProps-motifLength\" title=\"Longueur motif :\">\n <Input\n value={editProps.motifLength}\n onInputChange={(value) => updateProps({ motifLength: parseInt(value) })}\n />\n </Field>\n <Field id=\"laizeProps-longueur\" title=\"Longueur :\">\n <Input\n value={editProps.longueurCm}\n onInputChange={(value) => updateProps({ longueurCm: parseInt(value) })}\n />\n </Field>\n <Field id=\"laizeProps-laizeConsecutiveBandsMargin\" title=\"Consecutive Bands Margin :\">\n <Input\n value={editProps.laizeConsecutiveBandsMargin}\n onInputChange={(value) =>\n updateProps({ laizeConsecutiveBandsMargin: parseInt(value) })\n }\n />\n </Field>\n {editMap.state.rooms?.map((room) => (\n <Field key={room.roomId} title={`Sens de pose ${room.name} :`}>\n <SelectField\n values={\n editProps.type === ProductType.LamePleine\n ? [\n { value: FlooringDirection.LameVertical, label: 'Vertical' },\n {\n value: FlooringDirection.LameHorizontal,\n label: 'Horizontal',\n },\n {\n value: FlooringDirection.ClassiqueVertical,\n label: 'Classique V.',\n },\n {\n value: FlooringDirection.ClassiqueHorizontal,\n label: 'Classique H.',\n },\n ]\n : [\n { value: FlooringDirection.LaizeVertical, label: 'Vertical' },\n {\n value: FlooringDirection.LaizeHorizontal,\n label: 'Horizontal',\n },\n ]\n }\n value={editProps.flooringDirectionByRoomId?.[room.roomId!]}\n onChangeValue={(direction) => {\n const flooringDirectionByRoomId = editProps.flooringDirectionByRoomId ?? {};\n flooringDirectionByRoomId[room.roomId!] = direction as FlooringDirection;\n updateProps({ flooringDirectionByRoomId });\n }}\n styles={{ root: { height: 40 } }}\n />\n </Field>\n ))}\n </Menu>\n {showResult && (\n <LaizeResult>\n {!laizeResult?.isPossible && <Impossible>Impossible</Impossible>}\n {laizeResult?.isPossible && (\n <React.Fragment>\n <ExportLaizeBands>\n {editMap.state.rooms?.map((room) => (\n <ExportRoomLaizeBand\n key={room.roomId}\n room={room}\n rooms={editMap.state.rooms || []}\n roomItems={editMap.state.roomItems || []}\n title={`Export bande ${room.name}`}\n laizeResult={laizeResult}\n />\n ))}\n </ExportLaizeBands>\n <Field title=\"Total (m):\" style={{ marginTop: 12 }}>\n <LaizeDebugProps>{laizeResult?.laizeResult.toFixed(2)}</LaizeDebugProps>\n </Field>\n <Field title=\"Longueur raccord (m) :\">\n <LaizeDebugProps>\n {laizeResult?.roomsRaccordLength\n .reduce((a, b) => a + b.length, 0)\n .toFixed(2)}\n </LaizeDebugProps>\n </Field>\n </React.Fragment>\n )}\n </LaizeResult>\n )}\n </MenuContainer>\n </Body>\n </Container>\n </Dialog>\n );\n};\n\n//#region //* STYLES & COMPONENTS\n\nconst PaperStyle: CSSProperties = {\n position: 'relative',\n width: '100%',\n minWidth: 'calc(100% - 64px)',\n height: '100%',\n borderRadius: 0,\n};\n\nconst Container = styled(Stack)({\n position: 'relative',\n width: '100%',\n height: '100%',\n padding: '0px 0px 0px 16px',\n});\n\nconst Title = ({ data }: { data: any }) => {\n const visibility = useVisibility();\n const Container = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n fontSize: 26,\n cursor: 'pointer',\n });\n return (\n <React.Fragment>\n <Container onClick={visibility.show}>Analyse calcul en lés</Container>\n {visibility.visible && <DebugDialog title=\"Laize result\" data={data} onClose={visibility.hide} />}\n </React.Fragment>\n );\n};\n\nconst Header = styled('div')({ position: 'relative', display: 'grid', gridTemplateColumns: '1fr 1fr 1fr' });\nconst HeaderSelect = styled('div')({ display: 'flex', gap: 16 });\nconst RightButton = styled(Button)({\n borderRadius: 0,\n position: 'absolute',\n top: 0,\n bottom: 0,\n right: 0,\n margin: 'auto',\n width: 200,\n fontWeight: 500,\n fontSize: 16,\n});\n\nconst Body = styled('div')({ display: 'flex', width: '100%', height: '100%', flex: 1, gap: 16, overflowY: 'scroll' });\nconst MenuContainer = styled('div')({ width: 'max-content', marginRight: 16 });\nconst Menu = styled(Stack)({ gap: 10 });\n\nconst LaizeResult = styled(Stack)({\n marginTop: 20,\n border: '2px black solid',\n padding: 16,\n borderRadius: 5,\n gap: 8,\n});\n\nconst Impossible = styled('div')({ color: 'red', fontSize: 16, textAlign: 'center', width: '100%' });\nconst LaizeDebugProps = styled('div')({ fontWeight: 500, fontSize: 16, color: 'green', textAlign: 'right', flex: 1 });\n\n//#endregion\n\n//#region //* ITERATION COUNTER\n\ntype CounterProps = {\n value?: number;\n onChange: (value: number) => void;\n incrementDisabled?: boolean;\n};\nconst Counter = ({ value = 0, onChange, incrementDisabled }: CounterProps) => {\n const increment = () => onChange(value + 1);\n const decrement = () => {\n const result = value - 1;\n onChange(result >= 0 ? result : 0);\n };\n\n const Value = styled('div')({\n width: 50,\n fontWeight: 400,\n fontSize: 16,\n lineHeight: '22px',\n textAlign: 'center',\n color: '#000000',\n });\n\n return (\n <ValueContainer id=\"Counter\">\n <IncButton onClick={decrement} id=\"Minus\">\n <Assets.IconMinus />\n </IncButton>\n <Value id=\"CounterValue\">{value}</Value>\n <IncButton\n onClick={increment}\n id=\"Plus\"\n disabled={incrementDisabled}\n style={{\n opacity: incrementDisabled ? 0.3 : 1,\n background: incrementDisabled ? '#808080' : 'transparent',\n cursor: incrementDisabled ? 'not-allowed' : 'pointer',\n pointerEvents: incrementDisabled ? 'auto' : 'auto',\n }}>\n <Assets.IconPlus />\n </IncButton>\n </ValueContainer>\n );\n};\nconst ValueContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n height: 50,\n border: '2px solid rgb(19, 18, 58)',\n justifySelf: 'center',\n});\n\nconst IncButton = styled(Button)({ borderRadius: 0, width: 50, height: '100%' });\n\n//#endregion\n\n//#region //* MAP\n\ntype MapImageProps = {\n roomId?: string;\n rooms?: Array<IRoom>;\n openings?: Array<IOpening>;\n walls?: Array<Wall>;\n roomItems?: Array<IRoomItem>;\n laizeResult?: LaizeCalculatorResult;\n exportMode?: boolean;\n};\nconst MapImage = ({\n rooms = [],\n openings = [],\n roomItems = [],\n walls = [],\n roomId,\n laizeResult,\n exportMode,\n}: MapImageProps) => {\n const svgWrapper = React.useRef<SVGSVGElement>(null);\n return (\n <ImageContainer id=\"MapImage\">\n <LaizeDebugMapSvgV3\n svgWrapper={svgWrapper}\n walls={walls}\n rooms={rooms}\n roomItems={roomItems}\n openings={openings}\n roomId={roomId}\n bands_v3={laizeResult?.bands_v3}\n style={{ display: 'flex' }}\n exportMode={exportMode}\n />\n </ImageContainer>\n );\n};\n\nconst ImageContainer = styled('div')({\n position: 'relative',\n display: 'flex',\n flex: 1,\n overflow: 'scroll',\n overflowY: 'scroll', //! force show vertical scrollbar => not work*\n overflowX: 'scroll', //! force show horizontal scrollbar => not work\n});\n\n//#endregion\n\n//#region //* FIELD PROPS\n\ntype FieldProps = { id?: string; title?: React.ReactNode; style?: CSSProperties };\nconst Field: React.FC<FieldProps> = ({ id, title, style, children }) => {\n const Title = styled('div')({\n fontWeight: 700,\n fontSize: 16,\n color: '#1D1D1F',\n textAlign: 'start',\n flex: 1,\n width: 'max-content',\n });\n\n return (\n <FieldContainer id={id} style={style}>\n <Title>{title}\n {children}\n \n );\n};\nconst FieldContainer = styled('div')({ display: 'flex', position: 'relative', alignItems: 'center', gap: 8 });\nconst FieldContent = styled('div')({ display: 'flex', alignItems: 'center', width: 160 });\n\ntype InputProps = { onInputChange: (value: string) => void; a?: boolean } & StandardTextFieldProps;\nconst Input = ({ value, onInputChange, a = false, ...props }: InputProps) => {\n const InputStyle: CSSProperties = { marginTop: 0, height: 32, padding: '8px 12px' };\n const { liveValue, onChange } = useThrottle({\n initialValue: value as string,\n onDelayChange: onInputChange,\n delay: 250,\n });\n\n useEffect(() => {\n if (value !== liveValue) {\n onChange(value as string);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n return (\n onChange(e.target.value)}\n style={InputStyle}\n placeholder=\"\"\n {...props}\n />\n );\n};\n\n//#endregion\n\nconst ProductCode = styled('div')({\n fontSize: 16,\n fontWeight: 900,\n textAlign: 'center',\n width: '100%',\n color: 'green',\n});\n\n//#region //* Export Room Laize Band\n\nconst ExportLaizeBands = styled(Stack)({ width: 'max-content', gap: 2 });\n\ntype ExportRoomLaizeBandProps = {\n title: string;\n room: IRoom;\n rooms: Array;\n roomItems: Array;\n laizeResult: LaizeCalculatorResult;\n};\nconst ExportRoomLaizeBand = ({ title, room, rooms, roomItems, laizeResult }: ExportRoomLaizeBandProps) => {\n const svgHolder = React.useRef({ roomId: room.roomId! });\n\n const exporter = LaizeExportRoomBandsSvgV3({\n room,\n rooms,\n roomItems,\n laizeResult,\n getHolder: () => svgHolder.current,\n });\n const Container = styled(Button)({\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n color: '#007bff',\n borderRadius: 0,\n padding: '2px 16px 2px 0px',\n });\n return (\n ExportMapImageHelper.openLink(room.name!, exporter.captureSvg())}>\n \n {title}\n {exporter.renderView()}\n \n );\n};\n\n//#endregion\n\n//#region //* SAVE TEST CASE\n\ntype ButtonSaveTestCaseProps = { onValidate: (name: string) => void };\nconst ButtonSaveTestCase = ({ onValidate }: ButtonSaveTestCaseProps) => {\n const [open, setOpen] = React.useState(false);\n return (\n \n setOpen(true)}>Enregistrer le cas test\n {open && (\n {\n onValidate(input);\n setOpen(false);\n }}\n onClose={() => setOpen(false)}\n />\n )}\n \n );\n};\n\n//#endregion\n\n//#region //* OPTIONS TEST CASES\n\ntype ButtonOptionsProps = { selectedCase?: TestCase; onValidate: (testCase: TestCase) => void };\nconst ButtonOptions = ({ selectedCase, onValidate }: ButtonOptionsProps) => {\n const menuAnchorEl = React.useRef(null);\n const options = useVisibility();\n\n const testCases: Array = LaizeDebugTest.getTestCases();\n const [option, setOption] = React.useState();\n\n React.useEffect(() => {\n if (!selectedCase) {\n setOption(undefined);\n } else if (option !== selectedCase.name) {\n setOption(selectedCase.name);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options.visible]);\n\n const OptionContent = styled('div')({ padding: '0px 32px 32px 32px', width: 410 });\n const OptionHeader = styled('div')({\n display: 'flex',\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderBottom: '1px solid #454545',\n height: 64,\n fontSize: 26,\n });\n\n const OptionBody = styled('div')({\n marginTop: 24,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: 16,\n fontSize: 16,\n fontWeight: 700,\n });\n\n return (\n \n \n Options\n \n \n \n Cas de test\n \n ({ value: item.name, label: item.name }))}\n onChangeValue={setOption}\n styles={{ root: { flex: 1 } }}\n placeholder=\"Sélectionner un cas de test\"\n />\n \n {\n options.hide();\n onValidate(testCases.find((c) => c.name === option)!);\n }}\n disabled={!option || option === selectedCase?.name}\n title=\"Valider\"\n styles={{ root: { width: '100%', marginTop: 24 } }}\n />\n \n \n \n \n );\n};\n\ntype SelectedTestCaseProps = { testCase?: TestCase; onCloseTest: VoidFunction };\nconst SelectedTestCase = ({ testCase, onCloseTest }: SelectedTestCaseProps) => {\n const Container = styled('div')({\n display: 'flex',\n width: '100%',\n marginBottom: 16,\n justifyContent: 'center',\n fontSize: 18,\n alignItems: 'center',\n });\n const Name = styled('span')({ fontWeight: 800, marginLeft: 2 });\n\n return !testCase ? null : (\n \n Cas de test :{testCase.name}\n \n \n \n \n );\n};\n\n//#endregion\n\nconst ButtonClose = ({ onClick, style }: HTMLAttributes) => {\n const IconClose = () => {\n return (\n \n \n \n \n );\n };\n return (\n \n \n \n );\n};\n","import React from 'react';\n\nimport { useDebugContext } from '../../../../../Web/Context/Debug/DebugContext';\nimport { Toast } from '../../../../../Web/Services/ToastService';\nimport { useMapContext } from '../../../Context/MapContext';\nimport { LaizeCalculatorResult } from '../Laize';\nimport { LaizeV3DebugDialog } from './LaizeV3DebugDialog';\n\nexport enum LaizeDebugRequest {\n Debug = 'LaizeDebug',\n\n Horizontal = 'LaizeDebugHorizontal',\n Vertical = 'LaizeDebugVertical',\n\n TopToBottom = 'LaizeDebugTopToBottom',\n BottomToTop = 'LaizeDebugBottomToTop',\n LeftToRight = 'LaizeDebugLeftToRight',\n RightToLeft = 'LaizeDebugRightToLeft',\n}\n\nexport type LaizeDebugController = {\n show?: boolean;\n laizeDebugResult?: Array;\n clear: (params?: LaizeDebugParams) => void;\n\n laizeDebugDialog: (params?: LaizeDebugParams) => void;\n openLaizeDialog: boolean;\n\n LaizeDebugDialogV3: React.ComponentType;\n\n menuOpened?: boolean;\n closeMenu: () => void;\n openMenu: () => void;\n\n closeDebug: () => void;\n showDebugControl?: boolean;\n};\n\nexport type LaizeDebugParams = { showToast?: boolean };\n\nexport const useLaizeDebugController = (): LaizeDebugController => {\n const debugContext = useDebugContext();\n const [showDebugControl, setShowDebug] = React.useState(false);\n const [menuOpened, setMenuOpen] = React.useState(false);\n\n const openMenu = () => setMenuOpen(true);\n const closeMenu = () => setMenuOpen(false);\n\n const [openLaizeDialog, setOpenLaizeDialog] = React.useState(false);\n const map = useMapContext();\n\n const { rooms = [], laizeDebugResults = [] } = map.state;\n const show = Boolean(rooms?.length) && (Boolean(laizeDebugResults.length) || Boolean(openLaizeDialog));\n\n React.useEffect(() => {\n if (show && !showDebugControl) {\n setShowDebug(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [show]);\n\n const closeDebug = () => {\n setShowDebug(false);\n setMenuOpen(false);\n debugContext.update({ floorPlanLaizeTraceEnabled: false });\n map.update({\n values: { laizeDebugResults: [] },\n logs: { event: 'useLaizeDebugController closeDebug' },\n });\n };\n\n const clear = ({ showToast }: LaizeDebugParams = {}) => {\n map.update({\n values: { laizeDebugResults: [] },\n logs: { event: 'useLaizeDebugController clear', showToast },\n });\n setOpenLaizeDialog(false);\n if (showToast) {\n Toast.showInfo({ title: 'DEBUG CALCUL EN LÉS', content: 'RÉINITIALIZATION' });\n }\n };\n\n const laizeDebugDialog = (params: LaizeDebugParams = {}) => {\n clear(params);\n setOpenLaizeDialog(true);\n };\n\n const LaizeDebugDialogV3 = () => ;\n\n return {\n show,\n laizeDebugResult: map.state.laizeDebugResults,\n clear,\n\n openLaizeDialog,\n laizeDebugDialog,\n\n LaizeDebugDialogV3,\n\n menuOpened,\n openMenu,\n closeMenu,\n\n showDebugControl,\n closeDebug,\n };\n};\n","import React from 'react';\n\nimport { LaizeDebugController, LaizeDebugParams, useLaizeDebugController } from './LaizeDebugController';\n\ntype LaizeDebugContextValue = { laizeDebug: LaizeDebugController };\nexport const LaizeDebugContext = React.createContext({\n laizeDebug: {\n clear: () => {},\n laizeDebugDialog: () => {},\n openLaizeDialog: false,\n\n LaizeDebugDialogV3: () => null,\n\n openMenu: () => {},\n closeMenu: () => {},\n closeDebug: () => {},\n },\n});\n\nexport const useLaizeDebug = () => React.useContext(LaizeDebugContext);\n\nlet map: Array = [];\n\nexport const LaizeDebugProvider: React.FC = ({ children }) => {\n const laizeDebug = useLaizeDebugController();\n\n const keyboardShortcuts = (map: Array) => {\n const debugKey = map[0];\n const debugMode = map[1];\n const params: LaizeDebugParams = { showToast: true };\n if (debugKey === 'KeyD') {\n switch (debugMode) {\n case 'Digit0':\n case 'Numpad0':\n //* reset calcul direction\n laizeDebug.clear(params);\n break;\n case 'Digit8':\n case 'Numpad8':\n //* calcul direction droite vers gauche\n laizeDebug.laizeDebugDialog();\n break;\n default:\n break;\n }\n }\n };\n\n const debugKeyUp = (e: KeyboardEvent) => (map = map.filter((x) => x !== e.code));\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (map.indexOf(e.code) === -1) {\n map.push(e.code);\n } else if (map.length === 2) {\n map[1] = e.code;\n }\n keyboardShortcuts(map);\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', onKeyDown);\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.useEffect(() => {\n document.addEventListener('keyup', debugKeyUp);\n return () => {\n document.removeEventListener('keyup', debugKeyUp);\n };\n }, []);\n\n return (\n \n {children}\n {laizeDebug.openLaizeDialog && }\n \n );\n};\n","import React from 'react';\n\nimport { ProduitDto } from '../../../../../Models/Questions/ProduitDto';\nimport { useViewState } from '../../../../../Web/Hooks/ViewState/ViewState';\nimport { MapContextState, useMapContext } from '../../../Context/MapContext';\nimport { IOpening } from '../../../Models/IOpening';\nimport { IRoom, RoomType } from '../../../Models/IRoom';\nimport { IRoomItem } from '../../../Models/IRoomItem';\nimport { Wall } from '../../../Utils/Types';\nimport { LaizeCalculatorResult, LaizeProps, ProductType } from '../Laize';\nimport { CalculLaizeParams, FlooringDirectionByRoomId, LaizeCalc } from '../LaizeCalc';\nimport { LaizeBandItemV3 } from '../v3/LaizeBandTrace';\nimport { LaizeV3 } from '../v3/LaizeV3';\n\ntype MapInputs = Partial<{\n walls: Wall[];\n rooms: IRoom[];\n openings: IOpening[];\n roomItems: IRoomItem[];\n laizeProps?: LaizeProps[];\n}>;\n\ntype LaizeCalcDialogValue = {\n laizeResult?: LaizeCalculatorResult;\n\n state: LaizeCalcDialogState;\n update: (values: LaizeCalcDialogState) => void;\n\n bandsFocused?: LaizeBandItemV3[];\n setBandsFocused: (bands?: LaizeBandItemV3[]) => void;\n\n bandMosaicFocused?: number;\n setBandMosaicFocused: (bandId?: number) => void;\n};\nconst LaizeCalcDialogContext = React.createContext({\n state: toLaizeCalcDialogState({}),\n update: () => {},\n setBandsFocused: () => {},\n setBandMosaicFocused: () => {},\n});\nexport const useLaizeCalcDialog = () => React.useContext(LaizeCalcDialogContext);\nexport const useLaizeCalcDialogState = () => React.useContext(LaizeCalcDialogContext).state;\nexport const useLaizeCalcDialogUpdate = () => React.useContext(LaizeCalcDialogContext).update;\n\ntype LaizeCalcDialogState = Partial<{\n mapInputs: MapInputs;\n\n showParams: boolean;\n\n roomType?: RoomType;\n rooms: IRoom[];\n openings: IOpening[];\n roomItems: IRoomItem[];\n\n produit: ProduitDto;\n productType?: ProductType;\n flooringDirectionByRoomId: FlooringDirectionByRoomId;\n\n //* EDITOR PARAMS\n laizeProps: LaizeProps;\n iteration: number;\n rotationAngle: number;\n bandWidth: number;\n longueurCm: number;\n raccordLength: number;\n laizeMargin: number;\n motifLength: number;\n motifWidth: number;\n laizeConsecutiveBandsMargin: number;\n}>;\n\nexport const LaizeCalcDialogProvider = ({ children }: React.PropsWithChildren<{}>) => {\n const originalMap = useMapContext().state;\n\n const [bandsFocused, setBandsFocused] = React.useState();\n const [bandMosaicFocused, setBandMosaicFocused] = React.useState();\n const [laizeResult, setLaizeResult] = React.useState();\n const { state, getState, update } = useViewState(toLaizeCalcDialogState(originalMap));\n\n React.useEffect(() => {\n const { laizeProps = {}, rooms = [], openings = [], roomItems = [] } = getState();\n const laizeCalcProps = LaizeCalc.toLaizeCalcProps(laizeProps);\n laizeCalcProps.BAND_WIDTH = state.bandWidth || laizeCalcProps.BAND_WIDTH;\n laizeCalcProps.LAIZE_MARGIN = state.laizeMargin || laizeCalcProps.LAIZE_MARGIN;\n laizeCalcProps.RACCORD_SIZE = state.raccordLength || laizeCalcProps.RACCORD_SIZE;\n laizeCalcProps.MARGIN_WIDTH = state.motifWidth || laizeCalcProps.MARGIN_WIDTH;\n laizeCalcProps.MARGIN_LENGTH = state.motifLength || laizeCalcProps.MARGIN_LENGTH;\n laizeCalcProps.LAIZE_CONSECUTIVE_BANDS_MARGIN =\n state.laizeConsecutiveBandsMargin || laizeCalcProps.LAIZE_CONSECUTIVE_BANDS_MARGIN;\n laizeCalcProps.LONGUEUR_CM = state.longueurCm || laizeCalcProps.LONGUEUR_CM;\n laizeCalcProps.TYPE = state.productType || laizeCalcProps.TYPE;\n\n const params: CalculLaizeParams = {\n laizeCalcProps,\n rooms,\n openings,\n roomItems,\n walls: originalMap.walls || [],\n flooringDirectionByRoomId: state.flooringDirectionByRoomId,\n };\n\n const logName = 'from LaizeCalcDialogProvider';\n const laizeResult = LaizeV3.calculLaizeV3({\n ...params,\n iteration: state.iteration,\n logName,\n requestedBy: 'LaizeCalcDialogProvider',\n });\n\n const iteration = toCurrentIteration(state.iteration!, laizeResult);\n if (state.iteration !== iteration) {\n update({ iteration });\n }\n\n setLaizeResult(laizeResult);\n }, [state]);\n\n return (\n \n {children}\n \n );\n};\n\nfunction toLaizeCalcDialogState(map: MapContextState): LaizeCalcDialogState {\n const { laizeProps = [], rooms = [], openings = [], roomItems = [] } = map;\n\n const roomType = RoomType.Sol;\n const solRooms = rooms.filter((r) => r.type === roomType);\n const laizePropsSol = laizeProps.filter((lp) =>\n lp.roomIds?.some((roomId) => solRooms.map((r) => r.roomId!).includes(roomId))\n );\n const laizePropsToUse = laizePropsSol[0];\n const roomsToUse = solRooms.filter((r) => laizePropsToUse.roomIds?.some((x) => x === r.roomId));\n const openingsToUse = openings.filter((o) => roomsToUse.some((r) => r.roomId === o.roomId));\n const roomItemsToUse = roomItems.filter((ri) => roomsToUse.some((r) => r.roomId === ri.roomId));\n const LAIZE_MARGIN = laizePropsToUse?.type === ProductType.Rouleau ? 10 : 0;\n const LAIZE_CONSECUTIVE_BANDS_MARGIN = laizePropsToUse?.type === ProductType.Rouleau ? 10 : 0;\n\n return {\n mapInputs: {\n laizeProps: laizeProps,\n walls: map.walls || [],\n rooms: map.rooms || [],\n openings: map.openings || [],\n roomItems: map.roomItems || [],\n },\n roomType,\n rooms: roomsToUse,\n openings: openingsToUse,\n roomItems: roomItemsToUse,\n\n iteration: 0,\n rotationAngle: 0,\n\n laizeProps: laizePropsToUse,\n bandWidth: laizePropsToUse?.largeurCm,\n laizeMargin: LAIZE_MARGIN,\n raccordLength: laizePropsToUse?.raccordCm,\n motifWidth: laizePropsToUse?.largeurMarginCm,\n motifLength: laizePropsToUse?.longueurMarginCm,\n longueurCm: laizePropsToUse?.longueurCm,\n laizeConsecutiveBandsMargin: LAIZE_CONSECUTIVE_BANDS_MARGIN,\n flooringDirectionByRoomId: LaizeCalc.getFlooringDirectionByRoomId(roomsToUse),\n produit: laizePropsToUse?.produit,\n productType: laizePropsToUse?.type || ProductType.Rouleau,\n };\n}\n\nfunction toCurrentIteration(stateIteration: number, laizeResult?: LaizeCalculatorResult) {\n if (laizeResult && stateIteration > laizeResult.roomsBandsDetailsContiguous.length) {\n const iteration = laizeResult.roomsBandsDetailsContiguous.length;\n return iteration;\n }\n return stateIteration;\n}\n\nexport function updateRoomsFlooringDirection(\n mapRooms: IRoom[] = [],\n flooringDirectionByRoomId: FlooringDirectionByRoomId = {}\n) {\n return mapRooms.map((mapRoom) => {\n const flooringDirection = flooringDirectionByRoomId[mapRoom.roomId!];\n if (Boolean(flooringDirection) && mapRoom.flooringDirection !== flooringDirection) {\n mapRoom.flooringDirection = flooringDirection;\n }\n return mapRoom;\n });\n}\n","import React from 'react';\n\nimport { IRoom, RoomShape } from '../../../../Models/IRoom';\nimport { RoomMove } from '../../../../Utils/Room/RoomMove';\nimport { CoordPoint } from '../../../../Utils/Types';\nimport { FlooringDirection } from '../../Laize';\nimport { useLaizeCalcDialogState } from '../LaizeCalcDialogProvider';\nimport { ProductHelper } from '../../../../../../Helpers/ProductHelper';\n\nexport const formatPoint = (coord: CoordPoint) => `${coord.x},${coord.y}`;\n\nexport const MapUIWalls = () => {\n const { rooms = [] } = useLaizeCalcDialogState();\n return (\n \n {rooms.map((room) => (\n \n ))}\n \n );\n};\n\nconst MapUIRoomWalls = (room: IRoom) => {\n const allPointsPoints = room.walls?.map((w) => formatPoint(w.start)).join(' ');\n const wall = room.walls![0]!;\n const points = `${allPointsPoints} ${formatPoint(wall.start)}`;\n\n const isInLaize = isInLaizeCalc(room);\n const props: React.SVGProps = {\n id: RoomMove.roomWallsId(wall.roomId!),\n points,\n strokeWidth: 1,\n stroke: isInLaize ? '#13123A' : 'rgba(19, 18, 58, 0.3)',\n fill: isInLaize ? '#FFFFFF' : 'rgba(255, 255, 255, 0.3)',\n };\n\n return ;\n};\n\nexport type SvgGraphProps = React.SVGProps & { isPolygon: boolean };\nconst WallSvg = ({ isPolygon, ...props }: SvgGraphProps) => {\n return isPolygon ? : ;\n};\n\nexport const isInLaizeCalc = (room: IRoom) => {\n const productType = ProductHelper.getProductType(room.questionProduitPrincipal?.produitValue);\n return (\n productType &&\n room.flooringDirection &&\n ![FlooringDirection.ClassiqueHorizontal, FlooringDirection.ClassiqueVertical].includes(room.flooringDirection!)\n );\n};\n","import { ProduitDto } from '../../../../Models/Questions/ProduitDto';\nimport { CoordPoint } from '../../Utils/Types';\nimport { LaizeBandItemV3 } from './v3/LaizeBandTrace';\nimport { CalculateOptimalBandsLayoutParams, RoomGroupDebug } from './v3/LaizeV3';\n\nexport enum FlooringDirection {\n //* Laize Directions\n LaizeVertical = 'LaizeVertical',\n LaizeHorizontal = 'LaizeHorizontal',\n\n //* LamePleine Directions\n LameVertical = 'LameVertical',\n LameHorizontal = 'LameHorizontal',\n //* Lame Optimisé Directions\n ClassiqueVertical = 'ClassiqueVertical',\n ClassiqueHorizontal = 'ClassiqueHorizontal',\n}\n\nexport enum LaizeDirection {\n Vertical = 'vertical',\n Horizontal = 'horizontal',\n Classique = 'classique',\n None = 'non', //!DANS LES EVALUATIONS depuis le BO\n}\n\nexport enum ProductType {\n LamePleine = 'lamePleine',\n Rouleau = 'rouleau',\n}\n\nexport enum BandType {\n New = 'band-new',\n Reused = 'band-reused',\n Reusable = 'band-reusable',\n NewPotential = \"band-new-potential\",\n SurfaceCovered = \"surface-covered\",\n SurfaceCoveredPotential = \"surface-covered-potential\",\n}\n\nexport enum Direction {\n LeftToRight = 'leftToRight',\n RightToLeft = 'rightToLeft',\n}\n\nexport interface LaizeProps {\n produit?: ProduitDto;\n productCode?: string;\n type?: ProductType;\n\n largeurCm?: number;\n longueurCm?: number;\n raccordCm?: number;\n largeurMarginCm?: number;\n longueurMarginCm?: number;\n\n //! V3\n roomIds?: Array;\n}\n\nexport const DEFAULT_LAIZE_PROPS: LaizeProps = {\n productCode: '',\n type: undefined,\n largeurCm: 100,\n longueurCm: 500,\n raccordCm: 0,\n largeurMarginCm: 0,\n longueurMarginCm: 0,\n roomIds: [],\n};\n\nexport type LaizeBand = {\n id: number;\n length: number;\n leftOverUsed?: boolean;\n\n //!v3\n roomId?: string;\n leftOverCoords?: CoordPoint[][];\n surfaceCoveredCoords?: CoordPoint[];\n};\n\nexport type LaizeResult = {\n laizes?: Array; //* Bandes utilisées\n // horizontal?: number; //* Total ML (ou nombres de lames) dans le sens horizontal\n // vertical?: number; //* Total ML (ou nombres de lames) dans le sens vertical\n\n calculator?: LaizeCalculatorResult; //* Résultat du calculateur\n\n roomIds?: Array; //* RoomIds used in the laize computer\n productCode?: string; //* ProductCode used in the laize computer\n result?: number;\n roomsRaccordLength?: Array;\n\n /**\n * Flooring direction used in the laize computer by roomId.\n * Comes from the vendor's choice or this rule:\n * - If the product is a rouleau, calculate the cheapest direction.\n * - If the product is a lame pleine, force the direction to \"optimisation des lames horizontales\"\n */\n flooringDirectionByRoomId?: { [roomId: string]: FlooringDirection };\n\n /**\n * List of possible flooring directions by roomId.\n * For rouleau: [LaizeDirection.Horizontal, LaizeDirection.Vertical]\n * For lame pleine: [FlooringDirection.ClassiqueHorizontal, FlooringDirection.ClassiqueVertical]\n * + FlooringDirection.LameHorizontal if possible\n * + FlooringDirection.LameVertical if possible\n */\n possibleFlooringDirectionByRoomId?: { [roomId: string]: FlooringDirection[] };\n};\n\nexport type LaizeRoomRaccord = { roomId: string; length: number; direction: string };\n\nexport type LaizeBandDetails = {\n roomId: string;\n bands: Array;\n leftOverBandHasBeenReusedInThisRoom?: boolean;\n};\n\nexport type LaizeCalculatorResult = {\n isPossible: boolean;\n\n laizeResult: number;\n\n roomsRaccordLength: Array;\n roomsBandsLength: Array;\n roomsBandsDetails: Array;\n roomsBandsDetailsContiguous: Array;\n\n //!ONLY TO TRACE IN MAP\n requestedBy?: string;\n bands_v3?: Array;\n iteration?: number;\n\n /**\n * Flooring direction used in the laize computer by roomId.\n * Comes from the vendor's choice or this rule:\n * - If the product is a rouleau, calculate the cheapest direction.\n * - If the product is a lame pleine, force the direction to \"optimisation des lames horizontales\"\n */\n flooringDirectionByRoomId?: { [roomId: string]: FlooringDirection };\n\n /**\n * List of possible flooring directions by roomId.\n * For rouleau: [LaizeDirection.Horizontal, LaizeDirection.Vertical]\n * For lame pleine: [FlooringDirection.ClassiqueHorizontal, FlooringDirection.ClassiqueVertical]\n * + FlooringDirection.LameHorizontal if possible\n * + FlooringDirection.LameVertical if possible\n */\n possibleFlooringDirectionByRoomId?: { [roomId: string]: FlooringDirection[] };\n\n roomGroupsDebug?: RoomGroupDebug[];\n\n params?: CalculateOptimalBandsLayoutParams;\n};\n","import * as _ from 'lodash';\n\nimport { YesOrNo } from '../../Models/IMapItem';\nimport { IOpening } from '../../Models/IOpening';\nimport { IRoom } from '../../Models/IRoom';\nimport { IRoomItem } from '../../Models/IRoomItem';\nimport { CoordPoint, Wall } from '../../Utils/Types';\nimport { FlooringDirection, LaizeCalculatorResult, LaizeDirection, LaizeProps, ProductType } from './Laize';\nimport { CalculateOptimalBandsLayoutParams, LaizeV3 } from './v3/LaizeV3';\n\n//[roomId: string]: FlooringDirection|FlooringDirection\nexport type FlooringDirectionByRoomId = Record;\n\nexport type ILaizeRoom = {\n roomId?: string;\n rotationAngle?: number;\n flooringDirection?: FlooringDirection;\n coords?: Array;\n walls?: Array;\n};\n\nexport type ILaizeOpening = {\n openingId?: string;\n angle?: number;\n limit?: Array;\n x?: number;\n y?: number;\n roomId?: string;\n size?: number;\n};\n\nexport type ILaizeRoomItem = {\n roomId?: string;\n coordsReal?: Array;\n putFlooring?: YesOrNo;\n};\n\nexport type ILaizeWall = {\n roomId?: string;\n start: CoordPoint;\n end: CoordPoint;\n};\n\nexport type CalculLaizeParams = {\n laizeCalcProps: LaizeCalcProps;\n\n rooms: Array;\n openings: Array;\n roomItems: Array;\n walls: Array;\n\n forcedGlobalDirection?: LaizeDirection;\n logName?: string;\n requestedBy?: string;\n\n iteration?: number;\n\n flooringDirectionByRoomId?: FlooringDirectionByRoomId;\n};\n\nexport type LaizeCalcProps = {\n LAIZE_PROPS: LaizeProps;\n\n TYPE?: ProductType;\n LAIZE_MARGIN: number;\n LAIZE_CONSECUTIVE_BANDS_MARGIN: number;\n\n RACCORD_SIZE: number;\n MARGIN_LENGTH: number;\n MARGIN_WIDTH: number;\n BAND_WIDTH: number;\n LONGUEUR_CM: number;\n};\n\nexport class LaizeCalc {\n public static calculLaize(params: CalculLaizeParams): LaizeCalculatorResult | undefined {\n return LaizeV3.calculLaizeV3({ ...params });\n }\n\n public static checkIfLaizeNotComputable(laizeProps: LaizeProps) {\n const laizeRelevantProps = {\n largeurCm: laizeProps?.largeurCm,\n longueurCm: laizeProps?.longueurCm,\n raccordCm: laizeProps?.raccordCm,\n largeurMarginCm: laizeProps?.largeurMarginCm,\n longueurMarginCm: laizeProps?.longueurMarginCm,\n };\n\n return _.isEqual(laizeRelevantProps, {\n largeurCm: 0,\n longueurCm: 0,\n raccordCm: 0,\n largeurMarginCm: 0,\n longueurMarginCm: 0,\n });\n }\n\n public static toLaizeCalcProps = (laizeProps: LaizeProps): LaizeCalcProps => {\n return {\n LAIZE_PROPS: laizeProps,\n\n //* use in v2\n TYPE: laizeProps?.type,\n\n LAIZE_CONSECUTIVE_BANDS_MARGIN: laizeProps?.type === ProductType.Rouleau ? 10 : 0,\n LAIZE_MARGIN: laizeProps?.type === ProductType.Rouleau ? 10 : 0,\n\n RACCORD_SIZE: (laizeProps?.type === ProductType.Rouleau ? laizeProps.raccordCm : 0) || 0,\n MARGIN_LENGTH: (laizeProps?.type === ProductType.Rouleau ? laizeProps.longueurMarginCm : 0) || 0,\n MARGIN_WIDTH: (laizeProps?.type === ProductType.Rouleau ? laizeProps.largeurMarginCm : 0) || 0,\n BAND_WIDTH: laizeProps.largeurCm || 400,\n LONGUEUR_CM: laizeProps.longueurCm || 50_000,\n };\n };\n\n public static toCalculateOptimalBandsLayoutParams = (\n laizeParams: CalculLaizeParams\n ): CalculateOptimalBandsLayoutParams => {\n const { laizeCalcProps, openings, roomItems, rooms, walls } = laizeParams;\n const laizeOpenings = openings.map(\n (x) =>\n ({\n roomId: x.roomId!,\n angle: x.angle,\n limit: x.limit,\n openingId: x.openingId,\n size: x.size,\n x: x.x,\n y: x.y,\n } as ILaizeOpening)\n );\n const laizeRoomItems = roomItems.map(\n (x) =>\n ({\n roomId: x.roomId!,\n coordsReal: x.coordsReal,\n putFlooring: x.putFlooring,\n } as ILaizeRoomItem)\n );\n const convertWalls = (walls?: Array) =>\n walls?.map(\n (x) =>\n ({\n roomId: x.roomId!,\n start: x.start,\n end: x.end,\n } as ILaizeWall)\n ) ?? [];\n const laizeWalls = convertWalls(walls);\n const laizeRooms = rooms.map(\n (x) =>\n ({\n coords: x.coords,\n flooringDirection: x.flooringDirection,\n roomId: x.roomId,\n rotationAngle: x.rotationAngle,\n walls: convertWalls(x.walls),\n } as ILaizeRoom)\n );\n return {\n laizeCalcProps,\n openings: laizeOpenings,\n roomItems: laizeRoomItems,\n rooms: laizeRooms,\n walls: laizeWalls,\n };\n };\n\n public static getFlooringDirectionByRoomId = (rooms: Array) => {\n return rooms.reduce((acc, room) => {\n if (room.flooringDirection) acc[room.roomId!] = room.flooringDirection;\n return acc;\n }, {} as { [roomId: string]: FlooringDirection | undefined });\n };\n}\n","import { JstsPolygon, JstsUtils } from '../../../Utils/JstsUtils';\nimport { PointUtils } from '../../../Utils/PointUtils';\nimport { CoordPoint } from '../../../Utils/Types';\nimport { Direction } from '../Laize';\n\ntype GetBandIntersectionParams = {\n surfacePoly: JstsPolygon;\n bandWidth: number;\n direction: Direction;\n widthMargin: number;\n horizontalMargin: number;\n};\nexport type IntersectionResult = {\n intersection: JstsPolygon;\n xRealBandStart: number;\n xRealBandEnd: number;\n xSurfaceStart: number;\n xSurfaceEnd: number;\n};\nexport type GetBandsParams = { intersectionResult: IntersectionResult; verticalMargin: number };\nexport type GetBandDimens = { band: Array };\n\nexport type LaizeBandList = {\n effectiveBand: Array;\n realBand: Array;\n};\nexport type LaizeBandDimensions = { width: number; height: number };\nexport class LaizeBands {\n public static getBandIntersection({\n surfacePoly,\n bandWidth,\n direction,\n widthMargin,\n horizontalMargin,\n }: GetBandIntersectionParams): IntersectionResult {\n const surfaceCoords = surfacePoly.getCoordinates();\n const surfaceBoundingBox = PointUtils.calculateBoundingBox({ points: surfaceCoords })!;\n\n const xSurfaceStart =\n direction === Direction.LeftToRight\n ? surfaceBoundingBox.xMin - horizontalMargin\n : surfaceBoundingBox.xMax + horizontalMargin;\n const surfaceWidth = bandWidth - widthMargin;\n const xSurfaceEnd =\n direction === Direction.LeftToRight ? xSurfaceStart + surfaceWidth : xSurfaceStart - surfaceWidth;\n\n const realBandXOffset = widthMargin / 2;\n const xRealBandStart =\n direction === Direction.LeftToRight ? xSurfaceStart - realBandXOffset : xSurfaceStart + realBandXOffset;\n const xRealBandEnd =\n direction === Direction.LeftToRight ? xRealBandStart + bandWidth : xRealBandStart - bandWidth;\n\n const encompassingBandCoords = [\n { x: xSurfaceStart, y: surfaceBoundingBox.yMin },\n { x: xSurfaceEnd, y: surfaceBoundingBox.yMin },\n { x: xSurfaceEnd, y: surfaceBoundingBox.yMax },\n { x: xSurfaceStart, y: surfaceBoundingBox.yMax },\n ];\n\n const encompassingBandGeometry = JstsUtils.createJstsPolygon(encompassingBandCoords, true);\n const intersection = surfacePoly.intersection(encompassingBandGeometry).buffer(0);\n\n return {\n xRealBandStart,\n xRealBandEnd,\n xSurfaceStart,\n xSurfaceEnd,\n intersection,\n };\n }\n\n public static getBands({ intersectionResult, verticalMargin }: GetBandsParams): LaizeBandList {\n const intersectionCoords = PointUtils.getMultiPolyCoords(intersectionResult.intersection);\n\n const minY = Math.min(...intersectionCoords.map((p) => p.y));\n const maxY = Math.max(...intersectionCoords.map((p) => p.y));\n\n const xRealBandStart = intersectionResult.xRealBandStart;\n const xRealBandEnd = intersectionResult.xRealBandEnd;\n\n const xSurfaceStart = intersectionResult.xSurfaceStart;\n const xSurfaceEnd = intersectionResult.xSurfaceEnd;\n\n const yBandStart = minY - verticalMargin / 2;\n const yBandEnd = maxY + verticalMargin / 2;\n\n return {\n effectiveBand: [\n { x: xSurfaceStart, y: yBandStart },\n { x: xSurfaceEnd, y: yBandStart },\n { x: xSurfaceEnd, y: yBandEnd },\n { x: xSurfaceStart, y: yBandEnd },\n ],\n realBand: [\n { x: xRealBandStart, y: yBandStart },\n { x: xRealBandEnd, y: yBandStart },\n { x: xRealBandEnd, y: yBandEnd },\n { x: xRealBandStart, y: yBandEnd },\n ],\n };\n }\n\n public static getBandDimensions = (points: CoordPoint[]): LaizeBandDimensions => {\n return { width: LaizeBands.getBandWidth({ band: points }), height: LaizeBands.getBandHeight({ band: points }) };\n };\n\n public static getBandHeight = ({ band }: GetBandDimens) => {\n const yCoords = band.map((p) => p.y);\n const minY = Math.min(...yCoords);\n const maxY = Math.max(...yCoords);\n return maxY - minY;\n };\n\n public static getBandWidth = ({ band }: GetBandDimens) => {\n const xCoords = band.map((p) => p.x);\n const minX = Math.min(...xCoords);\n const maxX = Math.max(...xCoords);\n return maxX - minX;\n };\n}\n","import { IdGenerator } from '../../../Utils/IdGenerator';\nimport { CoordPoint } from '../../../Utils/Types';\nimport { BandType } from '../Laize';\nimport { LaizeOperation } from './LaizeSurfaces';\nimport { CALCULATOR_V3, LaizeResultItem } from './LaizeV3';\n\nexport type LaizeBandItemV3 = {\n id: string;\n points: CoordPoint[];\n pointsWithMargins?: CoordPoint[];\n bandHeight?: number;\n bandWidth?: number;\n reusedRelativePoints?: CoordPoint[];\n mainText?: string;\n color?: string;\n strokeWidth?: number;\n position: string;\n roomId: string;\n type: BandType;\n bandId?: number;\n surface?: number;\n leftAlignText?: boolean;\n fillColor?: string;\n displayText?: boolean;\n dashed?: boolean;\n};\n\ntype DrawLaizeResults = { laizeResults: Array; iteration?: number };\n\nexport class LaizeTrace {\n public static drawLaizeResults({ laizeResults, iteration }: DrawLaizeResults) {\n if (iteration === undefined) {\n iteration = laizeResults.length;\n }\n\n for (let i = 0; i < laizeResults.length && i < iteration; i++) {\n const laizeResultToDraw = laizeResults[i];\n const bandColor = laizeResultToDraw.leftOverUsed ? 'blue' : 'red';\n const bandText = laizeResultToDraw.leftOverUsed\n ? `${i + 1} - Chute réutilisée`\n : `${i + 1} - Nouvelle bande`;\n\n const type = laizeResultToDraw.leftOverUsed ? BandType.Reused : BandType.New;\n\n // bandId is used to get svg/png band images\n let bandId = i + 1;\n // Finding the bandId of the band from which the left-over used is from\n if (laizeResultToDraw.leftOverUsed) {\n const fromResult = laizeResults.find((x) => x.id === laizeResultToDraw.usedLeftOverId)!;\n bandId = fromResult.bandId!;\n }\n laizeResultToDraw.bandId = bandId;\n\n this.drawBand({\n id: IdGenerator.generate(),\n points: laizeResultToDraw.coveredSurfaceCoords,\n pointsWithMargins: laizeResultToDraw.laidBand,\n bandHeight: laizeResultToDraw.bandHeight,\n bandWidth: laizeResultToDraw.bandWidth,\n reusedRelativePoints: laizeResultToDraw.usedLeftOverCoords,\n mainText: bandText,\n color: bandColor,\n strokeWidth: 2,\n position: 'bottom',\n roomId: laizeResultToDraw.roomId,\n type,\n bandId,\n leftAlignText: true,\n displayText: true,\n dashed: true,\n });\n\n this.drawBand({\n id: IdGenerator.generate(),\n points: laizeResultToDraw.coveredSurfaceCoords,\n pointsWithMargins: laizeResultToDraw.leftOverResult?.surfaceCoveredWithMarginsCoords,\n bandHeight: laizeResultToDraw.bandHeight,\n bandWidth: laizeResultToDraw.bandWidth,\n color: 'DarkSlateGrey',\n strokeWidth: 2,\n position: 'top',\n roomId: laizeResultToDraw.roomId,\n bandId: laizeResultToDraw.bandId,\n type: BandType.SurfaceCovered,\n leftAlignText: true,\n fillColor: 'green',\n displayText: false,\n });\n\n if (laizeResultToDraw.leftOverResult?.leftOverCoords.length) {\n const leftOverBands = laizeResultToDraw.leftOverResult.leftOverCoords;\n\n leftOverBands.forEach((leftOverBand) => {\n this.drawBand({\n id: IdGenerator.generate(),\n points: leftOverBand,\n bandHeight: laizeResultToDraw.bandHeight,\n bandWidth: laizeResultToDraw.bandWidth,\n mainText: `Chute réutilisable`,\n color: 'purple',\n strokeWidth: 0.5,\n position: 'top',\n bandId: laizeResultToDraw.bandId,\n roomId: laizeResultToDraw.roomId,\n type: BandType.Reusable,\n leftAlignText: false,\n fillColor: 'purple',\n displayText: true,\n dashed: true,\n });\n });\n }\n }\n }\n\n public static displayPotentialOperations(operation: LaizeOperation, rotationAngle?: number) {\n // Draw left potential surface\n this.drawBand({\n id: IdGenerator.generate(),\n points: operation.surfaceCoords!,\n bandHeight: operation.bandHeight,\n bandWidth: operation.bandWidth,\n color: 'grey',\n strokeWidth: 1,\n position: 'top',\n roomId: operation.roomId!,\n type: BandType.SurfaceCoveredPotential,\n leftAlignText: true,\n fillColor: 'grey',\n displayText: false,\n });\n // Draw left potential band\n this.drawBand({\n id: IdGenerator.generate(),\n points: operation.realBand!,\n bandHeight: operation.bandHeight,\n bandWidth: operation.bandWidth,\n mainText: 'Bande potentielle',\n color: '#72bcd4',\n strokeWidth: 2,\n position: 'bottom',\n roomId: operation.roomId!,\n type: BandType.NewPotential,\n leftAlignText: true,\n displayText: rotationAngle === undefined,\n dashed: true,\n });\n }\n\n public static drawBand(item: LaizeBandItemV3) {\n CALCULATOR_V3.bandItems.push(item);\n\n // const {\n // points,\n // mainText = '',\n // color = 'red',\n // strokeWidth = 1,\n // position = 'top',\n // customWidth,\n // customHeight,\n // roomId,\n // type,\n // bandId,\n // surface,\n // leftAlignText = true,\n // fillColor,\n // displayText = true,\n // dashed = false,\n // } = item;\n\n // let bbox = PointUtils.calculateBoundingBox({ points })!;\n // let textPos = { x: leftAlignText ? bbox.xMin : bbox.xMax - 180, y: bbox.yMin + 15 };\n // let width = qSVG.measure({ x: bbox.xMin, y: bbox.yMin }, { x: bbox.xMax, y: bbox.yMin });\n // let height = qSVG.measure({ x: bbox.xMin, y: bbox.yMin }, { x: bbox.xMin, y: bbox.yMax });\n\n // customWidth = customWidth === undefined || isNaN(customWidth) ? width : customWidth;\n // customHeight = customHeight === undefined || isNaN(customHeight) ? height : customHeight;\n\n // let rotate = false;\n // position = rotate ? 'bottom' : position;\n\n // let groupBandWithDesc = qSVG.create('boxDebug', 'g', {\n // class: `room-${roomId}`,\n // });\n\n // let textWrapper = qSVG.create('none', 'g', {\n // class: `room-${roomId}`,\n // transform:\n // 'translate(' +\n // (textPos.x + (rotate ? 10 : 0)) +\n // ',' +\n // (textPos.y + (position === 'top' ? 0 : height)) +\n // ')' +\n // (rotate ? ' rotate(90)' : ''),\n // });\n\n // if (displayText) {\n // groupBandWithDesc.append(textWrapper);\n // }\n\n // let pointsStr = '';\n // let styled: CSSProperties = { color: color, fontSize: '16px', fontFamily: 'var(--fontFamilyAvenir)', textAnchor: 'start' };\n // qSVG.textOnDiv(\n // mainText,\n // { x: rotate ? 10 : 0, y: 2 },\n // styled,\n // 'debugTextTrace-' + textPos.x + ';' + textPos.y,\n // textWrapper,\n // { type }\n // );\n\n // const meter = MapConstants.meter;\n // if (!surface) {\n // var displayedWidth = Math.round((customWidth * 100) / meter);\n // var displayedHeight = Math.round((customHeight * 100) / meter);\n // var dimensionsText = `${displayedWidth}cm x ${displayedHeight}cm`;\n // qSVG.textOnDiv(\n // dimensionsText,\n // { x: rotate ? 10 : 0, y: 14 },\n // styled,\n // 'debugTextTrace-' + textPos.x + ';' + +textPos.y + '2',\n // textWrapper,\n // {\n // type: type,\n // 'text-content': 'dimension',\n // 'band-width': displayedWidth,\n // 'band-height': displayedHeight,\n // }\n // );\n // }\n\n // if (surface) {\n // let styledSurface: CSSProperties = {\n // color: 'black',\n // fontSize: '14px',\n // fontFamily: 'var(--fontFamilyAvenir)',\n // textAnchor: 'start',\n // fontWeight: 'bold',\n // };\n // var surfaceRounded = Math.round(surface / meter / 100);\n // var surfaceText = `Surface couverte : ${surfaceRounded}m2`;\n // qSVG.textOnDiv(\n // surfaceText,\n // { x: rotate ? 10 : 5, y: 20 },\n // styledSurface,\n // 'debugTextTrace-' + textPos.x + ';' + +textPos.y + '2',\n // textWrapper,\n // {\n // type,\n // }\n // );\n // }\n\n // for (const point of points) {\n // pointsStr += point.x + ',' + point.y + ' ';\n // }\n // fillColor = fillColor || 'none';\n // const opacity = fillColor !== 'none' ? 0.5 : 1;\n // let bandPolygon = qSVG.create('none', 'polygon', {\n // class: 'room-' + roomId,\n // type: type,\n // bandId: bandId,\n // points: pointsStr,\n // fill: fillColor,\n // stroke: color,\n // 'stroke-width': strokeWidth,\n // opacity: opacity,\n // 'stroke-dasharray': dashed ? '10,10' : '',\n // });\n\n // groupBandWithDesc.append(bandPolygon);\n }\n}\n","import * as _ from 'lodash';\n\nimport { JstsPolygon, JstsUtils } from '../../../Utils/JstsUtils';\nimport { PointUtils } from '../../../Utils/PointUtils';\nimport { CoordPoint, RotationParams } from '../../../Utils/Types';\nimport { Direction, ProductType } from '../Laize';\nimport { LaizeCalcProps } from '../LaizeCalc';\nimport { LaizeBands } from './LaizeBands';\n\ntype CalculateLeftOverParams = {\n laizeCalcProps: LaizeCalcProps;\n coveredSurfacePoly: JstsPolygon;\n bandCoords: Array;\n verticalMargin: number;\n horizontalMargin: number;\n laizeDirection: Direction;\n};\n\nexport type LaizeLeftOverItem = { id: string; leftOverPolygon: JstsPolygon, usedLeftOverCoords?: JstsPolygon; rotationParams?: RotationParams; };\nexport type UsableLeftOverItem = { leftOver: LaizeLeftOverItem; resultingLeftOverPoly: JstsPolygon; resultingUsedLeftOverPoly: JstsPolygon };\n\ntype BaseCalculateLeftOverParams = {\n laizeCalcProps: LaizeCalcProps;\n coveredSurfacePoly: JstsPolygon;\n bandSurfacePoly: JstsPolygon;\n verticalMargin: number;\n horizontalMargin: number;\n laizeDirection: Direction;\n};\n\ntype TryUsingLeftOverParams = { band: Array; leftOvers: Array };\n\ntype TestIfBandContainedInPolygonParams = { bandPoints: Array; polygon: JstsPolygon };\n\nexport type LeftOverResult = {\n leftOverCoords: Array>;\n surfaceCoveredCoords: Array;\n surfaceCoveredWithMarginsCoords: Array;\n};\n\nexport class LaizeLeftOver {\n /**\n * Calculates the left-over that may result when laying the given band.\n * Left-over happens when the band is wider or higher than the surface to cover's bounding box.\n */\n public static calculateLeftOver(props: CalculateLeftOverParams): LeftOverResult {\n const { laizeCalcProps, coveredSurfacePoly } = props;\n if (laizeCalcProps.TYPE === ProductType.Rouleau) {\n // const leftOverSurface = this.computeFromInflateHV(props);\n // const leftOverSurface = this.computeFromIntersection(props);\n const { leftOverSurface, surfaceCoveredWithMarginsCoords } = this.computeLaizeFromDensifiedPolygon(props);\n return this.filterLaizeLeftOver(leftOverSurface, laizeCalcProps, coveredSurfacePoly.getCoordinates(), surfaceCoveredWithMarginsCoords);\n } else {\n return this.computeLame(props);\n }\n }\n\n public static computeLame({\n laizeCalcProps,\n coveredSurfacePoly,\n bandCoords,\n }: CalculateLeftOverParams): LeftOverResult {\n const surfaceCoveredCoords = coveredSurfacePoly.getCoordinates();\n const surfaceCoverableBoundingBox = PointUtils.calculateBoundingBox({ points: surfaceCoveredCoords })!;\n const bandBoundingBox = PointUtils.calculateBoundingBox({ points: bandCoords })!;\n\n const xLeftOverStart = surfaceCoverableBoundingBox.xMin;\n const xLeftOverEnd = bandBoundingBox.xMax;\n const yLeftOverStart = surfaceCoverableBoundingBox.yMax;\n const ySurfaceCoveredStart = bandBoundingBox.yMin;\n const yLeftOverEnd = ySurfaceCoveredStart + laizeCalcProps.LONGUEUR_CM!;\n\n const leftOverCoords: Array = [\n { x: xLeftOverStart, y: yLeftOverStart },\n { x: xLeftOverEnd, y: yLeftOverStart },\n { x: xLeftOverEnd, y: yLeftOverEnd },\n { x: xLeftOverStart, y: yLeftOverEnd },\n ];\n\n const leftOverHeight = LaizeBands.getBandHeight({ band: leftOverCoords });\n\n if (leftOverHeight < laizeCalcProps.MARGIN_LENGTH) {\n return {\n leftOverCoords: [],\n surfaceCoveredCoords,\n surfaceCoveredWithMarginsCoords: surfaceCoveredCoords\n };\n }\n return {\n leftOverCoords: [leftOverCoords],\n surfaceCoveredCoords,\n surfaceCoveredWithMarginsCoords: surfaceCoveredCoords\n };\n }\n\n public static filterLaizeLeftOver(\n leftOverSurface: JstsPolygon,\n laizeCalcProps: LaizeCalcProps,\n surfaceCoveredCoords: Array,\n surfaceCoveredWithMarginsCoords: Array\n ): LeftOverResult {\n const leftOverSurfaces = Array();\n const numberOfLeftOver = leftOverSurface.getNumGeometries();\n if (numberOfLeftOver === 0) {\n return {\n leftOverCoords: [],\n surfaceCoveredCoords,\n surfaceCoveredWithMarginsCoords\n };\n } else {\n for (let i = 0; i < numberOfLeftOver; i++) {\n const leftOver = leftOverSurface.getGeometryN(i);\n if (leftOver.getArea() !== 0) {\n const width = LaizeBands.getBandWidth({ band: leftOver.getCoordinates() });\n if (width > laizeCalcProps.LAIZE_MARGIN) {\n leftOverSurfaces.push(leftOver);\n }\n }\n }\n\n return {\n leftOverCoords: leftOverSurfaces.map((leftOver) => leftOver.getCoordinates()),\n surfaceCoveredCoords,\n surfaceCoveredWithMarginsCoords\n };\n }\n }\n\n public static baseComputeLaizeFromDensifiedPolygon({\n laizeCalcProps,\n coveredSurfacePoly,\n bandSurfacePoly,\n verticalMargin,\n horizontalMargin,\n laizeDirection,\n }: BaseCalculateLeftOverParams): { leftOverSurface: JstsPolygon, surfaceCoveredWithMarginsCoords: CoordPoint[] } {\n const surfaceCoveredCoords = coveredSurfacePoly.getCoordinates();\n let horizontalVectorSign = laizeDirection === Direction.LeftToRight ? 1 : -1;\n\n const marginHDefault = laizeCalcProps.LAIZE_CONSECUTIVE_BANDS_MARGIN / 2;\n const marginH = horizontalVectorSign * marginHDefault;\n const marginHLarge = horizontalVectorSign * (horizontalMargin + marginHDefault);\n const marginV = verticalMargin / 2;\n\n let leftOverSurface = bandSurfacePoly;\n let step = laizeCalcProps.LAIZE_MARGIN;\n const densifyEdge = (startX: number, endX: number, startY: number, endY: number) => {\n const reduceLeftOver = (coords: Array) =>\n (leftOverSurface = leftOverSurface.difference(JstsUtils.createJstsPolygon(coords)));\n let currX: number = startX;\n let currY: number = startY;\n const shouldContinue = () =>\n ((startX < endX ? currX < endX : currX > endX) || (startY < endY ? currY < endY : currY > endY)) && step > 0;\n do {\n // eslint-disable-next-line no-loop-func\n const coords = _.cloneDeep(surfaceCoveredCoords).map(c => PointUtils.translation(c, { x: currX, y: currY }));\n reduceLeftOver(coords);\n\n currX += step * (startX === endX ? 0 : startX < endX ? 1 : -1);\n currY += step * (startY === endY ? 0 : startY < endY ? 1 : -1);\n } while (shouldContinue());\n const coords = _.cloneDeep(surfaceCoveredCoords).map(c => PointUtils.translation(c, { x: endX, y: endY }));\n reduceLeftOver(coords);\n };\n //TOP\n densifyEdge(-marginHLarge, marginH, -marginV, -marginV);\n //RIGHT\n densifyEdge(marginH, marginH, -marginV, marginV);\n //BOTTOM\n densifyEdge(marginH, -marginHLarge, marginV, marginV);\n //LEFT\n densifyEdge(-marginHLarge, -marginHLarge, marginV, -marginV);\n\n const surfaceCoveredWithMargin = bandSurfacePoly.difference(leftOverSurface).buffer(0);\n\n return { leftOverSurface, surfaceCoveredWithMarginsCoords: surfaceCoveredWithMargin.getCoordinates() };\n }\n\n public static computeLaizeFromDensifiedPolygon(params: CalculateLeftOverParams): { leftOverSurface: JstsPolygon, surfaceCoveredWithMarginsCoords: CoordPoint[] } {\n const { bandCoords } = params;\n const bandBoundingBox = PointUtils.calculateBoundingBox({ points: bandCoords })!;\n const bandSurfacePoly = JstsUtils.createJstsPolygonFromBoundingBox(bandBoundingBox);\n return LaizeLeftOver.baseComputeLaizeFromDensifiedPolygon({ bandSurfacePoly, ...params });\n }\n\n public static computeLaidLaizeFromDensifiedPolygon(params: CalculateLeftOverParams): JstsPolygon {\n const { bandCoords } = params;\n const bandBoundingBox = PointUtils.calculateBoundingBox({ points: bandCoords })!;\n const bandSurfacePoly = JstsUtils.createJstsPolygonFromBoundingBox(bandBoundingBox);\n const { leftOverSurface } = LaizeLeftOver.computeLaizeFromDensifiedPolygon(params);\n const laidLaizeSurface = bandSurfacePoly.difference(leftOverSurface);\n return laidLaizeSurface;\n }\n\n public static computeLaizeFromIntersection({\n laizeCalcProps,\n coveredSurfacePoly,\n bandCoords,\n verticalMargin,\n horizontalMargin,\n laizeDirection,\n }: CalculateLeftOverParams): JstsPolygon {\n const surfaceCoveredCoords = coveredSurfacePoly.getCoordinates();\n const bandBoundingBox = PointUtils.calculateBoundingBox({ points: bandCoords })!;\n let horizontalVectorSign: number = 1;\n switch (laizeDirection) {\n case 'leftToRight':\n horizontalVectorSign = 1;\n break;\n case 'rightToLeft':\n horizontalVectorSign = -1;\n break;\n }\n const horizontalDefaultMargin = horizontalVectorSign * (laizeCalcProps.LAIZE_MARGIN / 2);\n const horizontalLeftMargin = horizontalVectorSign * (horizontalMargin + horizontalDefaultMargin);\n const verticalDefaultMargin = verticalMargin / 2;\n const topRight = _.cloneDeep(surfaceCoveredCoords).map((c) =>\n PointUtils.translation(c, { x: horizontalDefaultMargin, y: -verticalDefaultMargin })\n );\n const topLeft = _.cloneDeep(surfaceCoveredCoords).map((c) =>\n PointUtils.translation(c, { x: -horizontalLeftMargin, y: -verticalDefaultMargin })\n );\n const bottomRight = _.cloneDeep(surfaceCoveredCoords).map((c) =>\n PointUtils.translation(c, { x: horizontalDefaultMargin, y: verticalDefaultMargin })\n );\n const bottomLeft = _.cloneDeep(surfaceCoveredCoords).map((c) =>\n PointUtils.translation(c, { x: -horizontalLeftMargin, y: verticalDefaultMargin })\n );\n const bandSurfacePoly = JstsUtils.createJstsPolygonFromBoundingBox(bandBoundingBox);\n\n const topRightOver = bandSurfacePoly.difference(JstsUtils.createJstsPolygon(topRight));\n const topLeftOver = bandSurfacePoly.difference(JstsUtils.createJstsPolygon(topLeft));\n const bottomRightOver = bandSurfacePoly.difference(JstsUtils.createJstsPolygon(bottomRight));\n const bottomLeftOver = bandSurfacePoly.difference(JstsUtils.createJstsPolygon(bottomLeft));\n\n const leftOverSurface = topRightOver\n .intersection(topLeftOver)\n .intersection(bottomRightOver)\n .intersection(bottomLeftOver);\n\n return leftOverSurface;\n }\n\n public static computeLaizeFromInflateHV({\n laizeCalcProps,\n coveredSurfacePoly,\n bandCoords,\n verticalMargin,\n horizontalMargin,\n laizeDirection,\n }: CalculateLeftOverParams): JstsPolygon {\n const surfaceCoveredCoords = coveredSurfacePoly.getCoordinates();\n const bandBoundingBox = PointUtils.calculateBoundingBox({ points: bandCoords })!;\n\n const bandSurfacePoly = JstsUtils.createJstsPolygonFromBoundingBox(bandBoundingBox);\n let inflatedSurfaceCoords = PointUtils.inflatePolygonHV(\n surfaceCoveredCoords,\n horizontalMargin / 2 + laizeCalcProps.LAIZE_MARGIN / 2,\n verticalMargin / 2\n );\n let vector: CoordPoint = { x: 0, y: 0 };\n switch (laizeDirection) {\n case 'leftToRight':\n vector = { x: -horizontalMargin / 2, y: 0 };\n break;\n case 'rightToLeft':\n vector = { x: horizontalMargin / 2, y: 0 };\n break;\n }\n inflatedSurfaceCoords = inflatedSurfaceCoords.map((c) => PointUtils.translation(c, vector));\n\n const inflatedSurface = JstsUtils.createJstsPolygon(inflatedSurfaceCoords);\n const leftOverSurface = bandSurfacePoly.difference(inflatedSurface);\n return leftOverSurface;\n }\n\n /**\n * - Tries to fit the band into each of the left-over surfaces (no rotation allowed, only translations)\n * - If the band fits into more than one left-over surface, determines the smallest left-over where it fits.\n * - Returns false if no left-over fits the band\n * - Otherwise returns the smallest left-over that can fit the band\n */\n public static tryUsingLeftOver({ band, leftOvers }: TryUsingLeftOverParams): LaizeLeftOverItem | undefined {\n if (leftOvers.length === 0) {\n return undefined;\n }\n\n const bandPoints = _.cloneDeep(band);\n\n let usableLeftOvers: Array = [];\n leftOvers.forEach((leftOver) => {\n const result = this.testIfBandContainedInPolygon({ bandPoints, polygon: leftOver.leftOverPolygon });\n if (result) {\n const { diff: resultingLeftOverPoly, intersection: resultingUsedLeftOverPoly } = result;\n usableLeftOvers.push({ leftOver, resultingLeftOverPoly, resultingUsedLeftOverPoly });\n }\n });\n\n if (usableLeftOvers.length > 0) {\n const optimalLeftOver = usableLeftOvers.reduce((res, currentLeftOver) => {\n if (currentLeftOver.leftOver.leftOverPolygon.getArea() < res.leftOver.leftOverPolygon.getArea()) {\n return currentLeftOver;\n } else {\n return res;\n }\n });\n\n optimalLeftOver.leftOver.leftOverPolygon = optimalLeftOver.resultingLeftOverPoly;\n optimalLeftOver.leftOver.usedLeftOverCoords = optimalLeftOver.resultingUsedLeftOverPoly;\n\n return optimalLeftOver.leftOver;\n }\n\n return undefined;\n }\n\n public static testIfBandContainedInPolygon({ bandPoints, polygon }: TestIfBandContainedInPolygonParams) {\n const geometryFactory = JstsUtils.GeometryFactory();\n const polygonCoords = polygon.getCoordinates();\n\n const bandHeight = LaizeBands.getBandHeight({ band: bandPoints });\n const bandWidth = LaizeBands.getBandWidth({ band: bandPoints });\n const polygonHeight = LaizeBands.getBandHeight({ band: polygonCoords });\n const polygonWidth = LaizeBands.getBandWidth({ band: polygonCoords });\n\n if (bandHeight > polygonHeight || bandWidth > polygonWidth) {\n return undefined;\n }\n\n for (const bandPoint of bandPoints) {\n for (const polyPoint of polygonCoords) {\n const vectorX = polyPoint.x - bandPoint.x;\n const vectorY = polyPoint.y - bandPoint.y;\n const vector = { x: vectorX, y: vectorY };\n const translatedBand = bandPoints.map((point) => PointUtils.translation(point, vector));\n\n const bandPoly = JstsUtils.createJstsPolygon(translatedBand, true, geometryFactory).buffer(0);\n if (polygon.contains(bandPoly)) {\n return {\n diff: polygon.difference(bandPoly),\n intersection: polygon.intersection(bandPoly)\n };\n }\n }\n }\n\n return undefined;\n }\n}\n","import * as _ from 'lodash';\n\nimport { IRoomItem } from '../../../Models/IRoomItem';\nimport { IdGenerator } from '../../../Utils/IdGenerator';\nimport { JstsPolygon, JstsUtils } from '../../../Utils/JstsUtils';\nimport { PointUtils } from '../../../Utils/PointUtils';\nimport { RoomDiffUtils } from '../../../Utils/Room/RoomDiffUtils';\nimport { AdjacentRooms, CoordPoint, RotationParams } from '../../../Utils/Types';\nimport { Direction } from '../Laize';\nimport { ILaizeOpening, ILaizeRoom, ILaizeWall, LaizeCalcProps } from '../LaizeCalc';\nimport { LaizeTrace } from './LaizeBandTrace';\nimport { IntersectionResult, LaizeBandList } from './LaizeBands';\nimport { LaizeLeftOverItem } from './LaizeLeftOver';\nimport { LaizeV3, RoomGroup } from './LaizeV3';\n\nexport type GetSurfaceOpeningsParams = {\n surfacePoly: JstsPolygon;\n openings: Array;\n};\n\nexport type LaizeOperation = {\n surfaceHeight: number;\n roomId?: string;\n intersectionResult?: IntersectionResult;\n\n bands?: LaizeBandList;\n realBandHeight?: number;\n bandSurface?: number;\n\n surfaceArea?: number;\n effectiveBand?: Array;\n realBand?: Array;\n bandHeight?: number;\n bandWidth?: number;\n surfaceCoords?: Array;\n raccordLength?: number;\n\n horizontalMargin?: number;\n verticalMargin?: number;\n isContiguous?: boolean;\n};\n\nexport type CoverableSurface = {\n id: string;\n surfacePoly: JstsPolygon;\n originalSurfacePoly: JstsPolygon;\n laizeDirection: Direction;\n openings: Array;\n\n roomId: string;\n nextLaizeOperation?: LaizeOperation;\n\n rotationParams: RotationParams;\n};\nexport type CoverNextSurfaceParams = {\n previousLaizeRoomId?: string;\n laizeCalcProps: LaizeCalcProps;\n surfacesToCover: Array;\n leftOvers: Array;\n walls: Array;\n roomItems: Array;\n roomGroups: Array;\n};\n\ntype GetRoomSurfaces = { room: ILaizeRoom; roomItems: Array; walls: Array };\ntype FindNextSurfaceByDimensionsParams = { coverableSurfaces: Array };\ntype ConvertToCoverableSurfacesParams = {\n laizeCalcProps: LaizeCalcProps;\n room: ILaizeRoom;\n roomItems: Array;\n walls: Array;\n iteration?: number;\n adjacentRooms?: Array;\n freeOpeningIds: Set;\n isInitialSurfaces: boolean;\n forceContiguousMargins?: boolean;\n hasSameFlooringDirection: boolean;\n};\n\nexport class LaizeSurfaces {\n public static convertToCoverableSurfaces({\n laizeCalcProps,\n room,\n roomItems,\n walls,\n iteration,\n adjacentRooms,\n freeOpeningIds,\n isInitialSurfaces,\n forceContiguousMargins = false,\n hasSameFlooringDirection,\n }: ConvertToCoverableSurfacesParams) {\n const useRotation = room.rotationAngle;\n const roomCenter = PointUtils.bboxCenter(room.coords!);\n const rotationParams = { angle: room.rotationAngle || 0, center: roomCenter };\n const openingsBetweenRooms = adjacentRooms?.map((x) => x.opening) ?? [];\n const roomSurfaces = this.getRoomSurfaces({ room, roomItems, walls });\n const coverableSurfaces: Array = [];\n\n for (let roomSurface of roomSurfaces) {\n // Get and rotate the surface's openings\n const openings = this.getSurfaceOpenings({ surfacePoly: roomSurface, openings: openingsBetweenRooms });\n const surfaceOpenings = _.cloneDeep(openings);\n surfaceOpenings.forEach((opening: ILaizeOpening) => {\n const points: Array = [{ x: opening.x!, y: opening.y! }, ...opening.limit!];\n PointUtils.rotation(points, rotationParams.angle, rotationParams.center);\n opening.x = points[0].x;\n opening.y = points[0].y;\n });\n\n //* Rotate the surface\n const coords = roomSurface.getCoordinates();\n PointUtils.rotateCyclicCoords(coords, rotationParams);\n const rotatedSurfacePoly = JstsUtils.createJstsPolygon(coords);\n\n //* Potential bands\n const possibleLaizeOperations: Array = [];\n const addLaizeOperation = (direction: Direction) => {\n const operation = LaizeV3.prepareLaizeOperation({\n laizeCalcProps,\n surfacePoly: rotatedSurfacePoly,\n direction,\n roomId: room.roomId!,\n surfaceOpenings,\n freeOpeningIds,\n forceContiguousMargins,\n hasSameFlooringDirection,\n });\n if (operation) {\n const newSurface = {\n id: IdGenerator.generate(),\n roomId: room.roomId!,\n surfacePoly: rotatedSurfacePoly,\n originalSurfacePoly: rotatedSurfacePoly,\n nextLaizeOperation: operation,\n rotationParams: rotationParams,\n laizeDirection: direction,\n openings: LaizeSurfaces.getSurfaceOpenings({\n surfacePoly: JstsUtils.createJstsPolygon(operation.surfaceCoords, true),\n openings: surfaceOpenings,\n }),\n };\n coverableSurfaces.push(newSurface);\n possibleLaizeOperations.push(operation);\n }\n };\n\n addLaizeOperation(Direction.LeftToRight);\n addLaizeOperation(Direction.RightToLeft);\n\n //* Only draw left & right potential laize ops if iteration = 0\n if (iteration === 0) {\n const possibleLaizeOperationsToDraw = _.cloneDeep(possibleLaizeOperations);\n if (useRotation) {\n possibleLaizeOperationsToDraw.forEach((operation) => {\n PointUtils.rotation(operation.realBand!, -rotationParams.angle, rotationParams.center);\n PointUtils.rotation(operation.effectiveBand!, -rotationParams.angle, rotationParams.center);\n PointUtils.rotation(operation.surfaceCoords!, -rotationParams.angle, rotationParams.center);\n LaizeTrace.displayPotentialOperations(operation, room.rotationAngle);\n });\n } else {\n possibleLaizeOperationsToDraw.forEach((operation) => {\n LaizeTrace.displayPotentialOperations(operation);\n });\n }\n }\n }\n return coverableSurfaces.filter((x) => (isInitialSurfaces ? true : x.nextLaizeOperation?.isContiguous));\n }\n\n /**\n * Input: list of coverable surfaces and their pre-calculated next laize operation (next band to lay).\n * Output: the surface with the longest next band, or if there are multiple bands at that length,\n * pick the one with the largest area.\n */\n public static findNextSurfaceByDimensions({\n coverableSurfaces,\n }: FindNextSurfaceByDimensionsParams): CoverableSurface | undefined {\n const surfaceWithHighestBand = coverableSurfaces.reduce((previousPotentialSurface, potentialSurface) => {\n const potentialBand = potentialSurface.nextLaizeOperation;\n const previousPotentialBand = previousPotentialSurface?.nextLaizeOperation;\n\n if (!potentialBand) return previousPotentialSurface;\n if (!previousPotentialBand) return potentialSurface;\n\n const potentialBandHeight = potentialBand.bandHeight ?? 0;\n const previousPotentialBandHeight = previousPotentialBand.bandHeight ?? 0;\n\n //* Take the surface with the highest band\n if (potentialBandHeight > previousPotentialBandHeight) {\n return potentialSurface;\n } else if (potentialBandHeight < previousPotentialBandHeight) {\n return previousPotentialSurface;\n }\n //* Else take the surface with the highest area\n else {\n const potentialBandSurface = potentialBand.surfaceArea ?? 0;\n const previousPotentialBandSurface = previousPotentialBand.surfaceArea ?? 0;\n return potentialBandSurface > previousPotentialBandSurface\n ? potentialSurface\n : previousPotentialSurface;\n }\n }, undefined as CoverableSurface | undefined);\n return surfaceWithHighestBand;\n }\n\n /**\n * Obtain list of jsts polygons from a room by excluding the non-layable room items.\n * The list will mostly contain a single element, but excluding room items can result in multiple polygons\n * (for example when a room item 'cuts' the room in half).\n */\n public static getRoomSurfaces({ room, roomItems, walls }: GetRoomSurfaces) {\n let roomWithoutRoomItem = RoomDiffUtils.roomPolygonExcludingRoomItem(\n room,\n roomItems,\n walls\n ).roomShellDifference;\n\n let polygons: Array = [];\n const numSurfaces = roomWithoutRoomItem.getNumGeometries();\n for (let i = 0; i < numSurfaces; i++) {\n const surface = roomWithoutRoomItem.getGeometryN(i);\n if (surface.getArea() !== 0) {\n polygons.push(surface as never as JstsPolygon);\n }\n }\n return polygons;\n }\n\n /**\n * Gets the list of openings that are geometrically inside the given surface.\n */\n public static getSurfaceOpenings({ surfacePoly, openings }: GetSurfaceOpeningsParams) {\n const surfaceOpenings = openings.filter((op) => {\n return PointUtils.testPointWithinPolygon(JstsUtils.toJstsCoordPoint(op.x!, op.y!), surfacePoly);\n });\n return surfaceOpenings;\n }\n\n public static getNextSurfaceDirection({\n previousSurface,\n nextSurface,\n }: {\n previousSurface: JstsPolygon;\n nextSurface: JstsPolygon;\n }): Direction {\n const previousSurfaceCenter = PointUtils.meanPoint(previousSurface.getCoordinates());\n const nextSurfaceCenter = PointUtils.meanPoint(nextSurface.getCoordinates());\n\n return previousSurfaceCenter.x < nextSurfaceCenter.x ? Direction.LeftToRight : Direction.RightToLeft;\n }\n}\n","import * as _ from 'lodash';\n\nimport { Logger } from '../../../../../Errors/Logger';\nimport { Toast } from '../../../../../Web/Services/ToastService';\nimport { MapConstants } from '../../../MapConstants';\nimport { IOpening } from '../../../Models/IOpening';\nimport { IdGenerator } from '../../../Utils/IdGenerator';\nimport { JstsPolygon, JstsUtils } from '../../../Utils/JstsUtils';\nimport { PointUtils } from '../../../Utils/PointUtils';\nimport { AdjacentRooms, CoordPoint, RotationParams } from '../../../Utils/Types';\nimport { WallUtils } from '../../../Utils/Wall/WallUtils';\nimport {\n BandType,\n Direction,\n FlooringDirection,\n LaizeBand,\n LaizeCalculatorResult,\n LaizeDirection,\n ProductType,\n} from '../Laize';\nimport {\n CalculLaizeParams,\n ILaizeOpening,\n ILaizeRoom,\n ILaizeRoomItem,\n ILaizeWall,\n LaizeCalc,\n LaizeCalcProps,\n} from '../LaizeCalc';\nimport { LaizeBands } from './LaizeBands';\nimport { LaizeBandItemV3, LaizeTrace } from './LaizeBandTrace';\nimport { LaizeLeftOver, LaizeLeftOverItem, LeftOverResult } from './LaizeLeftOver';\nimport { CoverableSurface, CoverNextSurfaceParams, LaizeOperation, LaizeSurfaces } from './LaizeSurfaces';\n\nexport type CalculateOptimalBandsLayoutParams = {\n laizeCalcProps: LaizeCalcProps;\n openings: Array;\n walls: Array;\n roomItems: Array;\n rooms: Array;\n iteration?: number;\n};\ntype CalculateOptimalBandsLayoutResult = {\n laizeResults: Array;\n roomGroupsDebug: RoomGroupDebug[];\n};\nexport type RoomGroup = {\n adjacentRooms: AdjacentRooms[];\n roomIds: Set;\n rooms: Set;\n\n /** The current surface laid. */\n laidSurface: JstsPolygon | undefined;\n\n /** Rooms that are being laid, or fully laid. */\n layingRoomIds: Set;\n\n /**\n * Openings freed by a laid band.\n * A free opening is an opening that has been covered once by a band and is now free to be covered by another band.\n * This is used to determine if a band from another room and contiguous to the same opening needs to add margins\n */\n freeOpeningIds: Set;\n\n /**\n * This updates when a free opening is used by a band.\n */\n usedOpeningIds: Set;\n};\nexport type RoomGroupDebug = {\n adjacentRooms: AdjacentRooms[];\n roomIds: Array;\n rooms: Array;\n\n laidSurface: JstsPolygon | undefined;\n layingRoomIds: Array;\n freeOpeningIds: Array;\n usedOpeningIds: Array;\n};\ntype PrepareLaizeOperationParams = {\n laizeCalcProps: LaizeCalcProps;\n surfacePoly: JstsPolygon;\n direction: Direction;\n roomId: string;\n surfaceOpenings: Array;\n isBandNextToAnother?: boolean;\n freeOpeningIds: Set;\n forceContiguousMargins?: boolean;\n hasSameFlooringDirection: boolean;\n};\nexport type LaizeResultItem = {\n id: string;\n laidBand: Array;\n coveredSurfaceCoords: Array;\n rotationParams: RotationParams;\n surfacesLeft: Array;\n roomId: string;\n bandHeight: number;\n bandWidth: number;\n leftOverResult?: LeftOverResult;\n leftOverUsed: boolean;\n usedLeftOverId: string;\n usedLeftOverCoords?: CoordPoint[];\n usedLeftOverRotationParams?: RotationParams;\n leftOvers: Array;\n raccordLength: number;\n\n bandId?: number; //NOT EXIST WHY? @charles\n};\n\ntype ConvertResultsParams = { laizeResults: Array };\n\ninterface ICALCULATORV3 {\n bandItems: Array;\n}\nconst CALCULATOR_V3_INITIAL: ICALCULATORV3 = { bandItems: [] };\nexport let CALCULATOR_V3: ICALCULATORV3 = CALCULATOR_V3_INITIAL;\n\nexport let DEBUG_BANDS: Array = [];\nexport const addDebugBand = (points: CoordPoint[], bandHeight?: number, bandWidth?: number, color: string = 'yellow') => {\n DEBUG_BANDS.push({\n id: IdGenerator.generate(),\n points: points,\n bandHeight: bandHeight,\n bandWidth: bandWidth,\n roomId: '',\n position: 'top',\n type: BandType.SurfaceCovered,\n color: 'red',\n fillColor: color,\n });\n};\nexport class LaizeV3 {\n private static showDebug = false;\n\n public static calculLaizeV3 = (laizeParams: CalculLaizeParams): LaizeCalculatorResult | undefined => {\n const {\n laizeCalcProps,\n rooms,\n forcedGlobalDirection,\n iteration,\n logName = '',\n requestedBy,\n flooringDirectionByRoomId: inputDirectionByRoomId,\n } = laizeParams;\n if (laizeCalcProps.TYPE === undefined) {\n return {\n isPossible: false,\n laizeResult: 0,\n roomsBandsLength: [],\n roomsBandsDetails: [],\n roomsBandsDetailsContiguous: [],\n roomsRaccordLength: [],\n flooringDirectionByRoomId: {},\n possibleFlooringDirectionByRoomId: {},\n };\n }\n\n if (LaizeCalc.checkIfLaizeNotComputable(laizeCalcProps.LAIZE_PROPS)) {\n return undefined;\n }\n\n Logger.isLogEnabled() &&\n console.group(`LaizeV3 -> calculLaizeV3 : ${logName}`, { inputDirectionByRoomId, forcedGlobalDirection });\n\n CALCULATOR_V3 = { ...CALCULATOR_V3_INITIAL, bandItems: [] };\n DEBUG_BANDS = [];\n\n //* Initialize values\n let globalRotationAngle = this.directionToAngle(forcedGlobalDirection);\n let roomQueue = _.cloneDeep(rooms); //* deep clone\n const flooringDirectionByRoomId: { [roomId: string]: FlooringDirection } = {};\n const lameCalcsByRoomId: {\n [roomId: string]: { [flooringDirection: string]: LaizeCalculatorResult | undefined };\n } = {};\n const possibleFlooringDirectionByRoomId: { [roomId: string]: FlooringDirection[] } = {};\n\n //* If no global direction is set, calculate the possible lame directions for each room\n if (globalRotationAngle === undefined) {\n roomQueue.forEach((room) => {\n if (laizeCalcProps.TYPE === ProductType.LamePleine) {\n const laizeVerticalCalc = LaizeCalc.calculLaize({\n ...laizeParams,\n rooms: [room],\n forcedGlobalDirection: LaizeDirection.Vertical,\n logName: `Computing lame vertical room ${room.roomId}`,\n });\n const laizeHorizontalCalc = LaizeCalc.calculLaize({\n ...laizeParams,\n rooms: [room],\n forcedGlobalDirection: LaizeDirection.Horizontal,\n logName: `Computing lame horizontal room ${room.roomId}`,\n });\n CALCULATOR_V3 = { ...CALCULATOR_V3_INITIAL, bandItems: [] };\n lameCalcsByRoomId[room.roomId!] = {\n [FlooringDirection.LameHorizontal]: laizeHorizontalCalc,\n [FlooringDirection.LameVertical]: laizeVerticalCalc,\n };\n possibleFlooringDirectionByRoomId[room.roomId!] = [\n FlooringDirection.ClassiqueHorizontal,\n FlooringDirection.ClassiqueVertical,\n ];\n laizeVerticalCalc?.isPossible &&\n possibleFlooringDirectionByRoomId[room.roomId!].push(FlooringDirection.LameVertical);\n laizeHorizontalCalc?.isPossible &&\n possibleFlooringDirectionByRoomId[room.roomId!].push(FlooringDirection.LameHorizontal);\n } else {\n possibleFlooringDirectionByRoomId[room.roomId!] = [\n FlooringDirection.LaizeVertical,\n FlooringDirection.LaizeHorizontal,\n ];\n }\n });\n }\n\n //* If a global direction is set, use the angle from it to rotate all rooms\n if (globalRotationAngle !== undefined) {\n roomQueue.forEach((room) => (room.rotationAngle = globalRotationAngle));\n }\n //* If an input direction by room is set, use the angle from it to rotate each rooms\n //* Assigns the flooringDirectionByRoomId to the inputDirectionByRoomId\n //* Also removes the rooms that are not computable (ClassiqueHorizontal / ClassiqueVertical)\n else if (inputDirectionByRoomId && Object.keys(inputDirectionByRoomId).length > 0) {\n roomQueue\n .filter((room) => inputDirectionByRoomId[room.roomId!])\n .forEach((room) => (flooringDirectionByRoomId[room.roomId!] = inputDirectionByRoomId[room.roomId!]!));\n\n roomQueue = roomQueue.filter(\n (room) =>\n inputDirectionByRoomId[room.roomId!] !== FlooringDirection.ClassiqueHorizontal &&\n inputDirectionByRoomId[room.roomId!] !== FlooringDirection.ClassiqueVertical\n );\n roomQueue.forEach(\n (room) => (room.rotationAngle = this.flooringDirectionToAngle(inputDirectionByRoomId[room.roomId!]))\n );\n }\n //* If no input is given, use the flooringDirection from each room (chosen by the vendor)\n //* If no flooringDirection is given: #35185\n //* - If the product is a rouleau, calculate the cheapest direction for each room\n //* - If the product is a lame pleine, force the direction to \"optimisation des lames horizontales\"\n //* Also removes the rooms that are not computable (ClassiqueHorizontal / ClassiqueVertical)\n else {\n roomQueue.forEach((room, index, array) => {\n if (room.flooringDirection) {\n if (\n room.flooringDirection === FlooringDirection.ClassiqueVertical ||\n room.flooringDirection === FlooringDirection.ClassiqueHorizontal\n ) {\n array.splice(index, 1);\n flooringDirectionByRoomId[room.roomId!] = room.flooringDirection;\n } else {\n const calc = lameCalcsByRoomId[room.roomId!]?.[room.flooringDirection!];\n if (laizeCalcProps.TYPE === ProductType.LamePleine && !calc?.isPossible) {\n array.splice(index, 1);\n flooringDirectionByRoomId[room.roomId!] = FlooringDirection.ClassiqueHorizontal;\n } else {\n flooringDirectionByRoomId[room.roomId!] = room.flooringDirection;\n }\n room.rotationAngle = this.flooringDirectionToAngle(room.flooringDirection);\n }\n } else {\n if (laizeCalcProps.TYPE === ProductType.Rouleau) {\n const laizeVerticalCalc = LaizeCalc.calculLaize({\n ...laizeParams,\n rooms: [room],\n forcedGlobalDirection: LaizeDirection.Vertical,\n logName: `Computing rouleau vertical room ${room.roomId}`,\n });\n const laizeHorizontalCalc = LaizeCalc.calculLaize({\n ...laizeParams,\n rooms: [room],\n forcedGlobalDirection: LaizeDirection.Horizontal,\n logName: `Computing rouleau horizontal room ${room.roomId}`,\n });\n const cheapestDirection = (() => {\n if (laizeHorizontalCalc?.isPossible && !laizeVerticalCalc?.isPossible) {\n return LaizeDirection.Horizontal;\n } else if (!laizeHorizontalCalc?.isPossible && laizeVerticalCalc?.isPossible) {\n return LaizeDirection.Vertical;\n } else if (\n (laizeHorizontalCalc?.laizeResult ?? 0) < (laizeVerticalCalc?.laizeResult ?? 0)\n ) {\n return LaizeDirection.Horizontal;\n }\n return LaizeDirection.Vertical;\n })();\n room.rotationAngle = this.directionToAngle(cheapestDirection);\n flooringDirectionByRoomId[room.roomId!] =\n cheapestDirection === LaizeDirection.Horizontal\n ? FlooringDirection.LaizeHorizontal\n : FlooringDirection.LaizeVertical;\n } else {\n array.splice(index, 1);\n flooringDirectionByRoomId[room.roomId!] = FlooringDirection.ClassiqueHorizontal;\n }\n }\n });\n }\n\n const params = LaizeCalc.toCalculateOptimalBandsLayoutParams({ ...laizeParams, rooms: roomQueue });\n Logger.log('Params: ', params);\n const { laizeResults, roomGroupsDebug } = this.calculateOptimalBandsLayout(params);\n LaizeTrace.drawLaizeResults({ laizeResults, iteration: iteration });\n const laizeResult = this.convertResults({ laizeResults });\n\n Logger.isLogEnabled() && console.groupEnd();\n return {\n ...laizeResult,\n bands_v3: [...CALCULATOR_V3.bandItems, ...DEBUG_BANDS],\n iteration,\n requestedBy,\n flooringDirectionByRoomId,\n possibleFlooringDirectionByRoomId,\n roomGroupsDebug,\n };\n };\n\n /**\n * Get angle from LaizeDirection\n * @param direction LaizeDirection\n */\n public static directionToAngle = (direction?: LaizeDirection) => {\n if (direction) {\n switch (direction) {\n case LaizeDirection.Vertical:\n return 0;\n case LaizeDirection.Horizontal:\n return 90;\n }\n }\n };\n\n /**\n * Get angle from FlooringDirection\n * @param direction FlooringDirection\n */\n public static flooringDirectionToAngle = (flooringDirection?: FlooringDirection) => {\n switch (flooringDirection) {\n case FlooringDirection.LaizeVertical:\n case FlooringDirection.LameVertical:\n return 0;\n case FlooringDirection.LaizeHorizontal:\n case FlooringDirection.LameHorizontal:\n return 90;\n }\n };\n\n /**\n * Determines room groups based on adjacent rooms and rooms.\n * @param adjacentRooms An array of adjacent rooms.\n * @param rooms An array of rooms.\n * @returns An array of room groups.\n */\n public static determineRoomGroups(adjacentRooms: AdjacentRooms[], rooms: ILaizeRoom[]): RoomGroup[] {\n const adjacentRoomsLeft = _.cloneDeep(adjacentRooms);\n let roomsLeft = _.cloneDeep(rooms);\n const roomGroups: RoomGroup[] = [];\n while (adjacentRoomsLeft.length > 0) {\n const firstRoom = adjacentRoomsLeft[0];\n const roomGroup: RoomGroup = {\n adjacentRooms: [firstRoom],\n roomIds: new Set(firstRoom.roomIds),\n rooms: new Set(rooms.filter((x) => firstRoom.roomIds.includes(x.roomId!))),\n laidSurface: undefined,\n layingRoomIds: new Set(),\n freeOpeningIds: new Set(),\n usedOpeningIds: new Set(),\n };\n roomsLeft = roomsLeft.filter((x) => !firstRoom.roomIds.includes(x.roomId!));\n roomGroups.push(roomGroup);\n adjacentRoomsLeft.splice(0, 1);\n let i = 0;\n while (i < adjacentRoomsLeft.length) {\n const room = adjacentRoomsLeft[i];\n const isContiguousToGroup = adjacentRoomsLeft.some((x) =>\n x.roomIds.some((roomId) => roomGroup.roomIds.has(roomId))\n );\n if (isContiguousToGroup) {\n roomGroup.adjacentRooms.push(room);\n room.roomIds.forEach((roomId) => roomGroup.roomIds.add(roomId));\n rooms.filter((x) => room.roomIds.includes(x.roomId!)).forEach((room) => roomGroup.rooms.add(room));\n adjacentRoomsLeft.splice(i, 1);\n roomsLeft = roomsLeft.filter((x) => !room.roomIds.includes(x.roomId!));\n } else {\n i++;\n }\n }\n }\n roomsLeft.forEach((x) => {\n const roomGroup: RoomGroup = {\n adjacentRooms: [],\n roomIds: new Set([x.roomId!]),\n rooms: new Set([x]),\n laidSurface: undefined,\n layingRoomIds: new Set(),\n freeOpeningIds: new Set(),\n usedOpeningIds: new Set(),\n };\n roomGroups.push(roomGroup);\n });\n return roomGroups;\n }\n\n /**\n * Converts a RoomGroup object to a RoomGroupDebug object for debugging purposes.\n * @param roomGroup The RoomGroup object to convert.\n * @returns A RoomGroupDebug object.\n */\n public static convertToRoomGroupDebug(roomGroup: RoomGroup): RoomGroupDebug {\n const roomGroupToUse = _.cloneDeep(roomGroup);\n return {\n adjacentRooms: roomGroupToUse.adjacentRooms,\n roomIds: Array.from(roomGroupToUse.roomIds),\n laidSurface: roomGroupToUse.laidSurface,\n layingRoomIds: Array.from(roomGroupToUse.layingRoomIds),\n rooms: Array.from(roomGroupToUse.rooms),\n freeOpeningIds: Array.from(roomGroupToUse.freeOpeningIds),\n usedOpeningIds: Array.from(roomGroupToUse.usedOpeningIds),\n };\n }\n\n /**\n * - If globalAngle is not undefined, set each room's rotationAngle to it.\n * - Converts each room to one or more coverable surface (rotated accordingly).\n * - Calculates a laize result for each surface, iterating until there is no more coverable surfaces left.\n * - Rotates the laize result back to its original angle.\n * - Returns the laize result list.\n */\n public static calculateOptimalBandsLayout({\n laizeCalcProps,\n walls,\n openings,\n roomItems,\n rooms,\n iteration = undefined,\n }: CalculateOptimalBandsLayoutParams): CalculateOptimalBandsLayoutResult {\n const adjacentRooms = WallUtils.determineAdjacentRooms(\n walls,\n openings,\n rooms.map((x) => x.roomId!)\n );\n const roomGroups = LaizeV3.determineRoomGroups(adjacentRooms, rooms);\n const laizeResults: Array = [];\n let roomGroupsDebug: RoomGroupDebug[] = [];\n let leftOvers: Array = [];\n let surfacesLeft: Array = [];\n\n let currentIteration = 0;\n for (const roomGroup of roomGroups) {\n //* Initialize the list of surfaces to cover for each room in the group\n const adjacentRoomIdsByRoomId: { [roomId: string]: Set } = {};\n for (const adjacentRoom of roomGroup.adjacentRooms) {\n for (const roomId of adjacentRoom.roomIds) {\n if (!adjacentRoomIdsByRoomId[roomId]) {\n adjacentRoomIdsByRoomId[roomId] = new Set();\n }\n adjacentRoomIdsByRoomId[roomId].add(adjacentRoom.roomIds[0]);\n }\n }\n const mostAdjacentRoomIds = Object.keys(adjacentRoomIdsByRoomId).filter(\n (x) =>\n adjacentRoomIdsByRoomId[x].size ===\n Math.max(...Object.values(adjacentRoomIdsByRoomId).map((x) => x.size))\n );\n let roomsToCoverFirst = Array.from(roomGroup.rooms);\n if (mostAdjacentRoomIds.length) {\n roomsToCoverFirst = roomsToCoverFirst.filter((x) => mostAdjacentRoomIds.includes(x.roomId!));\n }\n for (let i = 0; i < roomsToCoverFirst.length; i++) {\n const previousRoom = i > 0 ? roomsToCoverFirst[i - 1] : undefined;\n const room = roomsToCoverFirst[i];\n const coverableSurfaces = LaizeSurfaces.convertToCoverableSurfaces({\n laizeCalcProps,\n room,\n roomItems,\n walls,\n iteration,\n adjacentRooms: roomGroup.adjacentRooms,\n freeOpeningIds: new Set(),\n isInitialSurfaces: true,\n hasSameFlooringDirection: room.flooringDirection === previousRoom?.flooringDirection,\n });\n surfacesLeft.push(...coverableSurfaces);\n }\n }\n\n //* Iterate over surfaces to cover until there is no more surface left to cover\n //* Or until we have laid a band in each room\n while (surfacesLeft.length > 0 || roomGroups.some((x) => x.layingRoomIds.size < x.roomIds.size)) {\n if (currentIteration > 100) {\n Toast.showError({ content: `Impossible de calculer la pose du produit ${laizeCalcProps.LAIZE_PROPS.productCode}` });\n break;\n }\n if (\n laizeCalcProps.TYPE === ProductType.LamePleine &&\n !this.checkIfLamePleineComputable(surfacesLeft, laizeCalcProps.LONGUEUR_CM)\n ) {\n return { roomGroupsDebug, laizeResults: [] };\n }\n\n const isCurrentIteration = iteration === currentIteration;\n\n if (isCurrentIteration && this.showDebug) {\n const colors = ['red', 'blue', 'yellow', 'purple', 'orange'];\n surfacesLeft.forEach((x, i) => {\n if (x.nextLaizeOperation?.effectiveBand)\n addDebugBand(\n x.nextLaizeOperation.effectiveBand,\n x.nextLaizeOperation.bandHeight,\n x.nextLaizeOperation.bandWidth,\n colors[i % colors.length]\n );\n });\n }\n\n if (surfacesLeft.length === 0) {\n for (const roomGroup of roomGroups.filter((x) => x.layingRoomIds.size < x.roomIds.size)) {\n const roomsNotCovered = Array.from(roomGroup.rooms).filter(\n (x) => !roomGroup.layingRoomIds.has(x.roomId!)\n );\n for (let i = 0; i < roomsNotCovered.length; i++) {\n const previousRoom = i > 0 ? roomsNotCovered[i - 1] : undefined;\n const room = roomsNotCovered[i];\n const coverableSurfaces = LaizeSurfaces.convertToCoverableSurfaces({\n laizeCalcProps,\n room,\n roomItems,\n walls,\n iteration,\n adjacentRooms: roomGroup.adjacentRooms,\n freeOpeningIds: new Set(),\n isInitialSurfaces: true,\n forceContiguousMargins: true,\n hasSameFlooringDirection: true,\n });\n surfacesLeft.push(...coverableSurfaces);\n }\n }\n }\n\n //* Cover the next surface\n const laizeResult: LaizeResultItem = this.coverNextSurface({\n previousLaizeRoomId: laizeResults.slice(-1)[0]?.roomId,\n laizeCalcProps,\n surfacesToCover: surfacesLeft,\n leftOvers,\n roomGroups,\n walls,\n roomItems,\n })!;\n\n if (isCurrentIteration) {\n roomGroupsDebug = roomGroups.map(LaizeV3.convertToRoomGroupDebug);\n }\n\n //* Update results and surfaces to cover\n if (laizeResult) {\n //* Inverse rotation of the laize result to get it back to its original angle.\n const inverseRotationParams = {\n angle: -laizeResult.rotationParams?.angle,\n center: laizeResult.rotationParams?.center,\n };\n if (inverseRotationParams.angle) {\n PointUtils.rotation(\n laizeResult.coveredSurfaceCoords,\n inverseRotationParams.angle,\n inverseRotationParams.center\n );\n PointUtils.rotation(\n laizeResult.laidBand,\n inverseRotationParams.angle,\n inverseRotationParams.center\n );\n if (laizeResult.leftOverResult) {\n laizeResult.leftOverResult.leftOverCoords.forEach((x) =>\n PointUtils.rotation(x, inverseRotationParams.angle, inverseRotationParams.center)\n );\n if (laizeResult.leftOverResult.surfaceCoveredWithMarginsCoords) {\n PointUtils.rotation(laizeResult.leftOverResult.surfaceCoveredWithMarginsCoords, inverseRotationParams.angle, inverseRotationParams.center);\n }\n }\n }\n if (laizeResult.usedLeftOverCoords && laizeResult.usedLeftOverRotationParams?.angle) {\n //* Inverse rotation of the left over used result to get it back to its original angle.\n const inverseUsedLeftOverRotationParams = {\n angle: -laizeResult.usedLeftOverRotationParams?.angle,\n center: laizeResult.usedLeftOverRotationParams?.center,\n };\n PointUtils.rotation(laizeResult.usedLeftOverCoords, inverseUsedLeftOverRotationParams.angle, inverseUsedLeftOverRotationParams.center)\n }\n laizeResults.push(laizeResult);\n const roomGroupModified = roomGroups.find((x) => x.roomIds.has(laizeResult.roomId))!;\n leftOvers = laizeResult.leftOvers;\n surfacesLeft = laizeResult.surfacesLeft;\n const laidBandPolygon = JstsUtils.createJstsPolygon(laizeResult.coveredSurfaceCoords);\n roomGroupModified.laidSurface = roomGroupModified.laidSurface\n ? roomGroupModified.laidSurface.union(laidBandPolygon)\n : laidBandPolygon;\n } else {\n leftOvers = [];\n surfacesLeft = [];\n }\n currentIteration++;\n }\n\n if (roomGroupsDebug.length === 0) {\n roomGroupsDebug = roomGroups.map(LaizeV3.convertToRoomGroupDebug);\n }\n\n return { roomGroupsDebug, laizeResults };\n }\n\n private static checkIfLamePleineComputable(surfacesToCover: Array, longueurCm: number = 50_000) {\n let isComputable = true;\n for (let i = 0; i < surfacesToCover.length; i++) {\n const surfaceToCover = surfacesToCover[i];\n // #32686: C&P V2 > Calcul en lame pleine > Marge en longueur\n // On doit ajouter 5cm de marge en longueur pour la lame pleine\n if (surfaceToCover.nextLaizeOperation!.surfaceHeight + 5 > longueurCm) {\n isComputable = false;\n break;\n }\n }\n return isComputable;\n }\n\n /**\n * Calculates a laize result for a given list of surfaces to cover.\n * - Finds the next surface to cover (meaning: the surface which would need the heighest band or the largest area).\n * - Decides if this surface can be covered using left-over or needs a new band.\n * - If a new band is needed, calculates if new left-over is created.\n * - Removes the covered surface from the list of surfaces left to cover.\n * - If the surface was not completely covered, add the surface(s) left to the list of surfaces left to cover.\n * - For each of those newly added surfaces, calculate their next laize operation (next band).\n */\n private static coverNextSurface({\n previousLaizeRoomId,\n laizeCalcProps,\n surfacesToCover,\n leftOvers,\n roomItems,\n walls,\n roomGroups,\n }: CoverNextSurfaceParams): LaizeResultItem | undefined {\n let coverableSurfaces: Array = Array.from(surfacesToCover);\n let surfaceToLay = LaizeSurfaces.findNextSurfaceByDimensions({ coverableSurfaces });\n\n if (!surfaceToLay?.nextLaizeOperation || !surfaceToLay) {\n return undefined;\n }\n\n surfaceToLay = LaizeSurfaces.findNextSurfaceByDimensions({ coverableSurfaces })!;\n const laizeOperation = surfaceToLay.nextLaizeOperation!;\n\n const { adjacentRooms, layingRoomIds, rooms, roomIds, freeOpeningIds, usedOpeningIds } = roomGroups.find((x) =>\n x.roomIds.has(surfaceToLay!.roomId!)\n )!;\n\n if (layingRoomIds.size === 0) {\n //* Remove all the surfaces from this roomGroup\n //* => Once we lay a band, we don't want to start the same room from a different direction.\n //* => We can't let \"blank\" surfaces in a roomGroup\n coverableSurfaces = coverableSurfaces.filter((x) => !roomIds.has(x.roomId));\n }\n if (!layingRoomIds.has(surfaceToLay!.roomId!)) {\n coverableSurfaces = coverableSurfaces.filter((x) => surfaceToLay?.roomId !== x.roomId);\n }\n layingRoomIds.add(surfaceToLay.roomId!);\n\n const bandPoly = JstsUtils.createJstsPolygon(laizeOperation.effectiveBand, true);\n const differenceGeom = surfaceToLay.surfacePoly.difference(bandPoly);\n const coveredSurface = surfaceToLay.surfacePoly.intersection(bandPoly).buffer(0);\n const coveredSurfaceCoords = _.cloneDeep(coveredSurface.getCoordinates());\n\n // Calculate the left-over AS IF laying a new band\n const potentialLeftOverResult = LaizeLeftOver.calculateLeftOver({\n laizeCalcProps,\n coveredSurfacePoly: coveredSurface,\n bandCoords: laizeOperation.realBand!,\n\n verticalMargin: laizeOperation.verticalMargin ?? 0,\n horizontalMargin: laizeOperation.horizontalMargin ?? 0,\n laizeDirection: surfaceToLay.laizeDirection,\n });\n\n // If laying a new band would result in some left-over, then the surface we are trying to cover\n // has a smaller width than the width of a real band. Thus, we do not try to cut a whole new band\n // from left-overs, instead we try to cut a band equivalent to the surface to cover.\n\n let bandToCutInLeftOver;\n const roomsArray = Array.from(rooms);\n const previousSurfaceFlooringDirection = roomsArray.find(\n (x) => x.roomId === previousLaizeRoomId\n )?.rotationAngle;\n const nextSurfaceFlooringDirection = roomsArray.find((x) => x.roomId === surfaceToLay?.roomId)?.rotationAngle;\n const sameRoomAsPreviousSurface = previousLaizeRoomId === surfaceToLay?.roomId;\n const hasSameFlooringDirection = previousSurfaceFlooringDirection === nextSurfaceFlooringDirection;\n\n if (potentialLeftOverResult) {\n const testSurfaceContiguous = LaizeV3.testSurfaceContiguous(\n surfaceToLay.openings,\n JstsUtils.createJstsPolygon(potentialLeftOverResult.surfaceCoveredCoords),\n freeOpeningIds\n );\n\n const laidLaizeSurface = LaizeLeftOver.computeLaidLaizeFromDensifiedPolygon({\n laizeCalcProps,\n coveredSurfacePoly: JstsUtils.createJstsPolygon(potentialLeftOverResult.surfaceCoveredCoords),\n bandCoords: laizeOperation.realBand!,\n horizontalMargin:\n laizeCalcProps.LAIZE_MARGIN +\n (testSurfaceContiguous.needHorizontalMargin && hasSameFlooringDirection\n ? laizeCalcProps.MARGIN_WIDTH ?? 0\n : 0) +\n (sameRoomAsPreviousSurface ? laizeCalcProps.RACCORD_SIZE / 2 : 0),\n verticalMargin:\n laizeCalcProps.LAIZE_MARGIN +\n (testSurfaceContiguous.needVerticalMargin && hasSameFlooringDirection\n ? laizeCalcProps.MARGIN_LENGTH ?? 0\n : 0) +\n (sameRoomAsPreviousSurface ? laizeCalcProps.RACCORD_SIZE / 2 : 0),\n laizeDirection: surfaceToLay.laizeDirection,\n });\n bandToCutInLeftOver = laidLaizeSurface.getCoordinates();\n } else {\n bandToCutInLeftOver = laizeOperation.realBand!;\n }\n\n const usedLeftOver = LaizeLeftOver.tryUsingLeftOver({\n band: bandToCutInLeftOver,\n leftOvers: leftOvers,\n });\n const leftOverUsed = Boolean(usedLeftOver);\n\n // Left-over is only created if no left-over is used to cover this surface, because when using left-over\n // the band has the minimal width possible.\n if (!leftOverUsed && potentialLeftOverResult) {\n potentialLeftOverResult.leftOverCoords.forEach((coords) =>\n leftOvers.push({\n id: surfaceToLay!.id,\n leftOverPolygon: JstsUtils.createJstsPolygon(coords, true),\n rotationParams: surfaceToLay?.rotationParams\n })\n );\n }\n\n // The result from the difference between the surface and the band might be multiple polygons.\n // For example, for a U-shape room, one band might cover most part of the surface but not the two 'tips'\n // of the U.\n let roomSurfacesLeft = [];\n if (differenceGeom._geometries) {\n roomSurfacesLeft = differenceGeom._geometries;\n } else {\n roomSurfacesLeft.push(differenceGeom);\n }\n roomSurfacesLeft = roomSurfacesLeft.filter((x) => x.getArea() > 0);\n\n // If we lay a band that has contiguous openings\n if (surfaceToLay.openings.length) {\n //* Update freeOpenings and usedOpenings\n let newFreeOpeningIds = new Set();\n const openingIds = surfaceToLay.openings.map((x) => x.openingId!).filter((id) => !usedOpeningIds.has(id));\n for (let id of openingIds) {\n if (freeOpeningIds.has(id)) {\n freeOpeningIds.delete(id);\n usedOpeningIds.add(id);\n } else {\n freeOpeningIds.add(id);\n newFreeOpeningIds.add(id);\n }\n }\n\n //* Create a candidate band for each opening\n const roomIds = adjacentRooms\n .filter((x) => newFreeOpeningIds.has(x.opening.openingId!))\n .flatMap((x) => x.roomIds)\n .filter((x) => !layingRoomIds.has(x));\n for (let roomId of roomIds) {\n const room = Array.from(rooms).find((x) => x.roomId === roomId);\n if (room) {\n const surfaces = LaizeSurfaces.convertToCoverableSurfaces({\n laizeCalcProps,\n room,\n roomItems,\n walls,\n adjacentRooms,\n freeOpeningIds,\n isInitialSurfaces: false,\n hasSameFlooringDirection,\n });\n coverableSurfaces.push(...surfaces);\n }\n }\n }\n\n // Remove the surface we just covered.\n coverableSurfaces = coverableSurfaces.filter((x) => surfaceToLay?.id !== x.id);\n\n const inverseRotationParams = {\n angle: -surfaceToLay.rotationParams?.angle,\n center: surfaceToLay.rotationParams?.center,\n };\n // Adding each of the surfaces left to cover that resulted from covering this surface.\n // For each surface, calculate next laize operation (calculate next band to lay)\n for (const roomSurface of roomSurfacesLeft) {\n const nextLaizeOperation = this.prepareLaizeOperation({\n laizeCalcProps,\n surfacePoly: roomSurface,\n direction: LaizeSurfaces.getNextSurfaceDirection({\n previousSurface: surfaceToLay.originalSurfacePoly,\n nextSurface: roomSurface,\n }),\n roomId: surfaceToLay.roomId,\n //* We don't need to compute surfaceOpenings because this is an adjacent band\n //* And we already know that we can't add contiguous margins to adjacent bands\n surfaceOpenings: [],\n isBandNextToAnother: true,\n freeOpeningIds,\n hasSameFlooringDirection,\n });\n const originalNextLaizeOperationSurfaceCoords = _.cloneDeep(nextLaizeOperation?.surfaceCoords);\n if (inverseRotationParams.angle) {\n PointUtils.rotation(\n originalNextLaizeOperationSurfaceCoords ?? [],\n inverseRotationParams.angle,\n inverseRotationParams.center\n );\n }\n const newSurfaceOpenings = LaizeSurfaces.getSurfaceOpenings({\n surfacePoly: JstsUtils.createJstsPolygon(originalNextLaizeOperationSurfaceCoords, true),\n openings: adjacentRooms.map((x) => x.opening),\n });\n const newSurface: CoverableSurface = {\n id: IdGenerator.generate(),\n roomId: surfaceToLay.roomId,\n surfacePoly: roomSurface,\n originalSurfacePoly: roomSurface,\n nextLaizeOperation,\n rotationParams: surfaceToLay.rotationParams,\n openings: newSurfaceOpenings,\n laizeDirection: surfaceToLay.laizeDirection,\n };\n coverableSurfaces.push(newSurface);\n }\n\n // If left-over was used, the laid band might not be the one originally calculated.\n const laidBand = leftOverUsed ? bandToCutInLeftOver : laizeOperation.realBand!;\n\n return {\n id: surfaceToLay.id,\n laidBand: laidBand,\n coveredSurfaceCoords: coveredSurfaceCoords,\n rotationParams: surfaceToLay.rotationParams,\n surfacesLeft: coverableSurfaces,\n roomId: laizeOperation.roomId!,\n bandHeight: laizeOperation.bandHeight!,\n bandWidth: laizeOperation.bandWidth!,\n leftOverResult: leftOverUsed ? undefined : potentialLeftOverResult,\n leftOverUsed: leftOverUsed,\n usedLeftOverId: usedLeftOver?.id!,\n usedLeftOverCoords: usedLeftOver?.usedLeftOverCoords?.buffer(0).getCoordinates(),\n usedLeftOverRotationParams: usedLeftOver?.rotationParams,\n leftOvers: leftOvers,\n raccordLength: laizeOperation.raccordLength!,\n };\n }\n\n public static testSurfaceContiguous = (\n surfaceOpenings: ILaizeOpening[],\n surfaceToCheck: JstsPolygon,\n freeOpeningIds: Set\n ) => {\n let motifMargin: { needVerticalMargin: boolean; needHorizontalMargin: boolean; isSurfaceContiguous: boolean } =\n {\n needVerticalMargin: false,\n needHorizontalMargin: false,\n isSurfaceContiguous: false,\n };\n\n for (const opening of surfaceOpenings) {\n const isOpeningOnSurface = PointUtils.testPointWithinPolygon(\n JstsUtils.toJstsCoordPoint(opening.x!, opening.y!),\n surfaceToCheck\n );\n if (isOpeningOnSurface) {\n if (freeOpeningIds.has(opening.openingId!)) {\n motifMargin.isSurfaceContiguous = true;\n\n const isVertical = opening.limit?.[0].x === opening.limit?.[1].x;\n const isHorizontal = opening.limit?.[0].y === opening.limit?.[1].y;\n if (isVertical) {\n motifMargin.needVerticalMargin = true;\n } else if (isHorizontal) {\n motifMargin.needHorizontalMargin = true;\n }\n\n return motifMargin;\n }\n }\n }\n return motifMargin;\n };\n\n /**\n * Calculates the band coordinates to cover a given surface, accounting for\n * vertical & horizontal margins.\n */\n public static prepareLaizeOperation({\n laizeCalcProps,\n surfacePoly,\n direction,\n roomId,\n surfaceOpenings = [],\n isBandNextToAnother = false,\n freeOpeningIds,\n forceContiguousMargins = false,\n hasSameFlooringDirection,\n }: PrepareLaizeOperationParams): LaizeOperation | undefined {\n const widthMargin = laizeCalcProps.LAIZE_MARGIN;\n let horizontalMargin = isBandNextToAnother\n ? laizeCalcProps.LAIZE_CONSECUTIVE_BANDS_MARGIN + laizeCalcProps.MARGIN_WIDTH\n : 0;\n let verticalMargin = isBandNextToAnother\n ? laizeCalcProps.LAIZE_MARGIN + laizeCalcProps.RACCORD_SIZE\n : laizeCalcProps.LAIZE_MARGIN;\n\n // If laying a band over a surface results in more than one intersection polygon\n // (which is the case if a room item separates the room in half for example), then we should\n // not be laying a single band, but one band per resulting intersection surface.\n // To account for this, this first intersectionResult is calculated as if we were laying a single band on the surface,\n // then if the intersection is made of more than one surface, we calculate the bands for each of those surface,\n // then compare them and chose the one with the heighest band, or if equal, the one which covers the most surface.\n let intersectionResult = LaizeBands.getBandIntersection({\n surfacePoly,\n bandWidth: laizeCalcProps.BAND_WIDTH,\n direction,\n widthMargin,\n horizontalMargin,\n });\n let broadIntersection = intersectionResult.intersection;\n\n if (broadIntersection.getArea() <= 0) {\n return undefined;\n }\n\n let subSurfaces = [];\n if (broadIntersection._geometries !== undefined) {\n subSurfaces = broadIntersection._geometries;\n } else {\n subSurfaces.push(broadIntersection);\n }\n let isContiguous = false;\n let bestSurface: LaizeOperation | undefined = undefined;\n for (let subSurface of subSurfaces) {\n let horizontalMarginToUse = horizontalMargin;\n let verticalMarginToUse = verticalMargin;\n if (!isBandNextToAnother) {\n const testSurfaceContiguous = LaizeV3.testSurfaceContiguous(\n surfaceOpenings,\n subSurface,\n freeOpeningIds\n );\n if ((testSurfaceContiguous.isSurfaceContiguous || forceContiguousMargins) && hasSameFlooringDirection) {\n if (testSurfaceContiguous.needHorizontalMargin || forceContiguousMargins) {\n horizontalMarginToUse += laizeCalcProps.MARGIN_WIDTH;\n }\n if (testSurfaceContiguous.needVerticalMargin || forceContiguousMargins) {\n verticalMarginToUse += laizeCalcProps.MARGIN_LENGTH;\n }\n isContiguous = true;\n }\n }\n\n const subIntersectionResult = LaizeBands.getBandIntersection({\n surfacePoly: subSurface,\n bandWidth: laizeCalcProps.BAND_WIDTH,\n direction,\n widthMargin,\n horizontalMargin: horizontalMarginToUse,\n });\n const bands = LaizeBands.getBands({\n intersectionResult: subIntersectionResult,\n verticalMargin: verticalMarginToUse,\n });\n const realBand = bands.realBand;\n const realBandHeight = LaizeBands.getBandHeight({ band: realBand });\n const surfaceHeight = realBandHeight - verticalMarginToUse;\n const bandSurface = laizeCalcProps.BAND_WIDTH * realBandHeight;\n const potentialSurface: LaizeOperation = {\n intersectionResult: subIntersectionResult,\n bands,\n realBandHeight,\n surfaceHeight,\n bandSurface,\n horizontalMargin: horizontalMarginToUse,\n verticalMargin: verticalMarginToUse,\n };\n\n if (\n !bestSurface ||\n realBandHeight > bestSurface!.bandHeight! ||\n (realBandHeight === bestSurface.bandHeight && bandSurface > bestSurface!.bandSurface!)\n ) {\n bestSurface = potentialSurface;\n }\n }\n\n const bands = bestSurface?.bands!;\n const intersection = bestSurface!.intersectionResult!.intersection;\n\n return {\n effectiveBand: bands.effectiveBand,\n realBand: bands.realBand,\n surfaceCoords: intersection.getCoordinates(),\n surfaceArea: intersection.getArea(),\n surfaceHeight: bestSurface!.surfaceHeight,\n bandHeight: bestSurface!.realBandHeight,\n bandWidth: laizeCalcProps.BAND_WIDTH,\n roomId: roomId,\n raccordLength: isBandNextToAnother ? bestSurface!.surfaceHeight : 0,\n\n horizontalMargin: bestSurface!.horizontalMargin,\n verticalMargin: bestSurface!.verticalMargin,\n isContiguous: isContiguous,\n };\n }\n\n public static getLaizeDirection(leftPotentialOperation: any, rightPotentialOperation: any): Direction {\n if (leftPotentialOperation.surfaceHeight > rightPotentialOperation.surfaceHeight) {\n return Direction.LeftToRight;\n } else if (leftPotentialOperation.surfaceHeight < rightPotentialOperation.surfaceHeight) {\n return Direction.RightToLeft;\n } else if (leftPotentialOperation.surfaceArea < rightPotentialOperation.surfaceArea) {\n return Direction.RightToLeft;\n } else {\n return Direction.LeftToRight;\n }\n }\n\n /** Converts the laize V3 results into laize V1 results **/\n public static convertResults({ laizeResults }: ConvertResultsParams): LaizeCalculatorResult {\n let roomsBands: Array = [];\n let roomsRaccords: Array = [];\n let bandDetailsContiguous: Array = [];\n let bandsLength: Array = [];\n\n if (laizeResults.length === 0) {\n return {\n isPossible: false,\n laizeResult: 0,\n roomsBandsLength: [],\n roomsBandsDetails: [],\n roomsBandsDetailsContiguous: [],\n roomsRaccordLength: [],\n flooringDirectionByRoomId: {},\n possibleFlooringDirectionByRoomId: {},\n };\n }\n\n let i = 1;\n for (let result of laizeResults) {\n const band: LaizeBand = {\n id: i++,\n length: _.round(result.bandHeight / MapConstants.meter, 2),\n leftOverUsed: result.leftOverUsed,\n roomId: result.roomId,\n leftOverCoords: result.leftOverResult?.leftOverCoords,\n surfaceCoveredCoords: result.leftOverResult?.surfaceCoveredCoords,\n };\n\n bandDetailsContiguous.push(band);\n\n //* Only count the lengthes of new bands\n if (!result.leftOverUsed) {\n bandsLength.push(band.length);\n }\n\n let roomBands = roomsBands.find((x) => x.roomId === result.roomId);\n if (!roomBands) {\n roomBands = {\n roomId: result.roomId,\n bands: [],\n leftOverBandHasBeenReusedInThisRoom: false,\n };\n roomsBands.push(roomBands);\n }\n roomBands.bands.push(band);\n roomBands.leftOverBandHasBeenReusedInThisRoom =\n roomBands.leftOverBandHasBeenReusedInThisRoom || result.leftOverUsed;\n\n let roomRaccord = roomsRaccords.find((x) => x.roomId === result.roomId);\n if (!roomRaccord) {\n roomRaccord = { roomId: result.roomId, length: 0 };\n roomsRaccords.push(roomRaccord);\n }\n roomRaccord.length += _.round(result.raccordLength / MapConstants.meter, 2);\n }\n return {\n isPossible: true,\n laizeResult: bandsLength.reduce((a, b) => a + b, 0),\n roomsBandsLength: bandsLength,\n roomsBandsDetails: roomsBands,\n roomsBandsDetailsContiguous: bandDetailsContiguous,\n roomsRaccordLength: roomsRaccords,\n };\n }\n}\n","import React, { CSSProperties } from 'react';\n\nimport { useDebugContext } from '../../../../../Web/Context/Debug/DebugContext';\nimport { useMapContextState } from '../../../Context/MapContext';\nimport { MapConstants } from '../../../MapConstants';\nimport { PointUtils } from '../../../Utils/PointUtils';\nimport { RoomMove } from '../../../Utils/Room/RoomMove';\nimport { CoordPoint } from '../../../Utils/Types';\nimport { qSVG } from '../../../Utils/qSVG';\nimport { LaizeBandItemV3 } from './LaizeBandTrace';\n\nexport const LaizeV3Traces = () => {\n const { laizeResults = [] } = useMapContextState();\n const laizeDebug = laizeResults?.map((x) => x.calculator);\n const showTraces = Boolean(useDebugContext().state.floorPlanLaizeTraceEnabled);\n return !showTraces ? null : (\n [...acc, ...(curr?.bands_v3 ?? [])], [] as LaizeBandItemV3[])}\n />\n );\n};\n\ntype LaizeV3TraceListProps = { bands?: Array; roomId?: string };\nexport const LaizeV3TraceList = ({ bands, roomId }: LaizeV3TraceListProps) => {\n return (\n \n {bands\n ?.filter((item) => (roomId ? item.roomId === roomId : true))\n .map((item, index) => (\n \n ))}\n \n );\n};\n\nexport const Trace = (item: LaizeBandItemV3) => {\n return (\n \n {item.displayText && }\n \n \n );\n};\n\nconst Polygon = ({\n points,\n pointsWithMargins,\n color = 'red',\n strokeWidth = 1,\n type,\n bandId,\n fillColor = 'none',\n dashed = false,\n}: LaizeBandItemV3) => {\n const bandPolygonProps: React.SVGAttributes = {\n type: type,\n //@ts-ignore\n bandId: bandId,\n points: (pointsWithMargins ?? points).map((p) => `${p.x},${p.y}`).join(' '),\n stroke: color,\n strokeWidth,\n fill: fillColor,\n opacity: fillColor !== 'none' ? 0.5 : 1,\n strokeDasharray: dashed ? '10,10' : '',\n };\n return ;\n};\n\nconst Description = ({\n points,\n pointsWithMargins,\n mainText = '',\n color = 'red',\n position = 'top',\n type,\n surface,\n leftAlignText = true,\n displayText = true,\n}: LaizeBandItemV3) => {\n const meter = MapConstants.meter;\n\n const bbox = PointUtils.calculateBoundingBox({ points: pointsWithMargins ?? points })!;\n const textPos = { x: leftAlignText ? bbox.xMin : bbox.xMax - 180, y: bbox.yMin + 15 };\n const width = qSVG.measure({ x: bbox.xMin, y: bbox.yMin }, { x: bbox.xMax, y: bbox.yMin });\n const height = qSVG.measure({ x: bbox.xMin, y: bbox.yMin }, { x: bbox.xMin, y: bbox.yMax });\n\n let rotate = false;\n position = rotate ? 'bottom' : position;\n\n const textPositionX = textPos.x + (rotate ? 10 : 0);\n const textPositionY = textPos.y + (position === 'top' ? 0 : height);\n\n const textWrapperProps: React.SVGAttributes = {\n transform: `translate(${textPositionX},${textPositionY}) ${rotate ? 'rotate(-90)' : ''}`,\n };\n\n const styled: CSSProperties = { fill: color, fontSize: 16, fontFamily: 'Avenir', textAnchor: 'start' };\n\n //* WITHOUT SURFACE\n const displayedWidth = Math.round((width * 100) / meter);\n const displayedHeight = Math.round((height * 100) / meter);\n const dimensionsText = `${displayedWidth}cm x ${displayedHeight}cm`;\n\n //* WITH SURFACE\n const styledSurface: CSSProperties = {\n color: '#000000',\n fontSize: 14,\n fontFamily: 'Avenir',\n textAnchor: 'start',\n fontWeight: 'bold',\n };\n const getSurfaceText = (surface: number) => {\n const surfaceRounded = Math.round(surface / meter / 100);\n const surfaceText = `Surface couverte : ${surfaceRounded}m2`;\n return surfaceText;\n };\n\n type LabelProps = { label: string; pos: CoordPoint; styled: CSSProperties; id: string; attrs?: any };\n const Label = ({ label, pos, styled, id, attrs = {} }: LabelProps) => {\n return (\n \n {label}\n \n );\n };\n\n return !displayText ? null : (\n \n \n {!surface && (\n \n )}\n {surface && (\n \n )}\n \n );\n};\n","import { styled } from '@material-ui/styles';\nimport React, { CSSProperties, useRef } from 'react';\n\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport { Message } from '../../../../../Locales/I18nService';\nimport { ButtonVariant, CustomButton } from '../../../../../Web/Components/Views/CustomButton/CustomButton';\nimport { useIsMobile } from '../../../../../Web/Context/PlatformContext/PlatformContext';\nimport { useViewState } from '../../../../../Web/Hooks/ViewState/ViewState';\nimport { BaseDialog } from '../../../Widgets/BaseDialog';\nimport { DimensInput } from '../../../Widgets/DimensInput';\n\nexport type SizeLimit = { min: number; max: number };\n\nexport type EditWallCoteDialogProps = {\n getLimit?: () => SizeLimit;\n value?: string;\n onClose?: VoidFunction;\n onValidate: (dimens: number) => void;\n};\n\ntype EditCoteState = { dimens?: number; dimensOutOfBounds?: boolean; limit?: SizeLimit };\nexport const EditCoteDialog = ({ getLimit, value = '', onValidate, onClose }: EditWallCoteDialogProps) => {\n const { state, update } = useViewState({ dimens: parseInt(value) });\n\n const onSubmit = (e?: GestureEvent) => {\n e?.preventDefault();\n const { dimens, limit } = state;\n const dimensOutOfBounds = !(dimens! >= limit?.min! && dimens! <= limit?.max!);\n update({ dimensOutOfBounds });\n if (!dimensOutOfBounds) {\n onValidate(dimens!);\n }\n };\n React.useEffect(() => {\n if (state.dimensOutOfBounds) {\n const { dimens, limit } = state;\n const dimensOutOfBounds = !(dimens! >= limit?.min! && dimens! <= limit?.max!);\n update({ dimensOutOfBounds });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.dimens]);\n\n React.useEffect(() => {\n update({ limit: getLimit?.() });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getLimit]);\n\n const isMobile = useIsMobile();\n const inputRef = useRef(null);\n return (\n }\n subtitle={}\n onClose={onClose}>\n \n \n \n e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n onMouseUp={(e) => e.stopPropagation()}\n onTouchStart={(e) => e.stopPropagation()}\n onTouchEnd={(e) => e.stopPropagation()}\n onSubmit={onSubmit}>\n update({ dimens: parseInt(event.target.value) })}\n style={DimensStyle}\n onClick={() => inputRef.current?.focus()}\n autoFocus={!isMobile}\n />\n }\n styles={{ root: BtnStyle }}\n />\n \n \n );\n};\n\nconst Body = styled('div')({\n marginTop: 4,\n fontFamily: 'Avenir',\n fontWeight: 400,\n fontSize: 12,\n lineHeight: '16.39px',\n});\n\nconst Footer = styled('form')({\n marginTop: 17,\n display: 'flex',\n alignItems: 'center',\n border: '1px solid #13123A',\n height: 50,\n});\nconst BtnStyle: CSSProperties = { width: 128, minHeight: 48 };\nconst DimensStyle: CSSProperties = { margin: 0, background: '#FFFFFF', flex: 1 };\n","import React from 'react';\n\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport { Toast } from '../../../../../Web/Services/ToastService';\nimport { useGestureContext } from '../../../Context/GestureContext';\nimport { useMapContext, useMapContextState } from '../../../Context/MapContext';\nimport { MapConstants } from '../../../MapConstants';\nimport { IOpening } from '../../../Models/IOpening';\nimport { IRoom, RoomType } from '../../../Models/IRoom';\nimport { IRoomItem } from '../../../Models/IRoomItem';\nimport { InvalidPositionDetection } from '../../../Utils/Collisions/InvalidPositionDetection';\nimport { RoomMove } from '../../../Utils/Room/RoomMove';\nimport { CoordPoint, Wall } from '../../../Utils/Types';\nimport { WallMove } from '../../../Utils/Wall/WallMove';\nimport { WallUtils } from '../../../Utils/Wall/WallUtils';\nimport { qSVG } from '../../../Utils/qSVG';\nimport { CoteConstants, CoteEndArrow, CoteLabel, CoteLine, CoteLineEnd, CoteSizeText, CoteUtils } from '../Cotes';\nimport { EditCoteDialog } from './EditCoteDialog';\nimport { useUndoRedoMap } from '../../../Context/UndoRedoMapContext';\nimport { useScaleCoteSizeText, useTextSizeRectWidth } from './ZoomScaleComponents';\nimport { OpeningUtils } from '../../../Utils/Opening/OpeningUtils';\n\ntype BoxRibsProps = {\n readonly?: boolean;\n roomId?: string;\n walls?: Array;\n rooms?: Array;\n roomItems?: Array;\n selectedRoomId?: string;\n selectedRoomItemId?: string;\n selectedOpeningId?: string;\n type?: RoomType;\n shrinkScale?: number;\n};\nexport const MapBoxRoomsRibs = ({ readonly, roomId }: BoxRibsProps) => {\n const { selectedRoomId, selectedRoomItemId, selectedOpeningId, type, rooms = [] } = useMapContextState();\n const roomIds = rooms.filter((room) => room.type === type).map((room) => room.roomId!);\n const roomsToUse = rooms.filter((item) => roomIds.includes(item.roomId!) || !item.roomId);\n return (\n room.walls || [])}\n rooms={roomsToUse}\n roomItems={roomsToUse.flatMap((room) => room.roomItems || [])}\n selectedRoomId={selectedRoomId}\n selectedRoomItemId={selectedRoomItemId}\n selectedOpeningId={selectedOpeningId}\n readonly={readonly}\n roomId={roomId}\n />\n );\n};\n\nexport const RawBoxRoomsRibs = ({\n readonly,\n roomId,\n walls: ribWalls = [],\n rooms = [],\n roomItems = [],\n selectedRoomId,\n selectedRoomItemId,\n selectedOpeningId,\n type,\n shrinkScale,\n}: BoxRibsProps) => {\n const { rooms: allRooms = [], walls: allWalls = [], roomItems: allRoomItems = [] } = useMapContextState();\n let roomsToDisplay = rooms;\n let roomItemsToDisplay = roomItems;\n let wallsToDisplay = ribWalls;\n if (type) {\n const roomIds = rooms.filter((room) => room.type === type).map((room) => room.roomId!);\n roomsToDisplay = allRooms.filter((item) => roomIds.includes(item.roomId!) || !item.roomId);\n wallsToDisplay = allWalls.filter((item) => roomIds.includes(item.roomId!) || !item.roomId);\n roomItemsToDisplay = allRoomItems.filter((item) => roomIds.includes(item.roomId!) || !item.roomId);\n }\n const gesture = useGestureContext().state;\n const ribWallsToUse = wallsToDisplay.filter((wall) => wall.roomId === roomId || !roomId);\n const adjacentWalls = WallUtils.getWallsAdjacentList(ribWallsToUse, ribWallsToUse, roomItemsToDisplay);\n\n const showCotes = (room: IRoom) =>\n readonly ||\n (selectedRoomItemId || selectedOpeningId || gesture.roomItemId || gesture.openingId\n ? false\n : selectedRoomId\n ? room.roomId === selectedRoomId\n : true);\n return (\n \n {roomsToDisplay\n .filter((item) => (roomId ? item.roomId === roomId : true))\n .filter(showCotes)\n .map((room) => {\n return (\n \n );\n })}\n \n );\n};\n\ntype BoxWallRibsProps = {\n roomId: string;\n ribWalls: Array;\n adjacentWalls: Array>;\n withAdjacentCotes?: boolean;\n insideCoteOnly?: boolean;\n shrinkScale?: number;\n};\nconst BoxWallCotes = ({ roomId, ribWalls, adjacentWalls, insideCoteOnly, shrinkScale }: BoxWallRibsProps) => {\n const wallSize = (wall: Wall) => qSVG.measure(wall.start, wall.end);\n const [coteWallToEdit, setCoteWallToEdit] = React.useState();\n const map = useMapContext();\n const undoRedo = useUndoRedoMap();\n\n const onValidate = (dimens: number) => {\n if (coteWallToEdit) {\n undoRedo.store(map.getState());\n\n const { walls = [], rooms = [], openings = [] } = map.getState();\n const wall = WallMove.getResizeBindedWall(coteWallToEdit)!; //binding one of the siblings wall to make the resize;\n let moveResult = WallMove.prepareWallMove(coteWallToEdit, wall, dimens, openings, rooms, walls);\n if (!moveResult.wallMoveSuccess) {\n const wall = WallMove.getResizeBindedWall(coteWallToEdit, false, true)!; //retry by resetting CoteManuallySetted\n moveResult = WallMove.prepareWallMove(coteWallToEdit, wall, dimens, openings, rooms, walls);\n }\n const invalidRoomIds = InvalidPositionDetection.getInvalidRoomIds(moveResult.rooms, roomId);\n if (invalidRoomIds.length > 0) {\n Toast.error('ERROR_INVALID_WALL_MOVE');\n const undoState = undoRedo.undo();\n map.update({\n values: { ...undoState, busy: false },\n logs: { event: 'BoxWallCotes onValidate error', dimens },\n });\n } else {\n map.update({\n values: {\n walls: moveResult.walls,\n rooms: moveResult.rooms,\n openings: moveResult.openings,\n busy: false,\n },\n mapModified: true,\n logs: { event: 'BoxWallCotes onValidate success', dimens },\n });\n }\n setCoteWallToEdit(undefined);\n const room = rooms.find((x) => x.roomId === wall.roomId);\n if (room) {\n OpeningUtils.resetOpeningsPlacement(moveResult.openings, moveResult.walls);\n }\n }\n };\n\n const getWallLimits = (coteWallToEdit: Wall) => {\n const { walls = [], rooms = [], openings = [], roomItems = [] } = map.getState();\n return getMinMaxResizeWall(coteWallToEdit, walls, openings, rooms, roomItems);\n };\n\n const props: React.SVGProps = {\n id: RoomMove.roomRibsId(roomId),\n className: RoomMove.class(roomId),\n };\n return (\n \n \n {ribWalls.map((wall, index) => {\n const adjWall = adjacentWalls.find((x) => x[0] === wall);\n return (\n setCoteWallToEdit(wall)}\n shrinkScale={shrinkScale}\n />\n );\n })}\n \n {coteWallToEdit && (\n setCoteWallToEdit(undefined)}\n getLimit={() => getWallLimits(coteWallToEdit)}\n />\n )}\n \n );\n};\n\ntype WallRibCoteProps = {\n roomId: string;\n p1: CoordPoint; //start\n p2: CoordPoint; //end\n inOut: 'inside' | 'outside';\n side: string;\n value: number;\n angle: number;\n metaId: string;\n coteMeasureOffset: number;\n attrs: React.SVGProps;\n\n highlight?: boolean;\n editCote: (e?: GestureEvent) => void;\n shrinkScale?: number;\n};\nconst WallRibCote = ({\n roomId,\n p1,\n p2,\n inOut,\n side,\n value,\n angle,\n metaId,\n coteMeasureOffset = 0,\n highlight,\n editCote,\n shrinkScale,\n}: WallRibCoteProps) => {\n const startText = qSVG.middle(p1.x, p1.y, p2.x, p2.y);\n const measure = qSVG.measure(p1, p2) - coteMeasureOffset;\n const densedDisplay = value < CoteConstants.densedDisplayRuptureValue(shrinkScale);\n\n const sizeText = value.toFixed(0) + ' ' + CoteConstants.quote_unit;\n const sizeTextLength = useTextSizeRectWidth(sizeText.length);\n const fontSize = useScaleCoteSizeText();\n\n const { angle: newAngle, shiftValue, reversed } = CoteUtils.calculateShift(inOut, angle, shrinkScale);\n const densedShiftOffset = CoteUtils.calculateDensedShiftOffset(reversed, densedDisplay, shrinkScale);\n\n const props: React.SVGProps = {\n id: `wall:room-${roomId}¤side-${side}¤value-${value.toFixed(0)}metaId-${metaId ? '¤' + metaId : ''}`,\n className: 'cote',\n transform: `rotate(${newAngle} ${startText.x},${startText.y}) translate(${startText.x},${\n startText.y + (shiftValue + densedShiftOffset)\n })`,\n };\n\n return (\n \n \n \n \n \n \n\n \n \n \n );\n};\n\nconst getMinMaxResizeWall = (\n wall: Wall,\n walls: Wall[],\n openings: IOpening[] = [],\n rooms: IRoom[] = [],\n roomItems: IRoomItem[]\n) => {\n const min = wall.minimumSize!;\n const max = WallMove.MAX_UPPER_SIMULATE_LIMIT; //Math.round(WallMove.wallResizeSimulate(wall, openings, rooms, roomItems, walls));\n return { min, max };\n};\n","import { styled } from '@material-ui/styles';\nimport React from 'react';\n\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport { useIsMobile } from '../../../../../Web/Context/PlatformContext/PlatformContext';\nimport {\n InitialGestureContextState as GestureContextInitialState,\n useGestureContext,\n useMultiTouch,\n} from '../../../Context/GestureContext';\nimport { useMapContextState, useMapProvider } from '../../../Context/MapContext';\nimport { useMapViewerContext } from '../../../Context/MapViewerContext';\nimport { useUndoRedoMap } from '../../../Context/UndoRedoMapContext';\nimport { MapConstants, MapMode } from '../../../MapConstants';\nimport { IRoom, RoomShape, RoomType } from '../../../Models/IRoom';\nimport { EventUtils } from '../../../Utils/EventUtils';\nimport { RoomMove, useRoomMove } from '../../../Utils/Room/RoomMove';\nimport { CoordPoint } from '../../../Utils/Types';\n\ntype BoxWallsProps = {\n readonly?: boolean;\n roomId?: string;\n rooms?: Array;\n selectedRoomId?: string;\n type?: RoomType;\n};\nexport const MapBoxWalls = () => {\n const { rooms = [], selectedRoomId } = useMapContextState();\n return ;\n};\n\nexport const RawBoxWalls = ({ readonly, roomId, rooms = [], selectedRoomId, type }: BoxWallsProps) => {\n const { type: typeFromMap } = useMapContextState();\n return (\n \n {rooms\n .filter((item) => (roomId ? item.roomId === roomId : true))\n .filter((room) => readonly || room.type === (type || typeFromMap))\n .map((room) => (\n \n ))}\n \n );\n};\n\ntype BoxWallProps = { room: IRoom; selected?: boolean; readonly?: boolean };\n\nconst formatPoint = (coord: CoordPoint) => `${coord.x},${coord.y}`;\n\nconst BoxWall = ({ room, selected, readonly }: BoxWallProps) => {\n const { type } = useMapContextState();\n const GESTURE = useBoxWallsGesture(room);\n const gestureContext = useGestureContext();\n const allPointsPoints = room.walls?.map((w) => formatPoint(w.start)).join(' ');\n const wall = room.walls![0]!;\n const points = allPointsPoints + ' ' + formatPoint(wall.start);\n const isValid = (gestureContext.state.invalidRoomIds ?? []).indexOf(room.roomId!) === -1;\n const invalidColor = selected ? '#741313' : '#74131325';\n let validColor = '#FFFFFF';\n let stroke = '#1c1d24';\n if (!readonly) {\n if (type === RoomType.Sol) {\n validColor = selected ? '#131A3A' : '#131A3A26';\n stroke = selected ? '#131A3A' : '#131A3A';\n } else {\n validColor = selected ? '#FF7199' : '#FF719926';\n stroke = '#FF7199';\n }\n }\n\n const props: React.SVGProps = {\n id: RoomMove.roomWallsId(wall.roomId!),\n className: RoomMove.class(wall.roomId!),\n fill: readonly ? validColor : isValid ? validColor : invalidColor,\n stroke,\n strokeWidth: MapConstants.wallThickness,\n points,\n //@ts-ignore\n 'start-point': formatPoint(wall.start),\n pointerEvents: 'auto',\n };\n\n return (\n \n );\n};\n\nexport type SvgGraphProps = React.SVGProps & { isPolygon: boolean };\nconst WallSvg = ({ isPolygon, ...props }: SvgGraphProps) => {\n return isPolygon ? : ;\n};\n\n//* HOVER COLOR fill: '#18335e'\nconst WallPolygon = styled('polygon')({ '&:hover': {} });\nconst WallPolyline = styled('polyline')({ '&:hover': {} });\n\nconst useBoxWallsGesture = (room: IRoom) => {\n const isMobile = useIsMobile();\n const map = useMapProvider();\n const undoMap = useUndoRedoMap();\n const roomGesture = useRoomMove();\n const mapViewer = useMapViewerContext();\n const gestureContext = useGestureContext();\n\n const multiTouch = useMultiTouch();\n\n const onPressDown = (pressDownEvent: GestureEvent) => {\n if (!multiTouch.handleMultiTouch(pressDownEvent as React.TouchEvent)) {\n const { roomMoveInit } = map.getState();\n\n if (MapConstants.mode === undefined && !roomMoveInit) {\n gestureContext.update({ isPressDown: true });\n const snap = EventUtils.calculSnapFromSyntheticEvent(\n pressDownEvent,\n MapConstants.grid_snap,\n mapViewer.value!,\n (mapViewer.svgViewer as any)?.ViewerDOM\n );\n const mapState = map.getState();\n undoMap.store(mapState);\n map.update({\n values: {\n roomMove: room.roomId,\n roomMoveInit: roomGesture.pressDownRoom(\n snap,\n mapState.rooms?.find((r) => r.roomId === room.roomId)!\n ),\n panZoomDisabled: true,\n },\n logs: { event: 'useBoxWallsGesture onPressDown' },\n });\n MapConstants.mode = MapMode.MODE_TYPE_MOVE_ROOM;\n }\n }\n };\n\n const onMouseUp = () => {\n const { isPressDown, menuContextOpenRoomId } = gestureContext.getState();\n if (\n !isMobile &&\n isPressDown &&\n menuContextOpenRoomId !== room.roomId &&\n MapConstants.mode === MapMode.MODE_TYPE_MOVE_ROOM\n ) {\n gestureContext.update({ ...GestureContextInitialState, menuContextOpenRoomId: room.roomId });\n if (map.getState().selectedRoomId !== room.roomId && !isMobile) {\n map.setPanel({ values: { selectedRoomId: room.roomId, panZoomDisabled: false, busy: false } });\n }\n MapConstants.mode = undefined;\n }\n };\n\n const onTouchEnd = React.useCallback(\n (event: GestureEvent) => {\n const isPressDown = gestureContext.state.isPressDown;\n if (\n isPressDown &&\n MapConstants.mode !== MapMode.MODE_TYPE_OPENING_PLACING &&\n MapConstants.mode !== MapMode.MODE_TYPE_ROOM_ITEM_PLACING\n ) {\n if (gestureContext.state.menuContextOpenRoomId !== room.roomId) {\n gestureContext.update({ ...GestureContextInitialState, menuContextOpenRoomId: room.roomId });\n } else {\n gestureContext.clear();\n }\n map.setPanel({ values: { panZoomDisabled: false, busy: false } });\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [gestureContext.state.isPressDown, gestureContext.state.menuContextOpenRoomId]\n );\n\n return { onPressDown, onMouseUp, onTouchEnd };\n};\n","import { useMapViewerContext } from \"../../../Context/MapViewerContext\";\n\nconst ZOOM_LIMIT = 0.33;\n\nexport const useMapZoomScale = () => {\n const mapZoom = useMapViewerContext().value?.a ?? 1;\n const scale = mapZoom > 1 ? 1 : 1 / mapZoom;\n return scale;\n};\n\n\nexport function toCoteSizeText(defaultSize: number, mapZoom: number = 1): number {\n let fontSize = 14;\n let keepSize = 14;\n const textSize = fontSize * mapZoom;\n if (textSize > defaultSize) {\n fontSize = defaultSize;\n console.log('useMapViewerContext max', { fontSize, mapZoom, textSize, defaultSize });\n } else if (textSize < keepSize && textSize > 5) {\n fontSize = keepSize;\n console.log('useMapViewerContext keep size', { fontSize, mapZoom, textSize, defaultSize });\n } else {\n fontSize = textSize;\n console.log('useMapViewerContext return', { fontSize, mapZoom, textSize, defaultSize });\n }\n\n return fontSize;\n}\n\nexport function useScaleCoteSizeText(defaultSize: number = 14): number {\n const mapZoom = useMapViewerContext().value.a;\n const scale = (mapZoom > 1 || mapZoom < ZOOM_LIMIT) ? 1 : 1 / mapZoom;\n const size = scale * defaultSize;\n return size;\n}\n\nexport const useTextSizeRectWidth = (sizeTextLength: number) => {\n const mapZoom = useMapViewerContext().value.a;\n const scale = (mapZoom > 1 || mapZoom < ZOOM_LIMIT) ? 1 : 1 / mapZoom;\n const textSizeRectWidth = sizeTextLength * scale;\n return textSizeRectWidth;\n}\n\nexport const useMapZoomScaleWithLimit = (shrinkScale: number = 1) => {\n const mapZoom = useMapViewerContext().value?.a ?? 1;\n const scale = (mapZoom > 1 || mapZoom < ZOOM_LIMIT) ? 1 : 1 / mapZoom;\n return scale / shrinkScale;\n};","import React, { CSSProperties } from 'react';\n\nimport { GestureEvent } from '../../../../Events/withEvent';\nimport { ThemeRes } from '../../../../Web/Themes/ThemeRes';\nimport { useMultiTouch } from '../../Context/GestureContext';\nimport { useMapZoomScaleWithLimit, useScaleCoteSizeText } from './BoxWalls/ZoomScaleComponents';\n\nexport const CoteConstants = {\n quote_unit: 'cm',\n\n fontSize: (shrinkRatio: number = 1) => 14 / shrinkRatio,\n shift: (shrinkRatio: number = 1) => 7 / shrinkRatio,\n offsetShift: (shrinkRatio: number = 1) => 25 / shrinkRatio,\n labelHeight: (shrinkRatio: number = 1) => 24 / shrinkRatio,\n distanceLineEndObj: (shrinkRatio: number = 1) => 5 / shrinkRatio,\n arrowSize: (shrinkRatio: number = 1) => 8 / shrinkRatio,\n charMonospace: (shrinkRatio: number = 1) => 9.5 / shrinkRatio,\n densedDisplayRuptureValue: (shrinkRatio: number = 1) => 80 / shrinkRatio,\n};\n\ntype CoteLineProps = { measure: number } & React.SVGAttributes;\nexport const CoteLine = ({ measure, ...rest }: CoteLineProps) => {\n const props: React.SVGProps = {\n x1: -measure / 2,\n x2: measure / 2,\n y1: 0,\n y2: 0,\n stroke: '#424448',\n strokeWidth: 1,\n ...rest,\n };\n return ;\n};\n\ntype CoteLineEndProps = { x: number; shiftValue: number; reversed: boolean; inOut: string; shrinkScale?: number };\nexport const CoteLineEnd = ({ x, shiftValue, reversed, inOut, shrinkScale }: CoteLineEndProps) => {\n const props = {\n x1: x,\n y1: reversed && inOut !== 'inside' ? 8 : -8,\n x2: x,\n y2:\n -shiftValue +\n //@ts-ignore\n (reversed ^ (inOut === 'inside')\n ? CoteConstants.distanceLineEndObj(shrinkScale)\n : -CoteConstants.distanceLineEndObj(shrinkScale)),\n stroke: '#464646a6', //side != 'inside' ? \"#c0c0c0\" : \"#263740\",\n strokeWidth: 1,\n };\n return ;\n};\ntype CoteEndArrowProps = { x: number; reversed?: boolean; shrinkScale?: number };\nexport const CoteEndArrow = ({ x, reversed, shrinkScale }: CoteEndArrowProps) => {\n const arrowSize = CoteConstants.arrowSize(shrinkScale);\n const props = {\n points: reversed\n ? x + ',' + 0 + ' ' + (x + arrowSize) + ',' + arrowSize / 2 + ' ' + (x + arrowSize) + ',' + -arrowSize / 2\n : x + ',' + 0 + ' ' + (x - arrowSize) + ',' + arrowSize / 2 + ' ' + (x - arrowSize) + ',' + -arrowSize / 2,\n fill: '#424448',\n };\n return ;\n};\n\ntype CoteLabelProps = { textLength: number; highlight?: boolean; shrinkScale?: number } & React.SVGAttributes;\nexport const CoteLabel = ({ textLength, highlight, shrinkScale, ...attrs }: CoteLabelProps) => {\n const labelWidth = CoteConstants.charMonospace(shrinkScale) * textLength;\n const labelHeight = useScaleCoteSizeText(CoteConstants.labelHeight(shrinkScale));\n const props: React.SVGAttributes = {\n width: labelWidth,\n height: labelHeight,\n x: -labelWidth / 2,\n y: -labelHeight / 2,\n fill: '#FFFFFF',\n stroke: highlight ? '#424448' : '#D6D6D6',\n strokeWidth: highlight ? 2 : 1,\n ...attrs,\n };\n return ;\n};\n\ntype CoteSizeTextProps = {\n text: string;\n fontSize?: number;\n angle?: number;\n onClick?: (e: GestureEvent) => void;\n shrinkScale?: number;\n} & React.SVGAttributes;\nexport const CoteSizeText = ({ text, fontSize = 14, angle, onClick, shrinkScale, ...attrs }: CoteSizeTextProps) => {\n const style: CSSProperties = {\n cursor: 'pointer',\n transform: angle === -270 || angle === 90 ? 'rotate(180deg)' : 'none',\n };\n\n const multiTouch = useMultiTouch();\n const handleTouchEnd = (event: GestureEvent) => {\n if (!multiTouch.handleMultiTouch(event as React.TouchEvent)) {\n onClick?.(event);\n }\n };\n\n let scale = useMapZoomScaleWithLimit(shrinkScale);\n return (\n \n {text}\n \n );\n};\n\nexport class CoteUtils {\n public static calculateShift = (side: string, angle: number, shrinkScale?: number) => {\n let shiftValue =\n side === 'inside' ? CoteConstants.shift(shrinkScale) * 5 : -CoteConstants.shift(shrinkScale) * 5;\n let reversed = false;\n if (angle > 90 || angle < -89) {\n angle -= 180;\n reversed = true;\n shiftValue = -shiftValue;\n }\n return { angle, shiftValue, reversed };\n };\n\n public static calculateDensedShiftOffset(reversed: boolean, densedDisplay: boolean, shrinkScale?: number) {\n if (!densedDisplay) {\n return 0;\n }\n return reversed ? CoteConstants.offsetShift(shrinkScale) : -CoteConstants.offsetShift(shrinkScale);\n }\n}\n","import React from 'react';\n\nexport const IconModify = ({ style }: React.SVGAttributes) => {\n return (\n \n \n \n \n );\n};\n\nexport const IconMove = ({ style }: React.SVGAttributes) => {\n return (\n \n \n \n );\n};\n\nexport const IconDuplicate = ({ style }: React.SVGAttributes) => {\n return (\n \n \n \n );\n};\n\nexport const IconDelete = ({ style }: React.SVGAttributes) => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport const IconAddOpenig = ({ style }: React.SVGAttributes) => {\n return (\n \n \n \n \n \n \n \n );\n};\n","import { styled } from '@material-ui/core';\nimport React from 'react';\n\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport * as Icons from './ContextIconMenu';\nimport { I18n } from '../../../../../Locales/I18nService';\nimport classNames from 'classnames';\n\ntype MenuItemProps = {\n onClick?: (event?: GestureEvent) => void;\n icon?: React.ReactNode;\n title?: React.ReactNode;\n hasWhiteHoverStroke?: boolean;\n showOnMobile?: boolean;\n};\n\nexport const Modify = (props: MenuItemProps) => {\n return } title={I18n.get('MapContextMenu_Modify')} {...props} />;\n};\n\nexport const Move = (props: MenuItemProps) => {\n return (\n }\n title={I18n.get('MapContextMenu_Move')}\n hasWhiteHoverStroke\n />\n );\n};\n\nexport const Duplicate = (props: MenuItemProps) => {\n return (\n }\n title={I18n.get('MapContextMenu_Duplicate')}\n hasWhiteHoverStroke\n />\n );\n};\n\nexport const AddOpening = (props: MenuItemProps) => {\n return } title={I18n.get('MapContextMenu_Add')} />;\n};\n\nexport const Delete = (props: MenuItemProps) => {\n return (\n }\n title={I18n.get('MapContextMenu_Delete')}\n hasWhiteHoverStroke\n />\n );\n};\n\n//#region //* BASE LIST ITEM\n\nconst BaseMenuItem = ({ onClick, icon, title, hasWhiteHoverStroke, showOnMobile }: MenuItemProps) => {\n const classname = classNames({ whiteHoverStroke: hasWhiteHoverStroke, showOnMobile });\n return (\n \n {icon}\n {title}\n \n );\n};\n\nconst Container = styled('div')({\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n height: 42,\n color: '#000000',\n '@media (hover)': {\n '&:hover': { background: '#13123A', color: '#FFFFFF' },\n '&:hover.whiteHoverStroke': { stroke: '#FFFFFF' },\n },\n '&.showOnMobile': {\n display: 'none',\n [`@media (max-width: ${900}px)`]: { display: 'flex' },\n },\n});\n\nconst IconContainer = styled('div')({ width: 42, display: 'flex', justifyContent: 'center' });\n\nconst Title = styled('div')({\n fontFamily: 'Avenir',\n fontWeight: 400,\n fontSize: 14,\n lineHeight: '14px',\n});\n\nexport const Divider = styled('div')({\n margin: '0px 9px',\n borderTop: '1px solid #EFEFEF',\n '&.showOnMobile': {\n display: 'none',\n [`@media (max-width: ${900}px)`]: { display: 'flex' },\n },\n});\n\n//#endregion\n","import { Popover } from '@material-ui/core';\nimport { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport { useGestureContext } from '../../../Context/GestureContext';\nimport { useUpdateMapContext } from '../../../Context/MapContext';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\nexport const useMenuContext = () => {\n const menuAnchorEl = React.useRef(null);\n const [showMenuContext, setShowMenuContext] = React.useState(false);\n\n const onClick = (e?: GestureEvent) => {\n e?.stopPropagation();\n setShowMenuContext((prev) => !prev);\n };\n const gestureContext = useGestureContext();\n\n const updateMap = useUpdateMapContext();\n\n const show = () => setShowMenuContext(true);\n const close = React.useCallback((e?: GestureEvent) => {\n e?.preventDefault();\n setShowMenuContext(false);\n gestureContext.clearMenuContext();\n updateMap({\n values: { roomMove: undefined, roomMoveInit: undefined },\n logs: { event: 'close MenuContext' },\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const PopupMenu = React.useCallback(\n ({ children }: React.PropsWithChildren) => {\n return (\n {}}>\n \n {children}\n \n );\n },\n [showMenuContext, close]\n );\n\n return { menuAnchorEl, showMenuContext, toggleShowMenu: onClick, PopupMenu, close, show };\n};\n\nexport const MenuContentPaperStyle: CSSProperties = {\n padding: 0,\n borderRadius: 0,\n backgroundColor: 'transparent',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n boxShadow: 'none',\n};\n\nconst Triangle = styled('div')({\n borderLeft: '10px solid transparent',\n borderRight: '10px solid transparent',\n borderTop: '10px solid transparent',\n borderBottom: '10px solid white',\n});\n\nconst Container = styled(Stack)({\n width: 125,\n backgroundColor: 'white',\n margin: '0 8px 8px 8px',\n boxShadow: '-4px 4px 4px rgba(0, 0, 0, 0.25)',\n});\n","import React from 'react';\n\nimport { GestureEvent } from '../../../../../Events/withEvent';\n\ntype MenuDeleteDialogParams = { confirmDelete?: VoidFunction };\nexport const useMenuDeleteDialog = ({ confirmDelete }: MenuDeleteDialogParams) => {\n const [showDelete, setShowDelete] = React.useState(false);\n const requestDelete = (e?: GestureEvent) => {\n setShowDelete(true);\n };\n const onDelete = () => {\n setShowDelete(false);\n confirmDelete?.();\n };\n\n const close = (from?: string) => {\n setShowDelete(false);\n };\n\n return { showDelete, onDelete, requestDelete, close };\n};\n","import React from 'react';\n\nimport { Theme, styled } from '@material-ui/core/styles';\nimport { MapConstants, MapMode } from '../../../MapConstants';\nimport { IOpening, OpeningType } from '../../../Models/IOpening';\nimport * as ContextMenuItem from '../MenuContext/ContextMenuItems';\nimport * as CarpentryFactory from './CarpentryFactory';\n\nimport { makeStyles } from '@material-ui/styles';\nimport { useIsMobile } from '../../../../../Web/Context/PlatformContext/PlatformContext';\nimport { useMapContextState } from '../../../Context/MapContext';\nimport { RoomMove } from '../../../Utils/Room/RoomMove';\nimport { useOpeningGestureController } from './OpeningGestureController';\nimport { YesNoChoiceDialog } from '../../../../../Web/Pages/Projects/Components/ChoiceDialog/YesNoChoiceDialog';\n\ntype PlacingOpeningProps = { item: IOpening; readonly?: boolean };\nexport const PlacingOpening = ({ item, readonly }: PlacingOpeningProps) => {\n //! hinge?: string; //! ALWAYS 'normal'\n //const hingeStatus = item.hinge || 'hinge'; //* normal - reverse\n const hingeStatus = 'normal';\n const hingeUpdate = hingeStatus === 'normal' ? 1 : -1;\n const containerPosition = `translate(${item.x || 0},${item.y || 0}) scale(${hingeUpdate}, 1)`;\n const transform = `rotate(${item.angle},0,0)`;\n const type = item.type;\n const size = item.size!;\n\n const selected = useMapContextState().selectedOpeningId === item.openingId;\n\n const { onMove, onDuplicate, onModify, onDelete, menuContext, deleteDialog, gestures } =\n useOpeningGestureController(item);\n const gesturesToUse = readonly ? {} : gestures;\n const isMobile = useIsMobile();\n const classes = useStyles({ isMoving: item.isMoving, mode: MapConstants.mode, selected, readonly, isMobile });\n const readonlyStyle = `\n .CarpentryMoving { display: none }\n .inline { stroke: ${CarpentryFactory.OpeningDefaultColor} }\n .outline { stroke: ${CarpentryFactory.OpeningStrokeColor} }\n .incircle { display: none }\n .outcircle { display: inline; fill: ${CarpentryFactory.OpeningDefaultColor}; stroke: ${CarpentryFactory.OpeningStrokeColor} }\n .picto { fill: ${CarpentryFactory.OpeningStrokeColor} }\n .CarpentryMoving { display: none }\n `;\n return (\n \n \n \n \n {type === OpeningType.Door && }\n {type === OpeningType.ArmoredDoor && (\n \n )}\n {type === OpeningType.FrenchDoor && (\n \n )}\n {type === OpeningType.FrontDoor && }\n {type === OpeningType.PatioDoor && }\n {type === OpeningType.Window && }\n {type === OpeningType.Opening && }\n {!readonly && }\n \n \n \n \n \n \n \n \n \n \n \n {deleteDialog.showDelete && (\n deleteDialog.close('FROM_onClickNo')}\n onClose={() => deleteDialog.close('FROM_onClose')}\n enableCloseOutside={false}\n noHighlight\n />\n )}\n \n );\n};\nconst readonlyStyle = `\n .CarpentryMoving { display: none }\n .inline { stroke: ${CarpentryFactory.OpeningDefaultColor} }\n .outline { stroke: ${CarpentryFactory.OpeningStrokeColor} }\n .incircle { display: none }\n .outcircle { display: inline; fill: ${CarpentryFactory.OpeningDefaultColor}; stroke: ${CarpentryFactory.OpeningStrokeColor} }\n .picto { fill: ${CarpentryFactory.OpeningStrokeColor} }\n .CarpentryMoving { display: none }\n `;\nconst GroupMovable = styled('g')({});\nconst Group = styled('g')({ cursor: 'pointer' });\n\ntype IStyleProps = { isMoving?: boolean; mode?: string; selected?: boolean; readonly?: boolean; isMobile?: boolean };\nconst useStyles = makeStyles({\n root: (props: IStyleProps) => ({\n cursor: props.readonly ? 'default' : 'move',\n '& .CarpentryMoving': { display: props.isMoving ? 'inline' : 'none' },\n '& .inline':\n props.selected || props.isMoving\n ? { stroke: CarpentryFactory.OpeningStrokeColor }\n : { stroke: CarpentryFactory.OpeningDefaultColor },\n '& .outline': props.isMoving\n ? { stroke: CarpentryFactory.OpeningStrokeColor }\n : props.selected\n ? { stroke: 'white' }\n : { stroke: CarpentryFactory.OpeningStrokeColor },\n '& .incircle': props.isMoving ? { display: 'inline' } : { display: 'none' },\n '& .outcircle': props.isMoving\n ? { display: 'none' }\n : {\n display: 'inline',\n fill: props.selected ? '#0F0E2D' : CarpentryFactory.OpeningDefaultColor,\n stroke: props.selected ? 'white' : CarpentryFactory.OpeningStrokeColor,\n },\n '& .picto': { fill: props.selected ? 'white' : CarpentryFactory.OpeningStrokeColor },\n '&:hover':\n props.mode !== MapMode.MODE_TYPE_OPENING_PLACING && !props.readonly && !props.isMobile\n ? {\n '& .CarpentryMoving': { display: 'inline' },\n '& .inline': { stroke: CarpentryFactory.OpeningStrokeColor },\n '& .incircle': { display: 'inline' },\n '& .outcircle': { display: 'none' },\n }\n : {},\n }),\n});\n","import React from 'react';\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport { ObjectUtils } from '../../../../../Helpers/ObjectUtils';\nimport { useIsMobile } from '../../../../../Web/Context/PlatformContext/PlatformContext';\nimport { useGestureContext, useMultiTouch } from '../../../Context/GestureContext';\nimport { useMapProvider } from '../../../Context/MapContext';\nimport { OpeningFactory } from '../../../Helpers/BaseOpeningFactory';\nimport { MapConstants, MapMode } from '../../../MapConstants';\nimport { IOpening } from '../../../Models/IOpening';\nimport { useMenuContext } from '../MenuContext/MenuContext';\nimport { useMenuDeleteDialog } from '../MenuContext/MenuDeleteDialog';\nimport { useUndoRedoMap } from '../../../Context/UndoRedoMapContext';\n\nexport const useOpeningGestureController = (item: IOpening) => {\n const map = useMapProvider();\n const isMobile = useIsMobile();\n const multiTouch = useMultiTouch();\n const menuContext = useMenuContext();\n const undoRedo = useUndoRedoMap();\n const gestureContext = useGestureContext();\n\n const onPressDown = React.useCallback(\n (event: GestureEvent) => {\n if (!multiTouch.handleMultiTouch(event as React.TouchEvent)) {\n if (!menuContext.showMenuContext && !MapConstants.mode) {\n undoRedo.store(map.getState());\n\n gestureContext.update({ isPressDown: true, openingId: item.openingId });\n const { openings = [] } = map.getState();\n const updatedOpenings = openings.map((o) => {\n if (o.openingId === item.openingId) o.isMoving = true;\n return o;\n });\n const openingMoveOrPlacingInit = ObjectUtils.clone(openings.find((o) => o.openingId === item.openingId));\n map.update({\n values: { openingMoveOrPlacingInit, openings: updatedOpenings, panZoomDisabled: true, busy: true },\n logs: { event: 'useOpeningGestureController onPressDown', openingMoveOrPlacingInit },\n });\n MapConstants.mode = MapMode.MODE_TYPE_OPENING_MOVE;\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [menuContext.showMenuContext]\n );\n\n const onMouseUp = React.useCallback(\n (event: GestureEvent) => {\n if (!isMobile && gestureContext.getState().isPressDown && !menuContext.showMenuContext) {\n menuContext.show();\n const { selectedOpeningId } = map.getState();\n if (selectedOpeningId !== item.openingId) {\n map.setPanel({\n values: { selectedOpeningId: item.openingId, panZoomDisabled: false, busy: false },\n });\n }\n gestureContext.clear();\n MapConstants.mode = undefined;\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [menuContext.showMenuContext, isMobile]\n );\n\n const onTouchEnd = React.useCallback(\n (event: GestureEvent) => {\n event.preventDefault(); //To prevent mouse events being fired\n if (menuContext.showMenuContext) {\n menuContext.close();\n event.stopPropagation(); //To prevent TouchEndController being fired\n }\n if (gestureContext.getState().isPressDown && !menuContext.showMenuContext) {\n menuContext.show();\n map.setPanel({ values: { panZoomDisabled: false, busy: false } });\n gestureContext.clearMenuContext();\n MapConstants.mode = undefined;\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [menuContext.showMenuContext]\n );\n\n //* ACTIONS\n const onMove = React.useCallback((event?: GestureEvent) => {\n if (!MapConstants.mode) {\n menuContext.close();\n const { openings = [] } = map.getState();\n const updatedOpenings = openings.map((o) => {\n if (o.openingId === item.openingId) o.isMoving = true;\n return o;\n });\n map.setPanel({ values: { openings: updatedOpenings, panZoomDisabled: true, busy: true } });\n gestureContext.update({ openingId: item.openingId });\n MapConstants.mode = MapMode.MODE_TYPE_OPENING_MOVE;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const deleteDialog = useMenuDeleteDialog({ confirmDelete: () => map.deleteOpening(item.openingId!) });\n\n const onModify = React.useCallback((event?: GestureEvent) => {\n if (!MapConstants.mode) {\n menuContext.close();\n map.setPanel({ values: { selectedOpeningId: item.openingId } });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onDuplicate = React.useCallback((event?: GestureEvent) => {\n if (!MapConstants.mode) {\n menuContext.close();\n const openings = map.getState().openings || [];\n const baseOpening = openings.find((o) => o.openingId === item.openingId)!;\n\n const name = OpeningFactory.getNewName(baseOpening, openings);\n const newOpening = OpeningFactory.createOpening({\n ...baseOpening,\n name,\n x: undefined,\n y: undefined,\n limit: [],\n });\n const updatedOpenings = [...openings, newOpening];\n map.setPanel({\n values: { openings: updatedOpenings, panZoomDisabled: true, busy: true },\n mapModified: true,\n });\n gestureContext.update({ openingId: newOpening.openingId });\n MapConstants.mode = MapMode.MODE_TYPE_OPENING_PLACING;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onDelete = React.useCallback((event?: GestureEvent) => {\n if (!MapConstants.mode) {\n menuContext.close();\n deleteDialog.requestDelete();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return {\n onMove,\n onModify,\n onDuplicate,\n onDelete,\n gestures: {\n onMouseDown: onPressDown,\n onMouseUp,\n onTouchStart: onPressDown,\n onTouchEnd,\n },\n menuContext,\n deleteDialog,\n };\n};\n","import React from 'react';\n\nimport { useMapContextState } from '../../../Context/MapContext';\nimport { IOpening } from '../../../Models/IOpening';\nimport { RoomType } from '../../../Models/IRoom';\nimport { PlacingOpening } from './BoxBindOpening';\nimport { useGestureContext } from '../../../Context/GestureContext';\n\ntype CarpentryItemsProps = { readonly?: boolean; roomId?: string; openings?: Array; type?: RoomType };\nexport const MapBoxCarpentryItems = () => {\n const { type, openings = [], rooms = [] } = useMapContextState();\n const roomIds = rooms.filter((room) => room.type === type).map((room) => room.roomId!);\n const openingsToDisplay = openings.filter((item) => roomIds.includes(item.roomId!) || !item.roomId);\n return ;\n};\n\nexport const RawCarpentryItems = ({ openings = [], readonly, roomId, type }: CarpentryItemsProps) => {\n const gestureContext = useGestureContext();\n const { rooms = [] } = useMapContextState();\n let openingsToDisplay = openings;\n if (type) {\n const roomIds = rooms.filter((room) => room.type === type).map((room) => room.roomId!);\n openingsToDisplay = openingsToDisplay.filter((item) => roomIds.includes(item.roomId!) || !item.roomId);\n }\n return (\n \n {openingsToDisplay\n .filter((item) => {\n return roomId\n ? item.roomId === roomId && !gestureContext.state.invalidOpeningIds?.includes(item.openingId!)\n : true;\n })\n .map((opening) => (\n \n ))}\n \n );\n};\n\ntype CarpentryOpeningItemProps = { item: IOpening; readonly?: boolean };\nconst CarpentryOpeningItem = ({ item, readonly }: CarpentryOpeningItemProps) => {\n return (\n \n \n \n );\n};\n","import React from 'react';\n\nimport { Assets } from '../../../../../Web/assets/Assets';\nimport { CarpentryPicto } from './CarpentryPicto';\n\n//! from CarpentryCalc\n\nconst picto_size = 13;\nconst picto_circle_size = 14;\nexport const OpeningDefaultColor = '#D5D6DB';\nexport const OpeningStrokeColor = '#13123A';\n\ntype CarpentryItemProps = {\n size: number;\n transform: string;\n iconTransform?: string;\n attrs?: React.SVGAttributes;\n};\n\nconst Item: React.FC = ({ size, transform, iconTransform, attrs, children }) => {\n return (\n \n \n \n \n \n \n {children}\n \n \n );\n};\n\nexport const Door = (props: CarpentryItemProps) => {\n const iconTransform = 'scale(0.30), translate(-24, -28)';\n return (\n \n \n \n );\n};\n\nexport const ArmoredDoor = (props: CarpentryItemProps) => {\n const iconTransform = 'scale(0.30), translate(-24, -28)';\n return (\n \n \n \n );\n};\n\nexport const FrenchDoor = (props: CarpentryItemProps) => {\n const iconTransform = 'scale(0.30), translate(-24, -28)';\n return (\n \n \n \n );\n};\n\nexport const FrontDoor = (props: CarpentryItemProps) => {\n const iconTransform = 'scale(0.60), translate(-18.65, -17)';\n return (\n \n \n \n );\n};\n\nexport const PatioDoor = (props: CarpentryItemProps) => {\n const iconTransform = 'scale(0.30), translate(-26, -28)';\n return (\n \n \n \n );\n};\n\nexport const Window = (props: CarpentryItemProps) => {\n const iconTransform = 'scale(0.30), translate(-26, -28)';\n return (\n \n \n \n );\n};\n\nexport const Opening = (props: CarpentryItemProps) => {\n const iconTransform = 'scale(0.30), translate(-26, -28)';\n return (\n \n \n \n );\n};\n\nexport const Moving = (props: CarpentryItemProps) => {\n const iconTransform = 'translate(-11, -11)';\n return (\n \n \n \n );\n};\n","import React from 'react';\n\nexport class CarpentryPicto {\n public static Door = () => {\n return (\n <>\n \n \n \n );\n };\n\n public static ArmoredDoor = () => {\n return (\n <>\n \n \n \n );\n };\n\n public static FrenchDoor = () => {\n return (\n <>\n \n \n \n \n \n \n );\n };\n\n public static FrontDoor = () => {\n return (\n <>\n \n \n \n \n );\n };\n\n public static PatioDoor = () => {\n return (\n \n );\n };\n\n public static Window = () => {\n return (\n <>\n \n \n \n \n \n \n \n \n );\n };\n\n public static Opening = () => {\n return (\n \n );\n };\n}\n","import { makeStyles, styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\n\nimport { Theme } from '@material-ui/core';\nimport { useIsMobile } from '../../../../../Web/Context/PlatformContext/PlatformContext';\nimport { useGestureContext } from '../../../Context/GestureContext';\nimport { useMapContextState } from '../../../Context/MapContext';\nimport { MapConstants, MapMode } from '../../../MapConstants';\nimport { RoomType } from '../../../Models/IRoom';\nimport { IRoomItem, RoomItemType } from '../../../Models/IRoomItem';\nimport { RoomMove } from '../../../Utils/Room/RoomMove';\nimport * as ContextMenuItem from '../MenuContext/ContextMenuItems';\nimport { useRoomItemGestureController } from './RoomItemGestureController';\nimport * as IconFactory from './RoomItemIconFactory';\nimport {\n RoomItemDefaultColor,\n RoomItemInvalidColor,\n RoomItemSelectedColor,\n RoomItemSelectedInvalidColor,\n RoomItemStrokeColor,\n} from './RoomItemIconFactory';\nimport { YesNoChoiceDialog } from '../../../../../Web/Pages/Projects/Components/ChoiceDialog/YesNoChoiceDialog';\nimport { formatPoint } from '../../Laizes/Dialog/Widgets/MapUIWalls';\n\ntype PlacingRoomItemProps = { item: IRoomItem; readonly?: boolean };\nexport const PlacingRoomItem = ({ item, readonly }: PlacingRoomItemProps) => {\n const gestureContext = useGestureContext();\n const position = item.graphTranslation!;\n const containerPosition = `translate(${position.x},${position.y})`;\n const { selectedRoomItemId, rooms = [] } = useMapContextState();\n const type = rooms.find((r) => r.roomId === item.roomId)?.type!;\n const selected = selectedRoomItemId === item.roomItemId;\n const { onMove, onDuplicate, onModify, onDelete, menuContext, deleteDialog, gestures } =\n useRoomItemGestureController(item);\n const isMobile = useIsMobile();\n const isValid = (gestureContext.state.invalidRoomItemIds ?? []).indexOf(item.roomItemId!) === -1;\n const classes = useStyles({\n isMoving: item.isMoving,\n selected,\n mode: MapConstants.mode,\n readonly,\n isMobile,\n isValid,\n otherItemMoving: gestureContext.state.roomItemId !== item.roomItemId,\n type,\n });\n\n const gesturesToUse = readonly ? {} : gestures;\n const readonlyStyle: CSSProperties = { fill: RoomItemDefaultColor[type], stroke: RoomItemStrokeColor[type] };\n return (\n \n \n \n \n \n \n {/* Sol */}\n {item.type === RoomItemType.ShowerBathtub && }\n {item.type === RoomItemType.FixedFurniture && }\n {item.type === RoomItemType.Cupboard && }\n {item.type === RoomItemType.KitchenFurniture && }\n {item.type === RoomItemType.Trap && }\n {item.type === RoomItemType.Fireplace && }\n {item.type === RoomItemType.Opening && }\n {item.type === RoomItemType.Stairs && }\n {item.type === RoomItemType.Divider && }\n {item.type === RoomItemType.HeavyElement && }\n {item.type === RoomItemType.SewerPlate && }\n {/* Walls */}\n {item.type === RoomItemType.Door && }\n {item.type === RoomItemType.Window && }\n {item.type === RoomItemType.UnlaidArea && }\n \n {!readonly && }\n \n \n \n \n \n \n \n \n \n \n \n {deleteDialog.showDelete && (\n deleteDialog.close('FROM_onClickNo')}\n onClose={() => deleteDialog.close('FROM_onClose')}\n enableCloseOutside={false}\n noHighlight\n />\n )}\n \n );\n};\n\nconst GroupMovable = styled('g')({});\nconst Group = styled('g')({ cursor: 'pointer', stroke: '#18335e' });\n\ninterface IStyleProps {\n isMoving?: boolean;\n selected?: boolean;\n mode?: string;\n readonly?: boolean;\n isMobile?: boolean;\n isValid?: boolean;\n otherItemMoving?: boolean;\n type?: RoomType;\n}\n\nconst useStyles = makeStyles({\n root: (props: IStyleProps) => ({\n cursor: props.readonly ? 'default' : 'move',\n '& .RoomItemMoving': { display: props.isMoving ? 'inline' : 'none' },\n '& .RoomItemPicto': { display: props.isMoving ? 'none' : 'inline' },\n '&:hover':\n props.mode !== MapMode.MODE_TYPE_ROOM_ITEM_PLACING &&\n !props.readonly &&\n !props.isMobile &&\n !props.otherItemMoving\n ? {\n '& .RoomItemMoving': { display: 'inline' },\n '& .RoomItemPicto': { display: 'none' },\n fill: props.isValid\n ? RoomItemSelectedColor[props.type!]\n : RoomItemSelectedInvalidColor[props.type!],\n }\n : {},\n fill: getColor(props.selected!, props.isMoving!, props.readonly!, props.isValid!, props.type!),\n stroke: RoomItemStrokeColor[props.type!],\n }),\n});\nconst getColor = (selected: boolean, isMoving: boolean, readonly: boolean, isValid: boolean, type: RoomType) => {\n if (!isValid && (isMoving || selected)) return RoomItemSelectedInvalidColor[type!];\n if (!isValid) return RoomItemInvalidColor[type!];\n if (isMoving) return RoomItemSelectedColor[type!];\n if (selected) return RoomItemSelectedColor[type!];\n if (readonly) return RoomItemDefaultColor[type!];\n return RoomItemDefaultColor[type!];\n};\n","import React from 'react';\n\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport { useIsMobile } from '../../../../../Web/Context/PlatformContext/PlatformContext';\nimport { useGestureContext, useMultiTouch } from '../../../Context/GestureContext';\nimport { useMapProvider } from '../../../Context/MapContext';\nimport { useUndoRedoMap } from '../../../Context/UndoRedoMapContext';\nimport { RoomItemFactory } from '../../../Helpers/BaseRoomItemFactory';\nimport { MapConstants, MapMode } from '../../../MapConstants';\nimport { IRoomItem } from '../../../Models/IRoomItem';\nimport { useMenuContext } from '../MenuContext/MenuContext';\nimport { useMenuDeleteDialog } from '../MenuContext/MenuDeleteDialog';\nimport { ObjectUtils } from '../../../../../Helpers/ObjectUtils';\n\nexport const useRoomItemGestureController = (item: IRoomItem) => {\n const map = useMapProvider();\n const isMobile = useIsMobile();\n const multiTouch = useMultiTouch();\n const menuContext = useMenuContext();\n const undoRedo = useUndoRedoMap();\n const gestureContext = useGestureContext();\n\n const onPressDown = React.useCallback(\n (event: GestureEvent) => {\n if (!multiTouch.handleMultiTouch(event as React.TouchEvent)) {\n if (!menuContext.showMenuContext && !MapConstants.mode) {\n undoRedo.store(map.getState());\n\n gestureContext.update({ isPressDown: true, roomItemId: item.roomItemId });\n\n const { roomItems = [] } = map.getState();\n const roomItemMoveOrPlacingInit = ObjectUtils.clone(roomItems.find((x) => x.roomItemId === item.roomItemId));\n map.update({\n values: { roomItemMoveOrPlacingInit, panZoomDisabled: true, busy: true, },\n logs: { event: 'useRoomItemGestureController onPressDown' },\n });\n MapConstants.mode = MapMode.MODE_TYPE_MOVE_ROOM_ITEM;\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [menuContext.showMenuContext]\n );\n\n const onMouseUp = React.useCallback(\n (event: GestureEvent) => {\n if (!isMobile && gestureContext.getState().isPressDown && !menuContext.showMenuContext) {\n menuContext.show();\n const { selectedRoomItemId } = map.getState();\n if (selectedRoomItemId !== item.roomItemId) {\n map.setPanel({\n values: { selectedRoomItemId: item.roomItemId, panZoomDisabled: false, busy: false },\n });\n }\n gestureContext.clear();\n MapConstants.mode = undefined;\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [menuContext.showMenuContext, isMobile]\n );\n\n const onTouchEnd = React.useCallback(\n (event: GestureEvent) => {\n event.preventDefault(); //To prevent mouse events being fired\n if (menuContext.showMenuContext) {\n menuContext.close();\n event.stopPropagation(); //To prevent TouchEndController being fired\n }\n if (gestureContext.getState().isPressDown && !menuContext.showMenuContext) {\n menuContext.show();\n map.setPanel({ values: { panZoomDisabled: false, busy: false } });\n gestureContext.clear();\n MapConstants.mode = undefined;\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [menuContext.showMenuContext]\n );\n\n //* ACTIONS\n const onMove = React.useCallback((event?: GestureEvent) => {\n if (!MapConstants.mode) {\n menuContext.close();\n const { roomItems = [] } = map.getState();\n const updatedroomItems = roomItems.map((r) => {\n if (r.roomItemId === item.roomItemId) r.isMoving = true;\n return r;\n });\n map.setPanel({ values: { roomItems: updatedroomItems, panZoomDisabled: true, busy: true } });\n gestureContext.update({ roomItemId: item.roomItemId });\n MapConstants.mode = MapMode.MODE_TYPE_MOVE_ROOM_ITEM;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const deleteDialog = useMenuDeleteDialog({\n confirmDelete: () => map.deleteRoomItem(item.roomItemId!),\n });\n\n const onModify = React.useCallback((event?: GestureEvent) => {\n if (!MapConstants.mode) {\n menuContext.close();\n map.setPanel({ values: { selectedRoomItemId: item.roomItemId } });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onDuplicate = React.useCallback((event?: GestureEvent) => {\n if (!MapConstants.mode) {\n menuContext.close();\n const roomItems = map.getState().roomItems || [];\n const baseRoomItem = roomItems.find((r) => r.roomItemId === item.roomItemId)!;\n\n const name = RoomItemFactory.getNewName(baseRoomItem, roomItems);\n const newRoomItem = RoomItemFactory.createRoomItem({ ...baseRoomItem, name });\n const updatedRoomItems = [...roomItems, newRoomItem];\n map.setPanel({\n values: { roomItems: updatedRoomItems, panZoomDisabled: true, busy: true },\n mapModified: true,\n });\n gestureContext.update({ roomItemId: newRoomItem.roomItemId });\n MapConstants.mode = MapMode.MODE_TYPE_ROOM_ITEM_PLACING;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onDelete = React.useCallback((event?: GestureEvent) => {\n if (!MapConstants.mode) {\n menuContext.close();\n deleteDialog.requestDelete();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return {\n onMove,\n onModify,\n onDuplicate,\n onDelete,\n gestures: {\n onMouseDown: onPressDown,\n onMouseUp,\n onTouchStart: onPressDown,\n onTouchEnd,\n },\n menuContext,\n deleteDialog,\n };\n};\n","import React from 'react';\n\nimport { useMapContextState } from '../../../Context/MapContext';\nimport { RoomType } from '../../../Models/IRoom';\nimport { IRoomItem } from '../../../Models/IRoomItem';\nimport { PlacingRoomItem } from './BoxBindRoomItem';\n\ntype BoxRoomItemsProps = { readonly?: boolean; roomId?: string; roomItems?: Array; type?: RoomType };\nexport const MapBoxRoomItems = () => {\n const { type, roomItems = [], rooms = [] } = useMapContextState();\n const roomIds = rooms.filter((room) => room.type === type).map((room) => room.roomId!);\n const roomItemsToDisplay = roomItems.filter((item) => roomIds.includes(item.roomId!) || !item.roomId);\n return ;\n};\n\nexport const RawBoxRoomItems = ({ readonly, roomId, roomItems = [], type }: BoxRoomItemsProps) => {\n const { rooms = [] } = useMapContextState();\n let roomItemsToDisplay = roomItems;\n if (type) {\n const roomIds = rooms.filter((room) => room.type === type).map((room) => room.roomId!);\n roomItemsToDisplay = roomItems.filter((item) => roomIds.includes(item.roomId!) || !item.roomId);\n }\n return (\n \n {roomItemsToDisplay\n .filter((item) => (roomId ? item.roomId === roomId : true))\n .map((roomItem) => (\n \n ))}\n \n );\n};\n\ntype BoxRoomItemProps = { item: IRoomItem; readonly?: boolean };\nconst BoxRoomItem = ({ item, readonly }: BoxRoomItemProps) => {\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport { Assets } from '../../../../../Web/assets/Assets';\nimport { RoomType } from '../../../Models/IRoom';\nimport { CarpentryPicto } from '../Openings/CarpentryPicto';\n\nconst iconColor = '#0f0e2d';\nexport const RoomItemSelectedInvalidColor = { [RoomType.Sol]: '#ec2929', [RoomType.Wall]: '#ec2929' };\nexport const RoomItemInvalidColor = { [RoomType.Sol]: '#f37f7f', [RoomType.Wall]: '#f37f7f' };\n\nexport const RoomItemDefaultColor = { [RoomType.Sol]: '#aaadba', [RoomType.Wall]: '#ffc4d4' };\nexport const RoomItemSelectedColor = { [RoomType.Sol]: '#13123A', [RoomType.Wall]: '#FF7199' };\nexport const RoomItemStrokeColor = { [RoomType.Sol]: '#13123A', [RoomType.Wall]: '#ff4b7e' };\n\nconst Icon: React.FC> = ({ children, ...attrs }) => {\n return {children};\n};\n\nexport const ShowerBathtub = () => {\n return (\n \n \n \n \n );\n};\nexport const FixedFurniture = () => {\n return (\n \n \n \n \n \n );\n};\nexport const Cupboard = () => {\n return (\n \n \n \n \n \n \n );\n};\nexport const KitchenFurniture = () => {\n return (\n \n \n \n \n \n );\n};\nexport const Trap = () => {\n return (\n \n \n \n \n \n \n );\n};\nexport const Fireplace = () => {\n return (\n \n \n \n \n \n );\n};\nexport const Opening = () => {\n return (\n \n \n \n \n \n );\n};\nexport const Stairs = () => {\n return (\n \n \n \n );\n};\nexport const Divider = () => {\n return (\n \n \n \n \n \n \n );\n};\nexport const HeavyElement = () => {\n const InnerPath = (atts: React.SVGProps) => {\n return (\n \n );\n };\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport const SewerPlate = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const Moving = () => {\n return (\n \n \n \n );\n};\n\nexport const Door = () => {\n return (\n \n \n \n );\n};\n\nexport const Window = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const UnlaidArea = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { styled } from '@material-ui/core';\nimport React, { CSSProperties } from 'react';\n\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport { ImageProduitHelper } from '../../../../../Helpers/ImageProduitHelper';\nimport { ObjectUtils } from '../../../../../Helpers/ObjectUtils';\nimport { ProductHelper } from '../../../../../Helpers/ProductHelper';\nimport { I18n, Message } from '../../../../../Locales/I18nService';\nimport { Assets } from '../../../../../Web/assets/Assets';\nimport { useIsMobile } from '../../../../../Web/Context/PlatformContext/PlatformContext';\nimport { useIsVendeur } from '../../../../../Web/Hooks/Vendeur/useVendeur';\nimport { RoomInfoIds } from '../../../../../Web/Pages/Quote/Components/Pannels/Rooms/Controllers/RoomInfosFocus';\nimport { FlooringDirectionIcon } from '../../../../../Web/Pages/Quote/Components/Pannels/Rooms/RoomDirection/RoomDirection';\nimport { Scroller, useScroller } from '../../../../../Web/Pages/Quote/Helpers/Scroller';\nimport { TagType } from '../../../../../Web/Pages/Quote/Widgets/TagLabel';\nimport { ThemeRes } from '../../../../../Web/Themes/ThemeRes';\nimport { useGestureContext } from '../../../Context/GestureContext';\nimport { useIncompatibilityContext } from '../../../Context/IncompatibilityContext';\nimport { useMapContextState, useMapProvider } from '../../../Context/MapContext';\nimport { RoomFactory } from '../../../Helpers/BaseRoomFactory';\nimport { MapConstants, MapMode } from '../../../MapConstants';\nimport { IRoom, RoomType } from '../../../Models/IRoom';\nimport { PointUtils } from '../../../Utils/PointUtils';\nimport { PolylabelUtils } from '../../../Utils/PolylabelUtils';\nimport { qSVG } from '../../../Utils/qSVG';\nimport { RoomMove } from '../../../Utils/Room/RoomMove';\nimport { CreateRoomFactory } from '../../../Utils/Room/RoomUtils';\nimport { CoordPoint } from '../../../Utils/Types';\nimport * as ContextMenuItem from '../MenuContext/ContextMenuItems';\nimport { useMenuContext } from '../MenuContext/MenuContext';\nimport { useMenuDeleteDialog } from '../MenuContext/MenuDeleteDialog';\n\nimport { YesNoChoiceDialog } from '../../../../../Web/Pages/Projects/Components/ChoiceDialog/YesNoChoiceDialog';\nimport { useMapZoomScale } from '../BoxWalls/ZoomScaleComponents';\n\nconst picto_edit_size = 16;\n\ntype BoxAreasProps = {\n readonly?: boolean;\n roomId?: string;\n rooms?: Array;\n selectedRoomId?: string;\n type?: RoomType;\n};\nexport const MapBoxAreas = ({ readonly, roomId }: BoxAreasProps) => {\n const { rooms = [], selectedRoomId } = useMapContextState();\n return ;\n};\n\nexport const RawBoxAreas = ({ readonly, roomId, rooms = [], selectedRoomId, type }: BoxAreasProps) => {\n const { type: typeFromMap } = useMapContextState();\n return (\n \n {rooms\n .filter((room) => readonly || room.type === (type || typeFromMap))\n .filter((item) => (roomId ? item.roomId === roomId : true))\n .map((room) => {\n const centroid = PolylabelUtils.polylabel([room.coords?.map((p) => [p.x, p.y])], 1.0);\n return (\n \n \n \n );\n })}\n \n );\n};\n\ntype BoxAreaProps = { room: IRoom; centroid: CoordPoint; selected?: boolean; type?: TagType; readonly?: boolean };\n\nconst BoxArea = ({ room, centroid, selected, type = TagType.ToDo, readonly }: BoxAreaProps) => {\n const isVendeur = useIsVendeur();\n const scroller = useScroller();\n const boxAreaContext = useBoxAreaContext();\n const map = useMapProvider();\n const isMobile = useIsMobile();\n\n const showFlooringDirection = Boolean(\n isVendeur && room.flooringDirection && room.questionProduitPrincipal?.produitValue\n );\n const hasProductImage = Boolean(boxAreaContext.state?.hasImage);\n\n const hasImageContainer = hasProductImage || showFlooringDirection;\n //* NOTE 11.5 = 23/2, where 23 is EditIcon height and 10.5 = 21/2 where 21 = CompletionLabel height\n const nameHeight = 18;\n const completionHeight = readonly ? 0 : 20;\n const areaHeight = 18;\n const editIconHeight = readonly ? 0 : picto_edit_size;\n const center = {\n x: centroid.x,\n y:\n centroid.y -\n (hasImageContainer ? 40 : 0) -\n nameHeight / 2 -\n completionHeight / 2 -\n areaHeight / 2 -\n editIconHeight / 2,\n };\n\n const bbox: any = PointUtils.calculateBoundingBox({ points: room.coords });\n const width = qSVG.measure({ x: bbox.xMin, y: bbox.yMin }, { x: bbox.xMax, y: bbox.yMin });\n const height = qSVG.measure({ x: bbox.xMin, y: bbox.yMin }, { x: bbox.xMin, y: bbox.yMax });\n const minSize = (Math.min(width, height) * 100) / 60;\n const scale = minSize < 60 ? 0.2 : minSize < 120 ? 0.3 : minSize < 180 ? 0.5 : minSize < 220 ? 0.7 : 1;\n\n const imageContainer = { x: -20, y: 20 / 2 };\n const imagePosition: CoordPoint = { x: showFlooringDirection ? imageContainer.x - 20 : imageContainer.x, y: 0 };\n const flooringDirectionPosition: CoordPoint = {\n x: hasProductImage ? imageContainer.x + 20 + 8 : imageContainer.x,\n y: 0,\n };\n\n const GAP = 8;\n const nameLabelPosition: CoordPoint = { x: 0, y: hasImageContainer ? imageContainer.y + 40 + GAP : 0 };\n\n const completionLabelPosition: CoordPoint = readonly\n ? { x: 0, y: nameLabelPosition.y }\n : { x: 0, y: room.name ? nameLabelPosition.y + 20 : 0 };\n\n const surfaceAreaLabelPosition: CoordPoint = readonly\n ? { x: 0, y: nameLabelPosition.y + 20 / 2 + GAP } //!\\\\ 20 = nameLabelHeight\n : { x: 0, y: completionLabelPosition.y + 40 / 2 + GAP }; //!\\\\ 40 = completionHeight\n const iconPosition: CoordPoint = {\n x: 0,\n y: (room.surface_area ? surfaceAreaLabelPosition.y : completionLabelPosition.y) + GAP,\n };\n //15 = area heigth ; 12 = margin top;\n\n const openQuestionPose = () => {\n map.setPanel({\n values: {\n selectedRoomId: room.roomId,\n rooms: map.state.rooms?.map((x) => {\n if (x.roomId === room.roomId) {\n return { ...x, openSections: { questionsPose: true } };\n }\n return x;\n }),\n },\n afterUpdate: () => {\n setTimeout(() => {\n scroller.scrollToDiv(Scroller.ID, RoomInfoIds.FlooringDirection, isMobile);\n }, Scroller.ShortDelay);\n },\n });\n };\n\n const openQuestionProduit = () => {\n map.setPanel({\n values: {\n selectedRoomId: room.roomId,\n rooms: map.state.rooms?.map((x) => {\n if (x.roomId === room.roomId) {\n return { ...x, openSections: { infos: true } };\n }\n return x;\n }),\n },\n afterUpdate: () => {\n setTimeout(() => {\n scroller.scrollToDiv(Scroller.ID, RoomInfoIds.ProduitPrincipal, isMobile);\n }, Scroller.ShortDelay);\n },\n });\n };\n\n return (\n \n \n {!readonly && }\n {showFlooringDirection && (\n \n \n \n \n \n \n )}\n {room.name && (\n \n )}\n {!readonly && (\n \n )}\n {room.surface_area && (\n \n )}\n {readonly && room.questionProduitPrincipal?.produitValue?.code && (\n \n {room.questionProduitPrincipal.produitValue.code}\n \n )}\n {!readonly && }\n \n \n );\n};\n\nconst GClickable = styled('g')({ cursor: 'pointer' });\ntype WidgetProps = { room: IRoom; pos: CoordPoint; selected?: boolean; readonly?: boolean; onClick?: () => void };\n\nconst RoomNameLabel = ({ room, pos, selected, readonly }: WidgetProps) => {\n if (!pos) {\n return null;\n }\n\n const style: CSSProperties = {\n fontWeight: 800,\n fontSize: 14,\n fill: !readonly && selected ? '#FFFFFF' : '#13123A',\n pointerEvents: 'none',\n touchAction: 'none',\n };\n\n const label = similyStringEllipsis(room.name, 20);\n return (\n \n {label}\n {room.name}\n \n );\n};\n\nconst CompletionLabel = ({ pos, type }: WidgetProps & { type: TagType }) => {\n if (!pos) {\n return null;\n }\n\n const backgroundStyle: CSSProperties = {\n pointerEvents: 'none',\n };\n\n const textStyle: CSSProperties = {\n fontWeight: 600,\n fontSize: '9.4px',\n textTransform: 'uppercase',\n pointerEvents: 'none',\n };\n\n switch (type) {\n case TagType.ToDo:\n textStyle.fill = '#000000';\n backgroundStyle.fill = '#E5A033';\n break;\n case TagType.Done:\n textStyle.fill = 'black';\n backgroundStyle.fill = '#46DBA9';\n break;\n case TagType.Error:\n textStyle.fill = '#FF453A';\n backgroundStyle.fill = '#ff453a19';\n break;\n }\n\n return (\n \n {type === TagType.Error && }\n \n \n {I18n.get(`TagType_${type}`)}\n \n \n );\n};\n\nconst RoomAreaLabel = ({ room, pos, selected, readonly }: WidgetProps) => {\n const meter = MapConstants.meter;\n\n const toArea = (area: number) => (area / (meter * meter)).toFixed(2);\n const style: CSSProperties = {\n fontWeight: 400,\n fontSize: 14,\n fill: !readonly && selected ? '#FFFFFF' : '#13123A',\n pointerEvents: 'none',\n touchAction: 'none',\n };\n\n return (\n \n {room.roomItems?.length! > 0 ? (\n \n ) : (\n \n )}\n \n );\n};\n\nconst EditIcon = ({ room, pos }: WidgetProps) => {\n const map = useMapProvider();\n const menuContext = useMenuContext();\n const incompatibility = useIncompatibilityContext();\n const deleteDialog = useMenuDeleteDialog({\n confirmDelete: () => {\n map.deleteRoom(room.roomId!);\n incompatibility.reset(room.roomId);\n },\n });\n\n const onMove = React.useCallback(\n (e?: GestureEvent | undefined) => {\n menuContext.close();\n const centroid = PolylabelUtils.polylabel([room.coords?.map((p) => [p.x, p.y])], 1.0);\n map.update({\n values: {\n roomMove: room.roomId,\n roomMoveInit: { x1: centroid.x, y1: centroid.y, x2: centroid.x, y2: centroid.y },\n panZoomDisabled: true,\n busy: true,\n },\n logs: { event: 'EditIcon onMove', room },\n });\n MapConstants.mode = MapMode.MODE_TYPE_MOVE_ROOM;\n e?.stopPropagation();\n e?.preventDefault();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [room]\n );\n\n const onClickModify = React.useCallback(() => {\n if (!MapConstants.mode) {\n menuContext.close();\n map.setPanel({ values: { selectedRoomId: room.roomId } });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onClickAddOpening = React.useCallback(() => {\n if (!MapConstants.mode) {\n menuContext.close();\n map.setPanel({ values: { selectAmenagementOpen: { roomId: room.roomId } } });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onDuplicate = React.useCallback(() => {\n if (!MapConstants.mode) {\n menuContext.close();\n const { walls = [], rooms = [], openings = [], roomItems = [] } = map.getState();\n const baseRoom = ObjectUtils.clone(rooms.find((r) => r.roomId === room.roomId))!;\n\n const name = RoomFactory.isDefaultName(baseRoom.name)\n ? RoomFactory.getDuplicateName(baseRoom, rooms)\n : RoomFactory.toUniqueName(rooms, baseRoom.roomType, baseRoom.roomFloor);\n\n const { room: newRoom } = CreateRoomFactory.duplicate(baseRoom, name, walls, openings, roomItems);\n map.addRooms({ rooms: [newRoom], openRoomPanel: true, mapModified: true });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onRequestDelete = React.useCallback(() => {\n menuContext.close();\n deleteDialog.requestDelete();\n MapConstants.mode = undefined;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const gesture = useGestureContext();\n React.useEffect(() => {\n if (gesture.state.menuContextOpenRoomId === room.roomId) {\n menuContext.show();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [gesture.state.menuContextOpenRoomId]);\n\n const isMoving = MapConstants.mode === MapMode.MODE_TYPE_MOVE_ROOM && map.state.roomMove === room.roomId;\n const scale = useMapZoomScale();\n return (\n \n \n {isMoving ? : }\n \n \n \n \n \n \n \n \n \n \n \n\n {deleteDialog.showDelete && (\n deleteDialog.close('FROM_onClickNo')}\n onClose={() => deleteDialog.close('FROM_onClose')}\n enableCloseOutside={false}\n noHighlight\n />\n )}\n \n );\n};\n\nconst MovingIcon = () => {\n const scale = useMapZoomScale();\n const t = scale * -2.6;\n return (\n \n \n \n );\n};\n\nconst MenuEditIconBackground = () => {\n const scale = useMapZoomScale();\n const attr: React.SVGAttributes = {\n cx: (scale * picto_edit_size) / 2,\n cy: (scale * picto_edit_size) / 2,\n r: scale * picto_edit_size,\n fill: '#FFFFFF',\n };\n return ;\n};\n\nconst MenuEditIcon = () => {\n const scale = useMapZoomScale();\n return (\n \n \n \n \n );\n};\n\nexport const similyStringEllipsis = (text: string = '', length: number) => {\n return text.length > length ? text.substring(0, length) + '...' : text;\n};\n\nconst RoomProductImage = ({ pos, room, onClick }: WidgetProps) => {\n const productCode = room.questionProduitPrincipal?.produitValue?.code;\n const imageUrl = productCode ? ImageProduitHelper.toImageUrl(productCode, 40) : '';\n\n const boxArea = useBoxAreaContext();\n React.useEffect(() => {\n boxArea.reset();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [imageUrl]);\n\n if (!pos || !imageUrl || (boxArea.state?.imageLoaded && !boxArea.state?.hasImage)) {\n return null;\n }\n\n return (\n \n \n \n \n \n boxArea.onImageLoadingFailed(imageUrl)}\n />\n \n \n );\n};\n\ntype BoxAreaContextState = { imageLoading?: boolean; imageLoaded?: boolean; hasImage?: boolean };\ntype BoxAreaContextValue = {\n state?: BoxAreaContextState;\n onImageLoaded: () => void;\n onImageLoadingFailed: (imageUrl: string) => void;\n reset: () => void;\n};\nconst BoxAreaContext = React.createContext({\n onImageLoaded: () => {},\n onImageLoadingFailed: () => {},\n reset: () => {},\n});\n\nconst useBoxAreaContext = () => React.useContext(BoxAreaContext);\n\nconst BoxAreaProvider: React.FC = ({ children }) => {\n const [state, setState] = React.useState({ imageLoading: true });\n\n const reset = () => setState((prev) => ({ ...prev, imageLoaded: false, hasImage: false }));\n const onImageLoaded = () => {\n setState((prev) => ({ imageLoading: false, imageLoaded: true, hasImage: true }));\n };\n const onImageLoadingFailed = (imageUrl: string) => {\n setState((prev) => ({ imageLoading: false, imageLoaded: true, hasImage: false }));\n console.error('BoxAreaProvider loading failed', imageUrl);\n };\n\n return (\n \n {children}\n \n );\n};\n","import React from 'react';\nimport { useViewState } from '../../../Web/Hooks/ViewState/ViewState';\nimport { MapConstants, MapMode } from '../MapConstants';\n\ntype EditNameContextValue = {\n state: Partial;\n update: (values: Partial) => void;\n};\nexport const EditNameContext = React.createContext({\n state: {},\n update: (values: Partial) => {},\n});\nexport const useEditNameContext = () => React.useContext(EditNameContext);\n\ntype EditNameContextState = { isEditMode: boolean; roomId: string; name: string };\n\nexport const EditNameProvider: React.FC = ({ children }) => {\n const { state, update } = useViewState();\n\n React.useEffect(() => {\n if (state.isEditMode) {\n MapConstants.mode = MapMode.MODE_TYPE_RENAMING_ROOM_NAME;\n } else if (MapConstants.mode === MapMode.MODE_TYPE_RENAMING_ROOM_NAME) {\n MapConstants.mode = undefined;\n }\n }, [state]);\n return {children};\n};\n","import React from 'react';\n\nimport { useWindowLog } from '../../../Hooks/WindowLog';\nimport { useViewState } from '../../../Web/Hooks/ViewState/ViewState';\nimport { MapConstants, MapMode } from '../MapConstants';\nimport { CoordPoint } from '../Utils/Types';\n\nexport type AnchorLine = { id: string; start: CoordPoint; end: CoordPoint };\n\nexport type GestureState = {\n isPressDown?: boolean;\n openingId?: string;\n roomItemId?: string;\n\n menuContextOpenRoomId?: string;\n\n verticalAnchorLine?: AnchorLine;\n horizontalAnchorLine?: AnchorLine;\n invalidRoomIds?: string[];\n invalidOpeningIds?: string[];\n invalidRoomItemIds?: string[];\n};\n\ntype GestureContextValue = {\n state: GestureState;\n getState: () => GestureState;\n update: (values: Partial) => void;\n clear: () => void;\n timeoutPressDown: () => void;\n clearAnchorLines: () => void;\n clearMenuContext: () => void;\n};\n\nexport const GestureContext = React.createContext({\n state: {},\n getState: () => ({}),\n update: () => {},\n clear: () => {},\n timeoutPressDown: () => {},\n clearAnchorLines: () => {},\n clearMenuContext: () => {},\n});\nexport const useGestureContext = () => React.useContext(GestureContext);\n\nexport const InitialGestureContextState: GestureState = {\n isPressDown: undefined,\n openingId: undefined,\n roomItemId: undefined,\n menuContextOpenRoomId: undefined,\n};\n\nexport const GestureProvider: React.FC = ({ children }) => {\n const { state, getState, update } = useViewState(InitialGestureContextState);\n useWindowLog(() => (window.GestureState = getState));\n\n const clear = () => update(InitialGestureContextState);\n const timeoutPressDown = () => {\n if (getState().isPressDown) {\n update({ isPressDown: false });\n }\n };\n\n const clearAnchorLines = () => {\n const { verticalAnchorLine, horizontalAnchorLine } = getState();\n if (verticalAnchorLine || horizontalAnchorLine) {\n update({ verticalAnchorLine: undefined, horizontalAnchorLine: undefined });\n }\n };\n\n const clearMenuContext = () => {\n const { menuContextOpenRoomId } = getState();\n if (menuContextOpenRoomId) {\n update({ menuContextOpenRoomId: undefined });\n }\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useMultiTouch = () => {\n const handleMultiTouch = (touchEvent: React.TouchEvent) => {\n if (touchEvent?.touches?.length > 1) {\n const modes = [\n MapMode.MODE_TYPE_MOVE_ROOM,\n MapMode.MODE_TYPE_MOVE_ROOM_WALL,\n MapMode.MODE_TYPE_MOVE_ROOM_ITEM,\n MapMode.MODE_TYPE_MOVE_ROOM_ITEM_SIDE,\n ];\n if (modes.includes(MapConstants.mode!)) {\n MapConstants.mode = undefined;\n }\n return true;\n }\n return false;\n };\n return { handleMultiTouch };\n};\n","import React from 'react';\nimport { FindFirstIncompatibilityResult, QuestionsHelper } from '../../../Helpers/QuestionsHelper';\nimport { useWindowLog } from '../../../Hooks/WindowLog';\nimport { I18n } from '../../../Locales/I18nService';\nimport { IncompatibilityTypeDto, QuestionItem } from '../../../Models/Questions/QuestionDto';\nimport { useIsMobile } from '../../../Web/Context/PlatformContext/PlatformContext';\nimport { useViewState } from '../../../Web/Hooks/ViewState/ViewState';\nimport { YesNoChoiceDialog } from '../../../Web/Pages/Projects/Components/ChoiceDialog/YesNoChoiceDialog';\nimport { RoomInfoIds } from '../../../Web/Pages/Quote/Components/Pannels/Rooms/Controllers/RoomInfosFocus';\nimport { Scroller, useScroller } from '../../../Web/Pages/Quote/Helpers/Scroller';\nimport { IMapItem } from '../Models/IMapItem';\nimport { useMapContext } from './MapContext';\n\nexport const HabitationIncompatibility: string = 'HabitationIncompatibility';\n\nexport type IncompatibilityState = {\n [roomId: string]: FindFirstIncompatibilityResult | undefined;\n //todo : rooms\n //todo: general : Services, Synthese\n};\n\nexport type IncompatibilityContextValue = {\n state: IncompatibilityState;\n update: (values: Partial) => void;\n reset: (roomId?: string) => void;\n showIncompatibilityDialog: (\n roomId: string,\n findFirstIncompatibilityResult: FindFirstIncompatibilityResult,\n cancelCurrentQuestion?: () => void\n ) => void;\n};\nexport const IncompatibilityContext = React.createContext({\n state: {},\n update: () => {},\n reset: () => {},\n showIncompatibilityDialog: () => {},\n});\n\nexport const useIncompatibilityContext = () => React.useContext(IncompatibilityContext);\n\nexport const IncompatibilityProvider: React.FC = ({ children }) => {\n const incompatibilities = useViewState();\n const map = useMapContext();\n const scroller = useScroller();\n const isMobile = useIsMobile();\n const reset = (roomId?: string) => {\n if (Object.keys(incompatibilities.getState()).length) {\n if (roomId) {\n incompatibilities.update({ [roomId]: undefined });\n } else {\n incompatibilities.resetState();\n }\n }\n };\n\n useWindowLog(() => (window.IncompatibilityState = incompatibilities.getState));\n\n type Request = {\n type?: IncompatibilityTypeDto;\n url?: string;\n message: string;\n afterClose?: () => void;\n afterYes?: () => void;\n cta?: string;\n };\n const [request, setRequest] = React.useState();\n\n const showIncompatibilityDialog = (\n roomId: string,\n findFirstIncompatibilityResult: FindFirstIncompatibilityResult,\n cancelCurrentQuestion?: () => void\n ) => {\n const { findIncompatibility } = findFirstIncompatibilityResult;\n const type: IncompatibilityTypeDto | undefined = findIncompatibility?.type;\n const message: string = findIncompatibility?.explanation ?? I18n.get('Quote_IncompatibilityAnswer');\n if (findIncompatibility?.type === IncompatibilityTypeDto.FinDeParcours) {\n const cta: string = findIncompatibility?.cta;\n setRequest({\n type,\n url: findIncompatibility.redirect_url,\n afterClose: cancelCurrentQuestion,\n message,\n cta,\n });\n } else {\n incompatibilities.update({ [roomId]: findFirstIncompatibilityResult });\n const afterYes = () => {\n const rooms = map.getState().rooms;\n const room = rooms?.find((room) => room.roomId === roomId)!;\n room.openSections = { infos: true };\n map.setPanel({\n values: { selectedRoomId: roomId, rooms },\n logs: { event: 'showIncompatibilityDialog afterYes', roomId, findFirstIncompatibilityResult },\n });\n setTimeout(\n () => scroller.scrollToDiv(Scroller.ID, RoomInfoIds.ProduitPrincipal, isMobile),\n Scroller.ShortDelay\n );\n };\n setRequest({ type, afterYes: afterYes, message });\n }\n };\n const leftAction = Boolean(request?.cta)\n ? request?.cta\n : request?.type === IncompatibilityTypeDto.Produit\n ? I18n.get('COMMON_OK')\n : I18n.get('Quote_IncompatibilityAnswer_RedirectButton');\n\n const rightAction =\n request?.type === IncompatibilityTypeDto.Produit\n ? I18n.get('COMMON_NO')\n : I18n.get('Quote_IncompatibilityAnswer_FinDeParcours_RightAction');\n\n React.useEffect(() => {\n const incompatibilityByRoom: IncompatibilityState = {};\n if (map.state.rooms?.length) {\n const appendIncompatibility = (item: IMapItem, questionProduit?: QuestionItem) => {\n const questions = questionProduit ? [questionProduit] : [];\n questions.push(\n ...(item.questionsPose?.questions! || []),\n ...(item.questionsSupport?.questions! || []),\n ...(item.questionsPreparation?.questions! || []),\n ...(item.questionsFinition?.questions! || [])\n );\n const findFirstIncompatibility = QuestionsHelper.findFirstIncompatibility(questions);\n if (findFirstIncompatibility.findIncompatibility) {\n incompatibilityByRoom[item.roomId!] = findFirstIncompatibility;\n }\n };\n map.state.rooms.forEach((room) => {\n appendIncompatibility(room, room.questionProduitPrincipal!);\n room.roomItems?.forEach((item) => appendIncompatibility(item));\n room.openings?.forEach((item) => appendIncompatibility(item));\n });\n incompatibilities.resetState(incompatibilityByRoom);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [map.state.rooms]);\n\n return (\n \n {children}\n {request && (\n {\n if (request?.url) {\n window.open(request?.url);\n }\n setRequest(undefined);\n request?.afterClose?.();\n request?.afterYes?.();\n }}\n onClose={() => {\n setRequest(undefined);\n request?.afterClose?.();\n }}\n onClickNo={() => {\n setRequest(undefined);\n request?.afterClose?.();\n }}\n leftAction={leftAction}\n rightAction={rightAction}\n styles={{ rightAction: { flex: 'unset' } }}\n noHighlight={false}\n yesHighlight\n />\n )}\n \n );\n};\n","import React from 'react';\n\ntype LaizeViewContextValue = { expand: boolean; setExpand: (expand: boolean) => void };\nexport const LaizeViewContext = React.createContext({ expand: false, setExpand: () => {} });\nexport const useLaizeViewContext = () => React.useContext(LaizeViewContext);\n\nexport const LaizeViewProvider: React.FC = ({ children }) => {\n const [expand, setExpand] = React.useState(false);\n return {children};\n};\n","import React from 'react';\nimport { useMapContext } from './MapContext';\nimport { useUndoRedoMap } from './UndoRedoMapContext';\n\nconst useCtrlKeybord = (keybordKey: string, action: VoidFunction) => {\n const onKeyDown = (e: KeyboardEvent) => {\n if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === keybordKey.toLowerCase()) {\n e.preventDefault();\n action();\n }\n };\n React.useEffect(() => {\n document.addEventListener('keydown', onKeyDown);\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n};\n\nexport function MapKeybordEventsWrapper({ children }: React.PropsWithChildren) {\n const map = useMapContext();\n const undoMap = useUndoRedoMap();\n\n const undo = () => {\n const nextState = undoMap.undo(map.getState().type);\n if (nextState) {\n map.update({ values: nextState, mapModified: true, logs: { event: 'undo map state from CTR + Z' } });\n }\n };\n\n const redo = () => {\n const nextState = undoMap.redo(map.getState().type);\n if (nextState) {\n map.update({ values: nextState, mapModified: true, logs: { event: 'redo map state from CTR + Y' } });\n }\n };\n\n useCtrlKeybord('Z', undo);\n useCtrlKeybord('Y', redo);\n\n return <>{children};\n}\n","import React from 'react';\n\nimport { Logger } from '../../../Errors/Logger';\nimport { ProductHelper } from '../../../Helpers/ProductHelper';\nimport { useWindowLog } from '../../../Hooks/WindowLog';\nimport { useIsMobile } from '../../../Web/Context/PlatformContext/PlatformContext';\nimport { useViewState } from '../../../Web/Hooks/ViewState/ViewState';\nimport { LaizeDebugProvider } from '../Components/Laizes/Debug/LaizeDebugProvider';\nimport { LaizeCalculatorResult, LaizeProps, LaizeResult } from '../Components/Laizes/Laize';\nimport { RoomFactory } from '../Helpers/BaseRoomFactory';\nimport { CompleteHelper } from '../Helpers/CompleteHelper';\nimport { MapResult } from '../Helpers/MapResult';\nimport { MapItemContants } from '../Models/IMapItem';\nimport { IOpening } from '../Models/IOpening';\nimport { IRoom, RoomType } from '../Models/IRoom';\nimport { IRoomItem, RoomItemWithAngle } from '../Models/IRoomItem';\nimport { Editor } from '../Utils/Editor';\nimport { OpeningUtils } from '../Utils/Opening/OpeningUtils';\nimport { RoomDiffUtils } from '../Utils/Room/RoomDiffUtils';\nimport { RoomMoveInit } from '../Utils/Room/RoomMove';\nimport { CreateRoomFactory } from '../Utils/Room/RoomUtils';\nimport { RoomItemUtils } from '../Utils/RoomItem/RoomItemUtils';\nimport { Wall, WallMoveInit } from '../Utils/Types';\nimport { WallUtils } from '../Utils/Wall/WallUtils';\nimport { ZoomUtils } from '../Utils/ZoomUtils';\nimport { EditNameProvider } from './EditNameContext';\nimport { GestureProvider } from './GestureContext';\nimport { LaizeViewProvider } from './LaizeDirectionContext';\nimport { MapExportProvider } from './MapExportContext';\nimport { UndoRedoMapProvider, useUndoRedoMap } from './UndoRedoMapContext';\nimport { MapKeybordEventsWrapper } from './MapKeybordEvents';\nimport { MapReadyProvider } from './MapReadyContext';\nimport { DebugLineProps, DebugPointProps } from '../../../Web/Context/Debug/Commands/DebugCommands';\n\n//#region //* STATES\n\nexport const ClearPanelState: Partial = {\n selectedRoomId: undefined,\n selectedOpeningId: undefined,\n selectedRoomItemId: undefined,\n selectAmenagementOpen: undefined,\n selectRoomShapeOpen: false,\n showTutorial: false,\n showHabitation: false,\n showFinDeParcours: false,\n showStoreLocator: false,\n};\nexport type AmenagementOpen = { roomId?: string };\nexport type MapPanelsState = {\n selectedRoomId?: string;\n selectRoomShapeOpen?: boolean;\n selectAmenagementOpen?: AmenagementOpen;\n\n selectedOpeningId?: string;\n selectedRoomItemId?: string;\n\n showFinDeParcours?: boolean;\n showHabitation?: boolean;\n showStoreLocator?: boolean;\n};\n\nexport type MapGestureState = {\n panZoomDisabled?: boolean;\n\n wallMove?: Wall;\n wallMoveInit?: WallMoveInit;\n\n roomItemMoveSide?: RoomItemWithAngle;\n\n roomMove?: string;\n roomMoveInit?: RoomMoveInit;\n openingMoveOrPlacingInit?: IOpening;\n roomItemMoveOrPlacingInit?: IRoomItem;\n};\n\nexport type MapContextStateType = {\n walls?: Array;\n rooms?: Array;\n openings?: Array;\n roomItems?: Array;\n roomsCompleted?: boolean;\n\n //* from enhance\n global_surface_area?: number;\n\n laizeProps?: Array;\n laizeResults?: Array;\n laizeDebugResults?: Array;\n\n showTutorial?: boolean;\n addRoomTutorialShown?: boolean;\n type?: RoomType;\n\n busy?: boolean;\n geometryPointsDebug?: Array;\n geometryLinesDebug?: Array;\n\n logs?: any;\n //mapModified?: boolean;\n} & MapPanelsState &\n MapGestureState; \n\nexport class MapContextState implements MapContextStateType {\n rooms?: Array = [];\n\n // => ideal, but get optional get not implemented on typescript yet\n // get walls(): Array | undefined {\n // return this.rooms?.flatMap((x) => x.walls).filter((x): x is Wall => x !== undefined);\n // }\n // get openings(): Array | undefined {\n // return this.rooms?.flatMap((x) => x.openings).filter((x): x is IOpening => x !== undefined);\n // }\n // get roomItems(): Array | undefined {\n // return this.rooms?.flatMap((x) => x.roomItems).filter((x): x is IRoomItem => x !== undefined);\n // }\n walls?: Array = [];\n openings?: Array = [];\n roomItems?: Array = [];\n\n constructor() {\n Object.defineProperty(this, 'walls', {\n get(){return this.rooms?.flatMap((x: IRoom) => x.walls).filter((x: Wall): x is Wall => x !== undefined);}\n });\n Object.defineProperty(this, 'openings', {\n get(){return this.rooms?.flatMap((x: IRoom) => x.openings).filter((x: IOpening): x is IOpening => x !== undefined);}\n });\n Object.defineProperty(this, 'roomItems', {\n get(){return this.rooms?.flatMap((x: IRoom) => x.roomItems).filter((x: IRoomItem): x is IRoomItem => x !== undefined);}\n });\n }\n\n\n roomsCompleted?: boolean = false;\n\n //* from enhance\n global_surface_area?: number;\n\n laizeProps?: Array = [];\n laizeResults?: Array = [];\n laizeDebugResults?: Array = [];\n\n showTutorial?: boolean = false;\n addRoomTutorialShown?: boolean = false;\n type?: RoomType = RoomType.Sol;\n\n busy?: boolean = false;\n geometryPointsDebug?: Array = [];\n geometryLinesDebug?: Array = [];\n\n logs?: any = {};\n //mapModified?: boolean = false;\n\n selectedRoomId?: string;\n selectedOpeningId?: string;\n selectedRoomItemId?: string;\n selectAmenagementOpen?: AmenagementOpen;\n selectRoomShapeOpen?: boolean;\n showFinDeParcours?: boolean;\n showHabitation?: boolean;\n showStoreLocator?: boolean;\n\n panZoomDisabled?: boolean;\n\n wallMove?: Wall;\n wallMoveInit?: WallMoveInit;\n\n roomItemMoveSide?: RoomItemWithAngle;\n\n roomMove?: string;\n roomMoveInit?: RoomMoveInit;\n openingMoveOrPlacingInit?: IOpening;\n roomItemMoveOrPlacingInit?: IRoomItem;\n}\n\n//#endregion\n\ntype AddRoomsParams = { openRoomPanel?: boolean; mapModified?: boolean; logs?: any } & MapContextState;\n\nexport type UpdateMapParams = {\n values: MapContextState;\n mapModified?: boolean;\n logs?: any;\n afterUpdate?: VoidFunction;\n};\n\ntype StateCombiner = {\n merge: (state: MapContextState, mapModified?: boolean) => Partial;\n};\ntype MapContextValue = {\n state: MapContextState;\n getState: () => MapContextState;\n resetState: (state: MapContextState) => void;\n update: (params: UpdateMapParams) => void;\n setPanel: (params: UpdateMapParams) => void;\n\n addRooms: (params: AddRoomsParams) => void;\n withComputeLaize: (mapState: MapContextState) => Partial;\n zoomToFit: () => void;\n\n setStateCombiner: (stateCombiner: StateCombiner) => void;\n};\n\nconst MapContext = React.createContext({\n state: { panZoomDisabled: true },\n getState: () => ({}),\n resetState: () => ({}),\n update: () => {},\n addRooms: () => {},\n setPanel: () => {},\n withComputeLaize: () => ({}),\n zoomToFit: () => {},\n setStateCombiner: () => {},\n});\n\nexport const useMapContext = () => React.useContext(MapContext);\nexport const useMapContextState = () => React.useContext(MapContext).state;\nexport const useUpdateMapContext = () => React.useContext(MapContext).update;\n\nexport const MapProvider: React.FC = ({ children }) => {\n const isMobile = useIsMobile();\n const map = useViewState({\n laizeProps: [],\n laizeResults: [],\n laizeDebugResults: [],\n type: RoomType.Sol,\n });\n\n useWindowLog(() => (window.MapState = map.getState));\n\n const stateCombiner = React.useRef();\n const setStateCombiner = (value: StateCombiner) => (stateCombiner.current = value);\n\n const zoomToFit = () => ZoomUtils.zoomFitAllRooms(map.getState().rooms?.filter((x) => x.type === map.state.type));\n\n const update = ({ values, mapModified, logs, afterUpdate }: UpdateMapParams) => {\n Logger.isLogEnabled() && console.group('MapProvider update');\n\n const oldState = map.getState();\n const nextState: MapContextState = { ...oldState, ...values };\n const updatedValues = mapModified && stateCombiner.current ? stateCombiner.current.merge(nextState) : {};\n\n const mapState = { ...nextState, ...updatedValues, logs };\n Logger.log('map will be update with', { mapState, logs });\n map.update(mapState, afterUpdate);\n\n Logger.isLogEnabled() && console.groupEnd();\n };\n\n const setPanel = ({ values, logs, ...params }: UpdateMapParams) => {\n update({\n ...params,\n values: { ...ClearPanelState, ...values },\n logs: { ...logs, setPanel: 'map updateBy setPanel' },\n });\n };\n\n const addRooms = ({ rooms = [], openRoomPanel, mapModified, logs, ...rest }: AddRoomsParams) => {\n const { rooms: oldRooms = [], walls: oldWalls = [], openings = [], roomItems = [] } = map.getState();\n\n let updatedWalls = oldWalls;\n let updatedRooms = oldRooms;\n let updatedOpenings = openings;\n let updatedRoomItems = roomItems;\n\n rooms.forEach((baseRoom) => {\n const roomsToUse = updatedRooms.filter((x) => x.type === map.state.type);\n const wallsToUse = roomsToUse.flatMap((x) => x.walls ?? []);\n baseRoom.name = baseRoom.name || RoomFactory.defaultName(roomsToUse.length, map.state.type);\n baseRoom.type = map.state.type;\n const { room, roomWalls = [] } = CreateRoomFactory.createRoom(baseRoom, wallsToUse);\n updatedWalls = [...updatedWalls, ...roomWalls];\n room.walls = roomWalls;\n\n updatedRooms = [...updatedRooms, room];\n Editor.architect(updatedWalls, updatedRooms);\n\n //! fix opening position from location_position_from_edge (occurs when duplicate room or import room)\n OpeningUtils.fixPositionOpenings(room, room.openings, updatedWalls);\n\n updatedOpenings = [...updatedOpenings, ...(room.openings || [])];\n updatedRoomItems = [...updatedRoomItems, ...(room.roomItems || [])];\n WallUtils.refreshWallsMinimumSizeAndOriginalAngle(updatedWalls, updatedOpenings);\n\n room.openSections = { infos: openRoomPanel };\n });\n\n updatedRooms.forEach((room) => {\n if (CompleteHelper.isOnlyRoomQuestionsCopiedAnswerMising(room)) {\n room.questionsCopiedFromId = MapItemContants.QuestionsCopiedFromId_NONE;\n }\n });\n\n if (rooms.length) {\n const openRoomIdPanel = openRoomPanel ? rooms[0].roomId : undefined;\n update({\n values: {\n walls: updatedWalls,\n rooms: updatedRooms,\n openings: updatedOpenings,\n roomItems: updatedRoomItems,\n ...ClearPanelState,\n selectedRoomId: isMobile ? undefined : openRoomIdPanel,\n ...rest,\n },\n mapModified,\n logs,\n });\n ZoomUtils.zoomFitAllRooms(updatedRooms.filter((x) => x.type === map.state.type));\n if (oldRooms.length === 0 && !map.state.addRoomTutorialShown && !isMobile) {\n map.update({ showTutorial: true, addRoomTutorialShown: true });\n }\n }\n };\n\n //#region //* COMPUTE LAIZE\n\n const withComputeLaize = (mapState: MapContextState): Partial => {\n const { rooms = [], openings = [], roomItems = [], walls = [] } = mapState;\n if (!rooms.length) {\n return {};\n } else {\n Editor.architect(walls, rooms);\n rooms.forEach((room) => {\n OpeningUtils.updateRoomOpenings(room, openings);\n RoomItemUtils.updateRoomItems(room, roomItems);\n RoomDiffUtils.roomComputeDifference(room, roomItems, walls);\n });\n WallUtils.refreshWallsMinimumSizeAndOriginalAngle(walls, openings);\n\n const newLaizeProps = ProductHelper.ToArrayLaizeProps(rooms);\n const {\n rooms: updatedRooms,\n openings: updatedOpenings,\n roomItems: updatedRoomItems,\n ...rest\n } = MapResult.calculate({\n rooms,\n roomItems,\n walls,\n openings,\n laizeProps: newLaizeProps,\n logs: 'called withComputeLaize',\n });\n return {\n rooms: updatedRooms,\n openings: updatedOpenings,\n roomItems: updatedRoomItems,\n laizeProps: newLaizeProps,\n ...rest,\n };\n }\n };\n\n //#endregion\n\n //Logger.log('MapContext', { state: map.state, mode: MapConstants.mode });\n\n return (\n \n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n \n \n );\n};\n\nexport const useMapProvider = () => {\n const map = useMapContext();\n const undoMap = useUndoRedoMap();\n\n const deleteRoom = (roomId: string) => {\n const mapState = map.getState();\n undoMap.store(mapState);\n const { walls = [], rooms = [], openings = [], roomItems = [], selectedRoomId } = mapState;\n map.update({\n values: {\n rooms: rooms.filter((r) => r.roomId !== roomId),\n openings: openings.filter((o) => o.roomId !== roomId),\n roomItems: roomItems.filter((ri) => ri.roomId !== roomId),\n walls: walls.filter((w) => w.roomId !== roomId).filter((w) => w.roomId),\n selectedRoomId: selectedRoomId === roomId ? undefined : selectedRoomId,\n busy: false,\n },\n mapModified: true,\n logs: { event: 'deleteRoom', roomId },\n });\n };\n\n const deleteOpening = (openingId: string) => {\n const mapState = map.getState();\n undoMap.store(mapState);\n const { openings = [], selectedOpeningId } = mapState;\n map.update({\n values: {\n openings: openings.filter((item) => item.openingId !== openingId),\n selectedOpeningId: selectedOpeningId === openingId ? undefined : selectedOpeningId,\n busy: false,\n },\n mapModified: true,\n logs: { event: 'deleteOpening', openingId },\n });\n };\n\n const deleteRoomItem = (roomItemId: string) => {\n const mapState = map.getState();\n undoMap.store(mapState);\n const { roomItems = [], selectedRoomItemId } = mapState;\n map.update({\n values: {\n roomItems: roomItems.filter((item) => item.roomItemId !== roomItemId),\n selectedRoomItemId: selectedRoomItemId === roomItemId ? undefined : selectedRoomItemId,\n busy: false,\n },\n mapModified: true,\n logs: { event: 'deleteRoomItem', roomItemId },\n });\n };\n\n return { ...map, deleteRoom, deleteOpening, deleteRoomItem };\n};\n","import React from 'react';\n\nimport { useExportMapSvgV3 } from '../Components/Images/ExportMapSvgV3';\nimport { ExportRoomLaizeBandsSvgItem } from '../Components/Images/Laizes/LaizeExportBands';\nimport { useExportMapLaizeBandsSvgV3 } from '../Components/Images/Laizes/LaizeExportBandsSvgV3';\nimport { RoomType } from '../Models/IRoom';\nimport { useMapContextState } from './MapContext';\n\nexport type MapExportContextValue = {\n captureSvg: (type: RoomType) => string;\n capturePng: (type: RoomType) => Promise;\n exportBandItems: () => Array;\n};\nconst MapExportContext = React.createContext({\n captureSvg: () => '',\n capturePng: () => Promise.resolve(''),\n exportBandItems: () => [],\n});\n\nexport const useMapExport = () => React.useContext(MapExportContext);\n\nexport const MapExportProvider: React.FC = ({ children }) => {\n const mapState = useMapContextState();\n const { mapView, captureSvg, capturePng } = useExportMapSvgV3(mapState);\n const { exportItems: exportBandItems } = useExportMapLaizeBandsSvgV3(mapState);\n\n return (\n \n {children}\n {mapView(RoomType.Sol)}\n {mapView(RoomType.Wall)}\n {exportBandItems().map((item) => item.renderView({ id: item.room.roomId }))}\n \n );\n};\n","import React from 'react';\n\nimport { useQuoteContext } from '../../../Web/Pages/Quote/QuotePageController';\nimport { useMapContext } from './MapContext';\n\n//* USE STORE FEATURE FROM zustand\n//link : https://zustand-demo.pmnd.rs/\n\ntype MapReadyValue = { ready: boolean; setReady: (ready: boolean) => void };\nconst MapReadyContext = React.createContext({ ready: false, setReady: () => ({}) });\nexport const useMapReady = () => React.useContext(MapReadyContext);\n\nexport const MapReadyProvider: React.FC = ({ children }) => {\n const [ready, setReady] = React.useState(false);\n return {children};\n};\n\n//* FIND A BETTER NAME : used to determine if the estimation panel is ready to show or not\n//* TODO REVIEW WHEN START \"FIN DE PARCOURS\"\n\nexport function MapReady({ children }: React.PropsWithChildren) {\n const map = useMapContext();\n const { ready, setReady } = useMapReady();\n const { addRoomTutorialShown, showTutorial, showStoreLocator } = map.state;\n const { loading, versionData, habitationQuestionsOpen } = useQuoteContext().state;\n const show =\n versionData &&\n !Boolean(loading || habitationQuestionsOpen || (showTutorial && !addRoomTutorialShown) || showStoreLocator);\n\n React.useEffect(() => {\n if (ready !== show) {\n setReady(Boolean(show));\n }\n }, [show, ready, setReady]);\n\n return <>{children};\n}\n","import React from 'react';\nimport { ReactSVGPanZoom, Value } from 'react-svg-pan-zoom';\n\ntype MapViewerContextValue = {\n value: Value;\n onChangeValue: (value: Value) => void;\n\n svgViewer?: ReactSVGPanZoom;\n setViewer: (viewer: ReactSVGPanZoom) => void;\n};\nconst defautValue: Value = {\n version: 2,\n mode: 'idle',\n focus: false,\n a: 0,\n b: 0,\n c: 0,\n d: 0,\n e: 0,\n f: 0,\n viewerWidth: 0,\n viewerHeight: 0,\n SVGWidth: 0,\n SVGHeight: 0,\n miniatureOpen: false,\n};\nexport const MapViewerContext = React.createContext({\n value: defautValue,\n onChangeValue: () => {},\n setViewer: () => {},\n});\nexport const useMapViewerContext = () => React.useContext(MapViewerContext);\nexport const MapViewerProvider: React.FC = ({ children }) => {\n const [value, onChangeValue] = React.useState(defautValue);\n const [svgViewer, setViewer] = React.useState();\n\n return (\n \n {children}\n \n );\n};\n","import React from 'react';\n\nimport { ObjectUtils } from '../../../Helpers/ObjectUtils';\nimport { useWindowLog } from '../../../Hooks/WindowLog';\nimport { useViewState } from '../../../Web/Hooks/ViewState/ViewState';\nimport { IRoom, RoomType } from '../Models/IRoom';\nimport { MapContextState, useMapContext } from './MapContext';\nimport { IMapItem } from '../Models/IMapItem';\nimport { IOpening } from '../Models/IOpening';\nimport { IRoomItem } from '../Models/IRoomItem';\n\nconst UndoRedoControllerDefaultValue: UndoRedoController = {\n getState: () => ({}),\n undo: () => ({}),\n redo: () => ({}),\n store: () => ({}),\n clear: () => ({}),\n canRedo: false,\n canUndo: false,\n};\n\ntype UndoRedoMapContextValue = {\n sol: UndoRedoController;\n wall: UndoRedoController;\n store(mapState: MapContextState): void;\n undo(type?: RoomType): MapContextState | undefined;\n redo(type?: RoomType): MapContextState | undefined;\n clear(params?: { futureOnly?: boolean; type?: RoomType }): void;\n};\nconst UndoRedoMapContext = React.createContext({\n sol: UndoRedoControllerDefaultValue,\n wall: UndoRedoControllerDefaultValue,\n store: () => ({}),\n undo: () => ({}),\n redo: () => ({}),\n clear: () => ({}),\n});\nexport const useUndoRedoMap = () => React.useContext(UndoRedoMapContext);\n\nexport function UndoRedoMapProvider({ children }: React.PropsWithChildren) {\n const map = useMapContext();\n const sol = useUndoRedo({ getPresent: () => toUndoRedoMapStack(map.getState()) });\n const wall = useUndoRedo({ getPresent: () => toUndoRedoMapStack(map.getState()) });\n\n const undo = (type?: RoomType) => {\n const targetType = type ?? map.getState().type;\n const oldState = targetType === RoomType.Sol ? sol.undo() : wall.undo();\n if (oldState) {\n return mergeWithCurrentQuestions(oldState, map.getState());\n }\n return undefined;\n };\n\n const redo = (type?: RoomType) => {\n const targetType = type ?? map.getState().type;\n const oldState = targetType === RoomType.Sol ? sol.redo() : wall.redo();\n if (oldState) {\n return mergeWithCurrentQuestions(oldState, map.getState());\n }\n return undefined;\n };\n\n const store = (mapState: MapContextState) => {\n if (mapState.type === RoomType.Sol) {\n sol.store(toUndoRedoMapStack(mapState));\n } else {\n wall.store(toUndoRedoMapStack(mapState));\n }\n };\n const clear = ({ type, futureOnly }: { futureOnly?: boolean; type?: RoomType } = {}) => {\n const targetType = type ?? map.getState().type;\n if (targetType === RoomType.Sol) {\n sol.clear(futureOnly);\n } else {\n wall.clear(futureOnly);\n }\n };\n\n useWindowLog(() => (window.UndoRedoSolMapStack = sol.getState));\n useWindowLog(() => (window.UndoRedoWallMapStack = wall.getState));\n\n return (\n \n {children}\n \n );\n}\nexport const toUndoRedoMapStack = (state: MapContextState): MapContextState => ({\n walls: ObjectUtils.clone(state.walls),\n rooms: ObjectUtils.clone(state.rooms),\n openings: ObjectUtils.clone(state.openings),\n roomItems: ObjectUtils.clone(state.roomItems),\n selectedRoomId: state.selectedRoomId,\n selectedOpeningId: state.selectedOpeningId,\n selectedRoomItemId: state.selectedRoomItemId,\n selectAmenagementOpen: state.selectAmenagementOpen,\n selectRoomShapeOpen: state.selectRoomShapeOpen,\n showHabitation: state.showHabitation,\n showStoreLocator: state.showStoreLocator,\n showFinDeParcours: state.showFinDeParcours,\n logs: state.logs,\n});\n\nexport const mergeWithCurrentQuestions = (old: MapContextState, current: MapContextState): MapContextState => {\n const {\n rooms: oldRooms = [],\n openings: oldOpenings = [],\n roomItems: oldRoomItems = [],\n walls: oldWalls = [],\n ...state\n } = old;\n const { rooms = [], openings = [], roomItems = [] } = current;\n\n const merge = (\n olds: T[],\n currents: T[],\n sameId: (old: T, current: T) => boolean,\n copy: (current: T) => T\n ) => {\n return olds.map((old) => {\n const current = currents.find((c) => sameId(old, c));\n const result = !current\n ? old\n : {\n ...old,\n openSections: current.openSections,\n ...copy(current),\n ...copyQuestions(current),\n };\n return ObjectUtils.clone(result);\n });\n };\n\n return {\n rooms: merge(oldRooms, rooms, (o, c) => o.roomId === c.roomId, copyRoom),\n openings: merge(oldOpenings, openings, (o, c) => o.openingId === c.openingId, copyOpening),\n roomItems: merge(oldRoomItems, roomItems, (o, c) => o.roomItemId === c.roomItemId, copyRoomItem),\n walls: ObjectUtils.clone(oldWalls),\n selectedRoomId: state.selectedRoomId,\n selectedOpeningId: state.selectedOpeningId,\n selectedRoomItemId: state.selectedRoomItemId,\n selectAmenagementOpen: state.selectAmenagementOpen,\n selectRoomShapeOpen: state.selectRoomShapeOpen,\n showHabitation: state.showHabitation,\n showStoreLocator: state.showStoreLocator,\n showFinDeParcours: state.showFinDeParcours,\n logs: state.logs,\n };\n};\n\nconst copyQuestions = (item: IMapItem): IMapItem => {\n return {\n name: item.name,\n namedByUser: item.namedByUser,\n\n questionsBaseContext: item.questionsBaseContext,\n questionsTva: item.questionsTva,\n questionsPose: item.questionsPose,\n questionsSupport: item.questionsSupport,\n questionsPreparation: item.questionsPreparation,\n questionsFinition: item.questionsFinition,\n questionsCopiedFromId: item.questionsCopiedFromId,\n };\n};\nconst copyRoom = (room: IRoom): IRoom => {\n return {\n questionProduitPrincipal: room.questionProduitPrincipal,\n roomType: room.roomType,\n localisation: room.localisation,\n roomFloor: room.roomFloor,\n roomWall: room.roomWall,\n roomExistingFlooring: room.roomExistingFlooring,\n roomExistingFloorType: room.roomExistingFloorType,\n roomHeating: room.roomHeating,\n roomHeatingType: room.roomHeatingType,\n flooringDirection: room.flooringDirection,\n contournements: room.contournements,\n };\n};\nconst copyOpening = (opening: IOpening): IOpening => {\n return {\n type: opening.type,\n size: opening.size,\n customSize: opening.customSize,\n };\n};\nconst copyRoomItem = (roomItem: IRoomItem): IRoomItem => {\n return {\n type: roomItem.type,\n putFlooring: roomItem.putFlooring,\n putPlinthes: roomItem.putPlinthes,\n width: roomItem.width,\n height: roomItem.height,\n dimensId: roomItem.dimensId,\n isMoveableOutside: roomItem.isMoveableOutside,\n };\n};\n\n//#region HOOKS\n\ntype UndoRedoController = {\n getState(): Partial>;\n canUndo: boolean;\n undo(): T | undefined;\n canRedo: boolean;\n redo(): T | undefined;\n store(s: T): void;\n clear(futureOnly?: boolean): void;\n};\n\nexport type UndoRedoState = { past?: T[]; present?: T; future?: T[] };\n\ntype UndoRedoParams = { getPresent: () => T };\nfunction useUndoRedo({ getPresent }: UndoRedoParams): UndoRedoController {\n const {\n state: { past = [], future = [] },\n getState,\n update,\n } = useViewState>({ past: [], future: [] });\n\n const clear = (futureOnly?: boolean) => {\n const past = getState().past || [];\n update(\n futureOnly\n ? { past: past.slice(0, past.length - 1), future: [], present: undefined }\n : { past: [], future: [], present: undefined }\n );\n };\n const store = (present: T) => update({ past: [...past, present], future: [], present: undefined });\n\n const undo = (): T | undefined => {\n const { past = [], future = [], present } = getState();\n\n const newPresent = present || getPresent();\n const previous = ObjectUtils.clone(past[past.length - 1]);\n const newPast = ObjectUtils.clone(past.slice(0, past.length - 1));\n const newFuture = ObjectUtils.clone([newPresent, ...future]);\n update({ past: newPast, present: previous, future: newFuture });\n\n return previous;\n };\n\n const redo = (): T | undefined => {\n const { past = [], future = [], present } = getState();\n\n const newPresent = present || getPresent();\n const next = ObjectUtils.clone(future[0]);\n const newFuture = ObjectUtils.clone(future.slice(1));\n const newPast = ObjectUtils.clone([...past, newPresent]);\n\n update({ past: newPast, present: next, future: newFuture });\n\n return next;\n };\n\n return {\n getState,\n undo,\n redo,\n store,\n clear,\n canUndo: Boolean(past.length),\n canRedo: Boolean(future.length),\n };\n}\n\n//#endregion\n","import { ObjectUtils } from '../../../Helpers/ObjectUtils';\nimport { I18n } from '../../../Locales/I18nService';\nimport { MapConstants } from '../MapConstants';\nimport { IOpening, OpeningType } from '../Models/IOpening';\nimport { IdGenerator } from '../Utils/IdGenerator';\n\nexport class OpeningFactory {\n public static openingThickness = 12;\n public static getNewName = (baseOpening: IOpening, openings: Array) => {\n return OpeningFactory.isDefaultName(baseOpening)\n ? OpeningFactory.getDuplicateName(baseOpening, openings)\n : OpeningFactory.toUniqueName(baseOpening.type!, openings);\n };\n //#region //* NAME GENERATOR\n public static defaultName = (openingCount: number = 0) => `Ouverture ${openingCount + 1}`;\n public static isDefaultName = (opening: IOpening) => {\n const [name, num] = opening.name!.split(' ');\n return name === 'Ouverture' && Boolean(num.length) && Number.isFinite(parseInt(num));\n };\n public static getDuplicateName(opening: IOpening, openings: Array) {\n const openingNumbers = openings.filter(this.isDefaultName).map((o) => {\n const num = o.name!.split(' ')[1];\n return parseInt(num);\n });\n if (openingNumbers.length) {\n const name = opening.name!.split(' ')[0];\n const max = Math.max(...openingNumbers) + 1;\n return `${name} ${max}`;\n }\n return `${opening.name} 2`;\n }\n\n public static toUniqueName = (type: OpeningType, openings: Array) => {\n let baseName = '';\n //const baseName = I18n.get(`Opening_${type}` as StringKey);\n switch (type) {\n case OpeningType.ArmoredDoor:\n baseName = I18n.get('Opening_ArmoredDoor');\n break;\n case OpeningType.Door:\n baseName = I18n.get('Opening_Door');\n break;\n case OpeningType.FrenchDoor:\n baseName = I18n.get('Opening_FrenchDoor');\n break;\n case OpeningType.FrontDoor:\n baseName = I18n.get('Opening_FrontDoor');\n break;\n case OpeningType.PatioDoor:\n baseName = I18n.get('Opening_PatioDoor');\n break;\n case OpeningType.Opening:\n baseName = I18n.get('Opening_opening');\n break;\n }\n const toBaseName = () => {\n let wantedName = baseName;\n if (!openings.some((x) => x.name === wantedName)) {\n return wantedName;\n } else {\n let i = 2;\n wantedName = `${baseName} ${i}`;\n // eslint-disable-next-line no-loop-func\n while (openings.some((x) => x.name === wantedName)) {\n i++;\n wantedName = `${baseName} ${i}`;\n }\n return wantedName;\n }\n };\n return toBaseName();\n };\n\n //#endregion\n\n public static createOpening = ({ name, type, size, ...rest }: Partial): IOpening => {\n const thick = this.openingThickness;\n const placingOpening: IOpening = ObjectUtils.clone({\n ...rest,\n family: 'inWall',\n type,\n angle: 0,\n angleSign: 0,\n size,\n name,\n hinge: 'normal',\n thick,\n limit: [],\n scale: { x: 1, y: 1 },\n width: (size! / MapConstants.meter).toFixed(2),\n height: (thick / MapConstants.meter).toFixed(2),\n openingId: IdGenerator.generate(),\n });\n return placingOpening;\n };\n}\n","import { I18n } from '../../../Locales/I18nService';\n\nimport { IRoom, ObsoleteRoomDimensions, RoomAngle, RoomShape, RoomType } from '../Models/IRoom';\n\nconst BaseRoom: IRoom = {\n type: RoomType.Sol,\n name: '',\n roomType: '',\n roomFloor: '',\n roomExistingFlooring: '',\n roomExistingFloorType: '',\n roomHeating: '',\n roomHeatingType: '',\n openings: [],\n roomItems: [],\n};\n\nconst toDiamondDimensions = (width: number, height: number): ObsoleteRoomDimensions => {\n const min = Math.min(width, height);\n const table = min / 1.5;\n const unkownNumber = Math.sqrt(Math.pow(table, 2) / 2);\n const left_crown = width - unkownNumber;\n const right_crown = height - unkownNumber;\n //console.log('toDiamondDimension', { width, height, min, table, unkownNumber, left_crown, right_crown })\n return { left_crown, table, right_crown };\n};\n\nconst FLYING_WING_SIZE_RATIO = 0.5; //0.625;(ratio de base avec les anciens tailles en dur)\n\nexport class RoomFactory {\n //#region //* NAME GENERATOR\n\n public static defaultName = (roomCount: number = 0, type: RoomType = RoomType.Sol) =>\n (type === RoomType.Sol ? 'Pièce' : 'Mur') + ` ${roomCount + 1}`;\n\n public static isDefaultName = (roomName: string = '') => {\n const [name, num] = roomName.split(' ');\n return name === 'Pièce' && Boolean(num.length) && Number.isFinite(parseInt(num));\n };\n\n public static getDuplicateName(room: IRoom, rooms: Array) {\n const roomNumbers = rooms\n .filter((r) => r.name)\n .map((r) => {\n const num = r.name!.split(' ')[1];\n return parseInt(num);\n });\n if (roomNumbers.length) {\n const name = room.name!.split(' ')[0];\n const max = Math.max(...roomNumbers) + 1;\n return `${name} ${max}`;\n }\n return `${room.name} 2`;\n }\n\n public static toUniqueName = (rooms: Array, roomType: string = '', roomFloor: string = '') => {\n if (\n roomFloor === I18n.get('RoomItemDialog_RoomFloorList_Etage1a3') ||\n roomFloor === I18n.get('RoomItemDialog_RoomFloorList_4etPlus')\n ) {\n roomFloor = I18n.get('RoomItemDialog_RoomFloorList_Floor'); //floor exception, fr string\n }\n const toBaseRoomName = (type: string = '', floor: string = '') => `${type}`;\n let wantedRoomName = toBaseRoomName(roomType, roomFloor);\n if (!rooms.some((x) => x.name === wantedRoomName)) {\n return wantedRoomName;\n } else {\n let i = 2;\n wantedRoomName = `${roomType} ${i}`;\n // eslint-disable-next-line no-loop-func\n while (rooms.some((x) => x.name === wantedRoomName)) {\n wantedRoomName = `${roomType} ${i}`;\n i++;\n }\n return wantedRoomName;\n }\n };\n\n //#endregion\n\n public static createBaseRoom = (\n roomShape: RoomShape,\n width: number,\n height: number,\n type: RoomType = RoomType.Sol\n ): IRoom => {\n switch (roomShape) {\n case RoomShape.Rectangle:\n return this.createRectangle(width, height, type);\n case RoomShape.Open_bottom_rectangle:\n return this.createOpenBottomRectangle(width, height, type);\n case RoomShape.Diamond_topleft:\n return this.createDiamondTopLeft(width, height, type);\n case RoomShape.Diamond_topright:\n return this.createDiamondTopRight(width, height, type);\n case RoomShape.Diamond_bottomleft:\n return this.createDiamondBottomLeft(width, height);\n case RoomShape.Diamond_bottomright:\n return this.createDiamondBottomRight(width, height);\n\n case RoomShape.Flyingwing_topleft:\n return this.createFlyingwingTopLeft(width, height);\n case RoomShape.Flyingwing_topright:\n return this.createFlyingwingTopRight(width, height);\n case RoomShape.Flyingwing_bottomleft:\n return this.createFlyingwingBottomLeft(width, height);\n case RoomShape.Flyingwing_bottomright:\n return this.createFlyingwingBottomRight(width, height);\n\n case RoomShape.U_top:\n return this.createU(width, height, 0, RoomShape.U_top);\n case RoomShape.U_right:\n return this.createU(width, height, 90, RoomShape.U_right);\n case RoomShape.U_bottom:\n return this.createU(width, height, 180, RoomShape.U_bottom);\n case RoomShape.U_left:\n return this.createU(width, height, 270, RoomShape.U_left);\n\n case RoomShape.Plus:\n return this.createPlus(width, height);\n\n default:\n throw new Error(`the ${roomShape} is not supported`);\n }\n };\n //#region //* RECTANGE\n\n private static createRectangle = (width: number, height: number, type: RoomType): IRoom => {\n return {\n ...BaseRoom,\n type,\n shape: RoomShape.Rectangle,\n //dimensions: { width: 4, height: type === RoomType.Sol ? 3 : 2.5 },\n obsoleteDimensions: { width, height },\n };\n };\n\n private static createOpenBottomRectangle = (width: number, height: number, type: RoomType): IRoom => {\n return {\n ...BaseRoom,\n type,\n shape: RoomShape.Open_bottom_rectangle,\n //dimensions: { width: 5, height: 4 },\n obsoleteDimensions: { width, height },\n };\n };\n\n //#endregion\n\n //#region //* DIAMOND\n private static createDiamondTopLeft = (width: number, height: number, type: RoomType): IRoom => {\n return {\n ...BaseRoom,\n shape: RoomShape.Diamond_topleft,\n // dimensions: {\n // left_crown: type === RoomType.Sol ? 1.5 : 1,\n // table: 2.12,\n // right_crown: 2.5,\n // },\n obsoleteDimensions: toDiamondDimensions(height, width),\n };\n };\n private static createDiamondTopRight = (width: number, height: number, type: RoomType): IRoom => {\n return {\n ...BaseRoom,\n type,\n shape: RoomShape.Diamond_topright,\n // dimensions: {\n // left_crown: 2.5,\n // table: 2.12,\n // right_crown: type === RoomType.Sol ? 1.5 : 1,\n // },\n obsoleteDimensions: toDiamondDimensions(width, height),\n };\n };\n private static createDiamondBottomLeft = (width: number, height: number): IRoom => {\n return {\n ...BaseRoom,\n shape: RoomShape.Diamond_bottomleft,\n //dimensions: { left_crown: 2.5, table: 2.12, right_crown: 1.5 },\n obsoleteDimensions: toDiamondDimensions(width, height),\n };\n };\n private static createDiamondBottomRight = (width: number, height: number): IRoom => {\n return {\n ...BaseRoom,\n shape: RoomShape.Diamond_bottomright,\n //dimensions: { left_crown: 1.5, table: 2.12, right_crown: 2.5 },\n obsoleteDimensions: toDiamondDimensions(height, width),\n };\n };\n\n //#endregion\n\n //#region //* FLYING\n private static createFlyingwingTopLeft = (width: number, height: number): IRoom => {\n const right_trailing_edge = width * FLYING_WING_SIZE_RATIO;\n const left_wingtip = width - right_trailing_edge;\n const right_wingtip = height / 2;\n const left_trailing_edge = height / 2;\n const dimensions = { right_wingtip, right_trailing_edge, left_trailing_edge, left_wingtip };\n return {\n ...BaseRoom,\n __comment_enum__: 'flyingwing_topleft, flyingwing_topright; flyingwing_bottomleft; flyingwing_bottomright',\n shape: RoomShape.Flyingwing_topleft,\n //dimensions: { right_wingtip: 1.5, right_trailing_edge: 2.5, left_trailing_edge: 1.5, left_wingtip: 1.5 },\n obsoleteDimensions: dimensions,\n };\n };\n private static createFlyingwingTopRight = (width: number, height: number): IRoom => {\n const left_trailing_edge = width * FLYING_WING_SIZE_RATIO;\n const right_wingtip = width - left_trailing_edge;\n const right_trailing_edge = height / 2;\n const left_wingtip = height / 2;\n const dimensions = { right_wingtip, right_trailing_edge, left_trailing_edge, left_wingtip };\n return {\n ...BaseRoom,\n __comment_enum__: 'flyingwing_topleft, flyingwing_topright; flyingwing_bottomleft; flyingwing_bottomright',\n shape: RoomShape.Flyingwing_topright,\n //dimensions: { right_wingtip: 1.5, right_trailing_edge: 1.5, left_trailing_edge: 2.5, left_wingtip: 1.5 },\n obsoleteDimensions: dimensions,\n };\n };\n private static createFlyingwingBottomLeft = (width: number, height: number): IRoom => {\n const left_trailing_edge = width * FLYING_WING_SIZE_RATIO;\n const right_wingtip = width - left_trailing_edge;\n const right_trailing_edge = height / 2;\n const left_wingtip = height / 2;\n const dimensions = { right_wingtip, right_trailing_edge, left_trailing_edge, left_wingtip };\n return {\n ...BaseRoom,\n __comment_enum__: 'flyingwing_topleft, flyingwing_topright; flyingwing_bottomleft; flyingwing_bottomright',\n shape: RoomShape.Flyingwing_bottomleft,\n //dimensions: { right_wingtip: 1.5, right_trailing_edge: 1.5, left_trailing_edge: 2.5, left_wingtip: 1.5 },\n obsoleteDimensions: dimensions,\n };\n };\n private static createFlyingwingBottomRight = (width: number, height: number): IRoom => {\n const right_trailing_edge = width * FLYING_WING_SIZE_RATIO;\n const left_wingtip = width - right_trailing_edge;\n const left_trailing_edge = height / 2;\n const right_wingtip = height / 2;\n const dimensions = { right_wingtip, right_trailing_edge, left_trailing_edge, left_wingtip };\n return {\n ...BaseRoom,\n __comment_enum__: 'flyingwing_topleft, flyingwing_topright; flyingwing_bottomleft; flyingwing_bottomright',\n shape: RoomShape.Flyingwing_bottomright,\n //dimensions: { right_wingtip: 1.5, right_trailing_edge: 2.5, left_trailing_edge: 1.5, left_wingtip: 1.5 },\n obsoleteDimensions: dimensions,\n };\n };\n\n //#endregion\n\n //#region //* U\n private static createU = (width: number, height: number, angle: RoomAngle, shape: RoomShape): IRoom => {\n let exterior_base;\n let left_exterior_edge;\n let left_tip;\n let left_interior_edge;\n let right_tip;\n let right_exterior_edge;\n const tipConstant = 0.375;\n console.log({ width, height, angle });\n const roundedThird =\n angle === 0 || angle === 180\n ? Math.ceil(width * tipConstant * 100) / 100\n : Math.ceil(height * tipConstant * 100) / 100; //avoid aving infinite decimals\n switch (angle) {\n default:\n case 0:\n case 180:\n exterior_base = width;\n left_exterior_edge = height;\n left_tip = roundedThird;\n left_interior_edge = height / 2;\n right_tip = roundedThird;\n right_exterior_edge = height;\n break;\n case 90:\n case 270:\n exterior_base = height;\n left_exterior_edge = width;\n left_tip = roundedThird;\n left_interior_edge = height / 2;\n right_tip = roundedThird;\n right_exterior_edge = width;\n break;\n }\n\n const dimensions = {\n exterior_base,\n left_exterior_edge,\n left_tip,\n left_interior_edge,\n right_tip,\n right_exterior_edge,\n };\n return { ...BaseRoom, shape, obsoleteDimensions: dimensions };\n };\n\n private static createPlus = (width: number, height: number): IRoom => {\n const widthInCm = width * 100;\n const fixedWidthInCm = (widthInCm - widthInCm % 3);\n\n const roundedThirdHorizontalInMeter = fixedWidthInCm / 3 / 100; //avoid aving infinite decimals\n const fixedWidthInMeter = fixedWidthInCm / 100;\n const edgesHorizontal = (fixedWidthInMeter - roundedThirdHorizontalInMeter) / 2;\n\n const heightInCm = height * 100;\n const fixedHeightInCm = (heightInCm - heightInCm % 3);\n const roundedThirdVerticalInMeter = fixedHeightInCm / 3 / 100; //avoid aving infinite decimals\n\n const fixedHeightinMeter = fixedHeightInCm / 100;\n const edgesVertical = (fixedHeightinMeter - roundedThirdVerticalInMeter) / 2;\n return {\n ...BaseRoom,\n shape: RoomShape.Plus,\n customPoints: [\n { x: 0, y: 0 },\n { x: edgesHorizontal, y: 0 },\n { x: edgesHorizontal, y: edgesVertical },\n { x: edgesHorizontal + roundedThirdHorizontalInMeter, y: edgesVertical },\n { x: edgesHorizontal + roundedThirdHorizontalInMeter, y: edgesVertical + roundedThirdVerticalInMeter },\n { x: edgesHorizontal, y: edgesVertical + roundedThirdVerticalInMeter },\n { x: edgesHorizontal, y: edgesVertical * 2 + roundedThirdVerticalInMeter },\n { x: 0, y: edgesVertical * 2 + roundedThirdVerticalInMeter },\n { x: 0, y: edgesVertical + roundedThirdVerticalInMeter },\n { x: -edgesHorizontal, y: edgesVertical + roundedThirdVerticalInMeter },\n { x: -edgesHorizontal, y: edgesVertical },\n { x: 0, y: edgesVertical },\n ]\n };\n };\n}\n","import { ObjectUtils } from '../../../Helpers/ObjectUtils';\nimport { I18n } from '../../../Locales/I18nService';\nimport { IRoomItem, RoomItemType } from '../Models/IRoomItem';\nimport { IdGenerator } from '../Utils/IdGenerator';\nimport { PointUtils } from '../Utils/PointUtils';\n\nexport class RoomItemFactory {\n //#region //* NAME GENERATOR\n public static getNewName = (baseRoomItem: IRoomItem, roomItems: Array) => {\n return RoomItemFactory.isDefaultName(baseRoomItem)\n ? RoomItemFactory.getDuplicateName(baseRoomItem, roomItems)\n : RoomItemFactory.toUniqueName(baseRoomItem.type!, roomItems);\n };\n public static defaultName = (roomItemCount: number = 0) => `Aménagement ${roomItemCount + 1}`;\n\n public static isDefaultName = (roomItem: IRoomItem) => {\n const [name, num] = roomItem.name!.split(' ');\n return name === 'Aménagement' && Boolean(num.length) && Number.isFinite(parseInt(num));\n };\n public static getDuplicateName(roomItem: IRoomItem, roomItems: Array) {\n const roomItemNumbers = roomItems.filter(this.isDefaultName).map((re) => {\n const num = re.name!.split(' ')[1];\n return parseInt(num);\n });\n if (roomItemNumbers.length) {\n const name = roomItem.name!.split(' ')[0];\n const max = Math.max(...roomItemNumbers) + 1;\n return `${name} ${max}`;\n }\n return `${roomItem.name} 2`;\n }\n\n public static toUniqueName = (type: RoomItemType, roomItems: Array) => {\n let baseName = '';\n switch (type) {\n case RoomItemType.Cupboard:\n baseName = I18n.get('RoomItem_Cupboard');\n break;\n case RoomItemType.Divider:\n baseName = I18n.get('RoomItem_Divider');\n break;\n case RoomItemType.Fireplace:\n baseName = I18n.get('RoomItem_Fireplace');\n break;\n case RoomItemType.FixedFurniture:\n baseName = I18n.get('RoomItem_FixedFurniture');\n break;\n case RoomItemType.HeavyElement:\n baseName = I18n.get('RoomItem_HeavyElement');\n break;\n case RoomItemType.KitchenFurniture:\n baseName = I18n.get('RoomItem_KitchenFurniture');\n break;\n case RoomItemType.Opening:\n baseName = I18n.get('RoomItem_Opening');\n break;\n case RoomItemType.SewerPlate:\n baseName = I18n.get('RoomItem_SewerPlate');\n break;\n case RoomItemType.ShowerBathtub:\n baseName = I18n.get('RoomItem_ShowerBathtub');\n break;\n case RoomItemType.Stairs:\n baseName = I18n.get('RoomItem_Stairs');\n break;\n case RoomItemType.Trap:\n baseName = I18n.get('RoomItem_Trap');\n break;\n case RoomItemType.Door:\n baseName = I18n.get('RoomItem_Door');\n break;\n case RoomItemType.Window:\n baseName = I18n.get('RoomItem_Window');\n break;\n case RoomItemType.UnlaidArea:\n baseName = I18n.get('RoomItem_UnlaidArea');\n break;\n }\n\n const toBaseName = () => {\n let wantedName = baseName;\n if (!roomItems.some((x) => x.name === wantedName)) {\n return wantedName;\n } else {\n let i = 2;\n wantedName = `${baseName} ${i}`;\n // eslint-disable-next-line no-loop-func\n while (roomItems.some((x) => x.name === wantedName)) {\n i++;\n wantedName = `${baseName} ${i}`;\n }\n return wantedName;\n }\n };\n return toBaseName();\n };\n\n //#endregion\n\n public static createRoomItem = (base: Partial): IRoomItem => {\n //from params : width, height, name, type, putFlooring, putPlinthes, isMoveableOutside\n const placingRoomItem: IRoomItem = ObjectUtils.clone(\n this.create({\n ...base,\n roomItemId: IdGenerator.generate(),\n })\n );\n return placingRoomItem;\n };\n\n public static create = (from: IRoomItem): IRoomItem => {\n const item: IRoomItem = {\n ...from,\n roomItemId: from.roomItemId,\n roomId: from.roomId,\n type: from.type,\n name: from.name,\n putFlooring: from.putFlooring,\n putPlinthes: from.putPlinthes,\n isMoveableOutside: from.isMoveableOutside || from.type === RoomItemType.Cupboard, // #20350\n width: from.width,\n height: from.height,\n graphTranslation: from.graphTranslation || { x: 3300, y: 1700 },\n };\n\n const halfWidth = item.width! / 2;\n const halfHeight = item.height! / 2;\n item.coords = [\n { x: -halfWidth, y: -halfHeight },\n { x: halfWidth, y: -halfHeight },\n { x: halfWidth, y: halfHeight },\n { x: -halfWidth, y: halfHeight },\n { x: -halfWidth, y: -halfHeight },\n ];\n\n item.coordsReal = item.coords.map((x) => PointUtils.translation(x, item.graphTranslation!));\n\n return item;\n };\n}\n","import { FindFirstIncompatibilityResult } from '../../../Helpers/QuestionsHelper';\nimport { TagType } from '../../../Web/Pages/Quote/Widgets/TagLabel';\nimport { CompleteStatus, IMapItem, YesOrNo } from '../Models/IMapItem';\nimport { IOpening } from '../Models/IOpening';\nimport { IRoom, RoomLocalisation, RoomType } from '../Models/IRoom';\nimport { IRoomItem, RoomItemType } from '../Models/IRoomItem';\n\nexport class CompleteHelper {\n public static allComplete = (rooms: Array = []) => {\n const allCompleted = Boolean(rooms.length) && !rooms.some((r) => !r.completionStatus?.isCompleted);\n return allCompleted;\n };\n\n //#region //* ROOM\n\n public static isRoomComplete = (item: IRoom, rooms: Array): CompleteStatus => {\n const propertiesCompleted = this.isRoomPropertiesCompleted(item);\n const infosCompleted = this.isRoomInfoCompleted(item, rooms);\n const questionsComplete = this.isQuestionsComplete(item);\n const amenagementsCompletedType = this.getRoomAmenagementCompletionType(item);\n const amenagementsCompleted = amenagementsCompletedType === TagType.Done;\n const questionProduitCompleted = item.questionProduitPrincipal?.isValid;\n const isRoomCompleted = Boolean(\n infosCompleted && questionsComplete && amenagementsCompleted && questionProduitCompleted\n );\n\n return {\n propertiesCompleted,\n infosCompleted,\n questionsComplete,\n amenagementsCompleted,\n isCompleted: isRoomCompleted,\n completedType: this.getCompletionType(isRoomCompleted, item.findIncompatibilityResult),\n infoCompletedType: this.getCompletionType(infosCompleted, item.findIncompatibilityResult),\n amenagementsCompletedType,\n };\n };\n\n private static isRoomPropertiesCompleted = (room: IRoom) => {\n let isComplete: boolean =\n Boolean(room.localisation) &&\n Boolean(room.roomType) &&\n Boolean(room.roomFloor) &&\n Boolean(room.roomExistingFlooring) &&\n Boolean(room.roomExistingFloorType);\n\n if (room.localisation === RoomLocalisation.Inside && room.type === RoomType.Sol) {\n isComplete = isComplete && Boolean(room.roomHeating) && Boolean(room.roomHeatingType);\n }\n\n if (room.type === RoomType.Wall) {\n isComplete = isComplete && Boolean(room.roomWall);\n }\n\n return isComplete;\n };\n\n private static isRoomInfoCompleted = (item: IRoom, rooms: Array) => {\n let isComplete: boolean =\n this.isRoomPropertiesCompleted(item) &&\n Boolean(item.questionsTva?.endQuestion) &&\n Boolean(item.questionProduitPrincipal?.produitValue);\n\n const needCopyQuestionsAnswer =\n Boolean(\n rooms.filter(\n (r) => r.localisation === item.localisation && r.roomId !== item.roomId && r.type === item.type\n ).length\n ) && !Boolean(item.questionsCopiedFromId);\n console.log('isRoomInfoCompleted', {\n noNeedCopyQuestionsAnswer: !needCopyQuestionsAnswer,\n isComplete,\n tvaEndQuestion: Boolean(item.questionsTva?.endQuestion),\n qqValueValid: Boolean(item.questionProduitPrincipal?.produitValue)\n })\n isComplete = isComplete && !needCopyQuestionsAnswer;\n return isComplete;\n };\n\n private static getRoomAmenagementCompletionType = (item: IRoom): TagType => {\n const { openings = [], roomItems = [] } = item;\n const completionTypes = [...openings, ...roomItems].map((i) => i.completionStatus?.completedType);\n if (completionTypes.includes(TagType.Error)) {\n return TagType.Error;\n } else if (completionTypes.includes(TagType.ToDo)) {\n return TagType.ToDo;\n }\n return TagType.Done;\n };\n\n public static getCompletionType = (\n completed: boolean,\n findFirstIncompatibilityResult?: FindFirstIncompatibilityResult\n ): TagType => {\n if (findFirstIncompatibilityResult?.findIncompatibility) {\n return TagType.Error;\n } else if (completed) {\n return TagType.Done;\n }\n return TagType.ToDo;\n };\n\n public static isOnlyRoomQuestionsCopiedAnswerMising = (room: IRoom) => {\n let isInfoComplete: boolean =\n Boolean(room.localisation) &&\n Boolean(room.roomType) &&\n Boolean(room.roomFloor) &&\n Boolean(room.roomExistingFlooring) &&\n Boolean(room.roomExistingFloorType) &&\n Boolean(room.questionProduitPrincipal?.produitValue);\n\n if (room.localisation === RoomLocalisation.Inside) {\n isInfoComplete = isInfoComplete && Boolean(room.roomHeating) && Boolean(room.roomHeatingType);\n }\n const isQuestionsCompleted = Boolean(this.isQuestionsComplete(room));\n const isAmenagementCompleted = this.getRoomAmenagementCompletionType(room) === TagType.Done;\n\n const isComplete = isInfoComplete && isQuestionsCompleted && isAmenagementCompleted;\n\n return isComplete && !room.questionsCopiedFromId;\n };\n\n //#endregion\n\n //#region //* OPENING\n\n public static isOpeningComplete = (item: IOpening, openings: Array): CompleteStatus => {\n const infosCompleted = this.isOpeningInfosComplete(item, openings);\n const questionsComplete = this.isQuestionsComplete(item);\n const isCompleted = Boolean(infosCompleted && questionsComplete);\n return {\n isCompleted,\n completedType: this.getCompletionType(isCompleted, item.findIncompatibilityResult),\n infoCompletedType: this.getCompletionType(infosCompleted, item.findIncompatibilityResult),\n infosCompleted,\n questionsComplete,\n };\n };\n\n public static isOpeningInfosComplete = (item: IOpening, openings: Array) => {\n let isComplete = Boolean(item.size);\n if (\n openings.filter(\n (o) =>\n o.openingId !== item.openingId &&\n o.type === item.type &&\n CompleteHelper.isAmenagementHasVisibleQuestions(o)\n ).length > 1\n ) {\n isComplete = isComplete && Boolean(item.questionsCopiedFromId);\n }\n return isComplete;\n };\n\n //#endregion\n\n //#region //* ROOM_ITEM\n\n public static isRoomItemComplete = (item: IRoomItem, roomItems: Array): CompleteStatus => {\n const infosCompleted = this.isRoomItemInfoComplete(item, roomItems);\n const questionsComplete = this.isQuestionsComplete(item);\n const isCompleted = Boolean(infosCompleted && questionsComplete);\n return {\n isCompleted,\n infosCompleted,\n completedType: this.getCompletionType(isCompleted, item.findIncompatibilityResult),\n infoCompletedType: this.getCompletionType(infosCompleted, item.findIncompatibilityResult),\n questionsComplete,\n };\n };\n public static isRoomItemInfoComplete = (item: IRoomItem, roomItems: Array) => {\n let isComplete = Boolean(item.width) && Boolean(item.height);\n if (\n roomItems.filter(\n (ri) =>\n ri.roomItemId !== item.roomItemId &&\n ri.type === item.type &&\n CompleteHelper.isAmenagementHasVisibleQuestions(ri)\n ).length > 1\n ) {\n isComplete = isComplete && Boolean(item.questionsCopiedFromId);\n }\n if ([RoomItemType.Cupboard, RoomItemType.Stairs, RoomItemType.ShowerBathtub].includes(item.type!)) {\n isComplete = Boolean(item.putFlooring);\n }\n if (item.type === RoomItemType.Cupboard && item.putFlooring === YesOrNo.Yes) {\n isComplete = Boolean(item.putPlinthes);\n }\n return isComplete;\n };\n\n //#endregion\n\n public static isAmenagementHasVisibleQuestions = (item: IMapItem) => {\n const itemSteps = [item.questionsFinition];\n const itemWithQuestions = itemSteps.some((step) => !step?.isEmpty);\n return itemWithQuestions;\n };\n\n public static isQuestionsComplete = (item: IMapItem) => {\n return (\n item.questionsTva?.endQuestion &&\n item.questionsPose?.endQuestion &&\n item.questionsSupport?.endQuestion &&\n item.questionsPreparation?.endQuestion &&\n item.questionsFinition?.endQuestion\n );\n };\n}\n","import { IRoom, ObsoleteRoomDimensions, RoomLocalisation, RoomShape, RoomType } from 'Plugins/FloorPlan/Models/IRoom';\nimport { Logger } from '../../../../Errors/Logger';\nimport { I18n } from '../../../../Locales/I18nService';\nimport { IContournements } from '../../Models/Contournements';\nimport { YesOrNo } from '../../Models/IMapItem';\nimport { IOpening, OpeningType } from '../../Models/IOpening';\nimport { IRoomItem, RoomItemType } from '../../Models/IRoomItem';\nimport { RoomCollision } from '../../Utils/SAT/SATUtils';\nimport { CoordPoint } from '../../Utils/Types';\nimport { ApiMapState, ExportMap } from './MapExportHelper';\n\ntype ExportMapV2Result = {\n rooms?: Partial[];\n openings?: Partial[];\n room_elements?: Partial[];\n direction?: any;\n\n //* USELESS DATA\n overallWidth?: number;\n overallHeight?: number;\n laizes?: any;\n laizeHorizontal?: number;\n laizeVertical?: number;\n global_surface_area?: number;\n map_svg_preview_base64?: string;\n map_png_preview_base64?: string;\n};\ntype ExportMapV2 = ExportMap & { result?: ExportMapV2Result; rooms?: IExportRoom[] };\n\nexport class MapExportV2 {\n public static fromApiJsonToState = ({ result, rooms: exportRooms = [] }: ExportMapV2): ApiMapState => {\n const rooms: IRoom[] = exportRooms.map((exportRoom: IExportRoom) => {\n const room: IRoom = this.toRoom(exportRoom);\n\n if (Boolean(room.roomHeatingType)) {\n room.roomHeating =\n room.roomHeatingType === I18n.get('RoomItemDialog_RoomHeatingTypeList_PasDeChauffage')\n ? YesOrNo.No\n : YesOrNo.Yes;\n }\n\n room.openings = (exportRoom?.objects || [])\n .map((item) => {\n const opening = this.toOpeningItem(item);\n const openingWithRoomId = result?.openings?.find((x) => x.id === opening.openingId);\n opening.roomId = openingWithRoomId?.room_id;\n return opening;\n })\n .filter((o) => o.roomId === room.roomId);\n\n room.roomItems = (exportRoom.roomItems || [])\n .map((item) => {\n const roomItem = this.toRoomItem(item);\n const roomItemWithRoomId = result?.room_elements?.find((x) => x.id === roomItem.roomItemId);\n roomItem.type = roomItemWithRoomId?.type;\n return roomItem;\n })\n .filter((o) => o.roomId === room.roomId);\n\n return room;\n });\n this.updateOldFields(rooms);\n const exportMap = { state: { rooms }, direction: result?.direction };\n Logger.log('MapExportV2 : fromApiJsonToState', exportMap);\n return exportMap;\n };\n\n /**\n ** Replaces old labels in the saved floorplan object with new ones.\n ** This process is unfortunately necessary to keep older projects compatible with wording changes.\n **/\n private static updateOldFields(rooms: Partial[] = []) {\n const toUndefinedIfDefault = (value: string = '') => (value === 'default' ? undefined : value);\n rooms.forEach((room: IRoom) => {\n if (room.roomExistingFloorType === 'Revêtement plastique (vinyle, lino, dalle)') {\n room.roomExistingFloorType = 'Plastique (vinyle, lino, dalle, gazon)';\n }\n if (room.roomHeatingType === 'Je ne connais pas le type de chauffage') {\n room.roomHeatingType = 'Je ne connais pas le type de chauffage au sol';\n }\n room.roomExistingFloorType = toUndefinedIfDefault(room['roomExistingFloorType']);\n });\n }\n\n public static toRoom = (room: IExportRoom): IRoom => {\n if (!room.type) {\n room.type = RoomType.Sol;\n }\n return {\n type: RoomType.Sol,\n roomId: room.roomId,\n name: room.name,\n shape: room.shape,\n\n localisation: room.localisation,\n roomType: room.extra_props?.room_type,\n roomFloor: room.extra_props?.room_floor,\n roomHeatingType: room.extra_props?.room_heating_type,\n roomExistingFlooring: room.extra_props?.room_existing_flooring,\n roomExistingFloorType: room.extra_props?.room_existing_floor_type,\n\n contournements: room.contournements_numbers,\n\n //* COORDS\n obsoleteDimensions: room.obsoleteDimensions,\n center: room.center,\n coords: room.coords,\n\n //sides: room.sides,\n //objects: room.objects, //todo @mmc, why is this here?\n // calcul_en_laize: room.calcul_en_laize, //todo @mmc\n // calcul_en_laize_sub_room_elements: room.calcul_en_laize_sub_room_elements,//todo @mmc\n\n // surface_area: room.surface_area,\n // surface_area_without_room_item: room.surface_area_without_room_item,\n // perimeter: room.perimeter,\n // perimeter_plinthes: room.perimeter_plinthes,\n // raccord_length: room.raccord_length,\n // room_length: room.room_length,\n // surface_manipulee_prorata: room.surface_manipulee_prorata,\n // should_lay_plinthes_inside_room_element: room.should_lay_plinthes_inside_room_element,\n };\n };\n\n public static toOpeningItem = (opening: Partial): IOpening => {\n return {\n openingId: opening.id,\n roomId: opening.room_id,\n\n type: opening.type,\n name: opening.name,\n size: opening.size! * 100,\n\n location_side: opening.location_side,\n location_position_from_edge: opening.location_position_from_edge,\n\n x: opening.x,\n y: opening.y,\n limit: opening.limit,\n angle: opening.angle,\n\n //* USELESS\n // contiguous_between_rooms: opening.contiguous_between_rooms, //!\\ warning on load\n\n // hinge: opening.hinge,\n // scale: opening.scale,\n // thick: opening.thick,\n // value: opening.value,\n // position: opening.position,\n // angleSign: opening.angleSign,\n // width: opening.width,\n // height: opening.height,\n };\n };\n\n public static toRoomItem = (roomItem: Partial): IRoomItem => {\n if (roomItem.dimensId === undefined) {\n roomItem.dimensId = 0;\n }\n return {\n type: roomItem.type,\n roomItemId: roomItem.id,\n roomId: roomItem.roomId,\n name: roomItem.name,\n\n putFlooring: roomItem.putFlooring,\n putPlinthes: roomItem.putPlinthes,\n isMoveableOutside: roomItem.isMoveableOutside,\n\n width: roomItem.width,\n height: roomItem.height,\n coords: roomItem.coords,\n coordsReal: roomItem.coordsReal,\n graphTranslation: roomItem.graphTranslation,\n\n //collisions: roomItem.collisions,\n // position: roomItem.position,\n // surface: roomItem.surface,\n // horizontal_size: roomItem.horizontal_size,\n // vertical_size: roomItem.vertical_size,\n // room_elements_length: roomItem.room_elements_length,\n };\n };\n}\n\n//#region //* EXPORT MODELS\ninterface IExportRoom {\n roomId?: string;\n name?: string;\n shape?: RoomShape;\n localisation?: RoomLocalisation;\n type?: RoomType;\n contournements_numbers?: IContournements;\n extra_props?: {\n //provenant d'une question/réponse en dur (#20009)\n room_type?: string;\n room_existing_flooring?: string;\n room_existing_floor_type?: string;\n room_floor?: string;\n room_heating_type?: string;\n };\n\n //* injected by MapResult -> calculate\n raccord_length?: number;\n room_length?: number;\n surface_area?: number;\n surface_area_without_room_item?: number;\n surface_manipulee_prorata?: number;\n perimeter?: number;\n perimeter_plinthes?: number;\n should_lay_plinthes_inside_room_element?: boolean;\n\n center?: CoordPoint;\n obsoleteDimensions?: ObsoleteRoomDimensions;\n\n sides?: Map>;\n coords?: Array;\n\n objects?: IExportOpeningItem[];\n roomItems?: IExportRoomItem[];\n}\n\ninterface IExportOpeningItem {\n id: string;\n room_id: string;\n type: OpeningType;\n name: string;\n size: number;\n location_side?: string;\n location_position_from_edge?: number;\n\n //* OpeningProperties\n door_properties: { door_type?: string; unhingeable_opening?: string }; //!\\ unhingeableOpening: Oui ou Non\n contiguous_between_rooms?: Array;\n\n x?: number;\n y?: number;\n limit?: Array;\n angle?: number;\n\n // position?: CoordPoint;\n // customSize?: boolean;\n // family?: string; //like inWall, stick, collision, free\n // class?: string; // door, window, energy, stair, measure, text ?\n // classe?: string, // door, window, energy, stair, measure, text ?\n\n //hinge?: string;\n //thick?: number;\n //value?: number;\n\n // scale?: CoordPoint;\n // angleSign?: number;\n // width?: string;\n // height?: string;\n}\n\ninterface IExportRoomItem {\n id: string;\n roomId: string;\n type: RoomItemType;\n name: string;\n\n putFlooring?: YesOrNo;\n putPlinthes?: string;\n isMoveableOutside?: boolean; // #20350\n dimensId?: number;\n width?: number;\n height?: number;\n\n coords?: Array;\n coordsReal?: Array;\n graphTranslation?: CoordPoint;\n\n collisions?: Array;\n angle?: number;\n\n //injected in context\n // surface?: number;\n // horizontal_size?: number;\n // vertical_size?: number;\n // room_elements_length?: number;\n // position?: CoordPoint;\n}\n\n//#endregion\n","import { Logger } from '../../../../Errors/Logger';\nimport { I18n } from '../../../../Locales/I18nService';\nimport { IContournements } from '../../Models/Contournements';\nimport { YesOrNo } from '../../Models/IMapItem';\nimport { IOpening, OpeningType } from '../../Models/IOpening';\nimport { IRoom, RoomLocalisation, RoomShape, RoomType } from '../../Models/IRoom';\nimport { IRoomItem, RoomItemType } from '../../Models/IRoomItem';\nimport { CreateRoomFactory } from '../../Utils/Room/RoomUtils';\nimport { RoomCollision } from '../../Utils/SAT/SATUtils';\nimport { CoordPoint } from '../../Utils/Types';\nimport { ApiMapState, ExportMap } from './MapExportHelper';\n\ntype ExportMapV3Data = {\n rooms?: Partial[];\n openings?: Partial[];\n room_elements?: Partial[];\n direction?: any;\n\n //* USELESS DATA\n // overallWidth?: number;\n // overallHeight?: number;\n // laizes?: any;\n // laizeHorizontal?: number;\n // laizeVertical?: number;\n // global_surface_area?: number;\n // map_svg_preview_base64?: string;\n // map_png_preview_base64?: string;\n};\n\ntype ExportMapV3 = ExportMap & { result?: ExportMapV3Data };\n\nexport class MapExportV3 {\n public static VERSION = 3;\n\n public static fromApiJsonToState = ({ result }: ExportMapV3): ApiMapState => {\n const {\n direction,\n rooms: exportRooms = [],\n openings: exportOpenings = [],\n room_elements: exportRoomItems = [],\n } = result!;\n\n const rooms: IRoom[] = exportRooms.map((exportRoom: Partial) => {\n const room: IRoom = this.toRoom(exportRoom);\n room.openings = exportOpenings\n .filter((o: Partial) => o.roomId === room.roomId)\n .map(this.toOpeningItem);\n room.roomItems = exportRoomItems\n .filter((i: Partial) => i.roomId === room.roomId)\n .map(this.toRoomItem);\n\n return room;\n });\n\n this.updateOldFields(rooms);\n\n const exportMap = { state: { rooms }, direction };\n Logger.log('MapExportV3 : fromApiJsonToState', exportMap);\n return exportMap;\n };\n\n /**\n ** Replaces old labels in the saved floorplan object with new ones.\n ** This process is unfortunately necessary to keep older projects compatible with wording changes.\n **/\n private static updateOldFields(rooms: Partial[]) {\n const toUndefinedIfDefault = (value: string = '') => (value === 'default' ? undefined : value);\n rooms.forEach((room: IExportRoom) => {\n if (room.roomExistingFloorType === 'Revêtement plastique (vinyle, lino, dalle)') {\n room.roomExistingFloorType = 'Plastique (vinyle, lino, dalle, gazon)';\n }\n\n if (room.roomHeatingType === 'Je ne connais pas le type de chauffage') {\n room.roomHeatingType = 'Je ne connais pas le type de chauffage au sol';\n }\n\n room.roomExistingFloorType = toUndefinedIfDefault(room['roomExistingFloorType']);\n });\n }\n\n //#region //* CONVERTER : MAP_ITEM TO EXPORT_ITEM\n\n public static toExportRoom = (baseRoom: IRoom): Partial => {\n const room = CreateRoomFactory.exportRoom(baseRoom);\n return {\n roomId: room.roomId,\n name: room.name,\n namedByUser: room.namedByUser,\n shape: room.shape,\n\n // calcul_en_laize: room.calcul_en_laize, //todo @mmc\n // calcul_en_laize_sub_room_elements: room.calcul_en_laize_sub_room_elements,//todo @mmc\n //surface_area: room.surface_area\n\n //* USELESS\n //surface_area_without_room_item: room.surface_area_without_room_item,\n //perimeter: room.perimeter,\n //perimeter_plinthes: room.perimeter_plinthes,\n //raccord_length: room.raccord_length,\n //room_length: room.room_length,\n //surface_manipulee_prorata: room.surface_manipulee_prorata,\n //should_lay_plinthes_inside_room_element: room.should_lay_plinthes_inside_room_element,\n\n localisation: room.localisation,\n roomType: room.roomType,\n roomFloor: room.roomFloor,\n roomHeating: room.roomHeating,\n roomHeatingType: room.roomHeatingType,\n roomExistingFlooring: room.roomExistingFlooring,\n roomExistingFloorType: room.roomExistingFloorType,\n\n questionsCopiedFromId: room.questionsCopiedFromId,\n\n contournements: room.contournements,\n\n //* COORDS\n coords: room.coords,\n center: room.center,\n\n //objects: room.objects, //todo @mmc, why is this here?\n };\n };\n\n public static toExportOpeningItem = (opening: IOpening): Partial => {\n return {\n openingId: opening.openingId,\n roomId: opening.roomId,\n type: opening.type,\n name: opening.name,\n namedByUser: opening.namedByUser,\n\n size: opening.size,\n customSize: opening.customSize,\n\n location_side: opening.location_side,\n location_position_from_edge: opening.location_position_from_edge,\n\n x: opening.x,\n y: opening.y,\n limit: opening.limit, //! WHY\n angle: opening.angle, //! WHY\n\n //* USELESS\n // contiguous_between_rooms: opening.contiguous_between_rooms,\n\n // hinge: opening.hinge, //! WHY\n // scale: opening.scale,\n // thick: opening.thick,\n // value: opening.value,\n // width: opening.width,\n // height: opening.height,\n\n // position: opening.position,\n // angleSign: opening.angleSign,\n };\n };\n\n public static toExportRoomItem = (roomItem: IRoomItem): Partial => {\n return {\n type: roomItem.type,\n roomItemId: roomItem.roomItemId,\n roomId: roomItem.roomId,\n name: roomItem.name,\n namedByUser: roomItem.namedByUser,\n\n putFlooring: roomItem.putFlooring,\n putPlinthes: roomItem.putPlinthes,\n isMoveableOutside: roomItem.isMoveableOutside,\n width: roomItem.width,\n height: roomItem.height,\n\n coords: roomItem.coords,\n coordsReal: roomItem.coordsReal,\n graphTranslation: roomItem.graphTranslation,\n\n //surface: roomItem.surface,\n //horizontal_size: roomItem.horizontal_size,\n //vertical_size: roomItem.vertical_size,\n //room_elements_length: roomItem.room_elements_length,\n //position: roomItem.position,\n };\n };\n\n //#endregion\n\n //#region //* CONVERTER : EXPORT_ITEM TO MAP_ITEM\n\n //! cela semble déjà faire quelques temps que le chargement de projets en v3.0 ne fonctionne plus. A vérifier.\n public static toRoom = (room: IExportRoom): IRoom => {\n //const room = CreateRoomFactory.exportRoom(baseRoom);\n if (room.roomHeatingType) {\n room.roomHeating =\n room.roomHeatingType === I18n.get('RoomItemDialog_RoomHeatingTypeList_PasDeChauffage')\n ? YesOrNo.No\n : YesOrNo.Yes;\n }\n if (!room.type) {\n room.type = RoomType.Sol;\n }\n return {\n roomId: room.roomId,\n name: room.name,\n namedByUser: room.namedByUser,\n shape: room.shape,\n\n localisation: room.localisation,\n roomType: room.roomType,\n roomFloor: room.roomFloor,\n roomHeating: room.roomHeating,\n roomHeatingType: room.roomHeatingType,\n roomExistingFlooring: room.roomExistingFlooring,\n roomExistingFloorType: room.roomExistingFloorType,\n\n questionsCopiedFromId: room.questionsCopiedFromId,\n\n contournements: room.contournements,\n\n //* COORDS\n center: room.center,\n coords: room.coords,\n\n //objects: room.objects, //todo @mmc, why is this here?\n // calcul_en_laize: room.calcul_en_laize, //todo @mmc\n // calcul_en_laize_sub_room_elements: room.calcul_en_laize_sub_room_elements,//todo @mmc\n\n // surface_area: room.surface_area,\n // surface_area_without_room_item: room.surface_area_without_room_item,\n // perimeter: room.perimeter,\n // perimeter_plinthes: room.perimeter_plinthes,\n // raccord_length: room.raccord_length,\n // room_length: room.room_length,\n // surface_manipulee_prorata: room.surface_manipulee_prorata,\n // should_lay_plinthes_inside_room_element: room.should_lay_plinthes_inside_room_element,\n };\n };\n\n public static toOpeningItem = (opening: IExportOpeningItem): IOpening => {\n return {\n openingId: opening.openingId,\n roomId: opening.roomId,\n\n type: opening.type,\n name: opening.name,\n size: opening.size,\n customSize: opening.customSize,\n\n location_side: opening.location_side,\n location_position_from_edge: opening.location_position_from_edge,\n\n x: opening.x,\n y: opening.y,\n limit: opening.limit,\n angle: opening.angle,\n\n //* USELESS\n // contiguous_between_rooms: opening.contiguous_between_rooms, //!\\ warning on load\n\n // hinge: opening.hinge,\n // scale: opening.scale,\n // thick: opening.thick,\n // value: opening.value,\n // position: opening.position,\n // angleSign: opening.angleSign,\n // width: opening.width,\n // height: opening.height,\n\n namedByUser: opening.namedByUser,\n };\n };\n\n public static toRoomItem = (roomItem: Partial): IRoomItem => {\n if (roomItem.dimensId === undefined) {\n roomItem.dimensId = 0;\n }\n return {\n type: roomItem.type,\n roomItemId: roomItem.roomItemId,\n roomId: roomItem.roomId,\n name: roomItem.name,\n namedByUser: roomItem.namedByUser,\n\n putFlooring: roomItem.putFlooring,\n putPlinthes: roomItem.putPlinthes,\n isMoveableOutside: roomItem.isMoveableOutside,\n\n width: roomItem.width,\n height: roomItem.height,\n coords: roomItem.coords,\n coordsReal: roomItem.coordsReal,\n graphTranslation: roomItem.graphTranslation,\n\n // position: roomItem.position,\n // surface: roomItem.surface,\n // horizontal_size: roomItem.horizontal_size,\n // vertical_size: roomItem.vertical_size,\n // room_elements_length: roomItem.room_elements_length,\n };\n };\n\n //#endregion\n}\n\n//#region //* EXPORT MODELS\n\ninterface IExportRoom {\n shape?: RoomShape;\n roomId?: string;\n name?: string;\n namedByUser?: boolean;\n\n //* ROOM INFOS : injected in context\n roomType?: string; // rename\n localisation?: RoomLocalisation;\n roomFloor?: string;\n roomExistingFlooring?: YesOrNo | string; //presenceRevetementAuSol\n roomExistingFloorType?: string;\n roomHeating?: YesOrNo | string;\n roomHeatingType?: string;\n type?: RoomType;\n questionsCopiedFromId?: string;\n\n contournements?: IContournements;\n\n //* injected by MapResult -> calculate\n // raccord_length?: number;\n // room_length?: number;\n // surface_area?: number;\n // surface_area_without_room_item?: number;\n // surface_manipulee_prorata?: number;\n // perimeter?: number;\n // perimeter_plinthes?: number;\n // should_lay_plinthes_inside_room_element?: boolean;\n\n center?: CoordPoint;\n\n coords?: Array;\n}\n\ninterface IExportOpeningItem {\n openingId?: string;\n roomId?: string;\n\n type?: OpeningType;\n name?: string;\n namedByUser?: boolean;\n\n size?: number;\n customSize?: boolean;\n\n //* OpeningProperties\n doorType?: string;\n unhingeableOpening?: string; //* Oui ou Non\n\n //* COORDS\n x?: number;\n y?: number;\n limit?: CoordPoint[];\n angle?: number;\n location_side?: string;\n location_position_from_edge?: number;\n\n // contiguous_between_rooms?: Array; //! WHY\n // hinge?: string;\n // position?: CoordPoint;\n // thick?: number;\n // value?: number;\n // scale?: CoordPoint;\n // angleSign?: number;\n // width?: string;\n // height?: string;\n}\n\ninterface IExportRoomItem {\n roomItemId?: string;\n roomId?: string;\n\n name?: string;\n namedByUser?: boolean;\n dimensId?: number;\n type: RoomItemType;\n putFlooring?: YesOrNo;\n putPlinthes?: string;\n isMoveableOutside?: boolean; // #20350\n\n width?: number;\n height?: number;\n\n coords?: Array;\n coordsReal?: Array;\n position?: CoordPoint;\n graphTranslation?: CoordPoint;\n\n collisions?: Array;\n angle?: number;\n\n //injected in context\n //surface?: number;\n //horizontal_size?: number;\n //vertical_size?: number;\n //room_elements_length?: number;\n}\n\n//#endregion\n","import { Logger } from '../../../../Errors/Logger';\nimport { I18n } from '../../../../Locales/I18nService';\nimport { IContournements } from '../../Models/Contournements';\nimport { YesOrNo } from '../../Models/IMapItem';\nimport { IOpening, OpeningType } from '../../Models/IOpening';\nimport { IRoom, ObsoleteRoomDimensions, RoomLocalisation, RoomShape, RoomType } from '../../Models/IRoom';\nimport { IRoomItem, RoomItemType } from '../../Models/IRoomItem';\nimport { PointUtils } from '../../Utils/PointUtils';\nimport { CreateRoomFactory } from '../../Utils/Room/RoomUtils';\nimport { CoordPoint } from '../../Utils/Types';\nimport { ApiMapState, ExportMap } from './MapExportHelper';\n\ntype ExportMapV31Data = {\n rooms?: Partial[];\n openings?: Partial[];\n roomItems?: Partial[];\n direction?: any;\n\n //* USELESS DATA\n // overallWidth?: number;\n // overallHeight?: number;\n // laizes?: any;\n // laizeHorizontal?: number;\n // laizeVertical?: number;\n // global_surface_area?: number;\n // map_svg_preview_base64?: string;\n // map_png_preview_base64?: string;\n};\n\ntype ExportMapV31 = ExportMap & { map?: ExportMapV31Data };\n\nexport class MapExportV31 {\n public static VERSION = 3.1;\n\n public static fromApiJsonToState = ({ map }: ExportMapV31): ApiMapState => {\n const {\n direction,\n rooms: exportRooms = [],\n openings: exportOpenings = [],\n roomItems: exportRoomItems = [],\n } = map || {};\n\n const rooms: IRoom[] = exportRooms.map((exportRoom: Partial) => {\n const room: IRoom = this.toRoom(exportRoom);\n room.openings = exportOpenings\n .filter((o: Partial) => o.roomId === room.roomId)\n .map(this.toOpeningItem);\n room.roomItems = exportRoomItems\n .filter((i: Partial) => i.roomId === room.roomId)\n .map(this.toRoomItem);\n\n return room;\n });\n\n this.updateOldFields(rooms);\n\n const exportMap = { state: { rooms }, direction };\n Logger.log('MapExportV3.1 : fromApiJsonToState', exportMap);\n return exportMap;\n };\n\n /**\n ** Replaces old labels in the saved floorplan object with new ones.\n ** This process is unfortunately necessary to keep older projects compatible with wording changes.\n **/\n private static updateOldFields(rooms: Partial[]) {\n const toUndefinedIfDefault = (value: string = '') => (value === 'default' ? undefined : value);\n rooms.forEach((room: IExportRoom) => {\n if (room.roomExistingFloorType === 'Revêtement plastique (vinyle, lino, dalle)') {\n room.roomExistingFloorType = 'Plastique (vinyle, lino, dalle, gazon)';\n }\n if (room.roomHeatingType === 'Je ne connais pas le type de chauffage') {\n room.roomHeatingType = 'Je ne connais pas le type de chauffage au sol';\n }\n room.roomExistingFloorType = toUndefinedIfDefault(room['roomExistingFloorType']);\n });\n }\n\n //#region //* CONVERTER : MAP_ITEM TO EXPORT_ITEM\n\n public static toExportRoom = (baseRoom: IRoom): Partial => {\n const room = CreateRoomFactory.exportRoom(baseRoom);\n return {\n roomId: room.roomId,\n name: room.name,\n namedByUser: room.namedByUser,\n shape: room.shape,\n\n // calcul_en_laize: room.calcul_en_laize, //todo @mmc\n // calcul_en_laize_sub_room_elements: room.calcul_en_laize_sub_room_elements,//todo @mmc\n //surface_area: room.surface_area\n\n //* USELESS\n //surface_area_without_room_item: room.surface_area_without_room_item,\n //perimeter: room.perimeter,\n //perimeter_plinthes: room.perimeter_plinthes,\n //raccord_length: room.raccord_length,\n //room_length: room.room_length,\n //surface_manipulee_prorata: room.surface_manipulee_prorata,\n //should_lay_plinthes_inside_room_element: room.should_lay_plinthes_inside_room_element,\n\n localisation: room.localisation,\n roomType: room.roomType,\n roomFloor: room.roomFloor,\n roomHeating: room.roomHeating,\n roomHeatingType: room.roomHeatingType,\n roomExistingFlooring: room.roomExistingFlooring,\n roomExistingFloorType: room.roomExistingFloorType,\n\n questionsCopiedFromId: room.questionsCopiedFromId,\n\n contournements: room.contournements,\n\n //* COORDS\n obsoleteDimensions: room.obsoleteDimensions,\n coords: room.coords,\n center: room.center,\n\n //sides: room.sides,\n //objects: room.objects, //todo @mmc, why is this here?\n };\n };\n\n public static toExportOpeningItem = (opening: IOpening): Partial => {\n return {\n openingId: opening.openingId,\n roomId: opening.roomId,\n type: opening.type,\n name: opening.name,\n namedByUser: opening.namedByUser,\n\n size: opening.size,\n customSize: opening.customSize,\n\n location_side: opening.location_side,\n location_position_from_edge: opening.location_position_from_edge,\n\n x: opening.x,\n y: opening.y,\n limit: opening.limit, //! WHY\n angle: opening.angle, //! WHY\n\n //* USELESS\n // contiguous_between_rooms: opening.contiguous_between_rooms,\n\n // hinge: opening.hinge, //! WHY\n // scale: opening.scale,\n // thick: opening.thick,\n // value: opening.value,\n // width: opening.width,\n // height: opening.height,\n\n // position: opening.position,\n // angleSign: opening.angleSign,\n };\n };\n\n public static toExportRoomItem = (roomItem: IRoomItem): Partial => {\n return {\n type: roomItem.type,\n roomItemId: roomItem.roomItemId,\n roomId: roomItem.roomId,\n name: roomItem.name,\n namedByUser: roomItem.namedByUser,\n\n putFlooring: roomItem.putFlooring,\n putPlinthes: roomItem.putPlinthes,\n isMoveableOutside: roomItem.isMoveableOutside,\n width: roomItem.width,\n height: roomItem.height,\n\n coords: roomItem.coords,\n coordsReal: roomItem.coordsReal,\n graphTranslation: PointUtils.toPosition(roomItem.graphTranslation as CoordPoint),\n\n //collisions: roomItem.collisions,\n //surface: roomItem.surface,\n //horizontal_size: roomItem.horizontal_size,\n //vertical_size: roomItem.vertical_size,\n //room_elements_length: roomItem.room_elements_length,\n //position: roomItem.position,\n };\n };\n\n //#endregion\n\n //#region //* CONVERTER : EXPORT_ITEM TO MAP_ITEM\n\n public static toRoom = (room: IExportRoom): IRoom => {\n //const room = CreateRoomFactory.exportRoom(baseRoom);\n if (room.roomHeatingType) {\n room.roomHeating =\n room.roomHeatingType === I18n.get('RoomItemDialog_RoomHeatingTypeList_PasDeChauffage')\n ? YesOrNo.No\n : YesOrNo.Yes;\n }\n if (!room.type) {\n room.type = RoomType.Sol;\n }\n return {\n type: RoomType.Sol,\n roomId: room.roomId,\n name: room.name,\n namedByUser: room.namedByUser,\n shape: room.shape,\n\n localisation: room.localisation,\n roomType: room.roomType,\n roomFloor: room.roomFloor,\n roomHeating: room.roomHeating,\n roomHeatingType: room.roomHeatingType,\n roomExistingFlooring: room.roomExistingFlooring,\n roomExistingFloorType: room.roomExistingFloorType,\n\n questionsCopiedFromId: room.questionsCopiedFromId,\n\n contournements: room.contournements,\n\n //* COORDS\n obsoleteDimensions: room.obsoleteDimensions,\n center: room.center,\n coords: room.coords,\n\n //sides: room.sides,\n //objects: room.objects, //todo @mmc, why is this here?\n // calcul_en_laize: room.calcul_en_laize, //todo @mmc\n // calcul_en_laize_sub_room_elements: room.calcul_en_laize_sub_room_elements,//todo @mmc\n\n // surface_area: room.surface_area,\n // surface_area_without_room_item: room.surface_area_without_room_item,\n // perimeter: room.perimeter,\n // perimeter_plinthes: room.perimeter_plinthes,\n // raccord_length: room.raccord_length,\n // room_length: room.room_length,\n // surface_manipulee_prorata: room.surface_manipulee_prorata,\n // should_lay_plinthes_inside_room_element: room.should_lay_plinthes_inside_room_element,\n };\n };\n\n public static toOpeningItem = (opening: IExportOpeningItem): IOpening => {\n return {\n openingId: opening.openingId,\n roomId: opening.roomId,\n\n type: opening.type,\n name: opening.name,\n size: opening.size,\n customSize: opening.customSize,\n\n location_side: opening.location_side,\n location_position_from_edge: opening.location_position_from_edge,\n\n x: opening.x,\n y: opening.y,\n limit: opening.limit,\n angle: opening.angle,\n\n //* USELESS\n // contiguous_between_rooms: opening.contiguous_between_rooms, //!\\ warning on load\n\n // hinge: opening.hinge,\n // scale: opening.scale,\n // thick: opening.thick,\n // value: opening.value,\n // position: opening.position,\n // angleSign: opening.angleSign,\n // width: opening.width,\n // height: opening.height,\n\n namedByUser: opening.namedByUser,\n };\n };\n\n public static toRoomItem = (roomItem: Partial): IRoomItem => {\n if (roomItem.dimensId === undefined) {\n roomItem.dimensId = 0;\n }\n return {\n type: roomItem.type,\n roomItemId: roomItem.roomItemId,\n roomId: roomItem.roomId,\n name: roomItem.name,\n namedByUser: roomItem.namedByUser,\n\n putFlooring: roomItem.putFlooring,\n putPlinthes: roomItem.putPlinthes,\n isMoveableOutside: roomItem.isMoveableOutside,\n\n width: roomItem.width,\n height: roomItem.height,\n coords: roomItem.coords,\n coordsReal: roomItem.coordsReal,\n graphTranslation: roomItem.graphTranslation,\n\n //collisions: roomItem.collisions,\n // position: roomItem.position,\n // surface: roomItem.surface,\n // horizontal_size: roomItem.horizontal_size,\n // vertical_size: roomItem.vertical_size,\n // room_elements_length: roomItem.room_elements_length,\n };\n };\n\n //#endregion\n}\n\n//#region //* EXPORT MODELS\n\ninterface IExportRoom {\n shape?: RoomShape;\n roomId?: string;\n name?: string;\n namedByUser?: boolean;\n\n //* ROOM INFOS : injected in context\n roomType?: string; // rename\n localisation?: RoomLocalisation;\n roomFloor?: string;\n roomExistingFlooring?: YesOrNo | string; //presenceRevetementAuSol\n roomExistingFloorType?: string;\n roomHeating?: YesOrNo | string;\n roomHeatingType?: string;\n type?: RoomType;\n questionsCopiedFromId?: string;\n\n contournements?: IContournements;\n\n //* injected by MapResult -> calculate\n // raccord_length?: number;\n // room_length?: number;\n // surface_area?: number;\n // surface_area_without_room_item?: number;\n // surface_manipulee_prorata?: number;\n // perimeter?: number;\n // perimeter_plinthes?: number;\n // should_lay_plinthes_inside_room_element?: boolean;\n\n center?: CoordPoint;\n obsoleteDimensions?: ObsoleteRoomDimensions;\n coords?: Array;\n //sides?: Map>;\n}\n\ninterface IExportOpeningItem {\n openingId?: string;\n roomId?: string;\n\n type?: OpeningType;\n name?: string;\n namedByUser?: boolean;\n\n size?: number;\n customSize?: boolean;\n\n //* OpeningProperties\n doorType?: string;\n unhingeableOpening?: string; //* Oui ou Non\n\n //* COORDS\n x?: number;\n y?: number;\n limit?: CoordPoint[];\n angle?: number;\n location_side?: string;\n location_position_from_edge?: number;\n\n // contiguous_between_rooms?: Array; //! WHY\n // hinge?: string;\n // position?: CoordPoint;\n // thick?: number;\n // value?: number;\n // scale?: CoordPoint;\n // angleSign?: number;\n // width?: string;\n // height?: string;\n}\n\ninterface IExportRoomItem {\n roomItemId?: string;\n roomId?: string;\n\n name?: string;\n namedByUser?: boolean;\n dimensId?: number;\n type: RoomItemType;\n putFlooring?: YesOrNo;\n putPlinthes?: string;\n isMoveableOutside?: boolean; // #20350\n\n width?: number;\n height?: number;\n\n coords?: Array;\n coordsReal?: Array;\n position?: CoordPoint;\n graphTranslation?: CoordPoint;\n\n angle?: number;\n\n //collisions?: Array;\n //injected in context\n //surface?: number;\n //horizontal_size?: number;\n //vertical_size?: number;\n //room_elements_length?: number;\n}\n\n//#endregion\n","import { ObjectUtils } from 'Helpers';\nimport { Logger } from '../../../../Errors/Logger';\nimport { I18n } from '../../../../Locales/I18nService';\nimport { RoomInfos } from '../../../../Web/Pages/Quote/Components/Pannels/Rooms/Controllers/RoomInfosValues';\nimport { FlooringDirection } from '../../Components/Laizes/Laize';\nimport { MapContextState } from '../../Context/MapContext';\nimport { IContournements } from '../../Models/Contournements';\nimport { YesOrNo } from '../../Models/IMapItem';\nimport { IOpening, OpeningType } from '../../Models/IOpening';\nimport { IRoom, RoomLocalisation, RoomShape, RoomType } from '../../Models/IRoom';\nimport { IRoomItem, RoomItemType } from '../../Models/IRoomItem';\nimport { OpeningUtils } from '../../Utils/Opening/OpeningUtils';\nimport { PointUtils } from '../../Utils/PointUtils';\nimport { CreateRoomFactory } from '../../Utils/Room/RoomUtils';\nimport { CoordPoint } from '../../Utils/Types';\nimport { ApiMapState, ExportMap } from './MapExportHelper';\n\ntype ExportMapV32Data = {\n rooms?: Partial[];\n openings?: Partial[];\n roomItems?: Partial[];\n flooringDirectionByRoomId?: { [roomId: string]: FlooringDirection };\n};\n\ntype ExportMapV32 = ExportMap & { map?: ExportMapV32Data };\n\nexport class MapExportV32 {\n public static VERSION = 3.2;\n\n public static toApiJson = (state: MapContextState) => {\n const exportOpenings = OpeningUtils.exportOpenings(state.openings, state.rooms);\n const exportRooms = state.rooms?.map(CreateRoomFactory.exportRoom);\n const flooringDirectionByRoomId = state.rooms?.reduce((acc, room) => {\n if (room.flooringDirection) {\n acc[room.roomId!] = room.flooringDirection;\n }\n return acc;\n }, {} as { [roomId: string]: FlooringDirection });\n // const map_svg_preview_base64 = exporter.captureSvg();\n // const map_png_preview_base64 = await exporter.capturePng();\n const result: ExportMapV32 = {\n version: MapExportV32.VERSION,\n map: {\n rooms: exportRooms?.map(this.toExportRoom),\n openings: exportOpenings.map(this.toExportOpeningItem),\n roomItems: state.roomItems?.map(this.toExportRoomItem),\n flooringDirectionByRoomId,\n },\n };\n const json = JSON.stringify(result);\n return json;\n };\n\n public static fromApiJsonToState = ({ map }: ExportMapV32, roomInfos: RoomInfos): ApiMapState => {\n const {\n flooringDirectionByRoomId,\n rooms: exportRooms = [],\n openings: exportOpenings = [],\n roomItems: exportRoomItems = [],\n } = map || {};\n\n const rooms: IRoom[] = exportRooms.map((exportRoom: Partial) => {\n const room: IRoom = this.toRoom(exportRoom, roomInfos);\n room.openings = exportOpenings\n .filter((o: Partial, index: number) => exportOpenings?.findLastIndex(x => x.openingId === o.openingId) === index)// filter duplicates\n .filter((o: Partial) => o.roomId === room.roomId)\n .map(this.toOpeningItem);\n room.roomItems = exportRoomItems\n .filter((o: Partial, index: number) => exportRoomItems?.findLastIndex(x => x.roomItemId === o.roomItemId) === index)// filter duplicates\n .filter((i: Partial) => i.roomId === room.roomId)\n .map(this.toRoomItem);\n\n return room;\n });\n\n this.updateOldFields(rooms);\n\n const exportMap = { state: { rooms }, flooringDirectionByRoomId };\n Logger.log('MapExportV3.2 : fromApiJsonToState', exportMap);\n return exportMap;\n };\n\n /**\n ** Replaces old labels in the saved floorplan object with new ones.\n ** This process is unfortunately necessary to keep older projects compatible with wording changes.\n **/\n private static updateOldFields(rooms: Partial[]) {\n const toUndefinedIfDefault = (value: string = '') => (value === 'default' ? undefined : value);\n rooms.forEach((room: IExportRoom) => {\n if (room.roomExistingFloorType === 'Revêtement plastique (vinyle, lino, dalle)') {\n room.roomExistingFloorType = 'Plastique (vinyle, lino, dalle, gazon)';\n }\n if (room.roomHeatingType === 'Je ne connais pas le type de chauffage') {\n room.roomHeatingType = 'Je ne connais pas le type de chauffage au sol';\n }\n room.roomExistingFloorType = toUndefinedIfDefault(room['roomExistingFloorType']);\n });\n }\n\n //#region //* CONVERTER : MAP_ITEM TO EXPORT_ITEM\n\n public static toExportRoom = (baseRoom: IRoom): Partial => {\n const room = CreateRoomFactory.exportRoom(baseRoom);\n return {\n roomId: room.roomId,\n name: room.name,\n namedByUser: room.namedByUser,\n shape: room.shape,\n type: room.type,\n roomWall: room.roomWall,\n // calcul_en_laize: room.calcul_en_laize, //todo @mmc\n // calcul_en_laize_sub_room_elements: room.calcul_en_laize_sub_room_elements,//todo @mmc\n //surface_area: room.surface_area\n\n //* USELESS\n //surface_area_without_room_item: room.surface_area_without_room_item,\n //perimeter: room.perimeter,\n //perimeter_plinthes: room.perimeter_plinthes,\n //raccord_length: room.raccord_length,\n //room_length: room.room_length,\n //surface_manipulee_prorata: room.surface_manipulee_prorata,\n //should_lay_plinthes_inside_room_element: room.should_lay_plinthes_inside_room_element,\n\n localisation: room.localisation,\n roomType: room.roomType,\n roomFloor: room.roomFloor,\n roomHeating: room.roomHeating,\n roomHeatingType: room.roomHeatingType,\n roomExistingFlooring: room.roomExistingFlooring,\n roomExistingFloorType: room.roomExistingFloorType,\n\n questionsCopiedFromId: room.questionsCopiedFromId,\n\n contournements: room.contournements,\n\n //* COORDS\n coords: room.coords,\n center: room.center,\n\n //sides: room.sides,\n //objects: room.objects, //todo @mmc, why is this here?\n };\n };\n\n public static toExportOpeningItem = (opening: IOpening): Partial => {\n return {\n openingId: opening.openingId,\n roomId: opening.roomId,\n type: opening.type,\n name: opening.name,\n namedByUser: opening.namedByUser,\n\n size: opening.size,\n customSize: opening.customSize,\n\n location_side: opening.location_side,\n location_position_from_edge: opening.location_position_from_edge,\n\n x: opening.x,\n y: opening.y,\n limit: opening.limit, //! WHY\n angle: opening.angle, //! WHY\n\n //* USELESS\n // contiguous_between_rooms: opening.contiguous_between_rooms,\n\n // hinge: opening.hinge, //! WHY\n // scale: opening.scale,\n // thick: opening.thick,\n // value: opening.value,\n // width: opening.width,\n // height: opening.height,\n\n // position: opening.position,\n // angleSign: opening.angleSign,\n };\n };\n\n public static toExportRoomItem = (roomItem: IRoomItem): Partial => {\n return {\n type: roomItem.type,\n roomItemId: roomItem.roomItemId,\n roomId: roomItem.roomId,\n name: roomItem.name,\n namedByUser: roomItem.namedByUser,\n dimensId: roomItem.dimensId,\n\n putFlooring: roomItem.putFlooring,\n putPlinthes: roomItem.putPlinthes,\n isMoveableOutside: roomItem.isMoveableOutside,\n width: roomItem.width,\n height: roomItem.height,\n\n coords: roomItem.coords,\n coordsReal: roomItem.coordsReal,\n graphTranslation: PointUtils.toPosition(roomItem.graphTranslation as CoordPoint),\n\n //collisions: roomItem.collisions,\n //surface: roomItem.surface,\n //horizontal_size: roomItem.horizontal_size,\n //vertical_size: roomItem.vertical_size,\n //room_elements_length: roomItem.room_elements_length,\n //position: roomItem.position,\n };\n };\n\n //#endregion\n\n //#region //* CONVERTER : EXPORT_ITEM TO MAP_ITEM\n\n public static toRoom = (room: IExportRoom, roomInfos: RoomInfos): IRoom => {\n //const room = CreateRoomFactory.exportRoom(baseRoom);\n if (room.roomHeatingType) {\n room.roomHeating =\n room.roomHeatingType === I18n.get('RoomItemDialog_RoomHeatingTypeList_PasDeChauffage')\n ? YesOrNo.No\n : YesOrNo.Yes;\n }\n if (room.roomExistingFloorType) {\n const flooringTypeList =\n room.roomExistingFlooring === YesOrNo.Yes\n ? roomInfos.getRoomCurrentFloorWithFlooring(room.localisation!, room.type!)\n : roomInfos.getRoomCurrentFloorWithoutFlooring(room.localisation!, room.roomType!, room.type!);\n if (flooringTypeList.every((x) => x.label !== room.roomExistingFloorType)) {\n room.roomExistingFloorType = undefined;\n }\n }\n if (!room.type) {\n room.type = RoomType.Sol;\n }\n const coords = room.coords;\n const roomCoordsMerged = coords ? ObjectUtils.ignoreDuplicates(coords.slice(0, coords.length - 1)) : undefined;\n\n return {\n roomId: room.roomId,\n name: room.name,\n namedByUser: room.namedByUser,\n shape: room.shape,\n type: room.type,\n localisation: room.localisation,\n roomType: room.roomType,\n roomWall: room.roomWall,\n roomFloor: room.roomFloor,\n roomHeating: room.roomHeating,\n roomHeatingType: room.roomHeatingType,\n roomExistingFlooring: room.roomExistingFlooring,\n roomExistingFloorType: room.roomExistingFloorType,\n\n questionsCopiedFromId: room.questionsCopiedFromId,\n\n contournements: room.contournements,\n\n //* COORDS\n center: room.center,\n coords: roomCoordsMerged ? [...roomCoordsMerged, roomCoordsMerged[0]] : undefined,\n\n //sides: room.sides,\n //objects: room.objects, //todo @mmc, why is this here?\n // calcul_en_laize: room.calcul_en_laize, //todo @mmc\n // calcul_en_laize_sub_room_elements: room.calcul_en_laize_sub_room_elements,//todo @mmc\n\n // surface_area: room.surface_area,\n // surface_area_without_room_item: room.surface_area_without_room_item,\n // perimeter: room.perimeter,\n // perimeter_plinthes: room.perimeter_plinthes,\n // raccord_length: room.raccord_length,\n // room_length: room.room_length,\n // surface_manipulee_prorata: room.surface_manipulee_prorata,\n // should_lay_plinthes_inside_room_element: room.should_lay_plinthes_inside_room_element,\n };\n };\n\n public static toOpeningItem = (opening: IExportOpeningItem): IOpening => {\n return {\n openingId: opening.openingId,\n roomId: opening.roomId,\n\n type: opening.type,\n name: opening.name,\n size: opening.size,\n customSize: opening.customSize,\n\n location_side: opening.location_side,\n location_position_from_edge: opening.location_position_from_edge,\n\n x: opening.x,\n y: opening.y,\n limit: opening.limit,\n angle: opening.angle,\n\n //* USELESS\n // contiguous_between_rooms: opening.contiguous_between_rooms, //!\\ warning on load\n\n // hinge: opening.hinge,\n // scale: opening.scale,\n // thick: opening.thick,\n // value: opening.value,\n // position: opening.position,\n // angleSign: opening.angleSign,\n // width: opening.width,\n // height: opening.height,\n\n namedByUser: opening.namedByUser,\n };\n };\n\n public static toRoomItem = (roomItem: Partial): IRoomItem => {\n if (roomItem.dimensId === undefined) {\n roomItem.dimensId = 0;\n }\n return {\n type: roomItem.type,\n roomItemId: roomItem.roomItemId,\n roomId: roomItem.roomId,\n name: roomItem.name,\n namedByUser: roomItem.namedByUser,\n dimensId: roomItem.dimensId,\n\n putFlooring: roomItem.putFlooring,\n putPlinthes: roomItem.putPlinthes,\n isMoveableOutside: roomItem.isMoveableOutside,\n\n width: roomItem.width,\n height: roomItem.height,\n coords: roomItem.coords,\n coordsReal: roomItem.coordsReal,\n graphTranslation: roomItem.graphTranslation,\n\n //collisions: roomItem.collisions,\n // position: roomItem.position,\n // surface: roomItem.surface,\n // horizontal_size: roomItem.horizontal_size,\n // vertical_size: roomItem.vertical_size,\n // room_elements_length: roomItem.room_elements_length,\n };\n };\n\n //#endregion\n}\n\n//#region //* EXPORT MODELS\n\ninterface IExportRoom {\n shape?: RoomShape;\n roomId?: string;\n name?: string;\n namedByUser?: boolean;\n\n //* ROOM INFOS : injected in context\n roomType?: string; // rename\n localisation?: RoomLocalisation;\n roomFloor?: string;\n roomExistingFlooring?: YesOrNo | string; //presenceRevetementAuSol\n roomExistingFloorType?: string;\n roomHeating?: YesOrNo | string;\n roomHeatingType?: string;\n type?: RoomType;\n roomWall?: string;\n\n questionsCopiedFromId?: string;\n\n contournements?: IContournements;\n\n //* injected by MapResult -> calculate\n // raccord_length?: number;\n // room_length?: number;\n // surface_area?: number;\n // surface_area_without_room_item?: number;\n // surface_manipulee_prorata?: number;\n // perimeter?: number;\n // perimeter_plinthes?: number;\n // should_lay_plinthes_inside_room_element?: boolean;\n\n center?: CoordPoint;\n coords?: Array;\n //sides?: Map>;\n}\n\ninterface IExportOpeningItem {\n openingId?: string;\n roomId?: string;\n\n type?: OpeningType;\n name?: string;\n namedByUser?: boolean;\n\n size?: number;\n customSize?: boolean;\n\n //* OpeningProperties\n doorType?: string;\n unhingeableOpening?: string; //* Oui ou Non\n\n //* COORDS\n x?: number;\n y?: number;\n limit?: CoordPoint[];\n angle?: number;\n location_side?: string;\n location_position_from_edge?: number;\n\n // contiguous_between_rooms?: Array; //! WHY\n // hinge?: string;\n // position?: CoordPoint;\n // thick?: number;\n // value?: number;\n // scale?: CoordPoint;\n // angleSign?: number;\n // width?: string;\n // height?: string;\n}\n\ninterface IExportRoomItem {\n roomItemId?: string;\n roomId?: string;\n\n name?: string;\n namedByUser?: boolean;\n\n type: RoomItemType;\n putFlooring?: YesOrNo;\n putPlinthes?: string;\n isMoveableOutside?: boolean; // #20350\n dimensId?: number;\n\n width?: number;\n height?: number;\n\n coords?: Array;\n coordsReal?: Array;\n position?: CoordPoint;\n graphTranslation?: CoordPoint;\n\n angle?: number;\n\n //collisions?: Array;\n //injected in context\n //surface?: number;\n //horizontal_size?: number;\n //vertical_size?: number;\n //room_elements_length?: number;\n}\n\n//#endregion\n","import { Logger } from '../../../../Errors/Logger';\nimport { RoomInfos } from '../../../../Web/Pages/Quote/Components/Pannels/Rooms/Controllers/RoomInfosValues';\nimport { FlooringDirection } from '../../Components/Laizes/Laize';\nimport { MapContextState } from '../../Context/MapContext';\nimport { MapExportV2 } from './MapExportV2';\nimport { MapExportV3 } from './MapExportV3';\nimport { MapExportV31 } from './MapExportV31';\nimport { MapExportV32 } from './MapExportV32';\n\nexport type ApiMapState = {\n state: MapContextState;\n flooringDirectionByRoomId?: { [roomId: string]: FlooringDirection };\n};\nexport type ExportMap = { version?: number };\n\nexport class MapExportHelper {\n public static toApiJson = (state: MapContextState) => MapExportV32.toApiJson(state);\n\n public static fromApiJsonToState = (dataJson: string, roomInfos: RoomInfos): ApiMapState => {\n const exportMap: ExportMap = JSON.parse(dataJson);\n Logger.log('MapExportHelper : fromApiJsonToState', exportMap);\n if (exportMap.version === MapExportV32.VERSION) {\n return MapExportV32.fromApiJsonToState(exportMap, roomInfos);\n }\n if (exportMap.version === MapExportV31.VERSION) {\n return MapExportV31.fromApiJsonToState(exportMap);\n }\n if (exportMap.version === MapExportV3.VERSION) {\n return MapExportV3.fromApiJsonToState(exportMap);\n }\n return MapExportV2.fromApiJsonToState(exportMap);\n };\n}\n","import { ObjectUtils } from '../../../Helpers/ObjectUtils';\nimport { MapContextState } from '../Context/MapContext';\nimport { IRoom } from '../Models/IRoom';\nimport { IRoomItem } from '../Models/IRoomItem';\nimport { CollisionCreateRoomFactory } from '../Utils/Collisions/CollisionRoomUtils';\nimport { JstsUtils } from '../Utils/JstsUtils';\nimport { PointUtils } from '../Utils/PointUtils';\nimport { RoomItemUtils } from '../Utils/RoomItem/RoomItemUtils';\nimport { SATUtils } from '../Utils/SAT/SATUtils';\nimport { CoordPoint, WallSelected } from '../Utils/Types';\n\nexport const fixRoomItemPositionIfNeeded = (exportMap: MapContextState) => {\n //console.log('fixRoomItemPositionIfNeeded');\n const computeRoomItemPosition = (roomItem: IRoomItem, room: IRoom, snap: CoordPoint) => {\n const polyCollision = SATUtils.getPolyCollision();\n let polyPoints = roomItem.coords!.map((p) => PointUtils.translation(p, snap!));\n polyCollision.setPoints?.(polyPoints);\n\n const roomItemMinContactLength = RoomItemUtils.calcRoomItemMinContactLength(roomItem.type);\n const nearestWall = RoomItemUtils.roomItemNearestWall(room.walls!, snap, roomItem.type);\n\n let isInsideRoomId = CollisionCreateRoomFactory.testIfPolygonAContainedIn(polyPoints, [room]);\n\n let point = RoomItemUtils.getMovedRoomItemPoint(\n [room],\n room.walls!,\n snap,\n isInsideRoomId!,\n roomItem,\n roomItemMinContactLength,\n nearestWall.wall!,\n nearestWall.distance!\n );\n if (!isInsideRoomId && point) {\n isInsideRoomId = (point as WallSelected).roomId;\n }\n roomItem.roomId = isInsideRoomId;\n\n roomItem.graphTranslation = point as CoordPoint;\n roomItem.coordsReal = roomItem.coords!.map((x) => PointUtils.translation(x, point as CoordPoint));\n };\n\n exportMap.rooms?.forEach((room: IRoom) => {\n const roomPolygon = JstsUtils.createJstsPolygon(room.coords!);\n const roomItemsToFix = (room.roomItems || []).filter((ri) => {\n const roomItemPolygon = JstsUtils.createJstsPolygon(ri.coordsReal!);\n return !roomPolygon.contains(roomItemPolygon);\n });\n roomItemsToFix.forEach((roomItem, index) => {\n console.log('-----------------------------------------------------');\n console.log('fixRoomItemPositionIfNeeded room', room.roomId, ObjectUtils.clone({ room, roomItem }));\n console.log('-----------------------------------------------------');\n //snapPosition(roomItem, PointUtils.bboxCenter(room.coords!));\n const snap = room.coords![index];\n snapPosition(roomItem, snap);\n computeRoomItemPosition(roomItem, room, snap);\n\n //snapPosition(roomItem, room.coords![1]);\n console.log('after set item in room', { room, roomItem });\n });\n });\n};\n\nfunction snapPosition(item: IRoomItem, snap: CoordPoint) {\n item.graphTranslation = snap;\n const halfWidth = item.width! / 2;\n const halfHeight = item.height! / 2;\n item.coords = [\n { x: -halfWidth, y: -halfHeight },\n { x: halfWidth, y: -halfHeight },\n { x: halfWidth, y: halfHeight },\n { x: -halfWidth, y: halfHeight },\n { x: -halfWidth, y: -halfHeight },\n ];\n item.coordsReal = item.coords.map((x) => PointUtils.translation(x, item.graphTranslation!));\n return item;\n}\n","import { FlooringDirection, LaizeProps } from '../Components/Laizes/Laize';\nimport { MapContextState, MapPanelsState } from '../Context/MapContext';\nimport { MapItemContants } from '../Models/IMapItem';\nimport { IOpening } from '../Models/IOpening';\nimport { IRoom } from '../Models/IRoom';\nimport { IRoomItem } from '../Models/IRoomItem';\nimport { Editor } from '../Utils/Editor';\nimport { OpeningUtils } from '../Utils/Opening/OpeningUtils';\nimport { RoomDiffUtils } from '../Utils/Room/RoomDiffUtils';\nimport { CreateRoomFactory } from '../Utils/Room/RoomUtils';\nimport { RoomItemUtils } from '../Utils/RoomItem/RoomItemUtils';\nimport { Wall } from '../Utils/Types';\nimport { WallUtils } from '../Utils/Wall/WallUtils';\nimport { RoomFactory } from './BaseRoomFactory';\nimport { CompleteHelper } from './CompleteHelper';\nimport { MapResult } from './MapResult';\nimport { fixRoomItemPositionIfNeeded } from './RoomItemHelper';\n\ntype ImportRoomsParams = {\n oldWalls?: Array;\n oldRooms?: Array;\n openings?: Array;\n roomItems?: Array;\n importRooms: Array;\n};\n\ntype LoadMapParams = {\n rooms: Array;\n laizeProps: Array;\n flooringDirectionByRoomId?: { [roomId: string]: FlooringDirection };\n};\n\nexport interface MapError {\n isMapError: boolean;\n error: any;\n}\n\nexport class MapHelper {\n\n public static PANEL_WIDTH = 376;\n\n public static LOAD_MAP_ERROR_MESSAGE = 'LOAD_MAP_ERROR_MESSAGE';\n\n public static isPanelOpen = (state: MapPanelsState) =>\n Boolean(\n state.selectRoomShapeOpen ||\n state.selectAmenagementOpen ||\n state.selectedRoomId ||\n state.selectedOpeningId ||\n state.selectedRoomItemId ||\n state.showFinDeParcours ||\n state.showHabitation ||\n state.showStoreLocator\n );\n\n public static getPanelWidth = (state: MapPanelsState, parentWidth: number) => {\n if (state.showFinDeParcours || state.showHabitation || state.showStoreLocator) {\n return parentWidth / 2;\n }\n return MapHelper.PANEL_WIDTH;\n }\n\n //#region //* LOAD MAP FROM API + CALC LAIZE RESULT\n\n public static loadRooms = ({ rooms, laizeProps, flooringDirectionByRoomId }: LoadMapParams): MapContextState => {\n try {\n let updatedWalls: Array = [];\n let updatedRooms: Array = [];\n let updatedOpenings: Array = [];\n let updatedRoomItems: Array = [];\n\n rooms.forEach((baseRoom) => {\n const { room, roomWalls = [] } = CreateRoomFactory.createRoom(baseRoom, updatedWalls);\n updatedWalls = [...updatedWalls, ...roomWalls];\n room.walls = roomWalls;\n\n updatedRooms = [...updatedRooms, room];\n Editor.architect(updatedWalls, updatedRooms);\n\n //! fix opening position from location_position_from_edge (occurs when duplicate room or import room)\n OpeningUtils.fixPositionOpenings(room, room.openings, updatedWalls);\n\n updatedOpenings = [...updatedOpenings, ...(room.openings || [])];\n updatedRoomItems = [...updatedRoomItems, ...(room.roomItems || [])];\n WallUtils.refreshWallsMinimumSizeAndOriginalAngle(updatedWalls, updatedOpenings);\n\n baseRoom.flooringDirection = flooringDirectionByRoomId?.[baseRoom.roomId!];\n });\n\n updatedRooms.forEach(\n (item) =>\n (item.questionsCopiedFromId =\n item.questionsCopiedFromId || MapItemContants.QuestionsCopiedFromId_NONE)\n );\n updatedOpenings.forEach(\n (item) =>\n (item.questionsCopiedFromId =\n item.questionsCopiedFromId || MapItemContants.QuestionsCopiedFromId_NONE)\n );\n updatedRoomItems.forEach(\n (item) =>\n (item.questionsCopiedFromId =\n item.questionsCopiedFromId || MapItemContants.QuestionsCopiedFromId_NONE)\n );\n\n if (!updatedRooms.length) {\n return {};\n } else {\n updatedOpenings = OpeningUtils.resetOpeningsPlacement(updatedOpenings, updatedWalls);\n Editor.architect(updatedWalls, updatedRooms);\n updatedRooms.forEach((room) => {\n OpeningUtils.updateRoomOpenings(room, updatedOpenings);\n RoomItemUtils.updateRoomItems(room, updatedRoomItems);\n RoomDiffUtils.roomComputeDifference(room, updatedRoomItems, updatedWalls);\n });\n const state = MapResult.calculate({\n rooms: updatedRooms,\n roomItems: updatedRoomItems,\n walls: updatedWalls,\n openings: updatedOpenings,\n laizeProps,\n logs: 'called by loadRooms',\n });\n const roomsCompleted = CompleteHelper.allComplete(rooms);\n const mapState = { ...state, laizeProps, roomsCompleted, addRoomTutorialShown: true };\n fixRoomItemPositionIfNeeded(mapState);\n return mapState;\n }\n } catch (error) {\n const mapError: MapError = { isMapError: true, error };\n throw mapError;\n }\n };\n\n //#endregion\n\n //#region //*USED ONLY IN LaizeV2DebugDialog\n\n public static importRooms = ({\n oldRooms = [],\n oldWalls = [],\n openings = [],\n roomItems = [],\n importRooms = [],\n }: ImportRoomsParams) => {\n let updatedWalls = oldWalls;\n let updatedRooms = oldRooms;\n let updatedOpenings = openings;\n let updatedRoomItems = roomItems;\n\n importRooms.forEach((baseRoom) => {\n baseRoom.name = baseRoom.name || RoomFactory.defaultName(updatedRooms.length);\n\n const { room, roomWalls = [] } = CreateRoomFactory.createRoom(baseRoom, updatedWalls);\n updatedWalls = [...updatedWalls, ...roomWalls];\n room.walls = roomWalls;\n\n updatedRooms = [...updatedRooms, room];\n Editor.architect(updatedWalls, updatedRooms);\n\n //! fix opening position from location_position_from_edge (occurs when duplicate room or import room)\n OpeningUtils.fixPositionOpenings(room, room.openings, updatedWalls);\n\n updatedOpenings = [...updatedOpenings, ...(room.openings || [])];\n updatedRoomItems = [...updatedRoomItems, ...(room.roomItems || [])];\n WallUtils.refreshWallsMinimumSizeAndOriginalAngle(updatedWalls, updatedOpenings);\n });\n\n Editor.architect(updatedWalls, updatedRooms);\n updatedRooms.forEach((room) => {\n OpeningUtils.updateRoomOpenings(room, updatedOpenings);\n RoomItemUtils.updateRoomItems(room, updatedRoomItems);\n RoomDiffUtils.roomComputeDifference(room, updatedRoomItems, updatedWalls);\n });\n WallUtils.refreshWallsMinimumSizeAndOriginalAngle(updatedWalls, updatedOpenings);\n\n return {\n walls: updatedWalls,\n rooms: updatedRooms,\n openings: updatedOpenings,\n roomItems: updatedRoomItems,\n };\n };\n\n //#endregion\n}\n","import { IOpening } from \"../Models/IOpening\";\nimport { IRoom } from \"../Models/IRoom\";\nimport { IRoomItem, RoomItemType } from \"../Models/IRoomItem\";\nimport { Editor } from \"./Editor\";\nimport { qSVG } from \"./qSVG\";\nimport { Wall } from \"./Types\";\n\ntype RoomItemDetailedPerimeter = { lengthNotAdjacentToWall: number; lengthAdjacentToWall: number; }\n\nexport class PerimeterCalc {\n\n /**\n * Calculates the length of the room's perimeter where 'plinthes' should be placed.\n * Calculated by substracting the sum of the room's openings widths from the room's total perimeter,\n * then substracting the sum of all room items parts that are in contact with the room's walls,\n * and adding the parts of the room's dividers that are not in contact with the room's walls or other room items.\n * Finally, the length of the room's stonewall is substracted.\n */\n public static calculatePerimeterPlinthes(roomId: string, perimeter: number, stonewallLength: number, rooms: Array, roomItems: Array, openings: Array) {\n const room = rooms.find((r) => r.roomId === roomId);\n if (!room) {\n return 0;\n }\n\n let perimeterPlinthes = perimeter - this.calculateOpeningsLength(room.walls, openings);\n const filteredRoomItems = roomItems.filter((x) => x.roomId === roomId);\n if (filteredRoomItems.length > 0) {\n for (const roomItem of filteredRoomItems) {\n perimeterPlinthes += this.calculateRoomItemPerimeterPlinthes(roomItem, rooms, roomItems);\n }\n }\n\n if (stonewallLength > 0) {\n perimeterPlinthes -= stonewallLength * 100;\n if (perimeterPlinthes < 0) {\n perimeterPlinthes = 0;\n }\n }\n return perimeterPlinthes;\n }\n\n /** Calculates the sum of all openings widths on the given walls. */\n public static calculateOpeningsLength(walls: Array = [], openings: Array) {\n let openingsLength = 0;\n for (const wall of walls) {\n const openingsInWall = Editor.objFromWall(wall, openings);\n if (openingsInWall.length > 0) {\n openingsLength += openingsInWall.reduce((a, b) => a + b.size!, 0);\n }\n }\n return openingsLength;\n }\n\n public static calculateRoomItemPerimeterPlinthes(roomItem: IRoomItem, rooms: Array, roomItems: Array) {\n const detailedPerimeter = this.roomItemDetailedPerimeter(roomItem, rooms);\n let lengthToAdd = 0;\n let lengthToRemove = 0;\n\n if (roomItem.putPlinthes) {\n lengthToRemove = detailedPerimeter.lengthAdjacentToWall;\n lengthToAdd = detailedPerimeter.lengthNotAdjacentToWall;\n } else {\n switch (roomItem.type) {\n case RoomItemType.Divider:\n lengthToRemove = detailedPerimeter.lengthAdjacentToWall;\n lengthToAdd = detailedPerimeter.lengthNotAdjacentToWall - this.roomItemLenghtAdjacentToRoomItems(roomItem, roomItems);\n break;\n default:\n lengthToRemove = detailedPerimeter.lengthAdjacentToWall;\n break;\n }\n }\n\n return lengthToAdd - lengthToRemove;\n }\n\n /**\n * Calculates the room item's perimeter, as a detailed object separating the length adjacent to walls\n * and the length not adjacent to any wall.\n * Result object : { lengthNotAdjacentToWall: number, lengthAdjacentToWall: number }\n */\n public static roomItemDetailedPerimeter(roomItem: IRoomItem, rooms: Array): RoomItemDetailedPerimeter {\n const room = rooms.find((x) => x.roomId === roomItem.roomId);\n if (!room) {\n return { lengthAdjacentToWall: 0, lengthNotAdjacentToWall: 0 };\n }\n let lengthAdjacentToWall = 0;\n let totalRoomItemPerimeter = 0;\n for (let i = 0; i < 4; i++) {\n for (const wall of room.walls!) {\n if (\n Editor.testPointBelongToWall(wall, roomItem.coordsReal![i]) ||\n Editor.testPointBelongToWall(wall, roomItem.coordsReal![i + 1])\n ) {\n const adjacentLength = Editor.calcLineOverlapping(Editor.getLineFromPoly(roomItem.coordsReal, i), [\n wall.start,\n wall.end,\n ]);\n lengthAdjacentToWall += adjacentLength;\n }\n }\n totalRoomItemPerimeter += qSVG.measure(roomItem.coordsReal![i], roomItem.coordsReal![i + 1]);\n }\n return {\n lengthNotAdjacentToWall: totalRoomItemPerimeter - lengthAdjacentToWall,\n lengthAdjacentToWall: lengthAdjacentToWall,\n };\n }\n\n\n /** Calculates the length of the perimeter of the room item that is adjacent to other room items. */\n public static roomItemLenghtAdjacentToRoomItems(roomItem: IRoomItem, roomItems: Array) {\n const otherRoomItems = roomItems.filter((x) => x.roomId === roomItem.roomId && x.roomItemId !== roomItem.roomItemId);\n let lenghtAdjacentToRoomItems = 0;\n if (otherRoomItems.length > 0) {\n // For each other room item,\n for (const otherRoomItem of otherRoomItems) {\n // ...for each of this other room item's sides,\n for (let i = 0; i < 4; i++) {\n let adjacentLength = 0;\n // ...and for each of the target room item's sides,\n for (let j = 0; j < 4; j++) {\n // ...calculate overlapping length of the items' sides.\n adjacentLength = Editor.calcLineOverlapping(\n Editor.getLineFromPoly(otherRoomItem.coordsReal, i),\n Editor.getLineFromPoly(roomItem.coordsReal, j)\n );\n // Assuming that a room item is a rectangle : if it is adjacent on one side...\n // ...to another room item, it cannot be adjacent to it on any other side, so the loop can be stopped early.\n if (adjacentLength > 0) {\n lenghtAdjacentToRoomItems += adjacentLength;\n break;\n }\n }\n if (adjacentLength > 0) {\n break;\n }\n }\n }\n }\n return lenghtAdjacentToRoomItems;\n }\n}","import { Logger } from '../../../Errors/Logger';\nimport { LaizeCalculatorResult, LaizeProps, LaizeResult } from '../Components/Laizes/Laize';\nimport { CalculLaizeParams, LaizeCalc } from '../Components/Laizes/LaizeCalc';\nimport { IOpening } from '../Models/IOpening';\nimport { IRoom } from '../Models/IRoom';\nimport { IRoomItem } from '../Models/IRoomItem';\nimport { Wall } from '../Utils/Types';\n\nexport type LaizeResultParams = {\n rooms: Array;\n roomItems: Array;\n walls: Array;\n openings: Array;\n logs?: any;\n laizeProps: LaizeProps;\n};\n\nexport class LaizeComputer {\n public static compute = (props: LaizeResultParams) => {\n let { laizeProps, openings, roomItems, rooms, walls } = props;\n Logger.isLogEnabled() && console.groupCollapsed(`LaizeComputer : LAIZES CALC - ${laizeProps.productCode}`, props.logs);\n\n let laizesCalc: LaizeCalculatorResult | undefined = undefined;\n let laizeResult: LaizeResult | undefined = undefined;\n const calcParams: CalculLaizeParams = {\n laizeCalcProps: LaizeCalc.toLaizeCalcProps(laizeProps),\n rooms,\n openings,\n roomItems,\n walls,\n flooringDirectionByRoomId: LaizeCalc.getFlooringDirectionByRoomId(rooms),\n };\n\n let logName = `from LaizeComputer with laizeDirectionSelected or default direction`;\n laizesCalc = LaizeCalc.calculLaize({ ...calcParams, logName });\n laizeResult = {\n laizes: laizesCalc?.roomsBandsDetailsContiguous,\n flooringDirectionByRoomId: laizesCalc?.flooringDirectionByRoomId,\n calculator: laizesCalc,\n possibleFlooringDirectionByRoomId: laizesCalc?.possibleFlooringDirectionByRoomId,\n roomIds: rooms.map((r) => r.roomId!),\n productCode: laizeProps.productCode,\n result: laizesCalc?.laizeResult,\n roomsRaccordLength: laizesCalc?.roomsRaccordLength,\n };\n Logger.log('laizesCalc / Result', { laizesCalc, laizeResult });\n Logger.isLogEnabled() && console.groupEnd();\n\n return { laizesCalc, laizeResult };\n };\n}\n","import _ from 'lodash';\n\nimport { ProductHelper } from '../../../Helpers/ProductHelper';\nimport { LaizeProps, LaizeResult } from '../Components/Laizes/Laize';\nimport { MapConstants } from '../MapConstants';\nimport { IOpening } from '../Models/IOpening';\nimport { IRoom } from '../Models/IRoom';\nimport { IRoomItem } from '../Models/IRoomItem';\nimport { Editor } from '../Utils/Editor';\nimport { PerimeterCalc } from '../Utils/PerimeterCalc';\nimport { PointUtils } from '../Utils/PointUtils';\nimport { Wall } from '../Utils/Types';\nimport { WallUtils } from '../Utils/Wall/WallUtils';\nimport { qSVG } from '../Utils/qSVG';\nimport { LaizeComputer, LaizeResultParams } from './LaizeComputer';\n\nexport type MapResultParams = {\n rooms: Array;\n roomItems: Array;\n walls: Array;\n openings: Array;\n logs?: any;\n laizeProps: Array;\n};\n\n//!\\ OLD NAME : FloorPlanResult\nexport class MapResult {\n public static calculate = (props: MapResultParams) => {\n const { laizeProps, rooms, roomItems, walls, openings, logs } = props;\n const wrappedMapResult = (() => {\n const result = [];\n for (const laizeProp of laizeProps) {\n const productCode = laizeProp.productCode;\n const roomsToUpdate = rooms.filter(\n (x) => x.questionProduitPrincipal?.produitValue?.code === productCode\n );\n const roomItemsToUpdate = roomItems.filter((x) => roomsToUpdate.some((y) => y.roomId === x.roomId));\n const wallsToUpdate = walls.filter((x) => roomsToUpdate.some((y) => y.roomId === x.roomId));\n const openingsToUpdate = openings.filter((x) => roomsToUpdate.some((y) => y.roomId === x.roomId));\n\n const laizeResultParams: LaizeResultParams = {\n rooms: roomsToUpdate,\n roomItems: roomItemsToUpdate,\n walls: wallsToUpdate,\n openings: openingsToUpdate,\n logs,\n laizeProps: laizeProp,\n };\n const { laizesCalc, laizeResult } = LaizeComputer.compute(laizeResultParams);\n\n const meter = MapConstants.meter;\n const adjacentRooms = WallUtils.determineAdjacentRooms(\n wallsToUpdate,\n openingsToUpdate,\n roomsToUpdate.map((x) => x.roomId!)\n );\n\n //Surface totale des pièces de ce calcul en lé\n const total_surface_area = _.round(_.sum(roomsToUpdate.map((x) => x.area! / (meter * meter))), 2);\n\n const bandWidth = (laizeProp.largeurCm || 100) / 100;\n for (const room of roomsToUpdate) {\n //If the flooring direction used by the laize computer is different from the one selected by the vendor\n //Or if the product type is not rouleau or lamePleine\n //Or if the flooring direction selected by the vendor is not available with this room\n //=> We should reset the flooring direction\n if (\n laizeResult?.flooringDirectionByRoomId?.[room.roomId!] !== room.flooringDirection ||\n ProductHelper.getProductType(room.questionProduitPrincipal?.produitValue) === undefined ||\n !laizeResult?.possibleFlooringDirectionByRoomId?.[room.roomId!]?.some(\n (x) => x === room.flooringDirection\n )\n ) {\n room.flooringDirection = undefined;\n }\n\n const room_bbox = PointUtils.calculateBoundingBox({ points: room.coords });\n const room_width = (room_bbox!.xMax - room_bbox!.xMin) / meter;\n const room_height = (room_bbox!.yMax - room_bbox!.yMin) / meter;\n const room_length = _.round(room_width > room_height ? room_width : room_height, 2);\n const surface_area = _.round(room.area! / (meter * meter), 2);\n const surface_area_without_room_item = _.round(room.areaWithoutRoomItems / (meter * meter), 2);\n const surface_manipulee_prorata = _.round(\n _.sum(laizesCalc?.roomsBandsLength) * bandWidth * (surface_area / total_surface_area),\n 2\n ); //in ml ?\n\n const rawPerimeter = WallUtils.calculatePerimeter(room.walls);\n const perimeter = _.round(rawPerimeter / meter, 2); //* in meter\n const perimeter_plinthes = _.round(\n PerimeterCalc.calculatePerimeterPlinthes(\n room.roomId!,\n rawPerimeter,\n room.contournements?.Stonewall!,\n roomsToUpdate,\n roomItemsToUpdate,\n openingsToUpdate\n ) / meter,\n 2\n ); //in meter\n\n const pre_raccord_length = laizeResult?.roomsRaccordLength?.find((x) => x.roomId === room.roomId);\n const raccord_length = _.round(pre_raccord_length?.length || 0, 2);\n\n const should_lay_plinthes_inside_room_element = MapResult.shouldLayPlinthesInsideRoomElement(\n roomItemsToUpdate,\n room.roomId\n );\n room.surface_area = surface_area;\n room.surface_area_without_room_item = surface_area_without_room_item;\n room.surface_manipulee_prorata = surface_manipulee_prorata;\n room.perimeter = perimeter;\n room.perimeter_plinthes = perimeter_plinthes;\n room.raccord_length = raccord_length;\n room.room_length = room_length;\n room.should_lay_plinthes_inside_room_element = should_lay_plinthes_inside_room_element;\n\n for (const opening of openingsToUpdate) {\n for (const wall of room.walls || []) {\n if (\n Editor.objFromWall(wall, openingsToUpdate).find((x) => x === opening) &&\n opening.roomId === room.roomId\n ) {\n const contiguous_opening_detail = adjacentRooms.find(\n (x) => x.opening.openingId === opening.openingId\n );\n opening.size = (opening.size! * 100) / meter; //in cm\n opening.contiguous_between_rooms = Boolean(contiguous_opening_detail)\n ? contiguous_opening_detail?.roomIds\n : [];\n }\n }\n }\n }\n\n for (const roomItem of roomItemsToUpdate) {\n const room_item_width = qSVG.measure(roomItem.coords![0], roomItem.coords![1]);\n const room_item_height = qSVG.measure(roomItem.coords![1], roomItem.coords![2]);\n roomItem.surface = (room_item_width / 100) * (room_item_height / 100); //* in cm\n\n //! RoomElementsMetreLineaire longueur en ml qui n'est pas en contact avec le mur\n roomItem.room_elements_length =\n PerimeterCalc.roomItemDetailedPerimeter(roomItem, roomsToUpdate).lengthNotAdjacentToWall / 100;\n roomItem.width = room_item_width;\n roomItem.height = room_item_height;\n roomItem.horizontal_size = room_item_width;\n roomItem.vertical_size = room_item_height;\n //roomItem.position = { x: roomItem.graphTranslation!.x, y: roomItem.graphTranslation!.y };\n }\n result.push({\n rooms: roomsToUpdate,\n roomItems: roomItemsToUpdate,\n walls: wallsToUpdate,\n openings: openingsToUpdate,\n laizeResult,\n laizeProp,\n total_surface_area,\n });\n }\n return result;\n })();\n\n const mergedRooms: Array = [];\n const mergedRoomItems: Array = [];\n const mergedWalls: Array = [];\n const mergedOpenings: Array = [];\n const mergedLaizeResults: Array = [];\n\n //Sort the result by code article and code coloris (for the laize result)\n wrappedMapResult.sort((a, b) => {\n const aProductCode = parseInt(a.laizeProp.produit?.infos_produit.code_article!);\n const bProductCode = parseInt(b.laizeProp.produit?.infos_produit.code_article!);\n const aColorCode = parseInt(a.laizeProp.produit?.infos_produit.code_coloris!);\n const bColorCode = parseInt(b.laizeProp.produit?.infos_produit.code_coloris!);\n if (aProductCode < bProductCode) {\n return -1;\n }\n if (aProductCode > bProductCode) {\n return 1;\n }\n if (aColorCode < bColorCode) {\n return -1;\n }\n if (aColorCode > bColorCode) {\n return 1;\n }\n return 0;\n });\n\n let nextMinBandId = 0;\n let lastMaxBandId = 0;\n\n for (const mapResult of wrappedMapResult) {\n mergedRooms.push(...mapResult.rooms);\n mergedRoomItems.push(...mapResult.roomItems);\n mergedWalls.push(...mapResult.walls);\n mergedOpenings.push(...mapResult.openings);\n\n const newLaizeResult = mapResult.laizeResult!;\n\n if (newLaizeResult.calculator) {\n // eslint-disable-next-line no-loop-func\n newLaizeResult.calculator.bands_v3 = newLaizeResult.calculator?.bands_v3?.map((x) => {\n const newBand = { ...x };\n if (newBand.bandId) {\n newBand.bandId += nextMinBandId;\n if (lastMaxBandId < newBand.bandId) {\n lastMaxBandId = newBand.bandId;\n }\n }\n return newBand;\n });\n }\n\n // eslint-disable-next-line no-loop-func\n newLaizeResult.laizes = newLaizeResult.laizes?.map((x) => {\n const newLaize = { ...x };\n newLaize.id += nextMinBandId;\n return newLaize;\n });\n\n mergedLaizeResults.push(newLaizeResult);\n nextMinBandId += lastMaxBandId;\n }\n\n mergedRooms.push(...rooms.filter((x) => !mergedRooms.some((y) => y.roomId === x.roomId)));\n mergedRoomItems.push(...roomItems.filter((x) => !mergedRoomItems.some((y) => y.roomItemId === x.roomItemId)));\n mergedWalls.push(...walls.filter((x) => !mergedWalls.some((y) => y.roomId === x.roomId)));\n mergedOpenings.push(...openings.filter((x) => !mergedOpenings.some((y) => y.openingId === x.openingId)));\n\n //Surface global du projet (Somme de la surface total de chaque pièce)\n const global_surface_area = _.round(_.sum(wrappedMapResult.map((x) => x.total_surface_area)), 2);\n\n return {\n rooms: mergedRooms,\n walls: mergedWalls,\n roomItems: mergedRoomItems,\n openings: mergedOpenings,\n laizeResults: mergedLaizeResults,\n global_surface_area,\n };\n };\n\n public static shouldLayPlinthesInsideRoomElement(roomItems: Array, roomId?: string) {\n for (const roomItem of roomItems.filter((x) => x.roomId === roomId)) {\n if (roomItem.putPlinthes) {\n return true;\n }\n }\n return false;\n }\n}\n","import { RoomType } from './Models/IRoom';\nimport { WallLine } from './Utils/Types';\n\n//* GLOBAL VARIABLES\ninterface IMapConstants {\n meter: number;\n wallMinSize: (type?: RoomType) => number;\n grid_snap: string;\n mode?: string; //* select_mode\n\n roomDefaultSpacing: number;\n\n gridStep: number;\n snapGridMagnet: number;\n snapGridMagnetSensitivity: number;\n\n originX_viewbox: number;\n originY_viewbox: number;\n zoom: number;\n factor: number;\n\n tolerance_round_value: number;\n wallThickness: number;\n\n PreviousNearestWall?: WallLine;\n PreviousHorVNearestWall?: WallLine;\n}\n\nexport const MapMode = {\n GRID_SNAP_ON: 'on',\n GRID_SNAP_OFF: 'off',\n\n MODE_TYPE_RENAMING_ROOM_NAME: 'MODE_TYPE_RENAMING_ROOM_NAME',\n\n MODE_TYPE_OPENING_PLACING: 'MODE_TYPE_OPENING_PLACING', //* Placing opening,mode===door_mode in v2\n MODE_TYPE_OPENING_MOVE: 'MODE_TYPE_OPENING_MOVE', //* Moving opening\n\n MODE_TYPE_MOVE_ROOM: 'MODE_TYPE_MOVE_ROOM',\n MODE_TYPE_MOVE_ROOM_WALL: 'MODE_TYPE_MOVE_ROOM_WALL',\n MODE_TYPE_MOVE_ROOM_WALL_POINT: 'MODE_TYPE_MOVE_ROOM_WALL_POINT',\n\n MODE_TYPE_MOVE_ROOM_ITEM: 'MODE_TYPE_MOVE_ROOM_ITEM',\n MODE_TYPE_MOVE_ROOM_ITEM_SIDE: 'MODE_TYPE_MOVE_ROOM_ITEM_SIDE',\n MODE_TYPE_ROOM_ITEM_PLACING: 'MODE_TYPE_ROOM_ITEM_PLACING', //* Placing room item ,mode===object_mode_room_item in v2\n};\n\nexport const MapConstants: IMapConstants = {\n meter: 100,\n wallMinSize: (type: RoomType = RoomType.Sol) => (type === RoomType.Sol ? 0 : 7),\n //action: 0,\n //construc: 0,\n mode: undefined, //* select_mode\n\n roomDefaultSpacing: 50,\n\n gridStep: 1,\n snapGridMagnet: 50,\n snapGridMagnetSensitivity: 10,\n grid_snap: 'on',\n\n // pox: 0,\n // poy: 0,\n\n originX_viewbox: 0,\n originY_viewbox: 0,\n zoom: 9,\n factor: 1,\n\n tolerance_round_value: 0.00000000001,\n wallThickness: 1,\n\n PreviousNearestWall: undefined,\n PreviousHorVNearestWall: undefined,\n};\n\nwindow.MapConstants = { MapMode, MapConstants };\n","import { QuestionContext } from '../../../Helpers/QuestionContextHelper';\nimport { FindFirstIncompatibilityResult } from '../../../Helpers/QuestionsHelper';\nimport { QuestionItem, QuestionStep } from '../../../Models/Questions/QuestionDto';\nimport { TagType } from '../../../Web/Pages/Quote/Widgets/TagLabel';\n\nexport interface IMapItem {\n roomId?: string;\n name?: string;\n namedByUser?: boolean;\n\n questionsBaseContext?: QuestionContext;\n questionsTva?: ContextQuestionList;\n\n questionsPose?: ContextQuestionList;\n questionsSupport?: ContextQuestionList;\n questionsPreparation?: ContextQuestionList;\n questionsFinition?: ContextQuestionList;\n\n questionsCopiedFromId?: string;\n\n openSections?: OpenSections;\n\n //* NEW\n completionStatus?: CompleteStatus;\n findIncompatibilityResult?: FindFirstIncompatibilityResult;\n}\n\nexport interface ContextQuestionList {\n step: QuestionStep;\n questions: QuestionItem[];\n isStepCompleted?: boolean; //? REVIEW : IS IT USED @mmc\n endQuestion?: boolean;\n isEmpty?: boolean;\n\n initialContext?: QuestionContext; //!\\ only for debug\n findIncompatibility?: FindFirstIncompatibilityResult; //!\\ only for debug\n}\n\nexport interface OpenSections {\n infos?: boolean;\n questionsPose?: boolean;\n questionsSupport?: boolean;\n questionsPreparation?: boolean;\n questionsFinition?: boolean;\n questionsServices?: boolean;\n\n //!\\ ONLY FOR ROOMS\n amenagementsSection?: boolean;\n}\n\n\nexport interface CompleteStatus {\n completedType?: TagType;\n isCompleted?: boolean;\n\n propertiesCompleted?: boolean;\n\n infoCompletedType?: TagType;\n infosCompleted?: boolean;\n\n questionsComplete?: boolean;\n\n amenagementsCompleted?: boolean; //!\\ONLY FOR ROOMS\n amenagementsCompletedType?: TagType; //!\\ONLY FOR ROOMS\n}\n\nexport enum YesOrNo {\n Yes = 'Oui',\n No = 'Non',\n}\n\nexport const MapItemContants = { QuestionsCopiedFromId_NONE: 'none' };\n","import { CoordPoint } from '../Utils/Types';\nimport { IMapItem } from './IMapItem';\n\nexport enum OpeningType {\n ArmoredDoor = 'armored_doors',\n Door = 'doors',\n Window = 'windows',\n FrenchDoor = 'french_doors',\n FrontDoor = 'front_doors',\n PatioDoor = 'patio_doors',\n Opening = 'opening', //!\\ also called WallOpening\n}\n\nexport function toOpeningKeyFromValue(value: string): string | undefined {\n const entry = Object.entries(OpeningType).find(([key, val]) => val === value);\n return entry ? entry[0] : undefined;\n}\n\nexport interface IOpening extends IMapItem {\n roomId?: string;\n openingId?: string;\n\n //* INFOS\n type?: OpeningType;\n size?: number;\n customSize?: boolean;\n\n //* COORDS\n x?: number;\n y?: number;\n limit?: CoordPoint[];\n angle?: number;\n\n location_side?: string;\n location_position_from_edge?: number;\n contiguous_between_rooms?: string[];\n\n //* Used for gestures\n isMoving?: boolean;\n\n //!\\ not utile, so => remove\n // hinge?: string;//! ALWAYS 'normal'\n // position?: CoordPoint;\n // family?: string; //like inWall, stick, collision, free,\n // class?: string; // door, window, energy, stair, measure, text ?\n // classe?: string, // door, window, energy, stair, measure, text ?\n // angleSign?: number;\n\n // thick?: number;\n // scale?: CoordPoint;\n // value?: number;\n // width?: string;\n // height?: string;\n\n}\n\nexport class OpeningTypeUtils {\n public static isDoorSpecific = (type?: OpeningType) => {\n return [OpeningType.Door, OpeningType.FrenchDoor, OpeningType.FrontDoor].includes(type!);\n };\n}\n","import { QuestionItem } from '../../../Models/Questions/QuestionDto';\nimport { FlooringDirection } from '../Components/Laizes/Laize';\nimport { CoordPoint, Wall } from '../Utils/Types';\nimport { IContournements } from './Contournements';\nimport { IMapItem, YesOrNo } from './IMapItem';\nimport { IOpening } from './IOpening';\nimport { IRoomItem } from './IRoomItem';\n\nexport const LocalisationName = 'localisation_piece';\nexport enum RoomLocalisation {\n Inside = 'Intérieur',\n Outside = 'Extérieur',\n}\n\nexport const TypeDeLocalName = 'Type de local';\nexport enum UnitType {\n Maison = 'Maison',\n Appartement = 'Appartement',\n LocalPro = 'Local pro',\n CoPro = 'Co-propriété',\n}\n\nexport enum RoomShape {\n Rectangle = 'rectangle',\n Open_bottom_rectangle = 'open_bottom_rectangle',\n Diamond_topleft = 'diamond_topleft',\n Diamond_topright = 'diamond_topright',\n Diamond_bottomleft = 'diamond_bottomleft',\n Diamond_bottomright = 'diamond_bottomright',\n Flyingwing_topleft = 'flyingwing_topleft',\n Flyingwing_topright = 'flyingwing_topright',\n Flyingwing_bottomleft = 'flyingwing_bottomleft',\n Flyingwing_bottomright = 'flyingwing_bottomright',\n U_top = 'u_top',\n U_right = 'u_right',\n U_bottom = 'u_bottom',\n U_left = 'u_left',\n Plus = 'plus',\n\n Custom = 'custom',\n}\n\nexport type RoomAngle = 0 | 90 | 180 | 270;\n\nexport enum RoomType {\n Sol = 'Sol',\n Wall = 'Wall',\n}\n\n//! obsolete, kept for v2 export retrocompat\nexport type ObsoleteRoomDimensions = {\n //* Rectangle shape\n width?: number;\n height?: number;\n\n //* Diamond shape\n table?: number;\n right_crown?: number;\n left_crown?: number;\n\n //* FlyingWing shape\n left_wingtip?: number;\n left_trailing_edge?: number;\n right_wingtip?: number;\n right_trailing_edge?: number;\n\n //* U shape\n exterior_base?: number;\n left_exterior_edge?: number;\n left_tip?: number;\n left_interior_edge?: number;\n right_tip?: number;\n right_exterior_edge?: number;\n};\n\nexport interface IRoom extends IMapItem {\n type?: RoomType;\n //* ROOM INFOS : injected in context\n shape?: RoomShape;\n roomType?: string; // rename\n localisation?: RoomLocalisation;\n roomFloor?: string;\n roomWall?: string;\n roomExistingFlooring?: YesOrNo | string; //presenceRevetementAuSol\n roomExistingFloorType?: string;\n roomHeating?: YesOrNo | string;\n roomHeatingType?: string;\n\n flooringDirection?: FlooringDirection; //* Direction de pose du revêtement (LaizeComputer V3)\n\n contournements?: IContournements;\n\n //* injected by RoomPropEnhancer -> enhance\n raccord_length?: number;\n room_length?: number;\n surface_area?: number;\n surface_area_without_room_item?: number;\n surface_manipulee_prorata?: number;\n perimeter?: number;\n perimeter_plinthes?: number;\n should_lay_plinthes_inside_room_element?: boolean;\n\n //* PRODUIT PRINCIPAL\n questionProduitPrincipal?: QuestionItem;\n\n //obsolete\n obsoleteDimensions?: ObsoleteRoomDimensions;\n center?: CoordPoint; //todo try to rm\n\n openings?: Array;\n roomItems?: Array;\n\n //* set on creation and update when walls changes\n sides?: Map>;\n sidesObject?: Record>; //!used for debug sides which is not display in ReactJson\n\n __comment_enum__?: string;\n\n //*COORDS\n coords?: Array;\n walls?: Array;\n areaWithoutRoomItems?: any;\n area?: number;\n inside?: any;\n coordsInside?: any;\n customPoints?: Array;\n rotationAngle?: number;\n}\n","import { CoordPoint, WallLine } from '../Utils/Types';\nimport { IMapItem, YesOrNo } from './IMapItem';\n\nexport enum RoomItemType {\n //* Sol\n ShowerBathtub = 'shower_bathtub',\n FixedFurniture = 'fixed_furniture',\n Cupboard = 'cupboard',\n KitchenFurniture = 'kitchen_furniture',\n Trap = 'trap',\n Fireplace = 'fireplace',\n Opening = 'opening',\n Stairs = 'stairs',\n Divider = 'divider',\n HeavyElement = 'heavy_element',\n SewerPlate = 'sewer_plate',\n\n //* Wall\n Door = 'door',\n Window = 'window',\n UnlaidArea = 'unlaid_area',\n}\n\nexport function toRoomItemKeyFromValue(value: string): string | undefined {\n const entry = Object.entries(RoomItemType).find(([key, val]) => val === value);\n return entry ? entry[0] : undefined;\n}\n\nexport interface IRoomItem extends IMapItem {\n roomItemId?: string;\n\n //* INFOS\n type?: RoomItemType;\n putFlooring?: YesOrNo;\n putPlinthes?: string;\n width?: number;\n height?: number;\n dimensId?: number;\n isMoveableOutside?: boolean; // #20350\n\n //* COORDS\n coords?: Array;\n coordsReal?: Array;\n graphTranslation?: GraphTranslation;\n\n surface?: number;\n horizontal_size?: number;\n vertical_size?: number;\n room_elements_length?: number;\n\n //* Used for gestures\n isMoving?: boolean;\n}\n\ntype GraphTranslation = CoordPoint & {\n //!only set in TestCase\n wall?: WallLine;\n roomId?: string;\n distance?: number;\n};\n\nexport type RoomItemWithAngle = { roomItem: IRoomItem; angle: number };\n","import { IRoom } from '../../Models/IRoom';\nimport { IRoomItem } from '../../Models/IRoomItem';\nimport { JstsUtils } from '../JstsUtils';\nimport { RoomCollision } from '../SAT/SATUtils';\nimport { CoordPoint } from '../Types';\n\nexport class CollisionCreateRoomFactory {\n public static testCollision(satPolygonA: Array = [], satPolygonB: Array = []) {\n const totalOverlap = { x: 0, y: 0 };\n for (const subPolygonA of satPolygonA) {\n for (const subPolygonB of satPolygonB) {\n const response = new SAT.Response();\n const result = SAT.testPolygonPolygon(\n subPolygonA as never as SAT.Polygon,\n subPolygonB as never as SAT.Polygon,\n response\n );\n if (result) {\n if (totalOverlap.x === 0) {\n totalOverlap.x += response.overlapV.x;\n }\n if (totalOverlap.y === 0) {\n totalOverlap.y += response.overlapV.y;\n }\n }\n }\n }\n return totalOverlap;\n }\n\n public static testAllRoomItemsAreInsideRoom(rooms: Array, roomItems: Array) {\n for (const roomItem of roomItems) {\n const room = rooms.find((x) => x.roomId === roomItem.roomId);\n\n if (\n !this.testIfPolygonAContainedInPolygonB(\n roomItem.coordsReal!.slice(0, -1),\n room?.coords!.slice(0, -1)\n ) &&\n !roomItem.isMoveableOutside\n ) {\n return false;\n }\n }\n return true;\n }\n\n public static testIfPolygonAContainedInPolygonB(polyA: Array = [], polyB: Array = []) {\n const geometryFactory = JstsUtils.GeometryFactory();\n\n const geoInputPolyA = JstsUtils.vectorCoordinates2JTS(polyA);\n geoInputPolyA.push(geoInputPolyA[0]);\n const shellPolyA = geometryFactory.createPolygon(geoInputPolyA);\n\n const geoInputPolyB = JstsUtils.vectorCoordinates2JTS(polyB);\n geoInputPolyB.push(geoInputPolyB[0]);\n const shellPolyB = geometryFactory.createPolygon(geoInputPolyB);\n\n return shellPolyB.contains(shellPolyA);\n }\n\n public static testIfPolygonAContainedIn(polyA: Array, rooms: Array) {\n const geometryFactory = JstsUtils.GeometryFactory();\n\n const geoInputPolyA = JstsUtils.vectorCoordinates2JTS(polyA);\n geoInputPolyA.push(geoInputPolyA[0]);\n\n const shellPolyA = geometryFactory.createPolygon(geoInputPolyA);\n for (const room of rooms) {\n const geoInputRoom = JstsUtils.vectorCoordinates2JTS(room.coords);\n geoInputRoom.push(geoInputRoom[0]);\n\n const shellRoom = geometryFactory.createPolygon(geoInputRoom);\n if (shellRoom.contains(shellPolyA)) {\n return room.roomId;\n }\n }\n return undefined;\n }\n}\n","import { IOpening } from '../../Models/IOpening';\nimport { IRoom } from '../../Models/IRoom';\nimport { IRoomItem } from '../../Models/IRoomItem';\nimport { JstsPolygon, JstsUtils } from '../JstsUtils';\nimport { PointUtils } from '../PointUtils';\nimport { RoomItemUtils } from '../RoomItem/RoomItemUtils';\nimport { Wall } from '../Types';\nimport { WallMove } from '../Wall/WallMove';\n\nexport class InvalidPositionDetection {\n public static getInvalidRoomIds(rooms: Array, roomId: string): Array {\n const roomPolyById: { [key: string]: JstsPolygon } = {};\n const invalidRoomIds: Set = new Set();\n for (const room of rooms) {\n if (!roomPolyById[room.roomId!] || room.roomId === roomId) {\n roomPolyById[room.roomId!] = JstsUtils.createJstsPolygon(room.coords!);\n }\n }\n \n const targetRoom = rooms.find((x) => x.roomId === roomId);\n\n //Check if the current room is invalid\n if (!roomPolyById[roomId].isValid()) {\n invalidRoomIds.add(roomId);\n return Array.from(invalidRoomIds);\n }\n //Check if the current room overlaps/contains other rooms\n\n const otherRoomIds = rooms\n .filter((x) => x.roomId! !== roomId)\n .filter((roomToCheck) => InvalidPositionDetection.excludeRoomsFarAway(targetRoom!, roomToCheck))\n .map((x) => x.roomId!);\n\n for (const otherRoomId of otherRoomIds) {\n const overlaps = roomPolyById[roomId].overlaps(roomPolyById[otherRoomId]);\n if (overlaps) {\n invalidRoomIds.add(otherRoomId);\n } else {\n const contains =\n roomPolyById[roomId].contains(roomPolyById[otherRoomId]) ||\n roomPolyById[otherRoomId].contains(roomPolyById[roomId]);\n if (contains) {\n invalidRoomIds.add(otherRoomId);\n }\n }\n }\n if (invalidRoomIds.size > 0) {\n invalidRoomIds.add(roomId);\n }\n return Array.from(invalidRoomIds);\n }\n\n // Create a bounding box around the room and check if other rooms are partly inside the bounding box\n private static excludeRoomsFarAway(targetRoom: IRoom, roomToCheck: IRoom) {\n const bboxMargin = 10;\n const targetRoomBBox = PointUtils.calculateBoundingBox({ points: targetRoom.coords! });\n const targetRoomBBoxWithMargin = PointUtils.increaseBoundingBox(targetRoomBBox!, bboxMargin);\n\n for (const coord of roomToCheck.coords!) {\n if (PointUtils.isInsideBoundingBox(coord, targetRoomBBoxWithMargin)) {\n return true;\n }\n }\n return false;\n }\n\n public static getInvalidOpeningIds(\n targetWall: Wall,\n openings: Array\n ): { invalidOpeningIds: Array; invalidRoomIds: Array } | undefined {\n if (targetWall && WallMove.wallMoveMinSizeBlock(targetWall)) {\n const invalidOpeningIds = openings.filter((x) => x.roomId === targetWall.roomId).map((x) => x.openingId!);\n return {\n invalidOpeningIds,\n invalidRoomIds: invalidOpeningIds.map((x) => openings.find((y) => y.openingId === x)?.roomId!),\n };\n }\n return undefined;\n }\n\n public static roomItemPolyById: { [key: string]: JstsPolygon } = {};\n public static getInvalidRoomItemIds(roomItems: Array, roomItemId: string): Array {\n const roomItemPolyById: Record = {};\n const invalidRoomItemIds: Set = new Set();\n roomItems.forEach((r) => (roomItemPolyById[r.roomItemId!] = JstsUtils.createJstsPolygon(r.coordsReal!)));\n\n //Check if the current roomItem overlaps/contains other roomItems\n for (const otherRoomItemId of roomItems.map((x) => x.roomItemId!).filter((x) => x !== roomItemId)) {\n const overlaps = roomItemPolyById[roomItemId].overlaps(roomItemPolyById[otherRoomItemId]);\n if (overlaps) {\n invalidRoomItemIds.add(otherRoomItemId);\n } else {\n const contains =\n roomItemPolyById[roomItemId].contains(roomItemPolyById[otherRoomItemId]) ||\n roomItemPolyById[otherRoomItemId].contains(roomItemPolyById[roomItemId]);\n if (contains) {\n invalidRoomItemIds.add(otherRoomItemId);\n }\n }\n }\n if (invalidRoomItemIds.size > 0) {\n invalidRoomItemIds.add(roomItemId);\n }\n return Array.from(invalidRoomItemIds);\n }\n\n public static getInvalidRoomItemIdsOnWallRoomMove(\n roomItems: Array,\n targetRoom: IRoom\n ): { invalidRoomItemIds: Array; invalidRoomIds: Array } {\n //! NOT COMPATIBLE WITH PLAN LIBRE\n const invalidRoomItem: IRoomItem[] = [];\n // const invalidRoomItem: Set = new Set();\n for (const roomItem of roomItems) {\n const isInvalid = RoomItemUtils.isRoomItemInsideRoom(roomItem, targetRoom, false);\n if (isInvalid) {\n invalidRoomItem.push(roomItem);\n }\n }\n\n return {\n invalidRoomItemIds: invalidRoomItem.map((x) => x.roomItemId!),\n invalidRoomIds: invalidRoomItem.map((x) => x.roomId!),\n };\n }\n}\n","import { ILaizeOpening } from '../Components/Laizes/LaizeCalc';\nimport { MapConstants } from '../MapConstants';\nimport { IRoom, RoomShape } from '../Models/IRoom';\nimport { IRoomItem } from '../Models/IRoomItem';\nimport { isObjectsEquals } from './Funcs';\nimport { PointUtils } from './PointUtils';\nimport { qSVG } from './qSVG';\nimport { CreateRoomFactory } from './Room/RoomUtils';\nimport { CoordPoint, Equation, Wall, WallLine, WallNode, WallPolygon } from './Types';\nimport { WallUtils } from './Wall/WallUtils';\n\nexport class Editor {\n public static wall = (\n start: CoordPoint,\n end: CoordPoint,\n type: string,\n thick: number,\n roomShape?: RoomShape,\n roomId?: string,\n sideName?: string\n ): Wall => {\n return {\n thick: 0.00000001,\n start,\n end,\n type,\n parent: undefined,\n child: undefined,\n angle: 0,\n originalAngle: 0,\n equations: {},\n coords: [],\n backUp: false,\n roomShape,\n roomId,\n sideName,\n coteManuallySetted: false,\n };\n };\n\n public static architect = (walls: Array, rooms: Array) => {\n this.wallsComputing(walls);\n const wallPolygons = qSVG.polygonize(walls);\n this.setRoomCoordsFromWall(wallPolygons, rooms, walls);\n return true;\n };\n\n //* Regenere le polygon des murs (graph)\n public static wallsComputing = (walls: Array, action?: string) => {\n let previousWall: Wall;\n let previousWallStart: CoordPoint;\n let previousWallEnd: CoordPoint;\n let nextWall: Wall;\n let nextWallStart: CoordPoint;\n let nextWallEnd: CoordPoint;\n\n for (let vertice = 0; vertice < walls.length; vertice++) {\n const wall = walls[vertice];\n if (wall.parent) {\n previousWall = wall.parent;\n if (isObjectsEquals(wall.parent.start, wall.start)) {\n previousWallStart = previousWall.end;\n previousWallEnd = previousWall.start;\n }\n if (isObjectsEquals(wall.parent.end, wall.start)) {\n previousWallStart = previousWall.start;\n previousWallEnd = previousWall.end;\n }\n } else {\n const S: Array = this.getWallNode(walls, wall.start, wall);\n // if (wallInhibation && isObjectsEquals(wall, wallInhibation)) S = false;\n for (let k in S) {\n const eqInter = this.createEquationFromWall(S[k].wall, S[k].wall.equations.base);\n let angleInter = 90; // TO PASS TEST\n if (action === 'move') {\n //angleInter = qSVG.angleBetweenEquations(eqInter.A, equation2.A); //TODO OLD\n angleInter = qSVG.angleBetweenEquations(eqInter.A);\n }\n if (S[k].type === 'start' && S[k].wall.parent == null && angleInter > 20 && angleInter < 160) {\n wall.parent = S[k].wall;\n S[k].wall.parent = wall;\n previousWall = wall.parent;\n previousWallStart = previousWall.end;\n previousWallEnd = previousWall.start;\n }\n if (S[k].type === 'end' && S[k].wall.child == null && angleInter > 20 && angleInter < 160) {\n wall.parent = S[k].wall;\n S[k].wall.child = wall;\n previousWall = wall.parent;\n previousWallStart = previousWall.start;\n previousWallEnd = previousWall.end;\n }\n }\n }\n if (wall.child) {\n nextWall = wall.child;\n if (isObjectsEquals(wall.child.end, wall.end)) {\n nextWallStart = nextWall.end;\n nextWallEnd = nextWall.start;\n } else {\n nextWallStart = nextWall.start;\n nextWallEnd = nextWall.end;\n }\n } else {\n const E: Array = this.getWallNode(walls, wall.end, wall);\n // if (wallInhibation && isObjectsEquals(wall, wallInhibation)) E = false;\n for (let k in E) {\n const eqInter = this.createEquationFromWall(E[k].wall, E[k].wall.equations.base);\n let angleInter = 90; // TO PASS TEST\n if (action === 'move') {\n // angleInter = qSVG.angleBetweenEquations(eqInter.A, equation2.A); //TODO OLD\n angleInter = qSVG.angleBetweenEquations(eqInter.A); //TODO FIX ASK @thierry\n }\n if (E[k].type === 'end' && E[k].wall.child == null && angleInter > 20 && angleInter < 160) {\n wall.child = E[k].wall;\n E[k].wall.child = wall;\n nextWall = wall.child;\n nextWallStart = nextWall.end;\n nextWallEnd = nextWall.start;\n }\n if (E[k].type === 'start' && E[k].wall.parent == null && angleInter > 20 && angleInter < 160) {\n wall.child = E[k].wall;\n E[k].wall.parent = wall;\n nextWall = wall.child;\n nextWallStart = nextWall.start;\n nextWallEnd = nextWall.end;\n }\n }\n }\n const angleWall = Math.atan2(wall.end.y - wall.start.y, wall.end.x - wall.start.x);\n wall.angle = angleWall;\n const wallThickX = (wall.thick / 2) * Math.sin(angleWall);\n const wallThickY = (wall.thick / 2) * Math.cos(angleWall);\n const eqWallUp = qSVG.createEquation(\n wall.start.x + wallThickX,\n wall.start.y - wallThickY,\n wall.end.x + wallThickX,\n wall.end.y - wallThickY,\n wall.equations.up\n );\n const eqWallDw = qSVG.createEquation(\n wall.start.x - wallThickX,\n wall.start.y + wallThickY,\n wall.end.x - wallThickX,\n wall.end.y + wallThickY,\n wall.equations.down\n );\n const eqWallBase = qSVG.createEquation(\n wall.start.x,\n wall.start.y,\n wall.end.x,\n wall.end.y,\n wall.equations.base\n );\n wall.equations = { up: eqWallUp, down: eqWallDw, base: eqWallBase };\n let dWay;\n\n // WALL STARTED\n if (!wall.parent) {\n const eqP = qSVG.perpendicularEquation(eqWallUp, wall.start.x, wall.start.y)!;\n const interUp: any = qSVG.intersectionOfEquations(eqWallUp, eqP!, 'object') as Equation;\n const interDw: any = qSVG.intersectionOfEquations(eqWallDw, eqP!, 'object') as Equation;\n wall.coords = [interUp, interDw];\n dWay = 'M' + interUp.x + ',' + interUp.y + ' L' + interDw.x + ',' + interDw.y + ' ';\n } else {\n const eqP = qSVG.perpendicularEquation(eqWallUp, wall.start.x, wall.start.y)!;\n // var previousWall = wall.parent;\n // var previousWallStart = previousWall.start;\n // var previousWallEnd = previousWall.end;\n const anglePreviousWall = Math.atan2(\n previousWallEnd!.y - previousWallStart!.y,\n previousWallEnd!.x - previousWallStart!.x\n );\n const previousWallThickX = (previousWall!.thick / 2) * Math.sin(anglePreviousWall);\n const previousWallThickY = (previousWall!.thick / 2) * Math.cos(anglePreviousWall);\n const eqPreviousWallUp = qSVG.createEquation(\n previousWallStart!.x + previousWallThickX,\n previousWallStart!.y - previousWallThickY,\n previousWallEnd!.x + previousWallThickX,\n previousWallEnd!.y - previousWallThickY,\n wall.parent.equations.up\n );\n const eqPreviousWallDw = qSVG.createEquation(\n previousWallStart!.x - previousWallThickX,\n previousWallStart!.y + previousWallThickY,\n previousWallEnd!.x - previousWallThickX,\n previousWallEnd!.y + previousWallThickY,\n wall.parent.equations.down\n );\n let interUp: any;\n let interDw: any;\n\n if (Math.abs(anglePreviousWall - angleWall) > 0.09) {\n interUp = qSVG.intersectionOfEquations(eqWallUp, eqPreviousWallUp, 'object')!;\n interDw = qSVG.intersectionOfEquations(eqWallDw, eqPreviousWallDw, 'object')!;\n\n if (eqWallUp.A === eqPreviousWallUp.A) {\n interUp = { x: wall.start.x + wallThickX, y: wall.start.y - wallThickY };\n interDw = { x: wall.start.x - wallThickX, y: wall.start.y + wallThickY };\n }\n\n const miter = qSVG.gap(interUp, { x: previousWallEnd!.x, y: previousWallEnd!.y });\n if (miter > 1000) {\n interUp = qSVG.intersectionOfEquations(eqP, eqWallUp, 'object');\n interDw = qSVG.intersectionOfEquations(eqP, eqWallDw, 'object');\n }\n }\n if (Math.abs(anglePreviousWall - angleWall) <= 0.09) {\n interUp = qSVG.intersectionOfEquations(eqP, eqWallUp, 'object');\n interDw = qSVG.intersectionOfEquations(eqP, eqWallDw, 'object');\n }\n wall.coords = [interUp, interDw];\n dWay = 'M' + interUp.x + ',' + interUp.y + ' L' + interDw.x + ',' + interDw.y + ' ';\n }\n // WALL FINISHED\n if (!wall.child) {\n const eqP = qSVG.perpendicularEquation(eqWallUp, wall.end.x, wall.end.y);\n const interUp: any = qSVG.intersectionOfEquations(eqWallUp, eqP!, 'object');\n const interDw: any = qSVG.intersectionOfEquations(eqWallDw, eqP!, 'object');\n wall.coords.push(interDw, interUp);\n dWay = dWay + 'L' + interDw.x + ',' + interDw.y + ' L' + interUp.x + ',' + interUp.y + ' Z';\n } else {\n const eqP: any = qSVG.perpendicularEquation(eqWallUp, wall.end.x, wall.end.y);\n // var nextWall = wall.child;\n // var nextWallStart = nextWall.start;\n // var nextWallEnd = nextWall.end;\n const angleNextWall = Math.atan2(nextWallEnd!.y - nextWallStart!.y, nextWallEnd!.x - nextWallStart!.x);\n const nextWallThickX = (nextWall!.thick / 2) * Math.sin(angleNextWall);\n const nextWallThickY = (nextWall!.thick / 2) * Math.cos(angleNextWall);\n const eqNextWallUp = qSVG.createEquation(\n nextWallStart!.x + nextWallThickX,\n nextWallStart!.y - nextWallThickY,\n nextWallEnd!.x + nextWallThickX,\n nextWallEnd!.y - nextWallThickY,\n wall.child.equations.up\n );\n const eqNextWallDw = qSVG.createEquation(\n nextWallStart!.x - nextWallThickX,\n nextWallStart!.y + nextWallThickY,\n nextWallEnd!.x - nextWallThickX,\n nextWallEnd!.y + nextWallThickY,\n wall.child.equations.down\n );\n\n let interUp: any;\n let interDw: any;\n\n if (Math.abs(angleNextWall - angleWall) > 0.09) {\n interUp = qSVG.intersectionOfEquations(eqWallUp, eqNextWallUp, 'object');\n interDw = qSVG.intersectionOfEquations(eqWallDw, eqNextWallDw, 'object');\n\n if (eqWallUp.A === eqNextWallUp.A) {\n interUp = { x: wall.end.x + wallThickX, y: wall.end.y - wallThickY };\n interDw = { x: wall.end.x - wallThickX, y: wall.end.y + wallThickY };\n }\n\n const miter = qSVG.gap(interUp, { x: nextWallStart!.x, y: nextWallStart!.y });\n if (miter > 1000) {\n interUp = qSVG.intersectionOfEquations(eqWallUp, eqP, 'object');\n interDw = qSVG.intersectionOfEquations(eqWallDw, eqP, 'object');\n }\n }\n if (Math.abs(angleNextWall - angleWall) <= 0.09) {\n interUp = qSVG.intersectionOfEquations(eqWallUp, eqP, 'object');\n interDw = qSVG.intersectionOfEquations(eqWallDw, eqP, 'object');\n }\n\n wall.coords.push(interDw, interUp);\n dWay = dWay + 'L' + interDw.x + ',' + interDw.y + ' L' + interUp.x + ',' + interUp.y + ' Z';\n }\n }\n\n //* after update walls in state\n };\n\n // RETURN OBJECTS ARRAY INDEX OF WALLS [WALL1, WALL2, n...] WALLS WITH THIS NODE, EXCEPT PARAM = OBJECT WALL\n public static getWallNode = (walls: Array, coords: CoordPoint, except: Wall): Array => {\n const nodes: Array = [];\n for (let k in walls) {\n if (!isObjectsEquals(walls[k], except!)) {\n if (isObjectsEquals(walls[k].start, coords)) {\n nodes.push({ wall: walls[k], type: 'start' });\n }\n if (isObjectsEquals(walls[k].end, coords)) {\n nodes.push({ wall: walls[k], type: 'end' });\n }\n }\n }\n return nodes;\n };\n\n public static testPointBelongToWall = (wall: WallLine, point: CoordPoint) => {\n return this.testPointBelongToLine([wall.start, wall.end], point);\n };\n\n public static testPointBelongToLine = (line: Array, point: CoordPoint) => {\n const eq = qSVG.createEquation(line[0].x, line[0].y, line[1].x, line[1].y);\n const search = qSVG.nearPointOnEquation(eq, point);\n const tolerance_round_value = MapConstants.tolerance_round_value;\n return (\n search.distance < 1.0 &&\n qSVG.btwn(point.x, line[0].x, line[1].x, false, tolerance_round_value) &&\n qSVG.btwn(point.y, line[0].y, line[1].y, false, tolerance_round_value)\n );\n };\n\n public static createEquationFromWall = (wall: WallLine, previousEquation?: Equation) => {\n if (!wall) {\n return previousEquation!;\n }\n return qSVG.createEquation(wall.start.x, wall.start.y, wall.end.x, wall.end.y, previousEquation);\n };\n\n public static setRoomCoordsFromWall = (\n roomsPolygons: Array,\n rooms: Array,\n walls: Array\n ) => {\n roomsPolygons.forEach((polygon, index) => {\n const room = rooms.find((r) => r.roomId === polygon.roomId);\n if (room) {\n room.area = polygon.area;\n room.inside = polygon.inside;\n room.coords = polygon.coords;\n room.coordsInside = polygon.coordsInside;\n room.walls = walls.filter((x) => x.roomId === room.roomId);\n room.sides = CreateRoomFactory.toRoomSides(room);\n room.sidesObject = Object.fromEntries(room.sides);\n }\n });\n };\n\n // RETURN OBJDATA INDEX LIST FROM AN WALL\n public static objFromWall = (wall: WallLine, openings: Array) => {\n const wallOpenings: Array = [];\n for (let scan = 0; scan < openings.length; scan++) {\n const opening: ILaizeOpening = openings[scan];\n //if (opening.family === 'inWall') {\n if (this.testPointBelongToWall(wall, opening as CoordPoint)) {\n wallOpenings.push(opening);\n }\n // WARNING 0.01 TO NO COUNT OBJECT ON LIMITS OF THE EDGE !!!!!!!!!!!! UGLY CODE( MOUSE PRECISION)\n // TRY WITH ANGLE MAYBE ???\n //}\n }\n return wallOpenings;\n };\n\n // RETURN OBJLIST WITH ROOM FILTER\n //todo review this: urgent\n public static objFromWallRoom = (wall: WallLine, currentOpenings: Array) => {\n //return this.objFromWall(wall, currentOpenings).filter((x) => x.graph.parent().attr('class') === 'room-' + wall.roomId);\n return this.objFromWall(wall, currentOpenings).filter((x) => x.roomId === wall.roomId);\n };\n\n /** Calculates the overlap distance of the two given lines (line = array of two points) */\n public static calcLineOverlapping = (lineA: Array, lineB: Array) => {\n const lineApointsOnLineB = [];\n for (const point of lineA) {\n if (this.testPointBelongToLine(lineB, point)) {\n lineApointsOnLineB.push(point);\n }\n }\n\n const lineBpointsOnLineA = [];\n for (const point of lineB) {\n if (this.testPointBelongToLine(lineA, point)) {\n lineBpointsOnLineA.push(point);\n }\n }\n\n if (lineApointsOnLineB.length === 2) {\n return qSVG.measure(lineA[1], lineA[0]);\n }\n\n if (lineBpointsOnLineA.length === 2) {\n return qSVG.measure(lineB[0], lineB[1]);\n }\n\n if (lineApointsOnLineB.length === 1 && lineBpointsOnLineA.length === 1) {\n return qSVG.measure(lineApointsOnLineB[0], lineBpointsOnLineA[0]);\n }\n return 0;\n };\n\n /**\n * Returns one of the given poly's side as a line (line = array of two points).\n */\n public static getLineFromPoly = (poly: Array = [], lineStartPointIndex: number) => {\n return [poly[lineStartPointIndex % (poly.length - 1)], poly[(lineStartPointIndex + 1) % (poly.length - 1)]];\n };\n\n public static rayCastingRoom = (point: CoordPoint, rooms: Array) => {\n // let x = point.x;\n // let y = point.y;\n\n let roomGroup = [];\n for (let polygon = 0; polygon < rooms.length; polygon++) {\n const inside = qSVG.rayCasting(point, rooms[polygon].coords);\n if (inside) {\n roomGroup.push(polygon);\n }\n }\n if (roomGroup.length > 0) {\n let bestArea = rooms[roomGroup[0]].area;\n let roomTarget;\n for (let siz = 0; siz < roomGroup.length; siz++) {\n if (rooms[roomGroup[siz]].area! <= bestArea!) {\n bestArea = rooms[roomGroup[siz]].area;\n roomTarget = rooms[roomGroup[siz]];\n }\n }\n return roomTarget;\n } else {\n return undefined;\n }\n };\n\n public static rayCastingRoomItem = (point: CoordPoint, roomItems: Array) => {\n let roomItemGroup = [];\n for (let polygon = 0; polygon < roomItems.length; polygon++) {\n const inside = qSVG.rayCasting(point, roomItems[polygon].coordsReal);\n if (inside) {\n roomItemGroup.push(polygon);\n }\n }\n if (roomItemGroup.length > 0) {\n return roomItems[roomItemGroup[0]];\n } else {\n return undefined;\n }\n };\n\n public static testIfPolygonCrossesDiagonalWall = (poly: Array, walls: Array) => {\n const diagonalWalls = walls.filter((x) => !WallUtils.isWallHorV(x));\n for (const diagonalWall of diagonalWalls) {\n for (let i = 0; i < poly.length; i++) {\n const side = this.getLineFromPoly(poly, i);\n if (\n PointUtils.intersect(\n { p1: diagonalWall.start, p2: diagonalWall.end },\n { p1: side[0], p2: side[1] }\n ) !== false\n ) {\n return true;\n }\n }\n }\n return false;\n };\n}\n","import React, { SyntheticEvent } from 'react';\nimport { SvgPanZoomEvent } from '../../../Events/withEvent';\nimport { MapConstants, MapMode } from '../MapConstants';\nimport { CoordPoint, SnapGesture } from './Types';\nimport { Value } from 'react-svg-pan-zoom';\nimport { PointUtils } from './PointUtils';\n\ntype CalculSnapParams = {\n event: SvgPanZoomEvent;\n state: string;\n gridMagnet?: boolean;\n angleMagnet?: { parentPoint: CoordPoint; childPoint: CoordPoint } /** upcomming use with wall points move */;\n};\n\nexport class EventUtils {\n public static calculSnap({ event, state, gridMagnet, angleMagnet }: CalculSnapParams): SnapGesture {\n let eX;\n let eY;\n\n const mouseEvent = event.originalEvent as React.MouseEvent;\n const touchEvent = event.originalEvent as React.TouchEvent;\n\n //! documentation, log to get values\n const value = (event as any).value;\n const panX = value.e;\n const panY = value.f;\n const zoom = value.a;\n\n //if (typeof event !== undefined && typeof touchEvent.touches !== 'undefined' && touchEvent.touches) {\n if (touchEvent.touches) {\n const touches = touchEvent.changedTouches;\n eX = touches[0].pageX;\n eY = touches[0].pageY;\n MapConstants.factor = 1;\n } else {\n eX = mouseEvent.pageX;\n eY = mouseEvent.pageY;\n }\n const offset = event.SVGViewer.getBoundingClientRect();\n const x_mouse = eX * MapConstants.factor - offset.left * MapConstants.factor + MapConstants.originX_viewbox;\n const y_mouse = eY * MapConstants.factor - offset.top * MapConstants.factor + MapConstants.originY_viewbox;\n\n let x_grid: number;\n let y_grid: number;\n if (state === MapMode.GRID_SNAP_ON) {\n x_grid = Math.round(x_mouse / MapConstants.gridStep) * MapConstants.gridStep;\n y_grid = Math.round(y_mouse / MapConstants.gridStep) * MapConstants.gridStep;\n }\n if (state === MapMode.GRID_SNAP_OFF) {\n x_grid = x_mouse;\n y_grid = y_mouse;\n }\n\n // const panZoom = (window as any).panZoom;\n //const pan = panZoom?.getPan();\n //const zoom = panZoom?.getZoom();\n\n //@ts-ignore\n //console.log('calculSnap', { event, mouseEvent, touchEvent, eX, eY, x_grid, y_grid, panX, panY, });\n\n // return {\n // x: (x_grid + (pan.x * -1)) / zoom,\n // y: (y_grid + (pan.y * -1)) / zoom,\n // xMouse: (x_mouse + (pan.x * -1)) / zoom,\n // yMouse: (y_mouse + (pan.y * -1)) / zoom\n // };\n\n const cursorMagnetization = gridMagnet\n ? EventUtils.isCursorGridMagnetized(x_grid!, y_grid!, panX, panY, zoom)\n : undefined;\n\n let x = PointUtils.mround(\n Math.round((x_grid! + panX * -1) / zoom),\n cursorMagnetization?.isXMagnetized ? MapConstants.snapGridMagnet : MapConstants.gridStep\n );\n\n let y = PointUtils.mround(\n Math.round((y_grid! + panY * -1) / zoom),\n cursorMagnetization?.isYMagnetized ? MapConstants.snapGridMagnet : MapConstants.gridStep\n );\n\n if (angleMagnet) {\n const magnet = EventUtils.cursorAngleMagnetized({ ...angleMagnet, realPoint: { x, y } });\n x = magnet.x;\n y = magnet.y;\n }\n\n return {\n x,\n y,\n xMouse: Math.round((x_mouse + panX * -1) / zoom),\n yMouse: Math.round((y_mouse + panY * -1) / zoom),\n pageX: eX,\n pageY: eY,\n };\n }\n\n public static calculSnapFromSyntheticEvent(\n event: SyntheticEvent,\n state: string,\n sgvValue: Value,\n svgViewer: SVGSVGElement,\n customSnapValue?: number\n ): SnapGesture {\n let eX;\n let eY;\n\n const mouseEvent = event as React.MouseEvent;\n const touchEvent = event as React.TouchEvent;\n\n //! documentation, log to get values\n const value = sgvValue;\n const panX = value.e;\n const panY = value.f;\n const zoom = value.a;\n\n //if (typeof event !== undefined && typeof touchEvent.touches !== 'undefined' && touchEvent.touches) {\n if (touchEvent.touches) {\n const touches = touchEvent.changedTouches;\n eX = touches[0].pageX;\n eY = touches[0].pageY;\n MapConstants.factor = 1;\n } else {\n eX = mouseEvent.pageX;\n eY = mouseEvent.pageY;\n }\n const offset = svgViewer.getBoundingClientRect();\n const x_mouse = eX * MapConstants.factor - offset.left * MapConstants.factor + MapConstants.originX_viewbox;\n const y_mouse = eY * MapConstants.factor - offset.top * MapConstants.factor + MapConstants.originY_viewbox;\n\n let x_grid: number;\n let y_grid: number;\n if (state === MapMode.GRID_SNAP_ON) {\n x_grid = Math.round(x_mouse / MapConstants.gridStep) * MapConstants.gridStep;\n y_grid = Math.round(y_mouse / MapConstants.gridStep) * MapConstants.gridStep;\n }\n if (state === MapMode.GRID_SNAP_OFF) {\n x_grid = x_mouse;\n y_grid = y_mouse;\n }\n\n // const panZoom = (window as any).panZoom;\n //const pan = panZoom?.getPan();\n //const zoom = panZoom?.getZoom();\n\n //@ts-ignore\n //console.log('calculSnap', { event, mouseEvent, touchEvent, eX, eY, x_grid, y_grid, panX, panY, });\n\n // return {\n // x: (x_grid + (pan.x * -1)) / zoom,\n // y: (y_grid + (pan.y * -1)) / zoom,\n // xMouse: (x_mouse + (pan.x * -1)) / zoom,\n // yMouse: (y_mouse + (pan.y * -1)) / zoom\n // };\n\n return {\n x: PointUtils.mround(Math.round((x_grid! + panX * -1) / zoom), customSnapValue ?? MapConstants.gridStep),\n y: PointUtils.mround(Math.round((y_grid! + panY * -1) / zoom), customSnapValue ?? MapConstants.gridStep),\n xMouse: Math.round((x_mouse + panX * -1) / zoom),\n yMouse: Math.round((y_mouse + panY * -1) / zoom),\n pageX: eX,\n pageY: eY,\n };\n }\n\n private static isCursorGridMagnetized(x: number, y: number, panX: number, panY: number, zoom: number) {\n const realX = Math.round((x! + panX * -1) / zoom)!;\n const isXMagnetized =\n realX % MapConstants.snapGridMagnet <= MapConstants.snapGridMagnetSensitivity / 2 ||\n realX % MapConstants.snapGridMagnet >=\n MapConstants.snapGridMagnet - MapConstants.snapGridMagnetSensitivity / 2\n ? true\n : false;\n\n const realY = Math.round((y! + panY * -1) / zoom)!;\n const isYMagnetized =\n realY % MapConstants.snapGridMagnet <= MapConstants.snapGridMagnetSensitivity / 2 ||\n realY % MapConstants.snapGridMagnet >=\n MapConstants.snapGridMagnet - MapConstants.snapGridMagnetSensitivity / 2\n ? true\n : false;\n\n return { isXMagnetized, isYMagnetized };\n }\n\n private static cursorAngleMagnetized(angleMagnet: {\n realPoint: CoordPoint;\n parentPoint: CoordPoint;\n childPoint: CoordPoint;\n }): CoordPoint {\n const { realPoint, parentPoint, childPoint } = angleMagnet;\n const sensi = MapConstants.snapGridMagnetSensitivity / 2;\n if (realPoint.x > parentPoint.x - sensi && realPoint.x < parentPoint.x + sensi) {\n realPoint.x = parentPoint.x;\n }\n if (realPoint.y > parentPoint.y - sensi && realPoint.y < parentPoint.y + sensi) {\n realPoint.y = parentPoint.y;\n }\n if (realPoint.x > childPoint.x - sensi && realPoint.x < childPoint.x + sensi) {\n realPoint.x = childPoint.x;\n }\n if (realPoint.y > childPoint.y - sensi && realPoint.y < childPoint.y + sensi) {\n realPoint.y = childPoint.y;\n }\n\n return realPoint;\n }\n}\n","type ObjetType = Record;\n\n//TODO: Remove this function, use lodash\nexport const isObjectsEquals = (a: ObjetType, b: ObjetType, message?: any) => {\n if (message) console.log(message);\n let isOK = true;\n for (let prop in a) {\n if (a[prop] !== b[prop]) {\n isOK = false;\n break;\n }\n }\n return isOK;\n};\n","export class IdGenerator {\n\n public static generate() {\n const length = 8;\n const timestamp = + new Date();\n\n const _getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n };\n\n const ts = timestamp.toString();\n const parts = ts.split('').reverse();\n let id = '';\n\n for (let i = 0; i < length; ++i) {\n const index = _getRandomInt(0, parts.length - 1);\n id += parts[index];\n }\n return id;\n }\n}\n","import * as jsts from 'jsts';\nimport { BoundingBox, CoordPoint } from './Types';\n\nexport type JstsPolygon = {\n getCoordinates: () => Array;\n contains: (polygon: JstsPolygon) => boolean;\n difference: (polygon: JstsPolygon) => JstsPolygon;\n intersection: (polygon: JstsPolygon) => JstsPolygon;\n getArea(): number;\n getNumGeometries(): number;\n getGeometryN(i: number): JstsPolygon;\n buffer: (size: number, nodeNumber?: number, parameter?: number) => JstsPolygon;\n union: (polygon: JstsPolygon) => JstsPolygon;\n isValid: () => boolean;\n overlaps: (polygon: JstsPolygon) => boolean;\n\n _geometries: Array;\n};\n\nexport class JstsUtils {\n public static createJstsPolygonFromBoundingBox = (bb: BoundingBox): JstsPolygon => {\n const geometryFactory = new jsts.geom.GeometryFactory();\n const polygon = [\n new jsts.geom.Coordinate(bb.xMin, bb.yMin),\n new jsts.geom.Coordinate(bb.xMax, bb.yMin),\n new jsts.geom.Coordinate(bb.xMax, bb.yMax),\n new jsts.geom.Coordinate(bb.xMin, bb.yMax),\n new jsts.geom.Coordinate(bb.xMin, bb.yMin),\n ];\n return geometryFactory.createPolygon(polygon) as never as JstsPolygon;\n };\n\n public static GeometryFactory = () => {\n return new jsts.geom.GeometryFactory();\n };\n\n public static toJstsCoordPoint = (x: number, y: number): CoordPoint => {\n return new jsts.geom.Coordinate(x, y);\n };\n\n public static createJstsPolygon = (\n points: Array = [],\n makeCyclic?: boolean,\n geometryFactory?: any\n ): JstsPolygon => {\n if (!geometryFactory) {\n geometryFactory = this.GeometryFactory();\n }\n const geoInputPolyA = this.vectorCoordinates2JTS(points);\n if (makeCyclic) {\n geoInputPolyA.push(geoInputPolyA[0]);\n }\n return geometryFactory.createPolygon(geoInputPolyA);\n };\n\n public static createPolygon = (polygon: Array) => {\n const geometryFactory = this.GeometryFactory();\n return geometryFactory.createPolygon(polygon);\n };\n\n public static vectorCoordinates2JTS(polygon: Array = []) {\n const coordinates: Array = [];\n for (let i = 0; i < polygon.length; i++) {\n coordinates.push(new jsts.geom.Coordinate(polygon[i].x, polygon[i].y));\n }\n return coordinates;\n }\n\n public static within = (point: CoordPoint, polygon: number[][][]) => {\n const geometryFactory = JstsUtils.GeometryFactory();\n const geojsonReader = new jsts.io.GeoJSONReader(geometryFactory);\n const jPoint = { type: 'Point', coordinates: [point.x, point.y] };\n const jstsPoint = geojsonReader.read(jPoint);\n const jstsPoly = geojsonReader.read({ type: 'Polygon', coordinates: polygon });\n const isWithin: boolean = jstsPoint.within(jstsPoly);\n return isWithin;\n };\n\n public static buffer = (geoInput: Array, spacing: number) => {\n const geometryFactory = JstsUtils.GeometryFactory();\n const shell = geometryFactory.createPolygon(geoInput);\n const bufferParameters = new jsts.operation.buffer.BufferParameters();\n bufferParameters.setJoinStyle(jsts.operation.buffer.BufferParameters.CAP_FLAT);\n const buffer = new jsts.operation.buffer.BufferOp(shell, bufferParameters);\n return buffer.getResultGeometry(spacing);\n };\n}\n","// * Magnetized walls (snap to wall) with anchor lines\nimport { AnchorLine, useGestureContext } from '../Context/GestureContext';\nimport { useMapContext } from '../Context/MapContext';\nimport { IRoom } from '../Models/IRoom';\nimport { qSVG } from './qSVG';\nimport { CoordPoint, SnapGesture, Wall } from './Types';\nimport { WallUtils } from './Wall/WallUtils';\n\nexport type WallDirection = { direction: string; x?: number; y?: number };\n\nconst MAGNETIZE_SENSIBILITY = 10;\n\nfunction toVerticalAnchorLine(x: number, id: string) {\n const anchorLine: AnchorLine = { id, start: { x, y: 0 }, end: { x, y: 15000 } };\n return anchorLine;\n}\n\nfunction toHorizontalAnchorLine(y: number, id: string) {\n const anchorLine: AnchorLine = { id, start: { x: 0, y }, end: { x: 10000, y } };\n return anchorLine;\n}\n\nexport const useMagnetize = () => {\n const gesture = useGestureContext();\n const map = useMapContext();\n const magnetizedWalls = (\n snap: CoordPoint,\n bindedWall: Wall | { start: CoordPoint; end: CoordPoint; angle: number; roomId: undefined },\n walls: Array,\n withAnchorLines: boolean = true\n ): WallDirection | undefined => {\n const rooms = map.getState().rooms;\n const type = rooms?.find((x) => x.roomId === bindedWall.roomId)?.type;\n const roomsToUse = bindedWall.roomId\n ? rooms?.filter((x) => x.roomId !== bindedWall.roomId && x.type === type)\n : rooms;\n for (const wall of walls.filter((x) => roomsToUse?.some((r) => r.roomId === x.roomId))) {\n //* diagonal angles are not supported\n const wallDirection = WallUtils.angleDirection(qSVG.angleRadToDeg(wall.angle));\n const bindedWallDirection = WallUtils.angleDirection(qSVG.angleRadToDeg(bindedWall.angle));\n\n if (wallDirection === bindedWallDirection) {\n if (\n wallDirection === 'v' &&\n snap.x - MAGNETIZE_SENSIBILITY < wall.start.x &&\n snap.x + MAGNETIZE_SENSIBILITY > wall.start.x\n ) {\n //! vertical : color line markup\n if (withAnchorLines) {\n const anchorLineId = 'anchor¤' + wall.roomId + '¤' + wall.sideName;\n gesture.update({ verticalAnchorLine: toVerticalAnchorLine(wall.start.x, anchorLineId) });\n }\n\n const offsetSnap = { direction: 'v', x: wall.start.x };\n return offsetSnap;\n } else if (\n wallDirection === 'h' &&\n snap.y - MAGNETIZE_SENSIBILITY < wall.start.y &&\n snap.y + MAGNETIZE_SENSIBILITY > wall.start.y\n ) {\n //! horizontal : color line markup\n if (withAnchorLines) {\n const anchorLineId = 'anchor¤' + wall.roomId + '¤' + wall.sideName;\n gesture.update({ horizontalAnchorLine: toHorizontalAnchorLine(wall.start.y, anchorLineId) });\n }\n\n const offsetSnap = { direction: 'h', y: wall.start.y };\n return offsetSnap;\n } else {\n gesture.clearAnchorLines();\n }\n }\n }\n return undefined;\n };\n\n // * Magnetized rooms (snap to wall) with anchor lines\n\n // * Description :\n // * Cette méthode renvoie un nouveau snap, qui doit être utiliser pour overrider le snap courant.\n // * Si la pièce n'est pas déplacée dans l'interval de sensibilité (MAGNETIZE_SENSIBILITY) d'un mur d'une autre pièce, les propriétés (x ou y) de forcedSnap sont undefined.\n\n // * Réalise un tri des murs de la pièce séléctionnée : murs verticaux et murs horizontaux (bindedRoomHorizontalWalls, bindedRoomHorizontalWalls)\n // * On regarde les murs des autres pièces,\n // * on prend le mur qui est le plus proche verticalement ou horizontalement dans les liste bindedRoomVerticalWalls ou bindedRoomHorizontalWalls\n // * on regarde si le mur qu'on a pris précédement rentre dans l'interval de sensibilité (MAGNETIZE_SENSIBILITY)\n // * si c'est le cas on sauvegarde sa coordonnée verticale ou horizontale et on calcul un nouveau snap : forceSnap\n\n const magnetizedRooms = (\n snap: CoordPoint,\n bindedRoom: IRoom | { walls: Wall[]; roomId: undefined; type: undefined },\n translation: CoordPoint,\n initialSnapPosition: CoordPoint,\n rooms: IRoom[],\n withAnchorLines: boolean = true\n ) => {\n const bindedRoomWalls = bindedRoom.walls || [];\n const bindedRoomVerticalWalls = bindedRoomWalls.filter(\n (x) => WallUtils.angleDirection(qSVG.angleRadToDeg(x.angle)) === 'v'\n );\n const bindedRoomHorizontalWalls = bindedRoomWalls.filter(\n (x) => WallUtils.angleDirection(qSVG.angleRadToDeg(x.angle)) === 'h'\n );\n\n let forcedSnapVertical;\n let forcedSnapHorizontal;\n let closestWallV: Wall;\n let closestWallH: Wall;\n let translateX: number, translateY: number;\n\n gesture.clearAnchorLines();\n\n const roomsFiltred =\n bindedRoom.roomId && bindedRoom.type\n ? rooms.filter((r) => r.type === bindedRoom.type && r.roomId !== bindedRoom.roomId)\n : rooms;\n for (const room of roomsFiltred) {\n const roomWalls = room.walls || [];\n for (const wall of roomWalls) {\n const wallDirection = WallUtils.angleDirection(qSVG.angleRadToDeg(wall.angle));\n if (wallDirection === 'v') {\n closestWallV = bindedRoomVerticalWalls.reduce((previousWall, currentWall) => {\n if (\n Math.abs(previousWall.start.x + translation.x - wall.start.x) <\n Math.abs(currentWall.start.x + translation.x - wall.start.x)\n ) {\n return previousWall;\n } else {\n return currentWall;\n }\n });\n\n translateX = snap.x - initialSnapPosition.x;\n if (Math.abs(closestWallV.start.x + translateX - wall.start.x) < MAGNETIZE_SENSIBILITY) {\n if (withAnchorLines) {\n const anchorLineId = 'anchor¤' + wall.roomId + '¤' + wall.sideName;\n gesture.update({ verticalAnchorLine: toVerticalAnchorLine(wall.start.x, anchorLineId) });\n }\n forcedSnapVertical = wall.start.x - closestWallV.start.x + initialSnapPosition.x;\n }\n } else if (wallDirection === 'h') {\n closestWallH = bindedRoomHorizontalWalls.reduce((previousWall, currentWall) => {\n if (\n Math.abs(previousWall.start.y + translation.y - wall.start.y) <\n Math.abs(currentWall.start.y + translation.y - wall.start.y)\n ) {\n return previousWall;\n } else {\n return currentWall;\n }\n });\n translateY = snap.y - initialSnapPosition.y;\n\n if (Math.abs(closestWallH.start.y + translateY - wall.start.y) < MAGNETIZE_SENSIBILITY) {\n if (withAnchorLines) {\n const anchorLineId = 'anchor¤' + wall.roomId + '¤' + wall.sideName;\n gesture.update({\n horizontalAnchorLine: toHorizontalAnchorLine(wall.start.y, anchorLineId),\n });\n }\n forcedSnapHorizontal = wall.start.y - closestWallH.start.y + initialSnapPosition.y;\n }\n }\n }\n }\n const forcedSnap = { x: forcedSnapVertical, y: forcedSnapHorizontal };\n return forcedSnap;\n };\n\n return { magnetizedWalls, magnetizedRooms };\n};\n","import { MapConstants } from '../../MapConstants';\nimport { IOpening } from '../../Models/IOpening';\nimport { IRoom } from '../../Models/IRoom';\nimport { Editor } from '../Editor';\nimport { PointUtils } from '../PointUtils';\nimport { qSVG } from '../qSVG';\nimport { CoordPoint, Wall, WallSelected } from '../Types';\nimport { WallUtils } from '../Wall/WallUtils';\n\ntype WellSelect = { wall: Wall; x: number; y: number };\n\nexport class OpeningUtils {\n public static isOverOtherOpening = (openings: IOpening[], openingLimits: CoordPoint[], openingId?: string) => {\n for (const opening of openings) {\n if (\n opening.openingId !== openingId &&\n opening.limit?.length &&\n ((qSVG.btwn(openingLimits[0].x, opening.limit![0].x, opening.limit![1].x) &&\n qSVG.btwn(openingLimits[0].y, opening.limit![0].y, opening.limit![1].y)) ||\n (qSVG.btwn(openingLimits[1].x, opening.limit![0].x, opening.limit![1].x) &&\n qSVG.btwn(openingLimits[1].y, opening.limit![0].y, opening.limit![1].y)) ||\n (qSVG.btwn(opening.limit![0].x, openingLimits[0].x, openingLimits[1].x) &&\n qSVG.btwn(opening.limit![0].y, openingLimits[0].y, openingLimits[1].y)) ||\n (qSVG.btwn(opening.limit![1].x, openingLimits[0].x, openingLimits[1].x) &&\n qSVG.btwn(opening.limit![1].y, openingLimits[0].y, openingLimits[1].y)))\n ) {\n return opening;\n }\n }\n return undefined;\n };\n\n public static placeNextToOtherOpening = (binderOpening: IOpening, wallSelect: any, pressedOpening?: IOpening) => {\n if (pressedOpening) {\n const openingPosition = PointUtils.limitObj(\n wallSelect.wall.equations.base,\n pressedOpening.size! + binderOpening.size!,\n pressedOpening as CoordPoint\n );\n return qSVG.measure(openingPosition[0], wallSelect) < qSVG.measure(openingPosition[1], wallSelect)\n ? openingPosition[0]\n : openingPosition[1];\n }\n return { x: wallSelect.x, y: wallSelect.y };\n };\n\n public static setOpeningAngleWall = (opening: IOpening) => {\n if (opening.limit?.length) {\n const [limitStart, limitEnd] = opening.limit;\n opening.angle = (Math.atan2(limitEnd.y - limitStart.y, limitEnd.x - limitStart.x) * 180) / Math.PI;\n }\n };\n\n public static openingModePlacement(\n wallSelect: WallSelected,\n placingOpening: IOpening,\n openings: Array\n ): { placingOpening: IOpening; success?: boolean } {\n const placingOpeningOld: Partial = {\n x: placingOpening.x,\n y: placingOpening.y,\n limit: placingOpening.limit,\n };\n const wall = wallSelect.wall!;\n const wallSize = WallUtils.wallSize(wall);\n const openingsInWall = Editor.objFromWall(wall, openings);\n\n let success = false;\n\n if (placingOpening.size && wallSize >= placingOpening.size) {\n let limits = PointUtils.limitObj(\n (wall as Wall).equations.base,\n placingOpening.size,\n wallSelect as CoordPoint\n );\n const pressedOpening = OpeningUtils.isOverOtherOpening(openingsInWall, limits, placingOpening.openingId);\n //const pressedOpening = OpeningUtils.isOverOtherOpening(openings, limits, placingOpening.openingId);\n if (!pressedOpening) {\n if (\n qSVG.btwn(limits[0].x, wall.start.x, wall.end.x, false, 0.5) &&\n qSVG.btwn(limits[0].y, wall.start.y, wall.end.y, false, 0.5) &&\n qSVG.btwn(limits[1].x, wall.start.x, wall.end.x, false, 0.5) &&\n qSVG.btwn(limits[1].y, wall.start.y, wall.end.y, false, 0.5)\n ) {\n placingOpening.x = wallSelect.x!;\n placingOpening.y = wallSelect.y!;\n placingOpening.limit = PointUtils.limitObj(\n (wall as Wall).equations.base,\n placingOpening.size,\n placingOpening as CoordPoint\n );\n success = true;\n }\n if (\n (wallSelect.x === wall.start.x && wallSelect.y === wall.start.y) ||\n (wallSelect.x === wall.end.x && wallSelect.y === wall.end.y)\n ) {\n if (\n qSVG.btwn(limits[0].x, wall.start.x, wall.end.x, false, 0.5) &&\n qSVG.btwn(limits[0].y, wall.start.y, wall.end.y, false, 0.5)\n ) {\n placingOpening.x = limits[0].x;\n placingOpening.y = limits[0].y;\n placingOpening.limit = PointUtils.limitObj(\n (wall as Wall).equations.base,\n placingOpening.size,\n placingOpening as CoordPoint\n );\n success = true;\n }\n\n if (\n qSVG.btwn(limits[1].x, wall.start.x, wall.end.x, false, 0.5) &&\n qSVG.btwn(limits[1].y, wall.start.y, wall.end.y, false, 0.5)\n ) {\n placingOpening.x = limits[1].x;\n placingOpening.y = limits[1].y;\n placingOpening.limit = PointUtils.limitObj(\n (wall as Wall).equations.base,\n placingOpening.size,\n placingOpening as CoordPoint\n );\n success = true;\n }\n\n const pressedOpening = OpeningUtils.isOverOtherOpening(\n openingsInWall,\n placingOpening.limit!,\n placingOpening.openingId\n );\n if (pressedOpening) {\n success = false;\n }\n }\n\n if (!success) {\n limits = [wall.start, wall.end];\n const [limitStart, limitEnd] = limits;\n if (limitStart && limitEnd) {\n const equation = (wall as Wall).equations.base;\n const Aq = equation.A;\n if (Aq === 'h') {\n //* WALL TOPSIDE\n if (limitEnd.x > limitStart.x) {\n const distanceToLeft = wallSelect.x! - limitStart.x;\n const distanceToRight = limitEnd.x - wallSelect.x!;\n const isLeft = distanceToLeft < distanceToRight;\n if (isLeft) {\n placingOpening.x = limitStart.x + placingOpening.size / 2; //* WALL TOPSIDE LEFT\n } else {\n placingOpening.x = limitEnd.x - placingOpening.size / 2; //* WALL TOPSIDE RIGHT\n }\n } else {\n //* WALL BOTTOMSIDE\n const distanceToLeft = wallSelect.x! - limitStart.x;\n const distanceToRight = limitEnd.x - wallSelect.x!;\n const isLeft = distanceToLeft < distanceToRight;\n if (isLeft) {\n placingOpening.x = limitEnd.x + placingOpening.size / 2; //* WALL BOTTOMSIDE LEFT\n } else {\n placingOpening.x = limitStart.x - placingOpening.size / 2; //* WALL BOTTOMSIDE RIGHT\n }\n }\n placingOpening.y = wallSelect.y;\n placingOpening.limit = PointUtils.limitObj(\n (wall as Wall).equations.base,\n placingOpening.size,\n placingOpening as CoordPoint\n );\n success = true;\n }\n\n if (Aq === 'v') {\n //* WALL RIGHTSIDE\n if (limitEnd.y > limitStart.y) {\n const distanceToTop = wallSelect.y! - limitStart.y;\n const distanceToBottom = limitEnd.y - wallSelect.y!;\n const isTop = distanceToTop < distanceToBottom;\n if (isTop) {\n placingOpening.y = limitStart.y + placingOpening.size / 2; //* WALL RIGHTSIDE TOP\n } else {\n placingOpening.y = limitEnd.y - placingOpening.size / 2; //* WALL RIGHTSIDE BOTTOM\n }\n } else {\n //* WALL LEFTSIDE\n const distanceToTop = wallSelect.y! - limitEnd.y;\n const distanceToBottom = limitStart.y - wallSelect.y!;\n const isTop = distanceToTop < distanceToBottom;\n if (isTop) {\n placingOpening.y = limitEnd.y + placingOpening.size / 2; //* WALL LEFTSIDE TOP\n } else {\n placingOpening.y = limitStart.y - placingOpening.size / 2; //* WALL LEFTSIDE BOTOM\n }\n }\n\n placingOpening.x = wallSelect.x;\n placingOpening.limit = PointUtils.limitObj(\n (wall as Wall).equations.base,\n placingOpening.size,\n placingOpening as CoordPoint\n );\n success = true;\n }\n\n const pressedOpening = OpeningUtils.isOverOtherOpening(\n openingsInWall,\n limits,\n placingOpening.openingId\n );\n if (pressedOpening) {\n success = false;\n }\n }\n }\n }\n }\n\n if (!success) {\n placingOpening.x = placingOpeningOld.x;\n placingOpening.y = placingOpeningOld.y;\n placingOpening.limit = placingOpeningOld.limit;\n }\n this.setOpeningAngleWall(placingOpening);\n return { placingOpening, success };\n }\n\n //* usefull if an opening is stuck out of a wall */\n public static resetOpeningsPlacement = (openings: Array, walls: Array): IOpening[] => {\n //Reset opening position\n openings.forEach((opening) => {\n const nearWall = WallUtils.nearWall(walls, opening as CoordPoint, Infinity, opening.roomId)!;\n if (nearWall && nearWall.distance !== 0) {\n opening.x = nearWall.x;\n opening.y = nearWall.y;\n opening.angle = qSVG.angleRadToDeg((nearWall.wall as Wall).angle);\n }\n });\n\n return openings;\n };\n\n //old name : exportOpenings\n\n public static exportOpenings = (openings: Array = [], rooms: Array = []): Array => {\n openings.forEach((opening) => {\n const room = rooms.find((x) => x.roomId === opening.roomId)!;\n\n\n Array.from(room.walls!).forEach((side) => {\n const objFromWall = Editor.objFromWall(side as Wall, openings).find(\n (o) => o.openingId === opening.openingId\n );\n const isInlist = Boolean(opening.roomId === room.roomId && opening.limit && objFromWall);\n if (isInlist) {\n opening.location_side = side.sideName;\n opening.location_position_from_edge =\n PointUtils.distanceBetweenPoints(side.start, { x: opening.x!, y: opening.y! }) /\n MapConstants.meter;\n }\n });\n });\n\n return openings;\n };\n\n public static updateRoomOpenings = (room: IRoom, openings: Array) => {\n const updatedOpenings: Array = [];\n const roomOpenings: Array = [];\n\n const meter = MapConstants.meter;\n\n if (openings.length) {\n openings.forEach((opening) => {\n Array.from(room.walls!)\n .filter((side) => {\n const objFromWall = Editor.objFromWall(side as Wall, openings).find(\n (o) => o.openingId === opening.openingId\n );\n const isInlist = Boolean(opening.roomId === room.roomId && opening.limit && objFromWall);\n return isInlist;\n })\n .forEach((side) => {\n updatedOpenings.push({\n ...opening,\n location_position_from_edge:\n PointUtils.distanceBetweenPoints(side.start, { x: opening.x!, y: opening.y! }) / meter,\n });\n roomOpenings.push(opening);\n });\n });\n }\n room.openings = roomOpenings;\n return updatedOpenings;\n };\n //* when duplicate room (opening position are not fixed)\n public static fixPositionOpenings = (room: IRoom, openings: Array = [], walls: Array = []) => {\n const fixPosition = (opening: IOpening, wallSelect: WellSelect) => {\n const wall = wallSelect.wall;\n const limits = PointUtils.limitObj(wall.equations.base, opening.size!, wallSelect);\n const angleWall = qSVG.angleDeg(wall.start.x, wall.start.y, wall.end.x, wall.end.y);\n opening.x = wallSelect.x;\n opening.y = wallSelect.y;\n opening.angle = angleWall;\n opening.limit = limits;\n };\n\n const meter = MapConstants.meter;\n\n const sides = new Map();\n for (const wall of walls) {\n sides.set(wall.sideName!, [wall.start, wall.end]);\n }\n for (const opening of room.openings || []) {\n const location_side = opening.location_side!;\n const wallFound = walls.find(\n (x) =>\n (sides.get(location_side)?.[0] === x.start || sides.get(location_side)?.[0] === x.end) &&\n (sides.get(location_side)?.[1] === x.start || sides.get(location_side)?.[1] === x.end)\n ); //!TLE TODO handle line with 2 same points\n\n if (wallFound) {\n const ratio =\n (opening.location_position_from_edge! * meter) /\n PointUtils.distanceBetweenPoints(sides.get(location_side)![0], sides.get(location_side)![1]);\n const xCenterObj =\n (1 - ratio) * sides.get(location_side)![0].x + ratio * sides.get(location_side)![1].x;\n const yCenterObj =\n (1 - ratio) * sides.get(location_side)![0].y + ratio * sides.get(location_side)![1].y;\n\n fixPosition(opening, { wall: wallFound, x: xCenterObj, y: yCenterObj });\n }\n }\n return openings;\n };\n\n\n public static getContiguousRoomIds = (point: CoordPoint, walls: Wall[]) => {\n const roomIds = walls.filter(wall => Editor.testPointBelongToWall(wall, point)).map(wall => wall.roomId!);\n return roomIds;\n }\n}\n","import _ from 'lodash';\n\nimport { ILaizeRoom } from '../Components/Laizes/LaizeCalc';\nimport { MapConstants } from '../MapConstants';\nimport { IRoomItem } from '../Models/IRoomItem';\nimport { Editor } from './Editor';\nimport { JstsPolygon, JstsUtils } from './JstsUtils';\nimport { qSVG } from './qSVG';\nimport { BoundingBox, CoordPoint, Equation, LineSegment, RotationParams, Wall, WallLine, WallWithCorrection } from './Types';\nimport { WallUtils } from './Wall/WallUtils';\n\ntype BoundingBoxParams = {\n walls?: Array;\n points?: Array;\n roomItems?: Array;\n includeBands?: Array;\n};\n\nconst reducer = (accumulator: number, currentValue: number) => accumulator + currentValue;\n\nexport class PointUtils {\n public static toPosition = (coord: CoordPoint, round?: boolean): CoordPoint | undefined => {\n if (coord.x && coord.y) {\n return {\n x: round ? Math.round(coord.x) : coord.x,\n y: round ? Math.round(coord.y) : coord.y\n };\n }\n return undefined;\n };\n\n public static translationByMeanPoint(points: Array, destinationPoint: CoordPoint, opposite?: boolean) {\n const mp = this.meanPoint(points);\n\n points.forEach((point) => {\n const newPoints = !opposite\n ? {\n x: point.x + destinationPoint.x - mp.x,\n y: point.y + destinationPoint.y - mp.y,\n }\n : {\n x: point.x - destinationPoint.x + mp.x,\n y: point.y - destinationPoint.y + mp.y,\n };\n point.x = newPoints.x;\n point.y = newPoints.y;\n });\n }\n\n public static meanPoint(points: Array) {\n return {\n x: Array.from(points, (p) => p.x).reduce(reducer) / points.length,\n y: Array.from(points, (p) => p.y).reduce(reducer) / points.length,\n };\n }\n\n public static convertToCoordinates(point: CoordPoint, roundPoints?: boolean) {\n const meter = MapConstants.meter;\n if (roundPoints) {\n point.x = Math.round(point.x * meter);\n point.y = Math.round(point.y * meter);\n } else {\n point.x *= meter;\n point.y *= meter;\n }\n return point;\n }\n\n public static placeToZero(points: Array) {\n const topLeftCorner = {\n x: Math.abs(Math.min(...points.map((point) => point.x))),\n y: Math.abs(Math.min(...points.map((point) => point.y))),\n };\n\n if (topLeftCorner.x !== 0 || topLeftCorner.y !== 0) {\n points.forEach((point) => {\n const newPoint = this.translation(point, topLeftCorner);\n point.x = newPoint.x;\n point.y = newPoint.y;\n });\n }\n }\n\n public static translation(point: CoordPoint, vector: CoordPoint, opposite?: boolean) {\n const newPoints = !opposite\n ? {\n x: point.x + vector.x,\n y: point.y + vector.y,\n }\n : {\n x: point.x - vector.x,\n y: point.y - vector.y,\n };\n return newPoints;\n }\n\n public static placeAlongSideExistingRooms(points: Array, walls: Array) {\n const meter = MapConstants.meter;\n const boundingBox = this.calculateBoundingBox({ walls });\n\n const topRightBoundingBox = boundingBox\n ? { x: boundingBox.xMax, y: boundingBox.yMin }\n : { x: 40 * meter, y: 80 * meter };\n\n topRightBoundingBox.x += MapConstants.roomDefaultSpacing;\n\n points.forEach((point) => {\n const newPoint = this.translation(point, topRightBoundingBox);\n point.x = newPoint.x;\n point.y = newPoint.y;\n });\n }\n\n // /**\n // * Determines maximums and minimums on the x and y axis for a series of points.\n // * @param {*} points If left undefined, uses WALLS starting points.\n // * @returns BoundingBox: {xMin: number, xMax: number, yMin: number, yMax: number}\n // */\n // public static calculateBoundingBox(walls: Array, roomItems: Array = [], points?: Array, includeRoomItems = false): BoundingBox | undefined {\n // let allPoints: Array = [];\n\n // if (!points) {\n // walls.forEach((wall) => allPoints.push(wall.start));\n\n // if (includeRoomItems) {\n // roomItems.forEach((roomItem: IRoomItem) => {\n // if (roomItem.isMoveableOutside) {\n // roomItem.coordsReal?.forEach((coord) => allPoints.push(coord));\n // }\n // });\n // }\n // } else {\n // allPoints = points;\n // }\n\n // const xSeries = allPoints.map((point) => point.x);\n // const ySeries = allPoints.map((point) => point.y);\n\n // return xSeries.length > 0 && ySeries.length > 0\n // ? {\n // xMin: Math.min(...xSeries),\n // xMax: Math.max(...xSeries),\n // yMin: Math.min(...ySeries),\n // yMax: Math.max(...ySeries),\n // }\n // : undefined;\n // }\n\n /**\n * Determines maximums and minimums on the x and y axis for a series of points.\n * @param {*} points If left undefined, uses WALLS starting points.\n * @returns {} {xMin: number, xMax: number, yMin: number, yMax: number}\n */\n public static calculateBoundingBox({\n points,\n walls = [],\n roomItems,\n includeBands,\n }: BoundingBoxParams): BoundingBox | undefined {\n let allPoints = [];\n if (!points) {\n walls.forEach((wall) => allPoints.push(wall.start));\n if (roomItems) {\n roomItems.forEach((roomItem) => {\n if (roomItem.isMoveableOutside) {\n roomItem.coordsReal?.forEach((coord) => allPoints.push(coord));\n }\n });\n }\n if (includeBands) {\n allPoints.push(...includeBands);\n }\n } else {\n allPoints = points;\n }\n\n const xSeries = allPoints.map((point) => point.x);\n const ySeries = allPoints.map((point) => point.y);\n\n return xSeries.length > 0 && ySeries.length > 0\n ? {\n xMin: Math.min(...xSeries),\n xMax: Math.max(...xSeries),\n yMin: Math.min(...ySeries),\n yMax: Math.max(...ySeries),\n }\n : undefined;\n }\n\n public static increaseBoundingBox(boundingBox: BoundingBox, size: number) {\n return {\n xMin: boundingBox.xMin - size,\n xMax: boundingBox.xMax + size,\n yMin: boundingBox.yMin - size,\n yMax: boundingBox.yMax + size,\n };\n }\n\n public static isInsideBoundingBox(point: CoordPoint, boundingBox: BoundingBox) {\n return (\n point.x >= boundingBox.xMin &&\n point.x <= boundingBox.xMax &&\n point.y >= boundingBox.yMin &&\n point.y <= boundingBox.yMax\n );\n }\n\n public static smoothOutPoints(points: Array) {\n for (const point of points) {\n this.smoothOutPoint(point);\n }\n }\n\n public static smoothOutPoint(point: CoordPoint) {\n point.x = _.round(point.x, 1);\n point.y = _.round(point.y, 1);\n }\n\n public static degreeToRad(degrees: number) {\n return degrees * (Math.PI / 180);\n }\n\n public static distanceBetweenPoints(pointA: CoordPoint, pointB: CoordPoint) {\n return Math.sqrt(Math.pow(pointB.x - pointA.x, 2) + Math.pow(pointB.y - pointA.y, 2));\n }\n\n public static inflatePolygon(poly: Array = [], spacing: number) {\n const geoInput = JstsUtils.vectorCoordinates2JTS(poly);\n geoInput.push(geoInput[0]);\n const polygon = JstsUtils.buffer(geoInput, spacing);\n let inflatedCoordinates: Array = [];\n const coordinates = polygon.getCoordinates();\n\n for (let i = 0; i < coordinates.length; i++) {\n const point = coordinates[i];\n inflatedCoordinates.push({ x: point.x, y: point.y });\n }\n return inflatedCoordinates;\n }\n\n public static limitObj = (\n equation: Equation,\n size: number,\n coords: CoordPoint,\n message?: string\n ): Array => {\n //equation à fix lorsqu'une ouverture est sur un angle\n if (message) console.log(message);\n const Px = coords.x;\n const Py = coords.y;\n const Aq = equation.A;\n const Bq = equation.B;\n\n let pos1;\n let pos2;\n if (Aq === 'v') {\n pos1 = { x: Px, y: Py - size / 2 };\n pos2 = { x: Px, y: Py + size / 2 };\n } else if (Aq === 'h') {\n pos1 = { x: Px - size / 2, y: Py };\n pos2 = { x: Px + size / 2, y: Py };\n } else {\n const A = 1 + Aq * Aq;\n const B = -2 * Px + 2 * Aq * Bq + -2 * Py * Aq;\n const C = Px * Px + Bq * Bq - 2 * Py * Bq + Py * Py - (size * size) / 4; // -N\n const Delta = B * B - 4 * A * C;\n const posX1 = (-B - Math.sqrt(Delta)) / (2 * A);\n const posX2 = (-B + Math.sqrt(Delta)) / (2 * A);\n pos1 = { x: posX1, y: Aq * posX1 + Bq };\n pos2 = { x: posX2, y: Aq * posX2 + Bq };\n }\n return [pos1, pos2];\n };\n\n public static getSupperposedPoints(points: Array): CoordPoint | undefined {\n for (let i = 0; i < points.length; i++) {\n for (let j = 0; j < points.length; j++) {\n if (i !== j && points[i].x === points[j].x && points[i].y === points[j].y) {\n return points[i];\n }\n }\n }\n return undefined;\n }\n\n public static rotation(points: Array, degrees: number, rotationCenter: CoordPoint = { x: 0, y: 0 }) {\n const rad = this.degreeToRad(degrees);\n points.forEach((point) => {\n const tPoint = {\n x: point.x - rotationCenter.x,\n y: point.y - rotationCenter.y,\n };\n\n const newPoints = {\n x: tPoint.x * Math.cos(rad) - tPoint.y * Math.sin(rad) + rotationCenter.x,\n y: tPoint.x * Math.sin(rad) + tPoint.y * Math.cos(rad) + rotationCenter.y,\n };\n point.x = newPoints.x;\n point.y = newPoints.y;\n });\n }\n\n public static intersect(l1: LineSegment, l2: LineSegment) {\n // Check if none of the lines are of length 0\n if ((l1.p1.x === l1.p2.x && l1.p1.y === l1.p2.y) || (l2.p1.x === l2.p2.x && l2.p1.y === l2.p2.y)) {\n return false;\n }\n\n const denominator = (l2.p2.y - l2.p1.y) * (l1.p2.x - l1.p1.x) - (l2.p2.x - l2.p1.x) * (l1.p2.y - l1.p1.y);\n\n // Lines are parallel\n if (denominator === 0) {\n return false;\n }\n\n let ua = ((l2.p2.x - l2.p1.x) * (l1.p1.y - l2.p1.y) - (l2.p2.y - l2.p1.y) * (l1.p1.x - l2.p1.x)) / denominator;\n let ub = ((l1.p2.x - l1.p1.x) * (l1.p1.y - l2.p1.y) - (l1.p2.y - l1.p1.y) * (l1.p1.x - l2.p1.x)) / denominator;\n\n // is the intersection along the segments\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) {\n return false;\n }\n\n // Return a object with the x and y coordinates of the intersection\n let x = l1.p1.x + ua * (l1.p2.x - l1.p1.x);\n let y = l1.p1.y + ua * (l1.p2.y - l1.p1.y);\n\n return { x, y };\n }\n\n public static inflatePolygonHV(\n poly: Array,\n horizontalSpacing: number,\n verticalSpacing: number,\n wallsWithCorrection?: Array,\n color?: string\n ) {\n // var offset = new Offset();\n // var horizontalPolygon = offset.data(poly.map(p => [p.x, p.y])).padding(horizontalSpacing)[0].map(p => ({x: p[0], y: p[1]})).reverse();\n // var verticalPolygon = offset.data(poly.map(p => [p.x, p.y])).padding(verticalSpacing)[0].map(p => ({x: p[0], y: p[1]})).reverse();\n\n // Avoids a bug when spacing = 0\n if (verticalSpacing === 0) {\n verticalSpacing += 0.0001;\n }\n if (horizontalSpacing === 0) {\n horizontalSpacing += 0.0001;\n }\n\n const horizontalPolygon = this.inflatePolygon(poly, horizontalSpacing).reverse();\n const verticalPolygon = this.inflatePolygon(poly, verticalSpacing).reverse();\n\n let mergedPolygon = [];\n for (let i = 0; i < horizontalPolygon.length; i++) {\n const v = Math.abs(verticalSpacing); //1\n console.log('mergedPolygon a', { horizontalPolygon, verticalPolygon, poly, i })\n\n //if (i <= verticalPolygon.length) {\n const vDiff = Math.abs(poly[i].y - verticalPolygon[i].y); //0.5\n console.log('mergedPolygon b', { vDiff })\n if (vDiff < v) {\n if (poly[i].y < verticalPolygon[i].y) {\n verticalPolygon[i].y += v - vDiff;\n } else {\n verticalPolygon[i].y -= v - vDiff;\n }\n }\n //}\n\n const h = Math.abs(horizontalSpacing); //1\n const hDiff = Math.abs(Math.abs(poly[i].x) - Math.abs(horizontalPolygon[i].x)); //0.5\n if (hDiff < h) {\n if (poly[i].x < horizontalPolygon[i].x) {\n horizontalPolygon[i].x += h - hDiff;\n } else {\n horizontalPolygon[i].x -= h - hDiff;\n }\n }\n\n if (wallsWithCorrection && wallsWithCorrection.length) {\n for (const wallWithCorrection of wallsWithCorrection) {\n if (Editor.testPointBelongToWall(wallWithCorrection.wall, poly[i])) {\n const direction = WallUtils.wallDirection(wallWithCorrection.wall);\n let correction = wallWithCorrection.correction;\n if (direction === 'h') {\n if (verticalSpacing < 0) {\n correction = -correction;\n }\n if (poly[i].y < verticalPolygon[i].y) {\n // BOTTOM walls\n verticalPolygon[i].y += correction;\n } else {\n // TOP walls\n verticalPolygon[i].y -= correction;\n }\n } else if (direction === 'v') {\n if (horizontalSpacing < 0) {\n correction = -correction;\n }\n if (poly[i].x < horizontalPolygon[i].x) {\n // RIGHT walls\n horizontalPolygon[i].x += correction;\n } else {\n // LEFT walls\n horizontalPolygon[i].x -= correction;\n }\n }\n }\n }\n }\n\n mergedPolygon.push({ x: horizontalPolygon[i].x, y: verticalPolygon[i].y });\n }\n\n return mergedPolygon;\n }\n\n /**\n * Returns true if the two polygons intersect. If the polygons are next to each other\n * and their only intersection is a line, returns false.\n */\n public static testPolygonsIntersect = (polyA: Array = [], polyB: Array = []) => {\n const intersection = this.calcIntersection(polyA, polyB);\n return intersection?.getCoordinates()?.length > 2;\n };\n\n /** Returns the jsts intersection object of the two polygons */\n public static calcIntersection = (polyA: Array, polyB: Array) => {\n const geometryFactory = JstsUtils.GeometryFactory();\n\n const geoInputPolyA = JstsUtils.vectorCoordinates2JTS(polyA);\n geoInputPolyA.push(geoInputPolyA[0]);\n const jstsPolyA = geometryFactory.createPolygon(geoInputPolyA);\n\n const geoInputPolyB = JstsUtils.vectorCoordinates2JTS(polyB);\n geoInputPolyB.push(geoInputPolyB[0]);\n const jstsPolyB = geometryFactory.createPolygon(geoInputPolyB);\n\n return jstsPolyA.intersection(jstsPolyB);\n };\n\n /** Returns true if the point is within the room (including on the room's walls). */\n public static testPointWithinRoom = (point: CoordPoint, room: ILaizeRoom) => {\n const polygon = [room.coords!.map((point) => [point.x, point.y])];\n const isWithin = JstsUtils.within(point, polygon);\n let isOnWall = false;\n room.walls?.every((wall) => {\n if (Editor.testPointBelongToWall(wall, point)) {\n isOnWall = true;\n return false;\n }\n return true;\n });\n return isWithin || isOnWall;\n };\n\n public static getClosestPointIndex(point: CoordPoint, list: Array) {\n let distance = Infinity;\n let closestPoint: CoordPoint;\n for (const lp of list) {\n const measure = qSVG.measure(lp, point);\n if (measure < distance) {\n distance = measure;\n closestPoint = lp;\n }\n distance = measure < distance ? measure : distance;\n }\n return { closestPointDistance: distance, closestPointIndex: list.indexOf(closestPoint!) }; //list.sort((a, b) => Math.abs(number - a) - Math.abs(number - b))[0];\n }\n\n public static bboxCenter(points: Array) {\n const bbox = this.calculateBoundingBox({ points })!;\n return { x: (bbox.xMin + bbox.xMax) / 2, y: (bbox.yMin + bbox.yMax) / 2 };\n }\n\n /**\n * Gets the coordinates of a polygon that has multiple geometries.\n * (Happens when the intersection between two polygons results in more than one polygon).\n * @param {*} multiPoly\n * @returns\n */\n public static getMultiPolyCoords(multiPoly: JstsPolygon) {\n const multiPolyCoords: Array = [];\n for (let i = 0; i < multiPoly.getNumGeometries(); i++) {\n const subIntersection = multiPoly.getGeometryN(i);\n const subIntersectionCoords = subIntersection.getCoordinates();\n for (let j = 0; j < subIntersectionCoords.length; j++) {\n multiPolyCoords.push({\n x: subIntersectionCoords[j].x,\n y: subIntersectionCoords[j].y,\n });\n }\n }\n return multiPolyCoords;\n }\n\n public static testPointWithinPolygonWithoutWalls(point: CoordPoint, polygon: JstsPolygon, geometryFactory: any) {\n return polygon.contains(geometryFactory.createPoint(point));\n }\n\n public static testPointWithinPolygon(point: CoordPoint, polygon: JstsPolygon, geometryFactory?: any) {\n if (!geometryFactory) {\n geometryFactory = JstsUtils.GeometryFactory();\n }\n\n const isContained = PointUtils.testPointWithinPolygonWithoutWalls(point, polygon, geometryFactory);\n\n const polyWalls = this.toWalls(polygon.getCoordinates());\n let isOnWall = false;\n polyWalls.forEach((wall) => {\n if (Editor.testPointBelongToWall(wall, point)) {\n isOnWall = true;\n }\n });\n return isContained || isOnWall;\n }\n\n public static toWalls(coords: Array) {\n let walls: Array = [];\n for (let i = 0; i < coords.length - 1; i++) {\n walls.push({ start: coords[i], end: coords[(i + 1) % coords.length] });\n }\n return walls;\n }\n\n public static isLineVertical(line: Array) {\n const angle = Math.atan2(line[1].y - line[0].y, line[1].x - line[0].x);\n const angleDeg = qSVG.angleRadToDeg(angle);\n return angleDeg === 90 || angleDeg === -90;\n }\n\n public static rotateCyclicCoords(coords: Array, rotationParams: RotationParams) {\n // Room coords have the same first and last coordinates, but\n // rotation of cyclic coordinates doesn't work well. So we pop\n // the last coord and add it back at the end.\n coords.pop();\n this.rotation(coords, rotationParams.angle, rotationParams.center);\n coords.push(coords[0]);\n }\n\n // equivalent of excel mround function\n public static mround(number: number, multiple: number) {\n return multiple * Math.round(number / multiple);\n }\n}\n","\nexport default class TinyQueue {\n constructor(data = [], compare = defaultCompare) {\n this.data = data;\n this.length = this.data.length;\n this.compare = compare;\n\n if (this.length > 0) {\n for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);\n }\n }\n\n push(item) {\n this.data.push(item);\n this.length++;\n this._up(this.length - 1);\n }\n\n pop() {\n if (this.length === 0) return undefined;\n\n const top = this.data[0];\n const bottom = this.data.pop();\n this.length--;\n\n if (this.length > 0) {\n this.data[0] = bottom;\n this._down(0);\n }\n\n return top;\n }\n\n peek() {\n return this.data[0];\n }\n\n _up(pos) {\n const {data, compare} = this;\n const item = data[pos];\n\n while (pos > 0) {\n const parent = (pos - 1) >> 1;\n const current = data[parent];\n if (compare(item, current) >= 0) break;\n data[pos] = current;\n pos = parent;\n }\n\n data[pos] = item;\n }\n\n _down(pos) {\n const {data, compare} = this;\n const halfLength = this.length >> 1;\n const item = data[pos];\n\n while (pos < halfLength) {\n let left = (pos << 1) + 1;\n let best = data[left];\n const right = left + 1;\n\n if (right < this.length && compare(data[right], best) < 0) {\n left = right;\n best = data[right];\n }\n if (compare(best, item) >= 0) break;\n\n data[pos] = best;\n pos = left;\n }\n\n data[pos] = item;\n }\n}\n\nfunction defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n","//! COPY of polylabel.js from lib/polylabel\nimport TinyQueue from 'tinyqueue';\n\ntype Cell = {\n x: number; //* cell center x\n y: number; //* cell center y\n h: number; //* half the cell size\n d: number; //* distance from cell center to polygon\n max: number; //* max distance to polygon within a cell\n}\n\ntype Centroid = { x: number; y: number; distance: number }\n\nexport class PolylabelUtils {\n public static polylabel(polygon: any, precision: number, debug?: boolean): Centroid {\n precision = precision || 1.0;\n\n //* find the bounding box of the outer ring\n let minX, minY, maxX, maxY;\n for (let i = 0; i < polygon[0].length; i++) {\n const p = polygon[0][i];\n if (!i || p[0] < minX) minX = p[0];\n if (!i || p[1] < minY) minY = p[1];\n if (!i || p[0] > maxX) maxX = p[0];\n if (!i || p[1] > maxY) maxY = p[1];\n }\n\n const width = maxX - minX;\n const height = maxY - minY;\n const cellSize = Math.min(width, height);\n let h = cellSize / 2;\n\n if (cellSize === 0) {\n const degeneratePoleOfInaccessibility: Centroid = { x: minX, y: minY, distance: 0 };\n return degeneratePoleOfInaccessibility;\n }\n\n //* a priority queue of cells in order of their \"potential\" (max distance to polygon)\n const cellQueue = new TinyQueue(undefined, this.compareMax);\n\n //* cover polygon with initial cells\n for (let x = minX; x < maxX; x += cellSize) {\n for (let y = minY; y < maxY; y += cellSize) {\n cellQueue.push(this.toCell(x + h, y + h, h, polygon));\n }\n }\n\n //* take centroid as the first best guess\n let bestCell = this.getCentroidCell(polygon);\n\n //* second guess: bounding box centroid\n const bboxCell = this.toCell(minX + width / 2, minY + height / 2, 0, polygon);\n if (bboxCell.d > bestCell.d) {\n bestCell = bboxCell;\n }\n\n let numProbes = cellQueue.length;\n\n while (cellQueue.length) {\n //* pick the most promising cell from the queue\n const cell = cellQueue.pop();\n if (cell) {\n\n //* update the best cell if we found a better one\n if (cell.d > bestCell.d) {\n bestCell = cell;\n debug && console.log('found best %f after %d probes', Math.round(1e4 * cell.d) / 1e4, numProbes);\n }\n\n //* do not drill down further if there's no chance of a better solution\n if (cell.max - bestCell.d <= precision) {\n continue;\n }\n\n //* split the cell into four cells\n h = cell.h / 2;\n cellQueue.push(this.toCell(cell.x - h, cell.y - h, h, polygon));\n cellQueue.push(this.toCell(cell.x + h, cell.y - h, h, polygon));\n cellQueue.push(this.toCell(cell.x - h, cell.y + h, h, polygon));\n cellQueue.push(this.toCell(cell.x + h, cell.y + h, h, polygon));\n numProbes += 4;\n }\n }\n\n debug && console.log('num probes & best distance ', { numProbes, distance: bestCell.d });\n\n const poleOfInaccessibility: Centroid = { x: bestCell.x, y: bestCell.y, distance: bestCell.d }\n return poleOfInaccessibility;\n }\n\n public static compareMax = (a: Cell, b: Cell) => b.max - a.max;\n\n public static toCell(x: number, y: number, h: number, polygon: any): Cell {\n const d = this.pointToPolygonDist(x, y, polygon); // distance from cell center to polygon\n return { x, y, h, d, max: d + h * Math.SQRT2 }\n }\n\n // signed distance from point to polygon outline (negative if point is outside)\n public static pointToPolygonDist(x: number, y: number, polygon: Array) {\n let inside = false;\n let minDistSq = Infinity;\n\n for (let k = 0; k < polygon.length; k++) {\n const ring = polygon[k];\n\n let i = 0;\n const len = ring.length;\n let j = len - 1;\n for (; i < len; j = i++) {\n const a = ring[i];\n const b = ring[j];\n\n if (((a[1] > y) !== (b[1] > y)) &&\n (x < (b[0] - a[0]) * (y - a[1]) / (b[1] - a[1]) + a[0])) inside = !inside;\n\n minDistSq = Math.min(minDistSq, this.getSegDistSq(x, y, a, b));\n }\n }\n\n return minDistSq === 0 ? 0 : (inside ? 1 : -1) * Math.sqrt(minDistSq);\n }\n\n //* get polygon centroid\n public static getCentroidCell(polygon: Array) {\n let area = 0;\n let x = 0;\n let y = 0;\n const points = polygon[0];\n\n let i = 0;\n const len = points.length;\n let j = len - 1;\n for (; i < len; j = i++) {\n const a = points[i];\n const b = points[j];\n const f = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * f;\n y += (a[1] + b[1]) * f;\n area += f * 3;\n }\n if (area === 0) {\n return this.toCell(points[0][0], points[0][1], 0, polygon);\n }\n return this.toCell(x / area, y / area, 0, polygon);\n }\n\n //* get squared distance from a point to a segment\n public static getSegDistSq(px: number, py: number, a: Array, b: Array) {\n\n let x = a[0];\n let y = a[1];\n let dx = b[0] - x;\n let dy = b[1] - y;\n\n if (dx !== 0 || dy !== 0) {\n\n const t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = b[0];\n y = b[1];\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = px - x;\n dy = py - y;\n\n return dx * dx + dy * dy;\n }\n}\n","import { ILaizeRoom, ILaizeWall } from '../../Components/Laizes/LaizeCalc';\nimport { YesOrNo } from '../../Models/IMapItem';\nimport { IRoom } from '../../Models/IRoom';\nimport { IRoomItem, RoomItemType } from '../../Models/IRoomItem';\nimport { Editor } from '../Editor';\nimport { JstsUtils } from '../JstsUtils';\nimport { PointUtils } from '../PointUtils';\nimport { Wall } from '../Types';\n//@ts-ignore\n\nexport class RoomDiffUtils {\n public static roomComputeDifference(room: IRoom, roomItems: Array, walls: Array) {\n const computedResult = this.roomPolygonExcludingRoomItem(room, roomItems, walls);\n room.areaWithoutRoomItems = computedResult.roomArea;\n }\n\n //* Calcul d'un polygon à partir de la pièce excluant les roomItems contenus dans la pièce.\n //* Utilisé pour le calcul de surface et le calcul en lé.\n\n public static roomPolygonExcludingRoomItem(\n room: ILaizeRoom,\n roomItems: Array,\n walls: Array\n ) {\n const geometryFactory = JstsUtils.GeometryFactory();\n const geoInputPolyA = JstsUtils.vectorCoordinates2JTS(room.coords);\n geoInputPolyA.push(geoInputPolyA[0]);\n let shellPolyA = geometryFactory.createPolygon(geoInputPolyA) as jsts.geom.Geometry;\n\n // Fix #24196 On check si un roomItem n'est pas en contact avec un mur de la pièce et on l'ignore pour le calcul en lé\n // JSTS n'arrive pas à interpréter des points qui ne sont pas continues\n // Codesandbox utilisé pour debugger JSTS : https://codesandbox.io/s/affectionate-rain-quiyh3?file=/src/App.js\n //\n // Avant :\n // Plan : https://ideine-my.sharepoint.com/:i:/g/personal/thierry_levisse_ideine_fr/EeXc4CuNSZpPtBax0FGT6IUBmiSqgwszgM8-bKwhwS8BpA?e=H1qBxb\n // Interpretation JSTS : https://ideine-my.sharepoint.com/:i:/g/personal/thierry_levisse_ideine_fr/EU-CPlIAhitMr0asPJfIHq4BDMSG0d6EMfE4GuUbya0PGw?e=kdUp4y\n //\n // Après :\n // Plan : https://ideine-my.sharepoint.com/:i:/g/personal/thierry_levisse_ideine_fr/EafQ_uujqFNDrKPe-D2iRBoBT7CiLRJz09gpUIsZWqN7Gw?e=KtNQad\n // Interpretation JSTS : https://ideine-my.sharepoint.com/:i:/g/personal/thierry_levisse_ideine_fr/ER2ZmfF8mgdCtrmbTIuGQIsBFp872mCZeT9dwxLX9lGrqg?e=fA2qcX\n\n let realRoomShellDifference = shellPolyA;\n const roomItemsToWorkWith = roomItems.filter(\n (x) => x.roomId === room.roomId && !RoomDiffUtils.hasNoImpactOnFlooring(x.type)\n );\n for (const roomItem of roomItemsToWorkWith) {\n const geoInputPolyB = JstsUtils.vectorCoordinates2JTS(roomItem.coordsReal);\n geoInputPolyB.push(geoInputPolyB[0]);\n const shellPolyB = geometryFactory.createPolygon(geoInputPolyB);\n if (roomItem.putFlooring === YesOrNo.No || roomItem.putFlooring === undefined) {\n realRoomShellDifference = realRoomShellDifference.difference(shellPolyB);\n } else {\n realRoomShellDifference = realRoomShellDifference.union(shellPolyB);\n }\n\n if (!this.roomItemIsInsideRoom(roomItem, room) || this.roomItemIsInContactWithWall(roomItem, walls)) {\n if (roomItem.putFlooring === YesOrNo.No || roomItem.putFlooring === undefined) {\n //* VDE: Temporary fix: #36597\n //* On ignore les aménagements qui ont qu'un seul point en contact avec les murs\n if (this.getRoomItemNumContactWithWall(roomItem, walls) > 1) {\n shellPolyA = shellPolyA.difference(shellPolyB);\n }\n } else {\n shellPolyA = shellPolyA.union(shellPolyB);\n }\n }\n }\n\n return {\n /**\n * Polygon de la pièce suivant ces opérations:\n * - Ignore les aménagements qui sont entièrement dans la pièce.\n * - différence sur les aménagements sans pose de revêtement de sol qui touchent un mur.\n * - union sur les aménagements avec pose de revêtement de sol qui touchent un mur.\n */\n roomShellDifference: shellPolyA,\n /**\n * Surface de la pièce suivant ces opérations:\n * - différence sur les aménagements sans pose de revêtement de sol\n * - union sur les aménagements avec pose de revêtement de sol.\n * Utile pour le calcul de la surface total de la pièce.\n */\n roomArea: realRoomShellDifference.getArea(),\n };\n }\n\n public static roomItemIsInContactWithWall(roomItem: IRoomItem, walls: Array) {\n for (const wall of walls) {\n let contactCount = 0;\n for (const coord of roomItem.coordsReal!) {\n if (Editor.testPointBelongToWall(wall, coord)) {\n contactCount++;\n }\n if (contactCount >= 1) {\n return true;\n }\n }\n }\n return false;\n }\n\n public static getRoomItemNumContactWithWall(roomItem: IRoomItem, walls: Array) {\n let contactCount = 0;\n for (const wall of walls) {\n const coords = roomItem.coordsReal!;\n for (const coord of coords.slice(0, coords.length - 1)) {\n if (Editor.testPointBelongToWall(wall, coord)) {\n contactCount++;\n }\n }\n }\n return contactCount;\n }\n\n public static roomItemIsInsideRoom(roomItem: IRoomItem, room: ILaizeRoom) {\n for (const coord of roomItem.coordsReal!) {\n const isInside = PointUtils.testPointWithinRoom(coord, room);\n if (!isInside) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Required by #41435 Hotfix > C&P > Aménagement, surface éléments lourds et regard (Prod et Pilot-Prod)\n */\n public static hasNoImpactOnFlooring(type?: RoomItemType) {\n return RoomItemType.SewerPlate === type || RoomItemType.HeavyElement === type;\n }\n}\n","import { ObjectUtils } from 'Helpers';\nimport { useGestureContext } from '../../Context/GestureContext';\nimport { MapConstants } from '../../MapConstants';\nimport { IOpening } from '../../Models/IOpening';\nimport { IRoom } from '../../Models/IRoom';\nimport { IRoomItem } from '../../Models/IRoomItem';\nimport { InvalidPositionDetection } from '../Collisions/InvalidPositionDetection';\nimport { Editor } from '../Editor';\nimport { useMagnetize } from '../MagnetizedUtils';\nimport { OpeningUtils } from '../Opening/OpeningUtils';\nimport { PointUtils } from '../PointUtils';\nimport { qSVG } from '../qSVG';\nimport { CoordPoint, SnapGesture, Wall } from '../Types';\n\nexport const numbersRegex: RegExp = /(-?\\d+(\\.\\d+)?(e-?[0-9]\\d)?)/g;\nlet translateX: number;\nlet translateY: number;\n\nexport type RoomMoveInit = { x1: number; y1: number; x2: number; y2: number };\n\nexport class RoomMove {\n public static class = (roomId: string) => `room-${roomId}`;\n\n public static BASE_WALLS_ROOM_ID = 'walls-room';\n public static roomWallsId = (roomId: string) => `${RoomMove.BASE_WALLS_ROOM_ID}-${roomId}`;\n\n public static BASE_RIBS_ROOM_ID = 'ribs-room';\n public static roomRibsId = (roomId: string) => `${RoomMove.BASE_RIBS_ROOM_ID}-${roomId}`;\n\n public static BASE_ROOM_NAME_ROOM_ID = 'nameArea-room';\n public static roomAreaId = (roomId: string) => `${RoomMove.BASE_ROOM_NAME_ROOM_ID}-${roomId}`;\n\n public static BASE_OPENING_IN_ROOM_ID = 'opening-room';\n public static openingRoomId = (roomId: string) => `${RoomMove.BASE_OPENING_IN_ROOM_ID}-${roomId}`;\n\n public static BASE_ROOM_ITEM_IN_ROOM_ID = 'roomItem-room';\n public static roomItemId = (roomId: string) => `${RoomMove.BASE_ROOM_ITEM_IN_ROOM_ID}-${roomId}`;\n\n public static BASE_ROOM_ITEM_RIBS_ID = 'roomItem-ribs';\n public static roomItemRibsId = (roomId: string, roomItemId: string) =>\n `${RoomMove.BASE_ROOM_ITEM_RIBS_ID}-${roomId}-${roomItemId}`;\n\n public static BASE_TRACE_BAND = 'trace-band';\n public static roomTraceBandId = (roomId: string, name?: string) => `${RoomMove.BASE_TRACE_BAND}-${roomId}-${name}`;\n}\n\nexport const useRoomMove = () => {\n const magnetize = useMagnetize();\n const gesture = useGestureContext();\n const pressDownRoom = (snap: SnapGesture, room: IRoom): RoomMoveInit => {\n const clientX = snap.x;\n const clientY = snap.y;\n\n return { x1: clientX, y1: clientY, x2: clientX, y2: clientY };\n };\n const moveRoom = (snap: SnapGesture, room: IRoom, roomMoveInit: RoomMoveInit, rooms: Array) => {\n const forcedSnap = magnetize.magnetizedRooms(\n snap,\n room,\n { x: translateX, y: translateY },\n { x: roomMoveInit.x2, y: roomMoveInit.y2 },\n rooms\n );\n if (forcedSnap.x) {\n snap.x = forcedSnap.x;\n }\n if (forcedSnap.y) {\n snap.y = forcedSnap.y;\n }\n\n const els = document.getElementsByClassName(RoomMove.class(room.roomId!));\n //let hasContact = false;\n\n const tolerance_round_value = MapConstants.tolerance_round_value;\n\n for (let i = 0; i < els.length; i++) {\n const el = els[i];\n translateX = snap.x - roomMoveInit.x1;\n translateY = snap.y - roomMoveInit.y1;\n const vector = { x: translateX, y: translateY };\n const newCenter = PointUtils.translation({ x: roomMoveInit.x1, y: roomMoveInit.y1 }, vector);\n room.center = { x: newCenter.x / MapConstants.meter, y: newCenter.y / MapConstants.meter };\n PointUtils.smoothOutPoint(room.center);\n\n const points = room.coords!.map((x) => PointUtils.translation(x, vector));\n const updatedRooms = rooms.map((r) => (r.roomId === room.roomId ? { ...r, coords: points } : r));\n const invalidRoomIds = InvalidPositionDetection.getInvalidRoomIds(updatedRooms, room.roomId!);\n if (!ObjectUtils.deepEqual(gesture.state.invalidRoomIds ?? [], invalidRoomIds)) {\n gesture.update({ invalidRoomIds });\n }\n\n translateX = translateX > -tolerance_round_value && translateX < tolerance_round_value ? 0 : translateX; //avoid 7.105427357601002e-15 like value that doesnot convert correctly\n translateY = translateY > -tolerance_round_value && translateY < tolerance_round_value ? 0 : translateY; //avoid 7.105427357601002e-15 like value that doesnot convert correctly\n const t = `translate(${translateX},${translateY})`;\n el.setAttribute('transform', t);\n }\n };\n\n const pressUpRoom = (\n room: IRoom,\n rooms: Array,\n openings: Array,\n roomItems: Array,\n walls: Array\n ) => {\n const roomCotesEl = document.getElementById(RoomMove.roomRibsId(room.roomId!))!;\n const roomWallsEl = document.getElementById(RoomMove.roomWallsId(room.roomId!))!;\n const roomAreaEl = document.getElementById(RoomMove.roomAreaId(room.roomId!))!;\n\n if ((gesture.state.invalidRoomIds ?? []).length > 0) {\n gesture.update({ invalidRoomIds: undefined });\n const openingEl = document.getElementById(RoomMove.openingRoomId(room.roomId!))!;\n const roomItemEl = document.getElementById(RoomMove.roomItemId(room.roomId!))!;\n openingEl?.removeAttribute('transform');\n roomItemEl?.removeAttribute('transform');\n roomCotesEl?.removeAttribute('transform');\n roomWallsEl?.removeAttribute('transform');\n roomAreaEl?.removeAttribute('transform');\n Editor.architect(walls, rooms);\n openings = OpeningUtils.resetOpeningsPlacement(openings, walls);\n\n for (const room of rooms) {\n room.openings = OpeningUtils.updateRoomOpenings(room, openings);\n }\n\n return { updatedRooms: rooms, updatedOpenings: openings, updatedRoomItems: roomItems, updatedWalls: walls };\n }\n\n if (roomWallsEl.hasAttribute('transform')) {\n const transform = roomWallsEl.getAttribute('transform')!;\n const rawVector = transform.match(numbersRegex)!;\n const vector = { x: Number(rawVector[0]), y: Number(rawVector[1]) };\n\n //* UPDATE ROOM OPENINGS COORDS\n room.walls!.forEach((wall) => {\n const roomOpeningInWall = Editor.objFromWallRoom(wall, openings);\n roomOpeningInWall.forEach((opening) => {\n const newCoordinates = PointUtils.translation(opening as CoordPoint, vector);\n opening.x = newCoordinates.x;\n opening.y = newCoordinates.y;\n const limits = PointUtils.limitObj(wall.equations.base, opening.size!, opening as CoordPoint);\n opening.angle = qSVG.angleDeg(wall.start.x, wall.start.y, wall.end.x, wall.end.y);\n opening.limit = limits;\n });\n wall.start = PointUtils.translation(wall.start, vector);\n wall.end = PointUtils.translation(wall.end, vector);\n });\n\n //* UPDATE ROOM ITEMS COORDS\n room.roomItems!.forEach((roomItem) => {\n const currentTranslate = roomItem.graphTranslation!;\n const vector: CoordPoint = { x: translateX || 0, y: translateY || 0 };\n roomItem.coordsReal = roomItem.coordsReal!.map((p) => PointUtils.translation(p, vector));\n roomItem.graphTranslation = { x: currentTranslate.x + vector.x, y: currentTranslate.y + vector.y };\n });\n }\n\n translateX = 0;\n translateY = 0;\n roomCotesEl?.removeAttribute('transform');\n roomWallsEl?.removeAttribute('transform');\n roomAreaEl?.removeAttribute('transform');\n\n const els = document.getElementsByClassName(RoomMove.class(room.roomId!));\n for (let i = 0; i < els.length; i++) {\n const el = els[i];\n if (\n el.id.startsWith(RoomMove.BASE_WALLS_ROOM_ID) ||\n el.id.startsWith(RoomMove.BASE_RIBS_ROOM_ID) ||\n el.id.startsWith(RoomMove.BASE_ROOM_NAME_ROOM_ID) ||\n el.id.startsWith(RoomMove.BASE_OPENING_IN_ROOM_ID) ||\n el.id.startsWith(RoomMove.BASE_ROOM_ITEM_IN_ROOM_ID) ||\n el.id.startsWith(RoomMove.BASE_ROOM_ITEM_RIBS_ID) ||\n el.id.startsWith(RoomMove.BASE_TRACE_BAND)\n ) {\n el.removeAttribute('transform');\n }\n }\n\n const updatedRooms = rooms.map((r) => (r.roomId === room.roomId ? room : r));\n const updatedWalls = updatedRooms.reduce>((items, c) => [...items, ...c.walls!], []);\n let updatedOpenings = updatedRooms.reduce>((items, c) => [...items, ...c.openings!], []);\n const updatedRoomItems = updatedRooms.reduce>((items, c) => [...items, ...c.roomItems!], []);\n\n Editor.architect(updatedWalls, updatedRooms);\n updatedOpenings = OpeningUtils.resetOpeningsPlacement(updatedOpenings, updatedWalls);\n\n for (const room of updatedRooms) {\n room.openings = OpeningUtils.updateRoomOpenings(room, updatedOpenings);\n }\n\n return { updatedRooms, updatedOpenings, updatedRoomItems, updatedWalls };\n };\n\n return { pressDownRoom, moveRoom, pressUpRoom };\n};\n","import * as _ from 'lodash';\n\nimport { Logger } from '../../../../Errors/Logger';\nimport { ObjectUtils } from '../../../../Helpers/ObjectUtils';\nimport { OpeningFactory } from '../../Helpers/BaseOpeningFactory';\nimport { RoomItemFactory } from '../../Helpers/BaseRoomItemFactory';\nimport { MapConstants } from '../../MapConstants';\nimport { IOpening } from '../../Models/IOpening';\nimport { IRoom, RoomLocalisation, RoomShape, RoomType } from '../../Models/IRoom';\nimport { IRoomItem } from '../../Models/IRoomItem';\nimport { IdGenerator } from '../IdGenerator';\nimport { OpeningUtils } from '../Opening/OpeningUtils';\nimport { PointUtils } from '../PointUtils';\nimport { CoordPoint, Wall } from '../Types';\nimport { WallUtils } from '../Wall/WallUtils';\nimport { qSVG } from '../qSVG';\n\ntype CreateResult = { room: IRoom; roomWalls?: Array };\nexport class CreateRoomFactory {\n public static createRoom = (room: IRoom, currentWalls: Array): CreateResult => {\n room.roomId = room.roomId ?? IdGenerator.generate();\n\n if (room.type === RoomType.Wall) {\n room.localisation = RoomLocalisation.Inside;\n }\n if (room.coords) {\n return this.createCustomShapeRoom(room, currentWalls);\n } else {\n //! ⬇️ obsolete kept for v2 export compat\n switch (room.shape) {\n case RoomShape.Rectangle:\n return this.createRectangleShapeRoom(room, currentWalls);\n case RoomShape.Diamond_topleft:\n case RoomShape.Diamond_topright:\n case RoomShape.Diamond_bottomleft:\n case RoomShape.Diamond_bottomright:\n return this.createDiamondShapeRoom(room, currentWalls);\n case RoomShape.Flyingwing_topleft:\n case RoomShape.Flyingwing_topright:\n case RoomShape.Flyingwing_bottomleft:\n case RoomShape.Flyingwing_bottomright:\n return this.createFlyingWingShapeRoom(room, currentWalls);\n case RoomShape.U_top:\n case RoomShape.U_right:\n case RoomShape.U_bottom:\n case RoomShape.U_left:\n return this.createUShapeRoom(room, currentWalls);\n case RoomShape.Plus:\n return this.createPlusShapeRoom(room, currentWalls);\n\n case RoomShape.Custom:\n return this.createCustomShapeRoom(room, currentWalls);\n }\n }\n return { room, roomWalls: [] };\n };\n\n public static exportRoom = (room: IRoom): IRoom => {\n return this.exportCustomShapeRoom(room)!;\n };\n\n public static duplicate(\n room: IRoom,\n name: string,\n walls: Array,\n openings: Array,\n roomItems: Array\n ): CreateResult {\n let exportedRoom: IRoom = this.exportRoom(room);\n if (exportedRoom) {\n exportedRoom.roomId = IdGenerator.generate();\n exportedRoom.name = name;\n exportedRoom.contournements = ObjectUtils.clone(exportedRoom.contournements);\n\n const bbox = PointUtils.calculateBoundingBox({ points: room.coords! })!;\n const overallBbox = PointUtils.calculateBoundingBox({ walls })!;\n const offset = {\n x: qSVG.measure({ x: bbox.xMin, y: bbox.yMin }, { x: overallBbox.xMax, y: bbox.yMin }) / 100 + 1.8,\n y: 0,\n };\n const offsetInCm = {\n x: offset.x * 100,\n y: 0,\n };\n const centerPositionOffset = PointUtils.translation(\n { x: exportedRoom.center!.x, y: exportedRoom.center!.y },\n offset\n );\n exportedRoom.coords = exportedRoom.coords?.map((x) => PointUtils.translation(x, offsetInCm));\n exportedRoom.center = centerPositionOffset;\n PointUtils.smoothOutPoint(exportedRoom.center);\n\n const positionOffset = { ...offset };\n positionOffset.x = offset.x * 100;\n\n const exportedRoomOpenings = OpeningUtils.updateRoomOpenings(room, openings);\n exportedRoom.openings = ObjectUtils.clone(exportedRoomOpenings);\n const newOpenings = ObjectUtils.clone(openings);\n for (const opening of exportedRoom.openings!) {\n opening.openingId = IdGenerator.generate();\n opening.roomId = exportedRoom.roomId;\n opening.name = OpeningFactory.getNewName(opening, newOpenings);\n opening.x = opening.x! + positionOffset.x;\n newOpenings.push(opening);\n }\n\n exportedRoom.roomItems = ObjectUtils.clone(exportedRoom.roomItems);\n const newRoomItems = ObjectUtils.clone(roomItems);\n for (const roomItem of exportedRoom.roomItems!) {\n roomItem.roomItemId = IdGenerator.generate();\n roomItem.roomId = exportedRoom.roomId;\n\n roomItem.coordsReal = roomItem.coordsReal?.map((x) => PointUtils.translation(x, positionOffset));\n roomItem.graphTranslation = PointUtils.translation(roomItem.graphTranslation!, positionOffset);\n roomItem.name = RoomItemFactory.getNewName(roomItem, newRoomItems);\n newRoomItems.push(roomItem);\n }\n\n //importRoomFunc(exportedRoom);\n return this.createRoom(exportedRoom, walls);\n }\n\n //refreshWallsMinimumSizeAndOriginalAngle(ROOM[ROOM.length - 1].walls);\n //WallUtils.refreshWallsMinimumSizeAndOriginalAngle(walls, newOpenings);\n\n return { room: exportedRoom! };\n }\n\n //#region //* CREATE ROOM SHAPE\n\n private static createRectangleShapeRoom = (room: IRoom, currentWalls: Array): CreateResult => {\n let points: Array;\n if (room.coords) {\n points = room.coords;\n } else {\n points = [\n { x: 0, y: 0 },\n { x: room.obsoleteDimensions!.width!, y: 0 },\n { x: room.obsoleteDimensions!.width!, y: room.obsoleteDimensions!.height! },\n { x: 0, y: room.obsoleteDimensions!.height! },\n ];\n if (room.center) {\n PointUtils.translationByMeanPoint(points, room.center);\n }\n points.forEach((point) => PointUtils.convertToCoordinates(point));\n if (!room.center) {\n PointUtils.placeToZero(points);\n PointUtils.placeAlongSideExistingRooms(points, currentWalls);\n }\n PointUtils.smoothOutPoints(points);\n }\n\n room.shape = RoomShape.Custom;\n const roomWalls: Array = [\n WallUtils.createWall(points[0], points[1], 'top', room),\n WallUtils.createWall(points[1], points[2], 'right', room),\n WallUtils.createWall(points[2], points[3], 'bottom', room),\n WallUtils.createWall(points[3], points[0], 'left', room),\n ];\n return { room, roomWalls };\n };\n\n private static createDiamondShapeRoom = (room: IRoom, currentWalls: Array): CreateResult => {\n let points: Array;\n if (room.coords) {\n points = room.coords;\n } else {\n const angleShape = new Map([\n [RoomShape.Diamond_topleft, 0],\n [RoomShape.Diamond_topright, 90],\n [RoomShape.Diamond_bottomright, 180],\n [RoomShape.Diamond_bottomleft, 270],\n ]);\n\n //* define points coordinates\n const tableCommonPoint = Math.sqrt(Math.pow(room.obsoleteDimensions!.table!, 2) / 2);\n\n points = [\n { x: 0, y: tableCommonPoint },\n { x: tableCommonPoint, y: 0 },\n { x: tableCommonPoint + room.obsoleteDimensions!.right_crown!, y: 0 },\n {\n x: tableCommonPoint + room.obsoleteDimensions!.right_crown!,\n y: tableCommonPoint + room.obsoleteDimensions!.left_crown!,\n },\n { x: 0, y: tableCommonPoint + room.obsoleteDimensions!.left_crown! },\n ];\n\n PointUtils.rotation(points, angleShape.get(room.shape!)!);\n\n //* move points to correct location\n if (room.center) {\n PointUtils.translationByMeanPoint(points, room.center);\n }\n\n //* convert meter to svg coordinates\n points.forEach((point) => PointUtils.convertToCoordinates(point, true));\n\n if (!room.center) {\n PointUtils.placeToZero(points);\n PointUtils.placeAlongSideExistingRooms(points, currentWalls);\n }\n\n PointUtils.smoothOutPoints(points);\n }\n\n room.shape = RoomShape.Custom;\n const roomWalls: Array = [\n //* draw table\n WallUtils.createWall(points[0], points[1], 'table', room),\n //* draw right crown\n WallUtils.createWall(points[1], points[2], 'right_crown', room),\n //* draw right pavilion\n WallUtils.createWall(points[2], points[3], 'right_pavilion', room),\n //* draw left pavilion\n WallUtils.createWall(points[3], points[4], 'left_pavilion', room),\n //* draw left crown\n WallUtils.createWall(points[4], points[0], 'left_crown', room),\n ];\n return { room, roomWalls };\n };\n\n private static createFlyingWingShapeRoom = (room: IRoom, currentWalls: Array): CreateResult => {\n const angleShape = new Map([\n ['flyingwing_topleft', 0],\n ['flyingwing_topright', 90],\n ['flyingwing_bottomright', 180],\n ['flyingwing_bottomleft', 270],\n ]);\n\n let points: Array;\n if (room.coords) {\n points = room.coords;\n } else {\n points = [\n { x: 0, y: 0 },\n { x: room.obsoleteDimensions!.left_wingtip! + room.obsoleteDimensions!.right_trailing_edge!, y: 0 },\n {\n x: room.obsoleteDimensions!.left_wingtip! + room.obsoleteDimensions!.right_trailing_edge!,\n y: room.obsoleteDimensions!.right_wingtip!,\n },\n { x: room.obsoleteDimensions!.left_wingtip!, y: room.obsoleteDimensions!.right_wingtip! },\n {\n x: room.obsoleteDimensions!.left_wingtip!,\n y: room.obsoleteDimensions!.right_wingtip! + room.obsoleteDimensions!.left_trailing_edge!,\n },\n { x: 0, y: room.obsoleteDimensions!.right_wingtip! + room.obsoleteDimensions!.left_trailing_edge! },\n ];\n\n PointUtils.rotation(points, angleShape.get(room.shape!)!);\n\n if (room.center) {\n PointUtils.translationByMeanPoint(points, room.center);\n }\n\n points.forEach((point) => PointUtils.convertToCoordinates(point));\n\n if (!room.center) {\n PointUtils.placeToZero(points);\n PointUtils.placeAlongSideExistingRooms(points, currentWalls);\n }\n PointUtils.smoothOutPoints(points);\n }\n\n room.shape = RoomShape.Custom;\n const roomWalls: Array = [\n WallUtils.createWall(points[0], points[1], 'right_leading_edge', room),\n WallUtils.createWall(points[1], points[2], 'right_wingtip', room),\n WallUtils.createWall(points[2], points[3], 'right_trailing_edge', room),\n WallUtils.createWall(points[3], points[4], 'left_trailing_edge', room),\n WallUtils.createWall(points[4], points[5], 'left_wingtip', room),\n WallUtils.createWall(points[5], points[0], 'left_leading_edge', room),\n ];\n return { room, roomWalls };\n };\n\n private static createUShapeRoom = (room: IRoom, currentWalls: Array): CreateResult => {\n const angleShape = new Map([\n [RoomShape.U_top, 0],\n [RoomShape.U_right, 90],\n [RoomShape.U_bottom, 180],\n [RoomShape.U_left, 270],\n ]);\n const exteriorBase = room.obsoleteDimensions!.exterior_base!;\n const leftExteriorEdge = room.obsoleteDimensions!.left_exterior_edge!;\n const leftTip = room.obsoleteDimensions!.left_tip!;\n const leftInteriorEdge = room.obsoleteDimensions!.left_interior_edge!;\n const rightTip = room.obsoleteDimensions!.right_tip!;\n const rightExteriorEdge = room.obsoleteDimensions!.right_exterior_edge!;\n\n //* define points coordinates\n let points: Array;\n if (room.coords) {\n points = room.coords;\n } else {\n points = [\n { x: 0, y: 0 },\n { x: leftTip, y: 0 },\n { x: leftTip, y: leftInteriorEdge },\n { x: exteriorBase - rightTip, y: leftInteriorEdge },\n { x: exteriorBase - rightTip, y: leftExteriorEdge - rightExteriorEdge },\n { x: exteriorBase, y: leftExteriorEdge - rightExteriorEdge },\n { x: exteriorBase, y: leftExteriorEdge },\n { x: 0, y: leftExteriorEdge },\n ];\n\n PointUtils.rotation(points, angleShape.get(room.shape!)!);\n\n if (room.center) {\n PointUtils.translationByMeanPoint(points, room.center);\n }\n\n points.forEach((point) => PointUtils.convertToCoordinates(point));\n\n if (!room.center) {\n PointUtils.placeToZero(points);\n PointUtils.placeAlongSideExistingRooms(points, currentWalls);\n }\n PointUtils.smoothOutPoints(points);\n }\n\n room.shape = RoomShape.Custom;\n const roomWalls: Array = [\n WallUtils.createWall(points[0], points[1], 'left_tip', room),\n WallUtils.createWall(points[1], points[2], 'left_interior_edge', room),\n WallUtils.createWall(points[2], points[3], 'interior_base', room),\n WallUtils.createWall(points[3], points[4], 'right_interior_edge', room),\n WallUtils.createWall(points[4], points[5], 'right_tip', room),\n WallUtils.createWall(points[5], points[6], 'right_exterior_edge', room),\n WallUtils.createWall(points[6], points[7], 'exterior_base', room),\n WallUtils.createWall(points[7], points[0], 'left_exterior_edge', room),\n ];\n return { room, roomWalls };\n };\n\n private static createPlusShapeRoom = (room: IRoom, currentWalls: Array): CreateResult => {\n //* define points coordinates\n\n let points: Array;\n if (room.coords) {\n points = room.coords;\n } else {\n points = [\n { x: 0, y: 0 },\n { x: 1.5, y: 0 },\n { x: 1.5, y: 1.5 },\n { x: 3.0, y: 1.5 },\n { x: 3.0, y: 3.0 },\n { x: 1.5, y: 3.0 },\n { x: 1.5, y: 4.5 },\n { x: 0, y: 4.5 },\n { x: 0, y: 3.0 },\n { x: -1.5, y: 3.0 },\n { x: -1.5, y: 1.5 },\n { x: 0, y: 1.5 },\n ];\n\n if (room.center) {\n PointUtils.translationByMeanPoint(points, room.center);\n }\n\n points.forEach((point) => PointUtils.convertToCoordinates(point));\n\n if (!room.center) {\n PointUtils.placeToZero(points);\n PointUtils.placeAlongSideExistingRooms(points, currentWalls);\n }\n PointUtils.smoothOutPoints(points);\n }\n\n room.shape = RoomShape.Custom;\n const roomWalls: Array = [\n WallUtils.createWall(points[0], points[1], 'top_tip', room),\n WallUtils.createWall(points[1], points[2], 'top_right', room),\n WallUtils.createWall(points[2], points[3], 'right_left', room),\n WallUtils.createWall(points[3], points[4], 'right_tip', room),\n WallUtils.createWall(points[4], points[5], 'right_right', room),\n WallUtils.createWall(points[5], points[6], 'bottom_left', room),\n WallUtils.createWall(points[6], points[7], 'bottom_tip', room),\n WallUtils.createWall(points[7], points[8], 'bottom_right', room),\n WallUtils.createWall(points[8], points[9], 'left_left', room),\n WallUtils.createWall(points[9], points[10], 'left_tip', room),\n WallUtils.createWall(points[10], points[11], 'left_right', room),\n WallUtils.createWall(points[11], points[0], 'top_left', room),\n ];\n\n return { room, roomWalls };\n };\n\n private static createCustomShapeRoom = (room: IRoom, currentWalls: Array): CreateResult => {\n const points = _.cloneDeep(room.coords?.slice(0, room.coords!.length - 1) || room.customPoints || []);\n if (!room.coords) {\n const walls = PointUtils.toWalls(points);\n\n const sides = new Map();\n let wallCount = 0;\n walls.forEach((wall) => {\n sides.set(`side_${wallCount}`, [wall.start, wall.end]);\n wallCount++;\n });\n room.sides = sides;\n\n if (room.center) {\n PointUtils.translationByMeanPoint(points, room.center);\n }\n\n points.forEach((point) => PointUtils.convertToCoordinates(point));\n\n PointUtils.smoothOutPoints(points);\n }\n room.shape = RoomShape.Custom;\n const roomWalls: Array = [];\n for (let i = 0; i < points.length; i++) {\n roomWalls.push(WallUtils.createWall(points[i], points[(i + 1) % points.length], `side_${i}`, room));\n }\n\n Logger.log('createCustomShapeRoom', { room, roomWalls });\n return { room, roomWalls };\n };\n\n //#endregion\n\n private static exportCustomShapeRoom(room: IRoom): IRoom | undefined {\n const points = ObjectUtils.clone(room.coords!.slice(0, room.coords!.length - 1));\n const roomWalls = PointUtils.toWalls(points);\n\n const sides = new Map();\n let wallCount = 0;\n roomWalls.forEach((wall) => {\n sides.set(`side_${wallCount}`, [wall.start, wall.end]);\n wallCount++;\n });\n\n points.forEach((point) => (point = this.convertToMeters(point)));\n const mp = PointUtils.meanPoint(points);\n PointUtils.translationByMeanPoint(points, mp, true);\n\n return this.exportRoomObject(room, mp, points);\n }\n\n private static exportRoomObject(room: IRoom, center: CoordPoint, points?: Array): IRoom {\n return {\n ...room,\n center: center,\n customPoints: points,\n };\n }\n\n //#endregion\n\n //#region //* GET ROOM SIDES\n\n public static toRoomSides = (room: IRoom): Map> => {\n return new Map();\n };\n\n //#endregion\n\n public static convertToMeters(point: CoordPoint) {\n point.x /= MapConstants.meter;\n point.y /= MapConstants.meter;\n return point;\n }\n}\n","import { MapConstants } from '../../MapConstants';\nimport { IRoom } from '../../Models/IRoom';\nimport { IRoomItem, RoomItemType, RoomItemWithAngle } from '../../Models/IRoomItem';\nimport { CollisionCreateRoomFactory } from '../Collisions/CollisionRoomUtils';\nimport { Editor } from '../Editor';\nimport { PointUtils } from '../PointUtils';\nimport { qSVG } from '../qSVG';\nimport { SATUtils } from '../SAT/SATUtils';\nimport { CoordPoint, SnapGesture, Wall, WallLine, WallSelected, WallWithCorrection } from '../Types';\nimport { WallUtils } from '../Wall/WallUtils';\n\nexport const RoomItemConstants = {\n RoomItemInConstruction: null,\n PreviousNearestWall: null,\n PreviousHorVNearestWall: null,\n\n ROOM_ITEM_MIN_SIZE: 20,\n ROOM_ITEM_MIN_CONTACT_LENGTH: 20,\n ROOM_ITEM_DIVIDER_MIN_SIZE: 7,\n ROOM_ITEM_MAX_SIZE: 3999,\n};\n\nexport type RoomItemLimits = {\n horizontal: { min: number; max: number };\n vertical: { min: number; max: number };\n};\n\nexport class RoomItemUtils {\n //#region //! DELETE (why ?: rendered by react)\n\n // public static roomItemMaker = (\n // rooms: Array,\n // roomItems: Array,\n // walls: Array,\n\n // id: string,\n // width: number,\n // height: number,\n // name: string,\n // type: RoomItemType,\n // putFlooring: YesOrNo,\n // putPlinthes: string,\n // isMoveableOutside: boolean,\n // graphTranslation?: CoordPoint,\n // roomId?: string\n // ): IRoomItem => {\n // const item: IRoomItem = {\n // roomItemId: id,\n // roomId,\n // type,\n // name,\n // putFlooring,\n // putPlinthes,\n // isMoveableOutside, // #20350\n // width,\n // height,\n // graphTranslation: graphTranslation ?? { x: 3300, y: 1700 },\n // };\n // const halfWidth = width / 2;\n // const halfHeight = height / 2;\n\n // item.coords = [\n // { x: -halfWidth, y: -halfHeight },\n // { x: halfWidth, y: -halfHeight },\n // { x: halfWidth, y: halfHeight },\n // { x: -halfWidth, y: halfHeight },\n // { x: -halfWidth, y: -halfHeight },\n // ];\n\n // item.coordsReal = item.coords.map((x) => PointUtils.translation(x, item.graphTranslation!));\n // //item.graph = this.createRoomItemSvg(item.coords, id, item.graphTranslation!, item.roomItemType!);\n // item.collisions = RoomCollisionsUtils.initCollisionPolygon(item.coordsReal.slice(0, -1), RoomShape.Rectangle);\n\n // // item.update = () => {\n // // item.graph.children('use').replaceWith(this.createIcon(item.roomItemType!));\n // // //TODO binder.graph.children('use').replaceWith(this.createIcon(item.roomItemType));\n // // for (const room of rooms) {\n // // RoomDiffUtils.roomComputeDifference(room, roomItems, walls);\n // // }\n // // const wallPolygones: Array = qSVG.polygonize(walls);\n // // Editor.roomMaker(wallPolygones, rooms, roomItems, walls);\n // // };\n // return item;\n // };\n\n // public static createRoomItemSvg(points: Array, id: string, graphTranslation: CoordPoint, type: string) {\n // var roomItemWrapper = qSVG.create('none', 'g', {\n // id: 'roomitem-' + id,\n // class: 'roomitem-' + id + '-class',\n // transform: 'translate(' + graphTranslation.x + ',' + graphTranslation.y + ')',\n // });\n\n // var area = qSVG.create('none', 'polygon', {\n // points: points.map((p) => p.x + ',' + p.y).join(' '),\n // fill: '#18335e7f',\n // stroke: '#18335e',\n // 'stroke-width': 3,\n // 'stroke-dasharray': '12 4',\n // // strokeWidth: 3,\n // // strokeDasharray: '12 4',\n // });\n\n // var iconWrapper = qSVG.create('boxDebug', 'circle', { r: 23, fill: 'white' });\n\n // var icon = this.createIcon(type);\n // roomItemWrapper.append(area);\n // roomItemWrapper.append(iconWrapper);\n // roomItemWrapper.append(icon);\n\n // return roomItemWrapper;\n // }\n\n // public static createIcon = (type: string) => {\n // const iconColor = '#0f0e2d';\n // let iconHref;\n // let iconTransform;\n // let fill;\n // let stroke;\n // switch (type) {\n // case 'shower_bathtub':\n // iconHref = '#shower_bathtub-picto';\n // iconTransform = 'rotate(0,0,0), translate(-16, -16)';\n // fill = iconColor;\n // stroke = 'transparent';\n // break;\n // case 'fixed_furniture':\n // iconHref = '#fixed_furniture-picto';\n // iconTransform = 'rotate(0,0,0), translate(-16, -16)';\n // fill = iconColor;\n // stroke = 'transparent';\n // break;\n // case 'cupboard':\n // iconHref = '#cupboard-picto';\n // iconTransform = 'rotate(0,0,0), translate(-16, -16)';\n // fill = iconColor;\n // stroke = 'transparent';\n // break;\n // case 'kitchen_furniture':\n // iconHref = '#kitchen_furniture-picto';\n // iconTransform = 'rotate(0,0,0), translate(-16, -16)';\n // fill = iconColor;\n // stroke = 'transparent';\n // break;\n // case 'fireplace':\n // iconHref = '#fireplace-picto';\n // iconTransform = 'rotate(0,0,0), translate(-14, -12)';\n // fill = iconColor;\n // stroke = 'transparent';\n // break;\n // case 'opening':\n // iconHref = '#opening_roomitem-picto';\n // iconTransform = 'rotate(0,0,0), translate(-22, -12)';\n // fill = 'transparent';\n // stroke = iconColor;\n // break;\n // case 'stairs':\n // iconHref = '#stairs-picto';\n // iconTransform = 'rotate(0,0,0), translate(-16, -10)';\n // fill = iconColor;\n // stroke = 'transparent';\n // break;\n // case 'divider':\n // iconHref = '#divider-picto';\n // iconTransform = 'rotate(0,0,0), translate(-20, -20)';\n // fill = 'transparent';\n // stroke = iconColor;\n // break;\n // case 'trap':\n // default:\n // iconHref = '#trap-picto';\n // iconTransform = 'rotate(0,0,0), translate(-22, -12)';\n // fill = 'transparent';\n // stroke = iconColor;\n // }\n\n // return qSVG.create('none', 'use', {\n // fill: fill,\n // stroke: stroke,\n // href: iconHref,\n // transform: iconTransform,\n // });\n // };\n\n // public static highlightRoomItem(roomItemTarget: IRoomItem) {\n // //roomItemTarget.highlight = true;\n // // binder = _.clone(roomItemTarget); // new roomItemMaker(roomItemTarget);\n // // var originalRoomItem = $('#roomitem-' + roomItemTarget.id);\n // // var existingBinder = $('#roomitem-' + roomItemTarget.id + '-highlight');\n // // if (existingBinder.length == 1) {\n // // binder.graph = existingBinder;\n // // } else {\n // // binder.graph = originalRoomItem.clone();\n // // binder.graph.attr('id', 'roomitem-' + roomItemTarget.id + '-highlight');\n // // binder.graph.appendTo('#boxbind');\n // // }\n // // // originalRoomItem.attr('transform', 'translate(' + (roomItemTarget.graphTranslation.x) + \",\" + (roomItemTarget.graphTranslation.y) + ')')\n // // binder.graph.attr(\n // // 'transform',\n // // 'translate(' + roomItemTarget.graphTranslation.x + ',' + roomItemTarget.graphTranslation.y + ')'\n // // );\n // // binder.graph.children('polygon').attr('fill', 'var(--roomItem-select-color)');\n // }\n\n //#endregion\n\n public static toPosition = (roomItem: IRoomItem): CoordPoint | undefined => {\n if (roomItem.graphTranslation) {\n return { x: roomItem.graphTranslation.x, y: roomItem.graphTranslation.y };\n }\n\n return undefined;\n };\n\n public static updateRoomItems = (room: IRoom, roomItems: Array) => {\n room.roomItems = roomItems.filter((x) => x.roomId === room.roomId);\n };\n\n public static rayCastingRoomItemsSides(customSnap: SnapGesture, roomItems: Array) {\n let margin = 1;\n let sideList: Array = [];\n let angleOrder = [0, 90, 180, -90];\n let normalVectorAngle = [-90, 0, 90, 180];\n for (let i = 0; i < roomItems.length; i++) {\n const itemCoords = PointUtils.inflatePolygon(roomItems[i].coordsReal, 5).reverse();\n for (let j = 0; j < 4; j++) {\n let polygon = [];\n //angle order => 0, 90, 180, -90\n //normal vector angle => -90, 0, 90, 180\n polygon = [\n {\n x: itemCoords[j].x + Math.cos(PointUtils.degreeToRad(normalVectorAngle[j]) * -margin),\n y: itemCoords[j].y + Math.sin(PointUtils.degreeToRad(normalVectorAngle[j]) * -margin),\n },\n {\n x: itemCoords[(j + 1) % 4].x + Math.cos(PointUtils.degreeToRad(normalVectorAngle[j]) * -margin),\n y: itemCoords[(j + 1) % 4].y + Math.sin(PointUtils.degreeToRad(normalVectorAngle[j]) * -margin),\n },\n {\n x: itemCoords[(j + 1) % 4].x + Math.cos(PointUtils.degreeToRad(normalVectorAngle[j]) * margin),\n y: itemCoords[(j + 1) % 4].y + Math.sin(PointUtils.degreeToRad(normalVectorAngle[j]) * margin),\n },\n {\n x: itemCoords[j].x + Math.cos(PointUtils.degreeToRad(normalVectorAngle[j]) * margin),\n y: itemCoords[j].y + Math.sin(PointUtils.degreeToRad(normalVectorAngle[j]) * margin),\n },\n ];\n if (qSVG.rayCasting(customSnap, polygon, margin)) {\n sideList.push({ roomItem: roomItems[i], angle: angleOrder[j] }); // Return EDGES Index\n }\n }\n }\n\n if (sideList.length === 0) {\n return false;\n } else {\n if (sideList.length === 1) {\n return sideList[0];\n } else {\n return sideList;\n }\n }\n }\n\n public static calcRoomItemMinContactLength(roomItemType?: RoomItemType) {\n return roomItemType === RoomItemType.Cupboard ? RoomItemConstants.ROOM_ITEM_MIN_CONTACT_LENGTH : 0;\n }\n\n public static areInflatedRoomsNeeded(\n isMoveableOutside: boolean,\n nearestWall: WallLine,\n polyPoints: Array,\n walls: Array\n ) {\n return (\n isMoveableOutside &&\n WallUtils.isWallHorV(nearestWall) &&\n !Editor.testIfPolygonCrossesDiagonalWall(polyPoints, walls)\n );\n }\n\n public static roomItemNearestWall(walls: Array, snap: CoordPoint, roomItemType?: RoomItemType) {\n const nearestWall = WallUtils.nearWallFrom(\n snap,\n Infinity,\n walls,\n MapConstants.PreviousNearestWall,\n roomItemType === 'cupboard'\n )!;\n MapConstants.PreviousNearestWall = nearestWall?.wall;\n if (WallUtils.isWallHorV(nearestWall.wall!)) {\n MapConstants.PreviousHorVNearestWall = nearestWall.wall;\n }\n return nearestWall;\n }\n\n public static getMovedRoomItemPoint(\n rooms: Array,\n walls: Array,\n snap: CoordPoint,\n roomId: string,\n roomItem: IRoomItem,\n minContactLength: number,\n nearestWall: WallLine,\n distanceToWall: number\n ) {\n let wallsToUse: Array | undefined = this.getWallsToUse(\n rooms,\n roomId,\n roomItem,\n minContactLength,\n nearestWall,\n distanceToWall\n );\n let point = !wallsToUse\n ? snap\n : WallUtils.nearWallFrom(\n snap,\n Infinity,\n wallsToUse as Array,\n undefined,\n roomItem.type === RoomItemType.Cupboard\n );\n\n const pointAsWall = point as WallSelected;\n\n if (pointAsWall?.wall?.angle !== nearestWall.angle) {\n const roomWall = WallUtils.nearWallFrom(\n point as SnapGesture,\n Infinity,\n walls,\n MapConstants.PreviousNearestWall,\n true\n );\n wallsToUse = this.getWallsToUse(rooms, roomId, roomItem, minContactLength, roomWall?.wall!, distanceToWall);\n point = !wallsToUse\n ? snap\n : WallUtils.nearWallFrom(snap, Infinity, wallsToUse as Array, undefined, true);\n }\n\n return point;\n }\n\n public static getWallsToUse(\n rooms: Array,\n roomId: string,\n roomItem: IRoomItem,\n minContactLength: number,\n nearestWall: WallLine,\n distanceToWall: number\n ) {\n const roomItemSizeLengthToUse =\n WallUtils.wallDirection(nearestWall) === 'h' ? roomItem.height! / 2 : roomItem.width! / 2;\n\n if (roomId) {\n if (\n roomItem.isMoveableOutside &&\n distanceToWall <= roomItemSizeLengthToUse &&\n distanceToWall > roomItemSizeLengthToUse - 20\n ) {\n return this.GetWallsWithInnerPaddingForRoomItem(roomItem, rooms);\n } else {\n return undefined;\n }\n } else {\n return this.GetWallsWithInnerPaddingForRoomItem(roomItem, rooms);\n }\n }\n\n //! PEUT FORMER UN POLYGONE CROISE, COMPORTEMENT LAISSE\n //! https://ideine-my.sharepoint.com/:i:/g/personal/thierry_levisse_ideine_fr/ETHvT2vMyMZCjRwQL5iiOUUBuKRUr7iM0T8wMG9qjE4LTg?e=U4FwXF\n public static GetWallsWithInnerPaddingForRoomItem(roomItem: IRoomItem, rooms: Array) {\n const tmpWalls = [];\n for (const room of rooms) {\n const rawInflatedPolygon = this.findPaddingPoints(room, roomItem);\n\n for (let i = 0; i < rawInflatedPolygon.length; i++) {\n const wall: WallLine = {\n start: rawInflatedPolygon[i],\n end: rawInflatedPolygon[(i + 1) % rawInflatedPolygon.length],\n roomId: room.roomId,\n };\n wall.angle = Math.atan2(wall.end.y - wall.start.y, wall.end.x - wall.start.x);\n tmpWalls.push(wall);\n }\n }\n return tmpWalls;\n }\n\n public static findPaddingPoints(room: IRoom, roomItem: IRoomItem) {\n let paddingPoints = [];\n const bissectorAngles = this.findBissectorAngle(room);\n for (let i = 0; i < room.walls!.length; i++) {\n if (bissectorAngles[i] > -90 && bissectorAngles[i] < 0) {\n paddingPoints.push(PointUtils.translation(room.coords![i], roomItem.coords![1]));\n } else if (bissectorAngles[i] > 0 && bissectorAngles[i] < 90) {\n paddingPoints.push(PointUtils.translation(room.coords![i], roomItem.coords![2]));\n } else if (bissectorAngles[i] > 90 && bissectorAngles[i] < 180) {\n paddingPoints.push(PointUtils.translation(room.coords![i], roomItem.coords![3]));\n } else if (bissectorAngles[i] > -180 && bissectorAngles[i] < -90) {\n paddingPoints.push(PointUtils.translation(room.coords![i], roomItem.coords![4]));\n }\n }\n return paddingPoints;\n }\n\n public static findBissectorAngle(room: IRoom) {\n let bissectorAngles = [];\n const angles = this.determinePaddingPoints(room);\n for (let i = 0; i < room.walls!.length; i++) {\n const bissectorAngleRad =\n ((room.walls![i].angle + Math.PI + PointUtils.degreeToRad(angles[i] / 2)) % (Math.PI * 2)) - Math.PI;\n bissectorAngles.push(qSVG.angleRadToDeg(bissectorAngleRad));\n }\n return bissectorAngles;\n }\n\n //! WARNING FOR NEW ROOM SHAPE, DOT NOT WORK WITH ANGLES DIFFERENT FROM 45° 90° 0° 180° etc.\n public static determinePaddingPoints(room: IRoom) {\n let interiorAngles = [];\n for (const wall of room.walls!) {\n let interiorAngle = 0;\n\n do {\n interiorAngle += 45;\n var radAngle =\n (Math.abs(wall.angle + Math.PI + PointUtils.degreeToRad(interiorAngle)) % (Math.PI * 2)) - Math.PI;\n if (radAngle === -Math.PI) {\n radAngle = Math.PI;\n }\n } while (\n !qSVG.strictlyBetween(this.getInvertedAngle(wall.parent!.angle), radAngle - 0.5, radAngle + 0.5)\n ); // angle or inverse of angle\n\n interiorAngles.push(interiorAngle);\n }\n return interiorAngles;\n }\n\n //! Generate a padding to get a correct placement of roomItems on rooms.\n //! Result is used with method nearWallFrom()\n //! https://ideine-my.sharepoint.com/:i:/g/personal/thierry_levisse_ideine_fr/EWQoEso_93JIs0fx03yQrykBUDaLflKToMspxv6eOIpBZQ?e=rrHAey\n public static getInvertedAngle(angle: number) {\n let invertedAngle = ((angle + Math.PI * 2) % (Math.PI * 2)) - Math.PI;\n return invertedAngle === -Math.PI ? Math.PI : invertedAngle;\n }\n\n public static isRoomItemInsideRoom(roomItem: IRoomItem, room: IRoom, checkIntersection: boolean = true) {\n //* Cupboards can intersect with a wall\n if (roomItem.type === RoomItemType.Cupboard) {\n return false;\n }\n\n const isRoomItemContainedInRoom = CollisionCreateRoomFactory.testIfPolygonAContainedInPolygonB(\n roomItem.coordsReal?.slice(0, -1),\n room.coords?.slice(0, -1)\n );\n\n return checkIntersection\n ? !isRoomItemContainedInRoom && PointUtils.testPolygonsIntersect(room.coords, roomItem.coordsReal)\n : !isRoomItemContainedInRoom;\n }\n\n /**\n *! Tests if the room item is partially inside the room.\n *! If it is, resize the room item in the correct direction to fit inside the room.\n *! In some cases, the room item need to be resized in more than one direction (when more than two corners of\n *! the room item are outside the room).\n *! The function is recursive in order to treat those cases.\n * TODO : Fix the known bug where when all four corners of the room item are outside the room, the resizing\n *! places the room item outside of the room. The bug is caused by the resizing function roomItemMoveSide().\n *! PBI Ref #23398 : https://ideine.visualstudio.com/XBacklog/_workitems/edit/23398\n */\n public static resizeRoomItemIfNeeded = (\n rooms: Array,\n roomItems: Array,\n roomItem: IRoomItem,\n snap: SnapGesture,\n previousAngle?: number,\n triesCount: number = 1\n ): boolean => {\n const room = rooms.find((r) => r.roomId === roomItem.roomId);\n if (!room || this.isRoomItemInsideRoom(roomItem, room)) {\n return true;\n }\n\n if (triesCount > 4) {\n console.error('Floorplan error : could not resize roomItem properly.', { roomItem });\n return false;\n }\n\n let angle = this.getRoomItemResizeAngle(roomItem, room)!;\n if (previousAngle && previousAngle === angle) {\n switch (previousAngle) {\n default:\n case 0:\n case 90:\n angle! += 90;\n break;\n case 180:\n angle = -180;\n break;\n case -180:\n angle = 0;\n break;\n }\n }\n this.roomItemMoveSide(roomItem, angle, snap);\n return this.resizeRoomItemIfNeeded(rooms, roomItems, roomItem, snap, angle, ++triesCount);\n };\n\n /**\n *! Finds which of the room item's corners are not within the room.\n *! Returns the corresponding resize angle.\n *! (Points 0 & 1 outside the room (top corners) => 0)\n *! (Points 1 & 2 outside the room (right points) => 90)\n *! (Points 2 & 3 outside the room (bottom points) => 180)\n *! (Points 3 & 0 outside the room (left points) => -180)\n */\n public static getRoomItemResizeAngle(roomItem: IRoomItem, room: IRoom) {\n let arePointsOutside: Array = [];\n roomItem.coordsReal?.slice(0, -1).forEach((point, index) => {\n arePointsOutside[index] = !PointUtils.testPointWithinRoom(point, room);\n });\n\n const pointsOutsideCount = arePointsOutside.filter((x) => x).length;\n\n if (pointsOutsideCount === 1) {\n if (arePointsOutside[0]) {\n return 0;\n } else if (arePointsOutside[1]) {\n return 90;\n } else if (arePointsOutside[2]) {\n return 180;\n } else if (arePointsOutside[3]) {\n return -90;\n }\n }\n if (pointsOutsideCount > 1) {\n if (arePointsOutside[0] && arePointsOutside[1]) {\n return 0;\n } else if (arePointsOutside[1] && arePointsOutside[2]) {\n return 90;\n } else if (arePointsOutside[2] && arePointsOutside[3]) {\n return 180;\n } else if (arePointsOutside[3] && arePointsOutside[0]) {\n return -90;\n }\n }\n }\n\n public static roomItemMoveSide(roomItem: IRoomItem, angle: number, snap: SnapGesture) {\n const minsize = 15;\n\n let cursor;\n if (angle === 0) {\n cursor = snap.y;\n cursor = roomItem.coordsReal![2].y - cursor < minsize ? roomItem.coordsReal![2].y - minsize : cursor;\n roomItem.coordsReal![4].y = cursor;\n roomItem.coordsReal![0].y = cursor;\n roomItem.coordsReal![1].y = cursor;\n } else if (angle === 90) {\n cursor = snap.x;\n cursor = cursor - roomItem.coordsReal![3].x < minsize ? roomItem.coordsReal![3].x + minsize : cursor;\n roomItem.coordsReal![1].x = cursor;\n roomItem.coordsReal![2].x = cursor;\n } else if (angle === 180) {\n cursor = snap.y;\n cursor = snap.y - roomItem.coordsReal![0].y < minsize ? roomItem.coordsReal![0].y + minsize : cursor;\n roomItem.coordsReal![2].y = cursor;\n roomItem.coordsReal![3].y = cursor;\n } else if (angle === -90) {\n cursor = snap.x;\n cursor = roomItem.coordsReal![1].x - cursor < minsize ? roomItem.coordsReal![1].x - minsize : cursor;\n roomItem.coordsReal![3].x = cursor;\n roomItem.coordsReal![4].x = cursor;\n roomItem.coordsReal![0].x = cursor;\n }\n\n const width = qSVG.measure(roomItem.coordsReal![0], roomItem.coordsReal![1]);\n const height = qSVG.measure(roomItem.coordsReal![1], roomItem.coordsReal![2]);\n roomItem.width = width;\n roomItem.height = height;\n roomItem.coords = this.roomItemCoordsRealToCoords(width, height);\n roomItem.graphTranslation = this.roomItemCoordsRealToGraphTranslation(roomItem.coordsReal!, width, height);\n\n return { roomItem };\n }\n\n public static roomItemCoordsRealToCoords(width: number, height: number) {\n return [\n { x: -width / 2, y: -height / 2 },\n { x: width / 2, y: -height / 2 },\n { x: width / 2, y: height / 2 },\n { x: -width / 2, y: height / 2 },\n { x: -width / 2, y: -height / 2 },\n ];\n }\n\n public static roomItemCoordsRealToGraphTranslation(\n coordsReal: Array = [],\n width: number,\n height: number\n ) {\n return { x: coordsReal[0].x + width / 2, y: coordsReal[0].y + height / 2 };\n }\n\n //roomItem¤22618616¤26286632¤0¤140\n public static roomItemResizeViaCote(roomItem: IRoomItem, angle: number, sizeInput: number, uncap: boolean) {\n if (angle === 0 || angle === 180) {\n //* resize horizontal\n roomItem.coords = [\n { x: -sizeInput / 2, y: roomItem.coords![0].y },\n { x: sizeInput / 2, y: roomItem.coords![1].y },\n { x: sizeInput / 2, y: roomItem.coords![2].y },\n { x: -sizeInput / 2, y: roomItem.coords![3].y },\n { x: -sizeInput / 2, y: roomItem.coords![4].y },\n ];\n } else if (angle === 90 || angle === -90) {\n roomItem.coords = [\n { x: roomItem.coords![0].x, y: -sizeInput / 2 },\n { x: roomItem.coords![1].x, y: -sizeInput / 2 },\n { x: roomItem.coords![2].x, y: sizeInput / 2 },\n { x: roomItem.coords![3].x, y: sizeInput / 2 },\n { x: roomItem.coords![4].x, y: -sizeInput / 2 },\n ];\n }\n\n // const min = parseInt($('#EditCoteDialog-minValue', window.parent.document).val());\n // const max = parseInt($('#EditCoteDialog-maxValue', window.parent.document).val());\n\n //todo: fix min and max\n // if ((!uncap && sizeInput > max) || sizeInput < min) {\n // return;\n // }\n\n roomItem.coordsReal = roomItem.coords?.map((x) => PointUtils.translation(x, roomItem.graphTranslation!));\n\n roomItem.width = qSVG.measure(roomItem.coordsReal![0], roomItem.coordsReal![1]);\n roomItem.height = qSVG.measure(roomItem.coordsReal![1], roomItem.coordsReal![2]);\n roomItem.coords = this.roomItemCoordsRealToCoords(roomItem.width, roomItem.height);\n roomItem.graphTranslation = this.roomItemCoordsRealToGraphTranslation(\n roomItem.coordsReal,\n roomItem.width,\n roomItem.height\n );\n\n // binder.coordsReal = roomItem.coordsReal;\n // binder.coords = roomItem.coords;\n // binder.collisions = roomItem.collisions;\n\n // $('.roomitem-' + roomItemId + '-class > polygon').attr(\n // 'points',\n // roomItem.coords.map((p) => p.x + ',' + p.y).join(' ')\n // );\n\n //roomItemCoteCreation(roomItem); //todo: show cote\n //recenterRoomItem(roomItem, roomItem.graphTranslation);\n //applyLaize();\n }\n public static recenterRoomItem(roomItem: IRoomItem, customSnap: CoordPoint, rooms: Array) {\n const polyCollision = SATUtils.getPolyCollision();\n const polyPoints = roomItem.coords!.map((p) => PointUtils.translation(p, customSnap));\n polyCollision.setPoints?.(polyPoints);\n\n let isInsideRoomId = CollisionCreateRoomFactory.testIfPolygonAContainedIn(polyPoints, rooms);\n let point = isInsideRoomId\n ? customSnap\n : WallUtils.nearWallFrom(customSnap, Infinity, this.GetWallsWithInnerPaddingForRoomItem(roomItem, rooms));\n if (!isInsideRoomId) {\n isInsideRoomId = (point as WallSelected).roomId;\n }\n roomItem.roomId = isInsideRoomId;\n roomItem.coordsReal = roomItem.coords?.map((x) => PointUtils.translation(x, point as CoordPoint));\n roomItem.graphTranslation = point as CoordPoint;\n }\n\n // public static roomItemCoteCreation(ribRoomItem:IRoomItem, sideToShow?:boolean) {\n // if (!ribRoomItem) {\n // return;\n // }\n // $('#boxRib').empty();\n\n // var degreeCoords = [0, 90, 180, -90]; //roomItem coords should always follow this order\n\n // const adjacentRoomItems = getRoomItemAdjacentList(ribRoomItem);\n\n // if (ribRoomItem.id && !$('#ribs-room-' + ribRoomItem.id).length) {\n // $('#boxRib').append(\n // qSVG.create('ici', 'g', {\n // id: 'ribs-room-item-' + ribRoomItem.roomId,\n // class: 'room-item-' + ribRoomItem.id,\n // })\n // );\n // }\n\n // for (var i = 0; i < ribRoomItem.coordsReal.length - 1; i++) {\n // if (sideToShow === undefined || sideToShow.includes(degreeCoords[i])) {\n // var ribStart = ribRoomItem.coordsReal[i];\n // var ribEnd = ribRoomItem.coordsReal[i + 1];\n\n // var adjRoomItem = adjacentRoomItems.find((x) => x[0].id === ribRoomItem.id + '-' + degreeCoords[i]);\n\n // createRoomItemCote(\n // ribRoomItem.roomId,\n // ribRoomItem.id,\n // ribStart,\n // ribEnd,\n // adjRoomItem ? 'inside' : 'outside',\n // (qSVG.measure(ribStart, ribEnd) / meter) * 100,\n // degreeCoords[i]\n // );\n\n // if (adjRoomItem) {\n // createAdjacentCotes(adjRoomItem);\n // }\n // }\n // }\n\n // if (adjRoomItem) {\n // coteMode = 'adjacent';\n // } else {\n // coteMode = 'wall';\n // }\n // }\n\n public static getRoomItemSizeLimits(type: RoomItemType): RoomItemLimits {\n let hMinValue = RoomItemConstants.ROOM_ITEM_MIN_SIZE;\n const hMaxValue = RoomItemConstants.ROOM_ITEM_MAX_SIZE;\n\n let vMinValue = RoomItemConstants.ROOM_ITEM_MIN_SIZE;\n const vMaxValue = RoomItemConstants.ROOM_ITEM_MAX_SIZE;\n\n if (type === RoomItemType.Divider) {\n hMinValue = RoomItemConstants.ROOM_ITEM_DIVIDER_MIN_SIZE;\n vMinValue = RoomItemConstants.ROOM_ITEM_DIVIDER_MIN_SIZE;\n }\n\n return {\n horizontal: { min: hMinValue, max: hMaxValue },\n vertical: { min: vMinValue, max: vMaxValue },\n };\n }\n\n //! temporary. Change IRoomItem to class\n public static getRoomItemPartialWalls(roomItem: IRoomItem) {\n const walls = [];\n for (let i = 0; i < roomItem.coordsReal!.length - 1; i++) {\n const wallStart = roomItem.coordsReal![i];\n const wallEnd = roomItem.coordsReal![i + 1];\n walls.push({\n start: wallStart,\n end: wallEnd,\n angle: Math.atan2(wallEnd.y - wallStart.y, wallEnd.x - wallStart.x),\n });\n }\n return walls;\n }\n\n //! temporary\n public static getRoomItemWallByAngle(roomItem: IRoomItem, angle: number) {\n if (angle === 0) {\n return { start: roomItem.coordsReal![0], end: roomItem.coordsReal![1], angle: PointUtils.degreeToRad(0) };\n } else if (angle === 90) {\n return { start: roomItem.coordsReal![1], end: roomItem.coordsReal![2], angle: PointUtils.degreeToRad(90) };\n } else if (angle === 180) {\n return { start: roomItem.coordsReal![2], end: roomItem.coordsReal![3], angle: PointUtils.degreeToRad(180) };\n } else if (angle === -90) {\n return { start: roomItem.coordsReal![3], end: roomItem.coordsReal![4], angle: PointUtils.degreeToRad(-90) };\n }\n }\n}\n","import SAT from 'sat';\nimport { CoordPoint } from '../Types';\n\n//! used setPoints to update collisions props\n//! points and setPoints are methods from SAT libs\n//! todo: Rename SATPolygon\nexport interface RoomCollision {\n points: Array;\n setPoints?: (points: Array) => void;\n\n //! only manualy set in TestCase\n pos: CoordPoint;\n angle: number;\n offset: CoordPoint;\n calcPoints: Array;\n edges: Array;\n normals: Array;\n}\n\nexport class SATUtils {\n public static getPolyCollision = () => new SAT.Polygon() as never as RoomCollision;\n}\n","import { IOpening } from '../../Models/IOpening';\nimport { Editor } from '../Editor';\nimport { PointUtils } from '../PointUtils';\nimport { qSVG } from '../qSVG';\nimport { CoordPoint, WallLine } from '../Types';\n\nexport class WallTools {\n\n //take the wall and progressively (recursively) slide each openings of the wall.\n public static slideObjOnWall(wall: WallLine, openings: Array) {\n //todo TLE need refacto\n const objs = Editor.objFromWallRoom(wall, openings);\n const eq = Editor.createEquationFromWall(wall);\n for (let obj of objs) {\n let moved = false;\n const limits = PointUtils.limitObj(eq, obj.size!, obj as CoordPoint);\n if (!qSVG.btwn(limits[0].x, wall.start.x, wall.end.x)) {\n var diff1 = wall.start.x - limits[0].x;\n var diff2 = wall.end.x - limits[0].x;\n\n let newCoordinates;\n if (Math.abs(diff1) < Math.abs(diff2)) {\n newCoordinates = PointUtils.translation(obj as CoordPoint, { x: diff1, y: 0 });\n } else {\n newCoordinates = PointUtils.translation(obj as CoordPoint, { x: diff2, y: 0 });\n }\n obj.x = newCoordinates.x;\n obj.y = newCoordinates.y;\n obj.limit = PointUtils.limitObj(eq, obj.size!, obj as CoordPoint);\n\n //obj.update(); //todo: rerender\n moved = true;\n }\n\n if (!qSVG.btwn(limits[0].y, wall.start.y, wall.end.y)) {\n const diff1 = wall.start.y - limits[0].y;\n const diff2 = wall.end.y - limits[0].y;\n\n let newCoordinates;\n if (Math.abs(diff1) < Math.abs(diff2)) {\n newCoordinates = PointUtils.translation(obj as CoordPoint, { x: 0, y: diff1 });\n } else {\n newCoordinates = PointUtils.translation(obj as CoordPoint, { x: 0, y: diff2 });\n }\n obj.x = newCoordinates.x;\n obj.y = newCoordinates.y;\n obj.limit = PointUtils.limitObj(eq, obj.size!, obj as CoordPoint);\n moved = true;\n\n //obj.update(); //todo : rerender\n }\n\n if (!qSVG.btwn(limits[1].x, wall.start.x, wall.end.x)) {\n const diff1 = wall.start.x - limits[1].x;\n const diff2 = wall.end.x - limits[1].x;\n\n let newCoordinates;\n if (Math.abs(diff1) < Math.abs(diff2)) {\n newCoordinates = PointUtils.translation(obj as CoordPoint, { x: diff1, y: 0 });\n } else {\n newCoordinates = PointUtils.translation(obj as CoordPoint, { x: diff2, y: 0 });\n }\n obj.x = newCoordinates.x;\n obj.y = newCoordinates.y;\n obj.limit = PointUtils.limitObj(eq, obj.size!, obj as CoordPoint);\n moved = true;\n //obj.update(); //todo: rerender\n }\n\n if (!qSVG.btwn(limits[1].y, wall.start.y, wall.end.y)) {\n const diff1 = wall.start.y - limits[1].y;\n const diff2 = wall.end.y - limits[1].y;\n\n let newCoordinates;\n if (Math.abs(diff1) < Math.abs(diff2)) {\n newCoordinates = PointUtils.translation(obj as CoordPoint, { x: 0, y: diff1 });\n } else {\n newCoordinates = PointUtils.translation(obj as CoordPoint, { x: 0, y: diff2 });\n }\n obj.x = newCoordinates.x;\n obj.y = newCoordinates.y;\n obj.limit = PointUtils.limitObj(eq, obj.size!, obj as CoordPoint);\n moved = true;\n //obj.update();\n }\n\n if (moved) {\n //find on which side the last opening is, substract the corresponding portion of the wall\n const distanceFromEachSides = [\n PointUtils.getClosestPointIndex(wall.start, obj.limit!),\n PointUtils.getClosestPointIndex(wall.end, obj.limit!),\n ];\n if (distanceFromEachSides[0].closestPointDistance < distanceFromEachSides[1].closestPointDistance) {\n //recursive call to handle colliding openings.\n this.slideObjOnWall({ ...wall, start: obj.limit![(distanceFromEachSides[0].closestPointIndex + 1) % 2] }, openings);\n } else {\n this.slideObjOnWall({ ...wall, end: obj.limit![(distanceFromEachSides[1].closestPointIndex + 1) % 2] }, openings);\n }\n }\n\n //* UPDATE OPENINGS COORD\n openings.forEach(opening => {\n if (opening.openingId === obj.openingId) {\n opening.x = obj.x;\n opening.y = obj.y;\n opening.limit = obj.limit;\n }\n })\n }\n }\n\n}\n","import _ from 'lodash';\n\nimport { ObjectUtils } from '../../../../Helpers/ObjectUtils';\nimport { MapConstants } from '../../MapConstants';\nimport { IOpening } from '../../Models/IOpening';\nimport { IRoom, RoomShape, RoomType } from '../../Models/IRoom';\nimport { IRoomItem } from '../../Models/IRoomItem';\nimport { Editor } from '../Editor';\nimport { isObjectsEquals } from '../Funcs';\nimport { PointUtils } from '../PointUtils';\nimport { CoordPoint, Equation, EquationOpening, LineCoordPoint, Wall, WallLine } from '../Types';\nimport { qSVG } from '../qSVG';\nimport { WallTools } from './WallTools';\nimport { WallUtils } from './WallUtils';\n\ntype WallMoveParams = {\n binder: Wall;\n walls: Array;\n rooms: Array;\n openings: Array;\n equationFollowers?: Array;\n\n equation1: Equation;\n equation2: Equation;\n equation3: Equation;\n equationsObj: Array;\n\n simulation?: boolean;\n};\n\nexport type WallMoveResult = {\n walls: Array;\n rooms: Array;\n openings: Array;\n wallMoveSuccess?: boolean;\n};\nexport class WallMove {\n public static MAX_UPPER_SIMULATE_LIMIT = 3999; //in cm\n public static SIZE_INCREMENT = 20; //in cm\n\n //** Simulate moving a wall to get the the upper size limit */\n public static wallResizeSimulate(\n originTargetWall: Wall,\n originOpenings: Array = [],\n originRooms: Array = [],\n originRoomItems: Array,\n originWalls: Array = []\n ) {\n const {\n originTargetWall: targetWall,\n originOpenings: openings,\n originRooms: rooms,\n originRoomItems: roomItems,\n originWalls: walls,\n } = ObjectUtils.clone({ originTargetWall, originOpenings, originRooms, originRoomItems, originWalls });\n targetWall.child = ObjectUtils.clone(originTargetWall.child);\n targetWall.parent = ObjectUtils.clone(originTargetWall.parent);\n\n const meter = MapConstants.meter;\n const wall = this.getResizeBindedWall(targetWall, true)!; //binding one of the siblings wall to make the resize;\n const originalWallSize = (qSVG.measure(targetWall.start, targetWall.end) * 100) / meter;\n\n const room = rooms.find((x) => x.roomId === targetWall.roomId)!;\n const SIZE_INCREMENT = room.type === RoomType.Sol ? 20 : 7; //in cm\n\n const boudingBox = PointUtils.calculateBoundingBox({ walls, roomItems })!; //optimisation pour la simulation\n switch (wall.angle) {\n case 0:\n if (boudingBox.yMin === wall.start.y) {\n return this.MAX_UPPER_SIMULATE_LIMIT;\n }\n break;\n case Math.PI / 2:\n if (boudingBox.xMax === wall.start.x) {\n return this.MAX_UPPER_SIMULATE_LIMIT;\n }\n break;\n case Math.PI:\n if (boudingBox.yMax === wall.start.y) {\n return this.MAX_UPPER_SIMULATE_LIMIT;\n }\n break;\n case -Math.PI / 2:\n if (boudingBox.xMin === wall.start.x) {\n return this.MAX_UPPER_SIMULATE_LIMIT;\n }\n break;\n }\n\n let oldSize, maxSize;\n oldSize = originalWallSize;\n\n for (let j = 0; j < this.MAX_UPPER_SIMULATE_LIMIT; j += SIZE_INCREMENT) {\n this.prepareWallMove(targetWall, wall, oldSize + SIZE_INCREMENT, openings, rooms, walls, true);\n const wallSize = WallUtils.wallSize(targetWall);\n if (oldSize === wallSize) {\n break;\n }\n oldSize = wallSize;\n }\n maxSize = oldSize;\n\n this.prepareWallMove(targetWall, wall, originalWallSize, openings, rooms, walls);\n\n return maxSize;\n }\n\n public static prepareWallMove = (\n targetWall: Wall,\n binder: Wall,\n newSize: number,\n openings: Array,\n rooms: Array,\n walls: Array,\n simulation?: boolean\n ): WallMoveResult => {\n const meter = MapConstants.meter;\n let moveSize;\n if (targetWall.sideName === 'table' && binder.sideName === 'table') {\n moveSize = (newSize * meter) / 100;\n } else if (\n (targetWall.sideName === 'left_crown' || targetWall.sideName === 'right_crown') &&\n binder.sideName === 'table'\n ) {\n // const wall_right_crown = ROOM.find(x => x.roomId === targetWall.roomId).walls.find(x => x.sideName === 'right_crown');\n // qSVG.measure(wall_right_crown.start, wall_right_crown.end);\n const wallTable = binder;\n const sideSize = qSVG.measure({ x: wallTable.start.x, y: wallTable.end.y }, wallTable.start);\n const newSideSize = sideSize - (newSize - WallUtils.wallSize(targetWall));\n const newTableSize = Math.sqrt(newSideSize * newSideSize + newSideSize * newSideSize);\n moveSize = newTableSize;\n } else {\n moveSize = (newSize * meter) / 100 - WallUtils.wallSize(targetWall); //relative new size\n }\n\n const newWallCoords = this.getNewWallCoordinates(binder, targetWall, moveSize, walls); //1 meter\n if (binder.sideName === 'right_crown') {\n // exception for diagonal wall (e.g. table)\n let tableEquation = Editor.createEquationFromWall(binder.parent!);\n let newRightCrownEquation = Editor.createEquationFromWall(newWallCoords);\n newWallCoords.start = qSVG.intersectionOfEquations(\n tableEquation,\n newRightCrownEquation,\n 'obj'\n ) as CoordPoint;\n } else if (binder.sideName === 'left_crown') {\n let tableEquation = Editor.createEquationFromWall(binder.child!);\n let newLeftCrownEquation = Editor.createEquationFromWall(newWallCoords);\n newWallCoords.end = qSVG.intersectionOfEquations(tableEquation, newLeftCrownEquation, 'obj') as CoordPoint;\n }\n\n const equation1 = qSVG.createEquation(\n binder.parent!.start.x,\n binder.parent!.start.y,\n newWallCoords.start.x,\n newWallCoords.start.y\n );\n const equation2 = qSVG.createEquation(\n newWallCoords.start.x,\n newWallCoords.start.y,\n newWallCoords.end.x,\n newWallCoords.end.y\n );\n //!NOT USED\n const equation3 = qSVG.createEquation(\n newWallCoords.end.x,\n newWallCoords.end.y,\n binder.child!.end.x,\n binder.child!.end.y\n );\n\n const equationFollowers: Array = [];\n\n let equationsObj: Array = [];\n const wallOpenings = Editor.objFromWall(binder, openings); // LIST Opening ON EDGE\n wallOpenings.forEach((opening) => {\n equationsObj.push({\n obj: opening,\n wall: binder,\n eq: qSVG.perpendicularEquation(equation2, opening.x!, opening.y!)!,\n });\n });\n const result = this.wallMove({\n binder,\n rooms,\n openings,\n walls,\n equationFollowers,\n equationsObj,\n equation1,\n equation2,\n equation3,\n simulation,\n });\n return result;\n };\n\n public static getResizeBindedWall(targetWall: Wall, simulation?: boolean, reset?: boolean) {\n switch (targetWall.roomShape) {\n case RoomShape.Rectangle:\n return targetWall.child;\n case RoomShape.Diamond_topleft:\n case RoomShape.Diamond_topright:\n case RoomShape.Diamond_bottomleft:\n case RoomShape.Diamond_bottomright:\n switch (targetWall.sideName) {\n case 'table':\n return this.chooseWallNotYetMoved([targetWall], simulation, reset);\n case 'left_crown':\n case 'left_pavilion':\n return this.chooseWallNotYetMoved([targetWall.parent!, targetWall.child!], simulation, reset);\n case 'right_crown':\n case 'right_pavilion':\n return this.chooseWallNotYetMoved([targetWall.child!, targetWall.parent!], simulation, reset);\n }\n break;\n\n case RoomShape.Flyingwing_topleft:\n case RoomShape.Flyingwing_topright:\n case RoomShape.Flyingwing_bottomleft:\n case RoomShape.Flyingwing_bottomright:\n switch (targetWall.sideName) {\n case 'left_leading_edge':\n case 'right_wingtip':\n case 'right_trailing_edge':\n return this.chooseWallNotYetMoved([targetWall.parent!, targetWall.child!], simulation, reset);\n case 'right_leading_edge':\n case 'left_trailing_edge':\n case 'left_wingtip':\n return this.chooseWallNotYetMoved([targetWall.child!, targetWall.parent!], simulation, reset);\n }\n break;\n\n case RoomShape.U_top:\n case RoomShape.U_right:\n case RoomShape.U_bottom:\n case RoomShape.U_left:\n switch (targetWall.sideName) {\n case 'left_tip':\n case 'interior_base':\n case 'right_exterior_edge':\n case 'right_interior_edge':\n return this.chooseWallNotYetMoved([targetWall.parent!, targetWall.child!], simulation, reset);\n case 'left_interior_edge':\n case 'right_tip':\n case 'exterior_base':\n case 'left_exterior_edge':\n return this.chooseWallNotYetMoved([targetWall.parent!, targetWall.child!], simulation, reset);\n }\n break;\n\n case RoomShape.Custom:\n default:\n return targetWall.child;\n }\n }\n\n public static chooseWallNotYetMoved(wallsSelection: Array, simulation?: boolean, reset?: boolean) {\n // choose a wall not yet moved, if possible\n if (reset) {\n this.resetCoteManuallySetted(wallsSelection);\n }\n for (const wall of wallsSelection) {\n if (!wall.coteManuallySetted) {\n if (!simulation) {\n wall.coteManuallySetted = true;\n }\n return wall;\n }\n }\n return wallsSelection[wallsSelection.length - 1];\n }\n\n public static resetCoteManuallySetted(wallsSelection: Array) {\n for (const wall of wallsSelection) {\n wall.coteManuallySetted = false;\n }\n }\n\n public static getNewWallCoordinates(wall: Wall, originWall: Wall, moveSize: number, walls: Array): WallLine {\n //in internal unit (relative) except for table side (absolute)\n if (wall.sideName === 'table') {\n const eqParent = Editor.createEquationFromWall(wall.parent!);\n const eqChild = Editor.createEquationFromWall(wall.child!);\n const projectedpoint = qSVG.intersectionOfEquations(eqParent, eqChild, 'object') as CoordPoint;\n\n const distanceProjectPointToWallEdges = Math.sqrt((moveSize * moveSize) / 2);\n\n return {\n start: {\n x:\n projectedpoint.x +\n _.round(Math.cos(wall.child!.child!.angle) * distanceProjectPointToWallEdges, 5),\n y:\n projectedpoint.y +\n _.round(Math.sin(wall.child!.child!.angle) * distanceProjectPointToWallEdges, 5),\n },\n end: {\n x: projectedpoint.x + _.round(Math.cos(wall.child!.angle) * distanceProjectPointToWallEdges, 5),\n y: projectedpoint.y + _.round(Math.sin(wall.child!.angle) * distanceProjectPointToWallEdges, 5),\n },\n };\n } else if (wall.sideName === 'interior_base') {\n const minSize = MapConstants.wallMinSize();\n const leftExteriorEdge = walls.find(\n (x) => x.roomId === wall.roomId && x.sideName === 'left_exterior_edge'\n )!;\n const parentMaxSize = WallUtils.wallSize(leftExteriorEdge) - minSize;\n const parentSize = WallUtils.wallSize(wall.parent!);\n const newParentSize = parentSize + moveSize;\n\n if (newParentSize > parentMaxSize) {\n moveSize = parentMaxSize - parentSize;\n }\n }\n\n let directionAngle =\n (wall.sideName === 'left_trailing_edge' && originWall.sideName === 'right_trailing_edge') ||\n (wall.sideName === 'right_trailing_edge' && originWall.sideName === 'left_trailing_edge')\n ? this.Add90Clockwise(wall.angle)\n : this.Add90CounterClockwise(wall.angle);\n return {\n start: {\n x: wall.start.x + _.round(Math.cos(directionAngle) * moveSize, 5),\n y: wall.start.y + _.round(Math.sin(directionAngle) * moveSize, 5),\n },\n end: {\n x: wall.end.x + _.round(Math.cos(directionAngle) * moveSize, 5),\n y: wall.end.y + _.round(Math.sin(directionAngle) * moveSize, 5),\n },\n };\n }\n\n public static Add90CounterClockwise(angle: number) {\n switch (angle) {\n case 0:\n return -Math.PI / 2;\n case Math.PI / 2:\n return 0;\n case Math.PI:\n return Math.PI / 2;\n case -Math.PI / 2:\n return Math.PI;\n default:\n return 0;\n }\n }\n\n public static Add90Clockwise = (angle: number) => {\n switch (angle) {\n case 0:\n return Math.PI / 2;\n case Math.PI / 2:\n return Math.PI;\n case Math.PI:\n return -Math.PI / 2;\n case -Math.PI / 2:\n return 0;\n default:\n return 0;\n }\n };\n\n public static ribWallMove(wall: Wall) {\n const binderAngle = [\n wall.parent!.angle * (180 / Math.PI),\n wall.angle * (180 / Math.PI),\n wall.child!.angle * (180 / Math.PI),\n ];\n\n const ribWalls = [wall.parent];\n if (binderAngle.find((x) => x !== 0 && x !== 90 && x !== 180 && x !== -90)) {\n ribWalls.push(wall);\n }\n ribWalls.push(wall.child);\n\n //todo: rerender wall\n //wallsCoteCreation(ribWalls);\n }\n\n public static checkIfRightAngled(angle: number) {\n return angle === 0 || angle === -90 || angle === 90 || angle === 180;\n }\n\n public static equalWithTolerance(valueA: number, valueB: number, tolerance: number) {\n return valueA > valueB - tolerance && valueA < valueB + tolerance;\n }\n\n public static wallLimitResize(\n targetWall: Wall,\n newSize: number,\n openings: IOpening[],\n rooms: IRoom[],\n walls: Wall[]\n ) {\n const wall = this.getResizeBindedWall(targetWall)!; //binding one of the siblings wall to make the resize;\n return this.prepareWallMove(targetWall, wall, newSize, openings, rooms, walls); // #20794 stackoverflow fix may produce not desired behaviour\n }\n\n // On prend la différence entre la nouvelle équation2 et l'équation2 actuelle, on execute wallMove tous les 10cm\n // Cela évite les chevauchement avec des mouvements de souris vif\n public static wallMoveSmooth(params: WallMoveParams): WallMoveResult {\n const { binder, equation1: previousEquation1, equation2, equation3: previousEquation3 } = params;\n const equation1 = Editor.createEquationFromWall(binder.parent!, previousEquation1);\n const previous_equation2 = Editor.createEquationFromWall(binder);\n const equation3 = Editor.createEquationFromWall(binder.child!, previousEquation3);\n\n const ten_cm = MapConstants.meter * 0.1;\n const difference = equation2.B - previous_equation2.B;\n const sectionModulo = difference % ten_cm;\n const differenceWithoutModulo = difference - sectionModulo;\n const number_of_sections = Math.abs(differenceWithoutModulo !== 0 ? differenceWithoutModulo / ten_cm : 0);\n const iterator = differenceWithoutModulo / number_of_sections;\n\n let moveResult: WallMoveResult = { walls: params.walls, rooms: params.rooms, openings: params.openings };\n equation2.B -= differenceWithoutModulo;\n moveResult = this.wallMove({ ...params, equation1, equation3 });\n for (let i = 0; i < number_of_sections; i++) {\n equation2.B += iterator;\n moveResult = this.wallMove({ ...params, equation1, equation3 });\n if (!moveResult.wallMoveSuccess) {\n break;\n }\n }\n\n return moveResult;\n }\n\n public static wallMove(params: WallMoveParams): WallMoveResult {\n let {\n binder,\n walls,\n rooms,\n openings,\n equationFollowers = [],\n equation1,\n equation2,\n equation3,\n equationsObj,\n simulation = false,\n } = params;\n let intersection1 = qSVG.intersectionOfEquations(equation1, equation2, 'obj') as CoordPoint;\n let intersection2 = qSVG.intersectionOfEquations(equation2, equation3, 'obj') as CoordPoint;\n\n if (binder.parent) {\n if (isObjectsEquals(binder.parent.end, binder.start)) {\n binder.parent.end = intersection1;\n } else if (isObjectsEquals(binder.parent.start, binder.start)) {\n binder.parent.start = intersection1;\n } else {\n binder.parent.end = intersection1;\n }\n }\n\n if (binder.child) {\n if (isObjectsEquals(binder.child.start, binder.end)) {\n binder.child.start = intersection2;\n } else if (isObjectsEquals(binder.child.end, binder.end)) {\n binder.child.end = intersection2;\n } else {\n binder.child.start = intersection2;\n }\n }\n\n binder.start = intersection1;\n binder.end = intersection2;\n\n // THE EQ FOLLOWED BY eq (PARENT EQ1 --- CHILD EQ3)\n if (equation1.follow) {\n if (!qSVG.rayCasting(intersection1, equation1.backUp!.coords)) {\n // IF OUT OF WALL FOLLOWED\n var distanceFromStart = qSVG.gap(equation1.backUp!.start, intersection1);\n var distanceFromEnd = qSVG.gap(equation1.backUp!.end, intersection1);\n if (distanceFromStart > distanceFromEnd) {\n // NEAR FROM End\n equation1.follow.end = intersection1;\n } else {\n equation1.follow.start = intersection1;\n }\n } else {\n equation1.follow.end = equation1.backUp!.end;\n equation1.follow.start = equation1.backUp!.start;\n }\n }\n if (equation3.follow) {\n if (!qSVG.rayCasting(intersection2, equation3.backUp!.coords)) {\n // IF OUT OF WALL FOLLOWED\n const distanceFromStart = qSVG.gap(equation3.backUp!.start, intersection2);\n const distanceFromEnd = qSVG.gap(equation3.backUp!.end, intersection2);\n if (distanceFromStart > distanceFromEnd) {\n // NEAR FROM End\n equation3.follow.end = intersection2;\n } else {\n equation3.follow.start = intersection2;\n }\n } else {\n equation3.follow.end = equation3.backUp!.end;\n equation3.follow.start = equation3.backUp!.start;\n }\n }\n\n equationFollowers.forEach((equationFollower, i) => {\n const intersectionFollower = qSVG.intersectionOfEquations(\n equationFollower.eq,\n equation2,\n 'obj'\n ) as CoordPoint;\n if (\n qSVG.btwn(intersectionFollower.x, binder.start.x, binder.end.x, 'round') &&\n qSVG.btwn(intersectionFollower.y, binder.start.y, binder.end.y, 'round')\n ) {\n const size = qSVG.measure(equationFollower.wall.start, equationFollower.wall.end);\n if (equationFollower.type === 'start') {\n equationFollower.wall.start = intersectionFollower;\n if (size < 5) {\n if (!equationFollower.wall.child) {\n walls.splice(walls.indexOf(equationFollower.wall), 1);\n equationFollowers.splice(i, 1);\n }\n }\n }\n if (equationFollower.type === 'end') {\n equationFollower.wall.end = intersectionFollower;\n if (size < 5) {\n if (!equationFollower.wall.parent) {\n walls.splice(walls.indexOf(equationFollower.wall), 1);\n equationFollowers.splice(i, 1);\n }\n }\n }\n }\n });\n\n if (!simulation) {\n Editor.wallsComputing(walls, 'move');\n const wallPolygons = qSVG.polygonize(walls);\n Editor.setRoomCoordsFromWall(wallPolygons, rooms, walls);\n\n // OBJDATA(s) FOLLOW 90° EDGE SELECTED\n equationsObj.forEach((equationObj) => {\n const objTarget = equationObj.obj;\n equation2 = Editor.createEquationFromWall(binder);\n equationObj.eq = qSVG.perpendicularEquation(equation2, objTarget.x!, objTarget.y!)!;\n const intersectionObj = qSVG.intersectionOfEquations(equationObj.eq, equation2) as Array;\n // NEW COORDS OBJDATA[o]\n objTarget.x = intersectionObj[0];\n objTarget.y = intersectionObj[1];\n const limits = PointUtils.limitObj(equation2, objTarget.size!, objTarget as CoordPoint);\n\n //SI objtaget n'est pas sur un mur\n //chercher l'intersection le plus proche\n\n //ou faire des simulations\n\n if (!qSVG.btwn(limits[0].x, binder.start.x, binder.end.x, false, MapConstants.tolerance_round_value)) {\n if (\n qSVG.btwn(binder.start.x, limits[0].x, limits[1].x, false, MapConstants.tolerance_round_value)\n ) {\n //take start wall point as reference\n const measure = qSVG.measure(\n { x: objTarget.x! - objTarget.size! / 2, y: objTarget.y! },\n binder.start\n );\n objTarget.x! += measure;\n } else if (\n qSVG.btwn(binder.end.x, limits[0].x, limits[1].x, false, MapConstants.tolerance_round_value)\n ) {\n //take end wall point as reference\n const measure = qSVG.measure(limits[0], binder.end);\n objTarget.x! -= measure;\n }\n }\n if (!qSVG.btwn(limits[1].x, binder.start.x, binder.end.x, false, MapConstants.tolerance_round_value)) {\n if (\n qSVG.btwn(binder.start.x, limits[0].x, limits[1].x, false, MapConstants.tolerance_round_value)\n ) {\n //take start wall point as reference\n const measure = qSVG.measure(limits[1], binder.start);\n objTarget.x! -= measure;\n } else if (\n qSVG.btwn(binder.end.x, limits[0].x, limits[1].x, false, MapConstants.tolerance_round_value)\n ) {\n //take end wall point as reference\n const measure = qSVG.measure(limits[1], binder.end);\n objTarget.x! += measure;\n }\n }\n\n if (!qSVG.btwn(limits[0].y, binder.start.y, binder.end.y, false, MapConstants.tolerance_round_value)) {\n if (\n qSVG.btwn(binder.start.y, limits[0].y, limits[1].y, false, MapConstants.tolerance_round_value)\n ) {\n //take start wall point as reference\n const measure = qSVG.measure(limits[0], binder.start);\n objTarget.y! += measure;\n } else if (\n qSVG.btwn(binder.end.y, limits[0].y, limits[1].y, false, MapConstants.tolerance_round_value)\n ) {\n //take end wall point as reference\n const measure = qSVG.measure(limits[0], binder.end);\n objTarget.y! += measure;\n }\n }\n\n if (!qSVG.btwn(limits[1].y, binder.start.y, binder.end.y, false, MapConstants.tolerance_round_value)) {\n if (\n qSVG.btwn(binder.start.y, limits[0].y, limits[1].y, false, MapConstants.tolerance_round_value)\n ) {\n //take start wall point as reference\n const measure = qSVG.measure(limits[1], binder.start);\n objTarget.y! -= measure;\n } else if (\n qSVG.btwn(binder.end.y, limits[0].y, limits[1].y, false, MapConstants.tolerance_round_value)\n ) {\n //take end wall point as reference\n const measure = qSVG.measure(limits[1], binder.end);\n objTarget.y! += measure;\n }\n }\n\n objTarget.limit = limits;\n\n //* FIX NEW COORD\n openings.forEach((opening) => {\n if (opening.openingId === objTarget.openingId) {\n opening.x = objTarget.x;\n opening.y = objTarget.y;\n opening.limit = objTarget.limit;\n }\n });\n });\n\n const siblingWalls: Array = [\n { start: intersection1, end: intersection2, roomId: binder.roomId },\n { start: binder.parent!.start, end: intersection1, roomId: binder.roomId },\n { start: intersection2, end: binder.child!.end, roomId: binder.roomId },\n ];\n\n siblingWalls.forEach((siblingWall) => {\n const objWall = Editor.objFromWall(siblingWall, openings); // LIST OBJ ON EDGE\n for (let ob in objWall) {\n const objTarget = objWall[ob];\n const eq = Editor.createEquationFromWall(siblingWall);\n const limits = PointUtils.limitObj(eq, objTarget.size!, objTarget as CoordPoint);\n if (\n !qSVG.btwn(limits[0].x, siblingWall.start.x, siblingWall.end.x) ||\n !qSVG.btwn(limits[0].y, siblingWall.start.y, siblingWall.end.y) ||\n !qSVG.btwn(limits[1].x, siblingWall.start.x, siblingWall.end.x) ||\n !qSVG.btwn(limits[1].y, siblingWall.start.y, siblingWall.end.y)\n ) {\n WallTools.slideObjOnWall(siblingWall, openings);\n }\n }\n });\n }\n\n return { walls, rooms, openings, wallMoveSuccess: true };\n }\n\n public static wallMoveMinSizeBlock(targetWall: Wall) {\n const parentWall = targetWall.parent;\n const childWall = targetWall.child;\n\n if (\n (parentWall &&\n WallUtils.wallSize(parentWall) + MapConstants.tolerance_round_value < (parentWall.minimumSize ?? 0)) ||\n (childWall &&\n WallUtils.wallSize(childWall) + MapConstants.tolerance_round_value < (childWall.minimumSize ?? 0))\n ) {\n return true;\n }\n return false;\n }\n\n public static direction(a: CoordPoint, b: CoordPoint, c: CoordPoint) {\n const val = (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y);\n if (val === 0) {\n return 0;\n } else if (val < 0) {\n return 2;\n }\n return 1;\n }\n\n public static isIntersect(l1: LineCoordPoint, l2: LineCoordPoint) {\n let dir1 = this.direction(l1.p1, l1.p2, l2.p1);\n let dir2 = this.direction(l1.p1, l1.p2, l2.p2);\n let dir3 = this.direction(l2.p1, l2.p2, l1.p1);\n let dir4 = this.direction(l2.p1, l2.p2, l1.p2);\n\n if (dir1 !== dir2 && dir3 !== dir4) {\n return true;\n }\n if (dir1 === 0 && this.onLine(l1, l2.p1)) {\n return true;\n }\n if (dir2 === 0 && this.onLine(l1, l2.p2)) {\n return true;\n }\n if (dir3 === 0 && this.onLine(l2, l1.p1)) {\n return true;\n }\n if (dir4 === 0 && this.onLine(l2, l1.p2)) {\n return true;\n }\n return false;\n }\n\n public static onLine(l1: LineCoordPoint, p: CoordPoint) {\n return (\n p.x <= Math.max(l1.p1.x, l1.p2.x) &&\n p.x <= Math.min(l1.p1.x, l1.p2.x) &&\n p.y <= Math.max(l1.p1.y, l1.p2.y) &&\n p.y <= Math.min(l1.p1.y, l1.p2.y)\n );\n }\n\n public static intersect(l1: LineCoordPoint, l2: LineCoordPoint) {\n // Check if none of the lines are of length 0\n if ((l1.p1.x === l1.p2.x && l1.p1.y === l1.p2.y) || (l2.p1.x === l2.p2.x && l2.p1.y === l2.p2.y)) {\n return false;\n }\n\n const denominator = (l2.p2.y - l2.p1.y) * (l1.p2.x - l1.p1.x) - (l2.p2.x - l2.p1.x) * (l1.p2.y - l1.p1.y);\n\n // Lines are parallel\n if (denominator === 0) {\n return false;\n }\n\n let ua = ((l2.p2.x - l2.p1.x) * (l1.p1.y - l2.p1.y) - (l2.p2.y - l2.p1.y) * (l1.p1.x - l2.p1.x)) / denominator;\n let ub = ((l1.p2.x - l1.p1.x) * (l1.p1.y - l2.p1.y) - (l1.p2.y - l1.p1.y) * (l1.p1.x - l2.p1.x)) / denominator;\n\n // is the intersection along the segments\n if (ua < 0 || ua > 1 || ub < 0 || ub > 1) {\n return false;\n }\n\n // Return a object with the x and y coordinates of the intersection\n let x = l1.p1.x + ua * (l1.p2.x - l1.p1.x);\n let y = l1.p1.y + ua * (l1.p2.y - l1.p1.y);\n\n return { x, y };\n }\n}\n","import { ObjectUtils } from '../../../../Helpers/ObjectUtils';\nimport { ILaizeOpening, ILaizeWall } from '../../Components/Laizes/LaizeCalc';\nimport { MapConstants } from '../../MapConstants';\nimport { IOpening } from '../../Models/IOpening';\nimport { IRoom, RoomShape } from '../../Models/IRoom';\nimport { IRoomItem } from '../../Models/IRoomItem';\nimport { Editor } from '../Editor';\nimport { PointUtils } from '../PointUtils';\nimport { qSVG } from '../qSVG';\nimport { AdjacentRooms, BestVertice, CoordPoint, Wall, WallLine, WallSelected } from '../Types';\n\nexport enum WallResizeDirection {\n Both = 'Both',\n FixedStart = 'FixedStart',\n FixedEnd = 'FixedEnd',\n}\n\nexport class WallUtils {\n public static wallSize = (wall: WallLine) => {\n return (qSVG.measure(wall.start, wall.end) * 100) / MapConstants.meter;\n };\n\n public static createWall(pointA: CoordPoint, pointB: CoordPoint, sideName: string, room: IRoom) {\n const wall = Editor.wall(\n pointA,\n pointB,\n 'normal',\n MapConstants.wallMinSize(room.type),\n RoomShape.Custom, //room.shape,\n room.roomId,\n sideName\n );\n return wall;\n }\n public static refreshWallsMinimumSizeAndOriginalAngle(walls: Array, currentOpenings: Array) {\n for (const wall of walls) {\n let totalObjSizes = 0;\n for (const obj of Editor.objFromWallRoom(wall, currentOpenings)) {\n totalObjSizes += obj.size!;\n }\n wall.minimumSize = totalObjSizes;\n wall.originalAngle = wall.angle;\n }\n }\n\n public static getWallsAdjacentList = (\n walls: Array,\n allWalls: Array,\n roomItems: Array\n ): Array> => {\n //returns only list of wall\n let adjacentWalls = [];\n for (const wallA of walls) {\n for (const wallB of allWalls) {\n if (\n wallA !== wallB &&\n wallA.roomId !== wallB.roomId &&\n this.testIfWallAdjacent(wallA, wallB, allWalls, roomItems)\n ) {\n adjacentWalls.push([wallA, wallB]);\n }\n }\n }\n return adjacentWalls;\n };\n\n public static testIfWallAdjacent(wallA: Wall, wallB: Wall, walls: Array, roomItems: Array) {\n const tolerance_round_value = MapConstants.tolerance_round_value;\n if (wallA.angle === wallB.angle || Math.abs(Math.abs(wallA.angle) - Math.PI) === Math.abs(wallB.angle)) {\n if (\n (qSVG.btwn(wallB.start.x, wallA.start.x, wallA.end.x, false, tolerance_round_value) &&\n qSVG.btwn(wallB.start.y, wallA.start.y, wallA.end.y, false, tolerance_round_value)) ||\n (qSVG.btwn(wallB.end.x, wallA.start.x, wallA.end.x, false, tolerance_round_value) &&\n qSVG.btwn(wallB.end.y, wallA.start.y, wallA.end.y, false, tolerance_round_value)) ||\n (qSVG.btwn(wallA.start.x, wallB.start.x, wallB.end.x, false, tolerance_round_value) &&\n qSVG.btwn(wallA.start.y, wallB.start.y, wallB.end.y, false, tolerance_round_value)) ||\n (qSVG.btwn(wallA.end.x, wallB.start.x, wallB.end.x, false, tolerance_round_value) &&\n qSVG.btwn(wallA.end.y, wallB.start.y, wallB.end.y, false, tolerance_round_value))\n ) {\n //* To avoid #22870\n const points = [wallA.start, wallA.end, wallB.start, wallB.end];\n const supperposedPoint = PointUtils.getSupperposedPoints(points);\n if (supperposedPoint != null) {\n const bbox = PointUtils.calculateBoundingBox({ points });\n if (\n bbox &&\n (qSVG.strictlyBetween(supperposedPoint.x, bbox.xMin, bbox.xMax) ||\n qSVG.strictlyBetween(supperposedPoint.y, bbox.yMin, bbox.yMax))\n ) {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n }\n\n public static calculatePerimeter(walls: Array = []) {\n let value = 0;\n for (const wall of walls) {\n value += qSVG.measure(wall.start, wall.end);\n }\n return value;\n }\n\n public static determineAdjacentRooms(\n walls: Array = [],\n openings: Array,\n roomIds: Array\n ): Array {\n let adjacentRooms: Array = [];\n const wallsObjs = walls.map((wall) => Editor.objFromWall(wall, openings));\n for (const opening of openings) {\n let appearance: Array = [];\n for (const wallObjs of wallsObjs) {\n //! comment ça peut marcher\n //if (wallObjs.find((x) => x.openingId === opening.openingId)) {\n if (wallObjs.find((x) => x.openingId === opening.openingId)) {\n appearance.push(wallsObjs.indexOf(wallObjs));\n }\n }\n if (appearance.length > 1) {\n adjacentRooms.push({\n opening: opening,\n roomIds: appearance.map((x) => walls[x].roomId!).filter((x) => roomIds.includes(x)),\n openingAngle: opening.angle!,\n });\n }\n }\n return adjacentRooms;\n }\n\n public static isWallHorV(wall: WallLine) {\n return this.wallDirection(wall) === 'h' || this.wallDirection(wall) === 'v';\n }\n\n public static wallDirection(wall: WallLine) {\n const wallAngle = qSVG.angleRadToDeg(wall.angle!);\n return this.angleDirection(wallAngle);\n }\n\n //* when door mode placement activated\n public static nearWallOpening = (walls: Wall[], rooms: IRoom[], snap: CoordPoint, range: number = Infinity, fromRoomId?: string) => {\n let wallsToWorkWith = fromRoomId ? walls.filter((x) => x.roomId === fromRoomId) : walls;\n\n if (wallsToWorkWith.length === 0) {\n return undefined;\n }\n if (!fromRoomId) {\n //filter walls if snap is inside a room\n const snapedRoom = Editor.rayCastingRoom(snap, rooms);\n if (snapedRoom) {\n wallsToWorkWith = wallsToWorkWith.filter((x) => x.roomId === snapedRoom.roomId);\n }\n }\n\n return this.nearWallFromOpening(rooms, snap, range, wallsToWorkWith);\n };\n\n public static nearWallFromOpening = (rooms: IRoom[], snap: CoordPoint, range = Infinity, wallsToWorkWith: Wall[]): WallSelected | undefined => {\n let wallDistance = Infinity;\n let wallSelected: WallSelected | undefined = undefined;\n let result;\n\n for (let e = 0; e < wallsToWorkWith.length; e++) {\n const eq = qSVG.createEquation(\n wallsToWorkWith[e].start.x,\n wallsToWorkWith[e].start.y,\n wallsToWorkWith[e].end.x,\n wallsToWorkWith[e].end.y\n );\n result = qSVG.nearPointOnEquation(eq, snap);\n if (\n result.distance < wallDistance &&\n qSVG.btwn(result.x, wallsToWorkWith[e].start.x, wallsToWorkWith[e].end.x) &&\n qSVG.btwn(result.y, wallsToWorkWith[e].start.y, wallsToWorkWith[e].end.y)\n ) {\n wallDistance = result.distance;\n wallSelected = {\n wall: wallsToWorkWith[e],\n roomId: wallsToWorkWith[e].roomId,\n x: result.x,\n y: result.y,\n distance: result.distance,\n };\n }\n }\n\n if (wallDistance <= range) {\n return wallSelected;\n } else {\n return undefined;\n }\n };\n\n //* when click after door mode placement activated\n public static nearWall = (walls: Array, snap: CoordPoint, range: number = Infinity, fromRoomId?: string) => {\n const wallsToWorkWith = fromRoomId ? walls.filter((x) => x.roomId === fromRoomId) : walls;\n return this.nearWallFrom(snap, range, wallsToWorkWith);\n };\n\n /**\n * Finds the nearest wall.\n * Param prevWall can be used to prioritize this wall when deciding which wall is closer.\n */\n public static nearWallFrom = (\n snap: CoordPoint,\n range: number = Infinity,\n walls: Array,\n prevWall?: WallLine,\n excludeDiagWalls?: boolean\n ): WallSelected | undefined => {\n let wallsToWorkWith = walls;\n let wallDistance = Infinity;\n let wallSelected = undefined;\n let prevWallDistance = Infinity;\n let prevWallSelected = undefined;\n let result;\n let foundWall = false;\n if (wallsToWorkWith.length === 0) {\n return undefined;\n }\n\n if (excludeDiagWalls) {\n wallsToWorkWith = wallsToWorkWith.filter((x) => this.isWallHorV(x));\n }\n for (let e = 0; e < wallsToWorkWith.length; e++) {\n const eq = qSVG.createEquation(\n wallsToWorkWith[e].start.x,\n wallsToWorkWith[e].start.y,\n wallsToWorkWith[e].end.x,\n wallsToWorkWith[e].end.y\n );\n result = qSVG.nearPointOnEquation(eq, snap);\n if (\n result.distance < wallDistance &&\n qSVG.btwn(result.x, wallsToWorkWith[e].start.x, wallsToWorkWith[e].end.x) &&\n qSVG.btwn(result.y, wallsToWorkWith[e].start.y, wallsToWorkWith[e].end.y)\n ) {\n foundWall = true;\n wallDistance = result.distance;\n wallSelected = {\n wall: wallsToWorkWith[e],\n roomId: wallsToWorkWith[e].roomId,\n x: result.x,\n y: result.y,\n distance: result.distance,\n };\n } else if (prevWall && wallsToWorkWith[e] === prevWall) {\n prevWallDistance = result.distance;\n prevWallSelected = {\n wall: wallsToWorkWith[e],\n roomId: wallsToWorkWith[e].roomId,\n x: result.x,\n y: result.y,\n distance: result.distance,\n };\n }\n }\n\n if (prevWall && (!foundWall || prevWallDistance + 100 < wallDistance)) {\n wallDistance = prevWallDistance;\n wallSelected = prevWallSelected;\n }\n const vv = this.nearVertice(snap, 10000, wallsToWorkWith);\n\n if (vv && ((prevWall && vv.distance + 50 < wallDistance) || (!prevWall && vv.distance < wallDistance))) {\n wallDistance = vv.distance;\n wallSelected = {\n wall: vv.number,\n roomId: vv.roomId,\n x: vv.x,\n y: vv.y,\n distance: vv.distance,\n angle: vv.number.angle,\n };\n }\n return wallDistance <= range ? wallSelected : undefined;\n };\n\n public static nearVertice = (\n snap: CoordPoint,\n range: number = 10000,\n walls: Array\n ): BestVertice | undefined => {\n let bestDistance = Infinity;\n let bestVertice: BestVertice | undefined;\n for (let i = 0; i < walls.length; i++) {\n const wall = walls[i];\n\n const distance1 = qSVG.gap(snap, { x: wall.start.x, y: wall.start.y });\n const distance2 = qSVG.gap(snap, { x: wall.end.x, y: wall.end.y });\n\n if (distance1 < distance2 && distance1 < bestDistance) {\n bestDistance = distance1;\n bestVertice = {\n number: wall,\n x: wall.start.x,\n y: wall.start.y,\n roomId: wall.roomId!,\n distance: Math.sqrt(bestDistance),\n };\n }\n if (distance2 < distance1 && distance2 < bestDistance) {\n bestDistance = distance2;\n bestVertice = {\n number: wall,\n x: wall.end.x,\n y: wall.end.y,\n roomId: wall.roomId!,\n distance: Math.sqrt(bestDistance),\n };\n }\n }\n return bestDistance < range * range ? bestVertice : undefined;\n };\n\n public static angleDirection(angle: number) {\n if (angle === 0 || angle === 180) {\n return 'h';\n } else if (angle === 90 || angle === -90) {\n return 'v';\n } else if (angle === 45 || angle === -45 || angle === 135 || angle === -135) {\n return 'd';\n }\n }\n\n public static checkIfWallCanBeMerged = (walls: Wall[], targetWall: Wall): Wall[] => {\n const wallsToMerge = walls.filter(\n (x) =>\n x.roomId === targetWall.roomId &&\n x.equations.base.A === targetWall.equations.base.A &&\n x.equations.base.B === targetWall.equations.base.B\n );\n\n return wallsToMerge;\n };\n\n public static deleteWall = (\n allWalls: Wall[],\n allRooms: IRoom[],\n wallToDelete: Wall\n ): { newAllWalls: Wall[]; newAllRooms: IRoom[] } => {\n const targetRoomId = wallToDelete.roomId;\n const otherRoomsWalls = allWalls.filter((x) => x.roomId !== targetRoomId);\n const wallsRoomWithoutWallToDelete = allWalls.filter(\n (x) =>\n x.roomId === targetRoomId &&\n x.sideName !== wallToDelete.sideName &&\n x.sideName !== wallToDelete.parent?.sideName &&\n x.sideName !== wallToDelete.child?.sideName\n );\n\n const newRoomPoints = ObjectUtils.filterDuplicate(\n wallsRoomWithoutWallToDelete.map((x) => [x.start, x.end]).flat()\n );\n\n return WallUtils.rebuildWalls(newRoomPoints, allRooms, otherRoomsWalls, targetRoomId!);\n };\n\n public static mergeWalls = (\n allWalls: Wall[],\n allRooms: IRoom[],\n wallsToMerge: Wall[]\n ): { newAllWalls: Wall[]; newAllRooms: IRoom[] } => {\n const firstWallToMerge = wallsToMerge[0];\n const targetRoomId = firstWallToMerge.roomId;\n const targetRoom = allRooms.find((x) => x.roomId === targetRoomId)!;\n const wallsWithoutZeroSize = allWalls.filter(\n (wall) => !(wall.roomId === targetRoomId && wall.start.x === wall.end.x && wall.start.y === wall.end.y)\n );\n\n const otherRoomsWalls = wallsWithoutZeroSize.filter((x) => x.roomId !== firstWallToMerge.roomId);\n\n const wallsRoomWithoutWallsToMerge = wallsWithoutZeroSize.filter(\n (x) =>\n x.roomId === firstWallToMerge.roomId &&\n !(\n x.equations.base.A === firstWallToMerge.equations.base.A &&\n x.equations.base.B === firstWallToMerge.equations.base.B\n )\n );\n\n var newRoomPoints = ObjectUtils.filterDuplicate(\n wallsRoomWithoutWallsToMerge.map((x) => [x.start, x.end]).flat()\n );\n\n const roomWalls: Array = [];\n for (let i = 0; i < newRoomPoints.length; i++) {\n roomWalls.push(\n WallUtils.createWall(\n newRoomPoints[i],\n newRoomPoints[(i + 1) % newRoomPoints.length],\n `side_${i}`,\n targetRoom!\n )\n );\n }\n return WallUtils.rebuildWalls(newRoomPoints, allRooms, otherRoomsWalls, targetRoomId!);\n };\n\n public static splitWall = (allWalls: Wall[], allRooms: IRoom[], wallToSplit: Wall, cursorSnap: CoordPoint) => {\n const targetRoomId = wallToSplit.roomId;\n const splitPoint = qSVG.nearPointOnEquation(wallToSplit.equations.base, cursorSnap);\n const otherRoomsWalls = allWalls.filter((x) => x.roomId !== targetRoomId);\n const targetRoomWalls = allWalls.filter((x) => x.roomId === targetRoomId);\n\n const newTargetRoomPoints = [];\n for (const wall of targetRoomWalls) {\n newTargetRoomPoints.push(wall.start);\n if (wall.sideName === wallToSplit.sideName) {\n newTargetRoomPoints.push(splitPoint);\n newTargetRoomPoints.push(splitPoint);\n }\n }\n\n return WallUtils.rebuildWalls(newTargetRoomPoints, allRooms, otherRoomsWalls, targetRoomId!);\n };\n\n public static resizeWall = (\n allWalls: Wall[],\n allRooms: IRoom[],\n wallToResize: Wall,\n size: number,\n direction: WallResizeDirection\n ) => {\n const targetRoomId = wallToResize.roomId;\n let newStart;\n let newEnd;\n switch (direction) {\n case WallResizeDirection.FixedStart:\n newStart = wallToResize.start;\n\n newEnd = {\n x: wallToResize.start.x + Math.cos(wallToResize.angle) * size,\n y: wallToResize.start.y + Math.sin(wallToResize.angle) * size,\n };\n break;\n\n case WallResizeDirection.FixedEnd:\n newStart = {\n x: wallToResize.end.x - Math.cos(wallToResize.angle) * size,\n y: wallToResize.end.y - Math.sin(wallToResize.angle) * size,\n };\n\n newEnd = wallToResize.end;\n break;\n\n case WallResizeDirection.Both:\n default:\n const centerWallToResize = PointUtils.bboxCenter([wallToResize.start, wallToResize.end]);\n\n newStart = {\n x: centerWallToResize.x - (Math.cos(wallToResize.angle) * size) / 2,\n y: centerWallToResize.y - (Math.sin(wallToResize.angle) * size) / 2,\n };\n\n newEnd = {\n x: centerWallToResize.x + (Math.cos(wallToResize.angle) * size) / 2,\n y: centerWallToResize.y + (Math.sin(wallToResize.angle) * size) / 2,\n };\n break;\n }\n\n const otherRoomsWalls = allWalls.filter((x) => x.roomId !== wallToResize.roomId);\n const targetRoomWalls = allWalls.filter((x) => x.roomId === wallToResize.roomId);\n\n const newTargetRoomPoints = [];\n for (const wall of targetRoomWalls) {\n if (wall.start === wallToResize.start) {\n newTargetRoomPoints.push(newStart);\n } else if (wall.start === wallToResize.end) {\n newTargetRoomPoints.push(newEnd);\n } else {\n newTargetRoomPoints.push(wall.start);\n }\n }\n\n return WallUtils.rebuildWalls(newTargetRoomPoints, allRooms, otherRoomsWalls, targetRoomId!);\n };\n \n public static rebuildWalls = (\n newRoomPoints: CoordPoint[],\n allRooms: IRoom[],\n otherRoomsWalls: Wall[],\n targetRoomId: string\n ): { newAllWalls: Wall[]; newAllRooms: IRoom[] } => {\n var newRoomPointsClosedShape = [...newRoomPoints, newRoomPoints[0]];\n\n const roomWalls: Array = [];\n for (let i = 0; i < newRoomPoints.length; i++) {\n const targetRoom = allRooms.find((x) => x.roomId === targetRoomId)!;\n roomWalls.push(\n WallUtils.createWall(\n newRoomPoints[i],\n newRoomPoints[(i + 1) % newRoomPoints.length],\n `side_${i}`,\n targetRoom\n )\n );\n }\n\n const newAllWalls = [...otherRoomsWalls, ...roomWalls];\n\n const newAllRooms = allRooms.map((room) => {\n return {\n ...room,\n walls: room.roomId! === targetRoomId ? roomWalls : room.walls,\n coords: room.roomId! === targetRoomId ? newRoomPointsClosedShape : room.coords,\n };\n });\n\n return { newAllWalls: newAllWalls, newAllRooms: newAllRooms };\n };\n}\n","import { MapConstants } from '../MapConstants';\nimport { IRoom } from '../Models/IRoom';\nimport { PointUtils } from './PointUtils';\nimport { CoordPoint } from './Types';\n\nexport class ZoomUtils {\n //* fit function to get the best acceptance distance in relation to zoom\n public static sensibilityFormula = () => -5.1 * MapConstants.zoom + 54.39;\n\n public static zoomFitAllRooms = (rooms: Array = []) => {\n const points: Array = [];\n rooms.forEach((room) => points.push(...room.coords!));\n\n const boundingBox = PointUtils.calculateBoundingBox({ points });\n if (boundingBox) {\n const topLeft: CoordPoint = { x: boundingBox.xMin, y: boundingBox.yMin };\n const topRight: CoordPoint = { x: boundingBox.xMax, y: boundingBox.yMin };\n const bottomLeft: CoordPoint = { x: boundingBox.xMin, y: boundingBox.yMax };\n const bottomRight: CoordPoint = { x: boundingBox.xMax, y: boundingBox.yMax };\n\n const selectionWidth = boundingBox.xMax - boundingBox.xMin;\n const selectionHeight = boundingBox.yMax - boundingBox.yMin;\n\n const Viewer = window.MapViewer;\n\n //! 100 = côte width (66) + extra width : 44 (valeur arbitraire)\n const width = selectionWidth + 100 * 2;\n //! 150 = côte width (66) + extra height : 44 (valeur arbitraire) + 50 (Tuto)\n const height = selectionHeight + 150 * 2;\n\n const { viewerWidth, viewerHeight } = Viewer.getValue();\n const centerOfBoundingBox = PointUtils.bboxCenter([topLeft, topRight, bottomLeft, bottomRight]);\n\n const ratioWidth = viewerWidth / width;\n const ratioHeight = viewerHeight / height;\n const zoom = ratioWidth < ratioHeight ? ratioWidth : ratioHeight;\n\n Viewer.fitSelection(topLeft.x, topLeft.y, width, height);\n Viewer.setPointOnViewerCenter(centerOfBoundingBox.x, centerOfBoundingBox.y, zoom);\n }\n };\n}\n","import { CSSProperties, SVGAttributes } from 'react';\n\nimport { MapConstants } from '../MapConstants';\nimport { isObjectsEquals } from './Funcs';\nimport { PointUtils } from './PointUtils';\nimport { Angle, CoordPoint, Equation, Wall, WallPolygon } from './Types';\nimport { ZoomUtils } from './ZoomUtils';\n\nexport type Vertex = {\n segment: Array;\n child: Array;\n removed: Array;\n\n x: number;\n y: number;\n\n bypass: number;\n type: string;\n roomShape: string;\n roomId: string;\n};\n\ntype JQuerySVGAttributes = SVGAttributes<{}> & {\n id: string;\n class: string;\n fill: string;\n stroke: string;\n href: string;\n transform: string;\n style: string;\n [field: string]: any;\n};\n\nexport class qSVG {\n //todo: render in component\n public static create = (id: string, shape: any, attrs: Partial = {}) => {\n shape = $(document.createElementNS('http://www.w3.org/2000/svg', shape));\n for (let k in attrs) {\n shape.attr(k, attrs[k]);\n }\n if (id !== 'none') {\n $('#' + id).append(shape);\n }\n return shape;\n };\n\n public static perpendicularEquation = (equation: Equation, x1: number, y1: number): Equation | undefined => {\n if (typeof equation.A != 'string') {\n return { A: -1 / equation.A, B: y1 - (-1 / equation.A) * x1 };\n }\n if (equation.A === 'h') {\n return { A: 'v', B: x1 };\n }\n if (equation.A === 'v') {\n return { A: 'h', B: y1 };\n }\n };\n\n public static parallelEquation = (equation: Equation, point: CoordPoint): Equation | undefined => {\n if (typeof equation.A != 'string') {\n return { A: equation.A, B: point.y - equation.A * point.x };\n }\n if (equation.A === 'h') {\n return { A: 'h', B: point.y };\n }\n if (equation.A === 'v') {\n return { A: 'v', B: point.x };\n }\n };\n\n // type array return [x,y] ---- type object return {x:x, y:y}\n public static intersectionOfEquations = (equation1: Equation, equation2: Equation, type: string = 'array') => {\n var retArray;\n var retObj;\n\n if (equation1.A === equation2.A) {\n retArray = undefined;\n retObj = undefined;\n }\n if (equation1.A === 'v' && equation2.A === 'h') {\n retArray = [equation1.B, equation2.B]; //\n retObj = { x: equation1.B, y: equation2.B };\n }\n if (equation1.A === 'h' && equation2.A === 'v') {\n retArray = [equation2.B, equation1.B];\n retObj = { x: equation2.B, y: equation1.B };\n }\n if (equation1.A === 'h' && equation2.A !== 'v' && equation2.A !== 'h') {\n retArray = [(equation1.B - equation2.B) / equation2.A, equation1.B];\n retObj = { x: (equation1.B - equation2.B) / equation2.A, y: equation1.B };\n }\n if (equation1.A === 'v' && equation2.A !== 'v' && equation2.A !== 'h') {\n retArray = [equation1.B, equation2.A * equation1.B + equation2.B];\n retObj = { x: equation1.B, y: equation2.A * equation1.B + equation2.B };\n }\n if (equation2.A === 'h' && equation1.A !== 'v' && equation1.A !== 'h') {\n retArray = [(equation2.B - equation1.B) / equation1.A, equation2.B];\n retObj = { x: (equation2.B - equation1.B) / equation1.A, y: equation2.B };\n }\n if (equation2.A === 'v' && equation1.A !== 'v' && equation1.A !== 'h') {\n retArray = [equation2.B, equation1.A * equation2.B + equation1.B];\n retObj = { x: equation2.B, y: equation1.A * equation2.B + equation1.B };\n }\n if (equation1.A !== 'h' && equation1.A !== 'v' && equation2.A !== 'v' && equation2.A !== 'h') {\n const xT = (equation2.B - equation1.B) / (equation1.A - equation2.A);\n const yT = equation1.A * xT + equation1.B;\n retArray = [xT, yT];\n retObj = { x: xT, y: yT };\n }\n return type === 'array' ? retArray : retObj;\n };\n\n public static measure = (po: CoordPoint, pt: CoordPoint) => {\n return Math.sqrt(Math.pow(po.x - pt.x, 2) + Math.pow(po.y - pt.y, 2));\n };\n\n public static btwn = (a: number, b1: number, b2: number, round?: boolean | string, tolerance?: number) => {\n if (round) {\n a = Math.round(a);\n b1 = Math.round(b1);\n b2 = Math.round(b2);\n } else if (tolerance) {\n if (b1 <= b2) {\n b1 -= tolerance;\n b2 += tolerance;\n } else {\n b1 += tolerance;\n b2 -= tolerance;\n }\n }\n if (a >= b1 && a <= b2) {\n return true;\n }\n return a >= b2 && a <= b1;\n };\n\n public static nearPointOnEquation(equation: Equation, point: CoordPoint) {\n // Y = Ax + B ---- equation {A:val, B:val}\n const pointA: CoordPoint = { x: 0, y: 0 };\n const pointB: CoordPoint = { x: 0, y: 0 };\n if (equation.A === 'h') {\n return {\n x: point.x,\n y: equation.B,\n distance: Math.abs(equation.B - point.y!),\n };\n } else if (equation.A === 'v') {\n return {\n x: equation.B,\n y: point.y,\n distance: Math.abs(equation.B - point.x!),\n };\n } else {\n pointA.x = point.x;\n pointA.y = equation.A * point.x + equation.B;\n pointB.x = (point.y! - equation.B) / equation.A;\n pointB.y = point.y;\n return qSVG.pDistance(point, pointA, pointB);\n }\n }\n\n public static pDistance(point: CoordPoint, pointA: CoordPoint, pointB: CoordPoint) {\n const x = point.x;\n const y = point.y;\n const x1 = pointA.x;\n const y1 = pointA.y;\n const x2 = pointB.x;\n const y2 = pointB.y;\n const A = x - x1;\n const B = y - y1;\n const C = x2 - x1;\n const D = y2 - y1;\n const dot = A * C + B * D;\n const len_sq = C * C + D * D;\n let param = -1;\n if (len_sq !== 0)\n //in case of 0 length line\n param = dot / len_sq;\n let xx, yy;\n if (param < 0) {\n xx = x1;\n yy = y1;\n } else if (param > 1) {\n xx = x2;\n yy = y2;\n } else {\n xx = x1 + param * C;\n yy = y1 + param * D;\n }\n const dx = x - xx;\n const dy = y - yy;\n return {\n x: xx,\n y: yy,\n distance: Math.sqrt(dx * dx + dy * dy),\n };\n }\n\n public static gap = (po: CoordPoint, pt: CoordPoint) => {\n return Math.pow(po.x - pt.x, 2) + Math.pow(po.y - pt.y, 2);\n };\n\n public static getAngle = (el1: CoordPoint, el2: CoordPoint): Angle => {\n return {\n rad: Math.atan2(el2?.y - el1?.y, el2?.x - el1?.x),\n deg: (Math.atan2(el2?.y - el1?.y, el2?.x - el1?.x) * 180) / Math.PI,\n };\n };\n\n public static createEquation = (x0: number, y0: number, x1: number, y1: number, previousEquation?: Equation) => {\n const tolerance_round_value = MapConstants.tolerance_round_value;\n const isVertical = x1 - x0 < tolerance_round_value && x1 - x0 > -tolerance_round_value;\n const isHorizontal = y1 - y0 < tolerance_round_value && y1 - y0 > -tolerance_round_value;\n\n //Wall start = Wall end\n if (isVertical && isHorizontal && previousEquation) {\n return previousEquation;\n } else {\n if (isVertical) {\n return { A: 'v', B: x0 };\n }\n if (isHorizontal) {\n return { A: 'h', B: y0 };\n }\n }\n return {\n A: (y1 - y0) / (x1 - x0), // Coefficient directeur\n B: y1 - x1 * ((y1 - y0) / (x1 - x0)), // Ordonnée à l'origine\n };\n };\n\n public static polygonize = (segmentWall: Array): Array => {\n //* Find rooms\n const roomIds: Array = Array.from(new Set(segmentWall.map((x: Wall) => x.roomId!)));\n const wallByRooms = roomIds.map((x) => ({ roomId: x, walls: segmentWall.filter((y) => y.roomId === x) }));\n const completeRooms: Array = [];\n wallByRooms.forEach((wallRoom) => {\n if (wallRoom.walls[0].parent) {\n completeRooms.push(wallRoom);\n }\n });\n\n //* Polygons\n if (completeRooms.length > 0) {\n //* segment.\n const polygons: Array = completeRooms.map((x) => {\n const coords: Array = x.walls.map((x: Wall) => x.start);\n coords.push(coords[0]);\n return {\n area: qSVG.area(coords),\n coords,\n coordsInside: coords,\n inside: [],\n outsideArea: qSVG.area(coords),\n realArea: qSVG.area(coords),\n roomId: x.roomId,\n roomShape: x.walls[0].roomShape,\n };\n });\n return polygons;\n }\n return [];\n };\n\n public static area = (coordss: Array): number | undefined => {\n if (coordss.length < 2) return undefined;\n let realArea: number = 0;\n let j = coordss.length - 1;\n for (let i = 0; i < coordss.length; i++) {\n realArea = realArea + (coordss[j].x + coordss[i].x) * (coordss[j].y - coordss[i].y);\n j = i;\n }\n realArea = realArea / 2;\n return Math.abs(parseInt(realArea.toFixed(2)));\n };\n\n public static angleBetweenEquations = (m1String: string | number, m2string?: string | number) => {\n let m1: number = typeof m1String === 'number' ? m1String : 0;\n let m2: number = typeof m2string === 'number' ? m2string : 0;\n\n if (m1String === 'h') m1 = 0;\n if (m2string === 'h') m2 = 0;\n\n if (m1String === 'v') m1 = 10000;\n if (m2string === 'v') m2 = 10000;\n\n const angleRad = Math.atan(Math.abs((m2 - m1) / (1 + m1 * m2)));\n return (360 * angleRad) / (2 * Math.PI);\n };\n\n public static diffArray = (arr1: Array, arr2: Array) => {\n return arr1.concat(arr2).filter((val) => !(arr1.includes(val) && arr2.includes(val)));\n };\n\n public static diffObjIntoArray = (arr1: Array = [], arr2: Array = []) => {\n let count = 0;\n for (let k = 0; k < arr1.length - 1; k++) {\n for (let n = 0; n < arr2.length - 1; n++) {\n if (isObjectsEquals(arr1[k], arr2[n])) {\n count++;\n }\n }\n }\n let waiting = arr1.length - 1;\n if (waiting < arr2.length - 1) waiting = arr2.length;\n return waiting - count;\n };\n\n //todo : remove\n public static textOnDiv = (\n label: string,\n pos: CoordPoint,\n styled: CSSProperties,\n id: string,\n div: any,\n additionalAttrs: any = {}\n ) => {\n if (typeof pos != 'undefined') {\n const text = $(document.createElementNS('http://www.w3.org/2000/svg', 'text'));\n text.attr('id', id);\n text.attr('x', pos.x);\n text.attr('y', pos.y);\n text.attr(\n 'style',\n 'fill:' +\n styled.color +\n ';font-weight:' +\n styled.fontWeight +\n ';font-size:' +\n styled.fontSize +\n ';font-family:' +\n styled.fontFamily +\n ';text-anchor:' +\n (Boolean(styled.textAnchor) ? styled.textAnchor : 'middle')\n );\n text.attr('text-anchor', 'middle');\n for (let k in additionalAttrs) {\n text.attr(k, additionalAttrs[k]);\n }\n text.text(label);\n div.append(text);\n }\n };\n\n public static strictlyBetween = (a: number, b1: number, b2: number): boolean => {\n if (a > b1 && a < b2) {\n return true;\n }\n return a > b2 && a < b1;\n };\n\n public static middle = (xo: number, yo: number, xd: number, yd: number): CoordPoint => {\n const x1 = parseInt(xo.toString());\n const y1 = parseInt(yo.toString());\n const x2 = parseInt(xd.toString());\n const y2 = parseInt(yd.toString());\n const middleX = Math.abs(x1 + x2) / 2;\n const middleY = Math.abs(y1 + y2) / 2;\n return { x: middleX, y: middleY };\n };\n\n public static angleDeg = (cx: number, cy: number, ex: number, ey: number) => {\n const dy = ey - cy;\n const dx = ex - cx;\n let theta = Math.atan2(dy, dx); // range (-PI, PI]\n theta *= 180 / Math.PI; // rads to degs, range (-180, 180]\n if (theta < 0) theta = 360 + theta; // range [0, 360)\n return theta;\n };\n\n public static angleRadToDeg = (angle: number) => (angle * 180) / Math.PI;\n\n public static vectorXY = (obj1: CoordPoint, obj2: CoordPoint): CoordPoint => {\n return { x: obj2.x - obj1.x, y: obj2.y - obj1.y };\n };\n\n public static vectorDeter = (v1: CoordPoint, v2: CoordPoint) => {\n return v1.x * v2.y - v1.y * v2.x;\n };\n\n public static rayCasting = (point: CoordPoint, polygon: Array = [], margin?: number) => {\n //note: outer margin detection\n let x = point.x;\n let y = point.y;\n let inside = false;\n\n if (margin) {\n polygon = PointUtils.inflatePolygon(polygon, ZoomUtils.sensibilityFormula());\n }\n\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n let xi = polygon[i].x;\n let yi = polygon[i].y;\n let xj = polygon[j].x;\n let yj = polygon[j].y;\n\n const intersect = yi > y !== yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi) + xi;\n if (intersect) {\n inside = !inside;\n }\n }\n return inside;\n };\n}\n","import * as ReactSvg from 'react-svg-pan-zoom';\n\nexport type GestureEvent =\n | React.MouseEvent\n | React.ChangeEvent\n | React.TouchEvent\n | React.FormEvent\n | React.DragEvent;\n\nexport type SvgPanZoomEvent = ReactSvg.ViewerMouseEvent | ReactSvg.ViewerTouchEvent;\n\nexport const stopGesture = (e: GestureEvent) => e.stopPropagation();\nexport const useStopGesture = (): React.DOMAttributes => {\n return {\n onClick: stopGesture,\n onDoubleClick: stopGesture,\n onMouseMove: stopGesture,\n onTouchEnd: stopGesture,\n onTouchMove: stopGesture,\n };\n};\n","import Dialog from '@material-ui/core/Dialog';\nimport { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\n\nimport { IconButton, useMediaQuery } from '@material-ui/core';\nimport { useStopGesture } from '../../../Events/withEvent';\nimport { MOBILE_LIMIT } from 'Web/Context/PlatformContext/PlatformContext';\nimport { AvenirTitle, GlendaleTitle } from 'Web/Components/Widgets/Typographies';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\nexport type BaseDialogProps = {\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n onClose?: VoidFunction;\n fullScreen?: boolean;\n enableCloseOutside?: boolean;\n cancelDisabled?: boolean;\n};\n\nexport const BaseDialog: React.FC = ({\n title,\n subtitle,\n onClose,\n cancelDisabled = false,\n enableCloseOutside = true,\n fullScreen,\n children,\n}) => {\n const matches = useMediaQuery('@media (max-width: 600px)');\n return (\n \n \n \n {title}\n {subtitle}\n {!cancelDisabled && (\n \n \n \n )}\n \n {children}\n \n
\n );\n};\nconst Paper: CSSProperties = {\n borderRadius: 0,\n position: 'relative',\n background: '#FFFFFF',\n minWidth: 461,\n};\nconst PaperMobile: CSSProperties = {\n margin: '0px 16px',\n minWidth: '100%',\n position: 'absolute',\n bottom: 0,\n};\n\nconst Content = styled('div')({\n position: 'relative',\n padding: '68px 69px 69px 68px',\n [`@media (max-width: ${MOBILE_LIMIT.WIDTH_600}px)`]: { padding: 16 },\n});\n\nconst Title = styled(GlendaleTitle)({ fontSize: 20, lineHeight: '24px', color: '#1C1A37' });\nconst Subtitle = styled(AvenirTitle)({ marginTop: 20, fontSize: 16, lineHeight: '22px', whiteSpace: 'break-spaces' });\n\nconst ButtonClose = styled(IconButton)({ position: 'absolute' });\nconst IconClose = () => {\n return (\n \n \n \n \n );\n};\n","import { StandardTextFieldProps, TextField } from '@material-ui/core';\nimport { styled } from '@material-ui/styles';\nimport React from 'react';\nimport { I18n, Message } from '../../../Locales/I18nService';\nimport { ThemeRes } from '../../../Web/Themes/ThemeRes';\n\nexport const DimensInput = ({ style, value = '', ...props }: StandardTextFieldProps) => {\n const classes = ThemeRes.createNumberStyles();\n return (\n \n \n \n ),\n }}\n value={value}\n inputProps={{ min: 0, style: { padding: 0 } }}\n className={classes.input}\n {...props}\n style={{\n boxShadow: props.error ? 'inset 0 0 0 1px #FF3B30' : 'inset 0 0 0 1px transparent',\n ...style,\n }}\n />\n );\n};\nconst Input = styled(TextField)({\n background: '#EFEFEF',\n height: 42,\n marginTop: 10,\n padding: '11px 11px 11px 13px',\n fontWeight: 400,\n fontSize: 16,\n lineHeight: '20px',\n});\nconst Unit = styled('div')({ fontWeight: 400, fontSize: 16, lineHeight: '20px', color: '#000000' });\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Typography from '../Typography';\nimport withStyles from '../styles/withStyles';\nimport FormControlContext, { useFormControl } from '../FormControl/FormControlContext';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n height: '0.01em',\n // Fix IE 11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap'\n },\n\n /* Styles applied to the root element if `variant=\"filled\"`. */\n filled: {\n '&$positionStart:not($hiddenLabel)': {\n marginTop: 16\n }\n },\n\n /* Styles applied to the root element if `position=\"start\"`. */\n positionStart: {\n marginRight: 8\n },\n\n /* Styles applied to the root element if `position=\"end\"`. */\n positionEnd: {\n marginLeft: 8\n },\n\n /* Styles applied to the root element if `disablePointerEvents=true`. */\n disablePointerEvents: {\n pointerEvents: 'none'\n },\n\n /* Styles applied if the adornment is used inside . */\n hiddenLabel: {},\n\n /* Styles applied if the adornment is used inside . */\n marginDense: {}\n};\nvar InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disablePointer = props.disablePointerEvents,\n disablePointerEvents = _props$disablePointer === void 0 ? false : _props$disablePointer,\n _props$disableTypogra = props.disableTypography,\n disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n position = props.position,\n variantProp = props.variant,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"]);\n\n var muiFormControl = useFormControl() || {};\n var variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('Material-UI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n return /*#__PURE__*/React.createElement(FormControlContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, position === 'end' ? classes.positionEnd : classes.positionStart, disablePointerEvents && classes.disablePointerEvents, muiFormControl.hiddenLabel && classes.hiddenLabel, variant === 'filled' && classes.filled, muiFormControl.margin === 'dense' && classes.marginDense),\n ref: ref\n }, other), typeof children === 'string' && !disableTypography ? /*#__PURE__*/React.createElement(Typography, {\n color: \"textSecondary\"\n }, children) : children));\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes = {\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node.isRequired,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the input on click.\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n */\n disableTypography: PropTypes.bool,\n\n /**\n * @ignore\n */\n muiFormControl: PropTypes.object,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['start', 'end']).isRequired,\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['standard', 'outlined', 'filled'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiInputAdornment'\n})(InputAdornment);","import {\n InputAdornment,\n Menu,\n MenuItem,\n OutlinedInputProps,\n StandardTextFieldProps,\n TextField,\n} from '@material-ui/core';\nimport { CreateCSSProperties, styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\nexport type SelectableOption = { value?: string; label: React.ReactNode };\n\ninterface SelectFieldProps extends StandardTextFieldProps {\n values: Array;\n onChangeValue?: (value: string) => void;\n styles?: { root?: CSSProperties };\n withLog?: boolean;\n}\n\nexport const Selector = ({ value = '', values = [], onChangeValue, styles, withLog, ...props }: SelectFieldProps) => {\n const { openSelector: open, selectedOption, update, setOpenSelector } = useSelectorState();\n\n const inputEl = React.useRef();\n const hasItems = Boolean(values.length);\n\n const getOptionValue = (option?: SelectableOption) => option?.value || option?.label || undefined;\n const getValueToUse = () => {\n if ([selectedOption?.value, selectedOption?.label].includes(value)) {\n return getOptionValue(selectedOption);\n }\n return value;\n };\n\n const valueToUse = getValueToUse();\n const renderLabel = values.find((x) => getOptionValue(x) === valueToUse)?.label || valueToUse;\n\n React.useEffect(() => {\n const isValueInOptions = values.map(getOptionValue).includes(value as string);\n\n const selectedOption = !isValueInOptions\n ? undefined\n : values.find((x) => getOptionValue(x) === getValueToUse());\n\n update({ openSelector: false, selectedOption });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const togglePopupMenu = () => setOpenSelector(!open);\n\n const handleTextFieldClick = () => {\n if (values.length) {\n setOpenSelector(!open);\n }\n };\n\n const handleSelectorItemClick = (selectedOption: SelectableOption) => {\n const value = getOptionValue(selectedOption) as string;\n update({ selectedOption, openSelector: !open });\n onChangeValue?.(value);\n };\n\n const handleInputChange = (value: string) => onChangeValue?.(value);\n const onFocus = () => setOpenSelector(!hasItems && open ? false : Boolean(open));\n\n return (\n <>\n ,\n readOnly: true,\n } as Partial\n }\n {...props}\n style={useEditTextStyle({\n hasItems,\n hasValue: Boolean(value),\n hasSelectedOption: Boolean(selectedOption),\n ...styles?.root,\n })}\n value={renderLabel || ''}\n onChange={(e) => handleInputChange(e.target.value)}\n //* click and touch\n onClick={props.disabled ? undefined : handleTextFieldClick}\n inputProps={{ maxLength: 50, style: useInputStyle({ hasItems, disabled: props.disabled }) }}\n />\n \n {values.map((option, index) => {\n const optionValueToUse = option.value || (option.label as string);\n return (\n \n handleSelectorItemClick(option)}>{option.label}\n {index < values.length && }\n \n );\n })}\n \n \n );\n};\n\nexport const SelectField = React.memo(Selector);\n\nconst useSelectorState = () => {\n type SelectorState = { openSelector?: boolean; selectedOption?: SelectableOption };\n const [state, setState] = React.useState({});\n\n const update = (fields: Partial) => setState((prev) => ({ ...prev, ...fields }));\n const setOpenSelector = (openSelector: boolean) => update({ openSelector });\n return { ...state, update, setOpenSelector };\n};\n\n//#region //* STYLED COMPONENTS\n\nconst EditText = styled(TextField)({ border: '1px solid #C8C8C8', borderRadius: 8, cursor: 'pointer' });\n\ntype WithStyle = { disabled?: boolean; hasItems?: boolean; hasSelectedOption?: boolean; hasValue?: boolean };\nconst useEditTextStyle = ({ hasItems, hasSelectedOption, hasValue, ...rest }: WithStyle): CSSProperties => {\n let style: CreateCSSProperties = {};\n if (hasSelectedOption || hasValue) {\n style = { ...style, border: '3px solid #13123A' };\n }\n return { ...style, ...rest } as CSSProperties;\n};\nconst useInputStyle = ({ hasItems, disabled, ...rest }: WithStyle): CSSProperties => {\n return {\n padding: '0px 16px',\n height: 42,\n color: '#000000',\n cursor: disabled ? 'not-allowed' : 'pointer',\n ...rest,\n };\n};\n\nconst MenuPaperStyle: CSSProperties = { borderRadius: 8, background: '#FFFFFF' };\nconst MenuListStyle: CSSProperties = { padding: 0 };\n\nconst BaseMenuItem = styled(MenuItem)({\n width: '100%',\n color: '#000000',\n height: 42,\n fontWeight: 400,\n fontSize: 14,\n borderRadius: 8,\n '&:hover': { background: '#13123A', color: '#FFFFFF', fontWeight: 700 },\n});\n\nconst MenuLabelDivider = styled('div')({ borderBottom: '1px solid #E0E0E0', margin: '0px 8px' });\n\ntype EndAdornmentProps = React.DOMAttributes & { up?: boolean };\nconst EndAdornment = (props: EndAdornmentProps) => {\n return (\n \n \n \n );\n};\nconst IconArrowDown = ({ up }: EndAdornmentProps) => {\n const style: CSSProperties = {\n width: 11,\n cursor: 'pointer',\n transform: `rotate(${up ? 180 : 0}deg)`,\n transition: 'transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 0.3s',\n marginRight: 16,\n };\n return (\n \n \n \n );\n};\n//#endregion\n","import TagManager from 'react-gtm-module';\n\nimport { EvaluationContext, QuestionContext } from '../../Helpers/QuestionContextHelper';\nimport { ProduitDto } from '../../Models/Questions/ProduitDto';\nimport { UserTypeDto } from '../../Models/Users/Me';\nimport { IRoom } from '../FloorPlan/Models/IRoom';\nimport { GTMTexts } from './GTMTexts';\nimport { QuestionStep } from '../../Models/Questions/QuestionDto';\n\ninterface GTMProduct {\n product: string;\n product_id: string;\n sous_famille_produit: string;\n famille_produit: string;\n}\nexport interface EstimationEvent {\n projetId?: string;\n totalPrice?: number;\n products: Array;\n user_mail: string;\n}\n\nexport enum GtmSaveType {\n Header = 'header',\n AutoSave = 'auto-save',\n DevisEstimatif = 'devis estimatif',\n}\n\nexport interface GtmStepEvent {\n step?: QuestionStep | string;\n context?: QuestionContext;\n mapTaggage?: MapTaggage;\n totalPrice?: number;\n projetId?: string;\n zipcode?: string;\n\n //* NEW IN V3\n room_id?: string;\n room_name?: string;\n opening_id?: string;\n opening_name?: string;\n room_item_id?: string;\n room_item_name?: string;\n products: Array;\n user_mail: string;\n}\n\nexport interface PushSaveOrCreateProjectEvent {\n projectId?: string;\n isNewProject?: boolean;\n completedProject?: boolean;\n fromExistingProject?: boolean;\n isAtypique?: boolean;\n\n location?: GtmSaveType;\n etape?: string;\n piece?: string;\n}\n\nexport interface RoomTaggage {\n room_id: string;\n type?: string;\n surface?: number;\n etage?: string;\n nom?: string;\n}\nexport interface MapTaggage {\n totalArea?: number;\n roomCount?: number;\n rooms?: Array;\n}\n\nexport class GTM {\n //* EVENTS\n static pushUserOrigin = (userType?: UserTypeDto) => {\n TagManager.dataLayer({\n dataLayer: {\n pol_entry_point: GTM.toGtmUserType(userType),\n user_status: GTM.toGtmUserStatus(userType),\n },\n });\n };\n\n static pushCurrentClientId = (client_id?: string) => {\n const dataLayer: Record = {};\n if (client_id) {\n dataLayer['client_id'] = client_id;\n }\n if (Object.keys(dataLayer).length) {\n TagManager.dataLayer({ dataLayer });\n }\n };\n\n static pushEvent = (eventAction: string) => {\n TagManager.dataLayer({\n dataLayer: {\n event: 'event',\n eventCategory: 'simulateur-pose',\n eventAction: eventAction,\n },\n });\n };\n\n //#region //!\\ NOT USED\n static pushMyQuoteEvent = () => GTM.pushEvent('mon-devis'); //!\\ not used\n //#endregion\n\n static pushEnregistrerAtypiqueEvent = () => GTM.pushEvent('enregistrer-piece-atypique'); //!\\ not used\n static pushClicAtypiqueEvent = () => GTM.pushEvent('clic-piece-atypique'); //!\\ not used\n\n //#region //!\\ OBSOLETE IN V3\n static pushStep9LoginEvent = () => GTM.pushEvent('connectez-vous-detail-projet'); //!\\ obsolete in v3\n static pushStep9CancelledLoginEvent = () => GTM.pushEvent('connectez-vous-detail-projet-canceled'); //!\\ obsolete in v3\n\n //#endregion\n\n static pushStMacLoginEvent = () => GTM.pushEvent('connexion-réussie');\n\n static pushStMacSignUpEvent = () => GTM.pushEvent('inscription-réussie');\n\n static pushAppointmentEvent = () => GTM.pushEvent('demande-rdv-header');\n\n static pushDownloadPdfEvent = () => GTM.pushEvent('télécharger-pdf');\n\n //* NEW IN V3\n static pushAddRoomEvent = () => GTM.pushEvent('ajout-piece');\n static pushAddAmenagementEvent = () => GTM.pushEvent('ajout-amenagement');\n\n static pushSaveOrCreateProjectEvent = ({\n projectId,\n isNewProject,\n fromExistingProject,\n completedProject,\n location,\n piece,\n etape,\n }: PushSaveOrCreateProjectEvent) => {\n let dataLayer = {\n event: 'event',\n eventCategory: 'simulateur-pose',\n eventLabel: projectId,\n eventAction: isNewProject ? 'création-de-projet' : 'enregistrer',\n location,\n etape,\n piece,\n };\n if (fromExistingProject) {\n dataLayer = { ...dataLayer, eventAction: 'créer-nouveau-projet' };\n }\n if (completedProject) {\n dataLayer = { ...dataLayer, eventAction: 'projet-complet' };\n }\n TagManager.dataLayer({ dataLayer });\n };\n\n static pushStepViewEvent = ({\n step,\n context = {},\n mapTaggage,\n totalPrice,\n projetId,\n zipcode,\n ...rest\n }: GtmStepEvent) => {\n const messages: Record = GTMTexts;\n const evaluations: EvaluationContext = context.evaluations || {};\n\n TagManager.dataLayer({\n dataLayer: {\n event: 'pageview_virtual',\n pageview_virtual_path: GTM.getValue(messages, `${step}_Path`),\n pageview_virtual_title: GTM.getValue(messages, `${step}_Title`),\n\n habitation_codepostal: zipcode,\n habitation_amenagement_type: GTM.getValue(\n evaluations,\n GTM.getValue(messages, 'habitation_amenagement_type')\n ),\n habitation_amenagement_lieu: GTM.getValue(\n evaluations,\n GTM.getValue(messages, 'habitation_amenagement_lieu')\n ),\n habitation_user_type: GTM.getValue(evaluations, GTM.getValue(messages, 'habitation_user_type')),\n habitation_type: GTM.getValue(evaluations, GTM.getValue(messages, 'habitation_type')),\n habitation_compatibilite: '', //TODO: #32407\n plan_surface_m2: mapTaggage?.totalArea,\n plan_nombre_piece: mapTaggage?.roomCount,\n plan_piece: mapTaggage?.rooms,\n estimation_value: totalPrice,\n projet_id: projetId,\n ...rest, //* (Nom et Id de la pièce, ouverture ou amémangement, etc.)\n },\n });\n };\n\n //* NEW IN V3\n static pushEstimationEvent = ({ projetId, totalPrice, products, user_mail }: EstimationEvent) => {\n TagManager.dataLayer({\n dataLayer: {\n event: 'pageview_virtual',\n pageview_virtual_path: '/simulateur-pose/devis',\n pageview_virtual_title: 'simulateur-pose-devis',\n projet_id: projetId,\n total_price: totalPrice,\n products,\n user_mail,\n },\n });\n };\n\n static getGTMProducts = (rooms: Array): Array => {\n const products =\n rooms?.reduce((products, room) => {\n const code = room.questionProduitPrincipal?.produitValue?.code;\n if (code) {\n if (!products[code]) {\n products[code] = room.questionProduitPrincipal?.produitValue!;\n }\n }\n return products;\n }, {} as Record) ?? {};\n return Object.keys(products).map((code) => ({\n product: products[code].libelle,\n product_id: products[code].code,\n sous_famille_produit:\n products[code].infos_produit.groupe_article.famille_article.sous_famille_article.libelle,\n famille_produit: products[code].infos_produit.groupe_article.famille_article.libelle,\n }));\n };\n\n //#region //* CONVERTER\n\n private static getValue = (messages: Record, key: string): string => {\n return messages?.[key] || '';\n };\n\n private static toGtmUserType = (userType?: UserTypeDto): string => {\n if (userType) {\n switch (userType) {\n case UserTypeDto.Customer:\n return 'client';\n case UserTypeDto.StmacStore:\n return 'crm';\n case UserTypeDto.BoUserAsCustomer:\n case UserTypeDto.BoUserAsStore:\n return 'bo';\n }\n }\n return 'client'; //* If unauthenticated, user origin defaults to 'client'.\n };\n\n private static toGtmUserStatus = (userType?: UserTypeDto): string => {\n return userType ? 'logged' : 'not_logged';\n };\n\n //#endregion\n}\n","export const GTMTexts = {\n //* Evaluations names\n habitation_amenagement_type: 'Localisation', //! OBSOLETE IN MULTI PRODUIT\n habitation_amenagement_lieu: 'Type de local', //! OBSOLETE IN MULTI PRODUIT\n habitation_user_type: 'Statut habitation',\n habitation_type: 'Date habitation',\n\n //* Page paths and titles\n OnboardingStart_Path: '/simulateur-pose/00/onboarding-demarrage', //* Ouverture d'un projet vide ou démarage\n OnboardingStart_Title: 'simulateur-pose/00/onboarding-demarrage',\n OnboardingEnd_Path: '/simulateur-pose/00/onboarding-finalisation', //* Clique sur suivant à la fin du onboarding\n OnboardingEnd_Title: 'simulateur-pose/00/onboarding-finalisation',\n MapEmpty_Path: '/simulateur-pose/00/plan-en-attente', //* Aucunes pièce/aménagements sur le canvas (Fin onboarding + suppression pièce)\n Plan_Path: '/simulateur-pose/01/mon-plan', //* Ma Piece + Mes amenagements\n Plan_Title: 'simulateur-pose-01-mon-plan',\n\n StepPose_Path: '/simulateur-pose/02/pose', //* Ma pose\n StepPose_Title: 'simulateur-pose-02-pose',\n StepSupport_Path: '/simulateur-pose/03/mon-support', //* Mon support\n StepSupport_Title: 'simulateur-pose-03-mon-support',\n StepPreparation_Path: '/simulateur-pose/04/preparation', //* Ma préparation\n StepPreparation_Title: 'simulateur-pose-04-preparation',\n StepFinitions_Path: '/simulateur-pose/05/finitions', //* Mes finitions\n StepFinitions_Title: 'simulateur-pose-05-finitions',\n\n //* replaced by fin-de-parcours\n StepServices_Path: '/simulateur-pose/06/services', //* Mes services\n StepServices_Title: 'simulateur-pose-06-services',\n\n FinDeParcours_Path: '/simulateur-pose/07/fin-de-parcours', //* Mes services\n FinDeParcours_Title: 'simulateur-pose-07-fin-de-parcours',\n\n\n // Produit_Path: '/simulateur-pose/01/mon-produit-a-poser', //* Quand on arrive à la question produit\n // Produit_Title: 'simulateur-pose-01-mon-produit-a-poser',\n // Habitation_Path: '/simulateur-pose/02/mon-habitation', //* Onboarding (Question habitations)\n // Habitation_Title: 'simulateur-pose-02-mon-habitation',\n // Estimation_Path: '/simulateur-pose/09/estimation', //* Clic sur le header \"Devis estimatif\" (avec ou sans calcul de prix)\n // Estimation_Title: 'simulateur-pose-09-estimation',\n // Estimation_Connecte_Path: '/simulateur-pose/09a/estimation-connecte', //* Clic sur le header \"Devis estimatif\" en étant connecté (avec ou sans calcul de prix)\n // Estimation_Connecte_Title: 'simulateur-pose-09a-estimation-connecte',\n};\n","import { StoreProvider } from '../../../Configs/StoreProvider';\nimport { MeState } from '../../Me/MeReducer';\nimport { LogMessageUserFields } from '../LogMessageModel';\n\n\nexport class UserInformations {\n public static getUserInfo(): LogMessageUserFields {\n const Me: Partial = StoreProvider.getState()?.Me || {};\n\n const loggedUser =\n Me.data?.stmac_store_properties ??\n Me.data?.bo_user_as_customer_properties ??\n Me.data?.bo_user_as_store_properties ??\n Me.data?.customer_properties;\n\n return { Id: loggedUser?.id, Type: UserInformations.toType(Me?.data?.type) };\n }\n\n public static toType = (type?: string): string | undefined => {\n switch (type) {\n case 'Customer':\n return 'Customer';\n case 'StmacStore':\n return 'StmacStore';\n case 'BoUserAsCustomer':\n case 'BoUserAsStore':\n return 'BackOfficeUser';\n }\n return undefined;\n }\n}\n","import UAParser from 'ua-parser-js';\n\nimport uuidv4 from 'uuid/v4';\nimport { Constants } from '../../../Constants';\nimport { LogMessageDeviceFields } from '../LogMessageModel';\n\nexport class DeviceInformations {\n private static DEVICE_ID_KEY: string = Constants.DEVICE_ID_STORAGE_KEY;\n\n private static parser = new UAParser();\n\n private static getViewportDimensions(): string {\n const width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n const height = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n\n return `(${width},${height})`;\n };\n\n private static getScreenDimensions(): string {\n const width = Math.max(window.screen.width, window.screen.availWidth || 0);\n const height = Math.max(window.screen.height, window.screen.availHeight || 0);\n\n return `(${width},${height})`;\n };\n\n private static getDeviceId(): string {\n let deviceId: string | null = localStorage.getItem(DeviceInformations.DEVICE_ID_KEY);\n if (!deviceId) {\n deviceId = uuidv4();\n localStorage.setItem(DeviceInformations.DEVICE_ID_KEY, deviceId);\n }\n\n return deviceId;\n };\n\n public static getElasticSearchDeviceInfo(): LogMessageDeviceFields {\n const browser = DeviceInformations.parser.getBrowser();\n const os = DeviceInformations.parser.getOS();\n const deviceId: string = DeviceInformations.getDeviceId();\n\n return {\n DeviceId: deviceId,\n Environment: 'Web',\n LocalizedModel: browser.name ?? 'undefined',\n Model: browser.name ?? 'undefined',\n Display: {\n Size: DeviceInformations.getViewportDimensions(),\n NativeSize: DeviceInformations.getScreenDimensions()\n },\n Browser: {\n Name: browser.name ?? 'undefined',\n Version: browser.version ?? 'undefined'\n },\n Os: {\n Name: os.name ?? 'undefined',\n Version: os.version ?? 'undefined',\n }\n };\n };\n}\n","\nimport { LoglevelLogger } from './LoglevelLogger';\n\nimport { UserInformations } from './Informations/UserInformations';\nimport { DeviceInformations } from './Informations/DeviceInformations';\n\nimport { LogMessageFields } from './LogMessageModel';\nimport { LogLevelType } from './LogLevelType';\nimport { Constants } from '../../Constants';\n\nexport class AnalyticsLogger {\n\n public static initialize(): void {\n LoglevelLogger.setLevel(\"info\");\n\n LoglevelLogger.logger.methodFactory = () => () => undefined;\n\n LoglevelLogger.remote.apply(LoglevelLogger.logger, {\n url: Constants.LOGS.elasticSearchUrl,\n // we send a string, but it elasticsearch expects NDJSON format\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${Constants.LOGS.apiKey}`,\n },\n // the body must have a newline at the end, but we cannot control that\n // so just add a newline on every message\n format: ({ message }: any) => `${message}\\n`,\n capacity: 10,\n level: 'warn',// /!\\ not linked with LogLevel inside LogMessageFields\n interval: 1000 * 10, // 10 seconds between each log send to elastic search\n });\n };\n\n public static send(props: LogMessageFields = {}): void {\n const message = {\n Fields: {\n ...props,\n AppVersion: Constants.VERSION_NUMBER,\n UserInfo: UserInformations.getUserInfo(),\n Device: DeviceInformations.getElasticSearchDeviceInfo(),\n },\n timestamp: new Date().toISOString(),\n LogLevel: props.LogLevel ?? LogLevelType.Information,\n };\n\n const header = JSON.stringify({ index: { _index: Constants.LOGS.elasticSearchIndex, _type: 'analytics' } });\n const log = `${header}\\n${JSON.stringify(message)}\\n`;\n\n LoglevelLogger.warn(log);\n };\n}","export enum LogLevelType {\n Information = 'Information',\n Warning = 'Warning',\n Error = 'Error',\n}","//@ts-ignore\nimport loglevelLogger from 'loglevel';\n//@ts-ignore\nimport remote from 'loglevel-plugin-remote';\n\nexport class LoglevelLogger {\n\n public static logger = loglevelLogger;\n\n public static remote = remote;\n\n //! loglevelLogger.levels.INFO\n public static setLevel(logLevel: string) {\n loglevelLogger.setLevel(loglevelLogger.levels.INFO);\n }\n\n public static warn(...msg: any[]) {\n loglevelLogger.warn(msg);\n }\n\n public static info(...msg: any[]) {\n loglevelLogger.info(msg);\n }\n\n public static error(...msg: any[]) {\n loglevelLogger.error(msg);\n }\n}","import { ApiRequest } from '../XHR/ApiRequest';\nimport { ApiResponse } from '../../Models/ApiData';\nimport { ApiUrls } from '../../Models/ApiUrls';\nimport { SetConfigurationDto } from '../../Models/Projects/Configuration';\nimport {\n ImportProjectsResultResponse,\n PostProjetDto,\n ProjectResponse,\n ProjectsResponse,\n SetProjectReplyResponse,\n SetProjetReferenceDto,\n UpdateProjetDto,\n} from '../../Models/Projects/ProjectDto';\n\nexport class ProjectsApi {\n public static getProjects = (): Promise => {\n return ApiRequest.get(ApiUrls.PROJECT_LIST);\n };\n\n public static getProject = (projectId: string): Promise => {\n return ApiRequest.get(ApiUrls.GET_PROJECT(projectId));\n };\n\n public static createProject = (bodyRequest: PostProjetDto): Promise => {\n return ApiRequest.post(ApiUrls.CREATE_PROJECT, bodyRequest);\n };\n\n public static updateProjectMetaData = (\n projectId: string,\n bodyRequest: UpdateProjetDto\n ): Promise => {\n return ApiRequest.patch(ApiUrls.UPDATE_PROJECT_METADATA(projectId), bodyRequest);\n };\n\n public static updateProjectReference = (\n projectId: string,\n bodyRequest: SetProjetReferenceDto\n ): Promise => {\n return ApiRequest.put(ApiUrls.UPDATE_PROJECT_REFERENCE(projectId), bodyRequest);\n };\n\n public static updateProjectConfiguration = (\n projectId: string,\n bodyRequest: SetConfigurationDto\n ): Promise => {\n return ApiRequest.put(ApiUrls.UPDATE_PROJECT_CONFIGURATION(projectId), bodyRequest);\n };\n\n public static deleteProject = (projectId: string): Promise => {\n return ApiRequest.delete(ApiUrls.DELETE_PROJECT(projectId));\n };\n\n public static cancelCRMCallback = (): Promise => {\n return ApiRequest.post(ApiUrls.CANCEL_CRM_CALLBACK, {});\n };\n\n public static importProject = (\n file: File,\n forceCustomerOverride?: boolean\n ): Promise => {\n let bodyRequest = new FormData();\n bodyRequest.append('file', file);\n\n return ApiRequest.post(ApiUrls.IMPORT_PROJECT, bodyRequest, {\n headers: { 'Content-Type': 'multipart/form-data' },\n params: { force_customer_override: forceCustomerOverride },\n });\n };\n\n public static exportProject = (projectId: string): Promise => {\n return ApiRequest.getRaw(ApiUrls.EXPORT_PROJECT, {\n params: { project_ids: projectId },\n noCheckError: true,\n responseType: 'arraybuffer',\n });\n };\n}\n","import { ApiRequest } from '../XHR/ApiRequest';\nimport { XHRRequestCanceler, XHRRequestConfig } from '../XHR/XHRRequest';\nimport { ApiUrls } from '../../Models/ApiUrls';\nimport { GetProduitsParams, ProduitListResponse, ProduitResponse } from '../../Models/Questions/ProduitDto';\nimport { GetLocalitiesParam, GetLocalitiesResponse } from '../../Models/TravelExpenses/TravelExpenseDto';\nimport { GetStoreSearchResponse } from '../../Models/TravelExpenses/StoreDto';\n\nexport class QuestionApi {\n\n public static getProduits(questionId: string, params: GetProduitsParams,): Promise {\n const { count, search, data_context } = params;\n const config: XHRRequestConfig = {\n params: { count, search },\n data: data_context,\n };\n //* c'est bien un POST\n return ApiRequest.post(\n ApiUrls.QUESTION_PRODUIT_LIST(params.versionId!, questionId), {}, config\n );\n }\n\n public static getProduit(produitRef: string, params: GetProduitsParams): Promise {\n const { data_context } = params;\n const config: XHRRequestConfig = {\n data: data_context,\n };\n //* c'est bien un POST\n return ApiRequest.post(ApiUrls.QUESTION_PRODUIT_GET(produitRef), {}, config);\n }\n\n private static travelExpenseCanceler: XHRRequestCanceler | undefined = undefined;\n\n private static searchStoreLocatiesCanceler: XHRRequestCanceler | undefined = undefined;\n private static searchStoresCanceler: XHRRequestCanceler | undefined = undefined;\n\n public static getLocalities(questionId: string, params: GetLocalitiesParam,): Promise {\n if (QuestionApi.travelExpenseCanceler) {\n QuestionApi.travelExpenseCanceler.cancel(\"cancel getLocalities\");\n }\n QuestionApi.travelExpenseCanceler = new XHRRequestCanceler();\n\n return ApiRequest.get(\n ApiUrls.QUESTION_LOCALITY_SEARCH(params.versionId!, questionId, params.zipCode),\n { cts: QuestionApi.travelExpenseCanceler }\n );\n }\n\n public static getStoreLocalities(versionId: string, search: string): Promise {\n if (QuestionApi.searchStoreLocatiesCanceler) {\n QuestionApi.searchStoreLocatiesCanceler.cancel(\"cancel getStoreLocalities\");\n }\n QuestionApi.searchStoreLocatiesCanceler = new XHRRequestCanceler();\n\n return ApiRequest.get(\n ApiUrls.STORE_LOCALITY_SEARCH(versionId, search),\n { cts: QuestionApi.travelExpenseCanceler }\n );\n }\n\n public static getStores(versionId: string, latitude: number, longitude: number): Promise {\n if (QuestionApi.searchStoresCanceler) {\n QuestionApi.searchStoresCanceler.cancel(\"cancel getStores\");\n }\n QuestionApi.searchStoresCanceler = new XHRRequestCanceler();\n\n return ApiRequest.get(\n ApiUrls.STORE_SEARCH(versionId),\n {\n params: { latitude, longitude },\n cts: QuestionApi.travelExpenseCanceler,\n }\n );\n }\n}\n","import { ApiRequest } from '../XHR/ApiRequest';\nimport { ApiUrls } from '../../Models/ApiUrls';\nimport { ComputeQuotationsResponse, CreateQuotationResponse, GetQuotationDto } from '../../Models/Quotations/Quotations';\nimport { GetLocalitiesResponse, LocalityDto } from '../../Models/TravelExpenses/TravelExpenseDto';\nimport { UserSummary } from '../../Models/Users/Me';\n\n\nexport interface GetQuotationPdfBodyRequest {\n address_locality?: LocalityDto;\n address?: string;\n user?: UserSummary;\n}\n\nexport class QuotationsApi {\n\n public static createQuotation(projetId: string, bodyRequest: GetQuotationDto): Promise {\n return ApiRequest.post(ApiUrls.CREATE_QUOTATIONS(projetId), bodyRequest);\n }\n\n public static computeQuotation(bodyRequest: GetQuotationDto): Promise {\n return ApiRequest.post(ApiUrls.GET_QUOTATION, bodyRequest);\n }\n\n public static getQuotationPdf(projetId: string, configurationId: string, bodyRequest: GetQuotationPdfBodyRequest): Promise {\n //! C'EST BIEN UN POST\n return ApiRequest.post(ApiUrls.GET_QUOTATION_PDF(projetId, configurationId), bodyRequest, {\n noCheckError: true,\n responseType: 'arraybuffer',\n });\n }\n\n public static checkAddress(address: string): Promise {\n return ApiRequest.get(ApiUrls.CHECK_ADDRESS(address));\n }\n}\n","import { TokenType } from '../../Models/Authentication/AuthResponse';\nimport { CustomerPropertiesDto, StmacStorePropertiesDto, UserSummary, UserTypeDto } from '../../Models/Users/Me';\nimport { AuthService } from './AuthService';\n\nexport class AuthHelper {\n /** e.g. \"Bearer abfaf83eaeda473fa64c45f42ca11152\" */\n public static getAuthorizationFromToken = (token_type: string, token: string) => `${token_type} ${token}`;\n\n /** Is the authenticated user a customer that come from the STMAC : login by stmac dialog */\n public static isAuthenticated = (): boolean => {\n return Boolean(AuthService.getAuthState().isAuthenticated);\n };\n\n /** Is the authenticated user a seller that come from the STMAC CRM ? */\n public static isAuthenticatedAsCrmStoreUser = (): boolean => {\n const token = AuthService.getAuthState().token_type;\n return token === TokenType.CrmAXStore;\n };\n\n /** Is the authenticated user a customer that come from the STMAC : login by stmac dialog */\n public static isAuthenticatedAsCustomerUser = (): boolean => {\n const token = AuthService.getAuthState().token_type;\n return token === TokenType.StmacJWT;\n };\n\n /** Is the authenticated user a seller (from CRM or test as Seller from BO)? */\n public static isAuthenticatedAsStoreUser = (): boolean => {\n const meInfo = AuthService.getMe()?.data;\n const isBoAsStore = Boolean(meInfo?.bo_user_as_store_properties);\n const isVendeur = AuthHelper.isAuthenticatedAsCrmStoreUser() || isBoAsStore;\n return isVendeur;\n };\n\n public static isAuthenticatedAsStoreOrBOUser = (): boolean => {\n const meInfo = AuthService.getMe()?.data;\n const isBoUser =\n Boolean(meInfo?.bo_user_as_store_properties) || Boolean(meInfo?.bo_user_as_customer_properties);\n return AuthHelper.isAuthenticatedAsCrmStoreUser() || isBoUser;\n };\n\n public static getUserType = (): UserTypeDto | undefined => {\n return AuthService.getMe()?.data?.type;\n };\n\n public static getMeCustomer = (): CustomerPropertiesDto | undefined => {\n return AuthService.getMe()?.data?.customer_properties;\n };\n\n public static getMeCrmStore = (): StmacStorePropertiesDto | undefined => {\n return AuthService.getMe()?.data?.stmac_store_properties;\n };\n\n public static isCustomer = () => !AuthHelper.isAuthenticated() || AuthHelper.isAuthenticatedAsCustomerUser();\n\n //Customer is STAMC USER OR BO USER AS CUSTOMER\n public static isAuthenticatedAsCustomer = (): boolean => {\n const meInfo = AuthService.getMe()?.data;\n const isBoCustomerUser = Boolean(meInfo?.bo_user_as_customer_properties);\n const token = AuthService.getAuthState().token_type;\n return token === TokenType.StmacJWT || isBoCustomerUser;\n };\n\n public static getMe = (): UserSummary | undefined => {\n const data = AuthService.getMe().data;\n return (\n data?.customer_properties ||\n data?.bo_user_as_customer_properties ||\n data?.stmac_store_properties?.as_customer ||\n data?.bo_user_as_store_properties\n );\n };\n}\n","import { ApiRequest } from '../XHR/ApiRequest';\nimport { Constants } from '../../Constants';\nimport { ApiUrls } from '../../Models/ApiUrls';\nimport { AuthenticationResponse, RefreshRequest } from '../../Models/Authentication/AuthResponse';\n\n\nexport class AuthApi {\n public static async refresh(refreshToken: string): Promise {\n const body: RefreshRequest = {\n refresh_token: refreshToken,\n client_id: Constants.CLIENT_ID,\n client_secret: Constants.CLIENT_SECRET,\n };\n return ApiRequest.post(ApiUrls.REFRESH, body,\n { noCheckError: true, noAuth: true }\n );\n }\n}\n\n","import { ApiRequest } from '../XHR/ApiRequest';\nimport { ApiUrls } from '../../Models/ApiUrls';\nimport { AuthenticationResponse } from '../../Models/Authentication/AuthResponse';\nimport { CRMQueryParameter } from '../../Models/CRM/CRM';\n\nexport class CRMApi {\n\n public static authenticate = (bodyRequest: CRMQueryParameter): Promise => {\n return ApiRequest.post(ApiUrls.AUTHENTICATE, bodyRequest, { noAuth: true });\n };\n}\n","import { Logger } from '../../Errors/Logger';\nimport { AuthenticationResult } from '../../Models/Authentication/AuthResponse';\nimport * as AuthenticationTypes from './typings/AuthenticationActionTypes';\n\nexport class AuthenticationActions {\n public static logout = (reason?: string): AuthenticationTypes.LogoutAction => ({\n type: AuthenticationTypes.AuthActionType.LOG_OUT,\n payload: { reason },\n });\n\n static setInitialized = (initialized: boolean, reason: string): AuthenticationTypes.SetInitializedAction => ({\n type: AuthenticationTypes.AuthActionType.SET_INITIALIZED,\n payload: { initialized, reason },\n });\n\n public static setAuthenticated = ({\n isAuthenticated,\n authorization,\n initialized,\n initializedReason,\n }: {\n isAuthenticated: boolean;\n authorization: AuthenticationResult;\n initialized: boolean;\n initializedReason?: AuthenticationTypes.InitializedReason;\n }): AuthenticationTypes.SetAuthenticatedAction => {\n Logger.debug('POL setAuthenticated', { isAuthenticated, authorization, initializedReason });\n\n return {\n type: AuthenticationTypes.AuthActionType.SET_AUTHENTICATED,\n payload: { isAuthenticated, authorization, initialized, initializedReason },\n };\n };\n\n /**\n * Dispatches the success auth actions, and calls `UserActioner.retrieveAuthenticatedUserInfo`\n * @param {Object} authorization - the token like Bearer XXXX\n * @returns {Promise} result - the result received\n */\n public static setAuthorization = (\n authorization: AuthenticationResult,\n reason: AuthenticationTypes.InitializedReason\n ) => {\n return AuthenticationActions.setAuthenticated({\n isAuthenticated: Boolean(authorization),\n authorization,\n initialized: true,\n initializedReason: reason,\n });\n };\n\n public static clearAuthorizationHeader = (): AuthenticationTypes.SetAuthenticatedAction => ({\n type: AuthenticationTypes.AuthActionType.SET_AUTHENTICATED,\n payload: {\n isAuthenticated: false,\n authorization: {\n access_token: '',\n refresh_token: '',\n token_type: '',\n },\n initialized: true,\n initializedReason: AuthenticationTypes.InitializedReason.CLEAR_AUTHORIZATION,\n },\n });\n\n //* REFRESH\n /**\n * Dispatches the success auth actions, and calls `UserActioner.retrieveAuthenticatedUserInfo`\n * @param {Object} result - The result of the successful refresh\n * @param {String} result.access_token\n * @param {String} result.refresh_token\n * @param {Number} result.expires_in\n * @param {String} result.token_type\n * @param {String} result.expiration_date: - ms since epoch\n * @returns {Promise} result - the result of the refresh, same as the login result\n */\n static refreshSuccess = (result: AuthenticationResult) => {\n return AuthenticationActions.setAuthenticated({\n isAuthenticated: true,\n authorization: result,\n initialized: true,\n initializedReason: AuthenticationTypes.InitializedReason.REFRESH_SUCCESS,\n });\n };\n\n /**\n * Dispatches the email refresh failure\n * @throws {Promise} the error received\n */\n static refreshFail = (error: any) => {\n return AuthenticationActions.setAuthenticated({\n isAuthenticated: false,\n authorization: {\n access_token: '',\n refresh_token: '',\n token_type: '',\n },\n initialized: true,\n initializedReason: AuthenticationTypes.InitializedReason.REFRESH_FAILED,\n });\n };\n\n /**\n * Dispatches the success auth actions, and calls `UserActioner.retrieveAuthenticatedUserInfo`\n * @param {Object} result - The result of the successful login\n * @param {String} result.access_token\n * @param {String} result.refersh_token\n * @param {Number} result.expires_in\n * @param {String} result.token_type\n * @param {String} result.expiration_date: - ms since epoch\n * @returns {Promise} result - the result received\n */\n static loginSuccess = (auth: AuthenticationResult) => (dispatch: any) => {\n // const authorization = AuthUtils.getAuthorizationFromToken(auth.access_token);\n\n dispatch(\n AuthenticationActions.setAuthenticated({\n isAuthenticated: true,\n authorization: auth,\n initialized: true,\n initializedReason: AuthenticationTypes.InitializedReason.LOGIN_SUCCESS,\n })\n );\n return Promise.resolve(auth);\n };\n\n /**\n * Dispatches the email login failure with the errror received\n * @param {Error} error\n * @throws {Promise} the error received\n */\n static loginFail = (error: any) => {\n return AuthenticationActions.setAuthenticated({\n isAuthenticated: false,\n authorization: {\n access_token: '',\n refresh_token: '',\n token_type: '',\n },\n initialized: true,\n initializedReason: AuthenticationTypes.InitializedReason.LOGIN_FAILED,\n });\n };\n}\n","import { AppState } from '../../Configs/PolStore';\nimport { StoreProvider } from '../../Configs/StoreProvider';\nimport { Toast } from '../../Web/Services/ToastService';\nimport { AuthApi } from '../Api/AuthApi';\nimport { CRMApi } from '../Api/CRMApi';\nimport { handleError } from '../../Errors/PolErrorHandler';\nimport { ApiResponse } from '../../Models/ApiData';\nimport { AuthenticationResponse, AuthenticationResult } from '../../Models/Authentication/AuthResponse';\nimport { CRMQueryParameter } from '../../Models/CRM/CRM';\nimport { ApiErrorCodes } from '../../Models/ErrorCodes';\nimport { MeState } from '../Me/MeReducer';\nimport { AuthenticationActions } from './AuthenticationActions';\nimport { AuthenticationState } from './AuthenticationReducer';\nimport { AuthHelper } from './AuthHelper';\nimport { InitializedReason } from './typings/AuthenticationActionTypes';\nimport { I18n } from '../../Locales/I18nService';\n\nexport enum AuthenticateResultType {\n SUCCESS = 'SUCCESS',\n INVALID_CREDENTIALS = 'INVALID_CREDENTIALS',\n LOGIN_ERROR = 'LOGIN_ERROR',\n}\n\nconst dispatch = (action: any) => StoreProvider.dispatch(action);\nconst getState = (): AppState => StoreProvider.getState();\n\nexport class AuthService {\n\n public static getAuthState = (): Partial => getState()?.Authentication || {}\n public static getMe = (): MeState => getState().Me\n\n public static CRMlogin = async (params: CRMQueryParameter): Promise => {\n try {\n const response: AuthenticationResponse = await CRMApi.authenticate(params);\n dispatch(AuthenticationActions.setAuthorization(response.data, InitializedReason.LOGIN_SUCCESS));\n return Promise.resolve(AuthenticateResultType.SUCCESS);\n } catch (error) {\n const { error_message } = error as ApiResponse;\n if (error_message) {\n if (error_message === ApiErrorCodes.TOKEN_IN_FUTURE) {\n Toast.showError({ content: I18n.get('ERROR_STORE_TOKEN_IN_FUTUR') });\n } else {\n Toast.showError({ content: error_message });\n }\n } else {\n handleError(error);\n }\n\n dispatch(AuthenticationActions.loginFail(error));\n\n if (error_message === ApiErrorCodes.INVALID_CREDENTIALS_MESSAGE) {\n return Promise.resolve(AuthenticateResultType.INVALID_CREDENTIALS);\n } else {\n return Promise.resolve(AuthenticateResultType.LOGIN_ERROR);\n }\n }\n };\n\n //? @returns {String} the authorization header, NOT the token\n public static getAuthorization = async (): Promise => {\n const { token_type = '', access_token = '' } = getState()?.Authentication || {};\n\n const auth = AuthHelper.getAuthorizationFromToken(token_type, access_token);\n return Promise.resolve(auth);\n };\n\n //? @returns {String} the authorization header, NOT the token\n public static getAccessToken = async (): Promise => {\n const { access_token = '' } = getState()?.Authentication || {};\n return Promise.resolve(access_token);\n };\n\n //? @returns {String} the refresh_token\n public static getRefreshToken = async (): Promise => {\n const { refresh_token = '' } = getState()?.Authentication || {};\n return Promise.resolve(refresh_token);\n };\n\n /**\n * If the access token is not expired, fires refreshSuccess right away with current state.\n * Resets the initialized state (keeps the authenticated state) and then refreshes the access token\n * @param {Boolean} forceRefresh - Force the refresh of the tokens, even if the current ones are not expired\n * @returns {Promise} result - the result of the refresh, same as the login result OR an object\n * with props `isError` and `err`\n * @throws {Promise} an Axios error if the refresh failed\n */\n public static refreshAuthentication = async (): Promise => {\n const authentication = getState()?.Authentication;\n\n const { refresh_token = '' } = authentication || {};\n\n if (!refresh_token) {\n const errorMessage: string = 'No refresh token found, cannot refresh and will logout';\n handleError(errorMessage);\n dispatch(AuthenticationActions.refreshFail(errorMessage));\n return Promise.reject(errorMessage);\n } else {\n dispatch(AuthenticationActions.setInitialized(false, 'loading refresh'));\n\n try {\n const response: AuthenticationResponse = await AuthApi.refresh(refresh_token);\n const authResult: AuthenticationResult = response.data;\n dispatch(AuthenticationActions.refreshSuccess(authResult));\n\n const authorization = AuthHelper.getAuthorizationFromToken(\n response.data.token_type,\n response.data.access_token\n );\n return Promise.resolve(authorization);\n } catch (error) {\n dispatch(AuthenticationActions.refreshFail(error));\n return Promise.reject(error);\n }\n }\n };\n\n public static async setAuthorizationToken(authorizationToken: AuthenticationResult): Promise {\n await dispatch(AuthenticationActions.setAuthorization(authorizationToken, InitializedReason.SET_AUTHORIZATION));\n }\n public static isAuthenticated(): Promise {\n const accessToken: string = getState()?.Authentication.access_token ?? '';\n const hasAccessToken: boolean = accessToken !== '';\n return Promise.resolve(hasAccessToken);\n }\n\n public static async removeAuthorizationToken(): Promise {\n await dispatch(AuthenticationActions.clearAuthorizationHeader());\n }\n\n public static logout = async (reason: string): Promise => {\n await AuthService.removeAuthorizationToken();\n }\n}\n","import { AuthenticationResult } from \"../../../Models/Authentication/AuthResponse\";\n\nexport enum AuthActionType {\n SET_INITIALIZED = 'app/auth/base/set/initialized',\n LOG_OUT = 'app/auth/base/logout',\n SET_AUTHENTICATED = 'app/auth/base/set/isAuthenticated',\n}\n\n\nexport enum InitializedReason {\n SET_AUTHORIZATION = 'SET_AUTHORIZATION',\n LOGIN_SUCCESS = 'LOGIN_SUCCESS',\n REFRESH_SUCCESS = 'REFRESH_SUCCESS',\n LOGIN_FAILED = 'LOGIN_FAILED',\n REFRESH_FAILED = 'REFRESH_FAILED',\n CLEAR_AUTHORIZATION = 'CLEAR_AUTHORIZATION'\n}\n\nexport interface LogoutAction {\n type: AuthActionType.LOG_OUT;\n payload: { reason?: string };\n}\n\nexport interface SetInitializedAction {\n type: AuthActionType.SET_INITIALIZED;\n payload: { initialized: boolean; reason: string };\n}\n\nexport interface SetAuthenticatedAction {\n type: AuthActionType.SET_AUTHENTICATED;\n payload: {\n authorization: AuthenticationResult;\n isAuthenticated: boolean;\n initialized: boolean;\n initializedReason?: InitializedReason;\n };\n}\n\nexport type AuthenticationAction =\n | LogoutAction\n | SetAuthenticatedAction;\n","import { MeDto } from '../../Models/Users/Me';\n\nexport enum MeInitiliazedReason {\n SET_INFO = 'app/me/set/info',\n}\n\nexport interface SetInfoAction {\n type: typeof MeActions.SET_INFO;\n payload: { info?: MeDto; reason?: MeInitiliazedReason | string };\n}\n\nexport type MeAction = SetInfoAction;\n\nexport class MeActions {\n public static SET_INFO = 'app/me/set/info';\n\n public static setInfo = (info?: MeDto): SetInfoAction => ({\n type: MeActions.SET_INFO,\n payload: { info },\n });\n}\n","import { ApiRequest } from '../XHR/ApiRequest';\nimport { ApiUrls } from '../../Models/ApiUrls';\nimport { MeResponse } from '../../Models/Users/Me';\n\nexport class MeApi {\n public static getMyInfo = (): Promise => {\n return ApiRequest.get(ApiUrls.ME);\n };\n}\n","\nimport { StoreProvider } from '../../Configs/StoreProvider';\nimport { MeDto, MeResponse } from '../../Models/Users/Me';\nimport { MeApi } from '../Api/MeApi';\nimport { MeActions } from './MeActions';\n\nconst dispatch = (action: any) => StoreProvider.dispatch(action);\n\nexport class MeService {\n public static getMyInfo = async (): Promise => {\n try {\n await dispatch(MeActions.setInfo(undefined));\n\n const response: MeResponse = await MeApi.getMyInfo();\n await MeService.setMyInfo(response.data);\n\n return Promise.resolve(response);\n } catch (error) {\n await dispatch(MeActions.setInfo(undefined));\n return Promise.reject(error);\n }\n };\n\n public static setMyInfo = async (meDto: MeDto): Promise => {\n try {\n await dispatch(MeActions.setInfo(meDto));\n return Promise.resolve(meDto);\n } catch (error) {\n await dispatch(MeActions.setInfo(undefined));\n return Promise.reject(error);\n }\n };\n}\n","export enum HttpStatusCode {\n Ok = 200,\n BadRequest = 400,\n Unauthorized = 401,\n Forbidden = 403,\n NotFound = 404,\n MethodNotAllowed = 405,\n RequestTimeout = 408,\n InternalServersError = 500, //* many reasons,\n Unknown,\n}\n\nexport interface ApiError {\n is_success?: boolean;\n error_code?: string;\n error_message: string;\n\n httpStatusCode: number;\n innerError?: any;\n checkError: boolean;\n isApiError: boolean;\n}\n\nexport const toApiError = (error: any): ApiError => {\n\n if (error.isApiError) {\n return error as ApiError;\n } else {\n const { config, response } = error;\n\n //* Error can be triggered by axios interceptor or\n //* Rejected by apiClient and logged to user as a wrapped error\n //* in this case config, response are in object called errorResponse\n const checkError = config?.checkError || true;\n\n const error_code = response?.error_code || response?.data?.error_code || '';\n const error_message = response?.error_message || response?.data?.error_message || '';\n const status = response?.status;\n\n const httpStatusCode = status as HttpStatusCode;\n\n return {\n httpStatusCode,\n error_code,\n error_message,\n isApiError: !!httpStatusCode || error_code || error_message,\n checkError,\n };\n }\n};\n\n","import Axios, { AxiosInstance, AxiosResponse } from 'axios';\nimport qs from 'qs';\n\nimport { Logger } from '../../Errors/Logger';\nimport { ApiError, HttpStatusCode, toApiError } from './ApiError';\nimport { getAxiosRequestConfig, XHRRequestConfig } from './XHRRequest';\nimport { AuthService } from '../Authentication/AuthService';\n\nexport const paramsSerializer = (params: any): string => {\n const qsOptions: qs.IStringifyOptions = {\n indices: false,\n arrayFormat: 'repeat',\n addQueryPrefix: false,\n };\n return qs.stringify(params, { ...qsOptions });\n};\n\nexport interface ApiClientOptions {\n readonly baseURL: string;\n readonly refreshUrl: string;\n readonly timeout?: number;\n readonly handleError?: (error: any) => Promise;\n readonly refreshAuthorization?: () => Promise;\n readonly getAuthorization?: () => Promise;\n}\n\nexport class ApiClient {\n\n private readonly clientOptions: ApiClientOptions;\n private readonly axiosClient: AxiosInstance;\n\n //* Initialize the ApiClient.\n constructor(options: ApiClientOptions) {\n\n this.clientOptions = options;\n const { baseURL, timeout = 3000 } = options;\n\n //* The ApiClient wraps calls to the underlying Axios client.\n this.axiosClient = Axios.create({ baseURL, timeout, paramsSerializer });\n this.initializeResponseRequestInterceptor();\n this.initializeResponseInterceptors();\n }\n\n /** 💉 inject Authorization in headers */\n private initializeResponseRequestInterceptor = () => {\n this.axiosClient.interceptors.request.use(async (request: XHRRequestConfig) => {\n const { getAuthorization } = this.clientOptions;\n return await getAxiosRequestConfig(request, getAuthorization);\n })\n };\n\n //#region //* RESPONSE INTERCEPTORS\n\n private initializeResponseInterceptors = () => {\n const interceptSuccess = (response: any) => Promise.resolve(response.data);\n const interceptError = (error: any) => this.retryCallIfNeeded(error);\n this.axiosClient.interceptors.response.use(interceptSuccess, interceptError);\n };\n\n //#region //* REFRESH TOKEN IF 401 : Unauthorized\n\n private async retryCallIfNeeded(error: any): Promise {\n\n const originalConfig: XHRRequestConfig = error?.response?.config || {};\n\n const retryPolicy = async (): Promise => {\n const retryCount: number = originalConfig.retryCount ?? 0; //! NOT USED\n const { httpStatusCode }: ApiError = toApiError(error);\n\n const { refreshUrl, refreshAuthorization } = this.clientOptions;\n\n const needRefreshToken: boolean =\n httpStatusCode === HttpStatusCode.Unauthorized\n && !originalConfig.isRetryRequest\n && originalConfig.url !== refreshUrl\n && Boolean(await AuthService.getRefreshToken());\n\n if (needRefreshToken && refreshAuthorization) {\n const authToken: string = await refreshAuthorization?.();\n\n //* RETRY THE ORIGINAL REQUEST WITH NEW TOKEN\n const newConfig: XHRRequestConfig = {\n ...originalConfig,\n headers: {\n ...originalConfig?.headers,\n Authorization: authToken\n },\n isRetryRequest: true,\n retryCount: retryCount + 1\n };\n return await this.axiosClient(newConfig);\n } else {\n throw error;\n }\n }\n const isCancelled: boolean = Axios.isCancel(error);\n\n if (isCancelled) {\n //do nothing\n } else {\n try {\n if (!originalConfig.noAuth) {\n return await retryPolicy();\n } else {\n return Promise.reject(error);\n }\n } catch (retryError) {\n //! retry has failed, but report the original error, i.e. 401\n return Promise.reject(error);\n }\n }\n }\n\n //#endregion\n\n //#endregion\n\n //#region //* REQUEST\n\n public async get(url: string, config?: XHRRequestConfig): Promise {\n try {\n const response: AxiosResponse = await this.axiosClient.get(url, config);\n return this.throwErrorIfNeeded(response, config);\n } catch (errorResponse) {\n return this.onRequestFailed(errorResponse, config);\n }\n }\n\n public async getRaw(url: string, config?: XHRRequestConfig): Promise {\n try {\n const response: AxiosResponse = await this.axiosClient.get(url, config);\n return this.throwErrorIfNeeded(response, config);\n } catch (errorResponse) {\n return this.onRequestFailed(errorResponse, config);\n }\n }\n\n public async post(url: string, body: object, config?: XHRRequestConfig): Promise {\n try {\n const response: AxiosResponse = await this.axiosClient.post(url, body, config);\n return this.throwErrorIfNeeded(response, config);\n } catch (errorResponse) {\n return this.onRequestFailed(errorResponse, config);\n }\n }\n\n public async put(url: string, body: object, config?: XHRRequestConfig): Promise {\n try {\n const response: AxiosResponse = await this.axiosClient.put(url, body, config);\n return this.throwErrorIfNeeded(response, config);\n } catch (errorResponse) {\n return this.onRequestFailed(errorResponse, config);\n }\n }\n\n public async delete(url: string, config?: XHRRequestConfig): Promise {\n try {\n const response: AxiosResponse = await this.axiosClient.delete(url, config);\n return this.throwErrorIfNeeded(response, config);\n } catch (errorResponse) {\n return this.onRequestFailed(errorResponse, config);\n }\n }\n\n public async patch(url: string, body: object, config?: XHRRequestConfig): Promise {\n try {\n const response: AxiosResponse = await this.axiosClient.patch(url, body, config);\n return this.throwErrorIfNeeded(response, config);\n } catch (errorResponse) {\n return this.onRequestFailed(errorResponse, config);\n }\n }\n\n //#endregion\n\n //#region //* ERROR HANDLER\n\n private throwErrorIfNeeded(response: any, config?: XHRRequestConfig): Promise {\n\n config?.cts?.setCanceler(null);\n\n if (config?.noCheckError) {\n return Promise.resolve(response);\n }\n if (!response.is_success && !Boolean(config?.cts?.canceled)) {\n\n Logger.logAnalytics({ message: 'POL: apiClient throwErrorIfNeeded', value: { config, response } });\n\n const result: ApiError = {\n ...response,\n errorCode: response.error_code,\n errorMessage: response.error_message,\n isApiError: true,\n };\n return Promise.reject(result);\n }\n return Promise.resolve(response);\n }\n\n private onRequestFailed = (errorResponse: any, config?: XHRRequestConfig): Promise => {\n config?.cts?.setCanceler(null);\n\n const originRequest = errorResponse?.request;\n const responseTypeIsArrayBuffer = originRequest.responseType === 'arraybuffer';\n\n const innerError = {\n responseText: responseTypeIsArrayBuffer ? '' : originRequest?.responseText,\n responseURL: originRequest?.responseURL,\n statusText: originRequest?.statusText,\n }\n const error: ApiError = {\n ...toApiError(errorResponse),\n isApiError: true,\n innerError,\n };\n Logger.logAnalytics({ message: 'POL: apiClient onRequestFailed', value: { error } });\n return Promise.reject(error);\n };\n\n //#endregion\n}\n","import { ApiClient, ApiClientOptions } from './ApiClient';\nimport { XHRRequestConfig } from './XHRRequest';\n\nlet xhrClient: ApiClient;\n\nexport class ApiRequest {\n\n public static initializeApiClient = (options: ApiClientOptions): void => {\n xhrClient = new ApiClient(options);\n };\n\n public static async get(url: string, config?: XHRRequestConfig,): Promise {\n return xhrClient.get(url, config);\n }\n\n public static async getRaw(url: string, config?: XHRRequestConfig,): Promise {\n return xhrClient.getRaw(url, config);\n }\n\n public static async post(url: string, body: object, config?: XHRRequestConfig): Promise {\n return xhrClient.post(url, body, config);\n }\n\n public static async put(url: string, body: object, config?: XHRRequestConfig): Promise {\n return xhrClient.put(url, body, config);\n }\n\n public static async delete(url: string, config?: XHRRequestConfig): Promise {\n return xhrClient.delete(url, config);\n }\n\n public static async patch(url: string, body: object, config?: XHRRequestConfig): Promise {\n return xhrClient.patch(url, body, config);\n }\n}\n","import Axios, { AxiosRequestConfig, Canceler } from 'axios';\n\nexport class XHRRequestCanceler {\n canceler: Canceler | null;\n canceled: boolean | undefined;\n\n constructor() {\n this.canceler = null;\n }\n setCanceler = (canceler: Canceler | null) => {\n this.canceler = canceler;\n }\n\n cancel = (reason?: string): void => {\n if (this.canceler !== null) {\n this.canceler(reason);\n this.canceled = true;\n this.canceler = null;\n }\n }\n}\n\nexport interface XHRRequestConfig extends AxiosRequestConfig {\n noCheckError?: boolean;\n noAuth?: boolean;\n isRetryRequest?: boolean;\n retryCount?: number;\n progress?: (value: number) => void\n cts?: XHRRequestCanceler;\n}\n\n\nexport const getAxiosRequestConfig = async (request: XHRRequestConfig = {}, getAuthorization?: () => Promise): Promise => {\n const { cts, progress, noAuth = false } = request;\n\n const requestHeaders: Record = noAuth\n ? request.headers :\n { ...request.headers, Authorization: await getAuthorization?.() };\n\n return {\n ...request,\n headers: requestHeaders,\n cancelToken: new Axios.CancelToken((canceler: Canceler): void =>\n cts?.setCanceler(canceler)\n ),\n onUploadProgress: (progressEvent: any) => {\n if (progress) {\n const percent =\n Math.round((progressEvent.loaded * 100) / progressEvent.total) / 100;\n //* percent from 0.0 to 1.0\n progress(percent);\n }\n },\n onDownloadProgress: (progressEvent: any) => {\n if (progress) {\n const percent =\n Math.round((progressEvent.loaded * 100) / progressEvent.total) / 100;\n //* percent from 0.0 to 1.0\n progress(percent);\n }\n },\n };\n};\n\n","export class BrowserUtils {\n public static openUrlInNewTab = (url: string) => window.open(url, '_blank');\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import { format, isValid, parseISO } from 'date-fns';\nimport { fr } from 'date-fns/locale';\n\nexport class DateUtils {\n static formatDateCustom = (\n rawDate: string | Date,\n customFormat: string,\n defaultValue: DefaultValue | string = '-'\n ): string | DefaultValue => {\n const parsedDate = DateUtils.customParseDate(rawDate, defaultValue, {\n acceptFalsyDefault: true,\n });\n\n if (parsedDate === defaultValue) return defaultValue;\n\n return parsedDate\n ? format(parsedDate as Date, customFormat, {\n useAdditionalWeekYearTokens: true,\n locale: fr,\n })\n : defaultValue;\n };\n\n /**\n * @param {String|Date} rawDate\n * @param {*} defaultValue\n * @returns {String}\n */\n static formatDateTime = (\n rawDate: string | Date = '',\n defaultValue: DefaultValue | string = '-'\n ): string | DefaultValue => DateUtils.formatDateCustom(rawDate, `dd/MM/yyyy - HH'h'mm`, defaultValue);\n\n //#region //* NESTED\n\n /**\n * @param {String|Date} date - ISO format\n * @param {*} defaultValue\n * @param {Object|String} options\n * @param {Boolean} options.acceptFalsyDefault - return the 'defaultDate' even if it's falsy\n * @returns {Date} - the parsed Date, or the default date, or the current date in that order\n */\n static customParseDate = (\n date: string | Date,\n defaultDate: DefaultValue,\n { acceptFalsyDefault }: { acceptFalsyDefault?: boolean } = {}\n ): Date | DefaultValue => {\n if (typeof date === 'string' && isValid(parseISO(date))) return parseISO(date);\n\n if (date instanceof Date && isValid(date)) return date;\n\n if (acceptFalsyDefault) return defaultDate;\n\n return defaultDate || new Date();\n };\n\n //#endregion\n}\n","export type ExportProps = { url: string; auth: string };\n\nexport enum ExportFileType {\n PDF = '.pdf',\n EXCEL = '.xlsx',\n ZIP = '.zip',\n}\n\nexport class ExportUtils {\n // static getExportUrlWithParams(\n // { url, auth }: ExportProps,\n // params?: { [key: string]: string }\n // ): string {\n // let resultString = `${url}?Authorization=${auth}`;\n\n // for (let key in params) {\n // resultString += `&${key}=${params[key]}`;\n // }\n\n // return resultString;\n // }\n\n // static downloadFileFromUrl(url: string) {\n // const link = document.createElement('a');\n // link.href = url;\n // link.setAttribute('download', '');\n // link.click();\n // }\n\n static saveToFile(data: ArrayBuffer, fileName: string, exportFileType: ExportFileType) {\n const link = document.createElement('a');\n const blob = new Blob([data], {\n type: ExportUtils.toFileType(exportFileType),\n });\n link.href = URL.createObjectURL(blob);\n link.setAttribute('download', `${fileName}${exportFileType}`);\n link.click();\n }\n\n private static toFileType(exportFileType: ExportFileType) {\n switch (exportFileType) {\n case ExportFileType.PDF:\n return 'application/pdf';\n case ExportFileType.EXCEL:\n return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;';\n case ExportFileType.ZIP:\n return 'application/zip;';\n default:\n throw new Error();\n }\n }\n}\n","import 'loaders.css/loaders.min.css';\n\nimport { makeStyles, styled } from '@material-ui/core';\nimport React, { CSSProperties } from 'react';\nimport Loader, { LoaderType } from 'react-loaders';\nimport classNames from 'classnames';\n\nexport type CustomLoaderProps = {\n position?: 'left' | 'center' | 'right';\n type?: LoaderType;\n classes?: { root?: string; loader?: string };\n visible?: boolean;\n darkColor?: boolean;\n loadingColor?: string;\n loadingSize?: number;\n styles?: {\n root?: React.CSSProperties;\n loader?: React.CSSProperties;\n };\n};\n\nexport const MyLoader = ({\n position = 'center',\n type = 'ball-pulse',\n visible = true,\n classes,\n loadingColor,\n loadingSize,\n darkColor,\n styles,\n}: CustomLoaderProps) => {\n if (!visible) {\n return null;\n }\n\n const withPositionStyles = (): CSSProperties => {\n switch (position) {\n case 'left':\n return PositionLeftStyle;\n case 'center':\n return PositionCenterStyle;\n case 'right':\n return PositionRightStyle;\n default:\n return {};\n }\n };\n\n const style = { ...withPositionStyles(), ...styles?.root };\n\n const loaderStyle = makeLoaderStyle(Boolean(darkColor), loadingColor, loadingSize)();\n return (\n \n \n \n );\n};\n\nexport const CustomLoader = React.memo(MyLoader, (prev, next) => prev.visible === next.visible);\n\nconst LoaderContainer = styled('div')({ display: 'flex' });\n\nconst PositionLeftStyle: CSSProperties = { justifyContent: 'flex-start' };\nconst PositionCenterStyle: CSSProperties = { justifyContent: 'center' };\nconst PositionRightStyle: CSSProperties = { justifyContent: 'flex-end' };\n\nconst BlueColor = '#13123A';\n\nconst makeLoaderStyle = (darkColor: boolean, loadingColor?: string, loadingSize?: number) => {\n const loadingColorStyle: CSSProperties = loadingColor ? { background: loadingColor } : {};\n const darkColorStyle: CSSProperties = darkColor ? { background: BlueColor } : {};\n const sizeStyle: CSSProperties = loadingSize ? { width: loadingSize, height: loadingSize } : {};\n\n return makeStyles({\n root: { display: 'flex', alignItems: 'center' },\n loader: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n width: 'max-content',\n lineHeight: '0px',\n '&.loader-inner > div': {\n ...loadingColorStyle,\n ...darkColorStyle,\n ...sizeStyle,\n },\n },\n });\n};\n","import React from 'react';\n\nimport { CustomLoader } from '../CustomLoader';\nimport { Logo } from '../Logo';\nimport { styled } from '@material-ui/styles';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\nexport const LoadingPage = () => {\n return (\n \n \n \n \n );\n};\n\nconst Container = styled(Stack)({\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%',\n backgroundColor: '#ffffff',\n});\n","import React from 'react';\n\nimport { Assets } from '../../assets/Assets';\n\nexport const Logo = ({ style, onClick, ...rest }: React.SVGAttributes) => {\n return (\n \n );\n};\n","import { styled } from '@material-ui/core';\nimport React, { CSSProperties } from 'react';\nimport ReactJson, { ThemeKeys } from 'react-json-view';\nimport { ObjectUtils } from '../../../../../Helpers/ObjectUtils';\n\nexport type JSONViewerProps = {\n data?: any;\n styles?: { root?: CSSProperties; content?: CSSProperties };\n collapsed?: number | boolean;\n theme?: ThemeKeys;\n};\n\nexport const JSONViewer = ({ data, collapsed = 1, styles, theme }: JSONViewerProps) => {\n const src = ObjectUtils.clone(data);\n src._JSONViewer_DATA_SIZE_ = ObjectUtils.size(data);\n const jsonStyle: CSSProperties = { padding: 10, borderRadius: 0, ...styles?.content };\n return !data ? null : (\n \n navigator.clipboard.writeText(JSON.stringify(copy.src, null, '\\t'))}\n />\n \n );\n};\n\nconst Container = styled('div')({ fontSize: 18 });\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LoadingPage } from '../../Loading/LoadingPage';\n\nexport class ReloadAppActions {\n public static APP_ESSENTIAL_RELOAD = 'app/essential/reload';\n static triggerEssentialReload = () => ({ type: ReloadAppActions.APP_ESSENTIAL_RELOAD });\n}\n\nexport interface EssentialsActionsGateProps {\n /** Array of functions or promises */\n actions: Array<() => Promise>;\n /** If should automatically setup intl & react-intl */\n setupIntl?: () => Promise;\n /** If should trigger 'BaseActions.triggerEssentialReload' */\n withEssentialReload: boolean;\n}\n/** Executes an array of prommises on mount */\nexport const EssentialsActionsGate = ({\n children,\n actions = [],\n setupIntl,\n withEssentialReload,\n}: React.PropsWithChildren) => {\n const [ready, setReady] = React.useState(!actions.length && !setupIntl && !withEssentialReload);\n\n const dispatch = useDispatch();\n const triggerEssentialReload = (): Promise => {\n dispatch(ReloadAppActions.triggerEssentialReload());\n return Promise.resolve(true);\n };\n\n React.useEffect(() => {\n const executeAutoActions = () => {\n let autoActions: Array<() => Promise> = [];\n if (setupIntl) {\n autoActions = [...autoActions, setupIntl];\n }\n if (withEssentialReload) {\n autoActions = [...autoActions, triggerEssentialReload];\n }\n const allActions: Array<() => Promise> = [...autoActions, ...actions];\n\n const safeActions = allActions\n //* transform all functions to promises\n .map((action) => action())\n //* catch all errors so that we can execute all actions, even if some previous ones failed\n .map((action) => action.catch((err) => err));\n\n Promise.all(safeActions).then(() => setReady(true));\n };\n\n executeAutoActions();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return {ready ? children : };\n};\n","import { makeStyles, Theme } from '@material-ui/core';\nimport React, { CSSProperties } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { I18n } from '../../../../Locales/I18nService';\nimport { GTM } from '../../../../Plugins/GTM/GTM';\nimport { BrowserUtils } from '../../../../Utils/BrowserUtils';\nimport { Assets } from '../../../assets/Assets';\nimport { useIsMobile } from '../../../Context/PlatformContext/PlatformContext';\nimport { ColorTheme } from '../../../Themes/ColorTheme';\nimport { ThemeRes } from '../../../Themes/ThemeRes';\nimport { ButtonVariant, CustomButton } from './CustomButton';\nimport { useQuoteProvider } from 'Web/Pages/Quote/Controllers/QuoteProviderController';\nimport { StoreHelper } from 'Helpers';\n\nexport const onClickAppointment = (url: string) => {\n GTM.pushAppointmentEvent();\n const openBookAppointmentUrl = () => BrowserUtils.openUrlInNewTab(url);\n openBookAppointmentUrl();\n};\n\ntype AppointmentButtonProps = { style?: CSSProperties } & ColorTheme;\nexport const AppointmentButton = ({ type = 'dark', style }: AppointmentButtonProps) => {\n const { getState } = useQuoteProvider();\n const isMobile = useIsMobile();\n const projetStore = StoreHelper.getProjectStore(getState());\n const isLight = type === 'light';\n const rootStyle: CSSProperties = {\n width: '100%',\n background: isLight ? '#13123A' : '#FFF',\n ...style,\n };\n const contentStyle: CSSProperties = {\n padding: '0px 13px 0px 13px',\n };\n const labelStyle: CSSProperties = {\n fontWeight: 400,\n fontSize: '16px',\n fontFamily: ThemeRes.Fonts.fontFamilyNunitoSans,\n color: isLight ? '#FFF' : '#13123A',\n };\n\n return (\n : : undefined}\n styles={{ root: rootStyle, content: contentStyle, label: labelStyle }}\n onClick={() => onClickAppointment(StoreHelper.toBookAppointmentUrl(projetStore))}\n />\n );\n};\n\nexport const AppointmentButtonBlue = () => {\n const { getState } = useQuoteProvider();\n const projetStore = StoreHelper.getProjectStore(getState());\n const onMakeAppointment = () => {\n GTM.pushAppointmentEvent();\n const openBookAppointmentUrl = () =>\n BrowserUtils.openUrlInNewTab(StoreHelper.toBookAppointmentUrl(projetStore));\n openBookAppointmentUrl();\n };\n\n const classes = useHoverButtonStyles();\n return (\n }\n styles={{ root: { flex: 1, height: 50 } }}\n title={}\n onClick={onMakeAppointment}\n variant={ButtonVariant.Blue}\n classes={classes}\n />\n );\n};\n\nconst useHoverButtonStyles = makeStyles({\n root: { '&:hover path': { fill: '#FFFFFF' } },\n});\n","import { makeStyles } from '@material-ui/styles';\nimport classnames from 'classnames';\nimport React, { CSSProperties } from 'react';\n\nimport { I18n } from '../../../../Locales/I18nService';\nimport { Assets } from '../../../assets/Assets';\nimport { ButtonVariant, CustomButton, CustomButtonProps } from './CustomButton';\n\nexport const DeleteButton = (props: Partial) => {\n return } variant={ButtonVariant.Danger} />;\n};\n\nexport const ButtonPrevious = (props: CustomButtonProps) => {\n const style: CSSProperties = { width: 140, ...props.styles?.root };\n const classes = usePreviousClasses(props.classes?.root);\n const btnRootClasses = classnames(classes.root, props.classes?.root);\n return (\n }\n styles={{ ...props.styles, root: style }}\n classes={{ root: btnRootClasses }}\n />\n );\n};\n\nexport const ButtonNext = (props: CustomButtonProps) => {\n const style: CSSProperties = { width: 140, ...props.styles?.root };\n return (\n }\n title={I18n.get('COMMON_NEXT')}\n fullWidth\n variant={ButtonVariant.Blue}\n {...props}\n styles={{ root: style, content: props.styles?.content }}\n />\n );\n};\n\nexport const ButtonSave = (props: CustomButtonProps) => {\n const style: CSSProperties = { width: '100%', ...props.styles?.root };\n return (\n \n );\n};\n\nconst IconArrow = ({ style }: React.SVGProps) => {\n return (\n \n \n \n );\n};\n\nconst usePreviousClasses = makeStyles({ root: { '&:hover svg': { fill: '#FFFFFF' } } });\n","import { Button, Typography } from '@material-ui/core';\nimport { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\nimport { Link } from 'react-router-dom';\nimport { GestureEvent } from '../../../../Events/withEvent';\n\nimport { ThemeRes } from '../../../Themes/ThemeRes';\nimport { CustomLoader } from '../../Templates/CustomLoader';\n\nexport enum ButtonVariant {\n Danger = 'Danger',\n Blue = 'Blue',\n Start = 'Start',\n BorderedBlue = 'BorderedBlue',\n Grey = 'Grey',\n BorderedGrey = 'BorderedGrey',\n Light = 'Light',\n}\n\nexport interface CustomButtonProps {\n id?: string;\n icon?: React.ReactNode;\n endRowIcon?: React.ReactElement;\n title?: React.ReactNode;\n variant?: ButtonVariant | string;\n onClick?: (event?: GestureEvent) => void;\n disabled?: boolean;\n type?: 'submit' | 'reset' | 'button';\n isBusy?: boolean;\n link?: string;\n visible?: boolean;\n fullWidth?: boolean;\n classes?: { root?: string; label?: string; content?: string; icon?: string };\n styles?: {\n root?: CSSProperties;\n label?: CSSProperties;\n content?: CSSProperties;\n icon?: CSSProperties;\n iconEnd?: CSSProperties;\n };\n ref?: any;\n}\n\nexport const CustomButton = ({\n title = '',\n icon,\n endRowIcon,\n variant,\n onClick,\n disabled = false,\n type,\n isBusy,\n link,\n visible = true,\n styles,\n classes,\n ref,\n ...props\n}: CustomButtonProps) => {\n if (!visible) {\n return null;\n }\n\n const getContent = (): React.ReactNode => {\n const startIconStyle: CSSProperties = { marginRight: title ? 16 : 0, ...styles?.icon };\n return (\n \n {icon && {icon}}\n {title && {title}}\n {endRowIcon && {endRowIcon}}\n \n );\n };\n\n return (\n \n {link ? {getContent()} : getContent()}\n \n \n );\n};\n\nconst ButtonBase = styled(Button)({\n '@media (hover)': {\n '&:hover': { backgroundColor: '#E5A033 !important' },\n '&:hover .MuiTypography-root': {\n color: '#FFFFFF !important',\n //transition: 'color 0.3s',\n },\n },\n});\n\nconst Content = styled('div')({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n width: '100%',\n padding: '0px 24px 0px 24px', //* TRBL\n fontFamily: 'Avenir',\n fontSize: 16,\n fontWeight: 900,\n textAlign: 'center',\n});\nconst StartIcon = styled('div')({ marginRight: 16, display: 'flex', alignItems: 'center' });\nconst EndIcon = styled('div')({ marginLeft: 10, display: 'flex', alignItems: 'center' });\n\nconst LinkContainer = styled(Link)({ width: '100%', height: '100', ...ThemeRes.LinkButtonStyle });\n\nconst Title = styled(Typography)({\n fontFamily: 'NunitoSans',\n fontWeight: 700,\n fontSize: 18,\n lineHeight: '20px',\n});\n\ntype WithStyleParams = { disabled?: boolean; variant?: ButtonVariant | string; fullWidth?: boolean };\nconst withStyle = ({ disabled, variant, fullWidth }: WithStyleParams): CSSProperties => {\n let style: CSSProperties = {\n minHeight: 50,\n opacity: disabled ? 0.6 : 1,\n borderRadius: 0,\n background: '#ec9e30',\n padding: 0,\n color: '#FFFFFF',\n ...withButtonVariantStyle(variant),\n };\n if (fullWidth) {\n style.width = '100%';\n }\n\n return style;\n};\n\nconst withButtonVariantStyle = (variant?: string, style: CSSProperties = {}) => {\n if (variant === ButtonVariant.Danger) {\n style.background = '#d62341';\n style.color = '#FFFFFF';\n }\n if (variant === ButtonVariant.Grey) {\n style.background = '#f4f4f4';\n style.color = '#7f7f7f';\n }\n if (variant === ButtonVariant.BorderedGrey) {\n style.border = 'solid 1.4px #ec9e30';\n style.background = '#ffffff';\n style.color = '#ec9e30';\n }\n if (variant === ButtonVariant.Blue) {\n style.background = '#1c1a37';\n style.color = '#ffffff';\n }\n if (variant === ButtonVariant.Start) {\n style.background = '#ec9e30';\n style.color = '#ffffff';\n }\n if (variant === ButtonVariant.BorderedBlue) {\n style.border = 'solid 1.4px #1c1a37';\n style.background = '#FFFFFF';\n style.color = '#1c1a37';\n }\n if (variant === ButtonVariant.Light) {\n style.background = '#FFFFFF';\n style.color = '#13123A';\n }\n return style;\n};\n\ntype BusyViewProps = { variant?: string; busy?: boolean };\nconst BusyView = ({ busy, variant }: BusyViewProps) => {\n const Container = styled('div')({\n position: 'absolute',\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n lineHeight: 0,\n });\n const style = withButtonVariantStyle(variant);\n\n return !busy ? null : (\n \n \n \n );\n};\n","import FormControl from '@material-ui/core/FormControl';\nimport InputBase from '@material-ui/core/InputBase';\nimport { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\nimport { useIntl } from 'react-intl';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\nexport enum InputType {\n Text = 'text',\n TextEmail = 'email',\n Password = 'password',\n Number = 'number',\n}\n\nexport interface CustomTextFieldProps {\n label?: React.ReactNode;\n placeholder?: string;\n errorMessage?: string;\n error?: boolean;\n type?: InputType;\n value?: string;\n onChange?: (value: string) => void;\n multiline?: boolean;\n maxLength?: number;\n onBlur?: (event: React.FocusEvent) => void;\n onClick?: (event: React.MouseEvent) => void;\n disabled?: boolean;\n autoFocus?: boolean;\n endAdornment?: React.ReactNode;\n startAdornment?: React.ReactNode;\n\n styles?: {\n root?: CSSProperties;\n label?: CSSProperties;\n input?: CSSProperties;\n };\n}\n\nexport const CustomTextField = ({ value, onChange, ...props }: CustomTextFieldProps) => {\n const [localValue, setLocalValue] = React.useState(value);\n\n React.useEffect(() => {\n if (localValue !== value) {\n setLocalValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n const onInternalChange = (newValue: string) => {\n setLocalValue(newValue);\n onChange?.(newValue);\n };\n\n return ;\n};\n\n// PGU: CustomTextFieldProps ne devrait pas contenir de state local...\n// J'ajoute ce composant pour éviter des effets de bords en corrigant CustomTextField.\nexport const StateLessCustomTextField = ({\n label,\n value,\n placeholder = '',\n errorMessage,\n error: hasError,\n type = InputType.Text,\n multiline,\n maxLength,\n onChange,\n onBlur,\n onClick,\n disabled,\n autoFocus,\n endAdornment,\n startAdornment,\n styles,\n ...rest\n}: CustomTextFieldProps) => {\n const intl = useIntl();\n\n if (!value && (hasError || errorMessage)) {\n const requiredMessage: string = intl.formatMessage({ id: 'COMMON_REQUIRED_FIELD' });\n placeholder = requiredMessage;\n }\n\n const error = hasError || errorMessage;\n\n return (\n \n \n {label && (\n \n {label}\n \n )}\n onChange?.(evt.target.value)}\n onBlur={onBlur}\n onClick={onClick}\n type={type}\n multiline={multiline}\n inputProps={{ maxLength }}\n disabled={disabled}\n autoFocus={autoFocus}\n startAdornment={startAdornment}\n endAdornment={endAdornment && {endAdornment}}\n />\n \n {error && {errorMessage}}\n \n );\n};\n\nconst Container = styled(Stack)({ alignItems: 'flex-start' });\n\nconst Content = styled(FormControl)({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n});\nconst Label = styled('div')({\n display: 'flex',\n justifyContent: 'flex-start',\n marginBottom: '16px',\n fontSize: '16px',\n fontWeight: 'bold',\n color: '#303d4d', //$textFieldLabelTextColor;$darkGreyBlue: #303d4d;\n});\n\n// $textFieldErrorColor;$lipstick: #d62341;\nconst withLabelTextStyle = (withError: boolean) => ({ color: withError ? '#d62341' : '#303d4d' });\n\nconst Input = styled(InputBase)({\n width: '100%',\n minHeight: '52px',\n padding: '15px 24px 16px 24px', //TRBL\n background: '#ebeef0',\n});\nconst withInputStyle = (withError: boolean): CSSProperties => ({\n color: withError ? '#d6234' : '#46464',\n border: '1px solid #d6234',\n});\n\nconst Error = styled('div')({ color: '#d62341', marginTop: '4px' });\n\nconst EndAdornment = styled('div')({ paddingRight: '8px' });\n\n// input::-webkit-outer-spin-button,\n// input::-webkit-inner-spin-button {\n// -webkit-appearance: none;\n// margin: 0;\n// }\n\n// /* Firefox */\n// input[type='number'] {\n// -moz-appearance: textfield;\n// }\n","import { Button } from '@material-ui/core';\nimport { makeStyles, styled } from '@material-ui/core/styles';\nimport React, { CSSProperties } from 'react';\nimport { MOBILE_LIMIT } from 'Web/Context/PlatformContext/PlatformContext';\n\nexport const HeaderIconStyle: CSSProperties = { width: 'auto', height: 'auto' };\n\ntype HeaderButtonProps = {\n icon?: React.ReactNode;\n label?: React.ReactNode;\n onClick?: VoidFunction;\n disabled?: boolean;\n style?: CSSProperties;\n};\n\nexport const HeaderButton = ({ icon, label, onClick, disabled, style }: HeaderButtonProps) => {\n const classes = createClasses();\n return !onClick ? null : (\n \n {icon}\n {label && }\n \n );\n};\nconst Label = styled('div')({ color: '#424448', fontFamily: 'NunitoSans', fontSize: 14 });\n\nconst createClasses = makeStyles(() => ({\n root: {\n minWidth: 'max-content',\n width: 'max-content',\n //height: 64,\n minHeight: 64,\n borderRadius: 0,\n [`@media (max-width : ${MOBILE_LIMIT.WIDTH_600}px)`]: {\n minWidth: 48,\n width: 56,\n height: '100%',\n minHeight: 48,\n },\n },\n content: { display: 'flex', flexDirection: 'column', alignItems: 'center' },\n}));\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport Paper from '../Paper';\nexport var styles = function styles(theme) {\n var backgroundColorDefault = theme.palette.type === 'light' ? theme.palette.grey[100] : theme.palette.grey[900];\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n boxSizing: 'border-box',\n // Prevent padding issue with the Modal and fixed positioned AppBar.\n zIndex: theme.zIndex.appBar,\n flexShrink: 0\n },\n\n /* Styles applied to the root element if `position=\"fixed\"`. */\n positionFixed: {\n position: 'fixed',\n top: 0,\n left: 'auto',\n right: 0,\n '@media print': {\n // Prevent the app bar to be visible on each printed page.\n position: 'absolute'\n }\n },\n\n /* Styles applied to the root element if `position=\"absolute\"`. */\n positionAbsolute: {\n position: 'absolute',\n top: 0,\n left: 'auto',\n right: 0\n },\n\n /* Styles applied to the root element if `position=\"sticky\"`. */\n positionSticky: {\n // ⚠️ sticky is not supported by IE 11.\n position: 'sticky',\n top: 0,\n left: 'auto',\n right: 0\n },\n\n /* Styles applied to the root element if `position=\"static\"`. */\n positionStatic: {\n position: 'static'\n },\n\n /* Styles applied to the root element if `position=\"relative\"`. */\n positionRelative: {\n position: 'relative'\n },\n\n /* Styles applied to the root element if `color=\"default\"`. */\n colorDefault: {\n backgroundColor: backgroundColorDefault,\n color: theme.palette.getContrastText(backgroundColorDefault)\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.secondary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\n },\n\n /* Styles applied to the root element if `color=\"transparent\"`. */\n colorTransparent: {\n backgroundColor: 'transparent',\n color: 'inherit'\n }\n };\n};\nvar AppBar = /*#__PURE__*/React.forwardRef(function AppBar(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'primary' : _props$color,\n _props$position = props.position,\n position = _props$position === void 0 ? 'fixed' : _props$position,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"color\", \"position\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n square: true,\n component: \"header\",\n elevation: 4,\n className: clsx(classes.root, classes[\"position\".concat(capitalize(position))], classes[\"color\".concat(capitalize(color))], className, position === 'fixed' && 'mui-fixed'),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AppBar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary', 'transparent']),\n\n /**\n * The positioning type. The behavior of the different options is described\n * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).\n * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.\n */\n position: PropTypes.oneOf(['absolute', 'fixed', 'relative', 'static', 'sticky'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiAppBar'\n})(AppBar);","import './PromoBandeau.scss';\n\nimport CloseIcon from '@material-ui/icons/Close';\nimport { styled } from '@material-ui/styles';\nimport React from 'react';\nimport { useIsVendeur } from '../../Web/Hooks/Vendeur/useVendeur';\nimport { ThemeRes } from '../../Web/Themes/ThemeRes';\nimport { PromotionBandeauDto } from '../../Models/Promos/PromotionBandeauDto';\nimport DOMPurify from 'dompurify';\n\nconst toPromoHiddenKey = (id: string) => `promo-${id}-hidden`;\n\nconst showPromo = (isVendeur: boolean, isHidden: boolean) => {\n return !isVendeur && !isHidden;\n};\n\nexport const Promo = ({ promo }: { promo: PromotionBandeauDto }) => {\n const promoHiddenKey = toPromoHiddenKey(promo.id);\n\n const isVendeur = useIsVendeur();\n const [isHidden, setIsHidden] = React.useState(localStorage.getItem(promoHiddenKey) === 'true');\n const show = showPromo(isVendeur, isHidden);\n\n const link = ExtractHrefIfSingle(promo.description);\n const sanitizedHtml = DOMPurify.sanitize(promo.description, { ADD_ATTR: ['target'] });\n\n return !show ? null : (\n window.open(link, '_blank') } : undefined)}\n style={{\n cursor: link ? 'pointer' : 'default',\n backgroundColor: promo.background_color,\n color: promo.font_color,\n fontSize: promo.font_size,\n }}>\n \n
\n \n {\n event.stopPropagation();\n localStorage.setItem(promoHiddenKey, 'true');\n setIsHidden(true);\n }}>\n \n \n \n );\n};\n\n//move to utils\nconst ExtractHrefIfSingle = (html: string) => {\n const regex = /]*?\\s+)?href=([\"'])(.*?)\\1/g;\n const match = [...html.matchAll(regex)];\n if (match?.length === 1) {\n return match[0][2];\n }\n return null;\n};\n\nconst Container = styled('div')({\n height: 'auto',\n background: '#ff000c',\n margin: 0,\n padding: '0 8px',\n textAlign: 'center',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'white',\n fontSize: '1rem',\n a: {\n textDecoration: 'none',\n },\n});\n\nconst Description = styled('div')({\n fontFamily: ThemeRes.Fonts.fontFamilyNunitoSans,\n padding: 8,\n flex: 1,\n});\n\nconst Close = styled('div')({\n color: 'white',\n cursor: 'pointer',\n transition: 'color 0.3s',\n '&:hover': { color: 'black' },\n display: 'flex',\n alignItems: 'center',\n});\n","import { ApiUrls } from '../../Models/ApiUrls';\nimport { PromotionBandeauResponse } from '../../Models/Promos/PromotionBandeauDto';\nimport { ApiRequest } from '../XHR/ApiRequest';\n\nexport class PromosApi {\n public static getCurrentPromotionBandeau = (): Promise => {\n return ApiRequest.get(ApiUrls.GET_CURRENT_PROMOTION_BANDEAU);\n };\n}\n","import { Button, Popover } from '@material-ui/core';\nimport { styled } from '@material-ui/styles';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Constants } from '../../../../../Constants';\nimport { StringKey } from '../../../../../Locales/fr';\nimport { I18n } from '../../../../../Locales/I18nService';\nimport { Assets } from '../../../../assets/Assets';\nimport { usePlatformContext } from '../../../../Context/PlatformContext/PlatformContext';\nimport { useAuthenticatedUser, UserLoggedState } from '../../../../Hooks/User/useAuthenticatedUser';\nimport { useIsVendeur } from '../../../../Hooks/Vendeur/useVendeur';\nimport { HeaderButton } from './HeaderButton';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\nexport const ButtonUser = () => {\n const anchorEl = React.useRef(null);\n\n const [menuOpened, setMenuOpened] = React.useState(false);\n const openMenu = (): void => setMenuOpened(true);\n const closeMenu = (): void => setMenuOpened(false);\n\n const isVendeur = useIsVendeur();\n const { isAuthenticated, name, isStmacUser, isBoUser }: UserLoggedState = useAuthenticatedUser();\n\n const { isMobile } = usePlatformContext();\n\n return isAuthenticated && !isStmacUser ? (\n \n }\n label={isMobile ? undefined : }\n disabled={isVendeur}\n onClick={() => openMenu()}\n />\n \n \n {name && {name}}\n {name && }\n {(isBoUser || !Constants.isStMacProd()) && (\n \n \n \n )}\n \n \n \n ) : null;\n};\n\nexport const HeaderButtonUser = React.memo(ButtonUser);\n\nconst Container = styled('div')({ height: '100%' });\nconst Content = styled(Stack)({ alignItems: 'center' });\nconst UserName = styled('div')({ margin: 16, marginBottom: 0 });\nconst VersionNumber = styled('div')({ color: '#7f7f7f', fontSize: 9, textAlign: 'center', margin: 16 });\n\n//#region //* BTN LOGOUT\ntype LogoutButtonProps = { closeMenu: VoidFunction };\nconst LogoutButton = ({ closeMenu }: LogoutButtonProps) => {\n const { userLoaded, isAuthenticated, requestLogin, requestLogout }: UserLoggedState = useAuthenticatedUser();\n\n const internalOnLoginOrLogout = (): void => {\n if (isAuthenticated) {\n requestLogout(closeMenu);\n } else {\n requestLogin(closeMenu);\n }\n };\n\n return (\n \n \n \n );\n};\n\nconst LogoutContainer = styled(Button)({\n margin: 16,\n textDecoration: 'underline',\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 600,\n textAlign: 'right',\n borderRadius: 0,\n});\n\n//#endregion\n","import { styled } from '@material-ui/styles';\nimport React, { CSSProperties, useEffect } from 'react';\nimport { Stack } from 'Web/Components/Widgets/Stack';\nimport { NunitoSansBoldTitle } from 'Web/Components/Widgets/Typographies';\n\nimport { useCurrentProject } from '../../../../../Configs/CurrentProjectContext';\nimport { Constants } from '../../../../../Constants';\nimport { PromotionBandeauDto } from '../../../../../Models/Promos/PromotionBandeauDto';\nimport { Promo } from '../../../../../Plugins/Promos/PromoBandeau';\nimport { PromosApi } from '../../../../../Services/Api/PromosApi';\nimport { BrowserUtils } from '../../../../../Utils/BrowserUtils';\nimport { Assets } from '../../../../assets/Assets';\nimport { usePlatformContext } from '../../../../Context/PlatformContext/PlatformContext';\nimport { AppointmentButton, onClickAppointment } from '../../CustomButton/AppointmentButton';\nimport { HeaderButton, HeaderIconStyle } from './HeaderButton';\nimport { HeaderButtonUser } from './HeaderButtonUser';\nimport { useQuoteProvider } from 'Web/Pages/Quote/Controllers/QuoteProviderController';\nimport { StoreHelper } from 'Helpers';\n\ninterface HeaderLayoutProps {\n styles: { root: CSSProperties };\n ActionButtons?: React.ComponentType;\n //* mobile\n promotionBandeau?: PromotionBandeauDto;\n}\n\nexport const Header = ({ ActionButtons, styles }: HeaderLayoutProps) => {\n const { isMobile } = usePlatformContext();\n const [promotionBandeau, setPromotionBandeau] = React.useState(undefined);\n useEffect(() => {\n load();\n }, []);\n\n //! todo: place in AppState (useSelector)\n const load = async () => {\n const res = await PromosApi.getCurrentPromotionBandeau();\n setPromotionBandeau(res.data);\n };\n\n const HeaderMobile = ({ promo }: { promo: PromotionBandeauDto | undefined }) => {\n return (\n \n \n \n \n {ActionButtons && }\n \n \n \n \n {promo ? : undefined}\n \n );\n };\n return isMobile ? (\n \n ) : (\n \n );\n};\n\nconst MobileContainer = styled(Stack)({ width: '100%' });\n\nconst HeaderDesktop = ({ ActionButtons, styles, promotionBandeau }: HeaderLayoutProps) => {\n const currentProject = useCurrentProject();\n return (\n \n \n \n {currentProject.state?.project?.intitule}\n \n {ActionButtons && }\n \n \n \n \n {promotionBandeau ? : undefined}\n \n );\n};\nexport const HeaderLayout = React.memo(Header);\nconst DesktopContainer = styled(Stack)({ width: '100%' });\n\nconst Title = styled(NunitoSansBoldTitle)({\n color: '#13123A',\n width: '100%',\n height: 'auto',\n padding: 16,\n overflow: 'hidden',\n fontWeight: 900,\n\n display: '-webkit-box',\n fontSize: '2.26em',\n lineClamp: 2,\n maxHeight: '2.86em',\n boxOrient: 'vertical',\n lineHeight: '1.13em',\n textOverflow: 'ellipsis',\n textAlign: 'center',\n});\n\nconst ButtonsContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n\n marginLeft: 'auto',\n});\n\n//#region //* STYLE MOBILE\n\nconst HeaderContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n height: 99,\n borderBottom: 'solid 1px #EDEDF0',\n\n paddingLeft: 36,\n paddingRight: 8,\n\n backgroundColor: '#ffffff',\n position: 'relative',\n});\n\n//#endregion\n\nconst HeaderMobileContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n height: 64,\n paddingLeft: 8,\n borderBottom: 'solid 1px #EDEDF0',\n position: 'relative',\n backgroundColor: '#ffffff',\n});\n\nconst HeaderLogo = () => {\n const { isMobile } = usePlatformContext();\n\n const goToHome = () => BrowserUtils.openUrlInNewTab(Constants.STMAC_URL);\n\n return isMobile ? (\n \n ) : (\n \n );\n};\n\nconst ButtonAppointment = () => {\n const { getState } = useQuoteProvider();\n const { isMobile } = usePlatformContext();\n const projetStore = StoreHelper.getProjectStore(getState());\n return isMobile ? (\n }\n style={{ backgroundColor: '#13123A' }}\n onClick={() => onClickAppointment(StoreHelper.toBookAppointmentUrl(projetStore))}\n />\n ) : (\n \n );\n};\n","import { AppBar } from '@material-ui/core';\nimport { styled } from '@material-ui/styles';\nimport * as H from 'history';\nimport React, { CSSProperties } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport NavigationPrompt from 'react-router-navigation-prompt';\nimport { useCurrentProject } from '../../../../Configs/CurrentProjectContext';\nimport { HeaderLayout } from './Header/HeaderLayout';\n\ninterface PageLayoutProps {\n handleQuitPage?: (onConfirm: () => void, onCancel: () => void) => React.ReactNode;\n ActionButtons?: React.ComponentType; //*navbar action\n}\n\nexport const PageLayout: React.FC = ({ children: content, handleQuitPage, ActionButtons }) => {\n return (\n <>\n \n \n \n {content}\n {Boolean(handleQuitPage) && }\n \n );\n};\n\nconst PageContent: React.FC = React.memo(\n ({ children }) => {children},\n () => true\n);\n\nconst MyAppBar = styled(AppBar)({});\nconst HeaderStyle: CSSProperties = { width: '100%' };\n\nconst MainContent = styled('main')({\n background: '#efefef',\n height: '100%',\n flex: 1,\n overflow: 'hidden',\n cursor: 'default',\n});\n\ntype PreventExitPageProps = {\n handleQuitPage?: (onConfirm: VoidFunction, onCancel: VoidFunction) => void;\n};\nconst PreventExitPage = ({ handleQuitPage }: PreventExitPageProps) => {\n const initialPathname = useLocation().pathname;\n const { getState } = useCurrentProject();\n const whenModified = (currentLocation: H.Location, nextLocation?: H.Location): boolean => {\n return (getState().isDirty ?? false) && !nextLocation?.pathname.startsWith(initialPathname);\n };\n\n return (\n \n {({ onConfirm, onCancel }) => handleQuitPage?.(onConfirm, onCancel)}\n \n );\n};\n","import { styled } from '@material-ui/core/styles';\nimport React from 'react';\nimport { FormattedNumber } from 'react-intl';\n\nimport { ThemeRes } from '../../../Themes/ThemeRes';\n\nconst FRACTION_DIGIT_NUMBER = 2;\n\ntype PriceLabelProps = { price?: number; variant?: 'default' | 'noComma' };\n\nexport const PriceLabel = ({ price, variant = 'default' }: PriceLabelProps) => {\n if (!price) {\n return <>-;\n } else if (variant === 'noComma') {\n const { integer, decimal } = getDecimal(price);\n return (\n <>\n \n {(formattedValue: string) => {\n //Remove the space between the number and the currency symbol\n return <>{formattedValue.slice(0, -2) + formattedValue.slice(-1)};\n }}\n \n {decimal.length > 0 && {decimal}}\n \n );\n } else {\n return (\n \n );\n }\n};\n\nconst FractionDigit = styled('span')({\n fontFamily: ThemeRes.Fonts.fontFamilyNunitoSansBold,\n fontSize: 12,\n verticalAlign: 'bottom',\n lineHeight: '21px',\n});\n\nexport const PriceFloor = styled('span')({ fontSize: '18.49px', lineHeight: '21px' });\nexport const PriceDecimal = styled('span')({ fontSize: '12.26px', alignSelf: 'flex-end' });\nexport const StrikedPriceFloor = styled('span')({ fontSize: '13px', lineHeight: '16px' });\nexport const StrikedPriceDecimal = styled('span')({ fontSize: '9px', alignSelf: 'flex-end' });\n\nfunction getDecimal(price: number) {\n const [integer, decimal = ''] = String(price).split('.');\n const digitsAfterComma = decimal.slice(0, FRACTION_DIGIT_NUMBER);\n return { integer, decimal: digitsAfterComma };\n}\n","import { IconButton } from '@material-ui/core';\nimport { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\n\nimport { Assets } from '../../assets/Assets';\n\ntype ButtonCloseProps = React.DOMAttributes & { style?: CSSProperties };\n\nexport const ButtonClose = ({ children, ...rest }: ButtonCloseProps) => {\n return (\n \n {children ? children : }\n \n );\n};\nconst Container = styled(IconButton)({ position: 'absolute', right: 0 });\n","import React, { CSSProperties } from 'react';\nimport { Logo } from '../Templates/Logo';\nimport { CustomLoader } from '../Templates/CustomLoader';\nimport { styled } from '@material-ui/styles';\nimport { Stack } from './Stack';\n\ntype LoadingViewProps = { loading?: boolean; style?: CSSProperties; darkColor?: boolean };\nexport const LoadingView: React.FC = ({ loading, style, darkColor, children }) => {\n return !loading ? null : (\n \n \n \n {children}\n \n );\n};\nconst Loading = styled(Stack)({\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'rgba(0, 0, 0, 0.3)',\n top: 0,\n width: '100%',\n height: '100%',\n zIndex: 10,\n});\n\nexport const LoadingDescription = styled('div')({\n color: '#FFFFFF',\n fontFamily: 'Glendale',\n textTransform: 'uppercase',\n marginTop: 24,\n fontSize: 20,\n textAlign: 'center',\n});\n","import { styled } from '@material-ui/core';\n\nexport const Stack = styled('div')({ display: 'flex', flexDirection: 'column' });\nexport const Wrap = styled('div')({ display: 'flex', flexWrap: 'wrap' });\n","import React from 'react';\n\nimport { styled } from '@material-ui/core';\nimport { ThemeRes } from 'Web/Themes/ThemeRes';\nimport { StringKey } from 'Locales/fr';\nimport { Message } from 'Locales/I18nService';\nimport { StyledComponent } from '@material-ui/styles';\n\nexport const NunitoSansTitle = styled('div')({\n fontWeight: 400,\n fontFamily: ThemeRes.Fonts.fontFamilyNunitoSans,\n color: '#000000',\n});\n\nexport const NunitoSansBoldTitle = styled('div')({\n //fontWeight: 'bold',\n fontWeight: 700,\n fontFamily: ThemeRes.Fonts.fontFamilyNunitoSansBold,\n});\n\nexport const GlendaleTitle = styled('div')({\n fontWeight: 400,\n fontFamily: ThemeRes.Fonts.fontFamilyGlendale,\n textTransform: 'uppercase',\n color: '#000000',\n});\n\nexport const AvenirTitle = styled('div')({\n fontWeight: 400,\n fontFamily: ThemeRes.Fonts.fontFamilyAvenir,\n color: '#000000',\n});\n\nexport const TextTitle = (Component: StyledComponent, id: StringKey) => {\n return (\n \n \n \n );\n};\n\nexport const TextContent = (Component: StyledComponent, content: React.ReactNode) => {\n return {content};\n};\n\n// type TextTitleProps ={Component:StyledComponent| React.Component}\n// const TextTitle = ({Component}:TextTitleProps)=>{\n// return \n// \n// }\n","import React from 'react';\n\nimport { useViewState } from '../../Hooks/ViewState/ViewState';\nimport { Logger } from '../../../Errors/Logger';\nimport { useWindowLog } from '../../../Hooks/WindowLog';\n\nexport type DebugContextState = {\n questionsHabitation?: boolean;\n questionsContext?: boolean;\n floorPlanEnabled?: boolean;\n floorPlanLaizeTraceEnabled?: boolean;\n geometryDebugEnabled?: boolean;\n\n debugMapEnabled?: boolean;\n};\n\ntype DebugContextValue = {\n state: DebugContextState;\n update: (values: Partial) => void;\n};\n\nconst DebugContext = React.createContext({ state: {}, update: () => {} });\nexport const useDebugContext = () => React.useContext(DebugContext);\nexport const useDebugContextState = () => React.useContext(DebugContext).state;\n\nexport const DebugProvider: React.FC = ({ children }) => {\n const activeInLocalStorage = Boolean(localStorage.getItem(Logger.LoggerId));\n const { state, getState, update } = useViewState({\n questionsHabitation: activeInLocalStorage,\n questionsContext: activeInLocalStorage,\n floorPlanEnabled: activeInLocalStorage,\n\n floorPlanLaizeTraceEnabled: false,\n debugMapEnabled: Boolean(localStorage.getItem(Logger.LoggerMapId)),\n });\n\n useWindowLog(() => (window.DebugState = getState));\n\n return {children};\n};\n","import { Button, Popover, Switch } from '@material-ui/core';\nimport IconBugReport from '@material-ui/icons/BugReport';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport LayersIcon from '@material-ui/icons/Layers';\nimport MapIcon from '@material-ui/icons/Map';\nimport QuestionIcon from '@material-ui/icons/QuestionAnswer';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport { makeStyles, styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\nimport { CalculLaizeParams, LaizeCalc } from '../../../Plugins/FloorPlan/Components/Laizes/LaizeCalc';\nimport { useMapContextState } from '../../../Plugins/FloorPlan/Context/MapContext';\nimport { useQuoteContext } from '../../Pages/Quote/QuotePageController';\nimport { Toast } from '../../Services/ToastService';\nimport { useDebugContext } from './DebugContext';\nimport { DebugDialog } from './DebugDialog';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\nexport const ButtonDebug = () => {\n const debugState = useDebugContext().state;\n const showDebugButton =\n debugState.questionsContext ||\n debugState.questionsHabitation ||\n debugState.floorPlanLaizeTraceEnabled ||\n debugState.floorPlanEnabled;\n\n const [menuOpened, setOpen] = React.useState(false);\n const anchorEl = React.useRef(null);\n\n const open = () => setOpen(true);\n const close = () => setOpen(false);\n\n return !showDebugButton ? null : (\n \n \n \n \n \n \n );\n};\n\nexport const ButtonDebugControlCenter = React.memo(ButtonDebug);\n\nexport const DebugColorContants = {\n BACKGROUND: '#02D213',\n COLOR: '#FFFFFF',\n PANEL_CONTROL: '#013C01',\n};\nconst PaperStyle: CSSProperties = {\n translate: '12px 0px',\n borderRadius: '16px',\n background: DebugColorContants.PANEL_CONTROL,\n};\n\nexport const GlassMask = styled('div')({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backdropFilter: 'blur(20px)',\n background: 'rgba(255, 255, 255, 0.1)',\n});\n\nconst Container = styled('div')({\n background: `${DebugColorContants.BACKGROUND} !important`,\n boxShadow: '0 10px 25px -5px #030308',\n width: 32,\n height: 32,\n borderRadius: 16,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n});\n\n//#region //* CenterPanelControl\n\nconst MenuContainer = styled(Stack)({\n position: 'relative',\n minHeight: 300,\n minWidth: 300,\n padding: 16,\n});\n\nexport const MenuPanel = () => {\n const {\n state: { questionsHabitation, questionsContext, floorPlanEnabled, floorPlanLaizeTraceEnabled },\n update,\n } = useDebugContext();\n return (\n \n \n update({ questionsHabitation: value })}>\n \n <QuestionIcon /> Questions habitation\n \n \n update({ questionsContext: value })} divider>\n \n <QuestionIcon /> Questions context\n \n \n update({ floorPlanEnabled: value })}>\n \n <LayersIcon /> Plan / Traces (Magnétisme)\n \n \n\n update({ floorPlanLaizeTraceEnabled: value })}\n divider>\n \n <LayersIcon /> Plan / Traces (Lez)\n \n \n\n \n\n \n \n \n );\n};\ntype ItemProps = { checked?: boolean; onChange: (value: boolean) => void; divider?: boolean };\nconst Item: React.FC = ({ checked = false, onChange, divider, children }) => {\n const classes = makeStyles((theme) => ({\n switch_track: { backgroundColor: '#F9CC98', opacity: 1 },\n switch_base: {\n color: '#FDF9FB',\n '&.Mui-checked': { color: '#FFFFFF' },\n '&.Mui-checked + .MuiSwitch-track': { backgroundColor: '#F79C32', opacity: 1 },\n },\n }))();\n\n return (\n onChange(!checked)}\n style={{ borderBottom: divider ? '1px solid #E0E0E0' : 'none' }}>\n {children}\n \n \n );\n};\nconst ItemContainer = styled(Button)({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n color: '#FFFFFF',\n fontWeight: 400,\n cursor: 'pointer',\n height: 40,\n borderColor: '#FFFFFF',\n padding: '0px 0px 0px 12px',\n borderRadius: 0,\n});\n//#endregion\n\nconst VersionInspector = () => {\n const [visible, setVisible] = React.useState(false);\n const hide = () => setVisible(false);\n const show = () => setVisible(true);\n const data = useQuoteContext().state;\n return (\n \n \n <SettingsIcon /> Version State\n \n {visible && (\n \n {`Version de paramètrage : ${data.versionId}`}\n \n }\n data={data}\n onClose={hide}\n />\n )}\n \n );\n};\n\nconst MapInspector = () => {\n const [visible, setVisible] = React.useState(false);\n const hide = () => setVisible(false);\n const show = () => setVisible(true);\n const data = useMapContextState();\n return (\n \n \n <MapIcon /> Map State\n \n {visible && (\n \n Map / Plan\n \n }\n data={data}\n onClose={hide}\n />\n )}\n \n );\n};\n\nconst Title = styled('div')({ display: 'flex', alignItems: 'center', gap: 16 });\n\nconst LaizeParams = () => {\n const { laizeProps, rooms = [], openings = [], walls = [], roomItems = [] } = useMapContextState();\n return (\n {\n const laizeCalcProps = laizeProps?.map(LaizeCalc.toLaizeCalcProps);\n const params = laizeCalcProps?.map((x) => {\n return {\n laizeCalcProps: x,\n rooms,\n openings,\n walls,\n roomItems,\n flooringDirectionByRoomId: LaizeCalc.getFlooringDirectionByRoomId(rooms),\n } as CalculLaizeParams;\n });\n const calcOptimalBandLayoutParams = params?.map(LaizeCalc.toCalculateOptimalBandsLayoutParams);\n navigator.clipboard\n .writeText(JSON.stringify(calcOptimalBandLayoutParams))\n .then(() => {\n Toast.showSuccess({ content: 'Paramètres copiés.' });\n })\n .catch((error) => {\n console.error('Failed to copy text to clipboard:', error);\n });\n }}>\n \n <GetAppIcon /> Copy Laize Params\n \n \n );\n};\n","import { Dialog } from '@material-ui/core';\nimport { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\nimport { GestureEvent } from '../../../Events/withEvent';\n\nimport { ThemeKeys } from 'react-json-view';\nimport { JSONViewer } from '../../Components/Templates/Wrappers/JSONViewer/JSONViewer';\nimport { ButtonClose } from '../../Components/Widgets/ButtonClose';\nimport { useIsMobile } from '../PlatformContext/PlatformContext';\nimport { DebugColorContants } from './DebugControl';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\ntype DebugDialogProps = {\n title: React.ReactNode;\n data: any;\n onClose: (e: GestureEvent) => void;\n theme?: DebugDialogStyle;\n styles?: { header?: CSSProperties; body?: CSSProperties };\n collapsed?: number | boolean;\n};\nexport const DebugDialog: React.FC = ({\n title,\n data = {},\n onClose,\n styles: styleProps,\n children,\n collapsed,\n theme = DebugDialogStyles.ApathyInverted,\n}) => {\n const headerStyle: CSSProperties = {\n background: DebugColorContants.PANEL_CONTROL,\n color: DebugColorContants.COLOR,\n ...styleProps?.header,\n };\n\n const bodyStyle: CSSProperties = { ...theme.styles?.body, ...styleProps?.body };\n\n return (\n \n \n
\n {title}\n {\n e.stopPropagation();\n onClose(e);\n }}\n style={{ top: 0, right: 16, bottom: 0, margin: 'auto', width: 40, height: 40 }}>\n \n \n
\n \n {children || (\n \n )}\n \n
\n
\n );\n};\nconst Content = styled(Stack)({ height: '100%' });\nconst Header = styled('div')({\n position: 'relative',\n width: '100%',\n minHeight: 50,\n display: 'flex',\n fontWeight: 700,\n alignItems: 'center',\n fontSize: 18,\n padding: 24,\n});\nconst Title = styled('div')({ marginRight: 32 });\n\nconst Body = styled(Stack)({\n width: '100%',\n height: '100%',\n overflowY: 'auto',\n background: 'rgb(3, 26, 22)', //*color from JsonViewer theme : apathy\n});\nconst PaperStyle: CSSProperties = {\n position: 'relative',\n width: '100%',\n minWidth: 'calc(100% - 128px)',\n height: '100%',\n borderRadius: 0,\n};\nconst CloseIcon = (props: React.SVGProps) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\ntype IDebugDialogStyles = { ApathyInverted: DebugDialogStyle };\nexport type DebugDialogStyle = {\n theme: ThemeKeys;\n styles?: { header?: CSSProperties; body?: CSSProperties };\n};\nexport const DebugDialogStyles: IDebugDialogStyles = {\n ApathyInverted: {\n theme: 'apathy:inverted',\n //* color from JsonViewer theme : apathy:inverted\n styles: { body: { background: 'rgb(239, 255, 255)' } },\n },\n};\n","// src/index.tsx\nimport React3, { Component as Component3 } from \"react\";\nimport fastCompare from \"react-fast-compare\";\nimport invariant from \"invariant\";\n\n// src/Provider.tsx\nimport React2, { Component } from \"react\";\n\n// src/server.ts\nimport React from \"react\";\n\n// src/constants.ts\nvar TAG_NAMES = /* @__PURE__ */ ((TAG_NAMES2) => {\n TAG_NAMES2[\"BASE\"] = \"base\";\n TAG_NAMES2[\"BODY\"] = \"body\";\n TAG_NAMES2[\"HEAD\"] = \"head\";\n TAG_NAMES2[\"HTML\"] = \"html\";\n TAG_NAMES2[\"LINK\"] = \"link\";\n TAG_NAMES2[\"META\"] = \"meta\";\n TAG_NAMES2[\"NOSCRIPT\"] = \"noscript\";\n TAG_NAMES2[\"SCRIPT\"] = \"script\";\n TAG_NAMES2[\"STYLE\"] = \"style\";\n TAG_NAMES2[\"TITLE\"] = \"title\";\n TAG_NAMES2[\"FRAGMENT\"] = \"Symbol(react.fragment)\";\n return TAG_NAMES2;\n})(TAG_NAMES || {});\nvar SEO_PRIORITY_TAGS = {\n link: { rel: [\"amphtml\", \"canonical\", \"alternate\"] },\n script: { type: [\"application/ld+json\"] },\n meta: {\n charset: \"\",\n name: [\"generator\", \"robots\", \"description\"],\n property: [\n \"og:type\",\n \"og:title\",\n \"og:url\",\n \"og:image\",\n \"og:image:alt\",\n \"og:description\",\n \"twitter:url\",\n \"twitter:title\",\n \"twitter:description\",\n \"twitter:image\",\n \"twitter:image:alt\",\n \"twitter:card\",\n \"twitter:site\"\n ]\n }\n};\nvar VALID_TAG_NAMES = Object.values(TAG_NAMES);\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HTML_TAG_MAP = Object.entries(REACT_TAG_MAP).reduce(\n (carry, [key, value]) => {\n carry[value] = key;\n return carry;\n },\n {}\n);\nvar HELMET_ATTRIBUTE = \"data-rh\";\n\n// src/utils.ts\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\",\n PRIORITIZE_SEO_TAGS: \"prioritizeSeoTags\"\n};\nvar getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n return null;\n};\nvar getTitleFromPropsList = (propsList) => {\n let innermostTitle = getInnermostProperty(propsList, \"title\" /* TITLE */);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join(\"\");\n }\n if (innermostTemplate && innermostTitle) {\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || void 0;\n};\nvar getOnChangeClientState = (propsList) => getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {\n});\nvar getAttributesFromPropsList = (tagType, propsList) => propsList.filter((props) => typeof props[tagType] !== \"undefined\").map((props) => props[tagType]).reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\nvar getBaseTagFromPropsList = (primaryAttributes, propsList) => propsList.filter((props) => typeof props[\"base\" /* BASE */] !== \"undefined\").map((props) => props[\"base\" /* BASE */]).reverse().reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n return innermostBaseTag;\n}, []);\nvar warn = (msg) => console && typeof console.warn === \"function\" && console.warn(msg);\nvar getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n const approvedSeenTags = {};\n return propsList.filter((props) => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[tagName]}\"`\n );\n }\n return false;\n }).map((props) => props[tagName]).reverse().reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n instanceTags.filter((tag) => {\n let primaryAttributeKey;\n const keys2 = Object.keys(tag);\n for (let i = 0; i < keys2.length; i += 1) {\n const attributeKey = keys2[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === \"rel\" /* REL */ && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === \"rel\" /* REL */ && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === \"innerHTML\" /* INNER_HTML */ || attributeKey === \"cssText\" /* CSS_TEXT */ || attributeKey === \"itemprop\" /* ITEM_PROP */)) {\n primaryAttributeKey = attributeKey;\n }\n }\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n const value = tag[primaryAttributeKey].toLowerCase();\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n return false;\n }).reverse().forEach((tag) => approvedTags.push(tag));\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey]\n };\n approvedSeenTags[attributeKey] = tagUnion;\n }\n return approvedTags;\n }, []).reverse();\n};\nvar getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\nvar reducePropsToState = (propsList) => ({\n baseTag: getBaseTagFromPropsList([\"href\" /* HREF */], propsList),\n bodyAttributes: getAttributesFromPropsList(\"bodyAttributes\" /* BODY */, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(\"htmlAttributes\" /* HTML */, propsList),\n linkTags: getTagsFromPropsList(\n \"link\" /* LINK */,\n [\"rel\" /* REL */, \"href\" /* HREF */],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n \"meta\" /* META */,\n [\n \"name\" /* NAME */,\n \"charset\" /* CHARSET */,\n \"http-equiv\" /* HTTPEQUIV */,\n \"property\" /* PROPERTY */,\n \"itemprop\" /* ITEM_PROP */\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(\"noscript\" /* NOSCRIPT */, [\"innerHTML\" /* INNER_HTML */], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n \"script\" /* SCRIPT */,\n [\"src\" /* SRC */, \"innerHTML\" /* INNER_HTML */],\n propsList\n ),\n styleTags: getTagsFromPropsList(\"style\" /* STYLE */, [\"cssText\" /* CSS_TEXT */], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(\"titleAttributes\" /* TITLE */, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS)\n});\nvar flattenArray = (possibleArray) => Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\nvar checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\nvar prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList, priority: [] };\n};\nvar without = (obj, key) => {\n return {\n ...obj,\n [key]: void 0\n };\n};\n\n// src/server.ts\nvar SELF_CLOSING_TAGS = [\"noscript\" /* NOSCRIPT */, \"script\" /* SCRIPT */, \"style\" /* STYLE */];\nvar encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\nvar generateElementAttributesAsString = (attributes) => Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== \"undefined\" ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n}, \"\");\nvar generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}` : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`;\n};\nvar generateTagsAsString = (type, tags, encode = true) => tags.reduce((str, t) => {\n const tag = t;\n const attributeHtml = Object.keys(tag).filter(\n (attribute) => !(attribute === \"innerHTML\" /* INNER_HTML */ || attribute === \"cssText\" /* CSS_TEXT */)\n ).reduce((string, attribute) => {\n const attr = typeof tag[attribute] === \"undefined\" ? attribute : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, \"\");\n const tagContent = tag.innerHTML || tag.cssText || \"\";\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${isSelfClosing ? `/>` : `>${tagContent}`}`;\n}, \"\");\nvar convertElementAttributesToReactProps = (attributes, initProps = {}) => Object.keys(attributes).reduce((obj, key) => {\n const mapped = REACT_TAG_MAP[key];\n obj[mapped || key] = attributes[key];\n return obj;\n}, initProps);\nvar generateTitleAsReactComponent = (_type, title, attributes) => {\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n return [React.createElement(\"title\" /* TITLE */, props, title)];\n};\nvar generateTagsAsReactComponent = (type, tags) => tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true\n };\n Object.keys(tag).forEach((attribute) => {\n const mapped = REACT_TAG_MAP[attribute];\n const mappedAttribute = mapped || attribute;\n if (mappedAttribute === \"innerHTML\" /* INNER_HTML */ || mappedAttribute === \"cssText\" /* CSS_TEXT */) {\n const content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n});\nvar getMethodsForTag = (type, tags, encode = true) => {\n switch (type) {\n case \"title\" /* TITLE */:\n return {\n toComponent: () => generateTitleAsReactComponent(type, tags.title, tags.titleAttributes),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode)\n };\n case \"bodyAttributes\" /* BODY */:\n case \"htmlAttributes\" /* HTML */:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags)\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode)\n };\n }\n};\nvar getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(\"meta\" /* META */, meta.priority),\n ...generateTagsAsReactComponent(\"link\" /* LINK */, link.priority),\n ...generateTagsAsReactComponent(\"script\" /* SCRIPT */, script.priority)\n ],\n toString: () => (\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(\"meta\" /* META */, meta.priority, encode)} ${getMethodsForTag(\n \"link\" /* LINK */,\n link.priority,\n encode\n )} ${getMethodsForTag(\"script\" /* SCRIPT */, script.priority, encode)}`\n )\n };\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default\n };\n};\nvar mapStateOnServer = (props) => {\n const {\n baseTag,\n bodyAttributes,\n encode = true,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = \"\",\n titleAttributes,\n prioritizeSeoTags\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {\n },\n toString: () => \"\"\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\n base: getMethodsForTag(\"base\" /* BASE */, baseTag, encode),\n bodyAttributes: getMethodsForTag(\"bodyAttributes\" /* BODY */, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(\"htmlAttributes\" /* HTML */, htmlAttributes, encode),\n link: getMethodsForTag(\"link\" /* LINK */, linkTags, encode),\n meta: getMethodsForTag(\"meta\" /* META */, metaTags, encode),\n noscript: getMethodsForTag(\"noscript\" /* NOSCRIPT */, noscriptTags, encode),\n script: getMethodsForTag(\"script\" /* SCRIPT */, scriptTags, encode),\n style: getMethodsForTag(\"style\" /* STYLE */, styleTags, encode),\n title: getMethodsForTag(\"title\" /* TITLE */, { title, titleAttributes }, encode)\n };\n};\nvar server_default = mapStateOnServer;\n\n// src/HelmetData.ts\nvar instances = [];\nvar isDocument = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar HelmetData = class {\n instances = [];\n canUseDOM = isDocument;\n context;\n value = {\n setHelmet: (serverState) => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => this.canUseDOM ? instances : this.instances,\n add: (instance) => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: (instance) => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n }\n }\n };\n constructor(context, canUseDOM) {\n this.context = context;\n this.canUseDOM = canUseDOM || false;\n if (!canUseDOM) {\n context.helmet = server_default({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n }\n};\n\n// src/Provider.tsx\nvar defaultValue = {};\nvar Context = React2.createContext(defaultValue);\nvar HelmetProvider = class _HelmetProvider extends Component {\n static canUseDOM = isDocument;\n helmetData;\n constructor(props) {\n super(props);\n this.helmetData = new HelmetData(this.props.context || {}, _HelmetProvider.canUseDOM);\n }\n render() {\n return /* @__PURE__ */ React2.createElement(Context.Provider, { value: this.helmetData.value }, this.props.children);\n }\n};\n\n// src/Dispatcher.tsx\nimport { Component as Component2 } from \"react\";\nimport shallowEqual from \"shallowequal\";\n\n// src/client.ts\nvar updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(\"head\" /* HEAD */);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n if (tags && tags.length) {\n tags.forEach((tag) => {\n const newElement = document.createElement(type);\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, attribute)) {\n if (attribute === \"innerHTML\" /* INNER_HTML */) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === \"cssText\" /* CSS_TEXT */) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n const attr = attribute;\n const value = typeof tag[attr] === \"undefined\" ? \"\" : tag[attr];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n if (oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n oldTags.forEach((tag) => tag.parentNode?.removeChild(tag));\n newTags.forEach((tag) => headElement.appendChild(tag));\n return {\n oldTags,\n newTags\n };\n};\nvar updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n if (!elementTag) {\n return;\n }\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n const attributesToRemove = [...helmetAttributes];\n const attributeKeys = Object.keys(attributes);\n for (const attribute of attributeKeys) {\n const value = attributes[attribute] || \"\";\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\n elementTag.removeAttribute(attributesToRemove[i]);\n }\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\nvar updateTitle = (title, attributes) => {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n updateAttributes(\"title\" /* TITLE */, attributes);\n};\nvar commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes\n } = newState;\n updateAttributes(\"body\" /* BODY */, bodyAttributes);\n updateAttributes(\"html\" /* HTML */, htmlAttributes);\n updateTitle(title, titleAttributes);\n const tagUpdates = {\n baseTag: updateTags(\"base\" /* BASE */, baseTag),\n linkTags: updateTags(\"link\" /* LINK */, linkTags),\n metaTags: updateTags(\"meta\" /* META */, metaTags),\n noscriptTags: updateTags(\"noscript\" /* NOSCRIPT */, noscriptTags),\n scriptTags: updateTags(\"script\" /* SCRIPT */, scriptTags),\n styleTags: updateTags(\"style\" /* STYLE */, styleTags)\n };\n const addedTags = {};\n const removedTags = {};\n Object.keys(tagUpdates).forEach((tagType) => {\n const { newTags, oldTags } = tagUpdates[tagType];\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n if (cb) {\n cb();\n }\n onChangeClientState(newState, addedTags, removedTags);\n};\nvar _helmetCallback = null;\nvar handleStateChangeOnClient = (newState) => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\nvar client_default = handleStateChangeOnClient;\n\n// src/Dispatcher.tsx\nvar HelmetDispatcher = class extends Component2 {\n rendered = false;\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n componentDidUpdate() {\n this.emitChange();\n }\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map((instance) => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (HelmetProvider.canUseDOM) {\n client_default(state);\n } else if (server_default) {\n serverState = server_default(state);\n }\n setHelmet(serverState);\n }\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n this.rendered = true;\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n render() {\n this.init();\n return null;\n }\n};\n\n// src/index.tsx\nvar Helmet = class extends Component3 {\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false\n };\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, \"helmetData\"), without(nextProps, \"helmetData\"));\n }\n mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n switch (child.type) {\n case \"script\" /* SCRIPT */:\n case \"noscript\" /* NOSCRIPT */:\n return {\n innerHTML: nestedChildren\n };\n case \"style\" /* STYLE */:\n return {\n cssText: nestedChildren\n };\n default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n flattenArrayTypeChildren(child, arrayTypeChildren, newChildProps, nestedChildren) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...arrayTypeChildren[child.type] || [],\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren)\n }\n ]\n };\n }\n mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren) {\n switch (child.type) {\n case \"title\" /* TITLE */:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps }\n };\n case \"body\" /* BODY */:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps }\n };\n case \"html\" /* HTML */:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps }\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps }\n };\n }\n }\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n Object.keys(arrayTypeChildren).forEach((arrayChildName) => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName]\n };\n });\n return newFlattenedProps;\n }\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some((name) => child.type === name),\n typeof child.type === \"function\" ? `You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.` : `Only elements types ${VALID_TAG_NAMES.join(\n \", \"\n )} are allowed. Helmet does not support rendering <${child.type}> elements. Refer to our API for more information.`\n );\n invariant(\n !nestedChildren || typeof nestedChildren === \"string\" || Array.isArray(nestedChildren) && !nestedChildren.some((nestedChild) => typeof nestedChild !== \"string\"),\n `Helmet expects a string as a child of <${child.type}>. Did you forget to wrap your children in braces? ( <${child.type}>{\\`\\`} ) Refer to our API for more information.`\n );\n return true;\n }\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n React3.Children.forEach(children, (child) => {\n if (!child || !child.props) {\n return;\n }\n const { children: nestedChildren, ...childProps } = child.props;\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n let { type } = child;\n if (typeof type === \"symbol\") {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n switch (type) {\n case \"Symbol(react.fragment)\" /* FRAGMENT */:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n case \"link\" /* LINK */:\n case \"meta\" /* META */:\n case \"noscript\" /* NOSCRIPT */:\n case \"script\" /* SCRIPT */:\n case \"style\" /* STYLE */:\n arrayTypeChildren = this.flattenArrayTypeChildren(\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren\n );\n break;\n default:\n newProps = this.mapObjectTypeChildren(child, newProps, newChildProps, nestedChildren);\n break;\n }\n });\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n if (helmetData && !(helmetData instanceof HelmetData)) {\n const data = helmetData;\n helmetData = new HelmetData(data.context, true);\n delete newProps.helmetData;\n }\n return helmetData ? /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context: helmetData.value }) : /* @__PURE__ */ React3.createElement(Context.Consumer, null, (context) => /* @__PURE__ */ React3.createElement(HelmetDispatcher, { ...newProps, context }));\n }\n};\nexport {\n Helmet,\n HelmetData,\n HelmetProvider\n};\n","import { Theme, useMediaQuery } from '@material-ui/core';\nimport Bowser from 'bowser';\nimport React from 'react';\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\nimport { I18n } from '../../../Locales/I18nService';\n\n//* Can be usefull for platform context like #ANDROID #IPHONE #IPAD\n\n// Breakpoints\n// xs, extra-small: 0px.\n// sm, small: 600px.\n// md, medium: 960px.\n// lg, large: 1280px.\n// xl, extra-large: 1920px.\n\n// value |0px 600px 960px 1280px 1920px\n// key |xs sm md lg xl\n// screen width |--------|--------|--------|--------|-------->\n// range | xs | sm | md | lg | xl\n\nexport const BreakpointSize = {\n XS: 0, //* mobile\n SM: 600, //* tablete like nexus 7\n MD: 960, //* ipad\n LG: 1280,\n XL: 1920,\n} as const;\n\nexport interface IPlatformContextValue {\n isMobile: boolean;\n isTablet: boolean;\n browser?: Bowser.Parser.Details;\n isValidBrowser: boolean;\n}\n\nconst DefaultPlatformContextValue: IPlatformContextValue = {\n isMobile: false,\n isTablet: false,\n browser: undefined,\n isValidBrowser: false,\n};\n\nexport const MOBILE_LIMIT = {\n WIDTH_600: 600,\n WIDTH_800: 800,\n WIDTH_900: 900,\n WIDTH_1100: 1100,\n WIDTH_1200: 1200,\n WIDTH_1500: 1500,\n};\n\nconst PlatformContext = React.createContext(DefaultPlatformContextValue);\nPlatformContext.displayName = 'PlatformContext';\nexport const usePlatformContext = (): IPlatformContextValue => React.useContext(PlatformContext);\nexport const useIsMobile = () => usePlatformContext().isMobile;\n\nexport const PlatformContextProvider: React.FunctionComponent = ({ children }) => {\n const browser = Bowser.getParser(window.navigator.userAgent);\n const isValidBrowser = browser.satisfies({\n mobile: {\n safari: '>11.2',\n 'android browser': '>=94',\n opera: '>=64',\n 'Samsung Internet for Android': '>8.2',\n },\n\n desktop: {\n safari: '>11',\n opera: '>46',\n },\n\n firefox: '>54',\n chrome: '>59',\n edge: '>=80',\n 'internet explorer': '>11',\n });\n\n const isMobile = useMediaQuery((theme: Theme) => theme.breakpoints.down(MOBILE_LIMIT.WIDTH_900), {\n noSsr: true,\n });\n\n const platformContextValue: IPlatformContextValue = {\n isMobile,\n isTablet: false,\n browser: browser.getBrowser(),\n isValidBrowser: isValidBrowser ?? false,\n };\n\n return (\n \n \n \n {I18n.get('ApplicationName')}\n \n {children}\n \n \n );\n};\n","import { useLocation } from 'react-router-dom';\n\nexport const useQuery = (): T => {\n return useQueryCore(useLocation());\n};\n\nexport const useQueryCore = (location: { search: string }): T => {\n const query = new URLSearchParams(location.search);\n const results: { [key: string]: any } = {};\n query.forEach((value: string, key: string) => {\n results[key] = value;\n });\n return results as T;\n};\n","import { MeDto, UserTypeDto } from '../Models/Users/Me';\nimport { I18n } from '../Locales/I18nService';\n\nexport type UserInfoType = { first_name: string; last_name: string; };\n\nexport class UserUtils {\n static getFullName(user?: MeDto): string {\n switch (user?.type) {\n case UserTypeDto.Customer:\n return UserUtils.toUserInfo(user.customer_properties);\n case UserTypeDto.StmacStore:\n return UserUtils.toUserInfo(user.stmac_store_properties?.as_customer);\n case UserTypeDto.BoUserAsStore:\n return UserUtils.toUserInfo(user.bo_user_as_store_properties, 'TEST_STORE_USER_FULLNAME');\n case UserTypeDto.BoUserAsCustomer:\n return UserUtils.toUserInfo(user.bo_user_as_customer_properties, 'TEST_CUSTOMER_USER_FULLNAME');\n }\n\n return '';\n }\n\n public static toUserInfo(user?: UserInfoType, customIntlKey?: string): string {\n return I18n.format(customIntlKey ?? 'COMMON_USER_FULLNAME', {\n firstName: user?.first_name,\n lastName: user?.last_name,\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { useEffect, useMemo } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { AppState, useMe } from '../../../Configs/PolStore';\n\nimport { GTM } from '../../../Plugins/GTM/GTM';\nimport { TokenType } from '../../../Models/Authentication/AuthResponse';\nimport { AuthenticationState } from '../../../Services/Authentication/AuthenticationReducer';\nimport { AuthService } from '../../../Services/Authentication/AuthService';\nimport { MeState } from '../../../Services/Me/MeReducer';\n\nimport { UserTypeDto } from '../../../Models/Users/Me';\nimport { UserUtils } from '../../../Utils/UserUtils';\nimport { DialogService, ValidateActionParams } from '../../Services/DialogService';\n\nexport interface UserLoggedState {\n userLoaded: boolean;\n name: string;\n requestLogin: (onLoginFinished: () => void) => void;\n requestLogout: (onLogoutFinished: () => void) => void;\n isStmacUser: boolean;\n isAuthenticated: boolean;\n isBoUser: boolean;\n}\n\nexport const useAuthenticatedUser = (): UserLoggedState => {\n const me: MeState = useMe();\n const authentication: AuthenticationState = useSelector((state: AppState) => state.Authentication);\n\n const i18n = useIntl();\n\n //#region //* LOGIN\n const requestLogin = (afterLoginSuccess: () => void): void => {\n DialogService.showStmacLoginDialog({ afterLoginSuccess });\n };\n //#endregion\n\n //#region //* REGION LOGOUT\n const logout = async (): Promise => AuthService.logout('user click on logout');\n\n const requestLogout = (onLogoutFinished: () => void): void => {\n const messages = i18n.messages as Record;\n DialogService.showYesNoChoiceDialog({\n title: messages['Dialog_LogoutTitle'],\n subtitle: messages['Dialog_LogoutMessageHeader'],\n body: messages['Dialog_LogoutMessageBody'],\n onClickYes: async ({ closeDialog, setValidating }: ValidateActionParams) => {\n setValidating(true);\n await logout();\n setValidating(false);\n closeDialog(onLogoutFinished);\n },\n onClickNo: onLogoutFinished,\n onClosed: onLogoutFinished,\n });\n };\n\n //#endregion\n\n //* Push user origin to Google Tag Manager\n useEffect(() => {\n GTM.pushUserOrigin(me?.data?.type);\n GTM.pushCurrentClientId(me?.data?.customer_properties?.id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [me?.data?.type]);\n\n const state = useMemo(() => {\n return {\n userLoaded: Boolean(me?.data),\n name: UserUtils.getFullName(me?.data),\n isStmacUser: authentication.token_type === TokenType.StmacJWT,\n isAuthenticated: authentication.isAuthenticated,\n requestLogin,\n requestLogout,\n isBoUser:\n Boolean(me.data?.type) &&\n [UserTypeDto.BoUserAsCustomer, UserTypeDto.BoUserAsStore].includes(me.data!.type),\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [me]);\n\n return state;\n};\n","import { useSelector } from 'react-redux';\nimport { AppState, useMe } from '../../../Configs/PolStore';\nimport { TokenType } from '../../../Models/Authentication/AuthResponse';\nimport { UserTypeDto } from '../../../Models/Users/Me';\nimport { MeState } from '../../../Services/Me/MeReducer';\n\nexport const useIsVendeur = (): boolean => {\n const { token_type } = useSelector((state: AppState) => state.Authentication);\n const me: MeState = useMe();\n return token_type === TokenType.CrmAXStore || me.data?.type === UserTypeDto.BoUserAsStore;\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\n\nexport type EnhancedViewState = Partial & Partial<{ loading: boolean; modified: boolean; saving: boolean; busy: boolean, initialized: boolean }>;\n\nexport interface ViewState {\n readonly initialState: EnhancedViewState;\n readonly state: EnhancedViewState;\n readonly getState: () => EnhancedViewState;\n readonly onChange: (field: keyof EnhancedViewState, value: any, afterUpdate?: (newState: EnhancedViewState) => void) => void;\n readonly update: (values: Partial>, afterUpdate?: (newState: EnhancedViewState) => void) => void;\n\n readonly resetState: (values?: Partial>, afterUpdate?: (newState: EnhancedViewState) => void) => void;\n}\n\nexport const useViewState = (initialState: EnhancedViewState = {}): ViewState => {\n\n const refState = React.useRef>(initialState);\n const [state, setState] = React.useState>(refState.current);\n\n const getState = (): EnhancedViewState => refState.current;\n\n const update = React.useCallback((values: Partial>, afterUpdate?: (newState: EnhancedViewState) => void): void => {\n setState((prevState) => {\n const newState: EnhancedViewState = { ...prevState, ...values };\n refState.current = newState\n setTimeout(() => afterUpdate?.(newState));\n return newState;\n });\n }, []);\n\n const onChange = React.useCallback((field: keyof EnhancedViewState, value: any, afterUpdate?: (newState: EnhancedViewState) => void): void => {\n const values = { [field]: value, modified: true } as Partial>;\n update(values, afterUpdate);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n },[]);\n\n const resetState = React.useCallback((values: Partial> = {}, afterUpdate?: (newState: EnhancedViewState) => void): void => {\n setState(() => {\n const newState: EnhancedViewState = { ...initialState, ...values };\n refState.current = newState\n setTimeout(() => afterUpdate?.(newState));\n return newState;\n });\n }, [initialState]);\n\n return { initialState, state, getState, onChange, update, resetState };\n}\n","import loadash from 'lodash';\nimport React from 'react';\n\n//#region //! TODO remove => not used\n\nexport default function useDebounce(value: T, delay: number) {\n const [debouncedValue, setDebouncedValue] = React.useState(value);\n\n React.useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}\n\n/**\n * Debounce call to onChangeCallback and provide live feedback for the view.\n * @param value the debounced value stored in the state\n * @param onChangeCallback to be debounced callback. In order to work the same callback need to be passed to each render.\n * @param delay\n */\n\n\nexport function useDebounceOnChangeCallback(value: T, onChangeCallback: (v: T) => void, delay: number) {\n const [previousValue, setPreviousValue] = React.useState(value);\n const [liveValue, setLiveValue] = React.useState(value);\n\n if (previousValue !== value) {\n setPreviousValue(value);\n setLiveValue(value);\n }\n\n const debounceFunc = React.useMemo(() => {\n return loadash.debounce(onChangeCallback, delay);\n }, [onChangeCallback, delay]);\n\n const onChange = React.useCallback(\n (v: T) => {\n setLiveValue(v);\n debounceFunc(v);\n },\n [debounceFunc]\n );\n\n return { onChange, liveValue };\n}\n\n//#endregion\n\ntype ThrottleParams = {\n initialValue: T;\n onDelayChange: (v: T) => void;\n onLiveChange?: (value: T) => void;\n delay: number\n};\n\nexport function useThrottle({ initialValue, onDelayChange, onLiveChange, delay }: ThrottleParams) {\n\n const [liveValue, setLiveValue] = React.useState(initialValue);\n\n const debounceFunc = React.useMemo(() => {\n return loadash.debounce(onDelayChange, delay);\n }, [onDelayChange, delay]);\n\n React.useEffect(() => {\n if (initialValue !== liveValue) {\n setLiveValue(initialValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const onLocalChange = React.useCallback((v: T) => {\n setLiveValue(v);\n onLiveChange?.(v);\n debounceFunc(v);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return { onChange: onLocalChange, liveValue, setLiveValue };\n}\n","import { styled } from '@material-ui/styles';\nimport React from 'react';\n\nimport { BaseDialog } from '../../../../../Plugins/FloorPlan/Widgets/BaseDialog';\nimport { ButtonVariant, CustomButton } from '../../../../Components/Views/CustomButton/CustomButton';\n\nexport type SingleChoiceDialogProps = {\n title?: string;\n body?: React.ReactNode;\n labelChoice?: React.ReactNode;\n onClose?: VoidFunction;\n onClickChoice: (setValidating: (validating: boolean) => void) => void;\n};\n\nexport const SingleChoiceDialog = ({ title, labelChoice, body, onClose, onClickChoice }: SingleChoiceDialogProps) => {\n const [validating, setValidating] = React.useState(false);\n const onValidate = () => onClickChoice(setValidating);\n return (\n \n \n \n \n \n );\n};\n\nconst Content = styled('div')({ marginTop: 37, display: 'flex', gap: 12 });\n","import { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\n\nimport { Message } from '../../../../../Locales/I18nService';\nimport { BaseDialog } from '../../../../../Plugins/FloorPlan/Widgets/BaseDialog';\nimport { ButtonVariant, CustomButton } from '../../../../Components/Views/CustomButton/CustomButton';\n\nexport type YesNoDialogProps = {\n open?: boolean;\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n onClose?: VoidFunction;\n leftAction?: React.ReactNode;\n onClickYes: (setValidating: (validating: boolean) => void) => void;\n rightAction?: React.ReactNode;\n onClickNo: (setValidating: (validating: boolean) => void) => void;\n yesHighlight?: boolean;\n noHighlight?: boolean;\n enableCloseOutside?: boolean;\n header?: React.ReactNode;\n body?: React.ReactNode;\n\n styles?: { rightAction?: CSSProperties };\n};\n\nexport const YesNoChoiceDialog = ({\n title,\n subtitle,\n onClose,\n leftAction,\n onClickYes,\n rightAction,\n onClickNo,\n yesHighlight,\n noHighlight,\n enableCloseOutside,\n styles,\n}: YesNoDialogProps) => {\n const [validating, setValidating] = React.useState(false);\n\n const onValidateYes = () => onClickYes(setValidating);\n const onValidateNo = () => onClickNo(setValidating);\n\n const onCloseDialog = () => {\n if (!validating) {\n onClose?.();\n }\n };\n\n return (\n \n \n }\n styles={{ root: BtnStyle }}\n variant={yesHighlight ? ButtonVariant.Blue : ButtonVariant.BorderedBlue}\n onClick={onValidateYes}\n isBusy={validating}\n />\n }\n styles={{ root: { ...BtnStyle, ...styles?.rightAction } }}\n variant={noHighlight ? ButtonVariant.Blue : ButtonVariant.BorderedBlue}\n onClick={onValidateNo}\n isBusy={validating}\n />\n \n \n );\n};\n\nconst Content = styled('div')({ marginTop: '37px', display: 'flex', gap: '12px' });\nconst BtnStyle: CSSProperties = { flex: 1 };\n","import { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\n\nimport { CustomTextField, CustomTextFieldProps } from '../../../Components/Views/CustomTextField/CustomTextField';\n\nexport interface InputTextFieldProps extends CustomTextFieldProps {\n value: string;\n error: boolean;\n label?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport const InputTextField = ({ value, error, label, description, ...rest }: InputTextFieldProps) => {\n return (\n \n \n \n \n );\n};\n\nconst Container = styled('div')({ fontFamily: 'Avenir' });\nconst Label = styled('div')({\n display: 'flex',\n fontSize: '14px',\n fontWeight: 700,\n marginBottom: '8px',\n});\n\nconst DescriptionStyle: CSSProperties = {\n fontFamily: 'Avenir',\n fontSize: '12px',\n fontWeight: 350,\n marginBottom: '10px',\n};\n\nconst InputStyle: CSSProperties = {\n fontSize: '16px',\n fontWeight: '350',\n borderRadius: '0px',\n minHeight: '44px',\n paddingTop: '5px',\n paddingBottom: '5px',\n};\n","import { styled } from '@material-ui/styles';\nimport React from 'react';\nimport { Message } from '../../../../Locales/I18nService';\nimport { BaseDialog } from '../../../../Plugins/FloorPlan/Widgets/BaseDialog';\nimport { ButtonVariant, CustomButton } from '../../../Components/Views/CustomButton/CustomButton';\nimport { InputType } from '../../../Components/Views/CustomTextField/CustomTextField';\nimport { InputTextField } from './InputTextField';\n\nexport interface EditInputDialogProps {\n open: boolean;\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n description: React.ReactNode;\n initialValue?: string;\n placeholder?: string;\n onValidate: (\n input: string,\n setValidating: (validating: boolean) => void,\n setError: (validating: boolean) => void\n ) => void;\n onClose?: VoidFunction;\n}\n\nexport const EditInputDialog: React.FunctionComponent = ({\n open,\n title,\n subtitle,\n description,\n initialValue,\n placeholder,\n onClose,\n onValidate,\n}: EditInputDialogProps) => {\n const [input, setInput] = React.useState(initialValue ?? '');\n const [error, setError] = React.useState(false);\n const [validating, setValidating] = React.useState(false);\n\n const onClickValidate = () => onValidate(input, setValidating, setError);\n\n return (\n \n \n \n }\n variant={ButtonVariant.Blue}\n isBusy={validating}\n onClick={onClickValidate}\n />\n \n \n );\n};\n\nconst ButtonContainer = styled('div')({ display: 'flex', justifyContent: 'flex-end', marginTop: 24 });\n","import { RouteQueryParams } from 'Types/RouteParams';\nimport { useQuery } from 'Web/Hooks/URL/URLUtils';\n\nexport const useVersion = () => {\n const version = useQuery().version;\n return version;\n}","import React from 'react';\n\nimport { Logger } from '../../../../../../../Errors/Logger';\nimport { QuestionsHelper } from '../../../../../../../Helpers/QuestionsHelper';\nimport { useMapContext } from '../../../../../../../Plugins/FloorPlan/Context/MapContext';\nimport { IRoom } from '../../../../../../../Plugins/FloorPlan/Models/IRoom';\nimport { EnhancedViewState } from '../../../../../../Hooks/ViewState/ViewState';\nimport { useQuoteProvider } from '../../../../Controllers/QuoteProviderController';\nimport { useQuoteSaveController } from '../../../../Controllers/QuoteSaveController';\nimport { UpdateStepQuestionsParams, useStepQuestionsController } from '../../../../Controllers/StepQuestionsController';\nimport { QuestionPrepare } from '../../../../Helpers/QuestionPrepare';\nimport { Scroller, useScroller } from '../../../../Helpers/Scroller';\nimport { useRoomSections } from './RoomEditSectionController';\nimport { QuestionStep } from '../../../../../../../Models/Questions/QuestionDto';\n\nexport type UpdateRoomParams = {\n values: Partial>;\n dimensChanged?: boolean;\n questionsModified?: boolean;\n refreshLaizeCalc?: boolean;\n logs?: any;\n};\n\nexport type RoomEditContextValue = {\n open?: boolean;\n state: IRoom;\n getState: () => Partial;\n update: (params: UpdateRoomParams) => void;\n rooms: Array;\n};\nconst RoomEditContext = React.createContext({\n state: {},\n update: () => {},\n rooms: [],\n getState: () => ({}),\n});\nexport const useRoomEdit = () => React.useContext(RoomEditContext);\n\nexport const toRoomSaveState = (item: Partial = {}): Partial => {\n return {\n roomId: item.roomId,\n //* INFOS\n name: item.name,\n namedByUser: item.namedByUser,\n shape: item.shape,\n localisation: item.localisation,\n roomType: item.roomType,\n roomWall: item.roomWall,\n roomFloor: item.roomFloor,\n roomExistingFlooring: item.roomExistingFlooring,\n roomExistingFloorType: item.roomExistingFloorType,\n roomHeating: item.roomHeating,\n roomHeatingType: item.roomHeatingType,\n flooringDirection: item.flooringDirection,\n type: item.type,\n questionsCopiedFromId: item.questionsCopiedFromId,\n\n //* PRODUIT PRINCIPAL\n questionProduitPrincipal: item.questionProduitPrincipal,\n\n //* QUESTIONS STEPS\n questionsTva: item.questionsTva,\n questionsBaseContext: item.questionsBaseContext,\n questionsPose: item.questionsPose,\n questionsSupport: item.questionsSupport,\n questionsPreparation: item.questionsPreparation,\n questionsFinition: item.questionsFinition,\n\n openSections: item.openSections,\n\n //* AMENAGEMENTS\n openings: item.openings,\n roomItems: item.roomItems,\n contournements: item.contournements,\n\n completionStatus: item.completionStatus,\n };\n};\n\nexport const RoomEditProvider: React.FC = ({ children }) => {\n const quoteProvider = useQuoteProvider();\n const map = useMapContext();\n const { rooms = [], selectedRoomId } = map.getState();\n\n const room = rooms.find((item) => item.roomId === selectedRoomId);\n const open = Boolean(selectedRoomId) && Boolean(room);\n const state = toRoomSaveState(room);\n\n const update = ({ values, questionsModified, refreshLaizeCalc, logs }: UpdateRoomParams) => {\n const { rooms = [] } = map.getState();\n quoteProvider.update({\n mapValues: { rooms: rooms.map((item) => (item.roomId === room?.roomId ? { ...item, ...values } : item)) },\n questionsModified,\n refreshLaizeCalc,\n logs: { event: 'RoomEditProvider update', room, values, innerLogs: logs },\n });\n };\n\n const getState = () => map.getState().rooms?.find((item) => item.roomId === selectedRoomId) || {};\n\n return (\n {children}\n );\n};\n\nexport const useRoomQuestions = (step: QuestionStep) => {\n const { state, update } = useRoomEdit();\n const scroller = useScroller();\n const roomSections = useRoomSections(step);\n const { onSaveAuto } = useQuoteSaveController();\n\n const updateStepQuestions = (params: UpdateStepQuestionsParams) => {\n const { contextQuestions, questionsModified, openNextSectionIfNeeded = true, logs } = params;\n\n if (step === QuestionStep.StepPose) {\n update({ values: { questionsPose: contextQuestions }, questionsModified, logs });\n }\n if (step === QuestionStep.StepSupport) {\n update({ values: { questionsSupport: contextQuestions }, questionsModified, logs });\n }\n if (step === QuestionStep.StepPreparation) {\n update({ values: { questionsPreparation: contextQuestions }, questionsModified, logs });\n }\n if (step === QuestionStep.StepFinitions) {\n update({ values: { questionsFinition: contextQuestions }, questionsModified, logs });\n }\n\n Logger.log('updateStepQuestions', {\n endQuestion: contextQuestions.endQuestion,\n step,\n openNextSectionIfNeeded,\n logs,\n });\n if (contextQuestions.endQuestion) {\n const lastShownQuestion = QuestionsHelper.getLastShownQuestion(\n contextQuestions.questions\n ).lastShownQuestion;\n const nextAction = () => {\n if (QuestionsHelper.hasInfobules(lastShownQuestion)) {\n scroller.scrollToAlignBottomQuestionOnBottom(\n Scroller.ID,\n state.roomId!,\n lastShownQuestion,\n Scroller.ShortDelay\n );\n } else if (openNextSectionIfNeeded) {\n roomSections.openNextSection(step);\n }\n };\n onSaveAuto({ nextAction });\n }\n };\n\n const stepController = useStepQuestionsController({\n step,\n updateStepQuestions,\n getItemId: (item) => item.roomId!,\n handleScroll: () => {},\n });\n const stepQuestions = QuestionPrepare.getStepQuestions(state, step);\n\n return { state, stepQuestions, ...stepController, roomSections, update };\n};\n","import { Logger } from '../../../../../../../Errors/Logger';\nimport { QuestionsHelper } from '../../../../../../../Helpers/QuestionsHelper';\nimport { QuoteQuestionUtils } from '../../../../../../../Helpers/QuoteQuestionUtils';\nimport { QuestionItem, QuestionStep, QuestionType } from '../../../../../../../Models/Questions/QuestionDto';\nimport { useIncompatibilityContext } from '../../../../../../../Plugins/FloorPlan/Context/IncompatibilityContext';\nimport { IMapItem } from '../../../../../../../Plugins/FloorPlan/Models/IMapItem';\nimport { IRoom } from '../../../../../../../Plugins/FloorPlan/Models/IRoom';\nimport { QuestionPrepare } from '../../../../Helpers/QuestionPrepare';\nimport { Scroller, useScroller } from '../../../../Helpers/Scroller';\nimport { useRoomEdit } from './RoomEditController';\n\nexport const useRoomSections = (step: QuestionStep) => {\n const scroller = useScroller();\n const { state: room, update, getState } = useRoomEdit();\n\n const roomSections = useOpenNextSection({\n getItemId: (room) => room.roomId!,\n updateItem: (item) => update({ values: item, logs: { event: 'openSection', step } }),\n });\n\n const openNextSection = (step: QuestionStep) => {\n const room = getState();\n Logger.log('useRoomSections openNextSection', { step, room });\n roomSections.openSection(room, step);\n };\n\n const arePreviousStepsCompleted = () => {\n const room = getState();\n const previousCompleted = QuestionPrepare.allPreviousStepCompleted(room, step);\n const result = previousCompleted && room.completionStatus?.infosCompleted;\n return result;\n };\n\n const setExpanded = (open: boolean) => {\n const room = getState();\n let questions: Array | undefined = [];\n if (step === QuestionStep.StepPose) {\n room.openSections = { questionsPose: open };\n questions = room.questionsPose?.questions;\n }\n if (step === QuestionStep.StepSupport) {\n room.openSections = { questionsSupport: open };\n questions = room.questionsSupport?.questions;\n }\n if (step === QuestionStep.StepPreparation) {\n room.openSections = { questionsPreparation: open };\n questions = room.questionsPreparation?.questions;\n }\n if (step === QuestionStep.StepFinitions) {\n room.openSections = { questionsFinition: open };\n questions = room.questionsFinition?.questions;\n }\n update({ values: room, logs: { event: 'setExpanded', open, step } });\n\n if (open) {\n const nextQuestionToScroll = QuoteQuestionUtils.getFirstVisibleNotValidQuestion(questions);\n Logger.log('useRoomSections setExpanded', { nextQuestionToScroll, questions });\n if (nextQuestionToScroll) {\n scroller.scrollToQuestion({\n scrollerId: Scroller.ID,\n itemId: room.roomId!,\n toQuestion: nextQuestionToScroll,\n questions,\n delay: Scroller.LongDelay\n });\n }\n }\n };\n\n const expanded = QuestionPrepare.isStepQuestionsOpened(room, step);\n\n return { expanded, setExpanded, openNextSection, arePreviousStepsCompleted };\n};\n\ntype OpenNextSectionParams> = {\n getItemId: (item: T) => string;\n updateItem: (item: T) => void;\n};\nexport const useOpenNextSection = >({\n getItemId,\n updateItem,\n}: OpenNextSectionParams) => {\n const scroller = useScroller();\n const incompatibility = useIncompatibilityContext();\n\n const openSection = (item: T, fromStep: QuestionStep, noScroll?: boolean) => {\n const nextStep = QuestionPrepare.getNextStep(item, fromStep);\n\n Logger.log('openSection from', { fromStep, nextStep, item });\n\n if (nextStep?.step === QuestionStep.StepPose) {\n item.openSections = { questionsPose: true };\n }\n if (nextStep?.step === QuestionStep.StepSupport) {\n item.openSections = { questionsSupport: true };\n }\n if (nextStep?.step === QuestionStep.StepPreparation) {\n item.openSections = { questionsPreparation: true };\n }\n if (nextStep?.step === QuestionStep.StepFinitions) {\n item.openSections = { questionsFinition: true };\n }\n if (!nextStep) {\n item.openSections = { amenagementsSection: true };\n scroller.scollToBottom(Scroller.ID);\n }\n\n updateItem(item);\n\n if (nextStep) {\n const questions = nextStep.questions!;\n const findFirstIncompatibility = QuestionsHelper.findFirstIncompatibility(\n questions.filter((q) => q.showQuestion && q.type === QuestionType.Respiration)\n );\n\n Logger.log('useOpenNextSection nextStep', { nextStep, findFirstIncompatibility, questions });\n\n if (findFirstIncompatibility.findIncompatibility) {\n incompatibility.showIncompatibilityDialog(item.roomId!, findFirstIncompatibility);\n } else if (!noScroll) {\n const questionToScroll = QuestionsHelper.firstQuestionWithNoResponse(nextStep.questions);\n const respirationQuestion = nextStep.questions?.find(\n (q) => q.type === QuestionType.Respiration && Boolean(q.showQuestion)\n );\n\n Logger.log('useOpenNextSection questionToScroll', { nextStep, questionToScroll });\n\n if (questionToScroll) {\n scroller.scrollToQuestion({\n scrollerId: Scroller.ID,\n itemId: getItemId(item),\n toQuestion: respirationQuestion || questionToScroll,\n questions,\n delay: Scroller.LongDelay\n });\n }\n }\n }\n };\n\n return { openSection };\n};\n","import { YesOrNo } from '../../../../../../../Plugins/FloorPlan/Models/IMapItem';\nimport { IRoom, RoomLocalisation, RoomType } from '../../../../../../../Plugins/FloorPlan/Models/IRoom';\nimport { useIsMobile } from '../../../../../../Context/PlatformContext/PlatformContext';\nimport { Scroller, useScroller } from '../../../../Helpers/Scroller';\n\ntype RoomInfoFocus = {\n localisation?: boolean;\n roomType?: boolean;\n roomWall?: boolean;\n roomFloor?: boolean;\n roomExistingFlooring?: boolean;\n roomHeating?: boolean;\n roomHeatingType?: boolean;\n roomExistingFloorType?: boolean;\n produitPrincipal?: boolean;\n questionsCopiedFromId?: boolean;\n flooringDirection?: boolean;\n};\n\nexport enum RoomInfoIds {\n Localisation = 'Localisation',\n Type = 'Type',\n Wall = 'Wall',\n Floor = 'Floor',\n RevetementAuSol = 'RevetementAuSol',\n FloorType = 'FloorType',\n Heating = 'Heating',\n HeatingType = 'HeatingType',\n StepTva = 'StepTva', //???\n ProduitPrincipal = 'ProduitPrincipal',\n CopyQuestions = 'CopyQuestions',\n FlooringDirection = 'FlooringDirection',\n}\n\nexport const useRoomInfosFocus = (room: IRoom, roomsToCopy: IRoom[] = []) => {\n const isMobile = useIsMobile();\n const scroller = useScroller();\n const focus: RoomInfoFocus = {};\n\n const needAnwserCopieQuestion = roomsToCopy.length > 0 && !room.questionsCopiedFromId;\n\n if (!room.localisation) {\n focus.localisation = true;\n } else if (!room.roomType) {\n focus.roomType = true;\n } else if (!room.roomFloor) {\n focus.roomFloor = true;\n } else if (!room.roomWall && room.type === RoomType.Wall) {\n focus.roomWall = true;\n } else if (!room.roomExistingFlooring) {\n focus.roomExistingFlooring = true;\n } else if (!room.roomExistingFloorType) {\n focus.roomExistingFloorType = true;\n } else if (!room.roomHeating && room.localisation === RoomLocalisation.Inside && room.type === RoomType.Sol) {\n focus.roomHeating = true;\n } else if (\n !room.roomHeatingType &&\n room.localisation === RoomLocalisation.Inside &&\n room.roomHeating === YesOrNo.Yes &&\n room.type === RoomType.Sol\n ) {\n focus.roomHeatingType = true;\n } else if (needAnwserCopieQuestion && room.questionsTva?.endQuestion) {\n focus.questionsCopiedFromId = true;\n } else if (\n room.questionsTva?.endQuestion &&\n !needAnwserCopieQuestion &&\n !room.questionProduitPrincipal?.produitValue\n ) {\n focus.produitPrincipal = true;\n } else if (!room.flooringDirection) {\n focus.flooringDirection = true;\n }\n\n const scollToId = (divId: string) => {\n setTimeout(() => {\n scroller.scrollToDiv(Scroller.ID, divId, isMobile);\n }, Scroller.ShortDelay);\n };\n\n return { focus, needAnwserCopieQuestion, scollToId };\n};\n","import React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { RoomLocalisation, RoomType, UnitType } from '../../../../../../../Plugins/FloorPlan/Models/IRoom';\n\nexport type SelectItemOption = { label: string; value?: string };\n\nexport interface RoomOptionItem extends SelectItemOption {\n localisation: Array;\n unitType?: Array;\n ignoredRoomType?: Array;\n wallOrder?: number;\n ignoredTypes?: Array;\n}\n\nexport enum RoomTypeValue {\n //TODO RoomType when 'Présence d'un revêtement au sol' === 'Oui'\n\n //TODO RoomType when 'Présence d'un revêtement au sol' === 'Non'\n BETON_FONDATION_DALLE_BRUTE = 'Béton (dalle brute)',\n}\n\nexport type RoomInfos = {\n roomWallTypes: Array;\n roomFloors: Array;\n getRoomTypes: (localisation?: RoomLocalisation, unitType?: UnitType, type?: RoomType) => Array;\n getRoomCurrentFloorWithoutFlooring: (\n localisation: RoomLocalisation,\n roomType: string,\n type: RoomType\n ) => Array;\n getRoomCurrentFloorWithFlooring: (localisation: RoomLocalisation, type: RoomType) => Array;\n getRoomHeatingTypes: (localisation: RoomLocalisation) => Array;\n PasDeChauffage: string;\n};\n\nexport const useRoomInfosValues = (): RoomInfos => {\n const i18n = useIntl();\n\n const roomTypes: Array = React.useMemo(\n () =>\n [\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_ChambreDressing' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Bureau' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Salon' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_SalleManger' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Cuisine' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement, UnitType.LocalPro],\n wallOrder: 3,\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_WC' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement, UnitType.CoPro, UnitType.LocalPro],\n wallOrder: 2,\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_SalleEau' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement],\n wallOrder: 1,\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Buanderie' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Veranda' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_HallEntree' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement, UnitType.CoPro, UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Couloir' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement, UnitType.CoPro, UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Garage' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.Maison, UnitType.Appartement],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_TerasseBalconCouvert' }),\n localisation: [RoomLocalisation.Outside],\n unitType: [UnitType.Maison, UnitType.Appartement, UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_TerasseBalconNonCouvert' }),\n localisation: [RoomLocalisation.Outside],\n unitType: [UnitType.Maison, UnitType.Appartement, UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_BordPiscinePlat' }),\n localisation: [RoomLocalisation.Inside, RoomLocalisation.Outside],\n unitType: [UnitType.Maison, UnitType.Appartement],\n ignoredTypes: [RoomType.Wall],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Jardin' }),\n localisation: [RoomLocalisation.Outside],\n unitType: [UnitType.Maison, UnitType.Appartement, UnitType.CoPro, UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_LocalProIndividuel' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_PartieCommuneCoPro' }),\n localisation: [RoomLocalisation.Inside, RoomLocalisation.Outside],\n unitType: [UnitType.CoPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_LocalProCollectif' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_ChambreHotel' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Boutique' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_LieuTresFrequente' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Industrie' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Evenementiel' }),\n localisation: [RoomLocalisation.Inside, RoomLocalisation.Outside],\n unitType: [UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Ascenseur' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.CoPro, UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_AutresPartiesCommunes' }),\n localisation: [RoomLocalisation.Inside],\n unitType: [UnitType.CoPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Cour' }),\n localisation: [RoomLocalisation.Outside],\n unitType: [UnitType.Maison, UnitType.Appartement, UnitType.CoPro, UnitType.LocalPro],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_ToitTerrasseAvecEtanchéite' }),\n localisation: [RoomLocalisation.Outside],\n unitType: [UnitType.Maison, UnitType.LocalPro, UnitType.CoPro],\n },\n ] as Array,\n [i18n]\n );\n\n const getRoomTypes = (localisation?: RoomLocalisation, unitType?: UnitType, type?: RoomType) => {\n const results = roomTypes.filter(\n (x) =>\n x.localisation &&\n localisation &&\n x.localisation.includes(localisation) &&\n x.unitType &&\n unitType &&\n x.unitType.includes(unitType) &&\n type &&\n !x.ignoredTypes?.includes(type)\n );\n if (type === RoomType.Wall) {\n results.sort((a, b) => (a.wallOrder || Infinity) - (b.wallOrder || Infinity));\n }\n return results;\n };\n\n const roomFloors: Array = React.useMemo(\n () => [\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomFloorList_RDC' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomFloorList_Etage1a3' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomFloorList_4etPlus' }),\n },\n ],\n [i18n]\n );\n\n const getRoomCurrentFloorWithoutFlooring = (\n localisation: RoomLocalisation,\n roomType: string,\n type: RoomType\n ): Array => {\n if (type === RoomType.Wall) {\n return [\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_PlacoPlatreCiment' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Beton_Wall' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Bois' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Pierre' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Parpaing' }),\n },\n ];\n }\n const roomTypes: Array = [\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Ciment' }),\n localisation: [RoomLocalisation.Inside, RoomLocalisation.Outside],\n ignoredRoomType: [i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Jardin' })],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_PlancherBois' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_BétonPeintCire' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_ChapeSeche' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Terre' }),\n localisation: [RoomLocalisation.Outside],\n ignoredRoomType: [\n i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_TerasseBalconCouvert' }),\n i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_TerasseBalconNonCouvert' }),\n i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_ToitTerrasseAvecEtanchéite' }),\n ],\n },\n {\n value: RoomTypeValue.BETON_FONDATION_DALLE_BRUTE,\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Beton' }),\n localisation: [RoomLocalisation.Inside, RoomLocalisation.Outside],\n ignoredRoomType: [i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Jardin' })],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_GraviersEnrobes' }),\n localisation: [RoomLocalisation.Outside],\n unitType: [UnitType.Maison, UnitType.LocalPro, UnitType.CoPro],\n ignoredRoomType: [\n i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_TerasseBalconCouvert' }),\n i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_TerasseBalconNonCouvert' }),\n ],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_StructureBoisMetal' }),\n localisation: [RoomLocalisation.Outside],\n unitType: [UnitType.Maison, UnitType.LocalPro, UnitType.CoPro],\n ignoredRoomType: [i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_ToitTerrasseAvecEtanchéite' })],\n },\n ];\n return roomTypes\n .filter((x) => x.localisation.includes(localisation))\n .filter((x) => !x.ignoredRoomType?.includes(roomType));\n };\n\n const getRoomCurrentFloorWithFlooring = (\n localisation: RoomLocalisation,\n type: RoomType\n ): Array => {\n if (type === RoomType.Wall) {\n return [\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Carrelage' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Peinture' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_PapierPeint' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Crepis' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Lambris' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_MoquetteMurale' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_VinyleMural' }),\n },\n ];\n }\n const roomTypes: Array = [\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_ParquetColle' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_ParquetStratifieNonColle' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Carrelage' }),\n localisation: [RoomLocalisation.Inside, RoomLocalisation.Outside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_Moquette' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_RevetementPlastique' }),\n localisation: [RoomLocalisation.Inside, RoomLocalisation.Outside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomCurrentFlooringList_TerasseBoisComposite' }),\n localisation: [RoomLocalisation.Outside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomTypeList_Paves' }),\n localisation: [RoomLocalisation.Outside],\n unitType: [UnitType.Maison, UnitType.LocalPro, UnitType.CoPro],\n },\n ];\n return roomTypes.filter((x) => x.localisation.includes(localisation));\n };\n\n const PasDeChauffage = i18n.formatMessage({ id: 'RoomItemDialog_RoomHeatingTypeList_PasDeChauffage' });\n\n const getRoomHeatingTypes = (localisation: RoomLocalisation): Array => {\n const roomTypes: Array = [\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomHeatingTypeList_BasseTemperatureEau' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomHeatingTypeList_BasseTemperatureAccumulation' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomHeatingTypeList_HauteTemperature' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomHeatingTypeList_ElectriqueRayonnant' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomHeatingTypeList_Reversible' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomHeatingTypeList_SystemeRapporte' }),\n localisation: [RoomLocalisation.Inside],\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomHeatingTypeList_UnknownType' }),\n localisation: [RoomLocalisation.Inside],\n },\n ];\n return roomTypes.filter((x) => localisation && x.localisation.includes(localisation));\n };\n\n const roomWallTypes: Array = [\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomWallTypeList_Mur' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomWallTypeList_Credence' }),\n },\n {\n label: i18n.formatMessage({ id: 'RoomItemDialog_RoomWallTypeList_TablierBaignoire' }),\n },\n ];\n\n return {\n roomWallTypes,\n roomFloors,\n getRoomTypes,\n getRoomCurrentFloorWithoutFlooring,\n getRoomCurrentFloorWithFlooring,\n getRoomHeatingTypes,\n PasDeChauffage,\n };\n};\n","import * as React from 'react';\nimport { FlooringDirectionProps } from './FlooringDirectionAssets';\nexport const ClassiqueHorizontal = ({ props }: { props: FlooringDirectionProps }) => {\n const { fillColor = '#13123A', svgProps } = props;\n return (\n \n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { SVGProps } from 'react';\nexport const ClassiqueSelected = (props: SVGProps) => (\n \n \n \n \n \n \n);\n","import * as React from 'react';\nimport { FlooringDirectionProps } from './FlooringDirectionAssets';\nexport const ClassiqueVertical = ({ props }: { props: FlooringDirectionProps }) => {\n const { fillColor = '#13123A', svgProps } = props;\n return (\n \n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { SVGProps } from 'react';\nexport const ClassiqueVerticalSelected = (props: SVGProps) => (\n \n \n \n \n \n \n);\n","import * as React from 'react';\nimport { FlooringDirectionProps } from './FlooringDirectionAssets';\nexport const LaizeHorizontal = ({ props }: { props: FlooringDirectionProps }) => {\n const { svgProps, fillColor = '#13123A' } = props;\n return (\n \n \n \n );\n};\n","import * as React from 'react';\nimport { SVGProps } from 'react';\nexport const LaizeHorizontalSelected = (props: SVGProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n","import * as React from 'react';\nimport { FlooringDirectionProps } from './FlooringDirectionAssets';\nexport const LaizeVertical = ({ props }: { props: FlooringDirectionProps }) => {\n const { fillColor = '#13123A', svgProps } = props;\n return (\n \n \n \n );\n};\n","import * as React from 'react';\nimport { SVGProps } from 'react';\nexport const LaizeVerticalSelected = (props: SVGProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n","import * as React from 'react';\nimport { FlooringDirectionProps } from './FlooringDirectionAssets';\nexport const LameHorizontal = ({ props }: { props: FlooringDirectionProps }) => {\n const { fillColor = '#13123A', svgProps } = props;\n return (\n \n \n \n \n \n );\n};\n","import * as React from 'react';\nimport { SVGProps } from 'react';\nexport const LameHorizontalSelected = (props: SVGProps) => (\n \n \n \n \n \n);\n","import * as React from 'react';\nimport { FlooringDirectionProps } from './FlooringDirectionAssets';\nexport const LameVertical = ({ props }: { props: FlooringDirectionProps }) => {\n const { fillColor = '#13123A', svgProps } = props;\n return (\n \n \n \n \n \n \n );\n};\n","import * as React from 'react';\nexport const LameVerticalSelected = (props: React.SVGProps) => (\n \n \n \n \n \n);\n","import React from 'react';\nimport { ClassiqueHorizontal } from './ClassiqueHorizontal';\nimport { ClassiqueSelected } from './ClassiqueHorizontalSelected';\nimport { ClassiqueVertical } from './ClassiqueVertical';\nimport { ClassiqueVerticalSelected } from './ClassiqueVerticalSelected';\nimport { LaizeHorizontal } from './LaizeHorizontal';\nimport { LaizeHorizontalSelected } from './LaizeHorizontalSelected';\nimport { LaizeVertical } from './LaizeVertical';\nimport { LaizeVerticalSelected } from './LaizeVerticalSelected';\nimport { LameHorizontal } from './LameHorizontal';\nimport { LameHorizontalSelected } from './LameHorizontalSelected';\nimport { LameVertical } from './LameVertical';\nimport { LameVerticalSelected } from './LameVerticalSelected';\n\nexport type FlooringDirectionProps = { fillColor?: string; svgProps?: React.SVGProps };\nexport class FlooringDirectionAssets {\n public static LaizeHorizontal = ({ props = {} }: { props?: FlooringDirectionProps }) => (\n \n );\n public static LaizeHorizontalSelected = () => ;\n public static LaizeVertical = ({ props = {} }: { props?: FlooringDirectionProps }) => (\n \n );\n public static LaizeVerticalSelected = () => ;\n\n public static LameHorizontal = ({ props = {} }: { props?: FlooringDirectionProps }) => (\n \n );\n public static LameHorizontalSelected = () => ;\n public static LameVertical = ({ props = {} }: { props?: FlooringDirectionProps }) => ;\n public static LameVerticalSelected = () => ;\n\n public static ClassiqueHorizontal = ({ props = {} }: { props?: FlooringDirectionProps }) => (\n \n );\n public static ClassiqueHorizontalSelected = () => ;\n public static ClassiqueVertical = ({ props = {} }: { props?: FlooringDirectionProps }) => (\n \n );\n public static ClassiqueVerticalSelected = () => ;\n}\n","import { Theme } from '@material-ui/core';\nimport { makeStyles, styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { ProductHelper } from '../../../../../../../Helpers/ProductHelper';\nimport { I18n } from '../../../../../../../Locales/I18nService';\nimport { FlooringDirection, ProductType } from '../../../../../../../Plugins/FloorPlan/Components/Laizes/Laize';\nimport { useMapContext } from '../../../../../../../Plugins/FloorPlan/Context/MapContext';\nimport {\n FlooringDirectionAssets,\n FlooringDirectionProps,\n} from '../../../../../../assets/flooring_direction/FlooringDirectionAssets';\nimport { Focus } from '../../Widgets/Focus';\nimport { useRoomEdit } from '../Controllers/RoomEditController';\nimport { RoomInfoIds, useRoomInfosFocus } from '../Controllers/RoomInfosFocus';\nimport { Scroller, useScroller } from '../../../../Helpers/Scroller';\nimport { QuestionsHelper } from '../../../../../../../Helpers/QuestionsHelper';\nimport { QuestionType } from '../../../../../../../Models/Questions/QuestionDto';\nimport { Stack } from 'Web/Components/Widgets/Stack';\n\nexport const RoomDirection = () => {\n const scroller = useScroller();\n const { state: map } = useMapContext();\n const { state, update, getState } = useRoomEdit();\n const { focus } = useRoomInfosFocus(state);\n\n const productType = ProductHelper.getProductType(state.questionProduitPrincipal?.produitValue);\n if (productType === undefined) {\n return null;\n }\n const possibleDirections = map.laizeResults?.find((x) => x.roomIds?.some((r) => r === state.roomId))\n ?.possibleFlooringDirectionByRoomId?.[state.roomId!];\n\n const onChange = (value: FlooringDirection) => {\n update({ values: { flooringDirection: value }, refreshLaizeCalc: true, logs: { newFlooringDirection: value } });\n\n setTimeout(() => {\n const questionsPose = getState().questionsPose?.questions || [];\n const nextQuestionWithNoResponse = QuestionsHelper.firstQuestionWithNoResponse(questionsPose);\n\n const respirationQuestion = questionsPose.find(\n (q) => q.type === QuestionType.Respiration && Boolean(q.showQuestion)\n );\n\n scroller.scrollToQuestion({\n scrollerId: Scroller.ID,\n itemId: getState().roomId!,\n toQuestion: respirationQuestion || nextQuestionWithNoResponse,\n questions: questionsPose,\n delay: 0,\n });\n }, Scroller.ShortDelay);\n };\n\n type CardProps = { value: FlooringDirection };\n const Card = ({ value }: CardProps) => {\n const selected = state.flooringDirection === value;\n const classes = useCardContainerStyles({ selected, hoverable: !Boolean(state.flooringDirection) });\n return (\n
onChange(value)}>\n \n \n \n \n \n \n
\n );\n };\n\n return (\n \n {productType === ProductType.Rouleau ? (\n <>\n \n \n \n ) : (\n <>\n {possibleDirections?.some((x) => x === FlooringDirection.LameHorizontal) && (\n \n )}\n {possibleDirections?.some((x) => x === FlooringDirection.LameVertical) && (\n \n )}\n \n \n \n )}\n \n );\n};\n\nconst ImageContainer = styled('div')({ width: 48, height: 48 });\ntype ICardContainerProps = { selected: boolean; hoverable: boolean };\nconst useCardContainerStyles = makeStyles({\n root: (props: ICardContainerProps) => ({\n display: 'flex',\n flexDirection: 'row',\n gap: 16,\n padding: 16,\n alignItems: 'center',\n width: '100%',\n height: 83,\n cursor: 'pointer',\n '@media (hover)': {\n '&:hover': props.hoverable\n ? {\n border: '2px solid #13123A',\n backgroundColor: '#FFFFFF',\n }\n : {},\n },\n border: props.selected ? '2px solid #13123A' : '',\n backgroundColor: props.selected ? '#FFFFFF' : '#EFEFEF',\n }),\n});\n\nconst CardTitle = styled('div')({\n fontWeight: 700,\n fontSize: 14,\n lineHeight: '16px',\n color: '#000000',\n});\n\ntype FieldProps = { id?: string; title?: React.ReactNode; style?: CSSProperties; focus?: boolean };\nconst Field: React.FC = ({ id, title, style, focus, children }) => {\n return (\n \n {focus && }\n {title}\n {children}\n \n );\n};\n\nconst FieldContainer = styled(Stack)({ marginTop: 24, position: 'relative', gap: 8 });\nconst Title = styled('div')({\n fontWeight: 700,\n fontSize: 14,\n color: '#1D1D1F',\n lineHeight: '21px',\n marginBottom: 10,\n});\n\ntype FlooringDirectionIconProps = {\n direction: FlooringDirection;\n productType: ProductType;\n selected?: boolean;\n props?: FlooringDirectionProps;\n};\nexport const FlooringDirectionIcon = React.memo(\n ({ direction, productType, selected = false, props }: FlooringDirectionIconProps) => {\n if (productType === ProductType.Rouleau) {\n if (direction === FlooringDirection.LaizeHorizontal) {\n return selected ? (\n \n ) : (\n \n );\n } else if (direction === FlooringDirection.LaizeVertical) {\n return selected ? (\n \n ) : (\n \n );\n }\n }\n if (direction === FlooringDirection.LameHorizontal) {\n return selected ? (\n \n ) : (\n \n );\n } else if (direction === FlooringDirection.LameVertical) {\n return selected ? (\n \n ) : (\n \n );\n } else if (direction === FlooringDirection.ClassiqueHorizontal) {\n return selected ? (\n \n ) : (\n \n );\n }\n return selected ? (\n \n ) : (\n \n );\n }\n);\n","import { styled } from '@material-ui/styles';\n\nexport const Focus = styled('div')({\n width: 4,\n borderRadius: 4,\n position: 'absolute',\n background: '#E5A033',\n top: 0,\n left: -15,\n bottom: 0,\n});\n","import React from 'react';\n\nimport { useCurrentProject } from '../../../../Configs/CurrentProjectContext';\nimport { useMe } from '../../../../Configs/PolStore';\nimport { ObjectUtils } from '../../../../Helpers/ObjectUtils';\nimport { StoreHelper } from '../../../../Helpers/StoreHelper';\nimport { MapContextState, useMapContext } from '../../../../Plugins/FloorPlan/Context/MapContext';\nimport { OpenSections } from '../../../../Plugins/FloorPlan/Models/IMapItem';\nimport { GTM, GtmStepEvent, MapTaggage, PushSaveOrCreateProjectEvent, RoomTaggage } from '../../../../Plugins/GTM/GTM';\nimport { MeState } from '../../../../Services/Me/MeReducer';\nimport { EnhancedViewState } from '../../../Hooks/ViewState/ViewState';\nimport { QuoteState } from '../QuoteState';\nimport { useQuoteProvider } from './QuoteProviderController';\n\nconst GtmStep = (event: Partial & { needContextId?: boolean }) => {\n const sent = React.useRef(false);\n const gtm = useGtmStepEventController();\n const data = React.useMemo(() => JSON.stringify(event), [event]);\n\n React.useEffect(() => {\n const hasContextId = event.room_id || event.opening_id || event.room_item_id;\n if (!event.needContextId || (hasContextId && !sent.current)) {\n sent.current = true;\n gtm.pushStepViewEvent(event);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [event]);\n\n return ;\n};\n\nexport const GtmStepTag = React.memo(GtmStep, (prev, next) => ObjectUtils.deepEqual(prev, next));\n\nexport const useGtmStepEventController = () => {\n const quoteContext = useQuoteProvider();\n const currentProject = useCurrentProject();\n const map = useMapContext();\n const me: MeState = useMe();\n\n const pushStepViewEvent = (event: Partial) => {\n const generalContext = quoteContext.getGeneralContext();\n const mapState = quoteContext.map.getState();\n const { quote } = quoteContext.getState();\n\n const toMapTaggage = ({ rooms = [], global_surface_area = 0 }: MapContextState): MapTaggage => {\n const roomsTaggage: Array = rooms.map((room) => {\n const produitPrincipal = room.questionProduitPrincipal?.produitValue;\n return {\n room_id: room.roomId!,\n type: room.roomType,\n surface: room.surface_area,\n etage: room.roomFloor,\n nom: room.name,\n product: produitPrincipal?.libelle,\n product_id: produitPrincipal?.code,\n sous_famille_produit:\n produitPrincipal?.infos_produit.groupe_article.famille_article.sous_famille_article.libelle,\n };\n });\n return {\n totalArea: global_surface_area,\n roomCount: rooms.length,\n rooms: roomsTaggage,\n };\n };\n GTM.pushStepViewEvent({\n ...event,\n context: generalContext,\n mapTaggage: toMapTaggage(mapState),\n projetId: currentProject.getState().project?.id,\n totalPrice: quote?.detail_total_price?.total_price_ttc,\n zipcode: StoreHelper.getProjectStore(quoteContext.getState())?.zipcode,\n products: GTM.getGTMProducts(map.getState().rooms ?? []),\n user_mail: me?.data?.customer_properties?.email ?? '',\n });\n };\n return { pushStepViewEvent };\n};\n\nexport const useGtmSaveController = () => {\n const quote = useQuoteProvider();\n\n const toStepName = (step?: OpenSections): string => {\n if (step?.infos) {\n return 'Ma pièce';\n } else if (step?.questionsPose) {\n return 'Ma pose';\n } else if (step?.questionsSupport) {\n return 'Mon support';\n } else if (step?.questionsPreparation) {\n return 'Ma préparation';\n } else if (step?.questionsFinition) {\n return 'Mes finitions';\n } else if (step?.questionsServices) {\n return 'Mes services';\n } else if (step?.amenagementsSection) {\n return 'Mes aménagements';\n }\n return '';\n };\n\n const pushSaveOrCreateProjectEvent = (event: Partial) => {\n const { rooms = [], selectedRoomId } = quote.map.getState();\n const room = rooms.find((r) => r.roomId === selectedRoomId);\n GTM.pushSaveOrCreateProjectEvent({\n ...event,\n piece: room?.name,\n etape: toStepName(room?.openSections),\n });\n };\n\n return { pushSaveOrCreateProjectEvent };\n};\n\nexport const useGtmMapEventController = (map: MapContextState, quote: EnhancedViewState) => {\n const gtm = useGtmStepEventController();\n\n React.useEffect(() => {\n if (map.selectRoomShapeOpen) {\n GTM.pushAddRoomEvent();\n }\n }, [map.selectRoomShapeOpen]);\n\n React.useEffect(() => {\n if (map.selectAmenagementOpen) {\n GTM.pushAddAmenagementEvent();\n }\n }, [map.selectAmenagementOpen]);\n\n React.useEffect(() => {\n if (quote.initialized && map.rooms && map.rooms.length === 0) {\n gtm.pushStepViewEvent({ step: 'MapEmpty' });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [map.rooms]);\n\n React.useEffect(() => {\n if (quote.initialized && quote.habitationQuestionsOpen && !map.rooms?.length) {\n gtm.pushStepViewEvent({ step: 'OnboardingStart' });\n }\n\n if (quote.initialized && !quote.habitationQuestionsOpen) {\n gtm.pushStepViewEvent({ step: 'OnboardingEnd' });\n if (!map.rooms?.length) {\n gtm.pushStepViewEvent({ step: 'MapEmpty' });\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [quote.habitationQuestionsOpen]);\n\n React.useEffect(() => {\n if (map.showHabitation) {\n gtm.pushStepViewEvent({ step: 'OnboardingStart' });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [map.showHabitation]);\n\n return gtm;\n};\n","import { EvaluationContext, QuestionContext } from '../../../../Helpers/QuestionContextHelper';\nimport { QuestionItem } from '../../../../Models/Questions/QuestionDto';\nimport { TypeDeLocalName, UnitType } from '../../../../Plugins/FloorPlan/Models/IRoom';\n\nexport const useHabitationContextController = (habitationQuestions: Array = []) => {\n const getContextWithEvaluations = (): QuestionContext => {\n const lastHabitationQuestionContext = habitationQuestions[habitationQuestions.length - 1]?.context;\n return lastHabitationQuestionContext ?? {};\n };\n\n const getUnitType = () => {\n const context = getContextWithEvaluations();\n const evaluations: EvaluationContext = context?.evaluations ?? {};\n const unitType: UnitType = evaluations[TypeDeLocalName];\n return unitType;\n };\n\n return { getContextWithEvaluations, getUnitType };\n};\n","import { useCurrentProject } from '../../../../Configs/CurrentProjectContext';\nimport { useMe } from '../../../../Configs/PolStore';\nimport { Logger } from '../../../../Errors/Logger';\nimport { createCustomErrorHandler, wrapError } from '../../../../Errors/PolErrorHandler';\nimport { ConfigurationUtils, ToConfigurationReponseParameters } from '../../../../Helpers/ConfigurationUtils';\nimport { QuestionsHelper } from '../../../../Helpers/QuestionsHelper';\nimport { PrixContextDebugMap, QuotationHelper } from '../../../../Helpers/QuotationHelper';\nimport { RoomHeatingTypeErrorHelper } from '../../../../Helpers/RoomHeatingTypeErrorHelper';\nimport { SetConfigurationDto, SetConfigurationReponseDto } from '../../../../Models/Projects/Configuration';\nimport { ComputeQuotationsResponse, QuotationReplyBaseDto } from '../../../../Models/Quotations/Quotations';\nimport { TauxTvaDto } from '../../../../Models/VersionParametrages/VersionParametrage';\nimport { MapContextState, useMapProvider } from '../../../../Plugins/FloorPlan/Context/MapContext';\nimport { MapExportContextValue, useMapExport } from '../../../../Plugins/FloorPlan/Context/MapExportContext';\nimport { MapExportHelper } from '../../../../Plugins/FloorPlan/Helpers/MapExport/MapExportHelper';\nimport { IMapItem } from '../../../../Plugins/FloorPlan/Models/IMapItem';\nimport { IOpening } from '../../../../Plugins/FloorPlan/Models/IOpening';\nimport { IRoom } from '../../../../Plugins/FloorPlan/Models/IRoom';\nimport { IRoomItem } from '../../../../Plugins/FloorPlan/Models/IRoomItem';\nimport { GTM, GtmSaveType } from '../../../../Plugins/GTM/GTM';\nimport { QuotationsApi } from '../../../../Services/Api/QuotationsApi';\nimport { AuthHelper } from '../../../../Services/Authentication/AuthHelper';\nimport { MeState } from '../../../../Services/Me/MeReducer';\nimport { useQuoteContext } from '../QuotePageController';\nimport { QuoteState } from '../QuoteState';\nimport { useHabitationContextController } from './HabitationContextController';\nimport { useQuoteSaveController } from './QuoteSaveController';\n\ntype OnRefreshQuotationParams = { forceSave?: boolean };\ntype RefreshQuotationPricesParams = { nextAction?: VoidFunction; saveConfig?: () => Promise };\n\nexport const useQuoteProvider = () => {\n const map = useMapProvider();\n const quoteContext = useQuoteContext();\n const habitation = useHabitationContextController(quoteContext.getState().stepHabitation?.questions);\n const exportImageMap = useMapExport();\n const currentProject = useCurrentProject();\n const me: MeState = useMe();\n\n const getTauxTva = (): TauxTvaDto => quoteContext.getState().versionData?.taux_tva!;\n\n const getGeneralContext = () => {\n const { stepHabitation } = quoteContext.getState();\n return QuestionsHelper.getLastShownQuestion(stepHabitation?.questions).lastShownQuestion?.context || {};\n };\n\n const getConfiguration = async (): Promise => {\n return QuoteLoadUtils.getConfiguration({\n mapState: map.getState(),\n quoteState: quoteContext.getState()\n });\n };\n\n const getGetQuotationDto = async () => {\n return QuoteLoadUtils.getGetQuotationDto({\n exportImageMap,\n mapState: map.getState(),\n quoteState: quoteContext.getState()\n });\n };\n\n const handleQuotationError = (error: any): Promise => {\n quoteContext.updateQuote({ loadingQuotation: false });\n if (RoomHeatingTypeErrorHelper.isErrorFromRoomHeatingTypeHelper(error)) {\n return RoomHeatingTypeErrorHelper.handleError(error);\n } else {\n //this.handleDeadEndError();\n return createCustomErrorHandler(AuthHelper.isAuthenticatedAsStoreOrBOUser())(error);\n }\n };\n\n const refreshQuotationPrices = ({\n nextAction,\n saveConfig,\n }: RefreshQuotationPricesParams): Promise => {\n if (quoteContext.getState().loadingQuotation) return Promise.resolve({} as QuotationReplyBaseDto);\n return wrapError(\n async () => {\n const getQuote = async (): Promise<{\n quote: QuotationReplyBaseDto;\n quotePrixContextDebugMap: PrixContextDebugMap;\n }> => {\n const currentProjectState = currentProject.getState();\n const { bodyRequest, quotePrixContextDebugMap } = await getGetQuotationDto();\n if (currentProjectState.project) {\n const response = await QuotationsApi.createQuotation(\n currentProjectState.project.id,\n bodyRequest\n );\n return { quote: response.data, quotePrixContextDebugMap };\n } else {\n const response: ComputeQuotationsResponse = await QuotationsApi.computeQuotation(bodyRequest);\n return { quote: response.data, quotePrixContextDebugMap };\n }\n };\n\n const loadQuote = async () => {\n quoteContext.updateQuote({ loadingQuotation: true });\n const { quote, quotePrixContextDebugMap } = await getQuote();\n GTM.pushEstimationEvent({\n projetId: currentProject.getState().project?.id,\n totalPrice: quote.detail_total_price.total_price_ttc,\n products: GTM.getGTMProducts(map.getState().rooms ?? []),\n user_mail: me?.data?.customer_properties?.email ?? '',\n });\n\n currentProject.update({ isDirty: false });\n quoteContext.updateQuote({ loadingQuotation: false, quote, quotePrixContextDebugMap });\n nextAction?.();\n return quote;\n };\n\n if (saveConfig) {\n await saveConfig();\n }\n return loadQuote();\n },\n { errorHandler: handleQuotationError }\n );\n };\n\n return {\n loadingQuotation: quoteContext.getState().loadingQuotation,\n getTauxTva,\n habitation,\n getGeneralContext,\n getConfiguration,\n refreshQuotationPrices,\n getState: quoteContext.getState,\n updateQuote: quoteContext.updateQuote,\n update: quoteContext.update,\n openFinDeParcours: quoteContext.openFinDeParcours,\n map,\n };\n};\n\ntype GetSetConfigurationDtoParams = { mapState: MapContextState; quoteState: Partial; };\n\ntype GetGetQuotationDtoParams = { mapState: MapContextState; quoteState: Partial; exportImageMap: MapExportContextValue };\n\nexport class QuoteLoadUtils {\n\n public static getConfiguration = ({ quoteState, mapState, }: GetSetConfigurationDtoParams): SetConfigurationDto => {\n const { versionId, projetStore, stepHabitation, stepServices, stepSynthese } = quoteState;\n const toConfigurationResponses = (\n items: Array = [],\n getParams: (item: T) => Partial\n ): Array => {\n let responses: Array = [];\n items.forEach((item) => {\n const {\n questionsTva,\n questionsPose,\n questionsSupport,\n questionsFinition,\n questionsPreparation,\n } = item;\n const params = getParams(item);\n\n //* ROOM\n const room = item as IRoom;\n if (room.questionProduitPrincipal) {\n responses.push(\n ...ConfigurationUtils.toConfigurationReponses([room.questionProduitPrincipal], params)\n );\n }\n responses.push(...ConfigurationUtils.toConfigurationReponses(questionsTva?.questions, params));\n responses.push(...ConfigurationUtils.toConfigurationReponses(questionsPose?.questions, params));\n responses.push(...ConfigurationUtils.toConfigurationReponses(questionsSupport?.questions, params));\n responses.push(...ConfigurationUtils.toConfigurationReponses(questionsPreparation?.questions, params));\n responses.push(...ConfigurationUtils.toConfigurationReponses(questionsFinition?.questions, params));\n });\n return responses;\n };\n const responseList: Array = [\n ...ConfigurationUtils.toConfigurationReponses(stepHabitation?.questions),\n ...toConfigurationResponses(mapState.rooms, (item) => ({ room_id: item.roomId })),\n ...toConfigurationResponses(mapState.openings, (item) => ({\n opening_id: item.openingId,\n room_id: item.roomId,\n })),\n ...toConfigurationResponses(mapState.roomItems, (item) => ({\n room_element_id: item.roomItemId,\n room_id: item.roomId,\n })),\n ...ConfigurationUtils.toConfigurationReponses(stepServices?.questions),\n ...ConfigurationUtils.toConfigurationReponses(stepSynthese?.questions)\n ];\n\n const planJson = MapExportHelper.toApiJson(mapState);\n\n Logger.isLogEnabled() && console.groupCollapsed('configuration');\n Logger.log('planJson', JSON.parse(planJson));\n Logger.log('responseList', responseList);\n const bodyRequest: SetConfigurationDto = {\n version_parametrage_id: versionId!,\n floor_plan_json: planJson,\n reponse_list: responseList,\n total_surface: mapState.global_surface_area!,\n opening_count: mapState.openings?.length ?? 0,\n room_count: mapState.rooms?.length ?? 0,\n room_element_count: mapState.roomItems?.length ?? 0,\n store_id: projetStore?.store_id!,\n };\n Logger.log('bodyRequest', bodyRequest);\n Logger.isLogEnabled() && console.groupEnd();\n return bodyRequest;\n };\n\n public static getGetQuotationDto = async ({ quoteState, mapState, exportImageMap }: GetGetQuotationDtoParams) => {\n const bodyRequest = await QuotationHelper.getGetQuotationDto({\n map: mapState, quoteState, exportImageMap,\n });\n return bodyRequest;\n };\n}\n\nexport const useRefreshQuote = ({ nextAction }: { nextAction?: VoidFunction }) => {\n const currentProject = useCurrentProject();\n const { refreshQuotationPrices: refresh } = useQuoteProvider();\n const { requestCreateProject, updateProject } = useQuoteSaveController();\n\n const saveConfig = async (): Promise => {\n return new Promise(async (resolve, reject) => {\n const currentProjectState = currentProject.getState();\n if (currentProjectState.project) {\n const { id, intitule } = currentProjectState.project;\n await updateProject({\n projectId: id,\n projectName: intitule,\n withPostMessage: true,\n saveType: GtmSaveType.DevisEstimatif,\n });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const onRefreshQuotationPrices = ({ forceSave }: OnRefreshQuotationParams) => {\n const currentProjectState = currentProject.getState();\n if (currentProjectState?.project && !currentProjectState.isUpdateAllowed) {\n requestCreateProject({\n callback: () => refresh({ nextAction }),\n });\n } else {\n refresh({ nextAction, saveConfig: forceSave ? saveConfig : undefined });\n }\n };\n\n return { onRefreshQuotationPrices };\n};\n","import { Constants } from '../../Constants';\nimport { Logger } from '../../Errors/Logger';\nimport {\n SaveProjectRequestMessage,\n StmacSaveProjectMessage,\n} from '../../Models/StmacPostMessages/StmacSaveProjectMessage';\nimport { LogLevelType } from '../../Services/Analytics/LogLevelType';\n\nexport class StmacPostMessageService {\n public static postMessage = (messageData: SaveProjectRequestMessage) => {\n const frameContainer = StmacPostMessageService.getFrameContainer();\n Logger.debug('POL send message : ', { messageData, frameContainer });\n if (frameContainer.contentWindow) {\n frameContainer.contentWindow.postMessage(messageData, Constants.STMAC_URL);\n const data = StmacSaveProjectMessage.toDataToLog(messageData);\n Logger.logAnalytics({\n level: LogLevelType.Information,\n message: \"POL: PostMessage d'enregistrement projet\",\n data: data,\n body: JSON.stringify(data),\n });\n }\n };\n\n private static getFrameContainer = (): HTMLIFrameElement => {\n const iframe: HTMLIFrameElement = document.getElementById(Constants.STMAC_FRAME_ID) as HTMLIFrameElement;\n return iframe;\n };\n}\n","import { useCurrentProject } from '../../../../Configs/CurrentProjectContext';\nimport { createCustomErrorHandler, wrapError } from '../../../../Errors/PolErrorHandler';\nimport { StoreHelper } from '../../../../Helpers/StoreHelper';\nimport { I18n } from '../../../../Locales/I18nService';\nimport { SetConfigurationDto } from '../../../../Models/Projects/Configuration';\nimport { ProjectDto, SetProjectReplyResponse } from '../../../../Models/Projects/ProjectDto';\nimport { StmacSaveProjectMessage } from '../../../../Models/StmacPostMessages/StmacSaveProjectMessage';\nimport { GtmSaveType } from '../../../../Plugins/GTM/GTM';\nimport { ProjectsApi } from '../../../../Services/Api/ProjectsApi';\nimport { AuthHelper } from '../../../../Services/Authentication/AuthHelper';\nimport { AuthService } from '../../../../Services/Authentication/AuthService';\nimport { CreateOrSaveProjectParams, DialogService } from '../../../Services/DialogService';\nimport { StmacPostMessageService } from '../../../Services/StmacPostMessageService';\nimport { Toast } from '../../../Services/ToastService';\nimport { useGtmSaveController } from './GtmEventController';\nimport { useQuoteProvider } from './QuoteProviderController';\n\ninterface RequestCreateProjectParams {\n forceSave?: boolean;\n onCancel?: VoidFunction;\n callback: (response: SetProjectReplyResponse) => void;\n saveType?: GtmSaveType;\n}\n\ninterface CreateNewProjectParameters {\n projectName: string;\n withPostMessage?: boolean;\n fromExistingProject?: boolean;\n saveType?: GtmSaveType;\n}\n\ninterface UpdateProjectParameters {\n projectId: string;\n projectName: string;\n withPostMessage?: boolean;\n saveType?: GtmSaveType;\n}\n\ntype SaveAutoParams = { forceSave?: boolean; nextAction?: (saved?: boolean) => void };\ntype SaveParams = {\n forceSave?: boolean;\n afterSave?: VoidFunction;\n onCancel?: () => void;\n saveType?: GtmSaveType;\n};\n\nexport const useQuoteSaveController = () => {\n const gtm = useGtmSaveController();\n const quoteProvider = useQuoteProvider();\n const currentProject = useCurrentProject();\n\n const onSaveAuto = ({ forceSave, nextAction }: SaveAutoParams = {}) => {\n const currentProjectState = currentProject.getState();\n if (!currentProjectState?.lastAutoSave) {\n onSave({\n forceSave,\n saveType: GtmSaveType.AutoSave,\n afterSave: () => nextAction?.(true),\n onCancel: nextAction,\n });\n } else if (currentProject.isLastSaveWasMoreThan5minAgo()) {\n DialogService.showYesNoChoiceDialog({\n title: I18n.get('COMMON_SAVE'),\n subtitle: I18n.get('Dialog_AutoSaveHeader'),\n onClickNo: () => {\n if (currentProjectState.project) {\n currentProject.update({\n ...currentProject,\n lastAutoSave: false,\n lastSaveDate: new Date(),\n });\n nextAction?.();\n }\n },\n onClickYes: async ({ setValidating, closeDialog }) => {\n if (currentProjectState.project) {\n if (currentProjectState.isUpdateAllowed) {\n setValidating(true);\n const { id, intitule } = currentProjectState.project;\n await updateProject({\n projectId: id,\n projectName: intitule,\n withPostMessage: true,\n saveType: GtmSaveType.AutoSave,\n });\n setValidating(false);\n closeDialog(() => nextAction?.(true));\n } else {\n const callback = (response: SetProjectReplyResponse) => {\n if (response?.is_success) {\n currentProject.update({\n project: response.data.projet,\n isDirty: false,\n lastSaveDate: new Date(),\n lastAutoSave: true,\n isUpdateAllowed: true,\n });\n nextAction?.();\n }\n };\n requestCreateProject({\n forceSave,\n saveType: GtmSaveType.AutoSave,\n callback,\n onCancel: nextAction,\n });\n }\n }\n },\n onClosed: nextAction,\n });\n } else {\n nextAction?.();\n }\n };\n\n const onSave = (saveParams?: SaveParams) => {\n wrapError(async () => {\n const isConnected: boolean = await AuthService.isAuthenticated();\n if (isConnected) {\n save(saveParams);\n } else {\n DialogService.showStmacLoginDialog({\n closeDisabled: saveParams?.forceSave,\n afterLoginSuccess: () => save(saveParams),\n onClosed: () => {\n if (!saveParams?.forceSave) {\n saveParams?.onCancel?.();\n }\n },\n });\n }\n });\n };\n\n const save = ({ forceSave, afterSave, saveType, onCancel }: SaveParams = {}) => {\n wrapError(async () => {\n const callback = (response: SetProjectReplyResponse) => {\n if (response?.is_success) {\n currentProject.update({\n project: response.data.projet,\n isDirty: false,\n lastSaveDate: new Date(),\n lastAutoSave: true,\n isUpdateAllowed: true,\n });\n afterSave?.();\n }\n };\n\n const currentProjectState = currentProject.getState();\n if (currentProjectState?.project && currentProjectState.isUpdateAllowed) {\n DialogService.showCreateOrUpdateProjectDialog({\n cancelDisabled: forceSave,\n currentProjectName: currentProjectState.project.intitule,\n //* when click on Validate button\n updateCurrentProject: async ({ setSaving, closeDialog }: CreateOrSaveProjectParams) => {\n setSaving(true);\n const response: SetProjectReplyResponse = await updateProject({\n projectId: currentProjectState.project!.id,\n projectName: currentProjectState.project!.intitule,\n saveType,\n });\n setSaving(false);\n if (response?.is_success) {\n closeDialog(() => callback(response));\n }\n },\n createNewProject: async ({ projectName, setSaving, closeDialog }: CreateOrSaveProjectParams) => {\n setSaving(true);\n const response: SetProjectReplyResponse = await createNewProject({\n projectName,\n saveType,\n fromExistingProject: true,\n });\n setSaving(false);\n if (response?.is_success) {\n closeDialog(() => callback(response));\n }\n },\n onClosed: onCancel,\n });\n } else {\n requestCreateProject({ forceSave, saveType, callback, onCancel });\n }\n });\n };\n\n const requestCreateProject = ({ forceSave, callback, onCancel, saveType }: RequestCreateProjectParams) => {\n DialogService.showCreateProjectDialog({\n cancelDisabled: forceSave,\n onClosed: onCancel,\n onValidate: async ({ projectName, setSaving, closeDialog }: CreateOrSaveProjectParams) => {\n setSaving(true);\n const response = await createNewProject({ projectName, saveType });\n setSaving(false);\n if (response?.is_success) {\n closeDialog(() => callback?.(response));\n }\n },\n });\n };\n\n const createNewProject = ({\n projectName,\n withPostMessage = true,\n fromExistingProject,\n saveType,\n }: CreateNewProjectParameters): Promise => {\n return wrapError(\n async () => {\n currentProject.update({ isSaving: true });\n const configuration: SetConfigurationDto = await quoteProvider.getConfiguration();\n\n const response: SetProjectReplyResponse = await ProjectsApi.createProject({\n intitule: projectName,\n configuration: configuration,\n from_projet_id: currentProject.getState().project?.id,\n });\n\n if (response?.is_success) {\n currentProject.update({\n project: response.data.projet,\n isUpdateAllowed: true,\n isDirty: false,\n lastSaveDate: new Date(),\n lastAutoSave: true,\n });\n\n if (withPostMessage) {\n saveProjectWithPostMessage(response.data.projet);\n }\n\n if (saveType) {\n gtm.pushSaveOrCreateProjectEvent({\n projectId: response?.data?.projet?.id,\n isNewProject: true,\n fromExistingProject,\n location: saveType,\n });\n }\n\n Toast.showSuccess({\n content: I18n.format('Quote_Project_Created', { name: projectName }),\n });\n }\n currentProject.update({ isSaving: false });\n return response;\n },\n {\n errorHandler: (error: any) => {\n currentProject.update({ isSaving: false });\n return createCustomErrorHandler(!AuthHelper.isAuthenticatedAsCustomerUser())(error);\n },\n }\n //TODO: PGU: sans le customErrorHandler, il n'y a pas de toast d'erreur qui s'affiche en cas de 401 sur le point d'API (ce n'est pas normal?). Refactoring à prévoir (?)\n );\n };\n\n const updateProject = ({\n projectId,\n projectName,\n withPostMessage = true,\n saveType,\n }: UpdateProjectParameters): Promise => {\n return wrapError(\n async () => {\n currentProject.update({ isSaving: true });\n const configuration = await quoteProvider.getConfiguration();\n const response = await ProjectsApi.updateProjectConfiguration(projectId, configuration);\n\n if (response?.is_success) {\n Toast.showSuccess({\n content: I18n.format('Quote_Project_ConfigurationUpdated', { name: projectName }),\n });\n currentProject.update({\n isUpdateAllowed: true,\n project: response.data.projet,\n isDirty: false,\n lastSaveDate: new Date(),\n lastAutoSave: true,\n });\n\n if (withPostMessage) {\n await saveProjectWithPostMessage(response.data.projet);\n }\n if (saveType) {\n gtm.pushSaveOrCreateProjectEvent({ projectId, isNewProject: false, location: saveType });\n }\n }\n\n currentProject.update({ isSaving: false });\n return response;\n },\n {\n errorHandler: (error: any) => {\n currentProject.update({ isSaving: false });\n return Promise.resolve(false);\n },\n }\n );\n };\n\n const saveProjectWithPostMessage = async (projet: ProjectDto) => {\n if (AuthHelper.isAuthenticatedAsCustomerUser()) {\n const { quote } = quoteProvider.getState();\n const saveMessage = await StmacSaveProjectMessage.getSaveProjectRequestMessage({\n projet,\n quotationReply: quote,\n mapState: quoteProvider.map.getState(),\n projetStore: StoreHelper.getProjectStore(quoteProvider.getState()),\n });\n if (StmacSaveProjectMessage.isValid(saveMessage)) {\n StmacPostMessageService.postMessage(saveMessage);\n }\n }\n };\n\n const saveProjectIfNeeded = (\n whenProjectSaved: VoidFunction,\n whenAbort: VoidFunction,\n saveType: GtmSaveType\n ): void => {\n const currentProjectState = currentProject.getState();\n if (!currentProjectState.project) {\n DialogService.showYesNoChoiceDialog({\n title: I18n.get('COMMON_SAVE'),\n subtitle: I18n.get('Dialog_ProjectSaveHeader'),\n body: I18n.get('Dialog_ProjectSaveBody'),\n onClickYes: () => save({ afterSave: whenProjectSaved, saveType }),\n onClickNo: whenAbort,\n onClosed: whenAbort,\n });\n } else if (currentProjectState.isDirty) {\n DialogService.showYesNoChoiceDialog({\n title: I18n.get('COMMON_SAVE'),\n subtitle: I18n.get('Dialog_ProjectSaveDirtyHeader'),\n body: I18n.get('Dialog_ProjectSaveDirtyBody'),\n onClickYes: () => save({ afterSave: whenProjectSaved, saveType }),\n });\n } else {\n whenProjectSaved();\n }\n };\n\n return { onSaveAuto, onSave, saveProjectIfNeeded, requestCreateProject, updateProject };\n};\n","import { wrapError } from '../../../../Errors/PolErrorHandler';\nimport { ProductHelper } from '../../../../Helpers/ProductHelper';\nimport { QuestionContext, QuestionContextHelper } from '../../../../Helpers/QuestionContextHelper';\nimport {\n QuestionsHelper,\n SetValueOnQuestionParameter,\n UpdateQuestionAfterLoadProduitsParameters,\n} from '../../../../Helpers/QuestionsHelper';\nimport { QuestionItem, QuestionStep, QuestionType } from '../../../../Models/Questions/QuestionDto';\nimport { useIncompatibilityContext } from '../../../../Plugins/FloorPlan/Context/IncompatibilityContext';\nimport { useMapContext } from '../../../../Plugins/FloorPlan/Context/MapContext';\nimport { ContextQuestionList, IMapItem } from '../../../../Plugins/FloorPlan/Models/IMapItem';\nimport { useIsVendeur } from '../../../Hooks/Vendeur/useVendeur';\nimport { QuestionPrepare } from '../Helpers/QuestionPrepare';\nimport { Scroller, useScroller } from '../Helpers/Scroller';\nimport { useVersionId } from '../QuotePageController';\nimport { ContextQuestionsUtils } from '../Utils/ContextQuestionsUtils';\n\nexport interface AfterUpdateQuestionParameters {\n item: T;\n contextQuestions: ContextQuestionList;\n question: QuestionItem;\n scrollToNextQuestion?: boolean;\n\n questionsModified?: boolean;\n logs?: any;\n}\n\nexport interface ShowNextQuestionIfNeededParameters {\n item: T;\n contextQuestions: ContextQuestionList;\n fromQuestion: QuestionItem;\n scrollToNextQuestion?: boolean;\n\n questionsModified?: boolean;\n logs?: any;\n}\n\nexport type UpdateStepQuestionsParams = {\n contextQuestions: ContextQuestionList;\n questionsModified?: boolean;\n logs?: any;\n openNextSectionIfNeeded?: boolean;\n};\n\ntype StepQuestionsParams = {\n step: QuestionStep;\n updateStepQuestions: (params: UpdateStepQuestionsParams) => void;\n getItemId: (item: T) => string;\n handleScroll: (params: ScrollToStepQuestionParams) => void;\n};\n\nexport type ScrollToStepQuestionParams = {\n scrollToNextQuestion?: boolean;\n nextQuestionToScroll?: QuestionItem;\n contextQuestions: ContextQuestionList\n}\n\nexport const useStepQuestionsController = ({\n step,\n updateStepQuestions,\n getItemId,\n handleScroll\n}: StepQuestionsParams) => {\n\n const versionId = useVersionId();\n const scroller = useScroller();\n const incompatibility = useIncompatibilityContext();\n const isVendeur = useIsVendeur();\n const map = useMapContext();\n\n const getProduitPrincipal = (item: IMapItem) => {\n const { rooms = [] } = map.getState();\n const room = rooms.find((r) => r.roomId === item.roomId);\n return room?.questionProduitPrincipal?.produitValue;\n };\n\n //#region //* ANSWER QUESTION\n\n const onSetValueOnQuestion = (\n item: T,\n contextQuestions: ContextQuestionList,\n question: QuestionItem,\n valueParameters: SetValueOnQuestionParameter\n ): void => {\n wrapError(async () => {\n const questions: Array = contextQuestions.questions || [];\n const prevVisibleQuestion = QuestionsHelper.getPreviousVisibleQuestion(question, questions);\n const prevStepLastContext: QuestionContext = QuestionPrepare.getPreviousStepContext(item, step);\n question.context = QuestionContextHelper.mergeContext(\n prevVisibleQuestion?.context || prevStepLastContext,\n {}\n );\n\n const produitPrincipal = getProduitPrincipal(item);\n QuestionsHelper.setValueOnQuestion(question, valueParameters, produitPrincipal);\n const questionsUpdated: Array = QuestionsHelper.updateQuestions(questions, question);\n QuestionsHelper.initializeQuestions({ questions: questionsUpdated, initialContext: prevStepLastContext, produitPrincipal });\n contextQuestions.questions = questionsUpdated;\n\n const { checkValue = true } = valueParameters;\n if (checkValue && question.isValid) {\n const findIncompatibilityResult = QuestionsHelper.findFirstIncompatibility(questionsUpdated);\n if (findIncompatibilityResult.findIncompatibility) {\n contextQuestions.questions = questionsUpdated;\n contextQuestions.endQuestion = false;\n updateStepQuestions({\n contextQuestions,\n logs: { event: 'onSetValueOnQuestion findIncompatibilityResult', findIncompatibilityResult },\n });\n const cancelCurrentQuestion = () => {\n //* when click on close button or close dialog\n //* mettre la question en non répondue\n QuestionsHelper.invalidValueOnQuestion({ question });\n\n const updatedQuestions = QuestionsHelper.updateQuestions(questions, question);\n contextQuestions.questions = updatedQuestions;\n contextQuestions.endQuestion = false;\n updateStepQuestions({\n contextQuestions,\n questionsModified: true,\n logs: {\n event: 'onSetValueOnQuestion cancelCurrentQuestion',\n findIncompatibilityResult,\n },\n });\n if (question.isValid) {\n afterUpdateQuestion({ item, contextQuestions, question });\n }\n };\n incompatibility.showIncompatibilityDialog(item.roomId!, findIncompatibilityResult, cancelCurrentQuestion);\n } else {\n incompatibility.reset(item.roomId!);\n afterUpdateQuestion({\n item,\n contextQuestions,\n question,\n scrollToNextQuestion: checkValue,\n questionsModified: true,\n logs: {\n itemId: item.roomId,\n event: 'onSetValueOnQuestion valid',\n item,\n question,\n valueParameters,\n step,\n },\n });\n }\n } else {\n incompatibility.reset(item.roomId!);\n const result = ContextQuestionsUtils.verifyIfQuestionsFinished({ contextQuestions, produitPrincipal: getProduitPrincipal(item), isVendeur });\n contextQuestions.isEmpty = result.isEmpty;\n contextQuestions.isStepCompleted = result.isStepCompleted;\n updateStepQuestions({\n contextQuestions,\n questionsModified: true,\n logs: { event: 'onSetValueOnQuestion not valid', item, question, valueParameters, step },\n });\n //* SCROLL TO SHOW validate \"OK\" button for QMC\n if (question.type === QuestionType.MultipleChoices && question.optionValues?.length && !question.isValid) {\n // scroller.scrollToQuestion({\n // scrollerId: Scroller.ID,\n // itemId: getItemId(item),\n // toQuestion: question,\n // delay: Scroller.ShortDelay,\n // forceScrollToBottom: true\n // });\n\n scroller.scrollToAlignBottomQuestionOnBottom(\n Scroller.ID,\n getItemId(item),\n question,\n Scroller.ShortDelay,\n );\n }\n }\n });\n };\n\n const afterUpdateQuestion = (afterUpdateQuestionParameters: AfterUpdateQuestionParameters) => {\n const { item, contextQuestions, question, scrollToNextQuestion, questionsModified, logs } =\n afterUpdateQuestionParameters;\n showNextQuestionIfNeeded({\n item,\n contextQuestions,\n fromQuestion: question,\n scrollToNextQuestion,\n questionsModified,\n logs,\n });\n if (question.type === QuestionType.Produit) {\n const findQuestionProduit = QuestionsHelper.findQuestionProduitWhichRefersTheQuestion(question, contextQuestions.questions);\n if (findQuestionProduit) {\n loadProduitsForQuestion(item, contextQuestions, findQuestionProduit, findQuestionProduit.produitSearch);\n }\n }\n };\n\n //#endregion\n\n //#region //* LOAD PRODUITS\n\n const loadProduitsForQuestion = (\n item: T,\n contextQuestions: ContextQuestionList,\n question: QuestionItem,\n search?: string\n ): void => {\n const produitQuestionNotFirstLoad = Boolean(question.produitValue) || Boolean(question.excludeResponseSelected);\n QuestionsHelper.loadProduits({\n question,\n context: question.context,\n search: search ?? '',\n versionId: versionId!,\n updateQuestion: ({ question: questionProduitUpdated }: UpdateQuestionAfterLoadProduitsParameters) => {\n const { questions = [] } = contextQuestions;\n\n if (!search && question.produit_properties.allow_copy_last_choosed_product) {\n questionProduitUpdated = ContextQuestionsUtils.addPreviousSelectedProductSuggestions(\n item,\n questionProduitUpdated\n );\n }\n\n const updatedQuestions = QuestionsHelper.updateQuestions(questions, questionProduitUpdated);\n contextQuestions.questions = updatedQuestions;\n const result = ContextQuestionsUtils.verifyIfQuestionsFinished({ contextQuestions, produitPrincipal: getProduitPrincipal(item), isVendeur });\n contextQuestions.isEmpty = result.isEmpty;\n contextQuestions.isStepCompleted = result.isStepCompleted;\n\n if (questionProduitUpdated.produitValue?.is_default) {\n questionProduitUpdated.isValid = true;\n }\n\n updateStepQuestions({\n contextQuestions,\n questionsModified: questionProduitUpdated.produitsLoaded,\n openNextSectionIfNeeded: false,\n logs: { events: 'loadProduitsForQuestion', produitQuestionNotFirstLoad },\n });\n\n scroller.scrollToQuestion({\n scrollerId: Scroller.ID,\n itemId: getItemId(item),\n toQuestion: questionProduitUpdated,\n questions: contextQuestions.questions,\n delay: 500\n });\n\n if (!produitQuestionNotFirstLoad && questionProduitUpdated.isValid) {\n showNextQuestionIfNeeded({\n item,\n contextQuestions,\n fromQuestion: questionProduitUpdated,\n scrollToNextQuestion: false,\n });\n }\n },\n showNextQuestionIfNeeded: (fromQuestion: QuestionItem) => {\n showNextQuestionIfNeeded({\n item,\n contextQuestions,\n fromQuestion,\n scrollToNextQuestion: false,\n });\n },\n });\n };\n\n //#endregion\n\n //* SHOW NEXT QUESTIONS (make it visible)\n //* called when user answer a question\n //* or user skip a question with type === 'Comment'\n //? je pense que ça doit retourner une liste de question\n const showNextQuestionIfNeeded = (params: ShowNextQuestionIfNeededParameters): void => {\n const { item, fromQuestion, contextQuestions, scrollToNextQuestion, questionsModified, logs } = params;\n const questions = contextQuestions.questions || [];\n const { lastShownQuestion } = QuestionsHelper.getLastShownQuestion(questions);\n\n const produitPrincipalCompleteCode = ProductHelper.getCompleteCode(getProduitPrincipal(item));\n\n if (!lastShownQuestion?.isValid) {\n ContextQuestionsUtils.setFocusQuestion({ contextQuestions, questions, focusQuestion: lastShownQuestion });\n updateStepQuestions({ contextQuestions, questionsModified, logs });\n } else {\n const nextQuestionWithNoAnswer: QuestionItem | undefined = QuestionsHelper.getNextQuestionToShow({\n fromQuestion,\n questions,\n produitPrincipalCompleteCode,\n });\n if (nextQuestionWithNoAnswer) {\n ContextQuestionsUtils.setFocusQuestion({ contextQuestions, questions, focusQuestion: nextQuestionWithNoAnswer });\n updateStepQuestions({ contextQuestions, questionsModified, logs });\n } else {\n contextQuestions.endQuestion = true;\n contextQuestions.questions = questions;\n const result = ContextQuestionsUtils.verifyIfQuestionsFinished({ contextQuestions, produitPrincipal: getProduitPrincipal(item), isVendeur });\n contextQuestions.isEmpty = result.isEmpty;\n contextQuestions.isStepCompleted = result.isStepCompleted;\n questions.forEach((q) => (q.focusQuestion = false));\n\n updateStepQuestions({ contextQuestions, questionsModified, logs });\n }\n }\n\n if (scrollToNextQuestion) {\n //* SCROLL VERS LA PROCHAINE QUESTION VISIBLE (même si il y a déjà une réponse)\n const nextQuestionToScroll: QuestionItem | undefined = QuestionsHelper.getNextVisibleQuestion(\n fromQuestion,\n questions\n );\n if (nextQuestionToScroll) {\n scroller.scrollToQuestion({\n scrollerId: Scroller.ID,\n itemId: getItemId(item),\n toQuestion: nextQuestionToScroll,\n questions: contextQuestions.questions,\n delay: Scroller.LongDelay\n });\n }\n }\n };\n\n\n return { onSetValueOnQuestion, loadProduitsForQuestion };\n};\n\n\n","import { QuestionItem } from '../../../../Models/Questions/QuestionDto';\n\nexport class HabitationHelper {\n\n public static isFinished = (questions: QuestionItem[] = []) => {\n return !questions.filter(q => q.showQuestion).some((q, index) => !q.isValid);\n };\n\n public static isLastQuestion = (question: QuestionItem, questions: QuestionItem[] = []) => {\n return questions[questions.length - 1].id === question.id;\n };\n}","import { ConditionHelper } from '../../../../Helpers/ConditionHelper';\nimport { ObjectUtils } from '../../../../Helpers/ObjectUtils';\nimport { QuestionContextHelper } from '../../../../Helpers/QuestionContextHelper';\nimport { QuestionItem, QuestionStep, QuestionType } from '../../../../Models/Questions/QuestionDto';\nimport { IRoom } from '../../../../Plugins/FloorPlan/Models/IRoom';\nimport { QuestionContextUtils } from '../Utils/QuestionContextUtils';\n\nexport function getQuestionProduitPrincipal(room: IRoom, questions: QuestionItem[] = [], habitationQuestions: QuestionItem[] = []) {\n const questionsProduitPrincipal = questions.filter((q) => q.related_step === QuestionStep.StepProduit && q.type === QuestionType.Produit);\n const questionProduitPrincipal = questionsProduitPrincipal.find((question, index) => {\n const condition = question.visibility_condition;\n const rawContext = QuestionContextHelper.mergeContext(\n QuestionContextHelper.getBaseQuestionsContext(habitationQuestions),\n QuestionContextUtils.createRoomContext(room)\n )\n const isVisible = !question.visibility_condition\n ? true :\n ConditionHelper.isConditionEvaluateToTrue({ question, condition, rawContext });\n return isVisible;\n });\n return ObjectUtils.clone(questionProduitPrincipal);\n}\n\nexport function upadateQuestionProduitPrincipalIfNeeded(room: IRoom, questions: QuestionItem[] = [], habitationQuestions: QuestionItem[] = []) {\n const questionsProduitPrincipal = questions.filter((q) => q.related_step === QuestionStep.StepProduit && q.type === QuestionType.Produit);\n const questionProduitPrincipal = questionsProduitPrincipal.find((question, index) => {\n const condition = question.visibility_condition;\n const rawContext = QuestionContextHelper.mergeContext(\n QuestionContextHelper.getBaseQuestionsContext(habitationQuestions),\n QuestionContextUtils.createRoomContext(room)\n )\n const isVisible = !question.visibility_condition\n ? true :\n ConditionHelper.isConditionEvaluateToTrue({ question, condition, rawContext });\n return isVisible;\n });\n\n if (room.questionProduitPrincipal?.id !== questionProduitPrincipal?.id) {\n return ObjectUtils.clone(questionProduitPrincipal);\n }\n return room.questionProduitPrincipal;\n}\n\nexport function getQuestionProduitPrincipalLogData(room: IRoom, questions: QuestionItem[] = [], habitationQuestions: QuestionItem[] = []) {\n const questionsProduitPrincipal = questions.filter((q) => q.related_step === QuestionStep.StepProduit && q.type === QuestionType.Produit);\n const rawContext = QuestionContextHelper.mergeContext(\n QuestionContextHelper.getBaseQuestionsContext(habitationQuestions),\n QuestionContextUtils.createRoomContext(room)\n )\n return { questionsProduitPrincipal, rawContext, room };\n}","import { ConfigurationUtils } from '../../../../Helpers/ConfigurationUtils';\nimport { QuestionContext } from '../../../../Helpers/QuestionContextHelper';\nimport { QuestionsHelper } from '../../../../Helpers/QuestionsHelper';\nimport { ConfigurationReponseDto } from '../../../../Models/Projects/Configuration';\nimport { ProduitDto } from '../../../../Models/Questions/ProduitDto';\nimport { QuestionContextType, QuestionItem, QuestionStep } from '../../../../Models/Questions/QuestionDto';\nimport { ContextQuestionList, IMapItem } from '../../../../Plugins/FloorPlan/Models/IMapItem';\nimport { OpeningType } from '../../../../Plugins/FloorPlan/Models/IOpening';\nimport { IRoom } from '../../../../Plugins/FloorPlan/Models/IRoom';\nimport { RoomItemType } from '../../../../Plugins/FloorPlan/Models/IRoomItem';\nimport { ContextQuestionsUtils } from '../Utils/ContextQuestionsUtils';\n\ntype PrepareItemStepQuestions = {\n itemId: string;\n item: IMapItem;\n questions: Array;\n\n produitPrincipal?: ProduitDto;\n\n contextType: QuestionContextType;\n openingType?: OpeningType;\n roomItemType?: RoomItemType;\n\n fromLoadingConfiguration?: boolean;\n reponses?: Array;\n\n isVendeur?: boolean;\n withLog?: boolean;\n};\n\ntype PrepareGeneralStepQuestions = {\n step: QuestionStep;\n questions: Array;\n contextQuestionList?: ContextQuestionList;\n\n previousContext?: QuestionContext;\n\n fromLoadingConfiguration?: boolean;\n reponses?: Array;\n\n isVendeur?: boolean;\n withLog?: boolean;\n};\n\ntype ApplyReponseStepQuestions = {\n contextId?: string;\n questions: QuestionItem[];\n reponses: ConfigurationReponseDto[],\n produitPrincipal?: ProduitDto\n}\n\ntype PrepareStepQuestions = {\n stepQuestions: ContextQuestionList;\n context?: QuestionContext;\n produitPrincipal?: ProduitDto;\n withLog?: boolean;\n isVendeur?: boolean;\n};\n\nexport interface ContextQuestions {\n stepQuestions: ContextQuestionList;\n initialContext?: QuestionContext;\n produitPrincipal?: ProduitDto;\n noFocusQuestion?: boolean;\n autoValidQuestionCommentType: boolean;\n withLog?: boolean;\n}\n\nexport interface PrepareHabitationQuestions {\n questions: Array;\n initialContext?: QuestionContext;\n fromLoadingConfiguration?: boolean;\n noFocusQuestion?: boolean;\n autoValidQuestionCommentType: boolean;\n withLog?: boolean;\n}\n\nexport interface PrepareStepQuestionsListParams {\n reponses: ConfigurationReponseDto[];\n questions?: QuestionItem[];\n fromLoadingConfiguration?: boolean;\n initialContext?: QuestionContext;\n noFocusQuestion?: boolean;\n autoValidQuestionCommentType: boolean;\n isVendeur?: boolean;\n withLog?: boolean;\n}\n\nexport class QuestionPrepare {\n public static getPreviousStepContext = (item: IMapItem, step: QuestionStep, withLog?: boolean): QuestionContext => {\n const room = item as IRoom;\n if (step === QuestionStep.StepProduit) {\n return QuestionsHelper.getLastShownQuestion(item.questionsTva?.questions)?.lastShownQuestion?.context\n || this.getPreviousStepContext(item, QuestionStep.StepTva)\n }\n if (step === QuestionStep.StepPose) {\n return room.questionProduitPrincipal?.context\n || this.getPreviousStepContext(item, QuestionStep.StepProduit);\n }\n if (step === QuestionStep.StepSupport) {\n return (\n QuestionsHelper.getLastShownQuestion(item.questionsPose?.questions)?.lastShownQuestion?.context\n || this.getPreviousStepContext(item, QuestionStep.StepPose, withLog)\n );\n }\n if (step === QuestionStep.StepPreparation) {\n return (\n QuestionsHelper.getLastShownQuestion(item.questionsSupport?.questions)?.lastShownQuestion?.context\n || this.getPreviousStepContext(item, QuestionStep.StepSupport, withLog)\n );\n }\n if (step === QuestionStep.StepFinitions) {\n return (\n QuestionsHelper.getLastShownQuestion(item.questionsPreparation?.questions)?.lastShownQuestion?.context\n || this.getPreviousStepContext(item, QuestionStep.StepPreparation, withLog)\n );\n }\n\n return item.questionsBaseContext || {};\n };\n\n public static getStepQuestions = (item: IMapItem, step: QuestionStep): ContextQuestionList | undefined => {\n if (step === QuestionStep.StepPose) {\n return item.questionsPose;\n }\n if (step === QuestionStep.StepSupport) {\n return item.questionsSupport;\n }\n if (step === QuestionStep.StepPreparation) {\n return item.questionsPreparation;\n }\n if (step === QuestionStep.StepFinitions) {\n return item.questionsFinition;\n }\n return undefined;\n };\n\n public static toStepQuestions = (questions: QuestionItem[], step: QuestionStep): ContextQuestionList => {\n const stepQuestions = questions.filter((q) => q.related_step === step);\n return { step, questions: stepQuestions };\n };\n\n public static updateItemStepsQuestions = ({\n itemId,\n item,\n contextType,\n openingType,\n roomItemType,\n questions = [],\n produitPrincipal,\n fromLoadingConfiguration,\n reponses = [],\n isVendeur,\n withLog\n }: PrepareItemStepQuestions) => {\n\n //#region //* STEP TVA\n\n const questionsTva = questions.filter((q) => q.related_step === QuestionStep.StepTva);\n const questionsTvaToUse =\n item.questionsTva ||\n ContextQuestionsUtils.toContextQuestions({\n step: QuestionStep.StepTva,\n questions: questionsTva,\n contextType,\n });\n if (fromLoadingConfiguration) {\n this.applyReponseStepQuestions({ contextId: itemId, questions: questionsTvaToUse.questions, reponses });\n }\n item.questionsTva = this.updateStepQuestions({\n stepQuestions: questionsTvaToUse,\n context: this.getPreviousStepContext(item, QuestionStep.StepTva),\n isVendeur,\n });\n\n //#endregion\n\n //#region //* STEP PRODUIT\n\n const room = item as IRoom;\n if (contextType === QuestionContextType.Rooms || contextType === QuestionContextType.Walls) {\n const roomQuestionProduitPrincipal = room.questionProduitPrincipal;\n if (roomQuestionProduitPrincipal) {\n QuestionsHelper.initializeQuestions({\n questions: [roomQuestionProduitPrincipal],\n initialContext: this.getPreviousStepContext(item, QuestionStep.StepProduit),\n });\n }\n }\n\n //#endregion\n\n //#region //* STEP POSE\n\n const questionsPose = questions.filter((q) => q.related_step === QuestionStep.StepPose);\n const questionsPoseToUse =\n item.questionsPose ||\n ContextQuestionsUtils.toContextQuestions({\n step: QuestionStep.StepPose,\n questions: questionsPose,\n contextType,\n });\n if (fromLoadingConfiguration) {\n this.applyReponseStepQuestions({ contextId: itemId, questions: questionsPoseToUse.questions, reponses, produitPrincipal });\n }\n item.questionsPose = this.updateStepQuestions({\n stepQuestions: questionsPoseToUse,\n context: this.getPreviousStepContext(item, QuestionStep.StepPose),\n produitPrincipal,\n isVendeur,\n withLog,\n });\n //#endregion\n\n //#region //* STEP SUPPORT\n\n const questionsSupport = questions.filter((q) => q.related_step === QuestionStep.StepSupport);\n const questionsSupportToUse =\n item.questionsSupport ||\n ContextQuestionsUtils.toContextQuestions({\n step: QuestionStep.StepSupport,\n questions: questionsSupport,\n contextType,\n });\n if (fromLoadingConfiguration) {\n this.applyReponseStepQuestions({ contextId: itemId, questions: questionsSupportToUse.questions, reponses, produitPrincipal });\n }\n item.questionsSupport = this.updateStepQuestions({\n stepQuestions: questionsSupportToUse,\n context: this.getPreviousStepContext(item, QuestionStep.StepSupport),\n produitPrincipal,\n isVendeur,\n });\n\n //#endregion\n\n //#region //* STEP PREPARATION\n\n const questionsPreparation = questions.filter((q) => q.related_step === QuestionStep.StepPreparation);\n const questionsPreparationToUse =\n item.questionsPreparation ||\n ContextQuestionsUtils.toContextQuestions({\n step: QuestionStep.StepPreparation,\n questions: questionsPreparation,\n contextType,\n });\n if (fromLoadingConfiguration) {\n this.applyReponseStepQuestions({ contextId: itemId, questions: questionsPreparationToUse.questions, reponses, produitPrincipal });\n }\n item.questionsPreparation = this.updateStepQuestions({\n stepQuestions: questionsPreparationToUse,\n context: this.getPreviousStepContext(item, QuestionStep.StepPreparation),\n produitPrincipal,\n isVendeur,\n });\n\n //#endregion\n\n //#region //* STEP FINITION\n\n const questionsFinition = questions.filter((q) => q.related_step === QuestionStep.StepFinitions);\n const questionsFinitionToUse =\n item.questionsFinition ||\n ContextQuestionsUtils.toContextQuestions({\n step: QuestionStep.StepFinitions,\n questions: questionsFinition,\n contextType,\n openingType,\n roomItemType,\n });\n if (fromLoadingConfiguration) {\n this.applyReponseStepQuestions({ contextId: itemId, questions: questionsFinitionToUse.questions, reponses, produitPrincipal });\n }\n item.questionsFinition = this.updateStepQuestions({\n stepQuestions: questionsFinitionToUse,\n context: this.getPreviousStepContext(item, QuestionStep.StepFinitions),\n produitPrincipal,\n isVendeur,\n });\n\n //#endregion\n };\n\n public static updateGeneralStepsQuestions = ({\n step,\n contextQuestionList,\n questions = [],\n previousContext = {},\n fromLoadingConfiguration,\n reponses = [],\n isVendeur,\n withLog\n }: PrepareGeneralStepQuestions) => {\n const stepQuestions = questions.filter((q) => q.related_step === step);\n const stepQuestionsToUse = contextQuestionList ||\n ContextQuestionsUtils.toContextQuestions({ step: QuestionStep.StepTva, questions: stepQuestions, contextType: QuestionContextType.General });\n\n if (fromLoadingConfiguration) {\n this.applyReponseStepQuestions({ questions: stepQuestionsToUse.questions, reponses });\n }\n return this.updateStepQuestions({\n stepQuestions: stepQuestionsToUse,\n context: previousContext,\n isVendeur,\n });\n };\n\n public static applyReponseStepQuestions = ({ contextId, questions = [], reponses = [], produitPrincipal }\n : ApplyReponseStepQuestions) => {\n questions?.forEach((question: QuestionItem) => {\n ConfigurationUtils.applyReponseToQuestion({\n contextId,\n produitPrincipal,\n question: question,\n reponses,\n });\n });\n };\n\n public static updateStepQuestions = ({\n stepQuestions,\n context = {},\n produitPrincipal,\n withLog,\n isVendeur,\n }: PrepareStepQuestions): ContextQuestionList => {\n stepQuestions.initialContext = context;\n const autoValidQuestionCommentType = false;\n const questions = stepQuestions?.questions || [];\n if (questions.length > 0) {\n QuestionsHelper.validateCommentAndRespirationQuestionIfNeeded(questions, autoValidQuestionCommentType);\n QuestionsHelper.initializeQuestions({ questions, produitPrincipal, initialContext: context, withLog });\n const findIncompatibility = QuestionsHelper.findFirstIncompatibility(questions);\n let { isStepCompleted, isEmpty } = QuestionsHelper.isStepCompleted({\n questions: questions,\n produitPrincipal,\n isVendeur,\n });\n\n //* update questions and context\n stepQuestions.questions = questions;\n stepQuestions.endQuestion = findIncompatibility.findIncompatibility ? false : isStepCompleted;\n stepQuestions.isEmpty = isEmpty;\n stepQuestions.findIncompatibility = findIncompatibility.findIncompatibility\n ? findIncompatibility\n : undefined;\n } else {\n stepQuestions.questions = questions;\n stepQuestions.endQuestion = true;\n stepQuestions.isEmpty = true;\n stepQuestions.findIncompatibility = undefined;\n }\n return stepQuestions;\n };\n\n public static updatedStepQuestionsFromLoadConfig = ({\n questions = [],\n initialContext = {},\n reponses = [],\n autoValidQuestionCommentType,\n fromLoadingConfiguration,\n }: PrepareStepQuestionsListParams) => {\n if (questions.length > 0) {\n if (fromLoadingConfiguration) {\n //* load questions habitation response\n questions.forEach((question: QuestionItem) =>\n ConfigurationUtils.applyReponseToQuestion({ question, reponses })\n );\n }\n\n QuestionsHelper.validateCommentAndRespirationQuestionIfNeeded(questions, autoValidQuestionCommentType);\n QuestionsHelper.initializeQuestions({ questions, initialContext });\n\n const invalidAnswerIfIncompatiblityDetected = (questions: Array): Array => {\n //* on regarde s'il y a une question avec une incompatibilité\n //* si oui, on reset la réponse associée\n const { findIncompatibility, questionWithIncompatibility } =\n QuestionsHelper.findFirstIncompatibility(questions);\n if (findIncompatibility && questionWithIncompatibility) {\n const { updatedQuestion } = QuestionsHelper.invalidValueOnQuestion({\n question: questionWithIncompatibility,\n });\n return QuestionsHelper.updateQuestions(questions, updatedQuestion);\n }\n return questions;\n };\n invalidAnswerIfIncompatiblityDetected(questions);\n }\n };\n\n //#region //* SECTION\n\n public static allPreviousStepCompleted = (item: IMapItem, step: QuestionStep): boolean | undefined => {\n const prevStep = this.getPreviousStep(item, step);\n const prevStepEnd = prevStep ? prevStep?.endQuestion : true;\n if (step === QuestionStep.StepSupport) {\n return prevStepEnd && this.allPreviousStepCompleted(item, QuestionStep.StepPose);\n }\n if (step === QuestionStep.StepPreparation) {\n return prevStepEnd && this.allPreviousStepCompleted(item, QuestionStep.StepSupport);\n }\n if (step === QuestionStep.StepFinitions) {\n return prevStepEnd && this.allPreviousStepCompleted(item, QuestionStep.StepPreparation);\n }\n return true;\n };\n\n public static isStepQuestionsOpened = (item?: IMapItem, step?: QuestionStep) => {\n if (step === QuestionStep.StepPose) {\n return item?.openSections?.questionsPose;\n }\n if (step === QuestionStep.StepSupport) {\n return item?.openSections?.questionsSupport;\n }\n if (step === QuestionStep.StepPreparation) {\n return item?.openSections?.questionsPreparation;\n }\n if (step === QuestionStep.StepFinitions) {\n return item?.openSections?.questionsFinition;\n }\n return item?.openSections?.infos;\n };\n\n public static getPreviousStep = (item: IMapItem, step: QuestionStep): ContextQuestionList | undefined => {\n if (step === QuestionStep.StepSupport) {\n return item.questionsPose?.endQuestion ? this.getPreviousStep(item, QuestionStep.StepPose) : item.questionsPose;\n }\n if (step === QuestionStep.StepPreparation) {\n return item.questionsSupport?.endQuestion\n ? this.getPreviousStep(item, QuestionStep.StepSupport)\n : item.questionsSupport;\n }\n if (step === QuestionStep.StepFinitions) {\n return item.questionsPreparation?.endQuestion\n ? this.getPreviousStep(item, QuestionStep.StepPreparation)\n : item.questionsPreparation;\n }\n\n return undefined;\n };\n\n public static getNextStep = (item: IMapItem, step: QuestionStep): ContextQuestionList | undefined => {\n if (step === QuestionStep.Infos) {\n return item.questionsPose?.endQuestion ? this.getNextStep(item, QuestionStep.StepPose) : item.questionsPose;\n }\n if (step === QuestionStep.StepPose) {\n return item.questionsSupport?.endQuestion\n ? this.getNextStep(item, QuestionStep.StepSupport)\n : item.questionsSupport;\n }\n if (step === QuestionStep.StepSupport) {\n return item.questionsPreparation?.endQuestion\n ? this.getNextStep(item, QuestionStep.StepPreparation)\n : item.questionsPreparation;\n }\n if (step === QuestionStep.StepPreparation) {\n return item.questionsFinition?.endQuestion\n ? this.getNextStep(item, QuestionStep.StepFinitions)\n : item.questionsFinition;\n }\n return undefined;\n };\n\n //#endregion\n}\n","import { Logger } from '../../../../Errors/Logger';\nimport { QuestionsHelper } from '../../../../Helpers/QuestionsHelper';\nimport { QuoteQuestionUtils } from '../../../../Helpers/QuoteQuestionUtils';\nimport { QuestionItem } from '../../../../Models/Questions/QuestionDto';\n\nexport type ScrollToQuestionParams = {\n scrollerId: string,\n itemId: string,\n toQuestion?: QuestionItem,\n questions?: QuestionItem[],\n toQuestionId?: string;\n prevQuestion?: QuestionItem,\n delay?: number,\n logs?: any;\n}\n\nexport class Scroller {\n\n public static ID = 'SCROLLER_VIEW';\n\n public static ShortDelay = 250;\n public static LongDelay = 500;\n\n public static EXTRA_SCROLL = 100;\n\n public static isInViewport(element?: HTMLElement, extraPadding: number = 0) {\n if (element) {\n const rect: DOMRect = element.getBoundingClientRect();\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom + extraPadding <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\n );\n }\n return false;\n }\n}\n\nexport const useScroller = () => {\n\n //#region //* SCROLL HABIATION QUESTIONS ON MOBILE DIALOG\n\n const scrollToHabitationQuestionDiv = (prevQuestionDivId: string, toQuestionDivId: string) => {\n //* SCROLL TO SPECIFIC POSITION\n const questionDiv: HTMLElement | null = document.getElementById(toQuestionDivId ?? '');\n\n //! 56 = footer height\n if (questionDiv && !Scroller.isInViewport(questionDiv, 56)) {\n const questionDivHeight: number = questionDiv?.offsetHeight ?? 0;\n\n const viewportHeight: number = window.innerHeight || document.documentElement.clientHeight;\n const viewportContainerHeight: number = viewportHeight;\n\n const questionDivRectInDom: DOMRect = questionDiv.getBoundingClientRect();\n let elDistanceToTop: number = (window.pageYOffset + questionDivRectInDom.top);\n\n //* Scroll to top of questionDivHeight\n let toTopScrollPosition: number = elDistanceToTop;\n\n //* Scroll to bottom of questionDivHeight\n if (viewportContainerHeight > questionDivHeight) {\n toTopScrollPosition = (elDistanceToTop - viewportContainerHeight + questionDivHeight);\n }\n\n //* handle if previous infoBulleListDiv exist\n const previousQuestionListInfobulleDivId: string = QuoteQuestionUtils.withtoListInfobulleId(prevQuestionDivId);\n const infoBulleListDiv: HTMLElement | null = document.getElementById(previousQuestionListInfobulleDivId);\n\n if (infoBulleListDiv) {\n const infoBulleListDivHeight: number = infoBulleListDiv?.offsetHeight ?? 0;\n const questionDivWithPreviousInfobulleHeight: number = questionDivHeight + infoBulleListDivHeight;\n\n //* Scroll to top of previous infobulle\n if (questionDivWithPreviousInfobulleHeight > viewportContainerHeight) {\n const previousInfoBulleListDivRectInDom: DOMRect = infoBulleListDiv.getBoundingClientRect();\n elDistanceToTop = (window.pageYOffset + previousInfoBulleListDivRectInDom.top);\n toTopScrollPosition = elDistanceToTop;\n }\n }\n\n //* 98 = container padding bottom\n const EXTRA_SCROLL = 98;\n toTopScrollPosition = toTopScrollPosition + EXTRA_SCROLL + 48;\n\n const questionsContainer: HTMLElement | null = document.getElementById(Scroller.ID);\n questionsContainer?.scrollBy({ behavior: \"smooth\", top: toTopScrollPosition });\n }\n }\n\n //#endregion\n\n //#region //* SCROLL TO INFO FIELD ROOM, OPENING, ROOM_ITEM\n\n const scrollToDiv = (scrollerId: string, toDivId: string, isMobile: boolean = false) => {\n Logger.log('scrollToDiv', { scrollerId, toDivId, isMobile });\n //* SCROLL TO TOP\n if (!toDivId) {\n const questionsContainer: HTMLElement | null = document.getElementById(scrollerId);\n questionsContainer?.scrollTo({ behavior: 'smooth', top: 0 });\n } else {\n //* SCROLL TO SPECIFIC POSITION\n const div: HTMLElement | null = document.getElementById(toDivId ?? '');\n\n //if (div && !Scroller.isInViewport(div)) {\n if (div) {\n const divHeight: number = div?.offsetHeight ?? 0;\n\n const MIN_TOP: number = isMobile ? 64 : 99; //* HEADER\n\n const viewportHeight: number = window.innerHeight || document.documentElement.clientHeight;\n\n const divRectInDom: DOMRect = div.getBoundingClientRect();\n let elDistanceToTop: number = window.pageYOffset + divRectInDom.top - MIN_TOP;\n\n //* Scroll to top of divHeight\n let toTopScrollPosition: number = elDistanceToTop;\n\n //* Scroll to bottom of divHeight\n const viewportContainerHeight: number = viewportHeight - MIN_TOP;\n if (viewportContainerHeight > divHeight) {\n toTopScrollPosition = elDistanceToTop - viewportContainerHeight + divHeight;\n }\n\n const EXTRA_SCROLL = 48;\n toTopScrollPosition = toTopScrollPosition + EXTRA_SCROLL;\n\n const scroller: HTMLElement | null = document.getElementById(scrollerId);\n\n // const scrollerRectInDom: DOMRect = scroller!.getBoundingClientRect();\n // const scollerCenterY = scrollerRectInDom.top + scrollerRectInDom.height / 2;\n // toTopScrollPosition = toTopScrollPosition > scollerCenterY\n // ? toTopScrollPosition - (toTopScrollPosition - scollerCenterY)\n // : scollerCenterY - (scollerCenterY - toTopScrollPosition)\n\n scroller?.scrollBy({ behavior: 'smooth', top: toTopScrollPosition });\n }\n }\n };\n\n //#endregion\n\n //#region //* SCROLL TO QUESTION ROOM, OPENING, ROOM_ITEM\n\n const scrollToQuestion = ({\n scrollerId,\n itemId,\n toQuestion,\n questions = [],\n toQuestionId,\n prevQuestion: lastShownQuestion,\n delay = 10,\n logs,\n }: ScrollToQuestionParams\n ) => {\n\n //! SCROLL RULES :\n //! 1 - Si la question suivante peut être affichée en entier sur le panneau\n //! RULE 1 * on scrolle pour aligner le bas de la question au bas du panneau d'édition\n //! 2 - Si la question ne peut pas être affichée en entier\n //! RULE 2 * on scrolle pour aligner le haut de la question au haut du panneau\n //! 3 - Exception : Si la question n-1 affiche un conseil\n //! * lorsque je réponds, le scroll se fait de sorte à ce que le conseil soit aligné en haut du panneau,\n //! RULE 3 * avec la question n en dessous (la suivante à laquelle je dois répondre)\n\n setTimeout(() => {\n const toQuestionDivId = toQuestionId || QuoteQuestionUtils.toQuestionItemId(itemId, toQuestion?.id);\n const prevQuestion = lastShownQuestion || QuestionsHelper.getPreviousVisibleQuestion(toQuestion!, questions);\n const prevQuestionDivId = QuoteQuestionUtils.toQuestionItemId(itemId, prevQuestion?.id);\n const scroller: HTMLElement | null = document.getElementById(scrollerId);\n\n if (scroller && toQuestionDivId) {\n const scrollerRect: DOMRect | undefined = scroller.getBoundingClientRect();\n //* SCROLL TO SPECIFIC POSITION\n const questionDiv: HTMLElement | null = document.getElementById(toQuestionDivId ?? '');\n const questionDivInViewPort = questionDiv && Scroller.isInViewport(questionDiv);\n\n if (questionDiv && !questionDivInViewPort) {\n const questionDivHeight: number = questionDiv?.offsetHeight ?? 0;\n\n const questionRect: DOMRect = questionDiv.getBoundingClientRect();\n const viewportHeight: number = window.innerHeight || document.documentElement.clientHeight;\n\n //* Scroll to top of questionDivHeight\n const SCROLLER_TOP = scrollerRect.top;\n\n let toTopScrollPosition: number = 0;\n\n if (scrollerRect.height > questionRect.height) {\n //const alignBottom = questionDivRectInDom.bottom > scrollerRect.height;\n\n //!\\\\ GAP between two questions (DEFAULT = 24)\n const includeGap = questions.filter(q => Boolean(q.showQuestion)).length > 1;\n const GAP = includeGap ? 24 : 0;\n toTopScrollPosition = questionRect.bottom - SCROLLER_TOP - scrollerRect.height + GAP;\n //! Quand on aligne sur le bas de la question\n //! Laisser une marge pour que l'on puisse voir qu'il n'y a pas d'autres réponses possibles en dessous\n Logger.log('RULE 1', { logs });\n //toTopScrollPosition = addExtraScrollIfNeeded(toTopScrollPosition, scrollerRect);\n } else {\n //! 2 - Si la question ne peut pas être affichée en entier\n //! --- on scrolle pour aligner le haut de la question au haut du panneau\n toTopScrollPosition = questionRect.top - SCROLLER_TOP;\n Logger.log('RULE 2', { logs });\n }\n\n //* handle if previous infoBulleListDiv exist\n const prevQuestionInfobullesDivId: string = QuoteQuestionUtils.withtoListInfobulleId(prevQuestionDivId);\n const infobulleListDiv: HTMLElement | null = document.getElementById(prevQuestionInfobullesDivId);\n\n if (infobulleListDiv) {\n const prevInfobulleListRect: DOMRect = infobulleListDiv.getBoundingClientRect();\n const QUESTION_GAP = 24;//! 24px = gap between 2 questions\n const prevInfobulleWithQuestionHeight = prevInfobulleListRect.height + QUESTION_GAP + questionRect.height;\n\n if (scrollerRect.height > prevInfobulleWithQuestionHeight) {\n toTopScrollPosition = questionRect.bottom - SCROLLER_TOP - scrollerRect.height + (prevInfobulleListRect.height + 24);\n\n Logger.log('RULE 3-a')\n } else {\n //! 2 - Si les conseils + la question ne peut pas être affichée en entier\n //! --- on scrolle pour aligner le haut des conseils avec le haut du panneau\n toTopScrollPosition = prevInfobulleListRect.top - SCROLLER_TOP;\n Logger.log('RULE 3-b', { prevInfobulleWithQuestionHeight, SCROLLER_TOP, toTopScrollPosition, scroller, viewportHeight, prevInfobulleListRect, questionRect, questionDivHeight, scrollerRect });\n }\n }\n\n //* 48 = next step button height\n //* 24 = margin top\n //* 48 = margin bottom\n // const EXTRA_SCROLL = 48 + 24 + 48;\n // toTopScrollPosition = toTopScrollPosition + EXTRA_SCROLL + 24;\n scroller?.scrollBy({ behavior: 'smooth', top: toTopScrollPosition });\n\n const scrollContent = scrollerRect.height + scrollerRect.top;\n const scrollHeight = scroller.scrollHeight + SCROLLER_TOP;\n Logger.isLogEnabled() && Logger.log('toTopScrollPosition', { scrollContent, SCROLLER_TOP, toTopScrollPosition, scroller, scrollHeight, viewportHeight, questionRect, questionDivHeight, scrollerRect, top: toTopScrollPosition, logs });\n }\n }\n }, delay);\n };\n\n //#endregion\n\n //#region //* SCROLL TO QUESTION BOTTOM\n const scrollToAlignBottomQuestionOnBottom = (\n scrollerId: string,\n itemId: string,\n toQuestion: QuestionItem,\n delay: number = 10\n ) => {\n setTimeout(() => {\n const toQuestionDivId = QuoteQuestionUtils.toQuestionItemId(itemId, toQuestion.id);\n const scroller: HTMLElement | null = document.getElementById(scrollerId);\n if (scroller && toQuestionDivId) {\n const scrollerRect: DOMRect | undefined = scroller.getBoundingClientRect();\n //* SCROLL TO SPECIFIC POSITION\n const questionDiv: HTMLElement | null = document.getElementById(toQuestionDivId ?? '');\n\n if (questionDiv && !Scroller.isInViewport(questionDiv)) {\n const questionRect: DOMRect = questionDiv.getBoundingClientRect();\n //* Scroll to top of questionDivHeight\n const SCROLLER_TOP = scrollerRect.top;\n let toTopScrollPosition = questionRect.bottom - SCROLLER_TOP - scrollerRect.height + 2;\n //! Quand on aligne sur le bas de la question\n //! Laisser une marge pour que l'on puisse voir qu'il n'y a pas d'autres réponses possibles en dessous\n toTopScrollPosition = addExtraScrollIfNeeded(toTopScrollPosition, scrollerRect);\n scroller?.scrollBy({ behavior: 'smooth', top: toTopScrollPosition });\n }\n }\n }, delay);\n };\n\n //#endregion\n\n const scollToBottom = (scrollerId: string, extraScroll: number = 0) => {\n Logger.log('scrollToDiv', { scrollerId, extraScroll });\n const scroller: HTMLElement | null = document.getElementById(scrollerId);\n if (scroller) {\n const toTopScrollPosition = scroller.scrollHeight + extraScroll;\n scroller?.scrollBy({ behavior: 'smooth', top: toTopScrollPosition });\n }\n }\n\n return { scrollToHabitationQuestionDiv, scrollToDiv, scrollToQuestion, scrollToAlignBottomQuestionOnBottom, scollToBottom }\n}\n\nfunction addExtraScrollIfNeeded(toTopScrollPosition: number, scrollerRect: DOMRect) {\n const addExtraScroll = toTopScrollPosition + scrollerRect.height + Scroller.EXTRA_SCROLL < scrollerRect.bottom;\n Logger.log('rule 1 -> remove EXTRA_SCROLL', {\n topScrollWithHeight: toTopScrollPosition + scrollerRect.height,\n addExtraScroll, toTopScrollPosition,\n scrollerRect,\n testAddExtraScroll: `addExtraScroll : (toTopScrollPosition + EXTRA_SCROLL + scrollerRect.height) ${toTopScrollPosition + Scroller.EXTRA_SCROLL + scrollerRect.height} < ${scrollerRect.bottom} (scrollerRect.bottom)`,\n });\n return addExtraScroll ? toTopScrollPosition + Scroller.EXTRA_SCROLL : toTopScrollPosition + 2;\n}","import { ApiRequest } from '../XHR/ApiRequest';\nimport { ApiUrls } from '../../Models/ApiUrls';\nimport { GetConfigurationResponse } from '../../Models/Projects/Configuration';\n\nexport class ConfigurationApi {\n\n public static getConfiguration(config_id: string): Promise {\n return ApiRequest.get(ApiUrls.GET_CONFIGURATION(config_id));\n }\n}\n","import { QuestionContextHelper } from '../../../../Helpers/QuestionContextHelper';\nimport { FindFirstIncompatibilityResult, QuestionsHelper } from '../../../../Helpers/QuestionsHelper';\nimport { QuestionContextType, QuestionItem, QuestionStep } from '../../../../Models/Questions/QuestionDto';\nimport { MapContextState } from '../../../../Plugins/FloorPlan/Context/MapContext';\nimport { CompleteHelper } from '../../../../Plugins/FloorPlan/Helpers/CompleteHelper';\nimport { IMapItem } from '../../../../Plugins/FloorPlan/Models/IMapItem';\nimport { IOpening } from '../../../../Plugins/FloorPlan/Models/IOpening';\nimport { IRoom, RoomType } from '../../../../Plugins/FloorPlan/Models/IRoom';\nimport { IRoomItem } from '../../../../Plugins/FloorPlan/Models/IRoomItem';\nimport { EnhancedViewState } from '../../../Hooks/ViewState/ViewState';\nimport { QuestionPrepare } from '../Helpers/QuestionPrepare';\nimport { QuoteState } from '../QuoteState';\nimport { QuestionContextUtils } from './QuestionContextUtils';\n\nexport const toUpdateMapItemQuestions = (\n mapState: MapContextState,\n quoteState: EnhancedViewState,\n isVendeur?: boolean\n): EnhancedViewState => {\n //!\\ WHEN UPDATE rooms, openings, roomItems, from Panels\n const { questions = [], stepHabitation } = quoteState;\n const { rooms = [], openings = [], roomItems = [], laizeResults = [] } = mapState;\n\n const getIncompatibility = (item: IMapItem, questionProduit?: QuestionItem) => {\n const questions = questionProduit ? [questionProduit] : [];\n questions.push(\n ...(item.questionsPose?.questions! || []),\n ...(item.questionsSupport?.questions! || []),\n ...(item.questionsPreparation?.questions! || []),\n ...(item.questionsFinition?.questions! || []),\n );\n return QuestionsHelper.findFirstIncompatibility(questions);\n };\n\n const updateIncompatibility = (item: IMapItem, firstIncompatibility: FindFirstIncompatibilityResult) => {\n if (firstIncompatibility.findIncompatibility) {\n item.findIncompatibilityResult = firstIncompatibility;\n rooms.find((r) => r.roomId === item.roomId)!.findIncompatibilityResult = firstIncompatibility;\n } else {\n item.findIncompatibilityResult = undefined;\n }\n };\n\n if (rooms.length || openings.length || roomItems.length) {\n rooms.forEach((item: IRoom) => {\n const questionProduitPrincipal = item.questionProduitPrincipal!;\n const produitPrincipal = questionProduitPrincipal?.produitValue;\n const flooringDirection = laizeResults.find((x) => x.roomIds?.some((y) => y === item.roomId))\n ?.flooringDirectionByRoomId?.[item.roomId!];\n\n item.questionsBaseContext = QuestionContextHelper.mergeContext(\n QuestionContextHelper.getBaseQuestionsContext(stepHabitation?.questions),\n QuestionContextUtils.createRoomContext(item, flooringDirection)\n );\n QuestionPrepare.updateItemStepsQuestions({\n itemId: item.roomId!,\n item,\n questions,\n produitPrincipal,\n contextType: item.type === RoomType.Sol ? QuestionContextType.Rooms : QuestionContextType.Walls,\n isVendeur,\n });\n let firstIncompatibility = getIncompatibility(item, item.questionProduitPrincipal!);\n item.findIncompatibilityResult = firstIncompatibility.findIncompatibility\n ? firstIncompatibility\n : undefined;\n });\n\n openings.forEach((item: IOpening) => {\n const room = rooms.find((r) => r.roomId === item.roomId)!;\n const questionProduitPrincipal = room.questionProduitPrincipal;\n const produitPrincipal = questionProduitPrincipal?.produitValue;\n const flooringDirection = laizeResults.find((x) => x.roomIds?.some((y) => y === item.roomId))\n ?.flooringDirectionByRoomId?.[item.roomId!];\n\n item.questionsBaseContext = QuestionContextUtils.createOpeningContext(item, room, flooringDirection);\n QuestionPrepare.updateItemStepsQuestions({\n itemId: item.openingId!,\n item,\n questions,\n produitPrincipal,\n contextType: QuestionContextType.Openings,\n openingType: item.type,\n isVendeur,\n });\n updateIncompatibility(item, getIncompatibility(item));\n item.completionStatus = CompleteHelper.isOpeningComplete(item, openings);\n });\n\n roomItems.forEach((item: IRoomItem) => {\n const room = rooms.find((r) => r.roomId === item.roomId)!;\n const questionProduitPrincipal = room.questionProduitPrincipal;\n const produitPrincipal = questionProduitPrincipal?.produitValue;\n const flooringDirection = laizeResults.find((x) => x.roomIds?.some((y) => y === item.roomId))\n ?.flooringDirectionByRoomId?.[item.roomId!];\n\n item.questionsBaseContext = QuestionContextUtils.createRoomItemContext(item, room, flooringDirection);\n QuestionPrepare.updateItemStepsQuestions({\n itemId: item.roomItemId!,\n item,\n questions,\n produitPrincipal,\n contextType: QuestionContextType.RoomElements,\n roomItemType: item.type,\n isVendeur,\n });\n\n updateIncompatibility(item, getIncompatibility(item));\n item.completionStatus = CompleteHelper.isRoomItemComplete(item, roomItems);\n });\n\n rooms.forEach((item: IRoom) => (item.completionStatus = CompleteHelper.isRoomComplete(item, rooms)));\n\n const roomsCompleted = CompleteHelper.allComplete(rooms);\n return { modified: true, rooms, openings, roomItems, roomsCompleted };\n }\n return { modified: false, roomsCompleted: false };\n};\n\nexport const toUpdateGeneralQuestions = (mapState: MapContextState, quoteState: QuoteState, isVendeur?: boolean): EnhancedViewState => {\n const { questions = [], stepHabitation, stepServices, stepSynthese } = quoteState;\n const { rooms = [] } = mapState;\n const roomsSol = rooms.filter(x => x.type === RoomType.Sol);\n const roomsWall = rooms.filter(x => x.type === RoomType.Wall);\n\n const stepHabitationContext = QuestionContextHelper.getBaseQuestionsContext(stepHabitation?.questions);\n const optionsBaseContext = QuestionContextHelper.mergeContext(stepHabitationContext, {\n evaluations: {\n [QuestionContextHelper.ragreageObligatoreKey]: QuestionContextHelper.isRagreageObligatoireExist(rooms) ? QuestionContextHelper.ragreageObligatoreValue : '',\n },\n rooms: roomsSol.map(room => QuestionContextUtils.getLastStepContext(room, QuestionStep.StepFinitions)),\n walls: roomsWall.map(room => QuestionContextUtils.getLastStepContext(room, QuestionStep.StepFinitions))\n });\n QuestionPrepare.updateGeneralStepsQuestions({\n step: QuestionStep.StepServices,\n contextQuestionList: stepServices,\n previousContext: optionsBaseContext,\n questions,\n isVendeur,\n });\n\n const lastServiceQestionContext = QuestionContextHelper.getBaseQuestionsContext(stepServices?.questions);\n QuestionPrepare.updateGeneralStepsQuestions({\n step: QuestionStep.StepSynthese,\n contextQuestionList: stepSynthese,\n questions,\n isVendeur,\n previousContext: lastServiceQestionContext || optionsBaseContext\n });\n return { ...quoteState, modified: true, stepServices, stepSynthese };\n};\n\n\nexport const getStepServiceBaseContext = (mapState: MapContextState, quoteState: QuoteState) => {\n const { stepHabitation } = quoteState;\n const { rooms = [] } = mapState;\n const roomsSol = rooms.filter(x => x.type === RoomType.Sol);\n const roomsWall = rooms.filter(x => x.type === RoomType.Wall);\n\n const stepHabitationContext = QuestionContextHelper.getBaseQuestionsContext(stepHabitation?.questions);\n const optionsBaseContext = QuestionContextHelper.mergeContext(stepHabitationContext, {\n evaluations: {\n [QuestionContextHelper.ragreageObligatoreKey]: QuestionContextHelper.isRagreageObligatoireExist(rooms) ? QuestionContextHelper.ragreageObligatoreValue : '',\n },\n rooms: roomsSol.map(room => QuestionContextUtils.getLastStepContext(room, QuestionStep.StepFinitions)),\n walls: roomsWall.map(room => QuestionContextUtils.getLastStepContext(room, QuestionStep.StepFinitions))\n });\n return optionsBaseContext;\n}\n\nexport const getStepSyntheseBaseContext = (mapState: MapContextState, quoteState: QuoteState) => {\n const { stepServices } = quoteState;\n const optionsBaseContext = getStepServiceBaseContext(mapState, quoteState);\n const lastServiceQestionContext = QuestionContextHelper.getBaseQuestionsContext(stepServices?.questions);\n return lastServiceQestionContext || optionsBaseContext;\n}","import { useCurrentProject } from '../../../../Configs/CurrentProjectContext';\nimport { Logger } from '../../../../Errors/Logger';\nimport { ConfigurationUtils } from '../../../../Helpers/ConfigurationUtils';\nimport { ProductHelper } from '../../../../Helpers/ProductHelper';\nimport { QuestionContextHelper } from '../../../../Helpers/QuestionContextHelper';\nimport { QuestionsHelper } from '../../../../Helpers/QuestionsHelper';\nimport { GetConfigurationResponse } from '../../../../Models/Projects/Configuration';\nimport { QuestionContextType, QuestionItem, QuestionStep } from '../../../../Models/Questions/QuestionDto';\nimport { CompleteHelper } from '../../../../Plugins/FloorPlan/Helpers/CompleteHelper';\nimport { MapExportHelper } from '../../../../Plugins/FloorPlan/Helpers/MapExport/MapExportHelper';\nimport { MapHelper } from '../../../../Plugins/FloorPlan/Helpers/MapHelper';\nimport { IOpening } from '../../../../Plugins/FloorPlan/Models/IOpening';\nimport { IRoom, RoomType } from '../../../../Plugins/FloorPlan/Models/IRoom';\nimport { IRoomItem } from '../../../../Plugins/FloorPlan/Models/IRoomItem';\nimport { ConfigurationApi } from '../../../../Services/Api/ConfigurationApi';\nimport { useIsVendeur } from '../../../Hooks/Vendeur/useVendeur';\nimport { useRoomInfosValues } from '../Components/Pannels/Rooms/Controllers/RoomInfosValues';\nimport { HabitationHelper } from '../Helpers/HabitationHelper';\nimport { getQuestionProduitPrincipal, getQuestionProduitPrincipalLogData } from '../Helpers/ProduitPrincipalHelper';\nimport { PrepareStepQuestionsListParams, QuestionPrepare } from '../Helpers/QuestionPrepare';\nimport { LoadingStep, QuoteState } from '../QuoteState';\nimport { QuestionContextUtils } from '../Utils/QuestionContextUtils';\nimport { getStepServiceBaseContext, getStepSyntheseBaseContext } from '../Utils/UpdateQuestions';\n\ntype LoadConfigurationParams = { configId: string; questions: Array };\n\ntype QuoteLoadControllerParams = { updateQuote: (values: Partial) => void };\nexport const useQuoteLoadController = ({ updateQuote }: QuoteLoadControllerParams) => {\n const isVendeur = useIsVendeur();\n const currentProject = useCurrentProject();\n const roomInfos = useRoomInfosValues();\n\n const loadConfiguration = async ({ configId, questions }: LoadConfigurationParams) => {\n updateQuote({ loadingStep: LoadingStep.Configuration });\n const configurationResponse: GetConfigurationResponse = await ConfigurationApi.getConfiguration(configId);\n const {\n floor_plan_json,\n reponse_list: reponses,\n configuration_projet,\n projet_store,\n } = configurationResponse.data;\n currentProject.update({\n project: configuration_projet.projet,\n isUpdateAllowed: configuration_projet.is_update_allowed,\n isTouchedBySellers: configuration_projet.touched_by_sellers,\n isDirty: false,\n lastSaveDate: undefined,\n lastAutoSave: false,\n });\n\n const stepHabitation = QuestionPrepare.toStepQuestions(questions, QuestionStep.StepHabitation);\n const stepServices = QuestionPrepare.toStepQuestions(questions, QuestionStep.StepServices);\n const stepSynthese = QuestionPrepare.toStepQuestions(questions, QuestionStep.StepSynthese);\n\n const params: PrepareStepQuestionsListParams = {\n reponses,\n autoValidQuestionCommentType: true,\n fromLoadingConfiguration: true,\n }\n QuestionPrepare.updatedStepQuestionsFromLoadConfig({ ...params, questions: stepHabitation.questions });\n\n const { state: exportMap, flooringDirectionByRoomId } = MapExportHelper.fromApiJsonToState(floor_plan_json, roomInfos);\n\n exportMap.rooms?.forEach((item: IRoom) => {\n //* load question product principal response\n const questionProduitPrincipal = getQuestionProduitPrincipal(item, questions, stepHabitation.questions)!;\n if (!questionProduitPrincipal) {\n Logger.logAnalytics({\n data: {\n configId,\n ...getQuestionProduitPrincipalLogData(item, questions, stepHabitation.questions),\n },\n value: { error: new Error('questionProduitPrincipal is missing') },\n });\n } else {\n item.questionProduitPrincipal = ConfigurationUtils.applyReponseToQuestion({\n contextId: item.roomId,\n question: questionProduitPrincipal,\n reponses,\n });\n }\n });\n\n const laizeProps = ProductHelper.ToArrayLaizeProps(exportMap.rooms);\n updateQuote({ loadingStep: LoadingStep.Map });\n const map = MapHelper.loadRooms({ rooms: exportMap.rooms!, flooringDirectionByRoomId, laizeProps });\n\n updateQuote({ loadingStep: LoadingStep.InitConfiguration });\n map.rooms?.forEach((item: IRoom) => {\n const roomQuestionProduitPrincipal = item.questionProduitPrincipal!;\n const produitPrincipal = roomQuestionProduitPrincipal.produitValue;\n const flooringDirection = flooringDirectionByRoomId?.[item.roomId!];\n\n item.questionsBaseContext = QuestionContextHelper.mergeContext(\n QuestionContextHelper.getBaseQuestionsContext(stepHabitation.questions),\n QuestionContextUtils.createRoomContext(item, flooringDirection)\n );\n\n QuestionPrepare.updateItemStepsQuestions({\n itemId: item.roomId!,\n item,\n questions,\n produitPrincipal,\n contextType: item.type === RoomType.Sol ? QuestionContextType.Rooms : QuestionContextType.Walls,\n fromLoadingConfiguration: true,\n reponses,\n isVendeur,\n });\n\n item.openings?.forEach((opening: IOpening) => {\n opening.questionsBaseContext = QuestionContextUtils.createOpeningContext(\n opening,\n item,\n flooringDirection\n );\n QuestionPrepare.updateItemStepsQuestions({\n itemId: opening.openingId!,\n item: opening,\n questions,\n produitPrincipal,\n contextType: QuestionContextType.Openings,\n openingType: opening.type,\n fromLoadingConfiguration: true,\n reponses,\n isVendeur,\n });\n opening.completionStatus = CompleteHelper.isOpeningComplete(opening, item.openings!);\n });\n item.roomItems?.forEach((roomItem: IRoomItem) => {\n roomItem.questionsBaseContext = QuestionContextUtils.createRoomItemContext(\n roomItem,\n item,\n flooringDirection\n );\n QuestionPrepare.updateItemStepsQuestions({\n itemId: roomItem.roomItemId!,\n item: roomItem,\n questions,\n produitPrincipal,\n contextType: QuestionContextType.RoomElements,\n roomItemType: roomItem.type,\n fromLoadingConfiguration: true,\n reponses,\n isVendeur,\n });\n roomItem.completionStatus = CompleteHelper.isRoomItemComplete(roomItem, item.roomItems!);\n });\n const findFirstIncompatibility = QuestionsHelper.findFirstIncompatibility([\n ...item.questionsTva?.questions || [],\n item.questionProduitPrincipal!,\n ...item.questionsPose?.questions || [],\n ...item.questionsSupport?.questions || [],\n ...item.questionsPreparation?.questions || [],\n ...item.questionsFinition?.questions || [],\n ]);\n item.findIncompatibilityResult = findFirstIncompatibility.findIncompatibility\n ? findFirstIncompatibility\n : undefined;\n item.completionStatus = CompleteHelper.isRoomComplete(item, map.rooms!);\n });\n\n const habitationQuestionsOpen = !HabitationHelper.isFinished(stepHabitation.questions);\n map.roomsCompleted = CompleteHelper.allComplete(map.rooms);\n\n const quote: QuoteState = { stepHabitation, stepServices, stepSynthese, habitationQuestionsOpen, projetStore: projet_store, };\n\n const optionsInitialContext = getStepServiceBaseContext(map, quote);\n QuestionPrepare.updatedStepQuestionsFromLoadConfig({ ...params, questions: stepServices.questions, initialContext: optionsInitialContext });\n\n const syntheseInitialContext = getStepSyntheseBaseContext(map, quote);\n QuestionPrepare.updatedStepQuestionsFromLoadConfig({ ...params, questions: stepSynthese.questions, initialContext: syntheseInitialContext });\n\n return { mapState: map, ...quote };\n };\n\n return { loadConfiguration };\n};\n","import { ApiRequest } from '../XHR/ApiRequest';\nimport { ApiUrls } from '../../Models/ApiUrls';\nimport {\n CurrentVersionParametrageResponse,\n VersionParametrageResponse,\n} from '../../Models/VersionParametrages/VersionParametrage';\n\nexport class VersionApi {\n\n public static getCurrentVersion(): Promise {\n return ApiRequest.get(ApiUrls.GET_CURRENT_VERSION);\n }\n\n public static getVersion(verionId: string): Promise {\n return ApiRequest.get(ApiUrls.GET_VERSION(verionId));\n }\n}\n","import { VersionApi } from '../../../../Services/Api/VersionApi';\nimport { VersionParametrageResponse } from '../../../../Models/VersionParametrages/VersionParametrage';\nimport { ApiError } from '../../../../Services/XHR/ApiError';\n\nexport class VersionLoader {\n\n public static loadVersion = async (version?: string) => {\n const needCurrentVersion = Boolean(version === undefined || version === 'undefined');\n\n if (needCurrentVersion) {\n return this.loadCurrentVersion();\n }\n\n try {\n const response: VersionParametrageResponse = await VersionApi.getVersion(version!);\n return { version, versionData: response.data };\n } catch (error) {\n const apiError = error as ApiError;\n if (apiError.isApiError) {\n return this.loadCurrentVersion();\n }\n throw error;\n }\n };\n\n public static loadCurrentVersion = async () => {\n const currentVersionResponse = await VersionApi.getCurrentVersion();\n const version = currentVersionResponse.data.id;\n const response: VersionParametrageResponse = await VersionApi.getVersion(version);\n return { version, versionData: response.data };\n }\n}","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { useCurrentProject } from '../../../Configs/CurrentProjectContext';\nimport { AppState, useMe } from '../../../Configs/PolStore';\nimport { Logger } from '../../../Errors/Logger';\nimport { wrapError } from '../../../Errors/PolErrorHandler';\nimport { EstimationUrlHelper } from '../../../Helpers/EstimationUrlHelper';\nimport { ProductHelper } from '../../../Helpers/ProductHelper';\nimport { QuoteQuestionUtils } from '../../../Helpers/QuoteQuestionUtils';\nimport { useWindowLog } from '../../../Hooks/WindowLog';\nimport { I18n } from '../../../Locales/I18nService';\nimport { QuestionStep } from '../../../Models/Questions/QuestionDto';\nimport { MapContextState, useMapContext } from '../../../Plugins/FloorPlan/Context/MapContext';\nimport { MapError, MapHelper } from '../../../Plugins/FloorPlan/Helpers/MapHelper';\nimport { LogLevelType } from '../../../Services/Analytics/LogLevelType';\nimport { ApiError } from '../../../Services/XHR/ApiError';\nimport { QuoteLocationState, RouteQueryParams } from '../../../Types/RouteParams';\nimport { useQuery } from '../../Hooks/URL/URLUtils';\nimport { useIsVendeur } from '../../Hooks/Vendeur/useVendeur';\nimport { EnhancedViewState, useViewState } from '../../Hooks/ViewState/ViewState';\nimport { NavigationService } from '../../Services/NavigationService';\nimport { Toast } from '../../Services/ToastService';\nimport { useGtmMapEventController } from './Controllers/GtmEventController';\nimport { useQuoteLoadController } from './Controllers/QuoteLoadController';\nimport { upadateQuestionProduitPrincipalIfNeeded } from './Helpers/ProduitPrincipalHelper';\nimport { QuestionPrepare } from './Helpers/QuestionPrepare';\nimport { VersionLoader } from './Helpers/VersionLoader';\nimport { LoadingStep, QuoteState } from './QuoteState';\nimport { toUpdateGeneralQuestions, toUpdateMapItemQuestions } from './Utils/UpdateQuestions';\n\ntype UpdateQuoteParams = {\n quoteValues?: EnhancedViewState;\n mapValues?: EnhancedViewState;\n mapModified?: boolean;\n refreshLaizeCalc?: boolean;\n questionsModified?: boolean; //!\\ can be quote question on MapItem info\n\n logs?: any;\n};\nexport interface QuoteContextValue {\n state: EnhancedViewState;\n getState: () => EnhancedViewState;\n updateQuote: (values: Partial) => void;\n update: (params: UpdateQuoteParams) => void;\n\n openFinDeParcours: () => void;\n}\n\nconst QuoteContext = React.createContext({\n state: {},\n getState: () => ({}),\n updateQuote: () => {},\n update: () => {},\n openFinDeParcours: () => {},\n});\nexport const useQuoteContext = () => React.useContext(QuoteContext);\nexport const useQuoteContextState = () => useQuoteContext().state;\nexport const useVersionId = () => React.useContext(QuoteContext).state.versionId;\n\nexport const QuoteProvider = ({ children }: React.PropsWithChildren<{}>) => {\n const map = useMapContext();\n const isVendeur = useIsVendeur();\n const currentProject = useCurrentProject();\n const { version: versionId, ref: produitRef } = useQuery();\n const location = useLocation();\n\n const quoteContext = useViewState({ loadingStep: LoadingStep.Auth });\n useWindowLog(() => (window.QuoteState = quoteContext.getState));\n\n const loader = useQuoteLoadController({ updateQuote: quoteContext.update });\n useGtmMapEventController(map.state, quoteContext.state);\n\n const load = () => {\n wrapError(\n async () => {\n const state = quoteContext.getState();\n if (!state.initialized) {\n quoteContext.update({ loadingStep: LoadingStep.Version, loading: false });\n const { version, versionData } = await VersionLoader.loadVersion(versionId);\n NavigationService.replaceParams(\n EstimationUrlHelper.toQueryParam({ version: version!, ref: produitRef })\n );\n versionData.questions\n .filter((q) => q.related_step === QuestionStep.StepHabitation)\n .forEach((q) => (q.showQuestion = true));\n let questions = QuoteQuestionUtils.filterSellersQuestions(versionData.questions, isVendeur);\n questions = QuoteQuestionUtils.markFirstProduitAsFirstProduct(questions);\n\n currentProject.reset();\n\n if (location.state?.configId) {\n quoteContext.update({ loadingStep: LoadingStep.Configuration });\n\n const {\n mapState,\n stepHabitation,\n stepServices,\n stepSynthese,\n habitationQuestionsOpen,\n projetStore,\n } = await loader.loadConfiguration({ configId: location.state.configId, questions });\n\n quoteContext.update({\n versionId: version,\n loadingStep: undefined,\n versionData,\n questions,\n stepHabitation,\n stepServices,\n stepSynthese,\n projetStore,\n habitationQuestionsOpen,\n initialized: true,\n });\n\n map.update({ values: mapState, logs: { event: 'load plan from config' } });\n map.zoomToFit();\n\n //TODO à REVOIR : on a plus le chargment automatique du devis\n // const currentProjectState = currentProject.getState();\n // if (!isVendeur && mapState.roomsCompleted && currentProjectState.isUpdateAllowed) {\n // const mapState = map.getState();\n // const { bodyRequest, quotePrixContextDebugMap } = await QuoteLoadUtils.getGetQuotationDto({\n // habitationQuestions: stepHabitation.questions,\n // exportImageMap,\n // mapState,\n // versionId: version!,\n // versionData,\n // projetStore,\n // });\n\n // if (!quoteContext.getState().loadingQuotation) {\n // const handleQuotationError = (error: any): Promise => {\n // quoteContext.update({ loadingQuotation: false });\n // if (RoomHeatingTypeErrorHelper.isErrorFromRoomHeatingTypeHelper(error)) {\n // return RoomHeatingTypeErrorHelper.handleError(error);\n // } else {\n // //this.handleDeadEndError();\n // return createCustomErrorHandler(AuthHelper.isAuthenticatedAsStoreOrBOUser())(\n // error\n // );\n // }\n // };\n // await wrapError(\n // async () => {\n // quoteContext.update({ loadingQuotation: true });\n // const response = await QuotationsApi.computeQuotation(bodyRequest);\n // const quote = response.data;\n // currentProject.update({ isDirty: false });\n // quoteContext.update({\n // loadingQuotation: false,\n // quote,\n // quotePrixContextDebugMap,\n // });\n // return quote;\n // },\n // { errorHandler: handleQuotationError }\n // );\n // }\n // }\n } else {\n const stepHabitation = QuestionPrepare.toStepQuestions(questions, QuestionStep.StepHabitation);\n const stepServices = QuestionPrepare.toStepQuestions(questions, QuestionStep.StepServices);\n const stepSynthese = QuestionPrepare.toStepQuestions(questions, QuestionStep.StepSynthese);\n\n quoteContext.update({\n versionId: version,\n loadingStep: undefined,\n versionData,\n questions,\n stepHabitation,\n stepServices,\n stepSynthese,\n habitationQuestionsOpen: true,\n loading: false,\n initialized: true,\n });\n }\n }\n },\n {\n errorHandler: (loadError) => {\n quoteContext.update({ loadingStep: undefined });\n Logger.error('QUOTE initialization', loadError);\n if ((loadError as ApiError).isApiError) {\n Toast.showError({\n title: I18n.get('Toast_TitleError'),\n content: I18n.get('COMMON_ERROR_MESSAGE'),\n duration: 5000,\n });\n return Promise.resolve(true);\n }\n if ((loadError as MapError).isMapError) {\n const mapError = loadError as MapError;\n Logger.logAnalytics({\n message: MapHelper.LOAD_MAP_ERROR_MESSAGE,\n level: LogLevelType.Error,\n value: mapError.error,\n });\n Toast.showError({\n title: I18n.get('Toast_TitleError'),\n content: I18n.get('ERROR_LOADING_MAP'),\n duration: 5000,\n });\n return Promise.resolve(true);\n }\n return Promise.resolve(false);\n },\n }\n );\n };\n\n const update = (params: UpdateQuoteParams) => {\n let { quoteValues, mapValues, questionsModified, refreshLaizeCalc, mapModified, logs } = params;\n let mapState: MapContextState = { ...map.getState(), ...mapValues };\n Logger.log('QuoteProvider -> update', params);\n\n //!\\ WHEN UPDATE habitations/question produit principale\n if (quoteValues) {\n const quoteState = quoteContext.getState();\n let mapState: MapContextState = map.getState();\n const nextQuoteState = { ...quoteState, ...quoteValues };\n\n if (mapState.showFinDeParcours) {\n quoteContext.update(toUpdateGeneralQuestions(mapState, nextQuoteState, isVendeur));\n } else {\n quoteContext.update(nextQuoteState);\n }\n }\n\n if (mapValues) {\n //!\\ OCCURS WHEN UPDATE PRODUIT PRINCIPAL OR HABITATION QUESTIONS OR MAP_ITEM INFO CHANGES\n if (questionsModified || mapModified || refreshLaizeCalc) {\n const quoteState = quoteContext.getState();\n const {\n laizeProps,\n refreshLaizeCalcNeeded,\n logs: refreshLaizeCalcLogs,\n } = isRefreshLaizeCalcNeeded(mapState, quoteState, logs);\n const needComputeLaizeUpdate = Boolean(mapModified || refreshLaizeCalc || refreshLaizeCalcNeeded);\n mapState = needComputeLaizeUpdate ? map.withComputeLaize(mapState) : mapState;\n const { modified, ...updatedMapValues } = toUpdateMapItemQuestions(mapState, quoteState, isVendeur);\n const nextMapState = { ...mapState, ...updatedMapValues, laizeProps };\n map.update({\n values: nextMapState,\n logs: { ...refreshLaizeCalcLogs, mapValues, questionsModified },\n });\n if (mapState.showFinDeParcours) {\n quoteContext.update(toUpdateGeneralQuestions(nextMapState, quoteState, isVendeur));\n }\n } else {\n map.update({\n values: mapValues,\n logs: { ...logs, combineWith: 'QuoteProvider update', mapValues, questionsModified },\n });\n }\n }\n\n if (!currentProject.getState().isDirty && (mapModified || questionsModified)) {\n currentProject.update({ isDirty: true });\n }\n };\n\n const openFinDeParcours = () => {\n const mapState: MapContextState = map.getState();\n const quoteState = quoteContext.getState();\n quoteContext.update(toUpdateGeneralQuestions(mapState, quoteState, isVendeur), () => {\n map.setPanel({ values: { showFinDeParcours: true } });\n });\n };\n\n const combineMapState = (mapState: MapContextState): Partial => {\n if (!currentProject.getState().isDirty) {\n currentProject.update({ isDirty: true });\n }\n //!\\ WHEN UPDATE rooms, openings, roomItems from PANELS or map gestures\n mapState = map.withComputeLaize(mapState);\n const quoteState = quoteContext.getState();\n const { modified, ...updatedMapValues } = toUpdateMapItemQuestions(mapState, quoteState, isVendeur);\n return { ...mapState, ...updatedMapValues, showFinDeParcours: false };\n };\n\n React.useEffect(() => map.setStateCombiner({ merge: combineMapState }), [map, combineMapState]);\n\n useReady(load);\n useLoadProduitFromRef(versionId, produitRef, quoteContext.state, update);\n useInvalidQuoteIfNeeded(quoteContext.state, quoteContext.update);\n\n return (\n \n {children}\n \n );\n};\n\nconst useReady = (load: VoidFunction) => {\n //* So we wait until the MeState is ready to load versionData.\n const isAuthenticated = useSelector((state: AppState) => state.Authentication)?.isAuthenticated;\n const isMeInitialized = useMe()?.data;\n\n const isMeReady = !isAuthenticated || (isAuthenticated && isMeInitialized);\n React.useEffect(() => {\n if (isMeReady) {\n load();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMeReady]);\n\n return isMeReady;\n};\n\nconst useLoadProduitFromRef = (\n versionId: string,\n produitRef: string,\n state: EnhancedViewState,\n update: (params: UpdateQuoteParams) => void\n) => {\n React.useEffect(() => {\n if (produitRef && state.initialized) {\n update({ quoteValues: { produitRef }, logs: { event: 'from useLoadProduitFromRef', produitRef } });\n NavigationService.replaceParams(EstimationUrlHelper.toQueryParam({ version: versionId }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [produitRef, state.initialized]);\n};\n\nconst useInvalidQuoteIfNeeded = (state: Partial, updateQuote: (values: Partial) => void) => {\n const currentProject = useCurrentProject();\n React.useEffect(() => {\n if (state.quote && currentProject.state?.isDirty) {\n updateQuote({ quote: undefined });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.quote, currentProject.state?.isDirty]);\n};\n\nconst isRefreshLaizeCalcNeeded = (mapState: Partial, quoteState: Partial, logs?: any) => {\n //!\\ call computelaize if any produitPrincipal changes\n let refreshLaizeCalcNeeded = false;\n let laizeProps = mapState.laizeProps;\n\n mapState.rooms?.forEach((room) => {\n room.questionProduitPrincipal = upadateQuestionProduitPrincipalIfNeeded(\n room,\n quoteState.questions,\n quoteState.stepHabitation?.questions\n );\n });\n\n const refreshLaizeCalcRoomIds = mapState.rooms?.some((room) => {\n const produitPrincipal = room.questionProduitPrincipal?.produitValue;\n const laizeProps = mapState.laizeProps?.find((x) => x.roomIds?.some((y) => y === room.roomId));\n return produitPrincipal?.code !== laizeProps?.productCode;\n });\n if (refreshLaizeCalcRoomIds) {\n laizeProps = ProductHelper.ToArrayLaizeProps(mapState.rooms);\n logs = { ...logs, logLaizeProps: `laizeProps updated`, laizeProps };\n refreshLaizeCalcNeeded = true;\n }\n\n Logger.log('refreshLaizeCalc', { mapState, refreshLaizeCalcNeeded, laizeProps });\n return { laizeProps, refreshLaizeCalcNeeded, logs };\n};\n","import { PrixContextDebugMap } from '../../../Helpers/QuotationHelper';\nimport { QuestionItem } from '../../../Models/Questions/QuestionDto';\nimport { QuotationReplyBaseDto } from '../../../Models/Quotations/Quotations';\nimport { StoreDto } from '../../../Models/TravelExpenses/StoreDto';\nimport { VersionParametrageDto } from '../../../Models/VersionParametrages/VersionParametrage';\nimport { ContextQuestionList } from '../../../Plugins/FloorPlan/Models/IMapItem';\n\nexport enum LoadingStep {\n Auth = 'LoadingAuth',\n Version = 'LoadingVersion',\n Configuration = 'LoadingConfiguration',\n Map = 'LoadingMap',\n InitConfiguration = 'InitConfiguration',\n}\n\nexport type QuoteState = Partial<{\n loadingStep: LoadingStep;\n versionId: string;\n\n versionData: VersionParametrageDto;\n\n questions: Array; //!\\ questions filtred by seller\n produitRef: string; //!\\ use only when produit question from ref\n\n stepHabitation: ContextQuestionList;\n habitationQuestionsOpen: boolean; //* DIALOG\n\n stepServices: ContextQuestionList;\n stepSynthese: ContextQuestionList;\n\n projetStore: StoreDto;\n\n loadingQuotation: boolean;\n quote: QuotationReplyBaseDto;\n quotePrixContextDebugMap: PrixContextDebugMap;\n}>\n","import { ObjectUtils } from '../../../../Helpers/ObjectUtils';\nimport { IsStepCompletedResult, QuestionsHelper } from '../../../../Helpers/QuestionsHelper';\nimport { ProduitDto } from '../../../../Models/Questions/ProduitDto';\nimport {\n OpeningsContextPropertiesDto,\n QuestionContextType,\n QuestionItem,\n QuestionStep,\n RoomElementsContextPropertiesDto,\n} from '../../../../Models/Questions/QuestionDto';\nimport { ContextQuestionList, IMapItem } from '../../../../Plugins/FloorPlan/Models/IMapItem';\nimport { OpeningType } from '../../../../Plugins/FloorPlan/Models/IOpening';\nimport { RoomItemType } from '../../../../Plugins/FloorPlan/Models/IRoomItem';\n\n\ntype ToContextQuestionsParams = {\n step: QuestionStep;\n questions: Array;\n contextType: QuestionContextType;\n openingType?: OpeningType;\n roomItemType?: RoomItemType;\n};\n\nexport interface IsQuestionInQuestionsItemParameters {\n question: QuestionItem;\n contextType: QuestionContextType;\n openingType?: OpeningType;\n roomItemType?: RoomItemType;\n}\n\ntype VerifyIfQuestionsFinishedParams = {\n contextQuestions: ContextQuestionList,\n produitPrincipal?: ProduitDto,\n isVendeur?: boolean\n}\n\nexport interface IsStepQuestionsFinishedResult {\n firstStepPlanItemNotCompleted?: {\n item: ContextQuestionList;\n result: IsStepCompletedResult;\n };\n isStepCompleted: boolean;\n isEmpty: boolean; //pas de question visible (question respiration exclue)\n}\n\ntype SetFocusQuestionParams = { contextQuestions: ContextQuestionList, questions: QuestionItem[], focusQuestion?: QuestionItem }\n\n//* COPY OF QuoteStepPlanQuestionUtils\nexport class ContextQuestionsUtils {\n //#region //* PREPARATION QUESTIONS ITEM\n\n public static isQuestionInQuestionsItem = ({\n question,\n contextType,\n openingType,\n roomItemType,\n }: IsQuestionInQuestionsItemParameters): boolean => {\n const isQuestionWithContext = (): boolean => contextType === question.context_type;\n let questionIsInContext: boolean = false;\n if (question.openings_context_properties) {\n const openingsContext: OpeningsContextPropertiesDto = question.openings_context_properties;\n if (contextType === QuestionContextType.Openings && openingType) {\n if (openingType === OpeningType.Door) {\n questionIsInContext = isQuestionWithContext() && openingsContext.is_for_porte;\n }\n if (openingType === OpeningType.ArmoredDoor) {\n questionIsInContext = isQuestionWithContext() && openingsContext.is_for_porte_blindee;\n }\n if (openingType === OpeningType.FrontDoor) {\n questionIsInContext = isQuestionWithContext() && openingsContext.is_for_porte_entree;\n }\n if (openingType === OpeningType.FrenchDoor) {\n questionIsInContext = isQuestionWithContext() && openingsContext.is_for_porte_fenetre;\n }\n if (openingType === OpeningType.Opening) {\n questionIsInContext = isQuestionWithContext() && openingsContext.is_for_passage_ouvert;\n }\n if (openingType === OpeningType.PatioDoor) {\n questionIsInContext = isQuestionWithContext() && openingsContext.is_for_baie_vitree;\n }\n }\n } else if (question.room_elements_context_properties) {\n const roomElementsContext: RoomElementsContextPropertiesDto = question.room_elements_context_properties;\n if (contextType === QuestionContextType.RoomElements && roomItemType) {\n if (roomItemType === RoomItemType.ShowerBathtub) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_shower_bathtub;\n }\n if (roomItemType === RoomItemType.FixedFurniture) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_fixed_furniture;\n }\n if (roomItemType === RoomItemType.Cupboard) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_cupboard;\n }\n if (roomItemType === RoomItemType.KitchenFurniture) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_kitchen_furniture;\n }\n if (roomItemType === RoomItemType.Trap) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_trap;\n }\n if (roomItemType === RoomItemType.Fireplace) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_fireplace;\n }\n if (roomItemType === RoomItemType.Opening) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_opening;\n }\n if (roomItemType === RoomItemType.Stairs) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_stairs;\n }\n if (roomItemType === RoomItemType.Divider) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_divider;\n }\n if (roomItemType === RoomItemType.HeavyElement) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_heavy_element;\n }\n if (roomItemType === RoomItemType.SewerPlate) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_sewer_plate;\n }\n if (roomItemType === RoomItemType.Door) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_door;\n }\n if (roomItemType === RoomItemType.Window) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_window;\n }\n if (roomItemType === RoomItemType.UnlaidArea) {\n questionIsInContext = isQuestionWithContext() && roomElementsContext.is_for_unlaid_area;\n }\n }\n } else {\n questionIsInContext = isQuestionWithContext();\n }\n return questionIsInContext;\n };\n\n public static toContextQuestions = ({\n step,\n questions,\n contextType,\n openingType,\n roomItemType,\n }: ToContextQuestionsParams): ContextQuestionList => {\n const contextQuestions: Array = ObjectUtils.clone(\n questions.filter((question) =>\n this.isQuestionInQuestionsItem({ question, contextType, openingType, roomItemType })\n )\n );\n return { step, questions: contextQuestions };\n };\n\n public static addPreviousSelectedProductSuggestions(room: IMapItem, initialQuestionItem: QuestionItem) {\n //TODO: @mmc\n // const previousStepPlanItem = this.getPreviousStepPlanItem(stepPlanItem);\n // if (previousStepPlanItem) {\n // const previousSuggestion = previousStepPlanItem.questions?.find(\n // (q) => q.id === initialQuestionItem.id\n // )?.produitValue;\n\n // if (previousSuggestion) {\n // return {\n // ...initialQuestionItem,\n // produit_properties: {\n // ...initialQuestionItem.produit_properties,\n // have_suggestions: true,\n // },\n // produits: [\n // {\n // ...previousSuggestion,\n // suggestion: {\n // ...(previousSuggestion.suggestion ?? []),\n // description_produit: I18n.get('Quote_ProductSelect_Suggest_SameAsBefore'),\n // },\n // },\n // ...(initialQuestionItem.produits ?? []).filter((p) => p.code !== previousSuggestion.code),\n // ],\n // };\n // }\n // }\n\n return initialQuestionItem;\n }\n\n public static verifyIfQuestionsFinished({\n contextQuestions,\n produitPrincipal,\n isVendeur\n }: VerifyIfQuestionsFinishedParams): IsStepQuestionsFinishedResult {\n const isStepFinishedResult: IsStepQuestionsFinishedResult = {\n isStepCompleted: true,\n isEmpty: true,\n firstStepPlanItemNotCompleted: undefined,\n };\n\n const isFinished = (item: ContextQuestionList): IsStepCompletedResult => {\n return QuestionsHelper.isStepCompleted({\n questions: item.questions,\n produitPrincipal,\n isVendeur,\n });\n };\n\n const result = isFinished(contextQuestions);\n if (isStepFinishedResult.isEmpty && !result.isEmpty) {\n isStepFinishedResult.isEmpty = false;\n }\n if (isStepFinishedResult.isStepCompleted && !result.isStepCompleted) {\n isStepFinishedResult.isStepCompleted = false;\n }\n\n return isStepFinishedResult;\n }\n\n\n public static setFocusQuestion = ({ contextQuestions, questions, focusQuestion }: SetFocusQuestionParams) => {\n let questionsUpdated = questions;\n questions.forEach((q) => (q.focusQuestion = false));\n if (focusQuestion) {\n focusQuestion.focusQuestion = true;\n questionsUpdated = QuestionsHelper.updateQuestions(questions, focusQuestion);\n }\n contextQuestions.endQuestion = false;\n contextQuestions.isEmpty = false;\n contextQuestions.isStepCompleted = false;\n contextQuestions.questions = questionsUpdated;\n }\n}\n","import { ObjectUtils } from '../../../../Helpers/ObjectUtils';\nimport { QuestionContext, QuestionContextHelper } from '../../../../Helpers/QuestionContextHelper';\nimport { QuestionsHelper } from '../../../../Helpers/QuestionsHelper';\nimport { StringKey } from '../../../../Locales/fr';\nimport { I18n } from '../../../../Locales/I18nService';\nimport { QuestionStep } from '../../../../Models/Questions/QuestionDto';\nimport { FlooringDirection } from '../../../../Plugins/FloorPlan/Components/Laizes/Laize';\nimport { IMapItem, YesOrNo } from '../../../../Plugins/FloorPlan/Models/IMapItem';\nimport { IOpening } from '../../../../Plugins/FloorPlan/Models/IOpening';\nimport { IRoom, RoomType } from '../../../../Plugins/FloorPlan/Models/IRoom';\nimport { IRoomItem } from '../../../../Plugins/FloorPlan/Models/IRoomItem';\n\nexport class QuestionContextUtils {\n public static createRoomContext = (\n item: IRoom,\n flooringDirection?: FlooringDirection,\n fromContext: QuestionContext = {}\n ): QuestionContext => {\n const contextFromPreviousStep = ObjectUtils.clone(fromContext);\n\n contextFromPreviousStep.revetement_type = item.type;\n contextFromPreviousStep.connection_needed = item.raccord_length ? item.raccord_length !== 0 : false;\n contextFromPreviousStep.room_should_lay_plinthes_inside_room_element = item.should_lay_plinthes_inside_room_element;\n\n if (item.type === RoomType.Sol) {\n contextFromPreviousStep.localisation_piece = item.localisation;\n contextFromPreviousStep.room_type = item.roomType;\n contextFromPreviousStep.room_floor = QuestionContextHelper.transformIntoLongFloorName(item.roomFloor);\n contextFromPreviousStep.has_room_existing_flooring = item.roomExistingFlooring;\n contextFromPreviousStep.room_existing_floor_type = item.roomExistingFloorType;\n contextFromPreviousStep.flooring_direction = flooringDirection;\n contextFromPreviousStep.room_length = item.room_length;\n contextFromPreviousStep.room_surface = item.surface_area;\n\n if (item.roomHeating === YesOrNo.No) {\n contextFromPreviousStep.room_heating_type = I18n.get('RoomItemDialog_RoomHeatingTypeList_PasDeChauffage');\n } else if (item.roomHeating === YesOrNo.Yes) {\n contextFromPreviousStep.room_heating_type = item.roomHeatingType;\n }\n }\n if (item.type === RoomType.Wall) {\n contextFromPreviousStep.wall_type = item.roomType;\n contextFromPreviousStep.wall_floor = QuestionContextHelper.transformIntoLongFloorName(item.roomFloor);\n contextFromPreviousStep.room_wall = item.roomWall;\n contextFromPreviousStep.has_wall_existing_flooring = item.roomExistingFlooring;\n contextFromPreviousStep.wall_existing_floor_type = item.roomExistingFloorType;\n contextFromPreviousStep.wall_length = item.room_length;\n contextFromPreviousStep.wall_surface = item.surface_area;\n }\n\n contextFromPreviousStep.contournements = {\n //* SOL\n pipe: item.contournements?.Pipe,\n mounted_element: item.contournements?.MountedElement,\n mounted_radiator: item.contournements?.MountedRadiator,\n pillar: item.contournements?.Pillar,\n stonewall: item.contournements?.Stonewall,\n stairs: item.contournements?.Stairs,\n railing: item.contournements?.Railing,\n tree: item.contournements?.Tree,\n //* WALL\n wall_pipe: item.contournements?.WallPipe,\n wall_pipe_hole: item.contournements?.WallPipeHole,\n electric_equipment: item.contournements?.ElectricEquipment,\n wall_pillar: item.contournements?.WallPillar,\n hotspot: item.contournements?.Hotspot,\n };\n return contextFromPreviousStep;\n };\n\n public static createOpeningContext = (\n opening: IOpening,\n room: IRoom,\n flooringDirection?: FlooringDirection\n ): QuestionContext => {\n const contextFromPreviousStep: QuestionContext = {};\n contextFromPreviousStep.flooring_direction = flooringDirection;\n contextFromPreviousStep.are_rooms_contiguous = Boolean(opening.contiguous_between_rooms?.length);\n contextFromPreviousStep.opening_type_localized = I18n.get(`Floorplan_Opening_${opening.type}` as StringKey);\n contextFromPreviousStep.opening_dimension_centimetre = opening.size;\n const roomContext = this.getLastStepContext(room, QuestionStep.StepFinitions);\n return QuestionContextHelper.mergeContext(roomContext, contextFromPreviousStep);\n };\n\n public static createRoomItemContext = (\n roomItem: IRoomItem,\n room: IRoom,\n flooringDirection?: FlooringDirection\n ): QuestionContext => {\n const contextFromPreviousStep: QuestionContext = {};\n contextFromPreviousStep.room_element_type_localized = I18n.get(\n `Floorplan_RoomElement_${roomItem.type}` as StringKey\n );\n contextFromPreviousStep.flooring_direction = flooringDirection;\n contextFromPreviousStep.should_lay_flooring_inside = roomItem.putFlooring ?? QuestionContextHelper.NOT_SET;\n contextFromPreviousStep.should_lay_plinthes_inside = roomItem.putPlinthes ?? QuestionContextHelper.NOT_SET;\n const roomContext = this.getLastStepContext(room, QuestionStep.StepFinitions);\n return QuestionContextHelper.mergeContext(roomContext, contextFromPreviousStep);\n };\n\n public static getLastStepContext = (item: IMapItem, step: QuestionStep): QuestionContext => {\n if (step === QuestionStep.StepFinitions) {\n return (\n QuestionsHelper.getLastShownQuestion(item.questionsFinition?.questions)?.lastShownQuestion?.context ||\n this.getLastStepContext(item, QuestionStep.StepPreparation)\n );\n }\n if (step === QuestionStep.StepPreparation) {\n return (\n QuestionsHelper.getLastShownQuestion(item.questionsPreparation?.questions)?.lastShownQuestion\n ?.context || this.getLastStepContext(item, QuestionStep.StepSupport)\n );\n }\n if (step === QuestionStep.StepSupport) {\n return (\n QuestionsHelper.getLastShownQuestion(item.questionsSupport?.questions)?.lastShownQuestion?.context ||\n this.getLastStepContext(item, QuestionStep.StepPose)\n );\n }\n if (step === QuestionStep.StepPose) {\n return (\n QuestionsHelper.getLastShownQuestion(item.questionsPose?.questions)?.lastShownQuestion?.context ||\n this.getLastStepContext(item, QuestionStep.Infos)\n );\n }\n return item.questionsBaseContext || {};\n };\n}\n","import { styled } from '@material-ui/styles';\nimport React, { CSSProperties } from 'react';\nimport { I18n } from '../../../../Locales/I18nService';\nimport { StringKey } from '../../../../Locales/fr';\nimport { Assets } from '../../../assets/Assets';\n\nexport enum TagType {\n ToDo = 'ToDo',\n Done = 'Done',\n Error = 'Error',\n}\ntype TagLabelProps = { type: TagType; style?: CSSProperties };\n\nexport const TagLabel = ({ type, style }: TagLabelProps) => {\n const tagStyles = useTagStyle(type);\n return (\n \n {type === TagType.Error && }\n {I18n.get(`TagType_${type}` as StringKey)}\n \n );\n};\n\nconst useTagStyle = (type: TagType) => {\n const style: CSSProperties = {};\n switch (type) {\n case TagType.ToDo:\n style.color = '#000000';\n style.background = '#E5A033';\n break;\n case TagType.Done:\n style.color = 'black';\n style.background = '#46DBA9';\n break;\n case TagType.Error:\n style.color = '#FF453A';\n style.background = '#ff453a19';\n break;\n }\n return style;\n};\n\nconst Container = styled('div')({\n height: 21,\n minWidth: 80,\n fontWeight: 700,\n fontSize: 9,\n lineHeight: '12px',\n textTransform: 'uppercase',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n});\n\nconst Text = styled('span')({\n paddingTop: 1,\n});\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end',\n flex: '0 0 auto'\n },\n\n /* Styles applied to the root element if `disableSpacing={false}`. */\n spacing: {\n '& > :not(:first-child)': {\n marginLeft: 8\n }\n }\n};\nvar DialogActions = /*#__PURE__*/React.forwardRef(function DialogActions(props, ref) {\n var _props$disableSpacing = props.disableSpacing,\n disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,\n classes = props.classes,\n className = props.className,\n other = _objectWithoutProperties(props, [\"disableSpacing\", \"classes\", \"className\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, !disableSpacing && classes.spacing),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogActions.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the actions do not have additional margin.\n */\n disableSpacing: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogActions'\n})(DialogActions);","import './CreateOrUpdateProjectDialog.scss';\n\nimport { Button, DialogActions, styled } from '@material-ui/core';\nimport React, { CSSProperties } from 'react';\n\nimport { ButtonVariant, CustomButton } from '../../CustomButton/CustomButton';\nimport { CustomTextField } from '../../CustomTextField/CustomTextField';\nimport { Assets } from '../../../../assets/Assets';\nimport classNames from 'classnames';\nimport { FormattedMessage, IntlShape, useIntl } from 'react-intl';\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport { BaseDialog } from '../../../../../Plugins/FloorPlan/Widgets/BaseDialog';\n\ninterface CreateOrUpdateProjectDialogRadioButtonProps {\n title: React.ReactNode;\n selected: boolean;\n onBtnClick: () => void;\n withMarginTop?: boolean;\n}\n\nconst OptionRadioButton = ({\n title,\n selected,\n onBtnClick,\n withMarginTop,\n}: CreateOrUpdateProjectDialogRadioButtonProps) => {\n return (\n \n
\n {selected ? : }\n
\n
{title}
\n \n );\n};\n\nexport interface CreateOrUpdateProjectDialogProps {\n onClose(): void;\n cancelDisabled?: boolean;\n\n currentProjectName: string;\n updateCurrentProjectAction(setSaving: (saving: boolean) => void): void;\n createNewProjectAction: (text: string, setSaving: (saving: boolean) => void) => void;\n}\n\nenum CreateOrUpdateProject {\n CREATE,\n UPDATE,\n}\n\nexport const CreateOrUpdateProjectDialog = ({\n onClose,\n cancelDisabled,\n currentProjectName,\n updateCurrentProjectAction,\n createNewProjectAction,\n}: CreateOrUpdateProjectDialogProps) => {\n const i18n: IntlShape = useIntl();\n\n const [option, setOption] = React.useState(undefined);\n const [inputText, setInputText] = React.useState('');\n\n const [saving, setIsSaving] = React.useState();\n const setSaving = (saving: boolean) => setIsSaving(saving);\n\n const isValidateEnabled = (): boolean => {\n return (\n (option === CreateOrUpdateProject.CREATE && Boolean(inputText)) || option === CreateOrUpdateProject.UPDATE\n );\n };\n\n const onValidateAction = (): void => {\n if (option === CreateOrUpdateProject.UPDATE) {\n updateCurrentProjectAction(setSaving);\n } else if (option === CreateOrUpdateProject.CREATE && inputText) {\n createNewProjectAction(inputText, setSaving);\n }\n };\n\n const onSubmit = (e?: React.FormEvent | GestureEvent) => {\n e?.preventDefault();\n onValidateAction();\n };\n\n const onCloseDialog = () => {\n if (!saving) {\n onClose();\n }\n };\n\n return (\n \n
\n
\n \n
\n
\n \n \n {currentProjectName}\n \n ),\n }}\n />\n
\n }\n selected={option === CreateOrUpdateProject.UPDATE}\n onBtnClick={() => setOption(CreateOrUpdateProject.UPDATE)}\n />\n }\n selected={option === CreateOrUpdateProject.CREATE}\n onBtnClick={() => setOption(CreateOrUpdateProject.CREATE)}\n withMarginTop\n />\n
\n {option === CreateOrUpdateProject.CREATE && (\n \n \n \n )}\n \n }\n onClick={onSubmit}\n classes={{ root: 'CreateOrUpdateProjectDialog-btn' }}\n disabled={!isValidateEnabled() || saving}\n isBusy={saving}\n />\n \n \n \n );\n};\n\nconst Input: CSSProperties = {\n borderRadius: 0,\n height: 44,\n padding: 0,\n paddingLeft: 16,\n paddingRight: 16,\n fontFamily: 'Avenir',\n fontWeight: 400,\n fontSize: 14,\n};\n\nconst InputLabelContainer = styled('div')({\n marginTop: 16,\n '@media (min-width: 600px)': { paddingLeft: 38 },\n});\n","import './CreateProjectDialog.scss';\n\nimport { DialogActions } from '@material-ui/core';\nimport React, { CSSProperties } from 'react';\nimport { FormattedMessage, IntlShape, useIntl } from 'react-intl';\n\nimport { ButtonVariant, CustomButton } from '../../CustomButton/CustomButton';\nimport { CustomTextField } from '../../CustomTextField/CustomTextField';\nimport { GestureEvent } from '../../../../../Events/withEvent';\nimport { BaseDialog } from '../../../../../Plugins/FloorPlan/Widgets/BaseDialog';\n\nexport interface CreateProjectDialogProps {\n open: boolean;\n validateAction: (text: string, setSaving: (saving: boolean) => void) => void;\n onClose(): void;\n cancelDisabled?: boolean;\n}\n\nexport const CreateProjectDialog = ({ open, validateAction, onClose, cancelDisabled }: CreateProjectDialogProps) => {\n const i18n: IntlShape = useIntl();\n\n const [inputText, setInputText] = React.useState('');\n\n const [saving, setIsSaving] = React.useState();\n const setSaving = (saving: boolean) => setIsSaving(saving);\n\n const onSubmit = (e?: React.FormEvent | GestureEvent) => {\n e?.preventDefault();\n if (inputText) {\n validateAction(inputText, setSaving);\n }\n };\n\n const onCloseDialog = () => {\n if (!saving) {\n onClose();\n }\n };\n\n return (\n \n
\n }\n placeholder={i18n.formatMessage({ id: 'CreateProjectDialog_InputPlaceholder' })}\n value={inputText}\n onChange={setInputText}\n autoFocus\n />\n \n }\n onClick={onSubmit}\n classes={{ root: 'CreateProjectDialog-btn' }}\n disabled={!inputText || saving}\n isBusy={saving}\n />\n \n \n \n );\n};\n\nconst Input: CSSProperties = {\n borderRadius: 0,\n height: 44,\n padding: 0,\n paddingLeft: 16,\n paddingRight: 16,\n border: '1px solid #8E8E93',\n background: '#fff',\n fontFamily: 'Avenir',\n fontWeight: 400,\n fontSize: 14,\n};\nconst Label: CSSProperties = {\n fontFamily: 'Avenir',\n fontWeight: 350,\n fontSize: 16,\n};\n","import { IconButton, makeStyles } from '@material-ui/core';\nimport Dialog from '@material-ui/core/Dialog/Dialog';\nimport { styled } from '@material-ui/styles';\nimport React from 'react';\n\nimport { Constants } from '../../../Constants';\nimport { Assets } from '../../assets/Assets';\nimport { useStmacLoginDialogController } from './StmacLoginDialogController';\nimport { MOBILE_LIMIT } from 'Web/Context/PlatformContext/PlatformContext';\nimport { Stack } from 'Web/Components/Widgets/Stack';\nimport { GlendaleTitle } from 'Web/Components/Widgets/Typographies';\n\nexport interface StmacLoginDialogProps {\n open: boolean;\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n onConnected?: VoidFunction;\n onClose?: VoidFunction;\n closeDisabled?: boolean;\n}\n\nexport const StmacLoginDialog = ({\n open,\n title,\n subtitle,\n onConnected,\n onClose,\n closeDisabled,\n}: StmacLoginDialogProps) => {\n useStmacLoginDialogController({ onConnected });\n\n const paperClasses = withPaperClasses();\n\n return (\n \n \n {!closeDisabled && (\n \n \n \n )}\n {title && subtitle && (\n
\n \n \n {title}\n {subtitle}\n \n
\n )}\n ';\n\n var script = '\\n (function(w,d,s,l,i){w[l]=w[l]||[];\\n w[l].push({\\'gtm.start\\': new Date().getTime(),event:\\'gtm.js\\', ' + JSON.stringify(events).slice(1, -1) + '});\\n var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';\\n j.async=true;j.src=\\'https://www.googletagmanager.com/gtm.js?id=\\'+i+dl+\\'' + gtm_auth + gtm_preview + '>m_cookies_win=x\\';\\n f.parentNode.insertBefore(j,f);\\n })(window,document,\\'script\\',\\'' + dataLayerName + '\\',\\'' + id + '\\');';\n\n var dataLayerVar = this.dataLayer(dataLayer, dataLayerName);\n\n return {\n iframe: iframe,\n script: script,\n dataLayerVar: dataLayerVar\n };\n },\n dataLayer: function dataLayer(_dataLayer, dataLayerName) {\n return '\\n window.' + dataLayerName + ' = window.' + dataLayerName + ' || [];\\n window.' + dataLayerName + '.push(' + JSON.stringify(_dataLayer) + ')';\n }\n};\n\nmodule.exports = Snippets;","'use strict';\n\nvar _Snippets = require('./Snippets');\n\nvar _Snippets2 = _interopRequireDefault(_Snippets);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TagManager = {\n dataScript: function dataScript(dataLayer) {\n var script = document.createElement('script');\n script.innerHTML = dataLayer;\n return script;\n },\n gtm: function gtm(args) {\n var snippets = _Snippets2.default.tags(args);\n\n var noScript = function noScript() {\n var noscript = document.createElement('noscript');\n noscript.innerHTML = snippets.iframe;\n return noscript;\n };\n\n var script = function script() {\n var script = document.createElement('script');\n script.innerHTML = snippets.script;\n return script;\n };\n\n var dataScript = this.dataScript(snippets.dataLayerVar);\n\n return {\n noScript: noScript,\n script: script,\n dataScript: dataScript\n };\n },\n initialize: function initialize(_ref) {\n var gtmId = _ref.gtmId,\n _ref$events = _ref.events,\n events = _ref$events === undefined ? {} : _ref$events,\n dataLayer = _ref.dataLayer,\n _ref$dataLayerName = _ref.dataLayerName,\n dataLayerName = _ref$dataLayerName === undefined ? 'dataLayer' : _ref$dataLayerName,\n _ref$auth = _ref.auth,\n auth = _ref$auth === undefined ? '' : _ref$auth,\n _ref$preview = _ref.preview,\n preview = _ref$preview === undefined ? '' : _ref$preview;\n\n var gtm = this.gtm({\n id: gtmId,\n events: events,\n dataLayer: dataLayer || undefined,\n dataLayerName: dataLayerName,\n auth: auth,\n preview: preview\n });\n if (dataLayer) document.head.appendChild(gtm.dataScript);\n document.head.insertBefore(gtm.script(), document.head.childNodes[0]);\n document.body.insertBefore(gtm.noScript(), document.body.childNodes[0]);\n },\n dataLayer: function dataLayer(_ref2) {\n var _dataLayer = _ref2.dataLayer,\n _ref2$dataLayerName = _ref2.dataLayerName,\n dataLayerName = _ref2$dataLayerName === undefined ? 'dataLayer' : _ref2$dataLayerName;\n\n if (window[dataLayerName]) return window[dataLayerName].push(_dataLayer);\n var snippets = _Snippets2.default.dataLayer(_dataLayer, dataLayerName);\n var dataScript = this.dataScript(snippets);\n document.head.insertBefore(dataScript, document.head.childNodes[0]);\n }\n};\n\nmodule.exports = TagManager;","'use strict';\n\nvar _TagManager = require('./TagManager');\n\nvar _TagManager2 = _interopRequireDefault(_TagManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = _TagManager2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar warn = function warn(s) {\n console.warn('[react-gtm]', s);\n};\n\nexports.default = warn;","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"formatDate\"] = \"FormattedDate\";\n DisplayName[\"formatTime\"] = \"FormattedTime\";\n DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n DisplayName[\"formatList\"] = \"FormattedList\";\n // Note that this DisplayName is the locale display name, not to be confused with\n // the name of the enum, which is for React component display name in dev tools.\n DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport var FormattedNumberParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatNumberToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport var FormattedListParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n return children(intl.formatListToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n var ComponentParts = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n var formattedParts = name === 'formatDate'\n ? intl.formatDateToParts(date, formatProps)\n : intl.formatTimeToParts(date, formatProps);\n return children(formattedParts);\n };\n ComponentParts.displayName = DisplayNameParts[name];\n return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n var Component = function (props) {\n var intl = useIntl();\n var value = props.value, children = props.children, formatProps = __rest(props\n // TODO: fix TS type definition for localeMatcher upstream\n , [\"value\", \"children\"]);\n // TODO: fix TS type definition for localeMatcher upstream\n var formattedValue = intl[name](value, formatProps);\n if (typeof children === 'function') {\n return children(formattedValue);\n }\n var Text = intl.textComponent || React.Fragment;\n return React.createElement(Text, null, formattedValue);\n };\n Component.displayName = DisplayName[name];\n return Component;\n}\n","import { createFormattedComponent, createFormattedDateTimePartsComponent, } from './src/components/createFormattedComponent';\nimport injectIntl, { Provider as RawIntlProvider, Context as IntlContext, } from './src/components/injectIntl';\nimport useIntl from './src/components/useIntl';\nimport IntlProvider, { createIntl } from './src/components/provider';\nimport FormattedRelativeTime from './src/components/relative';\nimport FormattedPlural from './src/components/plural';\nimport FormattedMessage from './src/components/message';\nimport FormattedDateTimeRange from './src/components/dateTimeRange';\nexport { FormattedDateTimeRange, FormattedMessage, FormattedPlural, FormattedRelativeTime, IntlContext, IntlProvider, RawIntlProvider, createIntl, injectIntl, useIntl, };\nexport { createIntlCache, UnsupportedFormatterError, InvalidConfigError, MissingDataError, MessageFormatError, MissingTranslationError, IntlErrorCode as ReactIntlErrorCode, IntlError as ReactIntlError, } from '@formatjs/intl';\nexport function defineMessages(msgs) {\n return msgs;\n}\nexport function defineMessage(msg) {\n return msg;\n}\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./src/types').CustomFormatConfig`\nexport var FormattedDate = createFormattedComponent('formatDate');\nexport var FormattedTime = createFormattedComponent('formatTime');\nexport var FormattedNumber = createFormattedComponent('formatNumber');\nexport var FormattedList = createFormattedComponent('formatList');\nexport var FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport var FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport var FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts, FormattedListParts, } from './src/components/createFormattedComponent';\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nvar IntlContext = React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nimport { shallowEqual } from '../utils';\nfunction areEqual(prevProps, nextProps) {\n var values = prevProps.values, otherProps = __rest(prevProps, [\"values\"]);\n var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n return (shallowEqual(nextValues, values) &&\n shallowEqual(otherProps, nextOtherProps));\n}\nfunction FormattedMessage(props) {\n var intl = useIntl();\n var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n var id = props.id, description = props.description, defaultMessage = props.defaultMessage, values = props.values, children = props.children, _b = props.tagName, Component = _b === void 0 ? Text : _b, ignoreTag = props.ignoreTag;\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var nodes = formatMessage(descriptor, values, {\n ignoreTag: ignoreTag,\n });\n if (typeof children === 'function') {\n return children(Array.isArray(nodes) ? nodes : [nodes]);\n }\n if (Component) {\n return React.createElement(Component, null, React.Children.toArray(nodes));\n }\n return React.createElement(React.Fragment, null, nodes);\n}\nFormattedMessage.displayName = 'FormattedMessage';\nvar MemoizedFormattedMessage = React.memo(FormattedMessage, areEqual);\nMemoizedFormattedMessage.displayName = 'MemoizedFormattedMessage';\nexport default MemoizedFormattedMessage;\n","import * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n var intl = React.useContext(Context);\n invariantIntlContext(intl);\n return intl;\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.reactJsonView=t(require(\"react\")):e.reactJsonView=t(e.React)}(this,(function(e){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var r=t[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(a,r,function(t){return e[t]}.bind(null,r));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=48)}([function(t,n){t.exports=e},function(e,t){var n=e.exports={version:\"2.6.12\"};\"number\"==typeof __e&&(__e=n)},function(e,t,n){var a=n(26)(\"wks\"),r=n(17),o=n(3).Symbol,i=\"function\"==typeof o;(e.exports=function(e){return a[e]||(a[e]=i&&o[e]||(i?o:r)(\"Symbol.\"+e))}).store=a},function(e,t){var n=e.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(e,t,n){e.exports=!n(8)((function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a}))},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var a=n(7),r=n(16);e.exports=n(4)?function(e,t,n){return a.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var a=n(10),r=n(35),o=n(23),i=Object.defineProperty;t.f=n(4)?Object.defineProperty:function(e,t,n){if(a(e),t=o(t,!0),a(n),r)try{return i(e,t,n)}catch(e){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(e[t]=n.value),e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var a=n(40),r=n(22);e.exports=function(e){return a(r(e))}},function(e,t,n){var a=n(11);e.exports=function(e){if(!a(e))throw TypeError(e+\" is not an object!\");return e}},function(e,t){e.exports=function(e){return\"object\"==typeof e?null!==e:\"function\"==typeof e}},function(e,t){e.exports={}},function(e,t,n){var a=n(39),r=n(27);e.exports=Object.keys||function(e){return a(e,r)}},function(e,t){e.exports=!0},function(e,t,n){var a=n(3),r=n(1),o=n(53),i=n(6),s=n(5),c=function(e,t,n){var l,u,f,p=e&c.F,d=e&c.G,b=e&c.S,h=e&c.P,v=e&c.B,m=e&c.W,y=d?r:r[t]||(r[t]={}),g=y.prototype,E=d?a:b?a[t]:(a[t]||{}).prototype;for(l in d&&(n=t),n)(u=!p&&E&&void 0!==E[l])&&s(y,l)||(f=u?E[l]:n[l],y[l]=d&&\"function\"!=typeof E[l]?n[l]:v&&u?o(f,a):m&&E[l]==f?function(e){var t=function(t,n,a){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,a)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):h&&\"function\"==typeof f?o(Function.call,f):f,h&&((y.virtual||(y.virtual={}))[l]=f,e&c.R&&g&&!g[l]&&i(g,l,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var n=0,a=Math.random();e.exports=function(e){return\"Symbol(\".concat(void 0===e?\"\":e,\")_\",(++n+a).toString(36))}},function(e,t,n){var a=n(22);e.exports=function(e){return Object(a(e))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){\"use strict\";var a=n(52)(!0);n(34)(String,\"String\",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=a(t,n),this._i+=e.length,{value:e,done:!1})}))},function(e,t){var n=Math.ceil,a=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?a:n)(e)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError(\"Can't call method on \"+e);return e}},function(e,t,n){var a=n(11);e.exports=function(e,t){if(!a(e))return e;var n,r;if(t&&\"function\"==typeof(n=e.toString)&&!a(r=n.call(e)))return r;if(\"function\"==typeof(n=e.valueOf)&&!a(r=n.call(e)))return r;if(!t&&\"function\"==typeof(n=e.toString)&&!a(r=n.call(e)))return r;throw TypeError(\"Can't convert object to primitive value\")}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var a=n(26)(\"keys\"),r=n(17);e.exports=function(e){return a[e]||(a[e]=r(e))}},function(e,t,n){var a=n(1),r=n(3),o=r[\"__core-js_shared__\"]||(r[\"__core-js_shared__\"]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})(\"versions\",[]).push({version:a.version,mode:n(14)?\"pure\":\"global\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})},function(e,t){e.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(e,t,n){var a=n(7).f,r=n(5),o=n(2)(\"toStringTag\");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,o)&&a(e,o,{configurable:!0,value:t})}},function(e,t,n){n(62);for(var a=n(3),r=n(6),o=n(12),i=n(2)(\"toStringTag\"),s=\"CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList\".split(\",\"),c=0;cdocument.F=Object<\\/script>\"),e.close(),c=e.F;a--;)delete c.prototype[o[a]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=a(e),n=new s,s.prototype=null,n[i]=e):n=c(),void 0===t?n:r(n,t)}},function(e,t,n){var a=n(5),r=n(9),o=n(57)(!1),i=n(25)(\"IE_PROTO\");e.exports=function(e,t){var n,s=r(e),c=0,l=[];for(n in s)n!=i&&a(s,n)&&l.push(n);for(;t.length>c;)a(s,n=t[c++])&&(~o(l,n)||l.push(n));return l}},function(e,t,n){var a=n(24);e.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(e){return\"String\"==a(e)?e.split(\"\"):Object(e)}},function(e,t,n){var a=n(39),r=n(27).concat(\"length\",\"prototype\");t.f=Object.getOwnPropertyNames||function(e){return a(e,r)}},function(e,t,n){var a=n(24),r=n(2)(\"toStringTag\"),o=\"Arguments\"==a(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?\"Undefined\":null===e?\"Null\":\"string\"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),r))?n:o?a(t):\"Object\"==(i=a(t))&&\"function\"==typeof t.callee?\"Arguments\":i}},function(e,t){var n;n=function(){return this}();try{n=n||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(n=window)}e.exports=n},function(e,t){var n=/-?\\d+(\\.\\d+)?%?/g;e.exports=function(e){return e.match(n)}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getBase16Theme=t.createStyling=t.invertTheme=void 0;var a=d(n(49)),r=d(n(76)),o=d(n(81)),i=d(n(89)),s=d(n(93)),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(94)),l=d(n(132)),u=d(n(133)),f=d(n(138)),p=n(139);function d(e){return e&&e.__esModule?e:{default:e}}var b=c.default,h=(0,i.default)(b),v=(0,f.default)(u.default,p.rgb2yuv,(function(e){var t,n=(0,o.default)(e,3),a=n[0],r=n[1],i=n[2];return[(t=a,t<.25?1:t<.5?.9-t:1.1-t),r,i]}),p.yuv2rgb,l.default),m=function(e){return function(t){return{className:[t.className,e.className].filter(Boolean).join(\" \"),style:(0,r.default)({},t.style||{},e.style||{})}}},y=function(e,t){var n=(0,i.default)(t);for(var o in e)-1===n.indexOf(o)&&n.push(o);return n.reduce((function(n,o){return n[o]=function(e,t){if(void 0===e)return t;if(void 0===t)return e;var n=void 0===e?\"undefined\":(0,a.default)(e),o=void 0===t?\"undefined\":(0,a.default)(t);switch(n){case\"string\":switch(o){case\"string\":return[t,e].filter(Boolean).join(\" \");case\"object\":return m({className:e,style:t});case\"function\":return function(n){for(var a=arguments.length,r=Array(a>1?a-1:0),o=1;o1?a-1:0),o=1;o1?a-1:0),o=1;o1?a-1:0),o=1;o1?a-1:0),o=1;o2?n-2:0),s=2;s3?t-3:0),a=3;a1&&void 0!==arguments[1]?arguments[1]:{},c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},l=o.defaultBase16,u=void 0===l?b:l,f=o.base16Themes,p=void 0===f?null:f,d=j(c,p);d&&(c=(0,r.default)({},d,c));var v=h.reduce((function(e,t){return e[t]=c[t]||u[t],e}),{}),m=(0,i.default)(c).reduce((function(e,t){return-1===h.indexOf(t)?(e[t]=c[t],e):e}),{}),E=e(v),x=y(m,E);return(0,s.default)(g,2).apply(void 0,[x].concat(n))}),3),t.getBase16Theme=function(e,t){if(e&&e.extend&&(e=e.extend),\"string\"==typeof e){var n=e.split(\":\"),a=(0,o.default)(n,2),r=a[0],i=a[1];e=(t||{})[r]||c[r],\"inverted\"===i&&(e=E(e))}return e&&e.hasOwnProperty(\"base00\")?e:void 0})},function(e,t,n){\"use strict\";var a,r=\"object\"==typeof Reflect?Reflect:null,o=r&&\"function\"==typeof r.apply?r.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};a=r&&\"function\"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,e.exports.once=function(e,t){return new Promise((function(n,a){function r(){void 0!==o&&e.removeListener(\"error\",o),n([].slice.call(arguments))}var o;\"error\"!==t&&(o=function(n){e.removeListener(t,r),a(n)},e.once(\"error\",o)),e.once(t,r)}))},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function l(e){if(\"function\"!=typeof e)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function f(e,t,n,a){var r,o,i,s;if(l(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit(\"newListener\",t,n.listener?n.listener:n),o=e._events),i=o[t]),void 0===i)i=o[t]=n,++e._eventsCount;else if(\"function\"==typeof i?i=o[t]=a?[n,i]:[i,n]:a?i.unshift(n):i.push(n),(r=u(e))>0&&i.length>r&&!i.warned){i.warned=!0;var c=new Error(\"Possible EventEmitter memory leak detected. \"+i.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");c.name=\"MaxListenersExceededWarning\",c.emitter=e,c.type=t,c.count=i.length,s=c,console&&console.warn&&console.warn(s)}return e}function p(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(e,t,n){var a={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=p.bind(a);return r.listener=n,a.wrapFn=r,r}function b(e,t,n){var a=e._events;if(void 0===a)return[];var r=a[t];return void 0===r?[]:\"function\"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(i=t[0]),i instanceof Error)throw i;var s=new Error(\"Unhandled error.\"+(i?\" (\"+i.message+\")\":\"\"));throw s.context=i,s}var c=r[e];if(void 0===c)return!1;if(\"function\"==typeof c)o(c,this,t);else{var l=c.length,u=v(c,l);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){i=n[o].listener,r=o;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1=0;a--)this.removeListener(e,t[a]);return this},s.prototype.listeners=function(e){return b(this,e,!0)},s.prototype.rawListeners=function(e){return b(this,e,!1)},s.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},s.prototype.listenerCount=h,s.prototype.eventNames=function(){return this._eventsCount>0?a(this._events):[]}},function(e,t,n){e.exports.Dispatcher=n(140)},function(e,t,n){e.exports=n(142)},function(e,t,n){\"use strict\";t.__esModule=!0;var a=i(n(50)),r=i(n(65)),o=\"function\"==typeof r.default&&\"symbol\"==typeof a.default?function(e){return typeof e}:function(e){return e&&\"function\"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?\"symbol\":typeof e};function i(e){return e&&e.__esModule?e:{default:e}}t.default=\"function\"==typeof r.default&&\"symbol\"===o(a.default)?function(e){return void 0===e?\"undefined\":o(e)}:function(e){return e&&\"function\"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?\"symbol\":void 0===e?\"undefined\":o(e)}},function(e,t,n){e.exports={default:n(51),__esModule:!0}},function(e,t,n){n(20),n(29),e.exports=n(30).f(\"iterator\")},function(e,t,n){var a=n(21),r=n(22);e.exports=function(e){return function(t,n){var o,i,s=String(r(t)),c=a(n),l=s.length;return c<0||c>=l?e?\"\":void 0:(o=s.charCodeAt(c))<55296||o>56319||c+1===l||(i=s.charCodeAt(c+1))<56320||i>57343?e?s.charAt(c):o:e?s.slice(c,c+2):i-56320+(o-55296<<10)+65536}}},function(e,t,n){var a=n(54);e.exports=function(e,t,n){if(a(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,a){return e.call(t,n,a)};case 3:return function(n,a,r){return e.call(t,n,a,r)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if(\"function\"!=typeof e)throw TypeError(e+\" is not a function!\");return e}},function(e,t,n){\"use strict\";var a=n(38),r=n(16),o=n(28),i={};n(6)(i,n(2)(\"iterator\"),(function(){return this})),e.exports=function(e,t,n){e.prototype=a(i,{next:r(1,n)}),o(e,t+\" Iterator\")}},function(e,t,n){var a=n(7),r=n(10),o=n(13);e.exports=n(4)?Object.defineProperties:function(e,t){r(e);for(var n,i=o(t),s=i.length,c=0;s>c;)a.f(e,n=i[c++],t[n]);return e}},function(e,t,n){var a=n(9),r=n(58),o=n(59);e.exports=function(e){return function(t,n,i){var s,c=a(t),l=r(c.length),u=o(i,l);if(e&&n!=n){for(;l>u;)if((s=c[u++])!=s)return!0}else for(;l>u;u++)if((e||u in c)&&c[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var a=n(21),r=Math.min;e.exports=function(e){return e>0?r(a(e),9007199254740991):0}},function(e,t,n){var a=n(21),r=Math.max,o=Math.min;e.exports=function(e,t){return(e=a(e))<0?r(e+t,0):o(e,t)}},function(e,t,n){var a=n(3).document;e.exports=a&&a.documentElement},function(e,t,n){var a=n(5),r=n(18),o=n(25)(\"IE_PROTO\"),i=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),a(e,o)?e[o]:\"function\"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?i:null}},function(e,t,n){\"use strict\";var a=n(63),r=n(64),o=n(12),i=n(9);e.exports=n(34)(Array,\"Array\",(function(e,t){this._t=i(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,r(1)):r(0,\"keys\"==t?n:\"values\"==t?e[n]:[n,e[n]])}),\"values\"),o.Arguments=o.Array,a(\"keys\"),a(\"values\"),a(\"entries\")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){e.exports={default:n(66),__esModule:!0}},function(e,t,n){n(67),n(73),n(74),n(75),e.exports=n(1).Symbol},function(e,t,n){\"use strict\";var a=n(3),r=n(5),o=n(4),i=n(15),s=n(37),c=n(68).KEY,l=n(8),u=n(26),f=n(28),p=n(17),d=n(2),b=n(30),h=n(31),v=n(69),m=n(70),y=n(10),g=n(11),E=n(18),j=n(9),x=n(23),_=n(16),k=n(38),O=n(71),C=n(72),S=n(32),w=n(7),A=n(13),M=C.f,P=w.f,F=O.f,D=a.Symbol,I=a.JSON,R=I&&I.stringify,L=d(\"_hidden\"),B=d(\"toPrimitive\"),N={}.propertyIsEnumerable,z=u(\"symbol-registry\"),T=u(\"symbols\"),q=u(\"op-symbols\"),V=Object.prototype,K=\"function\"==typeof D&&!!S.f,W=a.QObject,H=!W||!W.prototype||!W.prototype.findChild,U=o&&l((function(){return 7!=k(P({},\"a\",{get:function(){return P(this,\"a\",{value:7}).a}})).a}))?function(e,t,n){var a=M(V,t);a&&delete V[t],P(e,t,n),a&&e!==V&&P(V,t,a)}:P,G=function(e){var t=T[e]=k(D.prototype);return t._k=e,t},J=K&&\"symbol\"==typeof D.iterator?function(e){return\"symbol\"==typeof e}:function(e){return e instanceof D},Y=function(e,t,n){return e===V&&Y(q,t,n),y(e),t=x(t,!0),y(n),r(T,t)?(n.enumerable?(r(e,L)&&e[L][t]&&(e[L][t]=!1),n=k(n,{enumerable:_(0,!1)})):(r(e,L)||P(e,L,_(1,{})),e[L][t]=!0),U(e,t,n)):P(e,t,n)},$=function(e,t){y(e);for(var n,a=v(t=j(t)),r=0,o=a.length;o>r;)Y(e,n=a[r++],t[n]);return e},Q=function(e){var t=N.call(this,e=x(e,!0));return!(this===V&&r(T,e)&&!r(q,e))&&(!(t||!r(this,e)||!r(T,e)||r(this,L)&&this[L][e])||t)},Z=function(e,t){if(e=j(e),t=x(t,!0),e!==V||!r(T,t)||r(q,t)){var n=M(e,t);return!n||!r(T,t)||r(e,L)&&e[L][t]||(n.enumerable=!0),n}},X=function(e){for(var t,n=F(j(e)),a=[],o=0;n.length>o;)r(T,t=n[o++])||t==L||t==c||a.push(t);return a},ee=function(e){for(var t,n=e===V,a=F(n?q:j(e)),o=[],i=0;a.length>i;)!r(T,t=a[i++])||n&&!r(V,t)||o.push(T[t]);return o};K||(s((D=function(){if(this instanceof D)throw TypeError(\"Symbol is not a constructor!\");var e=p(arguments.length>0?arguments[0]:void 0),t=function(n){this===V&&t.call(q,n),r(this,L)&&r(this[L],e)&&(this[L][e]=!1),U(this,e,_(1,n))};return o&&H&&U(V,e,{configurable:!0,set:t}),G(e)}).prototype,\"toString\",(function(){return this._k})),C.f=Z,w.f=Y,n(41).f=O.f=X,n(19).f=Q,S.f=ee,o&&!n(14)&&s(V,\"propertyIsEnumerable\",Q,!0),b.f=function(e){return G(d(e))}),i(i.G+i.W+i.F*!K,{Symbol:D});for(var te=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),ne=0;te.length>ne;)d(te[ne++]);for(var ae=A(d.store),re=0;ae.length>re;)h(ae[re++]);i(i.S+i.F*!K,\"Symbol\",{for:function(e){return r(z,e+=\"\")?z[e]:z[e]=D(e)},keyFor:function(e){if(!J(e))throw TypeError(e+\" is not a symbol!\");for(var t in z)if(z[t]===e)return t},useSetter:function(){H=!0},useSimple:function(){H=!1}}),i(i.S+i.F*!K,\"Object\",{create:function(e,t){return void 0===t?k(e):$(k(e),t)},defineProperty:Y,defineProperties:$,getOwnPropertyDescriptor:Z,getOwnPropertyNames:X,getOwnPropertySymbols:ee});var oe=l((function(){S.f(1)}));i(i.S+i.F*oe,\"Object\",{getOwnPropertySymbols:function(e){return S.f(E(e))}}),I&&i(i.S+i.F*(!K||l((function(){var e=D();return\"[null]\"!=R([e])||\"{}\"!=R({a:e})||\"{}\"!=R(Object(e))}))),\"JSON\",{stringify:function(e){for(var t,n,a=[e],r=1;arguments.length>r;)a.push(arguments[r++]);if(n=t=a[1],(g(t)||void 0!==e)&&!J(e))return m(t)||(t=function(e,t){if(\"function\"==typeof n&&(t=n.call(this,e,t)),!J(t))return t}),a[1]=t,R.apply(I,a)}}),D.prototype[B]||n(6)(D.prototype,B,D.prototype.valueOf),f(D,\"Symbol\"),f(Math,\"Math\",!0),f(a.JSON,\"JSON\",!0)},function(e,t,n){var a=n(17)(\"meta\"),r=n(11),o=n(5),i=n(7).f,s=0,c=Object.isExtensible||function(){return!0},l=!n(8)((function(){return c(Object.preventExtensions({}))})),u=function(e){i(e,a,{value:{i:\"O\"+ ++s,w:{}}})},f=e.exports={KEY:a,NEED:!1,fastKey:function(e,t){if(!r(e))return\"symbol\"==typeof e?e:(\"string\"==typeof e?\"S\":\"P\")+e;if(!o(e,a)){if(!c(e))return\"F\";if(!t)return\"E\";u(e)}return e[a].i},getWeak:function(e,t){if(!o(e,a)){if(!c(e))return!0;if(!t)return!1;u(e)}return e[a].w},onFreeze:function(e){return l&&f.NEED&&c(e)&&!o(e,a)&&u(e),e}}},function(e,t,n){var a=n(13),r=n(32),o=n(19);e.exports=function(e){var t=a(e),n=r.f;if(n)for(var i,s=n(e),c=o.f,l=0;s.length>l;)c.call(e,i=s[l++])&&t.push(i);return t}},function(e,t,n){var a=n(24);e.exports=Array.isArray||function(e){return\"Array\"==a(e)}},function(e,t,n){var a=n(9),r=n(41).f,o={}.toString,i=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return i&&\"[object Window]\"==o.call(e)?function(e){try{return r(e)}catch(e){return i.slice()}}(e):r(a(e))}},function(e,t,n){var a=n(19),r=n(16),o=n(9),i=n(23),s=n(5),c=n(35),l=Object.getOwnPropertyDescriptor;t.f=n(4)?l:function(e,t){if(e=o(e),t=i(t,!0),c)try{return l(e,t)}catch(e){}if(s(e,t))return r(!a.f.call(e,t),e[t])}},function(e,t){},function(e,t,n){n(31)(\"asyncIterator\")},function(e,t,n){n(31)(\"observable\")},function(e,t,n){\"use strict\";t.__esModule=!0;var a,r=n(77),o=(a=r)&&a.__esModule?a:{default:a};t.default=o.default||function(e){for(var t=1;tu;)for(var d,b=c(arguments[u++]),h=f?r(b).concat(f(b)):r(b),v=h.length,m=0;v>m;)d=h[m++],a&&!p.call(b,d)||(n[d]=b[d]);return n}:l},function(e,t,n){\"use strict\";t.__esModule=!0;var a=o(n(82)),r=o(n(85));function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if(Array.isArray(e))return e;if((0,a.default)(Object(e)))return function(e,t){var n=[],a=!0,o=!1,i=void 0;try{for(var s,c=(0,r.default)(e);!(a=(s=c.next()).done)&&(n.push(s.value),!t||n.length!==t);a=!0);}catch(e){o=!0,i=e}finally{try{!a&&c.return&&c.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}},function(e,t,n){e.exports={default:n(83),__esModule:!0}},function(e,t,n){n(29),n(20),e.exports=n(84)},function(e,t,n){var a=n(42),r=n(2)(\"iterator\"),o=n(12);e.exports=n(1).isIterable=function(e){var t=Object(e);return void 0!==t[r]||\"@@iterator\"in t||o.hasOwnProperty(a(t))}},function(e,t,n){e.exports={default:n(86),__esModule:!0}},function(e,t,n){n(29),n(20),e.exports=n(87)},function(e,t,n){var a=n(10),r=n(88);e.exports=n(1).getIterator=function(e){var t=r(e);if(\"function\"!=typeof t)throw TypeError(e+\" is not iterable!\");return a(t.call(e))}},function(e,t,n){var a=n(42),r=n(2)(\"iterator\"),o=n(12);e.exports=n(1).getIteratorMethod=function(e){if(null!=e)return e[r]||e[\"@@iterator\"]||o[a(e)]}},function(e,t,n){e.exports={default:n(90),__esModule:!0}},function(e,t,n){n(91),e.exports=n(1).Object.keys},function(e,t,n){var a=n(18),r=n(13);n(92)(\"keys\",(function(){return function(e){return r(a(e))}}))},function(e,t,n){var a=n(15),r=n(1),o=n(8);e.exports=function(e,t){var n=(r.Object||{})[e]||Object[e],i={};i[e]=t(n),a(a.S+a.F*o((function(){n(1)})),\"Object\",i)}},function(e,t,n){(function(t){var n=[[\"ary\",128],[\"bind\",1],[\"bindKey\",2],[\"curry\",8],[\"curryRight\",16],[\"flip\",512],[\"partial\",32],[\"partialRight\",64],[\"rearg\",256]],a=/^\\s+|\\s+$/g,r=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,o=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,i=/,? & /,s=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^\\[object .+?Constructor\\]$/,u=/^0o[0-7]+$/i,f=/^(?:0|[1-9]\\d*)$/,p=parseInt,d=\"object\"==typeof t&&t&&t.Object===Object&&t,b=\"object\"==typeof self&&self&&self.Object===Object&&self,h=d||b||Function(\"return this\")();function v(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function m(e,t){return!!(e?e.length:0)&&function(e,t,n){if(t!=t)return function(e,t,n,a){var r=e.length,o=n+(a?1:-1);for(;a?o--:++o-1}function y(e){return e!=e}function g(e,t){for(var n=e.length,a=0;n--;)e[n]===t&&a++;return a}function E(e,t){for(var n=-1,a=e.length,r=0,o=[];++n2?x:void 0);function L(e){return X(e)?F(e):{}}function B(e){return!(!X(e)||function(e){return!!S&&S in e}(e))&&(function(e){var t=X(e)?M.call(e):\"\";return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t}(e)||function(e){var t=!1;if(null!=e&&\"function\"!=typeof e.toString)try{t=!!(e+\"\")}catch(e){}return t}(e)?P:l).test(function(e){if(null!=e){try{return w.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}(e))}function N(e,t,n,a){for(var r=-1,o=e.length,i=n.length,s=-1,c=t.length,l=D(o-i,0),u=Array(c+l),f=!a;++s1&&j.reverse(),u&&c1?\"& \":\"\")+t[a],t=t.join(n>2?\", \":\" \"),e.replace(r,\"{\\n/* [wrapped with \"+t+\"] */\\n\")}function J(e,t){return!!(t=null==t?9007199254740991:t)&&(\"number\"==typeof e||f.test(e))&&e>-1&&e%1==0&&e1&&a--,o=6*a<1?t+6*(n-t)*a:2*a<1?n:3*a<2?t+(n-t)*(2/3-a)*6:t,r[l]=255*o;return r}},function(e,t,n){(function(t){var n=\"object\"==typeof t&&t&&t.Object===Object&&t,a=\"object\"==typeof self&&self&&self.Object===Object&&self,r=n||a||Function(\"return this\")();function o(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function i(e,t){for(var n=-1,a=t.length,r=e.length;++n-1&&e%1==0&&e<=9007199254740991}(e.length)&&!function(e){var t=function(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}(e)?l.call(e):\"\";return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t}(e)}(e)}(e)&&c.call(e,\"callee\")&&(!f.call(e,\"callee\")||\"[object Arguments]\"==l.call(e))}(e)||!!(p&&e&&e[p])}var h=Array.isArray;var v,m,y,g=(m=function(e){var t=(e=function e(t,n,a,r,o){var s=-1,c=t.length;for(a||(a=b),o||(o=[]);++s0&&a(l)?n>1?e(l,n-1,a,r,o):i(o,l):r||(o[o.length]=l)}return o}(e,1)).length,n=t;for(v&&e.reverse();n--;)if(\"function\"!=typeof e[n])throw new TypeError(\"Expected a function\");return function(){for(var n=0,a=t?e[n].apply(this,arguments):arguments[0];++n2?n-2:0),o=2;o=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function _(e){var t=function(e){return{}.toString.call(e).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()}(e);return\"number\"===t&&(t=isNaN(e)?\"nan\":(0|e)!=e?\"float\":\"integer\"),t}y.__suppressDeprecationWarning=!0,g.__suppressDeprecationWarning=!0,E.__suppressDeprecationWarning=!0;var k={scheme:\"rjv-default\",author:\"mac gainor\",base00:\"rgba(0, 0, 0, 0)\",base01:\"rgb(245, 245, 245)\",base02:\"rgb(235, 235, 235)\",base03:\"#93a1a1\",base04:\"rgba(0, 0, 0, 0.3)\",base05:\"#586e75\",base06:\"#073642\",base07:\"#002b36\",base08:\"#d33682\",base09:\"#cb4b16\",base0A:\"#dc322f\",base0B:\"#859900\",base0C:\"#6c71c4\",base0D:\"#586e75\",base0E:\"#2aa198\",base0F:\"#268bd2\"},O={scheme:\"rjv-grey\",author:\"mac gainor\",base00:\"rgba(1, 1, 1, 0)\",base01:\"rgba(1, 1, 1, 0.1)\",base02:\"rgba(0, 0, 0, 0.2)\",base03:\"rgba(1, 1, 1, 0.3)\",base04:\"rgba(0, 0, 0, 0.4)\",base05:\"rgba(1, 1, 1, 0.5)\",base06:\"rgba(1, 1, 1, 0.6)\",base07:\"rgba(1, 1, 1, 0.7)\",base08:\"rgba(1, 1, 1, 0.8)\",base09:\"rgba(1, 1, 1, 0.8)\",base0A:\"rgba(1, 1, 1, 0.8)\",base0B:\"rgba(1, 1, 1, 0.8)\",base0C:\"rgba(1, 1, 1, 0.8)\",base0D:\"rgba(1, 1, 1, 0.8)\",base0E:\"rgba(1, 1, 1, 0.8)\",base0F:\"rgba(1, 1, 1, 0.8)\"},C={white:\"#fff\",black:\"#000\",transparent:\"rgba(1, 1, 1, 0)\",globalFontFamily:\"monospace\",globalCursor:\"default\",indentBlockWidth:\"5px\",braceFontWeight:\"bold\",braceCursor:\"pointer\",ellipsisFontSize:\"18px\",ellipsisLineHeight:\"10px\",ellipsisCursor:\"pointer\",keyMargin:\"0px 5px\",keyLetterSpacing:\"0.5px\",keyFontStyle:\"none\",keyBorderRadius:\"3px\",keyColonWeight:\"bold\",keyVerticalAlign:\"top\",keyOpacity:\"0.85\",keyOpacityHover:\"1\",keyValPaddingTop:\"3px\",keyValPaddingBottom:\"3px\",keyValPaddingRight:\"5px\",keyValBorderLeft:\"1px solid\",keyValBorderHover:\"2px solid\",keyValPaddingHover:\"3px 5px 3px 4px\",pushedContentMarginLeft:\"6px\",variableValuePaddingRight:\"6px\",nullFontSize:\"11px\",nullFontWeight:\"bold\",nullPadding:\"1px 2px\",nullBorderRadius:\"3px\",nanFontSize:\"11px\",nanFontWeight:\"bold\",nanPadding:\"1px 2px\",nanBorderRadius:\"3px\",undefinedFontSize:\"11px\",undefinedFontWeight:\"bold\",undefinedPadding:\"1px 2px\",undefinedBorderRadius:\"3px\",dataTypeFontSize:\"11px\",dataTypeMarginRight:\"4px\",datatypeOpacity:\"0.8\",objectSizeBorderRadius:\"3px\",objectSizeFontStyle:\"italic\",objectSizeMargin:\"0px 6px 0px 0px\",clipboardCursor:\"pointer\",clipboardCheckMarginLeft:\"-12px\",metaDataPadding:\"0px 0px 0px 10px\",arrayGroupMetaPadding:\"0px 0px 0px 4px\",iconContainerWidth:\"17px\",tooltipPadding:\"4px\",editInputMinWidth:\"130px\",editInputBorderRadius:\"2px\",editInputPadding:\"5px\",editInputMarginRight:\"4px\",editInputFontFamily:\"monospace\",iconCursor:\"pointer\",iconFontSize:\"15px\",iconPaddingRight:\"1px\",dateValueMarginLeft:\"2px\",iconMarginRight:\"3px\",detectedRowPaddingTop:\"3px\",addKeyCoverBackground:\"rgba(255, 255, 255, 0.3)\",addKeyCoverPosition:\"absolute\",addKeyCoverPositionPx:\"0px\",addKeyModalWidth:\"200px\",addKeyModalMargin:\"auto\",addKeyModalPadding:\"10px\",addKeyModalRadius:\"3px\"},S=n(45),w=function(e){var t=function(e){return{backgroundColor:e.base00,ellipsisColor:e.base09,braceColor:e.base07,expandedIcon:e.base0D,collapsedIcon:e.base0E,keyColor:e.base07,arrayKeyColor:e.base0C,objectSize:e.base04,copyToClipboard:e.base0F,copyToClipboardCheck:e.base0D,objectBorder:e.base02,dataTypes:{boolean:e.base0E,date:e.base0D,float:e.base0B,function:e.base0D,integer:e.base0F,string:e.base09,nan:e.base08,null:e.base0A,undefined:e.base05,regexp:e.base0A,background:e.base02},editVariable:{editIcon:e.base0E,cancelIcon:e.base09,removeIcon:e.base09,addIcon:e.base0E,checkIcon:e.base0E,background:e.base01,color:e.base0A,border:e.base07},addKeyModal:{background:e.base05,border:e.base04,color:e.base0A,labelColor:e.base01},validationFailure:{background:e.base09,iconColor:e.base01,fontColor:e.base01}}}(e);return{\"app-container\":{fontFamily:C.globalFontFamily,cursor:C.globalCursor,backgroundColor:t.backgroundColor,position:\"relative\"},ellipsis:{display:\"inline-block\",color:t.ellipsisColor,fontSize:C.ellipsisFontSize,lineHeight:C.ellipsisLineHeight,cursor:C.ellipsisCursor},\"brace-row\":{display:\"inline-block\",cursor:\"pointer\"},brace:{display:\"inline-block\",cursor:C.braceCursor,fontWeight:C.braceFontWeight,color:t.braceColor},\"expanded-icon\":{color:t.expandedIcon},\"collapsed-icon\":{color:t.collapsedIcon},colon:{display:\"inline-block\",margin:C.keyMargin,color:t.keyColor,verticalAlign:\"top\"},objectKeyVal:function(e,n){return{style:o({paddingTop:C.keyValPaddingTop,paddingRight:C.keyValPaddingRight,paddingBottom:C.keyValPaddingBottom,borderLeft:C.keyValBorderLeft+\" \"+t.objectBorder,\":hover\":{paddingLeft:n.paddingLeft-1+\"px\",borderLeft:C.keyValBorderHover+\" \"+t.objectBorder}},n)}},\"object-key-val-no-border\":{padding:C.keyValPadding},\"pushed-content\":{marginLeft:C.pushedContentMarginLeft},variableValue:function(e,t){return{style:o({display:\"inline-block\",paddingRight:C.variableValuePaddingRight,position:\"relative\"},t)}},\"object-name\":{display:\"inline-block\",color:t.keyColor,letterSpacing:C.keyLetterSpacing,fontStyle:C.keyFontStyle,verticalAlign:C.keyVerticalAlign,opacity:C.keyOpacity,\":hover\":{opacity:C.keyOpacityHover}},\"array-key\":{display:\"inline-block\",color:t.arrayKeyColor,letterSpacing:C.keyLetterSpacing,fontStyle:C.keyFontStyle,verticalAlign:C.keyVerticalAlign,opacity:C.keyOpacity,\":hover\":{opacity:C.keyOpacityHover}},\"object-size\":{color:t.objectSize,borderRadius:C.objectSizeBorderRadius,fontStyle:C.objectSizeFontStyle,margin:C.objectSizeMargin,cursor:\"default\"},\"data-type-label\":{fontSize:C.dataTypeFontSize,marginRight:C.dataTypeMarginRight,opacity:C.datatypeOpacity},boolean:{display:\"inline-block\",color:t.dataTypes.boolean},date:{display:\"inline-block\",color:t.dataTypes.date},\"date-value\":{marginLeft:C.dateValueMarginLeft},float:{display:\"inline-block\",color:t.dataTypes.float},function:{display:\"inline-block\",color:t.dataTypes.function,cursor:\"pointer\",whiteSpace:\"pre-line\"},\"function-value\":{fontStyle:\"italic\"},integer:{display:\"inline-block\",color:t.dataTypes.integer},string:{display:\"inline-block\",color:t.dataTypes.string},nan:{display:\"inline-block\",color:t.dataTypes.nan,fontSize:C.nanFontSize,fontWeight:C.nanFontWeight,backgroundColor:t.dataTypes.background,padding:C.nanPadding,borderRadius:C.nanBorderRadius},null:{display:\"inline-block\",color:t.dataTypes.null,fontSize:C.nullFontSize,fontWeight:C.nullFontWeight,backgroundColor:t.dataTypes.background,padding:C.nullPadding,borderRadius:C.nullBorderRadius},undefined:{display:\"inline-block\",color:t.dataTypes.undefined,fontSize:C.undefinedFontSize,padding:C.undefinedPadding,borderRadius:C.undefinedBorderRadius,backgroundColor:t.dataTypes.background},regexp:{display:\"inline-block\",color:t.dataTypes.regexp},\"copy-to-clipboard\":{cursor:C.clipboardCursor},\"copy-icon\":{color:t.copyToClipboard,fontSize:C.iconFontSize,marginRight:C.iconMarginRight,verticalAlign:\"top\"},\"copy-icon-copied\":{color:t.copyToClipboardCheck,marginLeft:C.clipboardCheckMarginLeft},\"array-group-meta-data\":{display:\"inline-block\",padding:C.arrayGroupMetaPadding},\"object-meta-data\":{display:\"inline-block\",padding:C.metaDataPadding},\"icon-container\":{display:\"inline-block\",width:C.iconContainerWidth},tooltip:{padding:C.tooltipPadding},removeVarIcon:{verticalAlign:\"top\",display:\"inline-block\",color:t.editVariable.removeIcon,cursor:C.iconCursor,fontSize:C.iconFontSize,marginRight:C.iconMarginRight},addVarIcon:{verticalAlign:\"top\",display:\"inline-block\",color:t.editVariable.addIcon,cursor:C.iconCursor,fontSize:C.iconFontSize,marginRight:C.iconMarginRight},editVarIcon:{verticalAlign:\"top\",display:\"inline-block\",color:t.editVariable.editIcon,cursor:C.iconCursor,fontSize:C.iconFontSize,marginRight:C.iconMarginRight},\"edit-icon-container\":{display:\"inline-block\",verticalAlign:\"top\"},\"check-icon\":{display:\"inline-block\",cursor:C.iconCursor,color:t.editVariable.checkIcon,fontSize:C.iconFontSize,paddingRight:C.iconPaddingRight},\"cancel-icon\":{display:\"inline-block\",cursor:C.iconCursor,color:t.editVariable.cancelIcon,fontSize:C.iconFontSize,paddingRight:C.iconPaddingRight},\"edit-input\":{display:\"inline-block\",minWidth:C.editInputMinWidth,borderRadius:C.editInputBorderRadius,backgroundColor:t.editVariable.background,color:t.editVariable.color,padding:C.editInputPadding,marginRight:C.editInputMarginRight,fontFamily:C.editInputFontFamily},\"detected-row\":{paddingTop:C.detectedRowPaddingTop},\"key-modal-request\":{position:C.addKeyCoverPosition,top:C.addKeyCoverPositionPx,left:C.addKeyCoverPositionPx,right:C.addKeyCoverPositionPx,bottom:C.addKeyCoverPositionPx,backgroundColor:C.addKeyCoverBackground},\"key-modal\":{width:C.addKeyModalWidth,backgroundColor:t.addKeyModal.background,marginLeft:C.addKeyModalMargin,marginRight:C.addKeyModalMargin,padding:C.addKeyModalPadding,borderRadius:C.addKeyModalRadius,marginTop:\"15px\",position:\"relative\"},\"key-modal-label\":{color:t.addKeyModal.labelColor,marginLeft:\"2px\",marginBottom:\"5px\",fontSize:\"11px\"},\"key-modal-input-container\":{overflow:\"hidden\"},\"key-modal-input\":{width:\"100%\",padding:\"3px 6px\",fontFamily:\"monospace\",color:t.addKeyModal.color,border:\"none\",boxSizing:\"border-box\",borderRadius:\"2px\"},\"key-modal-cancel\":{backgroundColor:t.editVariable.removeIcon,position:\"absolute\",top:\"0px\",right:\"0px\",borderRadius:\"0px 3px 0px 3px\",cursor:\"pointer\"},\"key-modal-cancel-icon\":{color:t.addKeyModal.labelColor,fontSize:C.iconFontSize,transform:\"rotate(45deg)\"},\"key-modal-submit\":{color:t.editVariable.addIcon,fontSize:C.iconFontSize,position:\"absolute\",right:\"2px\",top:\"3px\",cursor:\"pointer\"},\"function-ellipsis\":{display:\"inline-block\",color:t.ellipsisColor,fontSize:C.ellipsisFontSize,lineHeight:C.ellipsisLineHeight,cursor:C.ellipsisCursor},\"validation-failure\":{float:\"right\",padding:\"3px 6px\",borderRadius:\"2px\",cursor:\"pointer\",color:t.validationFailure.fontColor,backgroundColor:t.validationFailure.background},\"validation-failure-label\":{marginRight:\"6px\"},\"validation-failure-clear\":{position:\"relative\",verticalAlign:\"top\",cursor:\"pointer\",color:t.validationFailure.iconColor,fontSize:C.iconFontSize,transform:\"rotate(45deg)\"}}};function A(e,t,n){return e||console.error(\"theme has not been set\"),function(e){var t=k;return!1!==e&&\"none\"!==e||(t=O),Object(S.createStyling)(w,{defaultBase16:t})(e)}(e)(t,n)}var M=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=(e.rjvId,e.type_name),n=e.displayDataTypes,a=e.theme;return n?m.a.createElement(\"span\",Object.assign({className:\"data-type-label\"},A(a,\"data-type-label\")),t):null}}]),n}(m.a.PureComponent),P=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props;return m.a.createElement(\"div\",A(e.theme,\"boolean\"),m.a.createElement(M,Object.assign({type_name:\"bool\"},e)),e.value?\"true\":\"false\")}}]),n}(m.a.PureComponent),F=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props;return m.a.createElement(\"div\",A(e.theme,\"date\"),m.a.createElement(M,Object.assign({type_name:\"date\"},e)),m.a.createElement(\"span\",Object.assign({className:\"date-value\"},A(e.theme,\"date-value\")),e.value.toLocaleTimeString(\"en-us\",{weekday:\"short\",year:\"numeric\",month:\"short\",day:\"numeric\",hour:\"2-digit\",minute:\"2-digit\"})))}}]),n}(m.a.PureComponent),D=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props;return m.a.createElement(\"div\",A(e.theme,\"float\"),m.a.createElement(M,Object.assign({type_name:\"float\"},e)),this.props.value)}}]),n}(m.a.PureComponent);function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,i=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){s=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw o}}}}function B(e){return function(e){if(Array.isArray(e))return I(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||R(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var N=n(46),z=new(n(47).Dispatcher),T=new(function(e){u(n,e);var t=h(n);function n(){var e;i(this,n);for(var a=arguments.length,r=new Array(a),s=0;st&&(r.style.cursor=\"pointer\",this.state.collapsed&&(a=m.a.createElement(\"span\",null,a.substring(0,t),m.a.createElement(\"span\",A(n,\"ellipsis\"),\" ...\")))),m.a.createElement(\"div\",A(n,\"string\"),m.a.createElement(M,Object.assign({type_name:\"string\"},e)),m.a.createElement(\"span\",Object.assign({className:\"string-value\"},r,{onClick:this.toggleCollapsed}),'\"',a,'\"'))}}]),n}(m.a.PureComponent),J=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){return m.a.createElement(\"div\",A(this.props.theme,\"undefined\"),\"undefined\")}}]),n}(m.a.PureComponent);function Y(){return(Y=Object.assign||function(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,[\"cacheMeasurements\",\"maxRows\",\"minRows\",\"onChange\",\"onHeightChange\"]);var u,f=void 0!==l.value,p=Object(v.useRef)(null),d=X(p,t),b=Object(v.useRef)(0),h=Object(v.useRef)(),m=function(){var e=p.current,t=n&&h.current?h.current:function(e){var t=window.getComputedStyle(e);if(null===t)return null;var n,a=(n=t,re.reduce((function(e,t){return e[t]=n[t],e}),{})),r=a.boxSizing;return\"\"===r?null:(oe&&\"border-box\"===r&&(a.width=parseFloat(a.width)+parseFloat(a.borderRightWidth)+parseFloat(a.borderLeftWidth)+parseFloat(a.paddingRight)+parseFloat(a.paddingLeft)+\"px\"),{sizingStyle:a,paddingSize:parseFloat(a.paddingBottom)+parseFloat(a.paddingTop),borderSize:parseFloat(a.borderBottomWidth)+parseFloat(a.borderTopWidth)})}(e);if(t){h.current=t;var o=function(e,t,n,a){void 0===n&&(n=1),void 0===a&&(a=1/0),ne||((ne=document.createElement(\"textarea\")).setAttribute(\"tab-index\",\"-1\"),ne.setAttribute(\"aria-hidden\",\"true\"),te(ne)),null===ne.parentNode&&document.body.appendChild(ne);var r=e.paddingSize,o=e.borderSize,i=e.sizingStyle,s=i.boxSizing;Object.keys(i).forEach((function(e){var t=e;ne.style[t]=i[t]})),te(ne),ne.value=t;var c=function(e,t){var n=e.scrollHeight;return\"border-box\"===t.sizingStyle.boxSizing?n+t.borderSize:n-t.paddingSize}(ne,e);ne.value=\"x\";var l=ne.scrollHeight-r,u=l*n;\"border-box\"===s&&(u=u+r+o),c=Math.max(u,c);var f=l*a;return\"border-box\"===s&&(f=f+r+o),[c=Math.min(f,c),l]}(t,e.value||e.placeholder||\"x\",r,a),i=o[0],s=o[1];b.current!==i&&(b.current=i,e.style.setProperty(\"height\",i+\"px\",\"important\"),c(i,{rowHeight:s}))}};return Object(v.useLayoutEffect)(m),u=Q(m),Object(v.useLayoutEffect)((function(){var e=function(e){u.current(e)};return window.addEventListener(\"resize\",e),function(){window.removeEventListener(\"resize\",e)}}),[]),Object(v.createElement)(\"textarea\",Y({},l,{onChange:function(e){f||m(),i(e)},ref:d}))},se=Object(v.forwardRef)(ie);function ce(e){e=e.trim();try{if(\"[\"===(e=JSON.stringify(JSON.parse(e)))[0])return le(\"array\",JSON.parse(e));if(\"{\"===e[0])return le(\"object\",JSON.parse(e));if(e.match(/\\-?\\d+\\.\\d+/)&&e.match(/\\-?\\d+\\.\\d+/)[0]===e)return le(\"float\",parseFloat(e));if(e.match(/\\-?\\d+e-\\d+/)&&e.match(/\\-?\\d+e-\\d+/)[0]===e)return le(\"float\",Number(e));if(e.match(/\\-?\\d+/)&&e.match(/\\-?\\d+/)[0]===e)return le(\"integer\",parseInt(e));if(e.match(/\\-?\\d+e\\+\\d+/)&&e.match(/\\-?\\d+e\\+\\d+/)[0]===e)return le(\"integer\",Number(e))}catch(e){}switch(e=e.toLowerCase()){case\"undefined\":return le(\"undefined\",void 0);case\"nan\":return le(\"nan\",NaN);case\"null\":return le(\"null\",null);case\"true\":return le(\"boolean\",!0);case\"false\":return le(\"boolean\",!1);default:if(e=Date.parse(e))return le(\"date\",new Date(e))}return le(!1,null)}function le(e,t){return{type:e,value:t}}var ue=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",Object.assign({},xe(t),{viewBox:\"0 0 24 24\",fill:\"currentColor\",preserveAspectRatio:\"xMidYMid meet\"}),m.a.createElement(\"path\",{d:\"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7\"})))}}]),n}(m.a.PureComponent),fe=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",Object.assign({},xe(t),{viewBox:\"0 0 24 24\",fill:\"currentColor\",preserveAspectRatio:\"xMidYMid meet\"}),m.a.createElement(\"path\",{d:\"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z\"})))}}]),n}(m.a.PureComponent),pe=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]),a=xe(t).style;return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",{fill:a.color,width:a.height,height:a.width,style:a,viewBox:\"0 0 1792 1792\"},m.a.createElement(\"path\",{d:\"M1344 800v64q0 14-9 23t-23 9h-832q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h832q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z\"})))}}]),n}(m.a.PureComponent),de=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]),a=xe(t).style;return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",{fill:a.color,width:a.height,height:a.width,style:a,viewBox:\"0 0 1792 1792\"},m.a.createElement(\"path\",{d:\"M1344 800v64q0 14-9 23t-23 9h-352v352q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-352h-352q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h352v-352q0-14 9-23t23-9h64q14 0 23 9t9 23v352h352q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z\"})))}}]),n}(m.a.PureComponent),be=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",{style:o(o({},xe(t).style),{},{paddingLeft:\"2px\",verticalAlign:\"top\"}),viewBox:\"0 0 15 15\",fill:\"currentColor\"},m.a.createElement(\"path\",{d:\"M0 14l6-6-6-6z\"})))}}]),n}(m.a.PureComponent),he=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",{style:o(o({},xe(t).style),{},{paddingLeft:\"2px\",verticalAlign:\"top\"}),viewBox:\"0 0 15 15\",fill:\"currentColor\"},m.a.createElement(\"path\",{d:\"M0 5l6 6 6-6z\"})))}}]),n}(m.a.PureComponent),ve=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",Object.assign({},xe(t),{viewBox:\"0 0 40 40\",fill:\"currentColor\",preserveAspectRatio:\"xMidYMid meet\"}),m.a.createElement(\"g\",null,m.a.createElement(\"path\",{d:\"m30 35h-25v-22.5h25v7.5h2.5v-12.5c0-1.4-1.1-2.5-2.5-2.5h-7.5c0-2.8-2.2-5-5-5s-5 2.2-5 5h-7.5c-1.4 0-2.5 1.1-2.5 2.5v27.5c0 1.4 1.1 2.5 2.5 2.5h25c1.4 0 2.5-1.1 2.5-2.5v-5h-2.5v5z m-20-27.5h2.5s2.5-1.1 2.5-2.5 1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5 1.3 2.5 2.5 2.5h2.5s2.5 1.1 2.5 2.5h-20c0-1.5 1.1-2.5 2.5-2.5z m-2.5 20h5v-2.5h-5v2.5z m17.5-5v-5l-10 7.5 10 7.5v-5h12.5v-5h-12.5z m-17.5 10h7.5v-2.5h-7.5v2.5z m12.5-17.5h-12.5v2.5h12.5v-2.5z m-7.5 5h-5v2.5h5v-2.5z\"}))))}}]),n}(m.a.PureComponent),me=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",Object.assign({},xe(t),{viewBox:\"0 0 40 40\",fill:\"currentColor\",preserveAspectRatio:\"xMidYMid meet\"}),m.a.createElement(\"g\",null,m.a.createElement(\"path\",{d:\"m28.6 25q0-0.5-0.4-1l-4-4 4-4q0.4-0.5 0.4-1 0-0.6-0.4-1.1l-2-2q-0.4-0.4-1-0.4-0.6 0-1 0.4l-4.1 4.1-4-4.1q-0.4-0.4-1-0.4-0.6 0-1 0.4l-2 2q-0.5 0.5-0.5 1.1 0 0.5 0.5 1l4 4-4 4q-0.5 0.5-0.5 1 0 0.7 0.5 1.1l2 2q0.4 0.4 1 0.4 0.6 0 1-0.4l4-4.1 4.1 4.1q0.4 0.4 1 0.4 0.6 0 1-0.4l2-2q0.4-0.4 0.4-1z m8.7-5q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z\"}))))}}]),n}(m.a.PureComponent),ye=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",Object.assign({},xe(t),{viewBox:\"0 0 40 40\",fill:\"currentColor\",preserveAspectRatio:\"xMidYMid meet\"}),m.a.createElement(\"g\",null,m.a.createElement(\"path\",{d:\"m30.1 21.4v-2.8q0-0.6-0.4-1t-1-0.5h-5.7v-5.7q0-0.6-0.4-1t-1-0.4h-2.9q-0.6 0-1 0.4t-0.4 1v5.7h-5.7q-0.6 0-1 0.5t-0.5 1v2.8q0 0.6 0.5 1t1 0.5h5.7v5.7q0 0.5 0.4 1t1 0.4h2.9q0.6 0 1-0.4t0.4-1v-5.7h5.7q0.6 0 1-0.5t0.4-1z m7.2-1.4q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z\"}))))}}]),n}(m.a.PureComponent),ge=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",Object.assign({},xe(t),{viewBox:\"0 0 40 40\",fill:\"currentColor\",preserveAspectRatio:\"xMidYMid meet\"}),m.a.createElement(\"g\",null,m.a.createElement(\"path\",{d:\"m31.6 21.6h-10v10h-3.2v-10h-10v-3.2h10v-10h3.2v10h10v3.2z\"}))))}}]),n}(m.a.PureComponent),Ee=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",Object.assign({},xe(t),{viewBox:\"0 0 40 40\",fill:\"currentColor\",preserveAspectRatio:\"xMidYMid meet\"}),m.a.createElement(\"g\",null,m.a.createElement(\"path\",{d:\"m19.8 26.4l2.6-2.6-3.4-3.4-2.6 2.6v1.3h2.2v2.1h1.2z m9.8-16q-0.3-0.4-0.7 0l-7.8 7.8q-0.4 0.4 0 0.7t0.7 0l7.8-7.8q0.4-0.4 0-0.7z m1.8 13.2v4.3q0 2.6-1.9 4.5t-4.5 1.9h-18.6q-2.6 0-4.5-1.9t-1.9-4.5v-18.6q0-2.7 1.9-4.6t4.5-1.8h18.6q1.4 0 2.6 0.5 0.3 0.2 0.4 0.5 0.1 0.4-0.2 0.7l-1.1 1.1q-0.3 0.3-0.7 0.1-0.5-0.1-1-0.1h-18.6q-1.4 0-2.5 1.1t-1 2.5v18.6q0 1.4 1 2.5t2.5 1h18.6q1.5 0 2.5-1t1.1-2.5v-2.9q0-0.2 0.2-0.4l1.4-1.5q0.3-0.3 0.8-0.1t0.4 0.6z m-2.1-16.5l6.4 6.5-15 15h-6.4v-6.5z m9.9 3l-2.1 2-6.4-6.4 2.1-2q0.6-0.7 1.5-0.7t1.5 0.7l3.4 3.4q0.6 0.6 0.6 1.5t-0.6 1.5z\"}))))}}]),n}(m.a.PureComponent),je=function(e){u(n,e);var t=h(n);function n(){return i(this,n),t.apply(this,arguments)}return c(n,[{key:\"render\",value:function(){var e=this.props,t=e.style,n=x(e,[\"style\"]);return m.a.createElement(\"span\",n,m.a.createElement(\"svg\",Object.assign({},xe(t),{viewBox:\"0 0 40 40\",fill:\"currentColor\",preserveAspectRatio:\"xMidYMid meet\"}),m.a.createElement(\"g\",null,m.a.createElement(\"path\",{d:\"m31.7 16.4q0-0.6-0.4-1l-2.1-2.1q-0.4-0.4-1-0.4t-1 0.4l-9.1 9.1-5-5q-0.5-0.4-1-0.4t-1 0.4l-2.1 2q-0.4 0.4-0.4 1 0 0.6 0.4 1l8.1 8.1q0.4 0.4 1 0.4 0.6 0 1-0.4l12.2-12.1q0.4-0.4 0.4-1z m5.6 3.6q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z\"}))))}}]),n}(m.a.PureComponent);function xe(e){return e||(e={}),{style:o(o({verticalAlign:\"middle\"},e),{},{color:e.color?e.color:\"#000000\",height:\"1em\",width:\"1em\"})}}var _e=function(e){u(n,e);var t=h(n);function n(e){var a;return i(this,n),(a=t.call(this,e)).copiedTimer=null,a.handleCopy=function(){var e=document.createElement(\"textarea\"),t=a.props,n=t.clickCallback,r=t.src,o=t.namespace;e.innerHTML=JSON.stringify(a.clipboardValue(r),null,\" \"),document.body.appendChild(e),e.select(),document.execCommand(\"copy\"),document.body.removeChild(e),a.copiedTimer=setTimeout((function(){a.setState({copied:!1})}),5500),a.setState({copied:!0},(function(){\"function\"==typeof n&&n({src:r,namespace:o,name:o[o.length-1]})}))},a.getClippyIcon=function(){var e=a.props.theme;return a.state.copied?m.a.createElement(\"span\",null,m.a.createElement(ve,Object.assign({className:\"copy-icon\"},A(e,\"copy-icon\"))),m.a.createElement(\"span\",A(e,\"copy-icon-copied\"),\"✔\")):m.a.createElement(ve,Object.assign({className:\"copy-icon\"},A(e,\"copy-icon\")))},a.clipboardValue=function(e){switch(_(e)){case\"function\":case\"regexp\":return e.toString();default:return e}},a.state={copied:!1},a}return c(n,[{key:\"componentWillUnmount\",value:function(){this.copiedTimer&&(clearTimeout(this.copiedTimer),this.copiedTimer=null)}},{key:\"render\",value:function(){var e=this.props,t=(e.src,e.theme),n=e.hidden,a=e.rowHovered,r=A(t,\"copy-to-clipboard\").style,i=\"inline\";return n&&(i=\"none\"),m.a.createElement(\"span\",{className:\"copy-to-clipboard-container\",title:\"Copy to clipboard\",style:{verticalAlign:\"top\",display:a?\"inline-block\":\"none\"}},m.a.createElement(\"span\",{style:o(o({},r),{},{display:i}),onClick:this.handleCopy},this.getClippyIcon()))}}]),n}(m.a.PureComponent),ke=function(e){u(n,e);var t=h(n);function n(e){var a;return i(this,n),(a=t.call(this,e)).getEditIcon=function(){var e=a.props,t=e.variable,n=e.theme;return m.a.createElement(\"div\",{className:\"click-to-edit\",style:{verticalAlign:\"top\",display:a.state.hovered?\"inline-block\":\"none\"}},m.a.createElement(Ee,Object.assign({className:\"click-to-edit-icon\"},A(n,\"editVarIcon\"),{onClick:function(){a.prepopInput(t)}})))},a.prepopInput=function(e){if(!1!==a.props.onEdit){var t=function(e){var t;switch(_(e)){case\"undefined\":t=\"undefined\";break;case\"nan\":t=\"NaN\";break;case\"string\":t=e;break;case\"date\":case\"function\":case\"regexp\":t=e.toString();break;default:try{t=JSON.stringify(e,null,\" \")}catch(e){t=\"\"}}return t}(e.value),n=ce(t);a.setState({editMode:!0,editValue:t,parsedInput:{type:n.type,value:n.value}})}},a.getRemoveIcon=function(){var e=a.props,t=e.variable,n=e.namespace,r=e.theme,o=e.rjvId;return m.a.createElement(\"div\",{className:\"click-to-remove\",style:{verticalAlign:\"top\",display:a.state.hovered?\"inline-block\":\"none\"}},m.a.createElement(me,Object.assign({className:\"click-to-remove-icon\"},A(r,\"removeVarIcon\"),{onClick:function(){z.dispatch({name:\"VARIABLE_REMOVED\",rjvId:o,data:{name:t.name,namespace:n,existing_value:t.value,variable_removed:!0}})}})))},a.getValue=function(e,t){var n=!t&&e.type,r=d(a).props;switch(n){case!1:return a.getEditInput();case\"string\":return m.a.createElement(G,Object.assign({value:e.value},r));case\"integer\":return m.a.createElement(H,Object.assign({value:e.value},r));case\"float\":return m.a.createElement(D,Object.assign({value:e.value},r));case\"boolean\":return m.a.createElement(P,Object.assign({value:e.value},r));case\"function\":return m.a.createElement(V,Object.assign({value:e.value},r));case\"null\":return m.a.createElement(W,r);case\"nan\":return m.a.createElement(K,r);case\"undefined\":return m.a.createElement(J,r);case\"date\":return m.a.createElement(F,Object.assign({value:e.value},r));case\"regexp\":return m.a.createElement(U,Object.assign({value:e.value},r));default:return m.a.createElement(\"div\",{className:\"object-value\"},JSON.stringify(e.value))}},a.getEditInput=function(){var e=a.props.theme,t=a.state.editValue;return m.a.createElement(\"div\",null,m.a.createElement(se,Object.assign({type:\"text\",inputRef:function(e){return e&&e.focus()},value:t,className:\"variable-editor\",onChange:function(e){var t=e.target.value,n=ce(t);a.setState({editValue:t,parsedInput:{type:n.type,value:n.value}})},onKeyDown:function(e){switch(e.key){case\"Escape\":a.setState({editMode:!1,editValue:\"\"});break;case\"Enter\":(e.ctrlKey||e.metaKey)&&a.submitEdit(!0)}e.stopPropagation()},placeholder:\"update this value\",minRows:2},A(e,\"edit-input\"))),m.a.createElement(\"div\",A(e,\"edit-icon-container\"),m.a.createElement(me,Object.assign({className:\"edit-cancel\"},A(e,\"cancel-icon\"),{onClick:function(){a.setState({editMode:!1,editValue:\"\"})}})),m.a.createElement(je,Object.assign({className:\"edit-check string-value\"},A(e,\"check-icon\"),{onClick:function(){a.submitEdit()}})),m.a.createElement(\"div\",null,a.showDetected())))},a.submitEdit=function(e){var t=a.props,n=t.variable,r=t.namespace,o=t.rjvId,i=a.state,s=i.editValue,c=i.parsedInput,l=s;e&&c.type&&(l=c.value),a.setState({editMode:!1}),z.dispatch({name:\"VARIABLE_UPDATED\",rjvId:o,data:{name:n.name,namespace:r,existing_value:n.value,new_value:l,variable_removed:!1}})},a.showDetected=function(){var e=a.props,t=e.theme,n=(e.variable,e.namespace,e.rjvId,a.state.parsedInput),r=(n.type,n.value,a.getDetectedInput());if(r)return m.a.createElement(\"div\",null,m.a.createElement(\"div\",A(t,\"detected-row\"),r,m.a.createElement(je,{className:\"edit-check detected\",style:o({verticalAlign:\"top\",paddingLeft:\"3px\"},A(t,\"check-icon\").style),onClick:function(){a.submitEdit(!0)}})))},a.getDetectedInput=function(){var e=a.state.parsedInput,t=e.type,n=e.value,r=d(a).props,i=r.theme;if(!1!==t)switch(t.toLowerCase()){case\"object\":return m.a.createElement(\"span\",null,m.a.createElement(\"span\",{style:o(o({},A(i,\"brace\").style),{},{cursor:\"default\"})},\"{\"),m.a.createElement(\"span\",{style:o(o({},A(i,\"ellipsis\").style),{},{cursor:\"default\"})},\"...\"),m.a.createElement(\"span\",{style:o(o({},A(i,\"brace\").style),{},{cursor:\"default\"})},\"}\"));case\"array\":return m.a.createElement(\"span\",null,m.a.createElement(\"span\",{style:o(o({},A(i,\"brace\").style),{},{cursor:\"default\"})},\"[\"),m.a.createElement(\"span\",{style:o(o({},A(i,\"ellipsis\").style),{},{cursor:\"default\"})},\"...\"),m.a.createElement(\"span\",{style:o(o({},A(i,\"brace\").style),{},{cursor:\"default\"})},\"]\"));case\"string\":return m.a.createElement(G,Object.assign({value:n},r));case\"integer\":return m.a.createElement(H,Object.assign({value:n},r));case\"float\":return m.a.createElement(D,Object.assign({value:n},r));case\"boolean\":return m.a.createElement(P,Object.assign({value:n},r));case\"function\":return m.a.createElement(V,Object.assign({value:n},r));case\"null\":return m.a.createElement(W,r);case\"nan\":return m.a.createElement(K,r);case\"undefined\":return m.a.createElement(J,r);case\"date\":return m.a.createElement(F,Object.assign({value:new Date(n)},r))}},a.state={editMode:!1,editValue:\"\",hovered:!1,renameKey:!1,parsedInput:{type:!1,value:null}},a}return c(n,[{key:\"render\",value:function(){var e=this,t=this.props,n=t.variable,a=t.singleIndent,r=t.type,i=t.theme,s=t.namespace,c=t.indentWidth,l=t.enableClipboard,u=t.onEdit,f=t.onDelete,p=t.onSelect,d=t.displayArrayKey,b=t.quotesOnKeys,h=this.state.editMode;return m.a.createElement(\"div\",Object.assign({},A(i,\"objectKeyVal\",{paddingLeft:c*a}),{onMouseEnter:function(){return e.setState(o(o({},e.state),{},{hovered:!0}))},onMouseLeave:function(){return e.setState(o(o({},e.state),{},{hovered:!1}))},className:\"variable-row\",key:n.name}),\"array\"==r?d?m.a.createElement(\"span\",Object.assign({},A(i,\"array-key\"),{key:n.name+\"_\"+s}),n.name,m.a.createElement(\"div\",A(i,\"colon\"),\":\")):null:m.a.createElement(\"span\",null,m.a.createElement(\"span\",Object.assign({},A(i,\"object-name\"),{className:\"object-key\",key:n.name+\"_\"+s}),!!b&&m.a.createElement(\"span\",{style:{verticalAlign:\"top\"}},'\"'),m.a.createElement(\"span\",{style:{display:\"inline-block\"}},n.name),!!b&&m.a.createElement(\"span\",{style:{verticalAlign:\"top\"}},'\"')),m.a.createElement(\"span\",A(i,\"colon\"),\":\")),m.a.createElement(\"div\",Object.assign({className:\"variable-value\",onClick:!1===p&&!1===u?null:function(t){var a=B(s);(t.ctrlKey||t.metaKey)&&!1!==u?e.prepopInput(n):!1!==p&&(a.shift(),p(o(o({},n),{},{namespace:a})))}},A(i,\"variableValue\",{cursor:!1===p?\"default\":\"pointer\"})),this.getValue(n,h)),l?m.a.createElement(_e,{rowHovered:this.state.hovered,hidden:h,src:n.value,clickCallback:l,theme:i,namespace:[].concat(B(s),[n.name])}):null,!1!==u&&0==h?this.getEditIcon():null,!1!==f&&0==h?this.getRemoveIcon():null)}}]),n}(m.a.PureComponent),Oe=function(e){u(n,e);var t=h(n);function n(){var e;i(this,n);for(var a=arguments.length,r=new Array(a),s=0;s0?i:null,namespace:r.splice(0,r.length-1),existing_value:s,variable_removed:!1,key_name:null};\"object\"===_(s)?z.dispatch({name:\"ADD_VARIABLE_KEY_REQUEST\",rjvId:c,data:e}):z.dispatch({name:\"VARIABLE_ADDED\",rjvId:c,data:o(o({},e),{},{new_value:[].concat(B(s),[null])})})}})))},e.getRemoveObject=function(t){var n=e.props,a=n.theme,r=(n.hover,n.namespace),o=n.name,i=n.src,s=n.rjvId;if(1!==r.length)return m.a.createElement(\"span\",{className:\"click-to-remove\",style:{display:t?\"inline-block\":\"none\"}},m.a.createElement(me,Object.assign({className:\"click-to-remove-icon\"},A(a,\"removeVarIcon\"),{onClick:function(){z.dispatch({name:\"VARIABLE_REMOVED\",rjvId:s,data:{name:o,namespace:r.splice(0,r.length-1),existing_value:i,variable_removed:!0}})}})))},e.render=function(){var t=e.props,n=t.theme,a=t.onDelete,r=t.onAdd,o=t.enableClipboard,i=t.src,s=t.namespace,c=t.rowHovered;return m.a.createElement(\"div\",Object.assign({},A(n,\"object-meta-data\"),{className:\"object-meta-data\",onClick:function(e){e.stopPropagation()}}),e.getObjectSize(),o?m.a.createElement(_e,{rowHovered:c,clickCallback:o,src:i,theme:n,namespace:s}):null,!1!==r?e.getAddAttribute(c):null,!1!==a?e.getRemoveObject(c):null)},e}return n}(m.a.PureComponent);function Ce(e){var t=e.parent_type,n=e.namespace,a=e.quotesOnKeys,r=e.theme,o=e.jsvRoot,i=e.name,s=e.displayArrayKey,c=e.name?e.name:\"\";return!o||!1!==i&&null!==i?\"array\"==t?s?m.a.createElement(\"span\",Object.assign({},A(r,\"array-key\"),{key:n}),m.a.createElement(\"span\",{className:\"array-key\"},c),m.a.createElement(\"span\",A(r,\"colon\"),\":\")):m.a.createElement(\"span\",null):m.a.createElement(\"span\",Object.assign({},A(r,\"object-name\"),{key:n}),m.a.createElement(\"span\",{className:\"object-key\"},a&&m.a.createElement(\"span\",{style:{verticalAlign:\"top\"}},'\"'),m.a.createElement(\"span\",null,c),a&&m.a.createElement(\"span\",{style:{verticalAlign:\"top\"}},'\"')),m.a.createElement(\"span\",A(r,\"colon\"),\":\")):m.a.createElement(\"span\",null)}function Se(e){var t=e.theme;switch(e.iconStyle){case\"triangle\":return m.a.createElement(he,Object.assign({},A(t,\"expanded-icon\"),{className:\"expanded-icon\"}));case\"square\":return m.a.createElement(pe,Object.assign({},A(t,\"expanded-icon\"),{className:\"expanded-icon\"}));default:return m.a.createElement(ue,Object.assign({},A(t,\"expanded-icon\"),{className:\"expanded-icon\"}))}}function we(e){var t=e.theme;switch(e.iconStyle){case\"triangle\":return m.a.createElement(be,Object.assign({},A(t,\"collapsed-icon\"),{className:\"collapsed-icon\"}));case\"square\":return m.a.createElement(de,Object.assign({},A(t,\"collapsed-icon\"),{className:\"collapsed-icon\"}));default:return m.a.createElement(fe,Object.assign({},A(t,\"collapsed-icon\"),{className:\"collapsed-icon\"}))}}var Ae=function(e){u(n,e);var t=h(n);function n(e){var a;return i(this,n),(a=t.call(this,e)).toggleCollapsed=function(e){var t=[];for(var n in a.state.expanded)t.push(a.state.expanded[n]);t[e]=!t[e],a.setState({expanded:t})},a.state={expanded:[]},a}return c(n,[{key:\"getExpandedIcon\",value:function(e){var t=this.props,n=t.theme,a=t.iconStyle;return this.state.expanded[e]?m.a.createElement(Se,{theme:n,iconStyle:a}):m.a.createElement(we,{theme:n,iconStyle:a})}},{key:\"render\",value:function(){var e=this,t=this.props,n=t.src,a=t.groupArraysAfterLength,r=(t.depth,t.name),o=t.theme,i=t.jsvRoot,s=t.namespace,c=(t.parent_type,x(t,[\"src\",\"groupArraysAfterLength\",\"depth\",\"name\",\"theme\",\"jsvRoot\",\"namespace\",\"parent_type\"])),l=0,u=5*this.props.indentWidth;i||(l=5*this.props.indentWidth);var f=a,p=Math.ceil(n.length/f);return m.a.createElement(\"div\",Object.assign({className:\"object-key-val\"},A(o,i?\"jsv-root\":\"objectKeyVal\",{paddingLeft:l})),m.a.createElement(Ce,this.props),m.a.createElement(\"span\",null,m.a.createElement(Oe,Object.assign({size:n.length},this.props))),B(Array(p)).map((function(t,a){return m.a.createElement(\"div\",Object.assign({key:a,className:\"object-key-val array-group\"},A(o,\"objectKeyVal\",{marginLeft:6,paddingLeft:u})),m.a.createElement(\"span\",A(o,\"brace-row\"),m.a.createElement(\"div\",Object.assign({className:\"icon-container\"},A(o,\"icon-container\"),{onClick:function(t){e.toggleCollapsed(a)}}),e.getExpandedIcon(a)),e.state.expanded[a]?m.a.createElement(Fe,Object.assign({key:r+a,depth:0,name:!1,collapsed:!1,groupArraysAfterLength:f,index_offset:a*f,src:n.slice(a*f,a*f+f),namespace:s,type:\"array\",parent_type:\"array_group\",theme:o},c)):m.a.createElement(\"span\",Object.assign({},A(o,\"brace\"),{onClick:function(t){e.toggleCollapsed(a)},className:\"array-group-brace\"}),\"[\",m.a.createElement(\"div\",Object.assign({},A(o,\"array-group-meta-data\"),{className:\"array-group-meta-data\"}),m.a.createElement(\"span\",Object.assign({className:\"object-size\"},A(o,\"object-size\")),a*f,\" - \",a*f+f>n.length?n.length:a*f+f)),\"]\")))})))}}]),n}(m.a.PureComponent),Me=function(e){u(n,e);var t=h(n);function n(e){var a;i(this,n),(a=t.call(this,e)).toggleCollapsed=function(){a.setState({expanded:!a.state.expanded},(function(){q.set(a.props.rjvId,a.props.namespace,\"expanded\",a.state.expanded)}))},a.getObjectContent=function(e,t,n){return m.a.createElement(\"div\",{className:\"pushed-content object-container\"},m.a.createElement(\"div\",Object.assign({className:\"object-content\"},A(a.props.theme,\"pushed-content\")),a.renderObjectContents(t,n)))},a.getEllipsis=function(){return 0===a.state.size?null:m.a.createElement(\"div\",Object.assign({},A(a.props.theme,\"ellipsis\"),{className:\"node-ellipsis\",onClick:a.toggleCollapsed}),\"...\")},a.getObjectMetaData=function(e){var t=a.props,n=(t.rjvId,t.theme,a.state),r=n.size,o=n.hovered;return m.a.createElement(Oe,Object.assign({rowHovered:o,size:r},a.props))},a.renderObjectContents=function(e,t){var n,r=a.props,o=r.depth,i=r.parent_type,s=r.index_offset,c=r.groupArraysAfterLength,l=r.namespace,u=a.state.object_type,f=[],p=Object.keys(e||{});return a.props.sortKeys&&\"array\"!==u&&(p=p.sort()),p.forEach((function(r){if(n=new Pe(r,e[r]),\"array_group\"===i&&s&&(n.name=parseInt(n.name)+s),e.hasOwnProperty(r))if(\"object\"===n.type)f.push(m.a.createElement(Fe,Object.assign({key:n.name,depth:o+1,name:n.name,src:n.value,namespace:l.concat(n.name),parent_type:u},t)));else if(\"array\"===n.type){var p=Fe;c&&n.value.length>c&&(p=Ae),f.push(m.a.createElement(p,Object.assign({key:n.name,depth:o+1,name:n.name,src:n.value,namespace:l.concat(n.name),type:\"array\",parent_type:u},t)))}else f.push(m.a.createElement(ke,Object.assign({key:n.name+\"_\"+l,variable:n,singleIndent:5,namespace:l,type:a.props.type},t)))})),f};var r=n.getState(e);return a.state=o(o({},r),{},{prevProps:{}}),a}return c(n,[{key:\"getBraceStart\",value:function(e,t){var n=this,a=this.props,r=a.src,o=a.theme,i=a.iconStyle;if(\"array_group\"===a.parent_type)return m.a.createElement(\"span\",null,m.a.createElement(\"span\",A(o,\"brace\"),\"array\"===e?\"[\":\"{\"),t?this.getObjectMetaData(r):null);var s=t?Se:we;return m.a.createElement(\"span\",null,m.a.createElement(\"span\",Object.assign({onClick:function(e){n.toggleCollapsed()}},A(o,\"brace-row\")),m.a.createElement(\"div\",Object.assign({className:\"icon-container\"},A(o,\"icon-container\")),m.a.createElement(s,{theme:o,iconStyle:i})),m.a.createElement(Ce,this.props),m.a.createElement(\"span\",A(o,\"brace\"),\"array\"===e?\"[\":\"{\")),t?this.getObjectMetaData(r):null)}},{key:\"render\",value:function(){var e=this,t=this.props,n=t.depth,a=t.src,r=(t.namespace,t.name,t.type,t.parent_type),i=t.theme,s=t.jsvRoot,c=t.iconStyle,l=x(t,[\"depth\",\"src\",\"namespace\",\"name\",\"type\",\"parent_type\",\"theme\",\"jsvRoot\",\"iconStyle\"]),u=this.state,f=u.object_type,p=u.expanded,d={};return s||\"array_group\"===r?\"array_group\"===r&&(d.borderLeft=0,d.display=\"inline\"):d.paddingLeft=5*this.props.indentWidth,m.a.createElement(\"div\",Object.assign({className:\"object-key-val\",onMouseEnter:function(){return e.setState(o(o({},e.state),{},{hovered:!0}))},onMouseLeave:function(){return e.setState(o(o({},e.state),{},{hovered:!1}))}},A(i,s?\"jsv-root\":\"objectKeyVal\",d)),this.getBraceStart(f,p),p?this.getObjectContent(n,a,o({theme:i,iconStyle:c},l)):this.getEllipsis(),m.a.createElement(\"span\",{className:\"brace-row\"},m.a.createElement(\"span\",{style:o(o({},A(i,\"brace\").style),{},{paddingLeft:p?\"3px\":\"0px\"})},\"array\"===f?\"]\":\"}\"),p?null:this.getObjectMetaData(a)))}}],[{key:\"getDerivedStateFromProps\",value:function(e,t){var a=t.prevProps;return e.src!==a.src||e.collapsed!==a.collapsed||e.name!==a.name||e.namespace!==a.namespace||e.rjvId!==a.rjvId?o(o({},n.getState(e)),{},{prevProps:e}):null}}]),n}(m.a.PureComponent);Me.getState=function(e){var t=Object.keys(e.src).length,n=(!1===e.collapsed||!0!==e.collapsed&&e.collapsed>e.depth)&&(!e.shouldCollapse||!1===e.shouldCollapse({name:e.name,src:e.src,type:_(e.src),namespace:e.namespace}))&&0!==t;return{expanded:q.get(e.rjvId,e.namespace,\"expanded\",n),object_type:\"array\"===e.type?\"array\":\"object\",parent_type:\"array\"===e.type?\"array\":\"object\",size:t,hovered:!1}};var Pe=function e(t,n){i(this,e),this.name=t,this.value=n,this.type=_(n)};j(Me);var Fe=Me,De=function(e){u(n,e);var t=h(n);function n(){var e;i(this,n);for(var a=arguments.length,r=new Array(a),o=0;ot.groupArraysAfterLength&&(a=Ae),m.a.createElement(\"div\",{className:\"pretty-json-container object-container\"},m.a.createElement(\"div\",{className:\"object-content\"},m.a.createElement(a,Object.assign({namespace:n,depth:0,jsvRoot:!0},t))))},e}return n}(m.a.PureComponent),Ie=function(e){u(n,e);var t=h(n);function n(e){var a;return i(this,n),(a=t.call(this,e)).closeModal=function(){z.dispatch({rjvId:a.props.rjvId,name:\"RESET\"})},a.submit=function(){a.props.submit(a.state.input)},a.state={input:e.input?e.input:\"\"},a}return c(n,[{key:\"render\",value:function(){var e=this,t=this.props,n=t.theme,a=t.rjvId,r=t.isValid,o=this.state.input,i=r(o);return m.a.createElement(\"div\",Object.assign({className:\"key-modal-request\"},A(n,\"key-modal-request\"),{onClick:this.closeModal}),m.a.createElement(\"div\",Object.assign({},A(n,\"key-modal\"),{onClick:function(e){e.stopPropagation()}}),m.a.createElement(\"div\",A(n,\"key-modal-label\"),\"Key Name:\"),m.a.createElement(\"div\",{style:{position:\"relative\"}},m.a.createElement(\"input\",Object.assign({},A(n,\"key-modal-input\"),{className:\"key-modal-input\",ref:function(e){return e&&e.focus()},spellCheck:!1,value:o,placeholder:\"...\",onChange:function(t){e.setState({input:t.target.value})},onKeyPress:function(t){i&&\"Enter\"===t.key?e.submit():\"Escape\"===t.key&&e.closeModal()}})),i?m.a.createElement(je,Object.assign({},A(n,\"key-modal-submit\"),{className:\"key-modal-submit\",onClick:function(t){return e.submit()}})):null),m.a.createElement(\"span\",A(n,\"key-modal-cancel\"),m.a.createElement(ge,Object.assign({},A(n,\"key-modal-cancel-icon\"),{className:\"key-modal-cancel\",onClick:function(){z.dispatch({rjvId:a,name:\"RESET\"})}})))))}}]),n}(m.a.PureComponent),Re=function(e){u(n,e);var t=h(n);function n(){var e;i(this,n);for(var a=arguments.length,r=new Array(a),s=0;s (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouterDom = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar initState = {\n action: null,\n isActive: false,\n nextLocation: null\n};\n\n/**\n * A replacement component for the react-router `Prompt`.\n * Allows for more flexible dialogs.\n *\n * @example\n * \n * {({isActive, onConfirm, onCancel}) => (\n * \n *
\n *

Do you really want to leave?

\n * \n * \n *
\n *
\n * )}\n *
\n */\n\nvar NavigationPrompt = function (_React$Component) {\n _inherits(NavigationPrompt, _React$Component);\n\n /*:: _prevUserAction: string; */\n /*:: _isMounted: bool; */\n\n function NavigationPrompt(props) {\n _classCallCheck(this, NavigationPrompt);\n\n // `_prevUserAction` weirdness because setState()'s callback is not getting invoked.\n // See: See https://github.com/ZacharyRSmith/react-router-navigation-prompt/pull/9\n // I don't like making this an instance var,\n var _this = _possibleConstructorReturn(this, (NavigationPrompt.__proto__ || Object.getPrototypeOf(NavigationPrompt)).call(this, props));\n\n _this._prevUserAction = '';\n\n // This component could be used from inside a page, and therefore could be\n // mounted/unmounted when the route changes.\n _this._isMounted = true;\n\n _this.block = _this.block.bind(_this);\n _this.onBeforeUnload = _this.onBeforeUnload.bind(_this);\n _this.onCancel = _this.onCancel.bind(_this);\n _this.onConfirm = _this.onConfirm.bind(_this);\n _this.when = _this.when.bind(_this);\n\n _this.state = _extends({}, initState, { unblock: function unblock() {} /* unblock will be set in componentDidMount */ });\n return _this;\n }\n\n _createClass(NavigationPrompt, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (!this.props.disableNative) {\n window.addEventListener('beforeunload', this.onBeforeUnload);\n }\n\n this.setState({ unblock: this.props.history.block(this.block) });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this._prevUserAction === 'CANCEL' && typeof this.props.afterCancel === 'function') {\n this.props.afterCancel();\n } else if (this._prevUserAction === 'CONFIRM' && typeof this.props.afterConfirm === 'function') {\n this.props.afterConfirm();\n }\n this._prevUserAction = '';\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this._isMounted = false;\n if (this._prevUserAction === 'CONFIRM' && typeof this.props.afterConfirm === 'function') {\n this._prevUserAction = '';\n this.props.afterConfirm();\n }\n this.state.unblock();\n if (!this.props.disableNative) {\n window.removeEventListener('beforeunload', this.onBeforeUnload);\n }\n }\n }, {\n key: 'block',\n value: function block(nextLocation, action) {\n var result = this.when(nextLocation, action);\n if (result) {\n this.setState({\n action: action,\n nextLocation: nextLocation,\n isActive: true\n });\n }\n return !result;\n }\n }, {\n key: 'navigateToNextLocation',\n value: function navigateToNextLocation(cb) {\n var _this2 = this;\n\n var _state = this.state,\n action = _state.action,\n nextLocation = _state.nextLocation;\n\n action = {\n 'POP': this.props.allowGoBack ? 'goBack' : 'push',\n 'PUSH': 'push',\n 'REPLACE': 'replace'\n }[action || 'PUSH'];\n if (!nextLocation) nextLocation = { pathname: '/' };\n var history = this.props.history;\n\n\n this.state.unblock();\n this._prevUserAction = 'CONFIRM';\n if (action === 'goBack') {\n // Because there is asynchronous time between calling history.goBack()\n // and history actually changing, we need to set up this temporary callback\n // -- if we tried to run this synchronously after calling history.goBack(),\n // then navigateToNextLocation would be triggered again.\n var unlisten = history.listen(function () {\n unlisten();\n if (_this2._isMounted) {\n // Just in case we unmounted on the route change\n _this2.setState(_extends({}, initState, {\n unblock: history.block(_this2.block)\n }));\n }\n });\n history.goBack();\n } else {\n // $FlowFixMe history.replace()'s type expects LocationShape even though it works with Location.\n history[action](nextLocation); // could unmount at this point\n if (this._isMounted) {\n // Just in case we unmounted on the route change\n this.setState(_extends({}, initState, {\n unblock: this.props.history.block(this.block)\n })); // FIXME? Does history.listen need to be used instead, for async?\n }\n }\n }\n }, {\n key: 'onCancel',\n value: function onCancel() {\n var _this3 = this;\n\n (this.props.beforeCancel || function (cb) {\n cb();\n })(function () {\n _this3._prevUserAction = 'CANCEL';\n _this3.setState(_extends({}, initState));\n });\n }\n }, {\n key: 'onConfirm',\n value: function onConfirm() {\n var _this4 = this;\n\n (this.props.beforeConfirm || function (cb) {\n cb();\n })(function () {\n _this4.navigateToNextLocation(_this4.props.afterConfirm);\n });\n }\n }, {\n key: 'onBeforeUnload',\n value: function onBeforeUnload(e) {\n if (!this.when()) return;\n var msg = 'Do you want to leave this site?\\n\\nChanges you made may not be saved.';\n e.returnValue = msg;\n return msg;\n }\n }, {\n key: 'when',\n value: function when(nextLocation, action) {\n if (typeof this.props.when === 'function') {\n return this.props.when(this.props.location, nextLocation, action);\n } else {\n return this.props.when;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n if (!this.state.isActive && !this.props.renderIfNotActive) return null;\n return _react2.default.createElement(\n 'div',\n null,\n this.props.children({\n isActive: this.state.isActive,\n onConfirm: this.onConfirm,\n onCancel: this.onCancel\n })\n );\n }\n }]);\n\n return NavigationPrompt;\n}(_react2.default.Component);\n\nexports.default = (0, _reactRouterDom.withRouter)(NavigationPrompt);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"react\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"react-router-dom\");\n\n/***/ })\n/******/ ]);","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon \n// Copyright (c) 2017-2019 James Kyle \n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React, { Component, isValidElement, cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { Transition, TransitionGroup } from 'react-transition-group';\nimport { render } from 'react-dom';\n\nvar POSITION = {\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n TOP_CENTER: 'top-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n BOTTOM_CENTER: 'bottom-center'\n};\nvar TYPE = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default'\n};\nvar ACTION = {\n SHOW: 0,\n CLEAR: 1,\n DID_MOUNT: 2,\n WILL_UNMOUNT: 3,\n ON_CHANGE: 4\n};\nvar NOOP = function NOOP() {};\nvar RT_NAMESPACE = 'Toastify';\n\nfunction isValidDelay(val) {\n return typeof val === 'number' && !isNaN(val) && val > 0;\n}\nfunction objectValues(obj) {\n return Object.keys(obj).map(function (key) {\n return obj[key];\n });\n}\nvar canUseDom = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withRequired(fn) {\n fn.isRequired = function (props, propName, componentName) {\n var prop = props[propName];\n\n if (typeof prop === 'undefined') {\n return new Error(\"The prop \" + propName + \" is marked as required in \\n \" + componentName + \", but its value is undefined.\");\n }\n\n fn(props, propName, componentName);\n };\n\n return fn;\n}\n\nvar falseOrDelay = withRequired(function (props, propName, componentName) {\n var prop = props[propName];\n\n if (prop !== false && !isValidDelay(prop)) {\n return new Error(componentName + \" expect \" + propName + \" \\n to be a valid Number > 0 or equal to false. \" + prop + \" given.\");\n }\n\n return null;\n});\n\nvar eventManager = {\n list: new Map(),\n emitQueue: new Map(),\n on: function on(event, callback) {\n this.list.has(event) || this.list.set(event, []);\n this.list.get(event).push(callback);\n return this;\n },\n off: function off(event) {\n this.list.delete(event);\n return this;\n },\n cancelEmit: function cancelEmit(event) {\n var timers = this.emitQueue.get(event);\n\n if (timers) {\n timers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n this.emitQueue.delete(event);\n }\n\n return this;\n },\n\n /**\n * Enqueue the event at the end of the call stack\n * Doing so let the user call toast as follow:\n * toast('1')\n * toast('2')\n * toast('3')\n * Without setTimemout the code above will not work\n */\n emit: function emit(event) {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n this.list.has(event) && this.list.get(event).forEach(function (callback) {\n var timer = setTimeout(function () {\n callback.apply(void 0, args);\n }, 0);\n _this.emitQueue.has(event) || _this.emitQueue.set(event, []);\n\n _this.emitQueue.get(event).push(timer);\n });\n }\n};\n\nfunction cssTransition(_ref) {\n var enter = _ref.enter,\n exit = _ref.exit,\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 750 : _ref$duration,\n _ref$appendPosition = _ref.appendPosition,\n appendPosition = _ref$appendPosition === void 0 ? false : _ref$appendPosition;\n return function Animation(_ref2) {\n var children = _ref2.children,\n position = _ref2.position,\n preventExitTransition = _ref2.preventExitTransition,\n props = _objectWithoutPropertiesLoose(_ref2, [\"children\", \"position\", \"preventExitTransition\"]);\n\n var enterClassName = appendPosition ? enter + \"--\" + position : enter;\n var exitClassName = appendPosition ? exit + \"--\" + position : exit;\n var enterDuration, exitDuration;\n\n if (Array.isArray(duration) && duration.length === 2) {\n enterDuration = duration[0];\n exitDuration = duration[1];\n } else {\n enterDuration = exitDuration = duration;\n }\n\n var onEnter = function onEnter(node) {\n node.classList.add(enterClassName);\n node.style.animationFillMode = 'forwards';\n node.style.animationDuration = enterDuration * 0.001 + \"s\";\n };\n\n var onEntered = function onEntered(node) {\n node.classList.remove(enterClassName);\n node.style.cssText = '';\n };\n\n var onExit = function onExit(node) {\n node.classList.add(exitClassName);\n node.style.animationFillMode = 'forwards';\n node.style.animationDuration = exitDuration * 0.001 + \"s\";\n };\n\n return React.createElement(Transition, _extends({}, props, {\n timeout: preventExitTransition ? 0 : {\n enter: enterDuration,\n exit: exitDuration\n },\n onEnter: onEnter,\n onEntered: onEntered,\n onExit: preventExitTransition ? NOOP : onExit\n }), children);\n };\n}\n\nfunction ProgressBar(_ref) {\n var _cx, _animationEvent;\n\n var delay = _ref.delay,\n isRunning = _ref.isRunning,\n closeToast = _ref.closeToast,\n type = _ref.type,\n hide = _ref.hide,\n className = _ref.className,\n userStyle = _ref.style,\n controlledProgress = _ref.controlledProgress,\n progress = _ref.progress,\n rtl = _ref.rtl;\n\n var style = _extends({}, userStyle, {\n animationDuration: delay + \"ms\",\n animationPlayState: isRunning ? 'running' : 'paused',\n opacity: hide ? 0 : 1,\n transform: controlledProgress ? \"scaleX(\" + progress + \")\" : null\n });\n\n var classNames = cx(RT_NAMESPACE + \"__progress-bar\", controlledProgress ? RT_NAMESPACE + \"__progress-bar--controlled\" : RT_NAMESPACE + \"__progress-bar--animated\", RT_NAMESPACE + \"__progress-bar--\" + type, (_cx = {}, _cx[RT_NAMESPACE + \"__progress-bar--rtl\"] = rtl, _cx), className);\n var animationEvent = (_animationEvent = {}, _animationEvent[controlledProgress && progress >= 1 ? 'onTransitionEnd' : 'onAnimationEnd'] = controlledProgress && progress < 1 ? null : closeToast, _animationEvent);\n return React.createElement(\"div\", _extends({\n className: classNames,\n style: style\n }, animationEvent));\n}\n\nProgressBar.propTypes = {\n /**\n * The animation delay which determine when to close the toast\n */\n delay: falseOrDelay.isRequired,\n\n /**\n * Whether or not the animation is running or paused\n */\n isRunning: PropTypes.bool.isRequired,\n\n /**\n * Func to close the current toast\n */\n closeToast: PropTypes.func.isRequired,\n\n /**\n * Support rtl content\n */\n rtl: PropTypes.bool.isRequired,\n\n /**\n * Optional type : info, success ...\n */\n type: PropTypes.string,\n\n /**\n * Hide or not the progress bar\n */\n hide: PropTypes.bool,\n\n /**\n * Optionnal className\n */\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * Controlled progress value\n */\n progress: PropTypes.number,\n\n /**\n * Tell wether or not controlled progress bar is used\n */\n controlledProgress: PropTypes.bool\n};\nProgressBar.defaultProps = {\n type: TYPE.DEFAULT,\n hide: false\n};\n\nfunction getX(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientX : e.clientX;\n}\n\nfunction getY(e) {\n return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientY : e.clientY;\n}\n\nvar iLoveInternetExplorer = canUseDom && /(msie|trident)/i.test(navigator.userAgent);\n\nvar Toast =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(Toast, _Component);\n\n function Toast() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n isRunning: true,\n preventExitTransition: false\n };\n _this.flag = {\n canCloseOnClick: true,\n canDrag: false\n };\n _this.drag = {\n start: 0,\n x: 0,\n y: 0,\n deltaX: 0,\n removalDistance: 0\n };\n _this.boundingRect = null;\n _this.ref = null;\n\n _this.pauseToast = function () {\n if (_this.props.autoClose) {\n _this.setState({\n isRunning: false\n });\n }\n };\n\n _this.playToast = function () {\n if (_this.props.autoClose) {\n _this.setState({\n isRunning: true\n });\n }\n };\n\n _this.onDragStart = function (e) {\n _this.flag.canCloseOnClick = true;\n _this.flag.canDrag = true;\n _this.boundingRect = _this.ref.getBoundingClientRect();\n _this.ref.style.transition = '';\n _this.drag.start = _this.drag.x = getX(e.nativeEvent);\n _this.drag.removalDistance = _this.ref.offsetWidth * (_this.props.draggablePercent / 100);\n };\n\n _this.onDragMove = function (e) {\n if (_this.flag.canDrag) {\n if (_this.state.isRunning) {\n _this.pauseToast();\n }\n\n _this.drag.x = getX(e);\n _this.drag.deltaX = _this.drag.x - _this.drag.start;\n _this.drag.y = getY(e); // prevent false positif during a toast click\n\n _this.drag.start !== _this.drag.x && (_this.flag.canCloseOnClick = false);\n _this.ref.style.transform = \"translateX(\" + _this.drag.deltaX + \"px)\";\n _this.ref.style.opacity = 1 - Math.abs(_this.drag.deltaX / _this.drag.removalDistance);\n }\n };\n\n _this.onDragEnd = function (e) {\n if (_this.flag.canDrag) {\n _this.flag.canDrag = false;\n\n if (Math.abs(_this.drag.deltaX) > _this.drag.removalDistance) {\n _this.setState({\n preventExitTransition: true\n }, _this.props.closeToast);\n\n return;\n }\n\n _this.ref.style.transition = 'transform 0.2s, opacity 0.2s';\n _this.ref.style.transform = 'translateX(0)';\n _this.ref.style.opacity = 1;\n }\n };\n\n _this.onDragTransitionEnd = function () {\n if (_this.boundingRect) {\n var _this$boundingRect = _this.boundingRect,\n top = _this$boundingRect.top,\n bottom = _this$boundingRect.bottom,\n left = _this$boundingRect.left,\n right = _this$boundingRect.right;\n\n if (_this.props.pauseOnHover && _this.drag.x >= left && _this.drag.x <= right && _this.drag.y >= top && _this.drag.y <= bottom) {\n _this.pauseToast();\n } else {\n _this.playToast();\n }\n }\n };\n\n _this.onExitTransitionEnd = function () {\n if (iLoveInternetExplorer) {\n _this.props.onExited();\n\n return;\n }\n\n var height = _this.ref.scrollHeight;\n var style = _this.ref.style;\n requestAnimationFrame(function () {\n style.minHeight = 'initial';\n style.height = height + 'px';\n style.transition = 'all 0.4s ';\n requestAnimationFrame(function () {\n style.height = 0;\n style.padding = 0;\n style.margin = 0;\n });\n setTimeout(function () {\n return _this.props.onExited();\n }, 400);\n });\n };\n\n return _this;\n }\n\n var _proto = Toast.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.props.onOpen(this.props.children.props);\n\n if (this.props.draggable) {\n this.bindDragEvents();\n } // Maybe I could bind the event in the ToastContainer and rely on delegation\n\n\n if (this.props.pauseOnFocusLoss) {\n this.bindFocusEvents();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (prevProps.draggable !== this.props.draggable) {\n if (this.props.draggable) {\n this.bindDragEvents();\n } else {\n this.unbindDragEvents();\n }\n }\n\n if (prevProps.pauseOnFocusLoss !== this.props.pauseOnFocusLoss) {\n if (this.props.pauseOnFocusLoss) {\n this.bindFocusEvents();\n } else {\n this.unbindFocusEvents();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.props.onClose(this.props.children.props);\n\n if (this.props.draggable) {\n this.unbindDragEvents();\n }\n\n if (this.props.pauseOnFocusLoss) {\n this.unbindFocusEvents();\n }\n };\n\n _proto.bindFocusEvents = function bindFocusEvents() {\n window.addEventListener('focus', this.playToast);\n window.addEventListener('blur', this.pauseToast);\n };\n\n _proto.unbindFocusEvents = function unbindFocusEvents() {\n window.removeEventListener('focus', this.playToast);\n window.removeEventListener('blur', this.pauseToast);\n };\n\n _proto.bindDragEvents = function bindDragEvents() {\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.onDragEnd);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.onDragEnd);\n };\n\n _proto.unbindDragEvents = function unbindDragEvents() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.onDragEnd);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.onDragEnd);\n };\n\n _proto.render = function render() {\n var _cx,\n _this2 = this;\n\n var _this$props = this.props,\n closeButton = _this$props.closeButton,\n children = _this$props.children,\n autoClose = _this$props.autoClose,\n pauseOnHover = _this$props.pauseOnHover,\n onClick = _this$props.onClick,\n closeOnClick = _this$props.closeOnClick,\n type = _this$props.type,\n hideProgressBar = _this$props.hideProgressBar,\n closeToast = _this$props.closeToast,\n Transition = _this$props.transition,\n position = _this$props.position,\n className = _this$props.className,\n bodyClassName = _this$props.bodyClassName,\n progressClassName = _this$props.progressClassName,\n progressStyle = _this$props.progressStyle,\n updateId = _this$props.updateId,\n role = _this$props.role,\n progress = _this$props.progress,\n rtl = _this$props.rtl;\n var toastProps = {\n className: cx(RT_NAMESPACE + \"__toast\", RT_NAMESPACE + \"__toast--\" + type, (_cx = {}, _cx[RT_NAMESPACE + \"__toast--rtl\"] = rtl, _cx), className)\n };\n\n if (autoClose && pauseOnHover) {\n toastProps.onMouseEnter = this.pauseToast;\n toastProps.onMouseLeave = this.playToast;\n } // prevent toast from closing when user drags the toast\n\n\n if (closeOnClick) {\n toastProps.onClick = function (e) {\n onClick && onClick(e);\n _this2.flag.canCloseOnClick && closeToast();\n };\n }\n\n var controlledProgress = parseFloat(progress) === progress;\n return React.createElement(Transition, {\n in: this.props.in,\n appear: true,\n onExited: this.onExitTransitionEnd,\n position: position,\n preventExitTransition: this.state.preventExitTransition\n }, React.createElement(\"div\", _extends({\n onClick: onClick\n }, toastProps, {\n ref: function ref(_ref) {\n return _this2.ref = _ref;\n },\n onMouseDown: this.onDragStart,\n onTouchStart: this.onDragStart,\n onMouseUp: this.onDragTransitionEnd,\n onTouchEnd: this.onDragTransitionEnd\n }), React.createElement(\"div\", _extends({}, this.props.in && {\n role: role\n }, {\n className: cx(RT_NAMESPACE + \"__toast-body\", bodyClassName)\n }), children), closeButton && closeButton, (autoClose || controlledProgress) && React.createElement(ProgressBar, _extends({}, updateId && !controlledProgress ? {\n key: \"pb-\" + updateId\n } : {}, {\n rtl: rtl,\n delay: autoClose,\n isRunning: this.state.isRunning,\n closeToast: closeToast,\n hide: hideProgressBar,\n type: type,\n style: progressStyle,\n className: progressClassName,\n controlledProgress: controlledProgress,\n progress: progress\n }))));\n };\n\n return Toast;\n}(Component);\n\nToast.propTypes = {\n closeButton: PropTypes.oneOfType([PropTypes.node, PropTypes.bool]).isRequired,\n autoClose: falseOrDelay.isRequired,\n children: PropTypes.node.isRequired,\n closeToast: PropTypes.func.isRequired,\n position: PropTypes.oneOf(objectValues(POSITION)).isRequired,\n pauseOnHover: PropTypes.bool.isRequired,\n pauseOnFocusLoss: PropTypes.bool.isRequired,\n closeOnClick: PropTypes.bool.isRequired,\n transition: PropTypes.func.isRequired,\n rtl: PropTypes.bool.isRequired,\n hideProgressBar: PropTypes.bool.isRequired,\n draggable: PropTypes.bool.isRequired,\n draggablePercent: PropTypes.number.isRequired,\n in: PropTypes.bool,\n onExited: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n type: PropTypes.oneOf(objectValues(TYPE)),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n bodyClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n progressClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n progressStyle: PropTypes.object,\n progress: PropTypes.number,\n updateId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n ariaLabel: PropTypes.string,\n containerId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n role: PropTypes.string\n};\nToast.defaultProps = {\n type: TYPE.DEFAULT,\n in: true,\n onOpen: NOOP,\n onClose: NOOP,\n className: null,\n bodyClassName: null,\n progressClassName: null,\n updateId: null\n};\n\nfunction CloseButton(_ref) {\n var closeToast = _ref.closeToast,\n type = _ref.type,\n ariaLabel = _ref.ariaLabel;\n return React.createElement(\"button\", {\n className: RT_NAMESPACE + \"__close-button \" + RT_NAMESPACE + \"__close-button--\" + type,\n type: \"button\",\n onClick: function onClick(e) {\n e.stopPropagation();\n closeToast(e);\n },\n \"aria-label\": ariaLabel\n }, \"\\u2716\\uFE0E\");\n}\n\nCloseButton.propTypes = {\n closeToast: PropTypes.func,\n arialLabel: PropTypes.string\n};\nCloseButton.defaultProps = {\n ariaLabel: 'close'\n};\n\nvar Bounce = cssTransition({\n enter: RT_NAMESPACE + \"__bounce-enter\",\n exit: RT_NAMESPACE + \"__bounce-exit\",\n appendPosition: true\n});\nvar Slide = cssTransition({\n enter: RT_NAMESPACE + \"__slide-enter\",\n exit: RT_NAMESPACE + \"__slide-exit\",\n duration: [450, 750],\n appendPosition: true\n});\nvar Zoom = cssTransition({\n enter: RT_NAMESPACE + \"__zoom-enter\",\n exit: RT_NAMESPACE + \"__zoom-exit\"\n});\nvar Flip = cssTransition({\n enter: RT_NAMESPACE + \"__flip-enter\",\n exit: RT_NAMESPACE + \"__flip-exit\"\n});\n\nvar ToastContainer =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(ToastContainer, _Component);\n\n function ToastContainer() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n toast: []\n };\n _this.toastKey = 1;\n _this.collection = {};\n\n _this.isToastActive = function (id) {\n return _this.state.toast.indexOf(id) !== -1;\n };\n\n return _this;\n }\n\n var _proto = ToastContainer.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n eventManager.cancelEmit(ACTION.WILL_UNMOUNT).on(ACTION.SHOW, function (content, options) {\n return _this2.ref ? _this2.buildToast(content, options) : null;\n }).on(ACTION.CLEAR, function (id) {\n return !_this2.ref ? null : id == null ? _this2.clear() : _this2.removeToast(id);\n }).emit(ACTION.DID_MOUNT, this);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n eventManager.emit(ACTION.WILL_UNMOUNT, this);\n };\n\n _proto.removeToast = function removeToast(id) {\n this.setState({\n toast: this.state.toast.filter(function (v) {\n return v !== id;\n })\n }, this.dispatchChange);\n };\n\n _proto.dispatchChange = function dispatchChange() {\n eventManager.emit(ACTION.ON_CHANGE, this.state.toast.length, this.props.containerId);\n };\n\n _proto.makeCloseButton = function makeCloseButton(toastClose, toastId, type) {\n var _this3 = this;\n\n var closeButton = this.props.closeButton;\n\n if (isValidElement(toastClose) || toastClose === false) {\n closeButton = toastClose;\n } else if (toastClose === true) {\n closeButton = this.props.closeButton && typeof this.props.closeButton !== 'boolean' ? this.props.closeButton : React.createElement(CloseButton, null);\n }\n\n return closeButton === false ? false : cloneElement(closeButton, {\n closeToast: function closeToast() {\n return _this3.removeToast(toastId);\n },\n type: type\n });\n };\n\n _proto.getAutoCloseDelay = function getAutoCloseDelay(toastAutoClose) {\n return toastAutoClose === false || isValidDelay(toastAutoClose) ? toastAutoClose : this.props.autoClose;\n };\n\n _proto.canBeRendered = function canBeRendered(content) {\n return isValidElement(content) || typeof content === 'string' || typeof content === 'number' || typeof content === 'function';\n };\n\n _proto.parseClassName = function parseClassName(prop) {\n if (typeof prop === 'string') {\n return prop;\n } else if (prop !== null && typeof prop === 'object' && 'toString' in prop) {\n return prop.toString();\n }\n\n return null;\n };\n\n _proto.belongToContainer = function belongToContainer(_ref) {\n var containerId = _ref.containerId;\n return containerId === this.props.containerId;\n };\n\n _proto.buildToast = function buildToast(content, _ref2) {\n var _this4 = this;\n\n var delay = _ref2.delay,\n options = _objectWithoutPropertiesLoose(_ref2, [\"delay\"]);\n\n if (!this.canBeRendered(content)) {\n throw new Error(\"The element you provided cannot be rendered. You provided an element of type \" + typeof content);\n }\n\n var toastId = options.toastId,\n updateId = options.updateId; // Check for multi-container and also for duplicate toastId\n // Maybe it would be better to extract it\n\n if (this.props.enableMultiContainer && !this.belongToContainer(options) || this.isToastActive(toastId) && updateId == null) {\n return;\n }\n\n var closeToast = function closeToast() {\n return _this4.removeToast(toastId);\n };\n\n var toastOptions = {\n id: toastId,\n // ⚠️ if no options.key, this.toastKey - 1 is assigned\n key: options.key || this.toastKey++,\n type: options.type,\n closeToast: closeToast,\n updateId: options.updateId,\n rtl: this.props.rtl,\n position: options.position || this.props.position,\n transition: options.transition || this.props.transition,\n className: this.parseClassName(options.className || this.props.toastClassName),\n bodyClassName: this.parseClassName(options.bodyClassName || this.props.bodyClassName),\n onClick: options.onClick || this.props.onClick,\n closeButton: this.makeCloseButton(options.closeButton, toastId, options.type),\n pauseOnHover: typeof options.pauseOnHover === 'boolean' ? options.pauseOnHover : this.props.pauseOnHover,\n pauseOnFocusLoss: typeof options.pauseOnFocusLoss === 'boolean' ? options.pauseOnFocusLoss : this.props.pauseOnFocusLoss,\n draggable: typeof options.draggable === 'boolean' ? options.draggable : this.props.draggable,\n draggablePercent: typeof options.draggablePercent === 'number' && !isNaN(options.draggablePercent) ? options.draggablePercent : this.props.draggablePercent,\n closeOnClick: typeof options.closeOnClick === 'boolean' ? options.closeOnClick : this.props.closeOnClick,\n progressClassName: this.parseClassName(options.progressClassName || this.props.progressClassName),\n progressStyle: this.props.progressStyle,\n autoClose: this.getAutoCloseDelay(options.autoClose),\n hideProgressBar: typeof options.hideProgressBar === 'boolean' ? options.hideProgressBar : this.props.hideProgressBar,\n progress: parseFloat(options.progress),\n role: typeof options.role === 'string' ? options.role : this.props.role\n };\n typeof options.onOpen === 'function' && (toastOptions.onOpen = options.onOpen);\n typeof options.onClose === 'function' && (toastOptions.onClose = options.onClose); // add closeToast function to react component only\n\n if (isValidElement(content) && typeof content.type !== 'string' && typeof content.type !== 'number') {\n content = cloneElement(content, {\n closeToast: closeToast\n });\n } else if (typeof content === 'function') {\n content = content({\n closeToast: closeToast\n });\n }\n\n if (isValidDelay(delay)) {\n setTimeout(function () {\n _this4.appendToast(toastOptions, content, options.staleToastId);\n }, delay);\n } else {\n this.appendToast(toastOptions, content, options.staleToastId);\n }\n };\n\n _proto.appendToast = function appendToast(options, content, staleToastId) {\n var _extends2;\n\n var id = options.id,\n updateId = options.updateId;\n this.collection = _extends({}, this.collection, (_extends2 = {}, _extends2[id] = {\n options: options,\n content: content,\n position: options.position\n }, _extends2));\n this.setState({\n toast: (updateId ? [].concat(this.state.toast) : [].concat(this.state.toast, [id])).filter(function (id) {\n return id !== staleToastId;\n })\n }, this.dispatchChange);\n };\n\n _proto.clear = function clear() {\n this.setState({\n toast: []\n });\n };\n\n _proto.renderToast = function renderToast() {\n var _this5 = this;\n\n var toastToRender = {};\n var _this$props = this.props,\n className = _this$props.className,\n style = _this$props.style,\n newestOnTop = _this$props.newestOnTop;\n var collection = newestOnTop ? Object.keys(this.collection).reverse() : Object.keys(this.collection); // group toast by position\n\n collection.forEach(function (toastId) {\n var _this5$collection$toa = _this5.collection[toastId],\n position = _this5$collection$toa.position,\n options = _this5$collection$toa.options,\n content = _this5$collection$toa.content;\n toastToRender[position] || (toastToRender[position] = []);\n\n if (_this5.state.toast.indexOf(options.id) !== -1) {\n toastToRender[position].push(React.createElement(Toast, _extends({}, options, {\n isDocumentHidden: _this5.state.isDocumentHidden,\n key: \"toast-\" + options.key\n }), content));\n } else {\n toastToRender[position].push(null);\n delete _this5.collection[toastId];\n }\n });\n return Object.keys(toastToRender).map(function (position) {\n var _cx;\n\n var disablePointer = toastToRender[position].length === 1 && toastToRender[position][0] === null;\n var props = {\n className: cx(RT_NAMESPACE + \"__toast-container\", RT_NAMESPACE + \"__toast-container--\" + position, (_cx = {}, _cx[RT_NAMESPACE + \"__toast-container--rtl\"] = _this5.props.rtl, _cx), _this5.parseClassName(className)),\n style: disablePointer ? _extends({}, style, {\n pointerEvents: 'none'\n }) : _extends({}, style)\n };\n return React.createElement(TransitionGroup, _extends({}, props, {\n key: \"container-\" + position\n }), toastToRender[position]);\n });\n };\n\n _proto.render = function render() {\n var _this6 = this;\n\n return React.createElement(\"div\", {\n ref: function ref(node) {\n return _this6.ref = node;\n },\n className: \"\" + RT_NAMESPACE\n }, this.renderToast());\n };\n\n return ToastContainer;\n}(Component);\n\nToastContainer.propTypes = {\n /**\n * Set toast position\n */\n position: PropTypes.oneOf(objectValues(POSITION)),\n\n /**\n * Disable or set autoClose delay\n */\n autoClose: falseOrDelay,\n\n /**\n * Disable or set a custom react element for the close button\n */\n closeButton: PropTypes.oneOfType([PropTypes.node, PropTypes.bool]),\n\n /**\n * Hide or not progress bar when autoClose is enabled\n */\n hideProgressBar: PropTypes.bool,\n\n /**\n * Pause toast duration on hover\n */\n pauseOnHover: PropTypes.bool,\n\n /**\n * Dismiss toast on click\n */\n closeOnClick: PropTypes.bool,\n\n /**\n * Newest on top\n */\n newestOnTop: PropTypes.bool,\n\n /**\n * An optional className\n */\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional style\n */\n style: PropTypes.object,\n\n /**\n * An optional className for the toast\n */\n toastClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional className for the toast body\n */\n bodyClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional className for the toast progress bar\n */\n progressClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n\n /**\n * An optional style for the toast progress bar\n */\n progressStyle: PropTypes.object,\n\n /**\n * Define enter and exit transition using react-transition-group\n */\n transition: PropTypes.func,\n\n /**\n * Support rtl display\n */\n rtl: PropTypes.bool,\n\n /**\n * Allow toast to be draggable\n */\n draggable: PropTypes.bool,\n\n /**\n * The percentage of the toast's width it takes for a drag to dismiss a toast\n */\n draggablePercent: PropTypes.number,\n\n /**\n * Pause the toast on focus loss\n */\n pauseOnFocusLoss: PropTypes.bool,\n\n /**\n * Show the toast only if it includes containerId and it's the same as containerId\n */\n enableMultiContainer: PropTypes.bool,\n\n /**\n * Set id to handle multiple container\n */\n containerId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Set role attribute for the toast body\n */\n role: PropTypes.string,\n\n /**\n * Fired when clicking inside toaster\n */\n onClick: PropTypes.func\n};\nToastContainer.defaultProps = {\n position: POSITION.TOP_RIGHT,\n transition: Bounce,\n rtl: false,\n autoClose: 5000,\n hideProgressBar: false,\n closeButton: React.createElement(CloseButton, null),\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n closeOnClick: true,\n newestOnTop: false,\n draggable: true,\n draggablePercent: 80,\n className: null,\n style: null,\n toastClassName: null,\n bodyClassName: null,\n progressClassName: null,\n progressStyle: null,\n role: 'alert'\n};\n\nvar containers = new Map();\nvar latestInstance = null;\nvar containerDomNode = null;\nvar containerConfig = {};\nvar queue = [];\nvar lazy = false;\n/**\n * Check whether any container is currently mounted in the DOM\n */\n\nfunction isAnyContainerMounted() {\n return containers.size > 0;\n}\n/**\n * Get the container by id. Returns the last container declared when no id is given.\n */\n\n\nfunction getContainer(containerId) {\n if (!isAnyContainerMounted()) return null;\n if (!containerId) return containers.get(latestInstance);\n return containers.get(containerId);\n}\n/**\n * Get the toast by id, given it's in the DOM, otherwise returns null\n */\n\n\nfunction getToast(toastId, _ref) {\n var containerId = _ref.containerId;\n var container = getContainer(containerId);\n if (!container) return null;\n var toast = container.collection[toastId];\n if (typeof toast === 'undefined') return null;\n return toast;\n}\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\n\n\nfunction mergeOptions(options, type) {\n return _extends({}, options, {\n type: type,\n toastId: getToastId(options)\n });\n}\n/**\n * Generate a random toastId\n */\n\n\nfunction generateToastId() {\n return (Math.random().toString(36) + Date.now().toString(36)).substr(2, 10);\n}\n/**\n * Generate a toastId or use the one provided\n */\n\n\nfunction getToastId(options) {\n if (options && (typeof options.toastId === 'string' || typeof options.toastId === 'number' && !isNaN(options.toastId))) {\n return options.toastId;\n }\n\n return generateToastId();\n}\n/**\n * If the container is not mounted, the toast is enqueued and\n * the container lazy mounted\n */\n\n\nfunction dispatchToast(content, options) {\n if (isAnyContainerMounted()) {\n eventManager.emit(ACTION.SHOW, content, options);\n } else {\n queue.push({\n action: ACTION.SHOW,\n content: content,\n options: options\n });\n\n if (lazy && canUseDom) {\n lazy = false;\n containerDomNode = document.createElement('div');\n document.body.appendChild(containerDomNode);\n render(React.createElement(ToastContainer, containerConfig), containerDomNode);\n }\n }\n\n return options.toastId;\n}\n\nvar toast = function toast(content, options) {\n return dispatchToast(content, mergeOptions(options, options && options.type || TYPE.DEFAULT));\n};\n/**\n * For each available type create a shortcut\n */\n\n\nvar _loop = function _loop(t) {\n if (TYPE[t] !== TYPE.DEFAULT) {\n toast[TYPE[t].toLowerCase()] = function (content, options) {\n return dispatchToast(content, mergeOptions(options, options && options.type || TYPE[t]));\n };\n }\n};\n\nfor (var t in TYPE) {\n _loop(t);\n}\n/**\n * Maybe I should remove warning in favor of warn, I don't know\n */\n\n\ntoast.warn = toast.warning;\n/**\n * Remove toast programmaticaly\n */\n\ntoast.dismiss = function (id) {\n if (id === void 0) {\n id = null;\n }\n\n return isAnyContainerMounted() && eventManager.emit(ACTION.CLEAR, id);\n};\n/**\n * return true if one container is displaying the toast\n */\n\n\ntoast.isActive = function (id) {\n var isToastActive = false;\n\n if (containers.size > 0) {\n containers.forEach(function (container) {\n if (container.isToastActive(id)) {\n isToastActive = true;\n }\n });\n }\n\n return isToastActive;\n};\n\ntoast.update = function (toastId, options) {\n if (options === void 0) {\n options = {};\n }\n\n // if you call toast and toast.update directly nothing will be displayed\n // this is why I defered the update\n setTimeout(function () {\n var toast = getToast(toastId, options);\n\n if (toast) {\n var oldOptions = toast.options,\n oldContent = toast.content;\n\n var nextOptions = _extends({}, oldOptions, {}, options, {\n toastId: options.toastId || toastId\n });\n\n if (!options.toastId || options.toastId === toastId) {\n nextOptions.updateId = generateToastId();\n } else {\n nextOptions.staleToastId = toastId;\n }\n\n var content = typeof nextOptions.render !== 'undefined' ? nextOptions.render : oldContent;\n delete nextOptions.render;\n dispatchToast(content, nextOptions);\n }\n }, 0);\n};\n/**\n * Used for controlled progress bar.\n */\n\n\ntoast.done = function (id) {\n toast.update(id, {\n progress: 1\n });\n};\n/**\n * Track changes. The callback get the number of toast displayed\n */\n\n\ntoast.onChange = function (callback) {\n if (typeof callback === 'function') {\n eventManager.on(ACTION.ON_CHANGE, callback);\n }\n};\n/**\n * Configure the ToastContainer when lazy mounted\n */\n\n\ntoast.configure = function (config) {\n lazy = true;\n containerConfig = config;\n};\n\ntoast.POSITION = POSITION;\ntoast.TYPE = TYPE;\n/**\n * Wait until the ToastContainer is mounted to dispatch the toast\n * and attach isActive method\n */\n\neventManager.on(ACTION.DID_MOUNT, function (containerInstance) {\n latestInstance = containerInstance.props.containerId || containerInstance;\n containers.set(latestInstance, containerInstance);\n queue.forEach(function (item) {\n eventManager.emit(item.action, item.content, item.options);\n });\n queue = [];\n}).on(ACTION.WILL_UNMOUNT, function (containerInstance) {\n if (containerInstance) containers.delete(containerInstance.props.containerId || containerInstance);else containers.clear();\n\n if (containers.size === 0) {\n eventManager.off(ACTION.SHOW).off(ACTION.CLEAR);\n }\n\n if (canUseDom && containerDomNode) {\n document.body.removeChild(containerDomNode);\n }\n});\n\nexport { Bounce, Flip, Slide, ToastContainer, POSITION as ToastPosition, TYPE as ToastType, Zoom, cssTransition, toast };\n","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import React from 'react';\nexport default React.createContext(null);","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&(\"number\"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if(\"undefined\"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error(\"[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n// Logger with default options\\nimport { logger } from 'redux-logger'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport createLogger from 'redux-logger'\\nconst logger = createLogger({\\n // ...options\\n});\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n\"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if(\"function\"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&\"function\"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E(\"0\",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+\":\"+A(e.getMinutes(),2)+\":\"+A(e.getSeconds(),2)+\".\"+A(e.getMilliseconds(),3)},O=\"undefined\"!=typeof performance&&null!==performance&&\"function\"==typeof performance.now?performance:Date,N=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return\"function\"==typeof t||\"function\"==typeof r?S()({dispatch:t,getState:r}):void console.error(\"\\n[redux-logger v3] BREAKING CHANGE\\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\\n[redux-logger v3] Change\\n[redux-logger v3] import createLogger from 'redux-logger'\\n[redux-logger v3] to\\n[redux-logger v3] import { createLogger } from 'redux-logger'\\n\")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createWebStorage;\n\nvar _getStorage = _interopRequireDefault(require(\"./getStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createWebStorage(type) {\n var storage = (0, _getStorage.default)(type);\n return {\n getItem: function getItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.getItem(key));\n });\n },\n setItem: function setItem(key, item) {\n return new Promise(function (resolve, reject) {\n resolve(storage.setItem(key, item));\n });\n },\n removeItem: function removeItem(key) {\n return new Promise(function (resolve, reject) {\n resolve(storage.removeItem(key));\n });\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getStorage;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction noop() {}\n\nvar noopStorage = {\n getItem: noop,\n setItem: noop,\n removeItem: noop\n};\n\nfunction hasStorage(storageType) {\n if ((typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) !== 'object' || !(storageType in self)) {\n return false;\n }\n\n try {\n var storage = self[storageType];\n var testKey = \"redux-persist \".concat(storageType, \" test\");\n storage.setItem(testKey, 'test');\n storage.getItem(testKey);\n storage.removeItem(testKey);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') console.warn(\"redux-persist \".concat(storageType, \" test failed, persistence will be disabled.\"));\n return false;\n }\n\n return true;\n}\n\nfunction getStorage(type) {\n var storageType = \"\".concat(type, \"Storage\");\n if (hasStorage(storageType)) return self[storageType];else {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\"redux-persist failed to create sync storage. falling back to noop storage.\");\n }\n\n return noopStorage;\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _createWebStorage = _interopRequireDefault(require(\"./createWebStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = (0, _createWebStorage.default)('local');\n\nexports.default = _default;","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","// Version 0.9.0 - Copyright 2012 - 2021 - Jim Riecken \n//\n// Released under the MIT License - https://github.com/jriecken/sat-js\n//\n// A simple library for determining intersections of circles and\n// polygons using the Separating Axis Theorem.\n/** @preserve SAT.js - Version 0.9.0 - Copyright 2012 - 2021 - Jim Riecken - released under the MIT License. https://github.com/jriecken/sat-js */\n\n/*global define: false, module: false*/\n/*jshint shadow:true, sub:true, forin:true, noarg:true, noempty:true,\n eqeqeq:true, bitwise:true, strict:true, undef:true,\n curly:true, browser:true */\n\n// Create a UMD wrapper for SAT. Works in:\n//\n// - Plain browser via global SAT variable\n// - AMD loader (like require.js)\n// - Node.js\n//\n// The quoted properties all over the place are used so that the Closure Compiler\n// does not mangle the exposed API in advanced mode.\n/**\n * @param {*} root - The global scope\n * @param {Function} factory - Factory that creates SAT module\n */\n(function (root, factory) {\n \"use strict\";\n if (typeof define === 'function' && define['amd']) {\n define(factory);\n } else if (typeof exports === 'object') {\n module['exports'] = factory();\n } else {\n root['SAT'] = factory();\n }\n}(this, function () {\n \"use strict\";\n\n var SAT = {};\n\n //\n // ## Vector\n //\n // Represents a vector in two dimensions with `x` and `y` properties.\n\n\n // Create a new Vector, optionally passing in the `x` and `y` coordinates. If\n // a coordinate is not specified, it will be set to `0`\n /**\n * @param {?number=} x The x position.\n * @param {?number=} y The y position.\n * @constructor\n */\n function Vector(x, y) {\n this['x'] = x || 0;\n this['y'] = y || 0;\n }\n SAT['Vector'] = Vector;\n // Alias `Vector` as `V`\n SAT['V'] = Vector;\n\n\n // Copy the values of another Vector into this one.\n /**\n * @param {Vector} other The other Vector.\n * @return {Vector} This for chaining.\n */\n Vector.prototype['copy'] = Vector.prototype.copy = function (other) {\n this['x'] = other['x'];\n this['y'] = other['y'];\n return this;\n };\n\n // Create a new vector with the same coordinates as this on.\n /**\n * @return {Vector} The new cloned vector\n */\n Vector.prototype['clone'] = Vector.prototype.clone = function () {\n return new Vector(this['x'], this['y']);\n };\n\n // Change this vector to be perpendicular to what it was before. (Effectively\n // roatates it 90 degrees in a clockwise direction)\n /**\n * @return {Vector} This for chaining.\n */\n Vector.prototype['perp'] = Vector.prototype.perp = function () {\n var x = this['x'];\n this['x'] = this['y'];\n this['y'] = -x;\n return this;\n };\n\n // Rotate this vector (counter-clockwise) by the specified angle (in radians).\n /**\n * @param {number} angle The angle to rotate (in radians)\n * @return {Vector} This for chaining.\n */\n Vector.prototype['rotate'] = Vector.prototype.rotate = function (angle) {\n var x = this['x'];\n var y = this['y'];\n this['x'] = x * Math.cos(angle) - y * Math.sin(angle);\n this['y'] = x * Math.sin(angle) + y * Math.cos(angle);\n return this;\n };\n\n // Reverse this vector.\n /**\n * @return {Vector} This for chaining.\n */\n Vector.prototype['reverse'] = Vector.prototype.reverse = function () {\n this['x'] = -this['x'];\n this['y'] = -this['y'];\n return this;\n };\n\n\n // Normalize this vector. (make it have length of `1`)\n /**\n * @return {Vector} This for chaining.\n */\n Vector.prototype['normalize'] = Vector.prototype.normalize = function () {\n var d = this.len();\n if (d > 0) {\n this['x'] = this['x'] / d;\n this['y'] = this['y'] / d;\n }\n return this;\n };\n\n // Add another vector to this one.\n /**\n * @param {Vector} other The other Vector.\n * @return {Vector} This for chaining.\n */\n Vector.prototype['add'] = Vector.prototype.add = function (other) {\n this['x'] += other['x'];\n this['y'] += other['y'];\n return this;\n };\n\n // Subtract another vector from this one.\n /**\n * @param {Vector} other The other Vector.\n * @return {Vector} This for chaiing.\n */\n Vector.prototype['sub'] = Vector.prototype.sub = function (other) {\n this['x'] -= other['x'];\n this['y'] -= other['y'];\n return this;\n };\n\n // Scale this vector. An independent scaling factor can be provided\n // for each axis, or a single scaling factor that will scale both `x` and `y`.\n /**\n * @param {number} x The scaling factor in the x direction.\n * @param {?number=} y The scaling factor in the y direction. If this\n * is not specified, the x scaling factor will be used.\n * @return {Vector} This for chaining.\n */\n Vector.prototype['scale'] = Vector.prototype.scale = function (x, y) {\n this['x'] *= x;\n this['y'] *= typeof y != 'undefined' ? y : x;\n return this;\n };\n\n // Project this vector on to another vector.\n /**\n * @param {Vector} other The vector to project onto.\n * @return {Vector} This for chaining.\n */\n Vector.prototype['project'] = Vector.prototype.project = function (other) {\n var amt = this.dot(other) / other.len2();\n this['x'] = amt * other['x'];\n this['y'] = amt * other['y'];\n return this;\n };\n\n // Project this vector onto a vector of unit length. This is slightly more efficient\n // than `project` when dealing with unit vectors.\n /**\n * @param {Vector} other The unit vector to project onto.\n * @return {Vector} This for chaining.\n */\n Vector.prototype['projectN'] = Vector.prototype.projectN = function (other) {\n var amt = this.dot(other);\n this['x'] = amt * other['x'];\n this['y'] = amt * other['y'];\n return this;\n };\n\n // Reflect this vector on an arbitrary axis.\n /**\n * @param {Vector} axis The vector representing the axis.\n * @return {Vector} This for chaining.\n */\n Vector.prototype['reflect'] = Vector.prototype.reflect = function (axis) {\n var x = this['x'];\n var y = this['y'];\n this.project(axis).scale(2);\n this['x'] -= x;\n this['y'] -= y;\n return this;\n };\n\n // Reflect this vector on an arbitrary axis (represented by a unit vector). This is\n // slightly more efficient than `reflect` when dealing with an axis that is a unit vector.\n /**\n * @param {Vector} axis The unit vector representing the axis.\n * @return {Vector} This for chaining.\n */\n Vector.prototype['reflectN'] = Vector.prototype.reflectN = function (axis) {\n var x = this['x'];\n var y = this['y'];\n this.projectN(axis).scale(2);\n this['x'] -= x;\n this['y'] -= y;\n return this;\n };\n\n // Get the dot product of this vector and another.\n /**\n * @param {Vector} other The vector to dot this one against.\n * @return {number} The dot product.\n */\n Vector.prototype['dot'] = Vector.prototype.dot = function (other) {\n return this['x'] * other['x'] + this['y'] * other['y'];\n };\n\n // Get the squared length of this vector.\n /**\n * @return {number} The length^2 of this vector.\n */\n Vector.prototype['len2'] = Vector.prototype.len2 = function () {\n return this.dot(this);\n };\n\n // Get the length of this vector.\n /**\n * @return {number} The length of this vector.\n */\n Vector.prototype['len'] = Vector.prototype.len = function () {\n return Math.sqrt(this.len2());\n };\n\n // ## Circle\n //\n // Represents a circle with a position and a radius.\n\n // Create a new circle, optionally passing in a position and/or radius. If no position\n // is given, the circle will be at `(0,0)`. If no radius is provided, the circle will\n // have a radius of `0`.\n /**\n * @param {Vector=} pos A vector representing the position of the center of the circle\n * @param {?number=} r The radius of the circle\n * @constructor\n */\n function Circle(pos, r) {\n this['pos'] = pos || new Vector();\n this['r'] = r || 0;\n this['offset'] = new Vector();\n }\n SAT['Circle'] = Circle;\n\n // Compute the axis-aligned bounding box (AABB) of this Circle.\n //\n // Note: Returns a _new_ `Box` each time you call this.\n /**\n * @return {Polygon} The AABB\n */\n Circle.prototype['getAABBAsBox'] = Circle.prototype.getAABBAsBox = function () {\n var r = this['r'];\n var corner = this['pos'].clone().add(this['offset']).sub(new Vector(r, r));\n return new Box(corner, r * 2, r * 2);\n };\n\n // Compute the axis-aligned bounding box (AABB) of this Circle.\n //\n // Note: Returns a _new_ `Polygon` each time you call this.\n /**\n * @return {Polygon} The AABB\n */\n Circle.prototype['getAABB'] = Circle.prototype.getAABB = function () {\n return this.getAABBAsBox().toPolygon();\n };\n\n // Set the current offset to apply to the radius.\n /**\n * @param {Vector} offset The new offset vector.\n * @return {Circle} This for chaining.\n */\n Circle.prototype['setOffset'] = Circle.prototype.setOffset = function (offset) {\n this['offset'] = offset;\n return this;\n };\n\n // ## Polygon\n //\n // Represents a *convex* polygon with any number of points (specified in counter-clockwise order)\n //\n // Note: Do _not_ manually change the `points`, `angle`, or `offset` properties. Use the\n // provided setters. Otherwise the calculated properties will not be updated correctly.\n //\n // `pos` can be changed directly.\n\n // Create a new polygon, passing in a position vector, and an array of points (represented\n // by vectors relative to the position vector). If no position is passed in, the position\n // of the polygon will be `(0,0)`.\n /**\n * @param {Vector=} pos A vector representing the origin of the polygon. (all other\n * points are relative to this one)\n * @param {Array=} points An array of vectors representing the points in the polygon,\n * in counter-clockwise order.\n * @constructor\n */\n function Polygon(pos, points) {\n this['pos'] = pos || new Vector();\n this['angle'] = 0;\n this['offset'] = new Vector();\n this.setPoints(points || []);\n }\n SAT['Polygon'] = Polygon;\n\n // Set the points of the polygon. Any consecutive duplicate points will be combined.\n //\n // Note: The points are counter-clockwise *with respect to the coordinate system*.\n // If you directly draw the points on a screen that has the origin at the top-left corner\n // it will _appear_ visually that the points are being specified clockwise. This is just\n // because of the inversion of the Y-axis when being displayed.\n /**\n * @param {Array=} points An array of vectors representing the points in the polygon,\n * in counter-clockwise order.\n * @return {Polygon} This for chaining.\n */\n Polygon.prototype['setPoints'] = Polygon.prototype.setPoints = function (points) {\n // Only re-allocate if this is a new polygon or the number of points has changed.\n var lengthChanged = !this['points'] || this['points'].length !== points.length;\n if (lengthChanged) {\n var i;\n var calcPoints = this['calcPoints'] = [];\n var edges = this['edges'] = [];\n var normals = this['normals'] = [];\n // Allocate the vector arrays for the calculated properties\n for (i = 0; i < points.length; i++) {\n // Remove consecutive duplicate points\n var p1 = points[i];\n var p2 = i < points.length - 1 ? points[i + 1] : points[0];\n if (p1 !== p2 && p1.x === p2.x && p1.y === p2.y) {\n points.splice(i, 1);\n i -= 1;\n continue;\n }\n calcPoints.push(new Vector());\n edges.push(new Vector());\n normals.push(new Vector());\n }\n }\n this['points'] = points;\n this._recalc();\n return this;\n };\n\n // Set the current rotation angle of the polygon.\n /**\n * @param {number} angle The current rotation angle (in radians).\n * @return {Polygon} This for chaining.\n */\n Polygon.prototype['setAngle'] = Polygon.prototype.setAngle = function (angle) {\n this['angle'] = angle;\n this._recalc();\n return this;\n };\n\n // Set the current offset to apply to the `points` before applying the `angle` rotation.\n /**\n * @param {Vector} offset The new offset vector.\n * @return {Polygon} This for chaining.\n */\n Polygon.prototype['setOffset'] = Polygon.prototype.setOffset = function (offset) {\n this['offset'] = offset;\n this._recalc();\n return this;\n };\n\n // Rotates this polygon counter-clockwise around the origin of *its local coordinate system* (i.e. `pos`).\n //\n // Note: This changes the **original** points (so any `angle` will be applied on top of this rotation).\n /**\n * @param {number} angle The angle to rotate (in radians)\n * @return {Polygon} This for chaining.\n */\n Polygon.prototype['rotate'] = Polygon.prototype.rotate = function (angle) {\n var points = this['points'];\n var len = points.length;\n for (var i = 0; i < len; i++) {\n points[i].rotate(angle);\n }\n this._recalc();\n return this;\n };\n\n // Translates the points of this polygon by a specified amount relative to the origin of *its own coordinate\n // system* (i.e. `pos`).\n //\n // This is most useful to change the \"center point\" of a polygon. If you just want to move the whole polygon, change\n // the coordinates of `pos`.\n //\n // Note: This changes the **original** points (so any `offset` will be applied on top of this translation)\n /**\n * @param {number} x The horizontal amount to translate.\n * @param {number} y The vertical amount to translate.\n * @return {Polygon} This for chaining.\n */\n Polygon.prototype['translate'] = Polygon.prototype.translate = function (x, y) {\n var points = this['points'];\n var len = points.length;\n for (var i = 0; i < len; i++) {\n points[i]['x'] += x;\n points[i]['y'] += y;\n }\n this._recalc();\n return this;\n };\n\n\n // Computes the calculated collision polygon. Applies the `angle` and `offset` to the original points then recalculates the\n // edges and normals of the collision polygon.\n /**\n * @return {Polygon} This for chaining.\n */\n Polygon.prototype._recalc = function () {\n // Calculated points - this is what is used for underlying collisions and takes into account\n // the angle/offset set on the polygon.\n var calcPoints = this['calcPoints'];\n // The edges here are the direction of the `n`th edge of the polygon, relative to\n // the `n`th point. If you want to draw a given edge from the edge value, you must\n // first translate to the position of the starting point.\n var edges = this['edges'];\n // The normals here are the direction of the normal for the `n`th edge of the polygon, relative\n // to the position of the `n`th point. If you want to draw an edge normal, you must first\n // translate to the position of the starting point.\n var normals = this['normals'];\n // Copy the original points array and apply the offset/angle\n var points = this['points'];\n var offset = this['offset'];\n var angle = this['angle'];\n var len = points.length;\n var i;\n for (i = 0; i < len; i++) {\n var calcPoint = calcPoints[i].copy(points[i]);\n calcPoint['x'] += offset['x'];\n calcPoint['y'] += offset['y'];\n if (angle !== 0) {\n calcPoint.rotate(angle);\n }\n }\n // Calculate the edges/normals\n for (i = 0; i < len; i++) {\n var p1 = calcPoints[i];\n var p2 = i < len - 1 ? calcPoints[i + 1] : calcPoints[0];\n var e = edges[i].copy(p2).sub(p1);\n normals[i].copy(e).perp().normalize();\n }\n return this;\n };\n\n\n // Compute the axis-aligned bounding box. Any current state\n // (translations/rotations) will be applied before constructing the AABB.\n //\n // Note: Returns a _new_ `Box` each time you call this.\n /**\n * @return {Polygon} The AABB\n */\n Polygon.prototype['getAABBAsBox'] = Polygon.prototype.getAABBAsBox = function () {\n var points = this['calcPoints'];\n var len = points.length;\n var xMin = points[0]['x'];\n var yMin = points[0]['y'];\n var xMax = points[0]['x'];\n var yMax = points[0]['y'];\n for (var i = 1; i < len; i++) {\n var point = points[i];\n if (point['x'] < xMin) {\n xMin = point['x'];\n }\n else if (point['x'] > xMax) {\n xMax = point['x'];\n }\n if (point['y'] < yMin) {\n yMin = point['y'];\n }\n else if (point['y'] > yMax) {\n yMax = point['y'];\n }\n }\n return new Box(this['pos'].clone().add(new Vector(xMin, yMin)), xMax - xMin, yMax - yMin);\n };\n\n\n // Compute the axis-aligned bounding box. Any current state\n // (translations/rotations) will be applied before constructing the AABB.\n //\n // Note: Returns a _new_ `Polygon` each time you call this.\n /**\n * @return {Polygon} The AABB\n */\n Polygon.prototype['getAABB'] = Polygon.prototype.getAABB = function () {\n return this.getAABBAsBox().toPolygon();\n };\n\n // Compute the centroid (geometric center) of the polygon. Any current state\n // (translations/rotations) will be applied before computing the centroid.\n //\n // See https://en.wikipedia.org/wiki/Centroid#Centroid_of_a_polygon\n //\n // Note: Returns a _new_ `Vector` each time you call this.\n /**\n * @return {Vector} A Vector that contains the coordinates of the Centroid.\n */\n Polygon.prototype['getCentroid'] = Polygon.prototype.getCentroid = function () {\n var points = this['calcPoints'];\n var len = points.length;\n var cx = 0;\n var cy = 0;\n var ar = 0;\n for (var i = 0; i < len; i++) {\n var p1 = points[i];\n var p2 = i === len - 1 ? points[0] : points[i + 1]; // Loop around if last point\n var a = p1['x'] * p2['y'] - p2['x'] * p1['y'];\n cx += (p1['x'] + p2['x']) * a;\n cy += (p1['y'] + p2['y']) * a;\n ar += a;\n }\n ar = ar * 3; // we want 1 / 6 the area and we currently have 2*area\n cx = cx / ar;\n cy = cy / ar;\n return new Vector(cx, cy);\n };\n\n\n // ## Box\n //\n // Represents an axis-aligned box, with a width and height.\n\n\n // Create a new box, with the specified position, width, and height. If no position\n // is given, the position will be `(0,0)`. If no width or height are given, they will\n // be set to `0`.\n /**\n * @param {Vector=} pos A vector representing the bottom-left of the box (i.e. the smallest x and smallest y value).\n * @param {?number=} w The width of the box.\n * @param {?number=} h The height of the box.\n * @constructor\n */\n function Box(pos, w, h) {\n this['pos'] = pos || new Vector();\n this['w'] = w || 0;\n this['h'] = h || 0;\n }\n SAT['Box'] = Box;\n\n // Returns a polygon whose edges are the same as this box.\n /**\n * @return {Polygon} A new Polygon that represents this box.\n */\n Box.prototype['toPolygon'] = Box.prototype.toPolygon = function () {\n var pos = this['pos'];\n var w = this['w'];\n var h = this['h'];\n return new Polygon(new Vector(pos['x'], pos['y']), [\n new Vector(), new Vector(w, 0),\n new Vector(w, h), new Vector(0, h)\n ]);\n };\n\n // ## Response\n //\n // An object representing the result of an intersection. Contains:\n // - The two objects participating in the intersection\n // - The vector representing the minimum change necessary to extract the first object\n // from the second one (as well as a unit vector in that direction and the magnitude\n // of the overlap)\n // - Whether the first object is entirely inside the second, and vice versa.\n /**\n * @constructor\n */\n function Response() {\n this['a'] = null;\n this['b'] = null;\n this['overlapN'] = new Vector();\n this['overlapV'] = new Vector();\n this.clear();\n }\n SAT['Response'] = Response;\n\n // Set some values of the response back to their defaults. Call this between tests if\n // you are going to reuse a single Response object for multiple intersection tests (recommented\n // as it will avoid allcating extra memory)\n /**\n * @return {Response} This for chaining\n */\n Response.prototype['clear'] = Response.prototype.clear = function () {\n this['aInB'] = true;\n this['bInA'] = true;\n this['overlap'] = Number.MAX_VALUE;\n return this;\n };\n\n // ## Object Pools\n\n // A pool of `Vector` objects that are used in calculations to avoid\n // allocating memory.\n /**\n * @type {Array}\n */\n var T_VECTORS = [];\n for (var i = 0; i < 10; i++) { T_VECTORS.push(new Vector()); }\n\n // A pool of arrays of numbers used in calculations to avoid allocating\n // memory.\n /**\n * @type {Array>}\n */\n var T_ARRAYS = [];\n for (var i = 0; i < 5; i++) { T_ARRAYS.push([]); }\n\n // Temporary response used for polygon hit detection.\n /**\n * @type {Response}\n */\n var T_RESPONSE = new Response();\n\n // Tiny \"point\" polygon used for polygon hit detection.\n /**\n * @type {Polygon}\n */\n var TEST_POINT = new Box(new Vector(), 0.000001, 0.000001).toPolygon();\n\n // ## Helper Functions\n\n // Flattens the specified array of points onto a unit vector axis,\n // resulting in a one dimensional range of the minimum and\n // maximum value on that axis.\n /**\n * @param {Array} points The points to flatten.\n * @param {Vector} normal The unit vector axis to flatten on.\n * @param {Array} result An array. After calling this function,\n * result[0] will be the minimum value,\n * result[1] will be the maximum value.\n */\n function flattenPointsOn(points, normal, result) {\n var min = Number.MAX_VALUE;\n var max = -Number.MAX_VALUE;\n var len = points.length;\n for (var i = 0; i < len; i++) {\n // The magnitude of the projection of the point onto the normal\n var dot = points[i].dot(normal);\n if (dot < min) { min = dot; }\n if (dot > max) { max = dot; }\n }\n result[0] = min; result[1] = max;\n }\n\n // Check whether two convex polygons are separated by the specified\n // axis (must be a unit vector).\n /**\n * @param {Vector} aPos The position of the first polygon.\n * @param {Vector} bPos The position of the second polygon.\n * @param {Array} aPoints The points in the first polygon.\n * @param {Array} bPoints The points in the second polygon.\n * @param {Vector} axis The axis (unit sized) to test against. The points of both polygons\n * will be projected onto this axis.\n * @param {Response=} response A Response object (optional) which will be populated\n * if the axis is not a separating axis.\n * @return {boolean} true if it is a separating axis, false otherwise. If false,\n * and a response is passed in, information about how much overlap and\n * the direction of the overlap will be populated.\n */\n function isSeparatingAxis(aPos, bPos, aPoints, bPoints, axis, response) {\n var rangeA = T_ARRAYS.pop();\n var rangeB = T_ARRAYS.pop();\n // The magnitude of the offset between the two polygons\n var offsetV = T_VECTORS.pop().copy(bPos).sub(aPos);\n var projectedOffset = offsetV.dot(axis);\n // Project the polygons onto the axis.\n flattenPointsOn(aPoints, axis, rangeA);\n flattenPointsOn(bPoints, axis, rangeB);\n // Move B's range to its position relative to A.\n rangeB[0] += projectedOffset;\n rangeB[1] += projectedOffset;\n // Check if there is a gap. If there is, this is a separating axis and we can stop\n if (rangeA[0] > rangeB[1] || rangeB[0] > rangeA[1]) {\n T_VECTORS.push(offsetV);\n T_ARRAYS.push(rangeA);\n T_ARRAYS.push(rangeB);\n return true;\n }\n // This is not a separating axis. If we're calculating a response, calculate the overlap.\n if (response) {\n var overlap = 0;\n // A starts further left than B\n if (rangeA[0] < rangeB[0]) {\n response['aInB'] = false;\n // A ends before B does. We have to pull A out of B\n if (rangeA[1] < rangeB[1]) {\n overlap = rangeA[1] - rangeB[0];\n response['bInA'] = false;\n // B is fully inside A. Pick the shortest way out.\n } else {\n var option1 = rangeA[1] - rangeB[0];\n var option2 = rangeB[1] - rangeA[0];\n overlap = option1 < option2 ? option1 : -option2;\n }\n // B starts further left than A\n } else {\n response['bInA'] = false;\n // B ends before A ends. We have to push A out of B\n if (rangeA[1] > rangeB[1]) {\n overlap = rangeA[0] - rangeB[1];\n response['aInB'] = false;\n // A is fully inside B. Pick the shortest way out.\n } else {\n var option1 = rangeA[1] - rangeB[0];\n var option2 = rangeB[1] - rangeA[0];\n overlap = option1 < option2 ? option1 : -option2;\n }\n }\n // If this is the smallest amount of overlap we've seen so far, set it as the minimum overlap.\n var absOverlap = Math.abs(overlap);\n if (absOverlap < response['overlap']) {\n response['overlap'] = absOverlap;\n response['overlapN'].copy(axis);\n if (overlap < 0) {\n response['overlapN'].reverse();\n }\n }\n }\n T_VECTORS.push(offsetV);\n T_ARRAYS.push(rangeA);\n T_ARRAYS.push(rangeB);\n return false;\n }\n SAT['isSeparatingAxis'] = isSeparatingAxis;\n\n // Calculates which Voronoi region a point is on a line segment.\n // It is assumed that both the line and the point are relative to `(0,0)`\n //\n // | (0) |\n // (-1) [S]--------------[E] (1)\n // | (0) |\n /**\n * @param {Vector} line The line segment.\n * @param {Vector} point The point.\n * @return {number} LEFT_VORONOI_REGION (-1) if it is the left region,\n * MIDDLE_VORONOI_REGION (0) if it is the middle region,\n * RIGHT_VORONOI_REGION (1) if it is the right region.\n */\n function voronoiRegion(line, point) {\n var len2 = line.len2();\n var dp = point.dot(line);\n // If the point is beyond the start of the line, it is in the\n // left voronoi region.\n if (dp < 0) { return LEFT_VORONOI_REGION; }\n // If the point is beyond the end of the line, it is in the\n // right voronoi region.\n else if (dp > len2) { return RIGHT_VORONOI_REGION; }\n // Otherwise, it's in the middle one.\n else { return MIDDLE_VORONOI_REGION; }\n }\n // Constants for Voronoi regions\n /**\n * @const\n */\n var LEFT_VORONOI_REGION = -1;\n /**\n * @const\n */\n var MIDDLE_VORONOI_REGION = 0;\n /**\n * @const\n */\n var RIGHT_VORONOI_REGION = 1;\n\n // ## Collision Tests\n\n // Check if a point is inside a circle.\n /**\n * @param {Vector} p The point to test.\n * @param {Circle} c The circle to test.\n * @return {boolean} true if the point is inside the circle, false if it is not.\n */\n function pointInCircle(p, c) {\n var differenceV = T_VECTORS.pop().copy(p).sub(c['pos']).sub(c['offset']);\n var radiusSq = c['r'] * c['r'];\n var distanceSq = differenceV.len2();\n T_VECTORS.push(differenceV);\n // If the distance between is smaller than the radius then the point is inside the circle.\n return distanceSq <= radiusSq;\n }\n SAT['pointInCircle'] = pointInCircle;\n\n // Check if a point is inside a convex polygon.\n /**\n * @param {Vector} p The point to test.\n * @param {Polygon} poly The polygon to test.\n * @return {boolean} true if the point is inside the polygon, false if it is not.\n */\n function pointInPolygon(p, poly) {\n TEST_POINT['pos'].copy(p);\n T_RESPONSE.clear();\n var result = testPolygonPolygon(TEST_POINT, poly, T_RESPONSE);\n if (result) {\n result = T_RESPONSE['aInB'];\n }\n return result;\n }\n SAT['pointInPolygon'] = pointInPolygon;\n\n // Check if two circles collide.\n /**\n * @param {Circle} a The first circle.\n * @param {Circle} b The second circle.\n * @param {Response=} response Response object (optional) that will be populated if\n * the circles intersect.\n * @return {boolean} true if the circles intersect, false if they don't.\n */\n function testCircleCircle(a, b, response) {\n // Check if the distance between the centers of the two\n // circles is greater than their combined radius.\n var differenceV = T_VECTORS.pop().copy(b['pos']).add(b['offset']).sub(a['pos']).sub(a['offset']);\n var totalRadius = a['r'] + b['r'];\n var totalRadiusSq = totalRadius * totalRadius;\n var distanceSq = differenceV.len2();\n // If the distance is bigger than the combined radius, they don't intersect.\n if (distanceSq > totalRadiusSq) {\n T_VECTORS.push(differenceV);\n return false;\n }\n // They intersect. If we're calculating a response, calculate the overlap.\n if (response) {\n var dist = Math.sqrt(distanceSq);\n response['a'] = a;\n response['b'] = b;\n response['overlap'] = totalRadius - dist;\n response['overlapN'].copy(differenceV.normalize());\n response['overlapV'].copy(differenceV).scale(response['overlap']);\n response['aInB'] = a['r'] <= b['r'] && dist <= b['r'] - a['r'];\n response['bInA'] = b['r'] <= a['r'] && dist <= a['r'] - b['r'];\n }\n T_VECTORS.push(differenceV);\n return true;\n }\n SAT['testCircleCircle'] = testCircleCircle;\n\n // Check if a polygon and a circle collide.\n /**\n * @param {Polygon} polygon The polygon.\n * @param {Circle} circle The circle.\n * @param {Response=} response Response object (optional) that will be populated if\n * they interset.\n * @return {boolean} true if they intersect, false if they don't.\n */\n function testPolygonCircle(polygon, circle, response) {\n // Get the position of the circle relative to the polygon.\n var circlePos = T_VECTORS.pop().copy(circle['pos']).add(circle['offset']).sub(polygon['pos']);\n var radius = circle['r'];\n var radius2 = radius * radius;\n var points = polygon['calcPoints'];\n var len = points.length;\n var edge = T_VECTORS.pop();\n var point = T_VECTORS.pop();\n\n // For each edge in the polygon:\n for (var i = 0; i < len; i++) {\n var next = i === len - 1 ? 0 : i + 1;\n var prev = i === 0 ? len - 1 : i - 1;\n var overlap = 0;\n var overlapN = null;\n\n // Get the edge.\n edge.copy(polygon['edges'][i]);\n // Calculate the center of the circle relative to the starting point of the edge.\n point.copy(circlePos).sub(points[i]);\n\n // If the distance between the center of the circle and the point\n // is bigger than the radius, the polygon is definitely not fully in\n // the circle.\n if (response && point.len2() > radius2) {\n response['aInB'] = false;\n }\n\n // Calculate which Voronoi region the center of the circle is in.\n var region = voronoiRegion(edge, point);\n // If it's the left region:\n if (region === LEFT_VORONOI_REGION) {\n // We need to make sure we're in the RIGHT_VORONOI_REGION of the previous edge.\n edge.copy(polygon['edges'][prev]);\n // Calculate the center of the circle relative the starting point of the previous edge\n var point2 = T_VECTORS.pop().copy(circlePos).sub(points[prev]);\n region = voronoiRegion(edge, point2);\n if (region === RIGHT_VORONOI_REGION) {\n // It's in the region we want. Check if the circle intersects the point.\n var dist = point.len();\n if (dist > radius) {\n // No intersection\n T_VECTORS.push(circlePos);\n T_VECTORS.push(edge);\n T_VECTORS.push(point);\n T_VECTORS.push(point2);\n return false;\n } else if (response) {\n // It intersects, calculate the overlap.\n response['bInA'] = false;\n overlapN = point.normalize();\n overlap = radius - dist;\n }\n }\n T_VECTORS.push(point2);\n // If it's the right region:\n } else if (region === RIGHT_VORONOI_REGION) {\n // We need to make sure we're in the left region on the next edge\n edge.copy(polygon['edges'][next]);\n // Calculate the center of the circle relative to the starting point of the next edge.\n point.copy(circlePos).sub(points[next]);\n region = voronoiRegion(edge, point);\n if (region === LEFT_VORONOI_REGION) {\n // It's in the region we want. Check if the circle intersects the point.\n var dist = point.len();\n if (dist > radius) {\n // No intersection\n T_VECTORS.push(circlePos);\n T_VECTORS.push(edge);\n T_VECTORS.push(point);\n return false;\n } else if (response) {\n // It intersects, calculate the overlap.\n response['bInA'] = false;\n overlapN = point.normalize();\n overlap = radius - dist;\n }\n }\n // Otherwise, it's the middle region:\n } else {\n // Need to check if the circle is intersecting the edge,\n // Change the edge into its \"edge normal\".\n var normal = edge.perp().normalize();\n // Find the perpendicular distance between the center of the\n // circle and the edge.\n var dist = point.dot(normal);\n var distAbs = Math.abs(dist);\n // If the circle is on the outside of the edge, there is no intersection.\n if (dist > 0 && distAbs > radius) {\n // No intersection\n T_VECTORS.push(circlePos);\n T_VECTORS.push(normal);\n T_VECTORS.push(point);\n return false;\n } else if (response) {\n // It intersects, calculate the overlap.\n overlapN = normal;\n overlap = radius - dist;\n // If the center of the circle is on the outside of the edge, or part of the\n // circle is on the outside, the circle is not fully inside the polygon.\n if (dist >= 0 || overlap < 2 * radius) {\n response['bInA'] = false;\n }\n }\n }\n\n // If this is the smallest overlap we've seen, keep it.\n // (overlapN may be null if the circle was in the wrong Voronoi region).\n if (overlapN && response && Math.abs(overlap) < Math.abs(response['overlap'])) {\n response['overlap'] = overlap;\n response['overlapN'].copy(overlapN);\n }\n }\n\n // Calculate the final overlap vector - based on the smallest overlap.\n if (response) {\n response['a'] = polygon;\n response['b'] = circle;\n response['overlapV'].copy(response['overlapN']).scale(response['overlap']);\n }\n T_VECTORS.push(circlePos);\n T_VECTORS.push(edge);\n T_VECTORS.push(point);\n return true;\n }\n SAT['testPolygonCircle'] = testPolygonCircle;\n\n // Check if a circle and a polygon collide.\n //\n // **NOTE:** This is slightly less efficient than polygonCircle as it just\n // runs polygonCircle and reverses everything at the end.\n /**\n * @param {Circle} circle The circle.\n * @param {Polygon} polygon The polygon.\n * @param {Response=} response Response object (optional) that will be populated if\n * they interset.\n * @return {boolean} true if they intersect, false if they don't.\n */\n function testCirclePolygon(circle, polygon, response) {\n // Test the polygon against the circle.\n var result = testPolygonCircle(polygon, circle, response);\n if (result && response) {\n // Swap A and B in the response.\n var a = response['a'];\n var aInB = response['aInB'];\n response['overlapN'].reverse();\n response['overlapV'].reverse();\n response['a'] = response['b'];\n response['b'] = a;\n response['aInB'] = response['bInA'];\n response['bInA'] = aInB;\n }\n return result;\n }\n SAT['testCirclePolygon'] = testCirclePolygon;\n\n // Checks whether polygons collide.\n /**\n * @param {Polygon} a The first polygon.\n * @param {Polygon} b The second polygon.\n * @param {Response=} response Response object (optional) that will be populated if\n * they interset.\n * @return {boolean} true if they intersect, false if they don't.\n */\n function testPolygonPolygon(a, b, response) {\n var aPoints = a['calcPoints'];\n var aLen = aPoints.length;\n var bPoints = b['calcPoints'];\n var bLen = bPoints.length;\n // If any of the edge normals of A is a separating axis, no intersection.\n for (var i = 0; i < aLen; i++) {\n if (isSeparatingAxis(a['pos'], b['pos'], aPoints, bPoints, a['normals'][i], response)) {\n return false;\n }\n }\n // If any of the edge normals of B is a separating axis, no intersection.\n for (var i = 0; i < bLen; i++) {\n if (isSeparatingAxis(a['pos'], b['pos'], aPoints, bPoints, b['normals'][i], response)) {\n return false;\n }\n }\n // Since none of the edge normals of A or B are a separating axis, there is an intersection\n // and we've already calculated the smallest overlap (in isSeparatingAxis). Calculate the\n // final overlap vector.\n if (response) {\n response['a'] = a;\n response['b'] = b;\n response['overlapV'].copy(response['overlapN']).scale(response['overlap']);\n }\n return true;\n }\n SAT['testPolygonPolygon'] = testPolygonPolygon;\n\n return SAT;\n}));\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v0.7.38\n Copyright © 2012-2021 Faisal Salman \n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '0.7.38',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 500;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(heytap|ovi)browser\\/([\\d\\.]+)/i, // Heytap/Ovi\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 ' + BROWSER]], [\n /(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, 'Sogou Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, 'Sogou Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/2345 Browser\n ], [NAME, VERSION], [\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(Klarna)\\/([\\w\\.]+)/i, // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram/Snapchat\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i, // Links\n /panasonic;(viera)/i // Panasonic Viera\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i, // Redmi Pad\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n /\\b(opd2\\d{3}a?) bui/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( \\d| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i // Windows Phone\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /windows nt 6\\.2; (arm)/i, // Windows RT\n /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj[\"default\"] = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"422\":\"615603cd\",\"619\":\"0edc2d37\",\"797\":\"1591b20f\",\"932\":\"f74d5e0f\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"clicandpose.frontoffice:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkclicandpose_frontoffice\"] = self[\"webpackChunkclicandpose_frontoffice\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\n\nexport const ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n} as const\n\nexport type ConsoleApiName = (typeof ConsoleApiName)[keyof typeof ConsoleApiName]\n\ninterface Display {\n debug: typeof console.debug\n log: typeof console.log\n info: typeof console.info\n warn: typeof console.warn\n error: typeof console.error\n}\n\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport const globalConsole = console\n\nexport const originalConsoleMethods = {} as Display\nObject.keys(ConsoleApiName).forEach((name) => {\n originalConsoleMethods[name as ConsoleApiName] = globalConsole[name as ConsoleApiName]\n})\n\nconst PREFIX = 'Datadog Browser SDK:'\n\nexport const display: Display = {\n debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),\n log: originalConsoleMethods.log.bind(globalConsole, PREFIX),\n info: originalConsoleMethods.info.bind(globalConsole, PREFIX),\n warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),\n error: originalConsoleMethods.error.bind(globalConsole, PREFIX),\n}\n","import { display } from './display'\n\nexport function catchUserErrors(fn: (...args: Args) => R, errorMsg: string) {\n return (...args: Args) => {\n try {\n return fn(...args)\n } catch (err) {\n display.error(errorMsg, err)\n }\n }\n}\n","import { display } from './display'\n\nlet onMonitorErrorCollected: undefined | ((error: unknown) => void)\nlet debugMode = false\n\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected: (error: unknown) => void) {\n onMonitorErrorCollected = newOnMonitorErrorCollected\n}\n\nexport function setDebugMode(newDebugMode: boolean) {\n debugMode = newDebugMode\n}\n\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined\n debugMode = false\n}\n\nexport function monitored unknown>(\n _: any,\n __: string,\n descriptor: TypedPropertyDescriptor\n) {\n const originalMethod = descriptor.value!\n descriptor.value = function (this: any, ...args: Parameters) {\n const decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod\n return decorated.apply(this, args) as ReturnType\n } as T\n}\n\nexport function monitor any>(fn: T): T {\n return function (this: any) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments as unknown as Parameters)\n } as unknown as T // consider output type has input type\n}\n\nexport function callMonitored any>(\n fn: T,\n context: ThisParameterType,\n args: Parameters\n): ReturnType | undefined\nexport function callMonitored any>(fn: T): ReturnType | undefined\nexport function callMonitored any>(\n fn: T,\n context?: any,\n args?: any\n): ReturnType | undefined {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args)\n } catch (e) {\n displayIfDebugEnabled(e)\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e)\n } catch (e) {\n displayIfDebugEnabled(e)\n }\n }\n }\n}\n\nexport function displayIfDebugEnabled(...args: any[]) {\n if (debugMode) {\n display.error('[MONITOR]', ...args)\n }\n}\n","export function includes(candidate: string, search: string): boolean\nexport function includes(candidate: T[], search: T): boolean\nexport function includes(candidate: string | unknown[], search: any) {\n return candidate.indexOf(search) !== -1\n}\n\nexport function arrayFrom(arrayLike: ArrayLike | Set): T[] {\n if (Array.from) {\n return Array.from(arrayLike)\n }\n\n const array = []\n\n if (arrayLike instanceof Set) {\n arrayLike.forEach((item) => array.push(item))\n } else {\n for (let i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i])\n }\n }\n\n return array\n}\n\nexport function find(\n array: ArrayLike,\n predicate: (item: T, index: number) => item is S\n): S | undefined\nexport function find(array: ArrayLike, predicate: (item: T, index: number) => boolean): T | undefined\nexport function find(array: ArrayLike, predicate: (item: unknown, index: number) => boolean): unknown {\n for (let i = 0; i < array.length; i += 1) {\n const item = array[i]\n if (predicate(item, i)) {\n return item\n }\n }\n return undefined\n}\n\nexport function findLast(\n array: T[],\n predicate: (item: T, index: number, array: T[]) => item is S\n): S | undefined {\n for (let i = array.length - 1; i >= 0; i -= 1) {\n const item = array[i]\n if (predicate(item, i, array)) {\n return item\n }\n }\n return undefined\n}\n\nexport function forEach(\n list: List,\n callback: (value: List[number], index: number, parent: List) => void\n) {\n Array.prototype.forEach.call(list, callback as any)\n}\n\nexport function objectValues(object: { [key: string]: T }) {\n return Object.keys(object).map((key) => object[key])\n}\n\nexport function objectEntries(object: { [key: string]: T }): Array<[string, T]> {\n return Object.keys(object).map((key) => [key, object[key]])\n}\n\nexport function startsWith(candidate: string, search: string) {\n return candidate.slice(0, search.length) === search\n}\n\nexport function endsWith(candidate: string, search: string) {\n return candidate.slice(-search.length) === search\n}\n\nexport function elementMatches(element: Element & { msMatchesSelector?(selector: string): boolean }, selector: string) {\n if (element.matches) {\n return element.matches(selector)\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector)\n }\n return false\n}\n\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport function cssEscape(str: string) {\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str)\n }\n\n // eslint-disable-next-line no-control-regex\n return str.replace(/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g, function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD'\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return `${ch.slice(0, -1)}\\\\${ch.charCodeAt(ch.length - 1).toString(16)} `\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return `\\\\${ch}`\n })\n}\n\ninterface Assignable {\n [key: string]: any\n}\n\nexport function assign(target: T, source: U): T & U\nexport function assign(target: T, source1: U, source2: V): T & U & V\nexport function assign(target: T, source1: U, source2: V, source3: W): T & U & V & W\nexport function assign(target: Assignable, ...toAssign: Assignable[]) {\n toAssign.forEach((source: Assignable) => {\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n })\n return target\n}\n","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\n\nexport function getGlobalObject(): T {\n if (typeof globalThis === 'object') {\n return globalThis as unknown as T\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get() {\n return this as object\n },\n configurable: true,\n })\n // @ts-ignore _dd_temp is defined using defineProperty\n let globalObject: unknown = _dd_temp_\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self\n } else if (typeof window === 'object') {\n globalObject = window\n } else {\n globalObject = {}\n }\n }\n return globalObject as T\n}\n","export const ONE_KIBI_BYTE = 1024\nexport const ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE\n\n// eslint-disable-next-line no-control-regex\nconst HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/\n\nexport function computeBytesCount(candidate: string): number {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length\n }\n\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length\n }\n\n return new Blob([candidate]).size\n}\n\nexport function concatBuffers(buffers: Uint8Array[]) {\n const length = buffers.reduce((total, buffer) => total + buffer.length, 0)\n const result = new Uint8Array(length)\n let offset = 0\n for (const buffer of buffers) {\n result.set(buffer, offset)\n offset += buffer.length\n }\n return result\n}\n","import { getGlobalObject } from './getGlobalObject'\n\nexport interface BrowserWindowWithZoneJs extends Window {\n Zone?: {\n // All Zone.js versions expose the __symbol__ method, but we observed that some website have a\n // 'Zone' global variable unrelated to Zone.js, so let's consider this method optional\n // nonetheless.\n __symbol__?: (name: string) => string\n }\n}\n\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(\n target: Target,\n name: Name\n): Target[Name] {\n const browserWindow = getGlobalObject()\n let original: Target[Name] | undefined\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = (target as any)[browserWindow.Zone.__symbol__(name)]\n }\n if (!original) {\n original = target[name]\n }\n return original\n}\n","import { getZoneJsOriginalValue } from './getZoneJsOriginalValue'\nimport { monitor } from './monitor'\nimport { getGlobalObject } from './getGlobalObject'\n\nexport type TimeoutId = ReturnType\n\nexport function setTimeout(callback: () => void, delay?: number): TimeoutId {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay)\n}\n\nexport function clearTimeout(timeoutId: TimeoutId | undefined) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId)\n}\n\nexport function setInterval(callback: () => void, delay?: number): TimeoutId {\n return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay)\n}\n\nexport function clearInterval(timeoutId: TimeoutId | undefined) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId)\n}\n","import type { TimeoutId } from '../timer'\nimport { setTimeout, clearTimeout } from '../timer'\n\n// use lodash API\nexport function throttle void>(\n fn: T,\n wait: number,\n options?: { leading?: boolean; trailing?: boolean }\n) {\n const needLeadingExecution = options && options.leading !== undefined ? options.leading : true\n const needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true\n let inWaitPeriod = false\n let pendingExecutionWithParameters: Parameters | undefined\n let pendingTimeoutId: TimeoutId\n\n return {\n throttled: (...parameters: Parameters) => {\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters\n return\n }\n if (needLeadingExecution) {\n fn(...parameters)\n } else {\n pendingExecutionWithParameters = parameters\n }\n inWaitPeriod = true\n pendingTimeoutId = setTimeout(() => {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn(...pendingExecutionWithParameters)\n }\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n }, wait)\n },\n cancel: () => {\n clearTimeout(pendingTimeoutId)\n inWaitPeriod = false\n pendingExecutionWithParameters = undefined\n },\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() {}\n\nexport type ListenerHandler = () => void\n","/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value: unknown) {\n if (value === null) {\n return 'null'\n }\n if (Array.isArray(value)) {\n return 'array'\n }\n return typeof value\n}\n","import { getType } from './utils/typeUtils'\n\ntype Merged =\n // case 1 - source is undefined - return destination\n TSource extends undefined\n ? TDestination\n : // case 2 - destination is undefined - return source\n TDestination extends undefined\n ? TSource\n : // case 3 - source is an array - see if it merges or overwrites\n TSource extends any[]\n ? TDestination extends any[]\n ? TDestination & TSource\n : TSource\n : // case 4 - source is an object - see if it merges or overwrites\n TSource extends object\n ? TDestination extends object\n ? TDestination extends any[]\n ? TSource\n : TDestination & TSource\n : TSource\n : // case 5 - cannot merge - return source\n TSource\n\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(\n destination: D,\n source: S,\n circularReferenceChecker = createCircularReferenceChecker()\n): Merged {\n // ignore the source if it is undefined\n if (source === undefined) {\n return destination as Merged\n }\n\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source as Merged\n } else if (source instanceof Date) {\n return new Date(source.getTime()) as unknown as Merged\n } else if (source instanceof RegExp) {\n const flags =\n source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : '',\n ].join('')\n return new RegExp(source.source, flags) as unknown as Merged\n }\n\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined as unknown as Merged\n } else if (Array.isArray(source)) {\n const merged: any[] = Array.isArray(destination) ? destination : []\n for (let i = 0; i < source.length; ++i) {\n merged[i] = mergeInto(merged[i], source[i], circularReferenceChecker)\n }\n return merged as unknown as Merged\n }\n\n const merged = getType(destination) === 'object' ? (destination as Record) : {}\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker)\n }\n }\n return merged as unknown as Merged\n}\n\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value: T): T {\n return mergeInto(undefined, value) as T\n}\n\ntype Combined = A extends null ? B : B extends null ? A : Merged\n\n/*\n * Performs a deep merge of objects and arrays.\n * - Arguments won't be mutated\n * - Object and arrays in the output value are de-referenced (\"deep cloned\")\n * - Arrays values are merged index by index\n * - Objects are merged by keys\n * - Values get replaced, unless undefined\n */\nexport function combine(a: A, b: B): Combined\nexport function combine(a: A, b: B, c: C): Combined, C>\nexport function combine(a: A, b: B, c: C, d: D): Combined, C>, D>\nexport function combine(\n a: A,\n b: B,\n c: C,\n d: D,\n e: E\n): Combined, C>, D>, E>\nexport function combine(\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n f: F\n): Combined, C>, D>, E>, F>\nexport function combine(\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n f: F,\n g: G\n): Combined, C>, D>, E>, F>, G>\nexport function combine(\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n f: F,\n g: G,\n h: H\n): Combined, C>, D>, E>, F>, G>, H>\nexport function combine(...sources: any[]): unknown {\n let destination: any\n\n for (const source of sources) {\n // Ignore any undefined or null sources.\n if (source === undefined || source === null) {\n continue\n }\n\n destination = mergeInto(destination, source)\n }\n\n return destination as unknown\n}\n\ninterface CircularReferenceChecker {\n hasAlreadyBeenSeen(value: any): boolean\n}\n\nfunction createCircularReferenceChecker(): CircularReferenceChecker {\n if (typeof WeakSet !== 'undefined') {\n const set: WeakSet = new WeakSet()\n return {\n hasAlreadyBeenSeen(value) {\n const has = set.has(value)\n if (!has) {\n set.add(value)\n }\n return has\n },\n }\n }\n const array: any[] = []\n return {\n hasAlreadyBeenSeen(value) {\n const has = array.indexOf(value) >= 0\n if (!has) {\n array.push(value)\n }\n return has\n },\n }\n}\n","import { noop } from '../utils/functionUtils'\n\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(\n value: unknown,\n replacer?: Array,\n space?: string | number\n): string | undefined {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value)\n }\n\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)\n const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)\n const restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value))\n const restoreValueToJson = detachToJsonMethod(value)\n\n try {\n return JSON.stringify(value, replacer, space)\n } catch {\n return ''\n } finally {\n restoreObjectPrototypeToJson()\n restoreArrayPrototypeToJson()\n restoreValuePrototypeToJson()\n restoreValueToJson()\n }\n}\n\nexport interface ObjectWithToJsonMethod {\n toJSON?: () => unknown\n}\n\nexport function detachToJsonMethod(value: object) {\n const object = value as ObjectWithToJsonMethod\n const objectToJson = object.toJSON\n if (objectToJson) {\n delete object.toJSON\n return () => {\n object.toJSON = objectToJson\n }\n }\n return noop\n}\n","import { display } from '../display'\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils'\nimport type { Context, ContextArray, ContextValue } from './context'\nimport type { ObjectWithToJsonMethod } from './jsonStringify'\nimport { detachToJsonMethod } from './jsonStringify'\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype PrimitivesAndFunctions = string | number | boolean | undefined | null | symbol | bigint | Function\ntype ExtendedContextValue = PrimitivesAndFunctions | object | ExtendedContext | ExtendedContextArray\ntype ExtendedContext = { [key: string]: ExtendedContextValue }\ntype ExtendedContextArray = ExtendedContextValue[]\n\ntype ContainerElementToProcess = {\n source: ExtendedContextArray | ExtendedContext\n target: ContextArray | Context\n path: string\n}\n\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nconst SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE\n\n// Symbol for the root element of the JSONPath used for visited objects\nconst JSON_PATH_ROOT_ELEMENT = '$'\n\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nconst KEY_DECORATION_LENGTH = 3\n\n/**\n * Ensures user-provided data is 'safe' for the SDK\n * - Deep clones data\n * - Removes cyclic references\n * - Transforms unserializable types to a string representation\n *\n * LIMITATIONS:\n * - Size is in characters, not byte count (may differ according to character encoding)\n * - Size does not take into account indentation that can be applied to JSON.stringify\n * - Non-numerical properties of Arrays are ignored. Same behavior as JSON.stringify\n *\n * @param source User-provided data meant to be serialized using JSON.stringify\n * @param maxCharacterCount Maximum number of characters allowed in serialized form\n */\nexport function sanitize(source: string, maxCharacterCount?: number): string | undefined\nexport function sanitize(source: Context, maxCharacterCount?: number): Context\nexport function sanitize(source: unknown, maxCharacterCount?: number): ContextValue\nexport function sanitize(source: unknown, maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT) {\n // Unbind any toJSON function we may have on [] or {} prototypes\n const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)\n const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)\n\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n const containerQueue: ContainerElementToProcess[] = []\n const visitedObjectsWithPath = new WeakMap()\n const sanitizedData = sanitizeProcessor(\n source as ExtendedContextValue,\n JSON_PATH_ROOT_ELEMENT,\n undefined,\n containerQueue,\n visitedObjectsWithPath\n )\n let accumulatedCharacterCount = JSON.stringify(sanitizedData)?.length || 0\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source)\n return undefined\n }\n\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n const containerToProcess = containerQueue.shift()!\n let separatorLength = 0 // 0 for the first element, 1 for subsequent elements\n\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (let key = 0; key < containerToProcess.source.length; key++) {\n const targetData = sanitizeProcessor(\n containerToProcess.source[key],\n containerToProcess.path,\n key,\n containerQueue,\n visitedObjectsWithPath\n )\n\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length\n } else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4\n }\n accumulatedCharacterCount += separatorLength\n separatorLength = 1\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source)\n break\n }\n ;(containerToProcess.target as ContextArray)[key] = targetData\n }\n } else {\n for (const key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n const targetData = sanitizeProcessor(\n containerToProcess.source[key],\n containerToProcess.path,\n key,\n containerQueue,\n visitedObjectsWithPath\n )\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH\n separatorLength = 1\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source)\n break\n }\n ;(containerToProcess.target as Context)[key] = targetData\n }\n }\n }\n }\n\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson()\n restoreArrayPrototypeToJson()\n\n return sanitizedData\n}\n\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(\n source: ExtendedContextValue,\n parentPath: string,\n key: string | number | undefined,\n queue: ContainerElementToProcess[],\n visitedObjectsWithPath: WeakMap\n) {\n // Start by handling toJSON, as we want to sanitize its output\n const sourceToSanitize = tryToApplyToJSON(source)\n\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize)\n }\n\n const sanitizedSource = sanitizeObjects(sourceToSanitize)\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource\n }\n\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n const sourceAsObject = source as object\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return `[Reference seen at ${visitedObjectsWithPath.get(sourceAsObject)!}]`\n }\n\n // Add processed source to queue\n const currentPath = key !== undefined ? `${parentPath}.${key}` : parentPath\n const target = Array.isArray(sourceToSanitize) ? ([] as ContextArray) : ({} as Context)\n visitedObjectsWithPath.set(sourceAsObject, currentPath)\n queue.push({ source: sourceToSanitize as ExtendedContext | ExtendedContextArray, target, path: currentPath })\n\n return target\n}\n\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value: PrimitivesAndFunctions) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return `[BigInt] ${value.toString()}`\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return `[Function] ${value.name || 'unknown'}`\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n // symbol.description is part of ES2019+\n type symbolWithDescription = symbol & { description: string }\n return `[Symbol] ${(value as symbolWithDescription).description || value.toString()}`\n }\n\n return value\n}\n\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value: object) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return {\n isTrusted: value.isTrusted,\n }\n }\n\n // Handle all remaining object types in a generic way\n const result = Object.prototype.toString.call(value)\n const match = result.match(/\\[object (.*)\\]/)\n if (match && match[1]) {\n return `[${match[1]}]`\n }\n } catch {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]'\n}\n\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value: ExtendedContextValue) {\n const object = value as ObjectWithToJsonMethod\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON() as ExtendedContextValue\n } catch {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n\n return value\n}\n\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount: number, changeType: 'discarded' | 'truncated', source: unknown) {\n display.warn(\n `The data provided has been ${changeType} as it is over the limit of ${maxCharacterCount} characters:`,\n source\n )\n}\n","export interface Subscription {\n unsubscribe: () => void\n}\n\nexport class Observable {\n private observers: Array<(data: T) => void> = []\n private onLastUnsubscribe?: () => void\n\n constructor(private onFirstSubscribe?: () => (() => void) | void) {}\n\n subscribe(f: (data: T) => void): Subscription {\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe() || undefined\n }\n this.observers.push(f)\n return {\n unsubscribe: () => {\n this.observers = this.observers.filter((other) => f !== other)\n if (!this.observers.length && this.onLastUnsubscribe) {\n this.onLastUnsubscribe()\n }\n },\n }\n }\n\n notify(data: T) {\n this.observers.forEach((observer) => observer(data))\n }\n}\n\nexport function mergeObservables(...observables: Array>) {\n const globalObservable = new Observable(() => {\n const subscriptions: Subscription[] = observables.map((observable) =>\n observable.subscribe((data) => globalObservable.notify(data))\n )\n return () => subscriptions.forEach((subscription) => subscription.unsubscribe())\n })\n\n return globalObservable\n}\n","import { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils'\nimport { display } from '../../tools/display'\nimport { CustomerDataType } from './contextConstants'\n\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport const CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE\n\nconst CustomerDataLabel = {\n [CustomerDataType.FeatureFlag]: 'feature flag evaluation',\n [CustomerDataType.User]: 'user',\n [CustomerDataType.GlobalContext]: 'global context',\n [CustomerDataType.LoggerContext]: 'logger context',\n}\nexport function warnIfCustomerDataLimitReached(bytesCount: number, customerDataType: CustomerDataType): boolean {\n if (bytesCount > CUSTOMER_DATA_BYTES_LIMIT) {\n display.warn(\n `The ${CustomerDataLabel[customerDataType]} data exceeds the recommended ${\n CUSTOMER_DATA_BYTES_LIMIT / ONE_KIBI_BYTE\n }KiB threshold. More details: https://docs.datadoghq.com/real_user_monitoring/browser/troubleshooting/#customer-data-exceeds-the-recommended-3kib-warning`\n )\n return true\n }\n return false\n}\n","import { computeBytesCount } from '../../tools/utils/byteUtils'\nimport { throttle } from '../../tools/utils/functionUtils'\nimport { deepClone } from '../../tools/mergeInto'\nimport { getType } from '../../tools/utils/typeUtils'\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify'\nimport { sanitize } from '../../tools/serialisation/sanitize'\nimport type { Context } from '../../tools/serialisation/context'\nimport { Observable } from '../../tools/observable'\nimport { warnIfCustomerDataLimitReached } from './heavyCustomerDataWarning'\nimport type { CustomerDataType } from './contextConstants'\n\nexport const BYTES_COMPUTATION_THROTTLING_DELAY = 200\n\nexport type ContextManager = ReturnType\n\nexport function createContextManager(customerDataType: CustomerDataType, computeBytesCountImpl = computeBytesCount) {\n let context: Context = {}\n let bytesCountCache: number\n let alreadyWarned = false\n const changeObservable = new Observable()\n\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n const { throttled: computeBytesCountThrottled } = throttle((context: Context) => {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context)!)\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, customerDataType)\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY)\n\n const contextManager = {\n getBytesCount: () => bytesCountCache,\n\n getContext: () => deepClone(context),\n\n setContext: (newContext: Context) => {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext)\n computeBytesCountThrottled(context)\n } else {\n contextManager.clearContext()\n }\n changeObservable.notify()\n },\n\n setContextProperty: (key: string, property: any) => {\n context[key] = sanitize(property)\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n removeContextProperty: (key: string) => {\n delete context[key]\n computeBytesCountThrottled(context)\n changeObservable.notify()\n },\n\n clearContext: () => {\n context = {}\n bytesCountCache = 0\n changeObservable.notify()\n },\n\n changeObservable,\n }\n return contextManager\n}\n","const BUFFER_LIMIT = 500\n\nexport class BoundedBuffer {\n private buffer: Array<() => void> = []\n\n add(callback: () => void) {\n const length = this.buffer.push(callback)\n if (length > BUFFER_LIMIT) {\n this.buffer.splice(0, 1)\n }\n }\n\n drain() {\n this.buffer.forEach((callback) => callback())\n this.buffer.length = 0\n }\n}\n","/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold: number): boolean {\n return threshold !== 0 && Math.random() * 100 <= threshold\n}\n\nexport function round(num: number, decimals: 0 | 1 | 2 | 3 | 4) {\n return +num.toFixed(decimals)\n}\n\nexport function isPercentage(value: unknown) {\n return isNumber(value) && value >= 0 && value <= 100\n}\n\nexport function isNumber(value: unknown): value is number {\n return typeof value === 'number'\n}\n","import { isNumber, round } from './numberUtils'\n\nexport const ONE_SECOND = 1000\nexport const ONE_MINUTE = 60 * ONE_SECOND\nexport const ONE_HOUR = 60 * ONE_MINUTE\nexport const ONE_DAY = 24 * ONE_HOUR\nexport const ONE_YEAR = 365 * ONE_DAY\n\nexport type Duration = number & { d: 'Duration in ms' }\nexport type ServerDuration = number & { s: 'Duration in ns' }\nexport type TimeStamp = number & { t: 'Epoch time' }\nexport type RelativeTime = number & { r: 'Time relative to navigation start' } & { d: 'Duration in ms' }\nexport type ClocksState = { relative: RelativeTime; timeStamp: TimeStamp }\n\nexport function relativeToClocks(relative: RelativeTime) {\n return { relative, timeStamp: getCorrectedTimeStamp(relative) }\n}\n\nfunction getCorrectedTimeStamp(relativeTime: RelativeTime) {\n const correctedOrigin = (dateNow() - performance.now()) as TimeStamp\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(addDuration(correctedOrigin, relativeTime)) as TimeStamp\n }\n return getTimeStamp(relativeTime)\n}\n\nexport function currentDrift() {\n return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now() as Duration))\n}\n\nexport function toServerDuration(duration: Duration): ServerDuration\nexport function toServerDuration(duration: Duration | undefined): ServerDuration | undefined\nexport function toServerDuration(duration: Duration | undefined) {\n if (!isNumber(duration)) {\n return duration\n }\n return round(duration * 1e6, 0) as ServerDuration\n}\n\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime()\n}\n\nexport function timeStampNow() {\n return dateNow() as TimeStamp\n}\n\nexport function relativeNow() {\n return performance.now() as RelativeTime\n}\n\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() }\n}\n\nexport function clocksOrigin() {\n return { relative: 0 as RelativeTime, timeStamp: getNavigationStart() }\n}\n\nexport function elapsed(start: TimeStamp, end: TimeStamp): Duration\nexport function elapsed(start: RelativeTime, end: RelativeTime): Duration\nexport function elapsed(start: number, end: number) {\n return (end - start) as Duration\n}\n\nexport function addDuration(a: TimeStamp, b: Duration): TimeStamp\nexport function addDuration(a: RelativeTime, b: Duration): RelativeTime\nexport function addDuration(a: Duration, b: Duration): Duration\nexport function addDuration(a: number, b: number) {\n return a + b\n}\n\n/**\n * Get the time since the navigation was started.\n *\n * Note: this does not use `performance.timeOrigin` because it doesn't seem to reflect the actual\n * time on which the navigation has started: it may be much farther in the past, at least in Firefox 71.\n * Related issue in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926\n */\nexport function getRelativeTime(timestamp: TimeStamp) {\n return (timestamp - getNavigationStart()) as RelativeTime\n}\n\nexport function getTimeStamp(relativeTime: RelativeTime) {\n return Math.round(addDuration(getNavigationStart(), relativeTime)) as TimeStamp\n}\n\nexport function looksLikeRelativeTime(time: RelativeTime | TimeStamp): time is RelativeTime {\n return time < ONE_YEAR\n}\n\n/**\n * Navigation start slightly change on some rare cases\n */\nlet navigationStart: TimeStamp | undefined\n\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart as TimeStamp\n }\n return navigationStart\n}\n\nexport function resetNavigationStart() {\n navigationStart = undefined\n}\n","/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder?: string): string {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateUUID)\n}\n\nconst COMMA_SEPARATED_KEY_VALUE = /([\\w-]+)\\s*=\\s*([^;]+)/g\n\nexport function findCommaSeparatedValue(rawString: string, name: string): string | undefined {\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)\n if (match) {\n if (match[1] === name) {\n return match[2]\n }\n } else {\n break\n }\n }\n}\n\nexport function findCommaSeparatedValues(rawString: string): Map {\n const result = new Map()\n COMMA_SEPARATED_KEY_VALUE.lastIndex = 0\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)\n if (match) {\n result.set(match[1], match[2])\n } else {\n break\n }\n }\n return result\n}\n\nexport function safeTruncate(candidate: string, length: number, suffix = '') {\n const lastChar = candidate.charCodeAt(length - 1)\n const isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff\n const correctedLength = isLastCharSurrogatePair ? length + 1 : length\n\n if (candidate.length <= correctedLength) {\n return candidate\n }\n\n return `${candidate.slice(0, correctedLength)}${suffix}`\n}\n","import { display } from '../tools/display'\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils'\nimport { findCommaSeparatedValue, findCommaSeparatedValues, generateUUID } from '../tools/utils/stringUtils'\n\nexport interface CookieOptions {\n secure?: boolean\n crossSite?: boolean\n domain?: string\n}\n\nexport function setCookie(name: string, value: string, expireDelay: number, options?: CookieOptions) {\n const date = new Date()\n date.setTime(date.getTime() + expireDelay)\n const expires = `expires=${date.toUTCString()}`\n const sameSite = options && options.crossSite ? 'none' : 'strict'\n const domain = options && options.domain ? `;domain=${options.domain}` : ''\n const secure = options && options.secure ? ';secure' : ''\n document.cookie = `${name}=${value};${expires};path=/;samesite=${sameSite}${domain}${secure}`\n}\n\nexport function getCookie(name: string) {\n return findCommaSeparatedValue(document.cookie, name)\n}\n\nlet initCookieParsed: Map | undefined\n\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name: string) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie)\n }\n return initCookieParsed.get(name)\n}\n\nexport function resetInitCookies() {\n initCookieParsed = undefined\n}\n\nexport function deleteCookie(name: string, options?: CookieOptions) {\n setCookie(name, '', 0, options)\n}\n\nexport function areCookiesAuthorized(options: CookieOptions): boolean {\n if (document.cookie === undefined || document.cookie === null) {\n return false\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n const testCookieName = `dd_cookie_test_${generateUUID()}`\n const testCookieValue = 'test'\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options)\n const isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue\n deleteCookie(testCookieName, options)\n return isCookieCorrectlySet\n } catch (error) {\n display.error(error)\n return false\n }\n}\n\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nlet getCurrentSiteCache: string | undefined\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n const testCookieName = `dd_site_test_${generateUUID()}`\n const testCookieValue = 'test'\n\n const domainLevels = window.location.hostname.split('.')\n let candidateDomain = domainLevels.pop()!\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = `${domainLevels.pop()!}.${candidateDomain}`\n setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain })\n }\n deleteCookie(testCookieName, { domain: candidateDomain })\n getCurrentSiteCache = candidateDomain\n }\n return getCurrentSiteCache\n}\n","import { getInitCookie } from '../../browser/cookie'\n\nexport const SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id'\nexport const SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id'\nexport const SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum'\n\nexport interface BrowserWindow extends Window {\n _DATADOG_SYNTHETICS_PUBLIC_ID?: unknown\n _DATADOG_SYNTHETICS_RESULT_ID?: unknown\n _DATADOG_SYNTHETICS_INJECTS_RUM?: unknown\n}\n\nexport function willSyntheticsInjectRum(): boolean {\n return Boolean(\n (window as BrowserWindow)._DATADOG_SYNTHETICS_INJECTS_RUM || getInitCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME)\n )\n}\n\nexport function getSyntheticsTestId(): string | undefined {\n const value = (window as BrowserWindow)._DATADOG_SYNTHETICS_PUBLIC_ID || getInitCookie(SYNTHETICS_TEST_ID_COOKIE_NAME)\n return typeof value === 'string' ? value : undefined\n}\n\nexport function getSyntheticsResultId(): string | undefined {\n const value =\n (window as BrowserWindow)._DATADOG_SYNTHETICS_RESULT_ID || getInitCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME)\n return typeof value === 'string' ? value : undefined\n}\n","/**\n * LIMITATION:\n * For NPM setup, this feature flag singleton is shared between RUM and Logs product.\n * This means that an experimental flag set on the RUM product will be set on the Logs product.\n * So keep in mind that in certain configurations, your experimental feature flag may affect other products.\n *\n * FORMAT:\n * All feature flags should be snake_cased\n */\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected feature flag\n// eslint-disable-next-line no-restricted-syntax\nexport enum ExperimentalFeature {\n PAGEHIDE = 'pagehide',\n FEATURE_FLAGS = 'feature_flags',\n RESOURCE_PAGE_STATES = 'resource_page_states',\n COLLECT_FLUSH_REASON = 'collect_flush_reason',\n SCROLLMAP = 'scrollmap',\n WEB_VITALS_ATTRIBUTION = 'web_vitals_attribution',\n DISABLE_REPLAY_INLINE_CSS = 'disable_replay_inline_css',\n COMPRESS_BATCH = 'compress_batch',\n}\n\nconst enabledExperimentalFeatures: Set = new Set()\n\nexport function addExperimentalFeatures(enabledFeatures: ExperimentalFeature[]): void {\n enabledFeatures.forEach((flag) => {\n enabledExperimentalFeatures.add(flag)\n })\n}\n\nexport function isExperimentalFeatureEnabled(featureName: ExperimentalFeature): boolean {\n return enabledExperimentalFeatures.has(featureName)\n}\n\nexport function resetExperimentalFeatures(): void {\n enabledExperimentalFeatures.clear()\n}\n\nexport function getExperimentalFeatures(): Set {\n return enabledExperimentalFeatures\n}\n","import { endsWith } from '../tools/utils/polyfills'\nimport { getGlobalObject } from '../tools/getGlobalObject'\n\nexport interface BrowserWindowWithEventBridge extends Window {\n DatadogEventBridge?: DatadogEventBridge\n}\n\nexport interface DatadogEventBridge {\n getAllowedWebViewHosts(): string\n send(msg: string): void\n}\n\nexport function getEventBridge() {\n const eventBridgeGlobal = getEventBridgeGlobal()\n\n if (!eventBridgeGlobal) {\n return\n }\n\n return {\n getAllowedWebViewHosts() {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts()) as string[]\n },\n send(eventType: T, event: E) {\n eventBridgeGlobal.send(JSON.stringify({ eventType, event }))\n },\n }\n}\n\nexport function canUseEventBridge(currentHost = getGlobalObject().location?.hostname): boolean {\n const bridge = getEventBridge()\n return (\n !!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some((allowedHost) => currentHost === allowedHost || endsWith(currentHost, `.${allowedHost}`))\n )\n}\n\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge\n}\n","import { monitor } from '../tools/monitor'\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue'\nimport type { Configuration } from '../domain/configuration'\nimport type { VisualViewport, VisualViewportEventMap } from './types'\n\nexport type TrustableEvent = E & { __ddIsTrusted?: boolean }\n\n// We want to use a real enum (i.e. not a const enum) here, to be able to iterate over it to automatically add _ddIsTrusted in e2e tests\n// eslint-disable-next-line no-restricted-syntax\nexport enum DOM_EVENT {\n BEFORE_UNLOAD = 'beforeunload',\n CLICK = 'click',\n DBL_CLICK = 'dblclick',\n KEY_DOWN = 'keydown',\n LOAD = 'load',\n POP_STATE = 'popstate',\n SCROLL = 'scroll',\n TOUCH_START = 'touchstart',\n TOUCH_END = 'touchend',\n TOUCH_MOVE = 'touchmove',\n VISIBILITY_CHANGE = 'visibilitychange',\n PAGE_SHOW = 'pageshow',\n FREEZE = 'freeze',\n RESUME = 'resume',\n DOM_CONTENT_LOADED = 'DOMContentLoaded',\n POINTER_DOWN = 'pointerdown',\n POINTER_UP = 'pointerup',\n POINTER_CANCEL = 'pointercancel',\n HASH_CHANGE = 'hashchange',\n PAGE_HIDE = 'pagehide',\n MOUSE_DOWN = 'mousedown',\n MOUSE_UP = 'mouseup',\n MOUSE_MOVE = 'mousemove',\n FOCUS = 'focus',\n BLUR = 'blur',\n CONTEXT_MENU = 'contextmenu',\n RESIZE = 'resize',\n CHANGE = 'change',\n INPUT = 'input',\n PLAY = 'play',\n PAUSE = 'pause',\n SECURITY_POLICY_VIOLATION = 'securitypolicyviolation',\n SELECTION_CHANGE = 'selectionchange',\n STORAGE = 'storage',\n}\n\ninterface AddEventListenerOptions {\n once?: boolean\n capture?: boolean\n passive?: boolean\n}\n\ntype EventMapFor = T extends Window\n ? WindowEventMap & {\n // TS 4.9.5 does not support `freeze` and `resume` events yet\n freeze: Event\n resume: Event\n // TS 4.9.5 does not define `visibilitychange` on Window (only Document)\n visibilitychange: Event\n }\n : T extends Document\n ? DocumentEventMap\n : T extends HTMLElement\n ? HTMLElementEventMap\n : T extends VisualViewport\n ? VisualViewportEventMap\n : T extends ShadowRoot\n ? // ShadowRootEventMap is not yet defined in our supported TS version. Instead, use\n // GlobalEventHandlersEventMap which is more than enough as we only need to listen for events bubbling\n // through the ShadowRoot like \"change\" or \"input\"\n GlobalEventHandlersEventMap\n : T extends XMLHttpRequest\n ? XMLHttpRequestEventMap\n : T extends Performance\n ? PerformanceEventMap\n : T extends Worker\n ? WorkerEventMap\n : Record\n\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener & string>(\n configuration: Configuration,\n eventTarget: Target,\n eventName: EventName,\n listener: (event: EventMapFor[EventName] & { type: EventName }) => void,\n options?: AddEventListenerOptions\n) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options)\n}\n\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners & string>(\n configuration: Configuration,\n eventTarget: Target,\n eventNames: EventName[],\n listener: (event: EventMapFor[EventName] & { type: EventName }) => void,\n { once, capture, passive }: AddEventListenerOptions = {}\n) {\n const listenerWithMonitor = monitor((event: TrustableEvent) => {\n if (!event.isTrusted && !event.__ddIsTrusted && !configuration.allowUntrustedEvents) {\n return\n }\n if (once) {\n stop()\n }\n listener(event as unknown as EventMapFor[EventName] & { type: EventName })\n })\n\n const options = passive ? { capture, passive } : capture\n\n const add = getZoneJsOriginalValue(eventTarget, 'addEventListener')\n eventNames.forEach((eventName) => add.call(eventTarget, eventName, listenerWithMonitor, options))\n\n function stop() {\n const remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener')\n eventNames.forEach((eventName) => remove.call(eventTarget, eventName, listenerWithMonitor, options))\n }\n\n return {\n stop,\n }\n}\n","import { computeBytesCount } from '../../tools/utils/byteUtils'\nimport { addEventListener, DOM_EVENT } from '../../browser/addEventListener'\nimport type { Context } from '../../tools/serialisation/context'\nimport type { Configuration } from '../configuration'\nimport type { ContextManager } from './contextManager'\nimport { createContextManager } from './contextManager'\nimport type { CustomerDataType } from './contextConstants'\n\nconst CONTEXT_STORE_KEY_PREFIX = '_dd_c'\n\nconst storageListeners: Array<{ stop: () => void }> = []\n\nexport function createStoredContextManager(\n configuration: Configuration,\n productKey: string,\n customerDataType: CustomerDataType,\n computeBytesCountImpl = computeBytesCount\n): ContextManager {\n const storageKey = buildStorageKey(productKey, customerDataType)\n const contextManager = createContextManager(customerDataType, computeBytesCountImpl)\n\n synchronizeWithStorage()\n storageListeners.push(\n addEventListener(configuration, window, DOM_EVENT.STORAGE, ({ key }) => {\n if (storageKey === key) {\n synchronizeWithStorage()\n }\n })\n )\n contextManager.changeObservable.subscribe(dumpToStorage)\n\n return contextManager\n\n function synchronizeWithStorage() {\n const rawContext = localStorage.getItem(storageKey)\n const context = rawContext !== null ? (JSON.parse(rawContext) as Context) : {}\n contextManager.setContext(context)\n }\n\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()))\n }\n}\n\nexport function buildStorageKey(productKey: string, customerDataType: CustomerDataType) {\n return `${CONTEXT_STORE_KEY_PREFIX}_${productKey}_${customerDataType}`\n}\n\nexport function removeStorageListeners() {\n storageListeners.map((listener) => listener.stop())\n}\n","import { computeBytesCount } from './utils/byteUtils'\n\nexport interface Encoder {\n /**\n * Whether this encoder might call the provided callbacks asynchronously\n */\n isAsync: boolean\n\n /**\n * Whether some data has been written since the last finish() or finishSync() call\n */\n isEmpty: boolean\n\n /**\n * Write a string to be encoded.\n *\n * This operation can be synchronous or asynchronous depending on the encoder implementation.\n *\n * If specified, the callback will be invoked when the operation finishes, unless the operation is\n * asynchronous and finish() or finishSync() is called in the meantime.\n */\n write(data: string, callback?: (additionalEncodedBytesCount: number) => void): void\n\n /**\n * Waits for pending data to be encoded and resets the encoder state.\n *\n * This operation can be synchronous or asynchronous depending on the encoder implementation.\n *\n * The callback will be invoked when the operation finishes, unless the operation is asynchronous\n * and another call to finish() or finishSync() occurs in the meantime.\n */\n finish(callback: (result: EncoderResult) => void): void\n\n /**\n * Resets the encoder state then returns the encoded data and any potential pending data directly,\n * discarding all pending write operations and finish() callbacks.\n */\n finishSync(): EncoderResult & { pendingData: string }\n\n /**\n * Returns a rough estimation of the bytes count if the data was encoded.\n */\n estimateEncodedBytesCount(data: string): number\n}\n\nexport interface EncoderResult {\n output: Output\n outputBytesCount: number\n\n /**\n * An encoding type supported by HTTP Content-Encoding, if applicable.\n * See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding#directives\n */\n encoding?: 'deflate'\n\n /**\n * Total bytes count of the input strings encoded to UTF-8.\n */\n rawBytesCount: number\n}\n\nexport function createIdentityEncoder(): Encoder {\n let output = ''\n let outputBytesCount = 0\n\n return {\n isAsync: false,\n\n get isEmpty() {\n return !output\n },\n\n write(data, callback) {\n const additionalEncodedBytesCount = computeBytesCount(data)\n outputBytesCount += additionalEncodedBytesCount\n output += data\n if (callback) {\n callback(additionalEncodedBytesCount)\n }\n },\n\n finish(callback) {\n callback(this.finishSync())\n },\n\n finishSync() {\n const result = {\n output,\n outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: '',\n }\n output = ''\n outputBytesCount = 0\n return result\n },\n\n estimateEncodedBytesCount(data) {\n return data.length\n },\n }\n}\n","/**\n * Cross-browser stack trace computation.\n *\n * Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js\n */\n\nimport { startsWith } from '../../tools/utils/polyfills'\n\nexport interface StackFrame {\n url?: string\n func?: string\n /** The arguments passed to the function, if known. */\n args?: string[]\n line?: number\n column?: number\n /** An array of source code lines; the middle element corresponds to the correct line. */\n context?: string[]\n}\n\nexport interface StackTrace {\n name?: string\n message?: string\n url?: string\n stack: StackFrame[]\n incomplete?: boolean\n partial?: boolean\n}\n\nconst UNKNOWN_FUNCTION = '?'\n\nexport function computeStackTrace(ex: unknown): StackTrace {\n const stack: StackFrame[] = []\n\n let stackProperty = tryToGetString(ex, 'stack')\n const exString = String(ex)\n if (stackProperty && startsWith(stackProperty, exString)) {\n stackProperty = stackProperty.slice(exString.length)\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach((line) => {\n const stackFrame =\n parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line)\n if (stackFrame) {\n if (!stackFrame.func && stackFrame.line) {\n stackFrame.func = UNKNOWN_FUNCTION\n }\n\n stack.push(stackFrame)\n }\n })\n }\n\n return {\n message: tryToGetString(ex, 'message'),\n name: tryToGetString(ex, 'name'),\n stack,\n }\n}\nconst fileUrl = '((?:file|https?|blob|chrome-extension|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)'\nconst filePosition = '(?::(\\\\d+))'\nconst CHROME_LINE_RE = new RegExp(`^\\\\s*at (.*?) ?\\\\(${fileUrl}${filePosition}?${filePosition}?\\\\)?\\\\s*$`, 'i')\n\nconst CHROME_EVAL_RE = new RegExp(`\\\\((\\\\S*)${filePosition}${filePosition}\\\\)`)\n\nfunction parseChromeLine(line: string): StackFrame | undefined {\n const parts = CHROME_LINE_RE.exec(line)\n\n if (!parts) {\n return\n }\n\n const isNative = parts[2] && parts[2].indexOf('native') === 0 // start of line\n const isEval = parts[2] && parts[2].indexOf('eval') === 0 // start of line\n const submatch = CHROME_EVAL_RE.exec(parts[2])\n\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1] // url\n parts[3] = submatch[2] // line\n parts[4] = submatch[3] // column\n }\n\n return {\n args: isNative ? [parts[2]] : [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[3] ? +parts[3] : undefined,\n url: !isNative ? parts[2] : undefined,\n }\n}\n\nconst CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(`^\\\\s*at ?${fileUrl}${filePosition}?${filePosition}??\\\\s*$`, 'i')\n\nfunction parseChromeAnonymousLine(line: string): StackFrame | undefined {\n const parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line)\n\n if (!parts) {\n return\n }\n\n return {\n args: [],\n column: parts[3] ? +parts[3] : undefined,\n func: UNKNOWN_FUNCTION,\n line: parts[2] ? +parts[2] : undefined,\n url: parts[1],\n }\n}\n\nconst WINJS_LINE_RE =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i\n\nfunction parseWinLine(line: string): StackFrame | undefined {\n const parts = WINJS_LINE_RE.exec(line)\n if (!parts) {\n return\n }\n\n return {\n args: [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: +parts[3],\n url: parts[2],\n }\n}\n\nconst GECKO_LINE_RE =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i\nconst GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i\n\nfunction parseGeckoLine(line: string): StackFrame | undefined {\n const parts = GECKO_LINE_RE.exec(line)\n if (!parts) {\n return\n }\n\n const isEval = parts[3] && parts[3].indexOf(' > eval') > -1\n const submatch = GECKO_EVAL_RE.exec(parts[3])\n\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1]\n parts[4] = submatch[2]\n parts[5] = undefined! // no column when eval\n }\n\n return {\n args: parts[2] ? parts[2].split(',') : [],\n column: parts[5] ? +parts[5] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[4] ? +parts[4] : undefined,\n url: parts[3],\n }\n}\n\nfunction tryToGetString(candidate: unknown, property: string) {\n if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {\n return undefined\n }\n const value = (candidate as { [k: string]: unknown })[property]\n return typeof value === 'string' ? value : undefined\n}\n\nexport function computeStackTraceFromOnErrorMessage(messageObj: unknown, url?: string, line?: number, column?: number) {\n const stack = [{ url, column, line }]\n const { name, message } = tryToParseMessage(messageObj)\n return {\n name,\n message,\n stack,\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nconst ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/\n\nfunction tryToParseMessage(messageObj: unknown) {\n let name\n let message\n if ({}.toString.call(messageObj) === '[object String]') {\n ;[, name, message] = ERROR_TYPES_RE.exec(messageObj as string)!\n }\n return { name, message }\n}\n","import { callMonitored } from '../../tools/monitor'\nimport { sanitize } from '../../tools/serialisation/sanitize'\nimport type { ClocksState } from '../../tools/utils/timeUtils'\nimport { noop } from '../../tools/utils/functionUtils'\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify'\nimport type { ErrorSource, ErrorHandling, RawError, RawErrorCause, ErrorWithCause, NonErrorPrefix } from './error.types'\nimport type { StackTrace } from './computeStackTrace'\nimport { computeStackTrace } from './computeStackTrace'\n\nexport const NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error'\n\ntype RawErrorParams = {\n stackTrace?: StackTrace\n originalError: unknown\n\n handlingStack?: string\n startClocks: ClocksState\n nonErrorPrefix: NonErrorPrefix\n source: ErrorSource\n handling: ErrorHandling\n}\n\nexport function computeRawError({\n stackTrace,\n originalError,\n handlingStack,\n startClocks,\n nonErrorPrefix,\n source,\n handling,\n}: RawErrorParams): RawError {\n const isErrorInstance = originalError instanceof Error\n\n const message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError)\n const stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE\n const causes = isErrorInstance ? flattenErrorCauses(originalError as ErrorWithCause, source) : undefined\n const type = stackTrace?.name\n const fingerprint = tryToGetFingerprint(originalError)\n\n return {\n startClocks,\n source,\n handling,\n handlingStack,\n originalError,\n type,\n message,\n stack,\n causes,\n fingerprint,\n }\n}\n\nfunction computeMessage(\n stackTrace: StackTrace | undefined,\n isErrorInstance: boolean,\n nonErrorPrefix: NonErrorPrefix,\n originalError: unknown\n) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return stackTrace?.message && stackTrace?.name\n ? stackTrace.message\n : !isErrorInstance\n ? `${nonErrorPrefix} ${jsonStringify(sanitize(originalError))!}`\n : 'Empty message'\n}\n\nfunction hasUsableStack(isErrorInstance: boolean, stackTrace?: StackTrace): stackTrace is StackTrace {\n if (stackTrace === undefined) {\n return false\n }\n if (isErrorInstance) {\n return true\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return stackTrace.stack.length > 0 && (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined)\n}\n\nexport function tryToGetFingerprint(originalError: unknown) {\n return originalError instanceof Error && 'dd_fingerprint' in originalError\n ? String(originalError.dd_fingerprint)\n : undefined\n}\n\nexport function toStackTraceString(stack: StackTrace) {\n let result = formatErrorMessage(stack)\n stack.stack.forEach((frame) => {\n const func = frame.func === '?' ? '' : frame.func\n const args = frame.args && frame.args.length > 0 ? `(${frame.args.join(', ')})` : ''\n const line = frame.line ? `:${frame.line}` : ''\n const column = frame.line && frame.column ? `:${frame.column}` : ''\n result += `\\n at ${func!}${args} @ ${frame.url!}${line}${column}`\n })\n return result\n}\n\nexport function getFileFromStackTraceString(stack: string) {\n return /@ (.+)/.exec(stack)?.[1]\n}\n\nexport function formatErrorMessage(stack: StackTrace) {\n return `${stack.name || 'Error'}: ${stack.message!}`\n}\n\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.\n */\nexport function createHandlingStack(): string {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n const internalFramesToSkip = 2\n const error = new Error()\n let formattedStack: string\n\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error\n } catch (e) {\n noop()\n }\n }\n\n callMonitored(() => {\n const stackTrace = computeStackTrace(error)\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip)\n formattedStack = toStackTraceString(stackTrace)\n })\n\n return formattedStack!\n}\n\nexport function flattenErrorCauses(error: ErrorWithCause, parentSource: ErrorSource): RawErrorCause[] | undefined {\n let currentError = error\n const causes: RawErrorCause[] = []\n while (currentError?.cause instanceof Error && causes.length < 10) {\n const stackTrace = computeStackTrace(currentError.cause)\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace?.name,\n stack: stackTrace && toStackTraceString(stackTrace),\n })\n currentError = currentError.cause\n }\n return causes.length ? causes : undefined\n}\n","import type { Context } from '../../tools/serialisation/context'\nimport { display } from '../../tools/display'\nimport { getType } from '../../tools/utils/typeUtils'\nimport { assign } from '../../tools/utils/polyfills'\nimport type { User } from './user.types'\n\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\nexport function sanitizeUser(newUser: Context): Context {\n // We shallow clone only to prevent mutation of user data.\n const user = assign({}, newUser)\n const keys = ['id', 'name', 'email']\n keys.forEach((key) => {\n if (key in user) {\n user[key] = String(user[key])\n }\n })\n return user\n}\n\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser: User): boolean {\n const isValid = getType(newUser) === 'object'\n if (!isValid) {\n display.error('Unsupported user:', newUser)\n }\n return isValid\n}\n","import { assign } from './polyfills'\n\nexport function shallowClone(object: T): T & Record {\n return assign({}, object)\n}\n\nexport function objectHasValue(object: T, value: unknown): value is T[keyof T] {\n return Object.keys(object).some((key) => object[key] === value)\n}\n\nexport function isEmptyObject(object: object) {\n return Object.keys(object).length === 0\n}\n\nexport function mapValues(object: { [key: string]: A }, fn: (arg: A) => B) {\n const newObject: { [key: string]: B } = {}\n for (const key of Object.keys(object)) {\n newObject[key] = fn(object[key])\n }\n return newObject\n}\n","import { ONE_HOUR, ONE_MINUTE } from '../../tools/utils/timeUtils'\n\nexport const SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR\nexport const SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE\n","// Exported only for tests\nexport const enum Browser {\n IE,\n CHROMIUM,\n SAFARI,\n OTHER,\n}\n\nexport function isIE() {\n return detectBrowserCached() === Browser.IE\n}\n\nexport function isChromium() {\n return detectBrowserCached() === Browser.CHROMIUM\n}\n\nexport function isSafari() {\n return detectBrowserCached() === Browser.SAFARI\n}\n\nlet browserCache: Browser | undefined\nfunction detectBrowserCached() {\n return browserCache ?? (browserCache = detectBrowser())\n}\n\n// Exported only for tests\nexport function detectBrowser(browserWindow: Window = window) {\n const userAgent = browserWindow.navigator.userAgent\n if ((browserWindow as any).chrome || /HeadlessChrome/.test(userAgent)) {\n return Browser.CHROMIUM\n }\n\n if (\n // navigator.vendor is deprecated, but it is the most resilient way we found to detect\n // \"Apple maintained browsers\" (AKA Safari). If one day it gets removed, we still have the\n // useragent test as a semi-working fallback.\n browserWindow.navigator.vendor?.indexOf('Apple') === 0 ||\n (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))\n ) {\n return Browser.SAFARI\n }\n\n if ((browserWindow.document as any).documentMode) {\n return Browser.IE\n }\n\n return Browser.OTHER\n}\n","import type { CookieOptions } from '../../../browser/cookie'\nimport type { SessionState } from '../sessionState'\n\nexport const SESSION_STORE_KEY = '_dd_s'\n\nexport type SessionStoreStrategyType = { type: 'Cookie'; cookieOptions: CookieOptions } | { type: 'LocalStorage' }\n\nexport interface SessionStoreStrategy {\n isLockEnabled: boolean\n persistSession: (session: SessionState) => void\n retrieveSession: () => SessionState\n clearSession: () => void\n}\n","import { isEmptyObject } from '../../tools/utils/objectUtils'\nimport { objectEntries } from '../../tools/utils/polyfills'\nimport { dateNow } from '../../tools/utils/timeUtils'\nimport { SESSION_EXPIRATION_DELAY } from './sessionConstants'\n\nconst SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/\nconst SESSION_ENTRY_SEPARATOR = '&'\n\nexport interface SessionState {\n id?: string\n created?: string\n expire?: string\n lock?: string\n\n [key: string]: string | undefined\n}\n\nexport function isSessionInExpiredState(session: SessionState) {\n return isEmptyObject(session)\n}\n\nexport function expandSessionState(session: SessionState) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY)\n}\n\nexport function toSessionString(session: SessionState) {\n return objectEntries(session)\n .map(([key, value]) => `${key}=${value as string}`)\n .join(SESSION_ENTRY_SEPARATOR)\n}\n\nexport function toSessionState(sessionString: string | undefined | null) {\n const session: SessionState = {}\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach((entry) => {\n const matches = SESSION_ENTRY_REGEXP.exec(entry)\n if (matches !== null) {\n const [, key, value] = matches\n session[key] = value\n }\n })\n }\n return session\n}\n\nfunction isValidSessionString(sessionString: string | undefined | null): sessionString is string {\n return (\n !!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString))\n )\n}\n","import { getInitCookie } from '../../browser/cookie'\nimport type { SessionStoreStrategy } from './storeStrategies/sessionStoreStrategy'\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy'\nimport type { SessionState } from './sessionState'\nimport { expandSessionState, isSessionInExpiredState } from './sessionState'\n\nexport const OLD_SESSION_COOKIE_NAME = '_dd'\nexport const OLD_RUM_COOKIE_NAME = '_dd_r'\nexport const OLD_LOGS_COOKIE_NAME = '_dd_l'\n\n// duplicate values to avoid dependency issues\nexport const RUM_SESSION_KEY = 'rum'\nexport const LOGS_SESSION_KEY = 'logs'\n\n/**\n * This migration should remain in the codebase as long as older versions are available/live\n * to allow older sdk versions to be upgraded to newer versions without compatibility issues.\n */\nexport function tryOldCookiesMigration(cookieStoreStrategy: SessionStoreStrategy) {\n const sessionString = getInitCookie(SESSION_STORE_KEY)\n if (!sessionString) {\n const oldSessionId = getInitCookie(OLD_SESSION_COOKIE_NAME)\n const oldRumType = getInitCookie(OLD_RUM_COOKIE_NAME)\n const oldLogsType = getInitCookie(OLD_LOGS_COOKIE_NAME)\n const session: SessionState = {}\n\n if (oldSessionId) {\n session.id = oldSessionId\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType\n }\n\n if (!isSessionInExpiredState(session)) {\n expandSessionState(session)\n cookieStoreStrategy.persistSession(session)\n }\n }\n}\n","import { isChromium } from '../../../tools/utils/browserDetection'\nimport type { CookieOptions } from '../../../browser/cookie'\nimport { getCurrentSite, areCookiesAuthorized, deleteCookie, getCookie, setCookie } from '../../../browser/cookie'\nimport type { InitConfiguration } from '../../configuration'\nimport { tryOldCookiesMigration } from '../oldCookiesMigration'\nimport { SESSION_EXPIRATION_DELAY } from '../sessionConstants'\nimport type { SessionState } from '../sessionState'\nimport { toSessionString, toSessionState } from '../sessionState'\nimport type { SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy'\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy'\n\nexport function selectCookieStrategy(initConfiguration: InitConfiguration): SessionStoreStrategyType | undefined {\n const cookieOptions = buildCookieOptions(initConfiguration)\n return areCookiesAuthorized(cookieOptions) ? { type: 'Cookie', cookieOptions } : undefined\n}\n\nexport function initCookieStrategy(cookieOptions: CookieOptions): SessionStoreStrategy {\n const cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n clearSession: deleteSessionCookie(cookieOptions),\n }\n\n tryOldCookiesMigration(cookieStore)\n\n return cookieStore\n}\n\nfunction persistSessionCookie(options: CookieOptions) {\n return (session: SessionState) => {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options)\n }\n}\n\nfunction retrieveSessionCookie(): SessionState {\n const sessionString = getCookie(SESSION_STORE_KEY)\n return toSessionState(sessionString)\n}\n\nfunction deleteSessionCookie(options: CookieOptions) {\n return () => {\n deleteCookie(SESSION_STORE_KEY, options)\n }\n}\n\nexport function buildCookieOptions(initConfiguration: InitConfiguration) {\n const cookieOptions: CookieOptions = {}\n\n cookieOptions.secure = !!initConfiguration.useSecureSessionCookie || !!initConfiguration.useCrossSiteSessionCookie\n cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie\n\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite()\n }\n\n return cookieOptions\n}\n","import { generateUUID } from '../../../tools/utils/stringUtils'\nimport type { SessionState } from '../sessionState'\nimport { toSessionString, toSessionState } from '../sessionState'\nimport type { SessionStoreStrategy, SessionStoreStrategyType } from './sessionStoreStrategy'\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy'\n\nconst LOCAL_STORAGE_TEST_KEY = '_dd_test_'\n\nexport function selectLocalStorageStrategy(): SessionStoreStrategyType | undefined {\n try {\n const id = generateUUID()\n const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`\n localStorage.setItem(testKey, id)\n const retrievedId = localStorage.getItem(testKey)\n localStorage.removeItem(testKey)\n return id === retrievedId ? { type: 'LocalStorage' } : undefined\n } catch (e) {\n return undefined\n }\n}\n\nexport function initLocalStorageStrategy(): SessionStoreStrategy {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n clearSession: clearSessionFromLocalStorage,\n }\n}\n\nfunction persistInLocalStorage(sessionState: SessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState))\n}\n\nfunction retrieveSessionFromLocalStorage(): SessionState {\n const sessionString = localStorage.getItem(SESSION_STORE_KEY)\n return toSessionState(sessionString)\n}\n\nfunction clearSessionFromLocalStorage() {\n localStorage.removeItem(SESSION_STORE_KEY)\n}\n","import { setTimeout } from '../../tools/timer'\nimport { generateUUID } from '../../tools/utils/stringUtils'\nimport type { SessionStoreStrategy } from './storeStrategies/sessionStoreStrategy'\nimport type { SessionState } from './sessionState'\nimport { expandSessionState, isSessionInExpiredState } from './sessionState'\n\ntype Operations = {\n process: (sessionState: SessionState) => SessionState | undefined\n after?: (sessionState: SessionState) => void\n}\n\nexport const LOCK_RETRY_DELAY = 10\nexport const LOCK_MAX_TRIES = 100\nconst bufferedOperations: Operations[] = []\nlet ongoingOperations: Operations | undefined\n\nexport function processSessionStoreOperations(\n operations: Operations,\n sessionStoreStrategy: SessionStoreStrategy,\n numberOfRetries = 0\n) {\n const { isLockEnabled, retrieveSession, persistSession, clearSession } = sessionStoreStrategy\n\n if (!ongoingOperations) {\n ongoingOperations = operations\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations)\n return\n }\n if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy)\n return\n }\n let currentLock: string\n let currentSession = retrieveSession()\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentSession.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries)\n return\n }\n // acquire lock\n currentLock = generateUUID()\n currentSession.lock = currentLock\n persistSession(currentSession)\n // if lock is not acquired, retry later\n currentSession = retrieveSession()\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries)\n return\n }\n }\n let processedSession = operations.process(currentSession)\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentSession = retrieveSession()\n if (currentSession.lock !== currentLock!) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries)\n return\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n clearSession()\n } else {\n expandSessionState(processedSession)\n persistSession(processedSession)\n }\n }\n if (isLockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentSession = retrieveSession()\n if (currentSession.lock !== currentLock!) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries)\n return\n }\n delete currentSession.lock\n persistSession(currentSession)\n processedSession = currentSession\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n operations.after?.(processedSession || currentSession)\n next(sessionStoreStrategy)\n}\n\nfunction retryLater(operations: Operations, sessionStore: SessionStoreStrategy, currentNumberOfRetries: number) {\n setTimeout(() => {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1)\n }, LOCK_RETRY_DELAY)\n}\n\nfunction next(sessionStore: SessionStoreStrategy) {\n ongoingOperations = undefined\n const nextOperations = bufferedOperations.shift()\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore)\n }\n}\n","import { clearInterval, setInterval } from '../../tools/timer'\nimport { Observable } from '../../tools/observable'\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils'\nimport { throttle } from '../../tools/utils/functionUtils'\nimport { generateUUID } from '../../tools/utils/stringUtils'\nimport type { InitConfiguration } from '../configuration'\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants'\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie'\nimport type { SessionStoreStrategyType } from './storeStrategies/sessionStoreStrategy'\nimport type { SessionState } from './sessionState'\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage'\nimport { processSessionStoreOperations } from './sessionStoreOperations'\n\nexport interface SessionStore {\n expandOrRenewSession: () => void\n expandSession: () => void\n getSession: () => SessionState\n renewObservable: Observable\n expireObservable: Observable\n expire: () => void\n stop: () => void\n}\n\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport const STORAGE_POLL_DELAY = ONE_SECOND\n\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(\n initConfiguration: InitConfiguration\n): SessionStoreStrategyType | undefined {\n let sessionStoreStrategyType = selectCookieStrategy(initConfiguration)\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy()\n }\n return sessionStoreStrategyType\n}\n\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(\n sessionStoreStrategyType: SessionStoreStrategyType,\n productKey: string,\n computeSessionState: (rawTrackingType?: string) => { trackingType: TrackingType; isTracked: boolean }\n): SessionStore {\n const renewObservable = new Observable()\n const expireObservable = new Observable()\n\n const sessionStoreStrategy =\n sessionStoreStrategyType.type === 'Cookie'\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy()\n const { clearSession, retrieveSession } = sessionStoreStrategy\n\n const watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY)\n let sessionCache: SessionState = retrieveActiveSession()\n\n function expandOrRenewSession() {\n let isTracked: boolean\n processSessionStoreOperations(\n {\n process: (sessionState) => {\n const synchronizedSession = synchronizeSession(sessionState)\n isTracked = expandOrRenewSessionState(synchronizedSession)\n return synchronizedSession\n },\n after: (sessionState) => {\n if (isTracked && !hasSessionInCache()) {\n renewSessionInCache(sessionState)\n }\n sessionCache = sessionState\n },\n },\n sessionStoreStrategy\n )\n }\n\n function expandSession() {\n processSessionStoreOperations(\n {\n process: (sessionState) => (hasSessionInCache() ? synchronizeSession(sessionState) : undefined),\n },\n sessionStoreStrategy\n )\n }\n\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations(\n {\n process: (sessionState) => (!isActiveSession(sessionState) ? {} : undefined),\n after: synchronizeSession,\n },\n sessionStoreStrategy\n )\n }\n\n function synchronizeSession(sessionState: SessionState) {\n if (!isActiveSession(sessionState)) {\n sessionState = {}\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache()\n } else {\n sessionCache = sessionState\n }\n }\n return sessionState\n }\n\n function expandOrRenewSessionState(sessionState: SessionState) {\n const { trackingType, isTracked } = computeSessionState(sessionState[productKey])\n sessionState[productKey] = trackingType\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID()\n sessionState.created = String(dateNow())\n }\n return isTracked\n }\n\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined\n }\n\n function isSessionInCacheOutdated(sessionState: SessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey]\n }\n\n function expireSessionInCache() {\n sessionCache = {}\n expireObservable.notify()\n }\n\n function renewSessionInCache(sessionState: SessionState) {\n sessionCache = sessionState\n renewObservable.notify()\n }\n\n function retrieveActiveSession(): SessionState {\n const session = retrieveSession()\n if (isActiveSession(session)) {\n return session\n }\n return {}\n }\n\n function isActiveSession(sessionState: SessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return (\n (sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire))\n )\n }\n\n return {\n expandOrRenewSession: throttle(expandOrRenewSession, STORAGE_POLL_DELAY).throttled,\n expandSession,\n getSession: () => sessionCache,\n renewObservable,\n expireObservable,\n expire: () => {\n clearSession()\n synchronizeSession({})\n },\n stop: () => {\n clearInterval(watchSessionTimeoutId)\n },\n }\n}\n","import { jsonStringify } from '../serialisation/jsonStringify'\n\nexport function normalizeUrl(url: string) {\n return buildUrl(url, getLocationOrigin()).href\n}\n\nexport function isValidUrl(url: string) {\n try {\n return !!buildUrl(url)\n } catch {\n return false\n }\n}\n\nexport function getOrigin(url: string) {\n return getLinkElementOrigin(buildUrl(url))\n}\n\nexport function getPathName(url: string) {\n const pathname = buildUrl(url).pathname\n return pathname[0] === '/' ? pathname : `/${pathname}`\n}\n\nexport function getSearch(url: string) {\n return buildUrl(url).search\n}\n\nexport function getHash(url: string) {\n return buildUrl(url).hash\n}\n\nexport function buildUrl(url: string, base?: string) {\n const supportedURL = getSupportedUrl()\n if (supportedURL) {\n try {\n return base !== undefined ? new supportedURL(url, base) : new supportedURL(url)\n } catch (error) {\n throw new Error(`Failed to construct URL: ${String(error)} ${jsonStringify({ url, base })!}`)\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(`Invalid URL: '${url}'`)\n }\n let doc = document\n const anchorElement = doc.createElement('a')\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('')\n const baseElement = doc.createElement('base')\n baseElement.href = base\n doc.head.appendChild(baseElement)\n doc.body.appendChild(anchorElement)\n }\n anchorElement.href = url\n return anchorElement\n}\n\nconst originalURL = URL\nlet isURLSupported: boolean | undefined\nfunction getSupportedUrl(): typeof URL | undefined {\n if (isURLSupported === undefined) {\n try {\n const url = new originalURL('http://test/path')\n isURLSupported = url.href === 'http://test/path'\n } catch {\n isURLSupported = false\n }\n }\n return isURLSupported ? originalURL : undefined\n}\n\nexport function getLocationOrigin() {\n return getLinkElementOrigin(window.location)\n}\n\n/**\n * Fallback\n * On IE HTMLAnchorElement origin is not supported: https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin\n * On Firefox window.location.origin is \"null\" for file: URIs: https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n */\nexport function getLinkElementOrigin(element: Location | HTMLAnchorElement | URL) {\n if (element.origin && element.origin !== 'null') {\n return element.origin\n }\n const sanitizedHost = element.host.replace(/(:80|:443)$/, '')\n return `${element.protocol}//${sanitizedHost}`\n}\n","export const INTAKE_SITE_STAGING = 'datad0g.com'\nexport const INTAKE_SITE_US1 = 'datadoghq.com'\nexport const INTAKE_SITE_EU1 = 'datadoghq.eu'\nexport const INTAKE_SITE_US1_FED = 'ddog-gov.com'\n","import type { Payload } from '../../transport'\nimport { timeStampNow } from '../../tools/utils/timeUtils'\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill'\nimport { ExperimentalFeature, isExperimentalFeatureEnabled } from '../../tools/experimentalFeatures'\nimport { generateUUID } from '../../tools/utils/stringUtils'\nimport type { InitConfiguration } from './configuration'\nimport { INTAKE_SITE_US1 } from './intakeSites'\n\n// replaced at build time\ndeclare const __BUILD_ENV__SDK_VERSION__: string\n\nexport type TrackType = 'logs' | 'rum' | 'replay'\n\nexport type EndpointBuilder = ReturnType\n\nexport function createEndpointBuilder(\n initConfiguration: InitConfiguration,\n trackType: TrackType,\n configurationTags: string[]\n) {\n const buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType)\n\n return {\n build(api: 'xhr' | 'fetch' | 'beacon', payload: Payload) {\n const parameters = buildEndpointParameters(initConfiguration, trackType, configurationTags, api, payload)\n return buildUrlWithParameters(parameters)\n },\n urlPrefix: buildUrlWithParameters(''),\n trackType,\n }\n}\n\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(\n initConfiguration: InitConfiguration,\n trackType: TrackType\n): (parameters: string) => string {\n const path = `/api/v2/${trackType}`\n const proxy = initConfiguration.proxy\n if (proxy) {\n const normalizedProxyUrl = normalizeUrl(proxy)\n return (parameters) => `${normalizedProxyUrl}?ddforward=${encodeURIComponent(`${path}?${parameters}`)}`\n }\n const host = buildEndpointHost(initConfiguration)\n return (parameters) => `https://${host}${path}?${parameters}`\n}\n\nfunction buildEndpointHost(initConfiguration: InitConfiguration) {\n const { site = INTAKE_SITE_US1, internalAnalyticsSubdomain } = initConfiguration\n\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return `${internalAnalyticsSubdomain}.${INTAKE_SITE_US1}`\n }\n\n const domainParts = site.split('.')\n const extension = domainParts.pop()\n return `browser-intake-${domainParts.join('-')}.${extension!}`\n}\n\n/**\n * Build parameters to be used for an intake request. Parameters should be re-built for each\n * request, as they change randomly.\n */\nfunction buildEndpointParameters(\n { clientToken, internalAnalyticsSubdomain }: InitConfiguration,\n trackType: TrackType,\n configurationTags: string[],\n api: 'xhr' | 'fetch' | 'beacon',\n { retry, flushReason, encoding }: Payload\n) {\n const tags = [`sdk_version:${__BUILD_ENV__SDK_VERSION__}`, `api:${api}`].concat(configurationTags)\n if (flushReason && isExperimentalFeatureEnabled(ExperimentalFeature.COLLECT_FLUSH_REASON)) {\n tags.push(`flush_reason:${flushReason}`)\n }\n if (retry) {\n tags.push(`retry_count:${retry.count}`, `retry_after:${retry.lastFailureStatus}`)\n }\n\n const parameters = [\n 'ddsource=browser',\n `ddtags=${encodeURIComponent(tags.join(','))}`,\n `dd-api-key=${clientToken}`,\n `dd-evp-origin-version=${encodeURIComponent(__BUILD_ENV__SDK_VERSION__)}`,\n 'dd-evp-origin=browser',\n `dd-request-id=${generateUUID()}`,\n ]\n\n if (encoding) {\n parameters.push(`dd-evp-encoding=${encoding}`)\n }\n\n if (trackType === 'rum') {\n parameters.push(`batch_time=${timeStampNow()}`)\n }\n\n if (internalAnalyticsSubdomain) {\n parameters.reverse()\n }\n\n return parameters.join('&')\n}\n","import { display } from '../../tools/display'\nimport type { InitConfiguration } from './configuration'\n\nexport const TAG_SIZE_LIMIT = 200\n\nexport function buildTags(configuration: InitConfiguration): string[] {\n const { env, service, version, datacenter } = configuration\n const tags = []\n\n if (env) {\n tags.push(buildTag('env', env))\n }\n if (service) {\n tags.push(buildTag('service', service))\n }\n if (version) {\n tags.push(buildTag('version', version))\n }\n if (datacenter) {\n tags.push(buildTag('datacenter', datacenter))\n }\n\n return tags\n}\n\nconst FORBIDDEN_CHARACTERS = /[^a-z0-9_:./-]/\n\nexport function buildTag(key: string, rawValue: string) {\n // See https://docs.datadoghq.com/getting_started/tagging/#defining-tags for tags syntax. Note\n // that the backend may not follow the exact same rules, so we only want to display an informal\n // warning.\n const valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1\n\n if (rawValue.length > valueSizeLimit || FORBIDDEN_CHARACTERS.test(rawValue)) {\n display.warn(`${key} value doesn't meet tag requirements and will be sanitized`)\n }\n\n // Let the backend do most of the sanitization, but still make sure multiple tags can't be crafted\n // by forging a value containing commas.\n const sanitizedValue = rawValue.replace(/,/g, '_')\n\n return `${key}:${sanitizedValue}`\n}\n","import { objectValues, assign } from '../../tools/utils/polyfills'\nimport type { InitConfiguration } from './configuration'\nimport type { EndpointBuilder } from './endpointBuilder'\nimport { createEndpointBuilder } from './endpointBuilder'\nimport { buildTags } from './tags'\nimport { INTAKE_SITE_US1 } from './intakeSites'\n\nexport interface TransportConfiguration {\n logsEndpointBuilder: EndpointBuilder\n rumEndpointBuilder: EndpointBuilder\n sessionReplayEndpointBuilder: EndpointBuilder\n isIntakeUrl: (url: string) => boolean\n replica?: ReplicaConfiguration\n site: string\n}\n\nexport interface ReplicaConfiguration {\n applicationId?: string\n logsEndpointBuilder: EndpointBuilder\n rumEndpointBuilder: EndpointBuilder\n}\n\nexport function computeTransportConfiguration(initConfiguration: InitConfiguration): TransportConfiguration {\n const tags = buildTags(initConfiguration)\n\n const endpointBuilders = computeEndpointBuilders(initConfiguration, tags)\n const intakeUrlPrefixes = objectValues(endpointBuilders).map((builder) => builder.urlPrefix)\n\n const replicaConfiguration = computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags)\n\n return assign(\n {\n isIntakeUrl: (url: string) => intakeUrlPrefixes.some((intakeEndpoint) => url.indexOf(intakeEndpoint) === 0),\n replica: replicaConfiguration,\n site: initConfiguration.site || INTAKE_SITE_US1,\n },\n endpointBuilders\n )\n}\n\nfunction computeEndpointBuilders(initConfiguration: InitConfiguration, tags: string[]) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'replay', tags),\n }\n}\n\nfunction computeReplicaConfiguration(\n initConfiguration: InitConfiguration,\n intakeUrlPrefixes: string[],\n tags: string[]\n): ReplicaConfiguration | undefined {\n if (!initConfiguration.replica) {\n return\n }\n\n const replicaConfiguration: InitConfiguration = assign({}, initConfiguration, {\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n })\n\n const replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n }\n\n intakeUrlPrefixes.push(...objectValues(replicaEndpointBuilders).map((builder) => builder.urlPrefix))\n\n return assign({ applicationId: initConfiguration.replica.applicationId }, replicaEndpointBuilders)\n}\n","import { catchUserErrors } from '../../tools/catchUserErrors'\nimport { display } from '../../tools/display'\nimport type { RawTelemetryConfiguration } from '../telemetry'\nimport { ExperimentalFeature, addExperimentalFeatures } from '../../tools/experimentalFeatures'\nimport type { Duration } from '../../tools/utils/timeUtils'\nimport { ONE_SECOND } from '../../tools/utils/timeUtils'\nimport { isPercentage } from '../../tools/utils/numberUtils'\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils'\nimport { objectHasValue } from '../../tools/utils/objectUtils'\nimport { assign } from '../../tools/utils/polyfills'\nimport { selectSessionStoreStrategyType } from '../session/sessionStore'\nimport type { SessionStoreStrategyType } from '../session/storeStrategies/sessionStoreStrategy'\nimport type { TransportConfiguration } from './transportConfiguration'\nimport { computeTransportConfiguration } from './transportConfiguration'\n\nexport const DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n} as const\nexport type DefaultPrivacyLevel = (typeof DefaultPrivacyLevel)[keyof typeof DefaultPrivacyLevel]\n\nexport interface InitConfiguration {\n // global options\n clientToken: string\n beforeSend?: GenericBeforeSendCallback | undefined\n sessionSampleRate?: number | undefined\n telemetrySampleRate?: number | undefined\n silentMultipleInit?: boolean | undefined\n allowFallbackToLocalStorage?: boolean | undefined\n allowUntrustedEvents?: boolean | undefined\n storeContextsAcrossPages?: boolean | undefined\n\n // transport options\n proxy?: string | undefined\n site?: string | undefined\n\n // tag and context options\n service?: string | undefined\n env?: string | undefined\n version?: string | undefined\n\n // cookie options\n useCrossSiteSessionCookie?: boolean | undefined\n useSecureSessionCookie?: boolean | undefined\n trackSessionAcrossSubdomains?: boolean | undefined\n\n // internal options\n enableExperimentalFeatures?: string[] | undefined\n replica?: ReplicaUserConfiguration | undefined\n datacenter?: string\n internalAnalyticsSubdomain?: string\n\n telemetryConfigurationSampleRate?: number\n}\n\n// This type is only used to build the core configuration. Logs and RUM SDKs are using a proper type\n// for this option.\ntype GenericBeforeSendCallback = (event: any, context?: any) => unknown\n\ninterface ReplicaUserConfiguration {\n applicationId?: string\n clientToken: string\n}\n\nexport interface Configuration extends TransportConfiguration {\n // Built from init configuration\n beforeSend: GenericBeforeSendCallback | undefined\n sessionStoreStrategyType: SessionStoreStrategyType | undefined\n sessionSampleRate: number\n telemetrySampleRate: number\n telemetryConfigurationSampleRate: number\n service: string | undefined\n silentMultipleInit: boolean\n allowUntrustedEvents: boolean\n\n // Event limits\n eventRateLimiterThreshold: number // Limit the maximum number of actions, errors and logs per minutes\n maxTelemetryEventsPerPage: number\n\n // Batch configuration\n batchBytesLimit: number\n flushTimeout: Duration\n batchMessagesLimit: number\n messageBytesLimit: number\n}\n\nexport function validateAndBuildConfiguration(initConfiguration: InitConfiguration): Configuration | undefined {\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.')\n return\n }\n\n if (initConfiguration.sessionSampleRate !== undefined && !isPercentage(initConfiguration.sessionSampleRate)) {\n display.error('Session Sample Rate should be a number between 0 and 100')\n return\n }\n\n if (initConfiguration.telemetrySampleRate !== undefined && !isPercentage(initConfiguration.telemetrySampleRate)) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100')\n return\n }\n\n if (\n initConfiguration.telemetryConfigurationSampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetryConfigurationSampleRate)\n ) {\n display.error('Telemetry Configuration Sample Rate should be a number between 0 and 100')\n return\n }\n\n // Set the experimental feature flags as early as possible, so we can use them in most places\n if (Array.isArray(initConfiguration.enableExperimentalFeatures)) {\n addExperimentalFeatures(\n initConfiguration.enableExperimentalFeatures.filter((flag): flag is ExperimentalFeature =>\n objectHasValue(ExperimentalFeature, flag)\n )\n )\n }\n\n return assign(\n {\n beforeSend:\n initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: initConfiguration.sessionSampleRate ?? 100,\n telemetrySampleRate: initConfiguration.telemetrySampleRate ?? 20,\n telemetryConfigurationSampleRate: initConfiguration.telemetryConfigurationSampleRate ?? 5,\n service: initConfiguration.service,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,\n\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: (30 * ONE_SECOND) as Duration,\n\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n },\n computeTransportConfiguration(initConfiguration)\n )\n}\n\nexport function serializeConfiguration(initConfiguration: InitConfiguration): Partial {\n return {\n session_sample_rate: initConfiguration.sessionSampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_cross_site_session_cookie: initConfiguration.useCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: !!initConfiguration.proxy,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,\n }\n}\n","import { startsWith } from './utils/polyfills'\nimport { display } from './display'\nimport { getType } from './utils/typeUtils'\n\nexport type MatchOption = string | RegExp | ((value: string) => boolean)\n\nexport function isMatchOption(item: unknown): item is MatchOption {\n const itemType = getType(item)\n return itemType === 'string' || itemType === 'function' || item instanceof RegExp\n}\n\n/**\n * Returns true if value can be matched by at least one of the provided MatchOptions.\n * When comparing strings, setting useStartsWith to true will compare the value with the start of\n * the option, instead of requiring an exact match.\n */\nexport function matchList(list: MatchOption[], value: string, useStartsWith = false): boolean {\n return list.some((item) => {\n try {\n if (typeof item === 'function') {\n return item(value)\n } else if (item instanceof RegExp) {\n return item.test(value)\n } else if (typeof item === 'string') {\n return useStartsWith ? startsWith(value, item) : item === value\n }\n } catch (e) {\n display.error(e)\n }\n return false\n })\n}\n","import {\n objectEntries,\n shallowClone,\n performDraw,\n isNumber,\n assign,\n find,\n getType,\n isMatchOption,\n matchList,\n} from '@datadog/browser-core'\nimport type { RumConfiguration } from '../configuration'\nimport type {\n RumFetchResolveContext,\n RumFetchStartContext,\n RumXhrCompleteContext,\n RumXhrStartContext,\n} from '../requestCollection'\nimport type { RumSessionManager } from '../rumSessionManager'\nimport type { PropagatorType, TracingOption } from './tracer.types'\n\nexport interface Tracer {\n traceFetch: (context: Partial) => void\n traceXhr: (context: Partial, xhr: XMLHttpRequest) => void\n clearTracingIfNeeded: (context: RumFetchResolveContext | RumXhrCompleteContext) => void\n}\n\ninterface TracingHeaders {\n [key: string]: string\n}\n\nexport function isTracingOption(item: unknown): item is TracingOption {\n const expectedItem = item as TracingOption\n return (\n getType(expectedItem) === 'object' &&\n isMatchOption(expectedItem.match) &&\n Array.isArray(expectedItem.propagatorTypes)\n )\n}\n\n/**\n * Clear tracing information to avoid incomplete traces. Ideally, we should do it when the\n * request did not reach the server, but the browser does not expose this. So, we clear tracing\n * information if the request ended with status 0 without being aborted by the application.\n *\n * Reasoning:\n *\n * * Applications are usually aborting requests after a bit of time, for example when the user is\n * typing (autocompletion) or navigating away (in a SPA). With a performant device and good\n * network conditions, the request is likely to reach the server before being canceled.\n *\n * * Requests aborted otherwise (ex: lack of internet, CORS issue, blocked by a privacy extension)\n * are likely to finish quickly and without reaching the server.\n *\n * Of course, it might not be the case every time, but it should limit having incomplete traces a\n * bit.\n * */\nexport function clearTracingIfNeeded(context: RumFetchResolveContext | RumXhrCompleteContext) {\n if (context.status === 0 && !context.isAborted) {\n context.traceId = undefined\n context.spanId = undefined\n context.traceSampled = undefined\n }\n}\n\nexport function startTracer(configuration: RumConfiguration, sessionManager: RumSessionManager): Tracer {\n return {\n clearTracingIfNeeded,\n traceFetch: (context) =>\n injectHeadersIfTracingAllowed(configuration, context, sessionManager, (tracingHeaders: TracingHeaders) => {\n if (context.input instanceof Request && !context.init?.headers) {\n context.input = new Request(context.input)\n Object.keys(tracingHeaders).forEach((key) => {\n ;(context.input as Request).headers.append(key, tracingHeaders[key])\n })\n } else {\n context.init = shallowClone(context.init)\n const headers: Array<[string, string]> = []\n if (context.init.headers instanceof Headers) {\n context.init.headers.forEach((value, key) => {\n headers.push([key, value])\n })\n } else if (Array.isArray(context.init.headers)) {\n context.init.headers.forEach((header) => {\n headers.push(header)\n })\n } else if (context.init.headers) {\n Object.keys(context.init.headers).forEach((key) => {\n headers.push([key, (context.init!.headers as Record)[key]])\n })\n }\n context.init.headers = headers.concat(objectEntries(tracingHeaders))\n }\n }),\n traceXhr: (context, xhr) =>\n injectHeadersIfTracingAllowed(configuration, context, sessionManager, (tracingHeaders: TracingHeaders) => {\n Object.keys(tracingHeaders).forEach((name) => {\n xhr.setRequestHeader(name, tracingHeaders[name])\n })\n }),\n }\n}\n\nfunction injectHeadersIfTracingAllowed(\n configuration: RumConfiguration,\n context: Partial,\n sessionManager: RumSessionManager,\n inject: (tracingHeaders: TracingHeaders) => void\n) {\n if (!isTracingSupported() || !sessionManager.findTrackedSession()) {\n return\n }\n\n const tracingOption = find(configuration.allowedTracingUrls, (tracingOption: TracingOption) =>\n matchList([tracingOption.match], context.url!, true)\n )\n if (!tracingOption) {\n return\n }\n\n context.traceId = new TraceIdentifier()\n context.spanId = new TraceIdentifier()\n context.traceSampled = !isNumber(configuration.traceSampleRate) || performDraw(configuration.traceSampleRate)\n inject(makeTracingHeaders(context.traceId, context.spanId, context.traceSampled, tracingOption.propagatorTypes))\n}\n\nexport function isTracingSupported() {\n return getCrypto() !== undefined\n}\n\nfunction getCrypto() {\n return window.crypto || (window as any).msCrypto\n}\n\n/**\n * When trace is not sampled, set priority to '0' instead of not adding the tracing headers\n * to prepare the implementation for sampling delegation.\n */\nfunction makeTracingHeaders(\n traceId: TraceIdentifier,\n spanId: TraceIdentifier,\n traceSampled: boolean,\n propagatorTypes: PropagatorType[]\n): TracingHeaders {\n const tracingHeaders: TracingHeaders = {}\n\n propagatorTypes.forEach((propagatorType) => {\n switch (propagatorType) {\n case 'datadog': {\n assign(tracingHeaders, {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': spanId.toDecimalString(),\n 'x-datadog-sampling-priority': traceSampled ? '1' : '0',\n 'x-datadog-trace-id': traceId.toDecimalString(),\n })\n break\n }\n // https://www.w3.org/TR/trace-context/\n case 'tracecontext': {\n assign(tracingHeaders, {\n traceparent: `00-0000000000000000${traceId.toPaddedHexadecimalString()}-${spanId.toPaddedHexadecimalString()}-0${\n traceSampled ? '1' : '0'\n }`,\n })\n break\n }\n // https://github.com/openzipkin/b3-propagation\n case 'b3': {\n assign(tracingHeaders, {\n b3: `${traceId.toPaddedHexadecimalString()}-${spanId.toPaddedHexadecimalString()}-${\n traceSampled ? '1' : '0'\n }`,\n })\n break\n }\n case 'b3multi': {\n assign(tracingHeaders, {\n 'X-B3-TraceId': traceId.toPaddedHexadecimalString(),\n 'X-B3-SpanId': spanId.toPaddedHexadecimalString(),\n 'X-B3-Sampled': traceSampled ? '1' : '0',\n })\n break\n }\n }\n })\n return tracingHeaders\n}\n\n/* eslint-disable no-bitwise */\nexport class TraceIdentifier {\n private buffer: Uint8Array = new Uint8Array(8)\n\n constructor() {\n getCrypto().getRandomValues(this.buffer)\n this.buffer[0] = this.buffer[0] & 0x7f // force 63-bit\n }\n\n toString(radix: number) {\n let high = this.readInt32(0)\n let low = this.readInt32(4)\n let str = ''\n\n do {\n const mod = (high % radix) * 4294967296 + low\n high = Math.floor(high / radix)\n low = Math.floor(mod / radix)\n str = (mod % radix).toString(radix) + str\n } while (high || low)\n\n return str\n }\n\n /**\n * Format used everywhere except the trace intake\n */\n toDecimalString() {\n return this.toString(10)\n }\n\n /**\n * Format used by OTel headers\n */\n toPaddedHexadecimalString() {\n const traceId = this.toString(16)\n return Array(17 - traceId.length).join('0') + traceId\n }\n\n private readInt32(offset: number) {\n return (\n this.buffer[offset] * 16777216 +\n (this.buffer[offset + 1] << 16) +\n (this.buffer[offset + 2] << 8) +\n this.buffer[offset + 3]\n )\n }\n}\n/* eslint-enable no-bitwise */\n","import type { Configuration, InitConfiguration, MatchOption, RawTelemetryConfiguration } from '@datadog/browser-core'\nimport {\n getType,\n arrayFrom,\n isMatchOption,\n serializeConfiguration,\n assign,\n DefaultPrivacyLevel,\n display,\n isPercentage,\n objectHasValue,\n validateAndBuildConfiguration,\n} from '@datadog/browser-core'\nimport type { RumEventDomainContext } from '../domainContext.types'\nimport type { RumEvent } from '../rumEvent.types'\nimport { isTracingOption } from './tracing/tracer'\nimport type { PropagatorType, TracingOption } from './tracing/tracer.types'\n\nexport const DEFAULT_PROPAGATOR_TYPES: PropagatorType[] = ['tracecontext', 'datadog']\n\nexport interface RumInitConfiguration extends InitConfiguration {\n // global options\n applicationId: string\n beforeSend?: ((event: RumEvent, context: RumEventDomainContext) => boolean) | undefined\n excludedActivityUrls?: MatchOption[] | undefined\n workerUrl?: string\n\n // tracing options\n allowedTracingUrls?: Array | undefined\n traceSampleRate?: number | undefined\n\n // replay options\n defaultPrivacyLevel?: DefaultPrivacyLevel | undefined\n subdomain?: string\n sessionReplaySampleRate?: number | undefined\n startSessionReplayRecordingManually?: boolean | undefined\n\n // action options\n trackUserInteractions?: boolean | undefined\n actionNameAttribute?: string | undefined\n\n // view options\n trackViewsManually?: boolean | undefined\n\n trackResources?: boolean | undefined\n trackLongTasks?: boolean | undefined\n}\n\nexport type HybridInitConfiguration = Omit\n\nexport interface RumConfiguration extends Configuration {\n // Built from init configuration\n actionNameAttribute: string | undefined\n traceSampleRate: number | undefined\n allowedTracingUrls: TracingOption[]\n excludedActivityUrls: MatchOption[]\n workerUrl: string | undefined\n applicationId: string\n defaultPrivacyLevel: DefaultPrivacyLevel\n sessionReplaySampleRate: number\n startSessionReplayRecordingManually: boolean\n trackUserInteractions: boolean\n trackViewsManually: boolean\n trackResources: boolean\n trackLongTasks: boolean\n version?: string\n subdomain?: string\n customerDataTelemetrySampleRate: number\n}\n\nexport function validateAndBuildRumConfiguration(\n initConfiguration: RumInitConfiguration\n): RumConfiguration | undefined {\n if (!initConfiguration.applicationId) {\n display.error('Application ID is not configured, no RUM data will be collected.')\n return\n }\n\n if (\n initConfiguration.sessionReplaySampleRate !== undefined &&\n !isPercentage(initConfiguration.sessionReplaySampleRate)\n ) {\n display.error('Session Replay Sample Rate should be a number between 0 and 100')\n return\n }\n\n if (initConfiguration.traceSampleRate !== undefined && !isPercentage(initConfiguration.traceSampleRate)) {\n display.error('Trace Sample Rate should be a number between 0 and 100')\n return\n }\n\n if (initConfiguration.excludedActivityUrls !== undefined && !Array.isArray(initConfiguration.excludedActivityUrls)) {\n display.error('Excluded Activity Urls should be an array')\n return\n }\n\n const allowedTracingUrls = validateAndBuildTracingOptions(initConfiguration)\n if (!allowedTracingUrls) {\n return\n }\n\n const baseConfiguration = validateAndBuildConfiguration(initConfiguration)\n if (!baseConfiguration) {\n return\n }\n\n return assign(\n {\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate: initConfiguration.sessionReplaySampleRate ?? 0,\n startSessionReplayRecordingManually: !!initConfiguration.startSessionReplayRecordingManually,\n traceSampleRate: initConfiguration.traceSampleRate,\n allowedTracingUrls,\n excludedActivityUrls: initConfiguration.excludedActivityUrls ?? [],\n workerUrl: initConfiguration.workerUrl,\n trackUserInteractions: !!initConfiguration.trackUserInteractions,\n trackViewsManually: !!initConfiguration.trackViewsManually,\n trackResources: !!initConfiguration.trackResources,\n trackLongTasks: !!initConfiguration.trackLongTasks,\n subdomain: initConfiguration.subdomain,\n defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel)\n ? initConfiguration.defaultPrivacyLevel\n : DefaultPrivacyLevel.MASK,\n customerDataTelemetrySampleRate: 1,\n },\n baseConfiguration\n )\n}\n\n/**\n * Validates allowedTracingUrls and converts match options to tracing options\n */\nfunction validateAndBuildTracingOptions(initConfiguration: RumInitConfiguration): TracingOption[] | undefined {\n if (initConfiguration.allowedTracingUrls !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingUrls)) {\n display.error('Allowed Tracing URLs should be an array')\n return\n }\n if (initConfiguration.allowedTracingUrls.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled')\n return\n }\n // Convert from (MatchOption | TracingOption) to TracingOption, remove unknown properties\n const tracingOptions: TracingOption[] = []\n initConfiguration.allowedTracingUrls.forEach((option) => {\n if (isMatchOption(option)) {\n tracingOptions.push({ match: option, propagatorTypes: DEFAULT_PROPAGATOR_TYPES })\n } else if (isTracingOption(option)) {\n tracingOptions.push(option)\n } else {\n display.warn(\n 'Allowed Tracing Urls parameters should be a string, RegExp, function, or an object. Ignoring parameter',\n option\n )\n }\n })\n\n return tracingOptions\n }\n\n return []\n}\n\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls\n */\nfunction getSelectedTracingPropagators(configuration: RumInitConfiguration): PropagatorType[] {\n const usedTracingPropagators = new Set()\n\n if (Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0) {\n configuration.allowedTracingUrls.forEach((option) => {\n if (isMatchOption(option)) {\n DEFAULT_PROPAGATOR_TYPES.forEach((propagatorType) => usedTracingPropagators.add(propagatorType))\n } else if (getType(option) === 'object' && Array.isArray(option.propagatorTypes)) {\n // Ensure we have an array, as we cannot rely on types yet (configuration is provided by users)\n option.propagatorTypes.forEach((propagatorType) => usedTracingPropagators.add(propagatorType))\n }\n })\n }\n\n return arrayFrom(usedTracingPropagators)\n}\n\nexport function serializeRumConfiguration(configuration: RumInitConfiguration): RawTelemetryConfiguration {\n const baseSerializedConfiguration = serializeConfiguration(configuration)\n\n return assign(\n {\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n trace_sample_rate: configuration.traceSampleRate,\n action_name_attribute: configuration.actionNameAttribute,\n use_allowed_tracing_urls:\n Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0,\n selected_tracing_propagators: getSelectedTracingPropagators(configuration),\n default_privacy_level: configuration.defaultPrivacyLevel,\n use_excluded_activity_urls:\n Array.isArray(configuration.excludedActivityUrls) && configuration.excludedActivityUrls.length > 0,\n use_worker_url: !!configuration.workerUrl,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: configuration.trackUserInteractions,\n track_resources: configuration.trackResources,\n track_long_task: configuration.trackLongTasks,\n },\n baseSerializedConfiguration\n )\n}\n","import type { Context, ContextManager, User } from '@datadog/browser-core'\nimport type { RecorderApi } from '../../boot/rumPublicApi'\n\nexport interface CommonContext {\n user: User\n context: Context\n hasReplay: true | undefined\n}\n\nexport function buildCommonContext(\n globalContextManager: ContextManager,\n userContextManager: ContextManager,\n recorderApi: RecorderApi\n): CommonContext {\n return {\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n hasReplay: recorderApi.isRecording() ? true : undefined,\n }\n}\n","interface BrowserWindow {\n __ddBrowserSdkExtensionCallback?: (message: unknown) => void\n}\n\ntype ExtensionMessageType = 'logs' | 'record' | 'rum' | 'telemetry'\n\nexport function sendToExtension(type: ExtensionMessageType, payload: unknown) {\n const callback = (window as BrowserWindow).__ddBrowserSdkExtensionCallback\n if (callback) {\n callback({ type, payload })\n }\n}\n","import type { TelemetryEvent, TelemetryConfigurationEvent } from './telemetryEvent.types'\n\nexport const TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n} as const\n\nexport const enum StatusType {\n debug = 'debug',\n error = 'error',\n}\n\nexport interface RuntimeEnvInfo {\n is_local_file: boolean\n is_worker: boolean\n}\n\nexport type RawTelemetryEvent = TelemetryEvent['telemetry']\nexport type RawTelemetryConfiguration = TelemetryConfigurationEvent['telemetry']['configuration']\n","import type { Context } from '../../tools/serialisation/context'\nimport { ConsoleApiName } from '../../tools/display'\nimport { toStackTraceString, NO_ERROR_STACK_PRESENT_MESSAGE } from '../error/error'\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures'\nimport type { Configuration } from '../configuration'\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration'\nimport { Observable } from '../../tools/observable'\nimport { timeStampNow } from '../../tools/utils/timeUtils'\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor'\nimport { sendToExtension } from '../../tools/sendToExtension'\nimport { startsWith, arrayFrom, includes, assign } from '../../tools/utils/polyfills'\nimport { performDraw } from '../../tools/utils/numberUtils'\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify'\nimport { combine } from '../../tools/mergeInto'\nimport { NonErrorPrefix } from '../error/error.types'\nimport type { StackTrace } from '../error/computeStackTrace'\nimport { computeStackTrace } from '../error/computeStackTrace'\nimport type { TelemetryEvent } from './telemetryEvent.types'\nimport type { RawTelemetryConfiguration, RawTelemetryEvent, RuntimeEnvInfo } from './rawTelemetryEvent.types'\nimport { StatusType, TelemetryType } from './rawTelemetryEvent.types'\n\n// replaced at build time\ndeclare const __BUILD_ENV__SDK_VERSION__: string\n\nconst ALLOWED_FRAME_URLS = [\n 'https://www.datadoghq-browser-agent.com',\n 'https://www.datad0g-browser-agent.com',\n 'https://d3uc069fcn7uxw.cloudfront.net',\n 'https://d20xtzwzcl0ceb.cloudfront.net',\n 'http://localhost',\n '',\n]\n\nexport const enum TelemetryService {\n LOGS = 'browser-logs-sdk',\n RUM = 'browser-rum-sdk',\n}\n\nexport interface Telemetry {\n setContextProvider: (provider: () => Context) => void\n observable: Observable\n enabled: boolean\n}\n\nconst TELEMETRY_EXCLUDED_SITES: string[] = [INTAKE_SITE_US1_FED]\n\nconst telemetryConfiguration: {\n maxEventsPerPage: number\n sentEventCount: number\n telemetryEnabled: boolean\n telemetryConfigurationEnabled: boolean\n} = { maxEventsPerPage: 0, sentEventCount: 0, telemetryEnabled: false, telemetryConfigurationEnabled: false }\n\nlet onRawTelemetryEventCollected: ((event: RawTelemetryEvent) => void) | undefined\n\nexport function startTelemetry(telemetryService: TelemetryService, configuration: Configuration): Telemetry {\n let contextProvider: () => Context\n const observable = new Observable()\n\n telemetryConfiguration.telemetryEnabled =\n !includes(TELEMETRY_EXCLUDED_SITES, configuration.site) && performDraw(configuration.telemetrySampleRate)\n telemetryConfiguration.telemetryConfigurationEnabled =\n telemetryConfiguration.telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate)\n\n const runtimeEnvInfo = getRuntimeEnvInfo()\n onRawTelemetryEventCollected = (rawEvent: RawTelemetryEvent) => {\n if (telemetryConfiguration.telemetryEnabled) {\n const event = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo)\n observable.notify(event)\n sendToExtension('telemetry', event)\n }\n }\n startMonitorErrorCollection(addTelemetryError)\n\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0,\n })\n\n function toTelemetryEvent(\n telemetryService: TelemetryService,\n event: RawTelemetryEvent,\n runtimeEnvInfo: RuntimeEnvInfo\n ): TelemetryEvent & Context {\n return combine(\n {\n type: 'telemetry' as const,\n date: timeStampNow(),\n service: telemetryService,\n version: __BUILD_ENV__SDK_VERSION__,\n source: 'browser' as const,\n _dd: {\n format_version: 2 as const,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n }),\n experimental_features: arrayFrom(getExperimentalFeatures()),\n },\n contextProvider !== undefined ? contextProvider() : {}\n ) as TelemetryEvent & Context\n }\n\n return {\n setContextProvider: (provider: () => Context) => {\n contextProvider = provider\n },\n observable,\n enabled: telemetryConfiguration.telemetryEnabled,\n }\n}\nfunction getRuntimeEnvInfo(): RuntimeEnvInfo {\n return {\n is_local_file: window.location.protocol === 'file:',\n is_worker: 'WorkerGlobalScope' in self,\n }\n}\n\nexport function startFakeTelemetry() {\n const events: RawTelemetryEvent[] = []\n assign(telemetryConfiguration, {\n maxEventsPerPage: Infinity,\n sentEventCount: 0,\n })\n\n onRawTelemetryEventCollected = (event: RawTelemetryEvent) => {\n events.push(event)\n }\n\n return events\n}\n\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined\n}\n\n/**\n * Avoid mixing telemetry events from different data centers\n * but keep replicating staging events for reliability\n */\nexport function isTelemetryReplicationAllowed(configuration: Configuration) {\n return configuration.site === INTAKE_SITE_STAGING\n}\n\nexport function addTelemetryDebug(message: string, context?: Context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context)\n addTelemetry(\n assign(\n {\n type: TelemetryType.log,\n message,\n status: StatusType.debug,\n },\n context\n )\n )\n}\n\nexport function addTelemetryError(e: unknown, context?: Context) {\n addTelemetry(\n assign(\n {\n type: TelemetryType.log,\n status: StatusType.error,\n },\n formatError(e),\n context\n )\n )\n}\n\nexport function addTelemetryConfiguration(configuration: RawTelemetryConfiguration) {\n if (telemetryConfiguration.telemetryConfigurationEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration,\n })\n }\n}\n\nfunction addTelemetry(event: RawTelemetryEvent) {\n if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {\n telemetryConfiguration.sentEventCount += 1\n onRawTelemetryEventCollected(event)\n }\n}\n\nexport function formatError(e: unknown) {\n if (e instanceof Error) {\n const stackTrace = computeStackTrace(e)\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace)),\n },\n message: stackTrace.message!,\n }\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE,\n },\n message: `${NonErrorPrefix.UNCAUGHT} ${jsonStringify(e)!}`,\n }\n}\n\nexport function scrubCustomerFrames(stackTrace: StackTrace) {\n stackTrace.stack = stackTrace.stack.filter(\n (frame) => !frame.url || ALLOWED_FRAME_URLS.some((allowedFrameUrl) => startsWith(frame.url!, allowedFrameUrl))\n )\n return stackTrace\n}\n","import { isExperimentalFeatureEnabled, ExperimentalFeature } from '../tools/experimentalFeatures'\nimport { Observable } from '../tools/observable'\nimport { objectValues, includes } from '../tools/utils/polyfills'\nimport { noop } from '../tools/utils/functionUtils'\nimport type { Configuration } from '../domain/configuration'\nimport { addEventListeners, addEventListener, DOM_EVENT } from './addEventListener'\n\nexport const PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n} as const\n\nexport type PageExitReason = (typeof PageExitReason)[keyof typeof PageExitReason]\n\nexport interface PageExitEvent {\n reason: PageExitReason\n}\n\nexport function createPageExitObservable(configuration: Configuration): Observable {\n const observable = new Observable(() => {\n const pagehideEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGEHIDE)\n const { stop: stopListeners } = addEventListeners(\n configuration,\n window,\n [DOM_EVENT.VISIBILITY_CHANGE, DOM_EVENT.FREEZE, DOM_EVENT.PAGE_HIDE],\n (event) => {\n if (event.type === DOM_EVENT.PAGE_HIDE && pagehideEnabled) {\n /**\n * Only event that detect page unload events while being compatible with the back/forward cache (bfcache)\n */\n observable.notify({ reason: PageExitReason.PAGEHIDE })\n } else if (event.type === DOM_EVENT.VISIBILITY_CHANGE && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN })\n } else if (event.type === DOM_EVENT.FREEZE) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN })\n }\n },\n { capture: true }\n )\n\n let stopBeforeUnloadListener = noop\n if (!pagehideEnabled) {\n stopBeforeUnloadListener = addEventListener(configuration, window, DOM_EVENT.BEFORE_UNLOAD, () => {\n observable.notify({ reason: PageExitReason.UNLOADING })\n }).stop\n }\n\n return () => {\n stopListeners()\n stopBeforeUnloadListener()\n }\n })\n\n return observable\n}\n\nexport function isPageExitReason(reason: string | undefined): reason is PageExitReason {\n return includes(objectValues(PageExitReason), reason)\n}\n","import { monitor, noop, Observable, getZoneJsOriginalValue } from '@datadog/browser-core'\n\nexport function createDOMMutationObservable() {\n const MutationObserver = getMutationObserverConstructor()\n\n const observable: Observable = new Observable(() => {\n if (!MutationObserver) {\n return\n }\n const observer = new MutationObserver(monitor(() => observable.notify()))\n observer.observe(document, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n })\n return () => observer.disconnect()\n })\n\n return observable\n}\n\ntype MutationObserverConstructor = new (callback: MutationCallback) => MutationObserver\n\nexport interface BrowserWindow extends Window {\n MutationObserver?: MutationObserverConstructor\n Zone?: unknown\n}\n\nexport function getMutationObserverConstructor(): MutationObserverConstructor | undefined {\n let constructor: MutationObserverConstructor | undefined\n const browserWindow: BrowserWindow = window\n\n // Angular uses Zone.js to provide a context persisting across async tasks. Zone.js replaces the\n // global MutationObserver constructor with a patched version to support the context propagation.\n // There is an ongoing issue[1][2] with this setup when using a MutationObserver within a Angular\n // component: on some occasions, the callback is being called in an infinite loop, causing the\n // page to freeze (even if the callback is completely empty).\n //\n // To work around this issue, we try to get the original MutationObserver constructor stored by\n // Zone.js.\n //\n // [1] https://github.com/angular/angular/issues/26948\n // [2] https://github.com/angular/angular/issues/31712\n if (browserWindow.Zone) {\n // Zone.js 0.8.6+ is storing original class constructors into the browser 'window' object[3].\n //\n // [3] https://github.com/angular/angular/blob/6375fa79875c0fe7b815efc45940a6e6f5c9c9eb/packages/zone.js/lib/common/utils.ts#L288\n constructor = getZoneJsOriginalValue(browserWindow, 'MutationObserver')\n\n if (browserWindow.MutationObserver && constructor === browserWindow.MutationObserver) {\n // Anterior Zone.js versions (used in Angular 2) does not expose the original MutationObserver\n // in the 'window' object. Luckily, the patched MutationObserver class is storing an original\n // instance in its properties[4]. Let's get the original MutationObserver constructor from\n // there.\n //\n // [4] https://github.com/angular/zone.js/blob/v0.8.5/lib/common/utils.ts#L412\n\n const patchedInstance = new browserWindow.MutationObserver(noop) as {\n originalInstance?: { constructor: MutationObserverConstructor }\n }\n\n const originalInstance = getZoneJsOriginalValue(patchedInstance, 'originalInstance')\n constructor = originalInstance && originalInstance.constructor\n }\n }\n\n if (!constructor) {\n constructor = browserWindow.MutationObserver\n }\n\n return constructor\n}\n","import type { Configuration } from '../domain/configuration'\nimport { DOM_EVENT, addEventListener } from './addEventListener'\n\nexport function runOnReadyState(\n configuration: Configuration,\n expectedReadyState: 'complete' | 'interactive',\n callback: () => void\n) {\n if (document.readyState === expectedReadyState || document.readyState === 'complete') {\n callback()\n } else {\n const eventName = expectedReadyState === 'complete' ? DOM_EVENT.LOAD : DOM_EVENT.DOM_CONTENT_LOADED\n addEventListener(configuration, window, eventName, callback, { once: true })\n }\n}\n","import type { RelativeTime, ServerDuration } from '@datadog/browser-core'\nimport {\n assign,\n addTelemetryDebug,\n elapsed,\n getPathName,\n includes,\n isValidUrl,\n ResourceType,\n toServerDuration,\n} from '@datadog/browser-core'\n\nimport type { RumPerformanceResourceTiming } from '../../browser/performanceCollection'\n\nimport type { PerformanceResourceDetailsElement } from '../../rawRumEvent.types'\nimport type { RumConfiguration } from '../configuration'\n\nexport interface PerformanceResourceDetails {\n redirect?: PerformanceResourceDetailsElement\n dns?: PerformanceResourceDetailsElement\n connect?: PerformanceResourceDetailsElement\n ssl?: PerformanceResourceDetailsElement\n first_byte: PerformanceResourceDetailsElement\n download: PerformanceResourceDetailsElement\n}\n\nexport const FAKE_INITIAL_DOCUMENT = 'initial_document'\n\nconst RESOURCE_TYPES: Array<[ResourceType, (initiatorType: string, path: string) => boolean]> = [\n [ResourceType.DOCUMENT, (initiatorType: string) => FAKE_INITIAL_DOCUMENT === initiatorType],\n [ResourceType.XHR, (initiatorType: string) => 'xmlhttprequest' === initiatorType],\n [ResourceType.FETCH, (initiatorType: string) => 'fetch' === initiatorType],\n [ResourceType.BEACON, (initiatorType: string) => 'beacon' === initiatorType],\n [ResourceType.CSS, (_: string, path: string) => /\\.css$/i.test(path)],\n [ResourceType.JS, (_: string, path: string) => /\\.js$/i.test(path)],\n [\n ResourceType.IMAGE,\n (initiatorType: string, path: string) =>\n includes(['image', 'img', 'icon'], initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null,\n ],\n [ResourceType.FONT, (_: string, path: string) => /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null],\n [\n ResourceType.MEDIA,\n (initiatorType: string, path: string) =>\n includes(['audio', 'video'], initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null,\n ],\n]\n\nexport function computeResourceKind(timing: RumPerformanceResourceTiming) {\n const url = timing.name\n if (!isValidUrl(url)) {\n addTelemetryDebug(`Failed to construct URL for \"${timing.name}\"`)\n return ResourceType.OTHER\n }\n const path = getPathName(url)\n for (const [type, isType] of RESOURCE_TYPES) {\n if (isType(timing.initiatorType, path)) {\n return type\n }\n }\n return ResourceType.OTHER\n}\n\nfunction areInOrder(...numbers: number[]) {\n for (let i = 1; i < numbers.length; i += 1) {\n if (numbers[i - 1] > numbers[i]) {\n return false\n }\n }\n return true\n}\n\nexport function isRequestKind(timing: RumPerformanceResourceTiming) {\n return timing.initiatorType === 'xmlhttprequest' || timing.initiatorType === 'fetch'\n}\n\nexport function computePerformanceResourceDuration(entry: RumPerformanceResourceTiming): ServerDuration {\n const { duration, startTime, responseEnd } = entry\n\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return toServerDuration(elapsed(startTime, responseEnd))\n }\n\n return toServerDuration(duration)\n}\n\nexport function computePerformanceResourceDetails(\n entry: RumPerformanceResourceTiming\n): PerformanceResourceDetails | undefined {\n const validEntry = toValidEntry(entry)\n\n if (!validEntry) {\n return undefined\n }\n const {\n startTime,\n fetchStart,\n redirectStart,\n redirectEnd,\n domainLookupStart,\n domainLookupEnd,\n connectStart,\n secureConnectionStart,\n connectEnd,\n requestStart,\n responseStart,\n responseEnd,\n } = validEntry\n\n const details: PerformanceResourceDetails = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n }\n\n // Make sure a connection occurred\n if (connectEnd !== fetchStart) {\n details.connect = formatTiming(startTime, connectStart, connectEnd)\n\n // Make sure a secure connection occurred\n if (areInOrder(connectStart, secureConnectionStart, connectEnd)) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd)\n }\n }\n\n // Make sure a domain lookup occurred\n if (domainLookupEnd !== fetchStart) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd)\n }\n\n if (hasRedirection(entry)) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd)\n }\n\n return details\n}\n\nexport function toValidEntry(entry: RumPerformanceResourceTiming) {\n // Ensure timings are in the right order. On top of filtering out potential invalid\n // RumPerformanceResourceTiming, it will ignore entries from requests where timings cannot be\n // collected, for example cross origin requests without a \"Timing-Allow-Origin\" header allowing\n // it.\n if (\n !areInOrder(\n entry.startTime,\n entry.fetchStart,\n entry.domainLookupStart,\n entry.domainLookupEnd,\n entry.connectStart,\n entry.connectEnd,\n entry.requestStart,\n entry.responseStart,\n entry.responseEnd\n )\n ) {\n return undefined\n }\n\n if (!hasRedirection(entry)) {\n return entry\n }\n\n let { redirectStart, redirectEnd } = entry\n // Firefox doesn't provide redirect timings on cross origin requests.\n // Provide a default for those.\n if (redirectStart < entry.startTime) {\n redirectStart = entry.startTime\n }\n if (redirectEnd < entry.startTime) {\n redirectEnd = entry.fetchStart\n }\n\n // Make sure redirect timings are in order\n if (!areInOrder(entry.startTime, redirectStart, redirectEnd, entry.fetchStart)) {\n return undefined\n }\n\n return assign({}, entry, {\n redirectEnd,\n redirectStart,\n })\n}\n\nfunction hasRedirection(entry: RumPerformanceResourceTiming) {\n // The only time fetchStart is different than startTime is if a redirection occurred.\n return entry.fetchStart !== entry.startTime\n}\n\nfunction formatTiming(origin: RelativeTime, start: RelativeTime, end: RelativeTime) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n }\n}\n\nexport function computeSize(entry: RumPerformanceResourceTiming) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n return entry.decodedBodySize\n }\n return undefined\n}\n\nexport function isAllowedRequestUrl(configuration: RumConfiguration, url: string) {\n return url && !configuration.isIntakeUrl(url)\n}\n","export function isTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE\n}\n\nexport function isCommentNode(node: Node): node is Comment {\n return node.nodeType === Node.COMMENT_NODE\n}\n\nexport function isElementNode(node: Node): node is Element {\n return node.nodeType === Node.ELEMENT_NODE\n}\n\nexport function isNodeShadowHost(node: Node): node is Element & { shadowRoot: ShadowRoot } {\n return isElementNode(node) && Boolean(node.shadowRoot)\n}\n\nexport function isNodeShadowRoot(node: Node): node is ShadowRoot {\n const shadowRoot = node as ShadowRoot\n return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host)\n}\n\nexport function hasChildNodes(node: Node) {\n return node.childNodes.length > 0 || isNodeShadowHost(node)\n}\n\nexport function forEachChildNodes(node: Node, callback: (child: Node) => void) {\n node.childNodes.forEach(callback)\n if (isNodeShadowHost(node)) {\n callback(node.shadowRoot)\n }\n}\n\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node: Node): Node | null {\n return isNodeShadowRoot(node) ? node.host : node.parentNode\n}\n","import type { TimeStamp } from '@datadog/browser-core'\nimport { dateNow, findCommaSeparatedValue, ONE_MINUTE } from '@datadog/browser-core'\nimport { isCommentNode, isTextNode } from '../../browser/htmlDomUtils'\n\ninterface DocumentTraceData {\n traceId: string\n traceTime: TimeStamp\n}\n\nexport const INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = 2 * ONE_MINUTE\n\nexport function getDocumentTraceId(document: Document): string | undefined {\n const data = getDocumentTraceDataFromMeta(document) || getDocumentTraceDataFromComment(document)\n\n if (!data || data.traceTime <= dateNow() - INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD) {\n return undefined\n }\n\n return data.traceId\n}\n\nexport function getDocumentTraceDataFromMeta(document: Document): DocumentTraceData | undefined {\n const traceIdMeta = document.querySelector('meta[name=dd-trace-id]')\n const traceTimeMeta = document.querySelector('meta[name=dd-trace-time]')\n return createDocumentTraceData(traceIdMeta && traceIdMeta.content, traceTimeMeta && traceTimeMeta.content)\n}\n\nexport function getDocumentTraceDataFromComment(document: Document): DocumentTraceData | undefined {\n const comment = findTraceComment(document)\n if (!comment) {\n return undefined\n }\n return createDocumentTraceData(\n findCommaSeparatedValue(comment, 'trace-id'),\n findCommaSeparatedValue(comment, 'trace-time')\n )\n}\n\nexport function createDocumentTraceData(\n traceId: string | undefined | null,\n rawTraceTime: string | undefined | null\n): DocumentTraceData | undefined {\n const traceTime = rawTraceTime && (Number(rawTraceTime) as TimeStamp)\n if (!traceId || !traceTime) {\n return undefined\n }\n\n return {\n traceId,\n traceTime,\n }\n}\n\nexport function findTraceComment(document: Document): string | undefined {\n // 1. Try to find the comment as a direct child of the document\n // Note: TSLint advises to use a 'for of', but TS doesn't allow to use 'for of' if the iterated\n // value is not an array or string (here, a NodeList).\n for (let i = 0; i < document.childNodes.length; i += 1) {\n const comment = getTraceCommentFromNode(document.childNodes[i])\n if (comment) {\n return comment\n }\n }\n\n // 2. If the comment is placed after the tag, but have some space or new lines before or\n // after, the DOM parser will lift it (and the surrounding text) at the end of the tag.\n // Try to look for the comment at the end of the by by iterating over its child nodes in\n // reverse order, stopping if we come across a non-text node.\n if (document.body) {\n for (let i = document.body.childNodes.length - 1; i >= 0; i -= 1) {\n const node = document.body.childNodes[i]\n const comment = getTraceCommentFromNode(node)\n if (comment) {\n return comment\n }\n if (!isTextNode(node)) {\n break\n }\n }\n }\n}\n\nfunction getTraceCommentFromNode(node: Node | null) {\n if (node && isCommentNode(node)) {\n const match = /^\\s*DATADOG;(.*?)\\s*$/.exec(node.data)\n if (match) {\n return match[1]\n }\n }\n}\n","import type { Duration, RelativeTime, TimeStamp } from '@datadog/browser-core'\nimport {\n dateNow,\n assign,\n addEventListeners,\n DOM_EVENT,\n getRelativeTime,\n isNumber,\n monitor,\n setTimeout,\n relativeNow,\n runOnReadyState,\n addEventListener,\n objectHasValue,\n} from '@datadog/browser-core'\n\nimport type { RumConfiguration } from '../domain/configuration'\nimport type { LifeCycle } from '../domain/lifeCycle'\nimport { LifeCycleEventType } from '../domain/lifeCycle'\nimport { FAKE_INITIAL_DOCUMENT, isAllowedRequestUrl } from '../domain/resource/resourceUtils'\n\nimport { getDocumentTraceId } from '../domain/tracing/getDocumentTraceId'\n\ntype RumPerformanceObserverConstructor = new (callback: PerformanceObserverCallback) => RumPerformanceObserver\n\nexport interface BrowserWindow extends Window {\n PerformanceObserver: RumPerformanceObserverConstructor\n performance: Performance & { interactionCount?: number }\n}\n\nexport interface RumPerformanceObserver extends PerformanceObserver {\n observe(options?: PerformanceObserverInit & { durationThreshold: number }): void\n}\n\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected performance entry\n// eslint-disable-next-line no-restricted-syntax\nexport enum RumPerformanceEntryType {\n EVENT = 'event',\n FIRST_INPUT = 'first-input',\n LARGEST_CONTENTFUL_PAINT = 'largest-contentful-paint',\n LAYOUT_SHIFT = 'layout-shift',\n LONG_TASK = 'longtask',\n NAVIGATION = 'navigation',\n PAINT = 'paint',\n RESOURCE = 'resource',\n}\n\nexport interface RumPerformanceResourceTiming {\n entryType: RumPerformanceEntryType.RESOURCE\n initiatorType: string\n name: string\n startTime: RelativeTime\n duration: Duration\n fetchStart: RelativeTime\n domainLookupStart: RelativeTime\n domainLookupEnd: RelativeTime\n connectStart: RelativeTime\n secureConnectionStart: RelativeTime\n connectEnd: RelativeTime\n requestStart: RelativeTime\n responseStart: RelativeTime\n responseEnd: RelativeTime\n redirectStart: RelativeTime\n redirectEnd: RelativeTime\n decodedBodySize: number\n traceId?: string\n toJSON(): Omit\n}\n\nexport interface RumPerformanceLongTaskTiming {\n name: string\n entryType: RumPerformanceEntryType.LONG_TASK\n startTime: RelativeTime\n duration: Duration\n toJSON(): Omit\n}\n\nexport interface RumPerformancePaintTiming {\n entryType: RumPerformanceEntryType.PAINT\n name: 'first-paint' | 'first-contentful-paint'\n startTime: RelativeTime\n}\n\nexport interface RumPerformanceNavigationTiming {\n entryType: RumPerformanceEntryType.NAVIGATION\n domComplete: RelativeTime\n domContentLoadedEventEnd: RelativeTime\n domInteractive: RelativeTime\n loadEventEnd: RelativeTime\n responseStart: RelativeTime\n}\n\nexport interface RumLargestContentfulPaintTiming {\n entryType: RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT\n startTime: RelativeTime\n size: number\n element?: Element\n}\n\nexport interface RumFirstInputTiming {\n entryType: RumPerformanceEntryType.FIRST_INPUT\n startTime: RelativeTime\n processingStart: RelativeTime\n processingEnd: RelativeTime\n duration: Duration\n target?: Node\n interactionId?: number\n name: string\n}\n\nexport interface RumPerformanceEventTiming {\n entryType: RumPerformanceEntryType.EVENT\n startTime: RelativeTime\n processingStart: RelativeTime\n processingEnd: RelativeTime\n duration: Duration\n interactionId?: number\n target?: Node\n name: string\n}\n\nexport interface RumLayoutShiftTiming {\n entryType: RumPerformanceEntryType.LAYOUT_SHIFT\n startTime: RelativeTime\n value: number\n hadRecentInput: boolean\n sources?: Array<{\n node?: Node\n }>\n}\n\nexport type RumPerformanceEntry =\n | RumPerformanceResourceTiming\n | RumPerformanceLongTaskTiming\n | RumPerformancePaintTiming\n | RumPerformanceNavigationTiming\n | RumLargestContentfulPaintTiming\n | RumFirstInputTiming\n | RumPerformanceEventTiming\n | RumLayoutShiftTiming\n\nfunction supportPerformanceObject() {\n return window.performance !== undefined && 'getEntries' in performance\n}\n\nexport function supportPerformanceTimingEvent(entryType: RumPerformanceEntryType) {\n return (\n window.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes !== undefined &&\n PerformanceObserver.supportedEntryTypes.includes(entryType)\n )\n}\n\nexport function startPerformanceCollection(lifeCycle: LifeCycle, configuration: RumConfiguration) {\n retrieveInitialDocumentResourceTiming(configuration, (timing) => {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing])\n })\n\n if (supportPerformanceObject()) {\n const performanceEntries = performance.getEntries()\n // Because the performance entry list can be quite large\n // delay the computation to prevent the SDK from blocking the main thread on init\n setTimeout(() => handleRumPerformanceEntries(lifeCycle, configuration, performanceEntries))\n }\n\n if (window.PerformanceObserver) {\n const handlePerformanceEntryList = monitor((entries: PerformanceObserverEntryList) =>\n handleRumPerformanceEntries(lifeCycle, configuration, entries.getEntries())\n )\n const mainEntries = [\n RumPerformanceEntryType.RESOURCE,\n RumPerformanceEntryType.NAVIGATION,\n RumPerformanceEntryType.LONG_TASK,\n RumPerformanceEntryType.PAINT,\n ]\n const experimentalEntries = [\n RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT,\n RumPerformanceEntryType.FIRST_INPUT,\n RumPerformanceEntryType.LAYOUT_SHIFT,\n RumPerformanceEntryType.EVENT,\n ]\n\n try {\n // Experimental entries are not retrieved by performance.getEntries()\n // use a single PerformanceObserver with buffered flag by type\n // to get values that could happen before SDK init\n experimentalEntries.forEach((type) => {\n const observer = new (window as BrowserWindow).PerformanceObserver(handlePerformanceEntryList)\n observer.observe({\n type,\n buffered: true,\n // durationThreshold only impact PerformanceEventTiming entries used for INP computation which requires a threshold at 40 (default is 104ms)\n // cf: https://github.com/GoogleChrome/web-vitals/blob/3806160ffbc93c3c4abf210a167b81228172b31c/src/onINP.ts#L209\n durationThreshold: 40,\n })\n })\n } catch (e) {\n // Some old browser versions (ex: chrome 67) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to PerformanceObserver with entryTypes\n mainEntries.push(...experimentalEntries)\n }\n\n const mainObserver = new PerformanceObserver(handlePerformanceEntryList)\n mainObserver.observe({ entryTypes: mainEntries })\n\n if (supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n addEventListener(configuration, performance, 'resourcetimingbufferfull', () => {\n performance.clearResourceTimings()\n })\n }\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION)) {\n retrieveNavigationTiming(configuration, (timing) => {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing])\n })\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.FIRST_INPUT)) {\n retrieveFirstInputTiming(configuration, (timing) => {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing])\n })\n }\n}\n\nexport function retrieveInitialDocumentResourceTiming(\n configuration: RumConfiguration,\n callback: (timing: RumPerformanceResourceTiming) => void\n) {\n runOnReadyState(configuration, 'interactive', () => {\n let timing: RumPerformanceResourceTiming\n\n const forcedAttributes = {\n entryType: RumPerformanceEntryType.RESOURCE as const,\n initiatorType: FAKE_INITIAL_DOCUMENT,\n traceId: getDocumentTraceId(document),\n toJSON: () => assign({}, timing, { toJSON: undefined }),\n }\n if (\n supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION) &&\n performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION).length > 0\n ) {\n const navigationEntry = performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION)[0]\n timing = assign(navigationEntry.toJSON() as RumPerformanceResourceTiming, forcedAttributes)\n } else {\n const relativePerformanceTiming = computeRelativePerformanceTiming()\n timing = assign(\n relativePerformanceTiming,\n {\n decodedBodySize: 0,\n duration: relativePerformanceTiming.responseEnd,\n name: window.location.href,\n startTime: 0 as RelativeTime,\n },\n forcedAttributes\n )\n }\n callback(timing)\n })\n}\n\nfunction retrieveNavigationTiming(\n configuration: RumConfiguration,\n callback: (timing: RumPerformanceNavigationTiming) => void\n) {\n function sendFakeTiming() {\n callback(\n assign(computeRelativePerformanceTiming(), {\n entryType: RumPerformanceEntryType.NAVIGATION as const,\n })\n )\n }\n\n runOnReadyState(configuration, 'complete', () => {\n // Send it a bit after the actual load event, so the \"loadEventEnd\" timing is accurate\n setTimeout(sendFakeTiming)\n })\n}\n\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nfunction retrieveFirstInputTiming(configuration: RumConfiguration, callback: (timing: RumFirstInputTiming) => void) {\n const startTimeStamp = dateNow()\n let timingSent = false\n\n const { stop: removeEventListeners } = addEventListeners(\n configuration,\n window,\n [DOM_EVENT.CLICK, DOM_EVENT.MOUSE_DOWN, DOM_EVENT.KEY_DOWN, DOM_EVENT.TOUCH_START, DOM_EVENT.POINTER_DOWN],\n (evt) => {\n // Only count cancelable events, which should trigger behavior important to the user.\n if (!evt.cancelable) {\n return\n }\n\n // This timing will be used to compute the \"first Input delay\", which is the delta between\n // when the system received the event (e.g. evt.timeStamp) and when it could run the callback\n // (e.g. performance.now()).\n const timing: RumFirstInputTiming = {\n entryType: RumPerformanceEntryType.FIRST_INPUT,\n processingStart: relativeNow(),\n processingEnd: relativeNow(),\n startTime: evt.timeStamp as RelativeTime,\n duration: 0 as Duration, // arbitrary value to avoid nullable duration and simplify INP logic\n name: '',\n }\n\n if (evt.type === DOM_EVENT.POINTER_DOWN) {\n sendTimingIfPointerIsNotCancelled(configuration, timing)\n } else {\n sendTiming(timing)\n }\n },\n { passive: true, capture: true }\n )\n\n /**\n * Pointer events are a special case, because they can trigger main or compositor thread behavior.\n * We differentiate these cases based on whether or not we see a pointercancel event, which are\n * fired when we scroll. If we're scrolling we don't need to report input delay since FID excludes\n * scrolling and pinch/zooming.\n */\n function sendTimingIfPointerIsNotCancelled(configuration: RumConfiguration, timing: RumFirstInputTiming) {\n addEventListeners(\n configuration,\n window,\n [DOM_EVENT.POINTER_UP, DOM_EVENT.POINTER_CANCEL],\n (event) => {\n if (event.type === DOM_EVENT.POINTER_UP) {\n sendTiming(timing)\n }\n },\n { once: true }\n )\n }\n\n function sendTiming(timing: RumFirstInputTiming) {\n if (!timingSent) {\n timingSent = true\n removeEventListeners()\n // In some cases the recorded delay is clearly wrong, e.g. it's negative or it's larger than\n // the time between now and when the page was loaded.\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/4\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/6\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/7\n const delay = timing.processingStart - timing.startTime\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing)\n }\n }\n }\n}\n\nexport type RelativePerformanceTiming = {\n -readonly [key in keyof Omit]: RelativeTime\n}\n\nfunction computeRelativePerformanceTiming() {\n const result: Partial = {}\n const timing = performance.timing\n for (const key in timing) {\n if (isNumber(timing[key as keyof PerformanceTiming])) {\n const numberKey = key as keyof RelativePerformanceTiming\n const timingElement = timing[numberKey] as TimeStamp\n result[numberKey] = timingElement === 0 ? (0 as RelativeTime) : getRelativeTime(timingElement)\n }\n }\n return result as RelativePerformanceTiming\n}\n\nfunction handleRumPerformanceEntries(\n lifeCycle: LifeCycle,\n configuration: RumConfiguration,\n entries: Array\n) {\n const rumPerformanceEntries = entries.filter((entry): entry is RumPerformanceEntry =>\n objectHasValue(RumPerformanceEntryType, entry.entryType)\n )\n\n const rumAllowedPerformanceEntries = rumPerformanceEntries.filter(\n (entry) => !isIncompleteNavigation(entry) && !isForbiddenResource(configuration, entry)\n )\n\n if (rumAllowedPerformanceEntries.length) {\n lifeCycle.notify(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, rumAllowedPerformanceEntries)\n }\n}\n\nfunction isIncompleteNavigation(entry: RumPerformanceEntry) {\n return entry.entryType === RumPerformanceEntryType.NAVIGATION && entry.loadEventEnd <= 0\n}\n\nfunction isForbiddenResource(configuration: RumConfiguration, entry: RumPerformanceEntry) {\n return entry.entryType === RumPerformanceEntryType.RESOURCE && !isAllowedRequestUrl(configuration, entry.name)\n}\n","import type { ClocksState } from '../../tools/utils/timeUtils'\n\n// TS v4.6 introduced Error.cause[1] typed as `Error`. TS v4.8 changed Error.cause to be\n// `unknown`[2].\n//\n// Because we still support TS 3.8, we need to declare our own type. We can remove it once we drop\n// support for TS v4.7 and before. The 'cause' property defined by TS needs to be omitted because\n// we define it with a type `unknown` which is incompatible with TS 4.6 and 4.7.\n//\n// [1]: https://devblogs.microsoft.com/typescript/announcing-typescript-4-6/#target-es2022\n// [2]: https://devblogs.microsoft.com/typescript/announcing-typescript-4-8/#lib-d-ts-updates\nexport interface ErrorWithCause extends Omit {\n cause?: unknown\n}\n\nexport type RawErrorCause = {\n message: string\n source: string\n type?: string\n stack?: string\n}\n\nexport interface RawError {\n startClocks: ClocksState\n message: string\n type?: string\n stack?: string\n source: ErrorSource\n originalError?: unknown\n handling?: ErrorHandling\n handlingStack?: string\n causes?: RawErrorCause[]\n fingerprint?: string\n}\n\nexport const ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n} as const\n\nexport const enum NonErrorPrefix {\n UNCAUGHT = 'Uncaught',\n PROVIDED = 'Provided',\n}\n\nexport const enum ErrorHandling {\n HANDLED = 'handled',\n UNHANDLED = 'unhandled',\n}\n\nexport type ErrorSource = (typeof ErrorSource)[keyof typeof ErrorSource]\n","import { setTimeout } from '../../tools/timer'\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils'\nimport type { RawError } from '../error/error.types'\nimport { ErrorSource } from '../error/error.types'\n\nexport type EventRateLimiter = ReturnType\n\nexport function createEventRateLimiter(\n eventType: string,\n limit: number,\n onLimitReached: (limitError: RawError) => void\n) {\n let eventCount = 0\n let allowNextEvent = false\n\n return {\n isLimitReached() {\n if (eventCount === 0) {\n setTimeout(() => {\n eventCount = 0\n }, ONE_MINUTE)\n }\n\n eventCount += 1\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false\n return false\n }\n\n if (eventCount === limit + 1) {\n allowNextEvent = true\n try {\n onLimitReached({\n message: `Reached max number of ${eventType}s by minute: ${limit}`,\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n })\n } finally {\n allowNextEvent = false\n }\n }\n\n return true\n },\n }\n}\n","import { getSyntheticsResultId, getSyntheticsTestId, willSyntheticsInjectRum } from '@datadog/browser-core'\n\nexport function getSyntheticsContext() {\n const testId = getSyntheticsTestId()\n const resultId = getSyntheticsResultId()\n\n if (testId && resultId) {\n return {\n test_id: testId,\n result_id: resultId,\n injected: willSyntheticsInjectRum(),\n }\n }\n}\n","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core'\nimport type { Context } from '@datadog/browser-core'\n\nexport type ModifiableFieldPaths = Record\n\n/**\n * Current limitation:\n * - field path do not support array, 'a.b.c' only\n */\nexport function limitModification(\n object: T,\n modifiableFieldPaths: ModifiableFieldPaths,\n modifier: (object: T) => Result\n): Result | undefined {\n const clone = deepClone(object)\n const result = modifier(clone)\n objectEntries(modifiableFieldPaths).forEach(([fieldPath, fieldType]) => {\n const newValue = get(clone, fieldPath)\n const newType = getType(newValue)\n if (newType === fieldType) {\n set(object, fieldPath, sanitize(newValue))\n } else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n set(object, fieldPath, {})\n }\n })\n return result\n}\n\nfunction get(object: unknown, path: string) {\n let current = object\n for (const field of path.split('.')) {\n if (!isValidObjectContaining(current, field)) {\n return\n }\n current = current[field]\n }\n return current\n}\n\nfunction set(object: unknown, path: string, value: unknown) {\n let current = object\n const fields = path.split('.')\n for (let i = 0; i < fields.length; i += 1) {\n const field = fields[i]\n if (!isValidObject(current)) {\n return\n }\n if (i !== fields.length - 1) {\n current = current[field]\n } else {\n current[field] = value\n }\n }\n}\n\nfunction isValidObject(object: unknown): object is Record {\n return getType(object) === 'object'\n}\n\nfunction isValidObjectContaining(object: unknown, field: string): object is Record {\n return isValidObject(object) && Object.prototype.hasOwnProperty.call(object, field)\n}\n","import type { Context, RawError, EventRateLimiter, User } from '@datadog/browser-core'\nimport {\n combine,\n isEmptyObject,\n timeStampNow,\n currentDrift,\n display,\n createEventRateLimiter,\n canUseEventBridge,\n assign,\n round,\n} from '@datadog/browser-core'\nimport type { RumEventDomainContext } from '../domainContext.types'\nimport type {\n RawRumErrorEvent,\n RawRumEvent,\n RawRumLongTaskEvent,\n RawRumResourceEvent,\n RumContext,\n} from '../rawRumEvent.types'\nimport { RumEventType } from '../rawRumEvent.types'\nimport type { RumEvent } from '../rumEvent.types'\nimport { getSyntheticsContext } from './contexts/syntheticsContext'\nimport { getCiTestContext } from './contexts/ciTestContext'\nimport type { LifeCycle } from './lifeCycle'\nimport { LifeCycleEventType } from './lifeCycle'\nimport type { ViewContexts } from './contexts/viewContexts'\nimport type { RumSessionManager } from './rumSessionManager'\nimport type { UrlContexts } from './contexts/urlContexts'\nimport type { RumConfiguration } from './configuration'\nimport type { ActionContexts } from './action/actionCollection'\nimport type { DisplayContext } from './contexts/displayContext'\nimport type { CommonContext } from './contexts/commonContext'\nimport type { ModifiableFieldPaths } from './limitModification'\nimport { limitModification } from './limitModification'\n\n// replaced at build time\ndeclare const __BUILD_ENV__SDK_VERSION__: string\n\nconst enum SessionType {\n SYNTHETICS = 'synthetics',\n USER = 'user',\n CI_TEST = 'ci_test',\n}\n\nconst VIEW_MODIFIABLE_FIELD_PATHS: ModifiableFieldPaths = {\n 'view.name': 'string',\n 'view.url': 'string',\n 'view.referrer': 'string',\n}\n\nconst USER_CUSTOMIZABLE_FIELD_PATHS: ModifiableFieldPaths = {\n context: 'object',\n}\n\nlet modifiableFieldPathsByEvent: { [key in RumEventType]: ModifiableFieldPaths }\n\ntype Mutable = { -readonly [P in keyof T]: T[P] }\n\nexport function startRumAssembly(\n configuration: RumConfiguration,\n lifeCycle: LifeCycle,\n sessionManager: RumSessionManager,\n viewContexts: ViewContexts,\n urlContexts: UrlContexts,\n actionContexts: ActionContexts,\n displayContext: DisplayContext,\n buildCommonContext: () => CommonContext,\n reportError: (error: RawError) => void\n) {\n modifiableFieldPathsByEvent = {\n [RumEventType.VIEW]: VIEW_MODIFIABLE_FIELD_PATHS,\n [RumEventType.ERROR]: assign(\n {\n 'error.message': 'string',\n 'error.stack': 'string',\n 'error.resource.url': 'string',\n 'error.fingerprint': 'string',\n },\n USER_CUSTOMIZABLE_FIELD_PATHS,\n VIEW_MODIFIABLE_FIELD_PATHS\n ),\n [RumEventType.RESOURCE]: assign(\n {\n 'resource.url': 'string',\n },\n USER_CUSTOMIZABLE_FIELD_PATHS,\n VIEW_MODIFIABLE_FIELD_PATHS\n ),\n [RumEventType.ACTION]: assign(\n {\n 'action.target.name': 'string',\n },\n USER_CUSTOMIZABLE_FIELD_PATHS,\n VIEW_MODIFIABLE_FIELD_PATHS\n ),\n [RumEventType.LONG_TASK]: assign({}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n }\n const eventRateLimiters = {\n [RumEventType.ERROR]: createEventRateLimiter(\n RumEventType.ERROR,\n configuration.eventRateLimiterThreshold,\n reportError\n ),\n [RumEventType.ACTION]: createEventRateLimiter(\n RumEventType.ACTION,\n configuration.eventRateLimiterThreshold,\n reportError\n ),\n }\n\n const syntheticsContext = getSyntheticsContext()\n const ciTestContext = getCiTestContext()\n\n lifeCycle.subscribe(\n LifeCycleEventType.RAW_RUM_EVENT_COLLECTED,\n ({ startTime, rawRumEvent, domainContext, savedCommonContext, customerContext }) => {\n const viewContext = viewContexts.findView(startTime)\n const urlContext = urlContexts.findUrl(startTime)\n const session = sessionManager.findTrackedSession(startTime)\n if (session && viewContext && urlContext) {\n const commonContext = savedCommonContext || buildCommonContext()\n const actionId = actionContexts.findActionId(startTime)\n\n const rumContext: RumContext = {\n _dd: {\n format_version: 2,\n drift: currentDrift(),\n configuration: {\n session_sample_rate: round(configuration.sessionSampleRate, 3),\n session_replay_sample_rate: round(configuration.sessionReplaySampleRate, 3),\n },\n browser_sdk_version: canUseEventBridge() ? __BUILD_ENV__SDK_VERSION__ : undefined,\n },\n application: {\n id: configuration.applicationId,\n },\n date: timeStampNow(),\n service: viewContext.service || configuration.service,\n version: viewContext.version || configuration.version,\n source: 'browser',\n session: {\n id: session.id,\n type: syntheticsContext ? SessionType.SYNTHETICS : ciTestContext ? SessionType.CI_TEST : SessionType.USER,\n },\n view: {\n id: viewContext.id,\n name: viewContext.name,\n url: urlContext.url,\n referrer: urlContext.referrer,\n },\n action: needToAssembleWithAction(rawRumEvent) && actionId ? { id: actionId } : undefined,\n synthetics: syntheticsContext,\n ci_test: ciTestContext,\n display: displayContext.get(),\n }\n\n const serverRumEvent = combine(rumContext as RumContext & Context, rawRumEvent) as RumEvent & Context\n serverRumEvent.context = combine(commonContext.context, customerContext)\n\n if (!('has_replay' in serverRumEvent.session)) {\n ;(serverRumEvent.session as Mutable).has_replay = commonContext.hasReplay\n }\n if (serverRumEvent.type === 'view') {\n ;(serverRumEvent.session as Mutable).sampled_for_replay = session.sessionReplayAllowed\n }\n\n if (!isEmptyObject(commonContext.user)) {\n ;(serverRumEvent.usr as Mutable) = commonContext.user as User & Context\n }\n\n if (shouldSend(serverRumEvent, configuration.beforeSend, domainContext, eventRateLimiters)) {\n if (isEmptyObject(serverRumEvent.context)) {\n delete serverRumEvent.context\n }\n lifeCycle.notify(LifeCycleEventType.RUM_EVENT_COLLECTED, serverRumEvent)\n }\n }\n }\n )\n}\n\nfunction shouldSend(\n event: RumEvent & Context,\n beforeSend: RumConfiguration['beforeSend'],\n domainContext: RumEventDomainContext,\n eventRateLimiters: { [key in RumEventType]?: EventRateLimiter }\n) {\n if (beforeSend) {\n const result = limitModification(event, modifiableFieldPathsByEvent[event.type], (event) =>\n beforeSend(event, domainContext)\n )\n if (result === false && event.type !== RumEventType.VIEW) {\n return false\n }\n if (result === false) {\n display.warn(\"Can't dismiss view events using beforeSend!\")\n }\n }\n\n const rateLimitReached = eventRateLimiters[event.type]?.isLimitReached()\n return !rateLimitReached\n}\n\nfunction needToAssembleWithAction(\n event: RawRumEvent\n): event is RawRumErrorEvent | RawRumResourceEvent | RawRumLongTaskEvent {\n return [RumEventType.ERROR, RumEventType.RESOURCE, RumEventType.LONG_TASK].indexOf(event.type) !== -1\n}\n","export interface CiTestWindow extends Window {\n Cypress?: {\n env: (key: string) => string | undefined\n }\n}\n\nexport function getCiTestContext() {\n const testExecutionId = (window as CiTestWindow).Cypress?.env('traceId')\n\n if (typeof testExecutionId === 'string') {\n return {\n test_execution_id: testExecutionId,\n }\n }\n}\n","import type { Subscription } from './observable'\n\n/**\n * Type helper to extract event types that have \"void\" data. This allows to call `notify` without a\n * second argument. Ex:\n *\n * ```\n * interface EventMap {\n * foo: void\n * }\n * const LifeCycle = AbstractLifeCycle\n * new LifeCycle().notify('foo')\n * ```\n */\ntype EventTypesWithoutData = {\n [K in keyof EventMap]: EventMap[K] extends void ? K : never\n}[keyof EventMap]\n\nexport class AbstractLifeCycle {\n private callbacks: { [key in keyof EventMap]?: Array<(data: any) => void> } = {}\n\n notify>(eventType: EventType): void\n notify(eventType: EventType, data: EventMap[EventType]): void\n notify(eventType: keyof EventMap, data?: unknown) {\n const eventCallbacks = this.callbacks[eventType]\n if (eventCallbacks) {\n eventCallbacks.forEach((callback) => callback(data))\n }\n }\n\n subscribe(\n eventType: EventType,\n callback: (data: EventMap[EventType]) => void\n ): Subscription {\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = []\n }\n this.callbacks[eventType]!.push(callback)\n return {\n unsubscribe: () => {\n this.callbacks[eventType] = this.callbacks[eventType]!.filter((other) => callback !== other)\n },\n }\n }\n}\n","import { instrumentMethodAndCallOriginal } from '../tools/instrumentMethod'\nimport { Observable } from '../tools/observable'\nimport type { Duration, ClocksState } from '../tools/utils/timeUtils'\nimport { elapsed, clocksNow, timeStampNow } from '../tools/utils/timeUtils'\nimport { normalizeUrl } from '../tools/utils/urlPolyfill'\nimport { shallowClone } from '../tools/utils/objectUtils'\nimport type { Configuration } from '../domain/configuration'\nimport { addEventListener } from './addEventListener'\n\nexport interface XhrOpenContext {\n state: 'open'\n method: string\n url: string\n}\n\nexport interface XhrStartContext extends Omit {\n state: 'start'\n startClocks: ClocksState\n isAborted: boolean\n xhr: XMLHttpRequest\n}\n\nexport interface XhrCompleteContext extends Omit {\n state: 'complete'\n duration: Duration\n status: number\n}\n\nexport type XhrContext = XhrOpenContext | XhrStartContext | XhrCompleteContext\n\nlet xhrObservable: Observable | undefined\nconst xhrContexts = new WeakMap()\n\nexport function initXhrObservable(configuration: Configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration)\n }\n return xhrObservable\n}\n\nfunction createXhrObservable(configuration: Configuration) {\n const observable = new Observable(() => {\n const { stop: stopInstrumentingStart } = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'open', {\n before: openXhr,\n })\n\n const { stop: stopInstrumentingSend } = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'send', {\n before() {\n sendXhr.call(this, configuration, observable)\n },\n })\n\n const { stop: stopInstrumentingAbort } = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'abort', {\n before: abortXhr,\n })\n\n return () => {\n stopInstrumentingStart()\n stopInstrumentingSend()\n stopInstrumentingAbort()\n }\n })\n return observable\n}\n\nfunction openXhr(this: XMLHttpRequest, method: string, url: string | URL | undefined | null) {\n xhrContexts.set(this, {\n state: 'open',\n method: method.toUpperCase(),\n url: normalizeUrl(String(url)),\n })\n}\n\nfunction sendXhr(this: XMLHttpRequest, configuration: Configuration, observable: Observable) {\n const context = xhrContexts.get(this)\n if (!context) {\n return\n }\n\n const startContext = context as XhrStartContext\n startContext.state = 'start'\n startContext.startClocks = clocksNow()\n startContext.isAborted = false\n startContext.xhr = this\n\n let hasBeenReported = false\n\n const { stop: stopInstrumentingOnReadyStateChange } = instrumentMethodAndCallOriginal(this, 'onreadystatechange', {\n before() {\n if (this.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during an onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd()\n }\n },\n })\n\n const onEnd = () => {\n unsubscribeLoadEndListener()\n stopInstrumentingOnReadyStateChange()\n if (hasBeenReported) {\n return\n }\n hasBeenReported = true\n\n const completeContext = context as XhrCompleteContext\n completeContext.state = 'complete'\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow())\n completeContext.status = this.status\n observable.notify(shallowClone(completeContext))\n }\n\n const { stop: unsubscribeLoadEndListener } = addEventListener(configuration, this, 'loadend', onEnd)\n\n observable.notify(startContext)\n}\n\nfunction abortXhr(this: XMLHttpRequest) {\n const context = xhrContexts.get(this) as XhrStartContext | undefined\n if (context) {\n context.isAborted = true\n }\n}\n","import type { Context, PageExitEvent, RawError, RelativeTime } from '@datadog/browser-core'\nimport { AbstractLifeCycle } from '@datadog/browser-core'\nimport type { RumPerformanceEntry } from '../browser/performanceCollection'\nimport type { RumEventDomainContext } from '../domainContext.types'\nimport type { RawRumEvent } from '../rawRumEvent.types'\nimport type { RumEvent } from '../rumEvent.types'\nimport type { CommonContext } from './contexts/commonContext'\nimport type { RequestCompleteEvent, RequestStartEvent } from './requestCollection'\nimport type { AutoAction } from './action/actionCollection'\nimport type { ViewEvent, ViewCreatedEvent, ViewEndedEvent } from './view/trackViews'\n\nexport const enum LifeCycleEventType {\n PERFORMANCE_ENTRIES_COLLECTED,\n AUTO_ACTION_COMPLETED,\n VIEW_CREATED,\n VIEW_UPDATED,\n VIEW_ENDED,\n REQUEST_STARTED,\n REQUEST_COMPLETED,\n\n // The SESSION_EXPIRED lifecycle event has been introduced to represent when a session has expired\n // and trigger cleanup tasks related to this, prior to renewing the session. Its implementation is\n // slightly naive: it is not triggered as soon as the session is expired, but rather just before\n // notifying that the session is renewed. Thus, the session id is already set to the newly renewed\n // session.\n //\n // This implementation is \"good enough\" for our use-cases. Improving this is not trivial,\n // primarily because multiple instances of the SDK may be managing the same session cookie at\n // the same time, for example when using Logs and RUM on the same page, or opening multiple tabs\n // on the same domain.\n SESSION_EXPIRED,\n\n SESSION_RENEWED,\n PAGE_EXITED,\n RAW_RUM_EVENT_COLLECTED,\n RUM_EVENT_COLLECTED,\n RAW_ERROR_COLLECTED,\n}\n\n// This is a workaround for an issue occurring when the Browser SDK is included in a TypeScript\n// project configured with `isolatedModules: true`. Even if the const enum is declared in this\n// module, we cannot use it directly to define the EventMap interface keys (TS error: \"Cannot access\n// ambient const enums when the '--isolatedModules' flag is provided.\").\n//\n// Using a plain enum would fix the issue, but would also add 2KB to the minified bundle. By using\n// this workaround, we can keep using a const enum without impacting the bundle size (since it is a\n// \"declare\" statement, it will only be used during typecheck and completely ignored when building\n// JavaScript).\n//\n// See issues:\n// * https://github.com/DataDog/browser-sdk/issues/2208\n// * https://github.com/microsoft/TypeScript/issues/54152\ndeclare const LifeCycleEventTypeAsConst: {\n PERFORMANCE_ENTRIES_COLLECTED: LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED\n AUTO_ACTION_COMPLETED: LifeCycleEventType.AUTO_ACTION_COMPLETED\n VIEW_CREATED: LifeCycleEventType.VIEW_CREATED\n VIEW_UPDATED: LifeCycleEventType.VIEW_UPDATED\n VIEW_ENDED: LifeCycleEventType.VIEW_ENDED\n REQUEST_STARTED: LifeCycleEventType.REQUEST_STARTED\n REQUEST_COMPLETED: LifeCycleEventType.REQUEST_COMPLETED\n SESSION_EXPIRED: LifeCycleEventType.SESSION_EXPIRED\n SESSION_RENEWED: LifeCycleEventType.SESSION_RENEWED\n PAGE_EXITED: LifeCycleEventType.PAGE_EXITED\n RAW_RUM_EVENT_COLLECTED: LifeCycleEventType.RAW_RUM_EVENT_COLLECTED\n RUM_EVENT_COLLECTED: LifeCycleEventType.RUM_EVENT_COLLECTED\n RAW_ERROR_COLLECTED: LifeCycleEventType.RAW_ERROR_COLLECTED\n}\n\n// Note: this interface needs to be exported even if it is not used outside of this module, else TS\n// fails to build the rum-core package with error TS4058\nexport interface LifeCycleEventMap {\n [LifeCycleEventTypeAsConst.PERFORMANCE_ENTRIES_COLLECTED]: RumPerformanceEntry[]\n [LifeCycleEventTypeAsConst.AUTO_ACTION_COMPLETED]: AutoAction\n [LifeCycleEventTypeAsConst.VIEW_CREATED]: ViewCreatedEvent\n [LifeCycleEventTypeAsConst.VIEW_UPDATED]: ViewEvent\n [LifeCycleEventTypeAsConst.VIEW_ENDED]: ViewEndedEvent\n [LifeCycleEventTypeAsConst.REQUEST_STARTED]: RequestStartEvent\n [LifeCycleEventTypeAsConst.REQUEST_COMPLETED]: RequestCompleteEvent\n [LifeCycleEventTypeAsConst.SESSION_EXPIRED]: void\n [LifeCycleEventTypeAsConst.SESSION_RENEWED]: void\n [LifeCycleEventTypeAsConst.PAGE_EXITED]: PageExitEvent\n [LifeCycleEventTypeAsConst.RAW_RUM_EVENT_COLLECTED]: RawRumEventCollectedData\n [LifeCycleEventTypeAsConst.RUM_EVENT_COLLECTED]: RumEvent & Context\n [LifeCycleEventTypeAsConst.RAW_ERROR_COLLECTED]: {\n error: RawError\n savedCommonContext?: CommonContext\n customerContext?: Context\n }\n}\n\nexport interface RawRumEventCollectedData {\n startTime: RelativeTime\n savedCommonContext?: CommonContext\n customerContext?: Context\n rawRumEvent: E\n domainContext: RumEventDomainContext\n}\n\nexport const LifeCycle = AbstractLifeCycle\nexport type LifeCycle = AbstractLifeCycle\n","import { setInterval, clearInterval } from './timer'\nimport type { TimeoutId } from './timer'\nimport type { Duration, RelativeTime } from './utils/timeUtils'\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils'\n\nconst END_OF_TIMES = Infinity as RelativeTime\n\nexport interface ValueHistoryEntry {\n startTime: RelativeTime\n endTime: RelativeTime\n value: T\n remove(): void\n close(endTime: RelativeTime): void\n}\n\nexport const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE\n\n/**\n * Store and keep track of values spans. This whole class assumes that values are added in\n * chronological order (i.e. all entries have an increasing start time).\n */\nexport class ValueHistory {\n private entries: Array> = []\n private clearOldValuesInterval: TimeoutId\n\n constructor(\n private expireDelay: number,\n private maxEntries?: number\n ) {\n this.clearOldValuesInterval = setInterval(() => this.clearOldValues(), CLEAR_OLD_VALUES_INTERVAL)\n }\n\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n add(value: Value, startTime: RelativeTime): ValueHistoryEntry {\n const entry: ValueHistoryEntry = {\n value,\n startTime,\n endTime: END_OF_TIMES,\n remove: () => {\n const index = this.entries.indexOf(entry)\n if (index >= 0) {\n this.entries.splice(index, 1)\n }\n },\n close: (endTime: RelativeTime) => {\n entry.endTime = endTime\n },\n }\n\n if (this.maxEntries && this.entries.length >= this.maxEntries) {\n this.entries.pop()\n }\n\n this.entries.unshift(entry)\n\n return entry\n }\n\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n */\n find(startTime: RelativeTime = END_OF_TIMES): Value | undefined {\n for (const entry of this.entries) {\n if (entry.startTime <= startTime) {\n if (startTime <= entry.endTime) {\n return entry.value\n }\n break\n }\n }\n }\n\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n closeActive(endTime: RelativeTime) {\n const latestEntry = this.entries[0]\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime)\n }\n }\n\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n findAll(startTime: RelativeTime = END_OF_TIMES, duration = 0 as Duration): Value[] {\n const endTime = addDuration(startTime, duration)\n return this.entries\n .filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)\n .map((entry) => entry.value)\n }\n\n /**\n * Remove all entries from this collection.\n */\n reset() {\n this.entries = []\n }\n\n /**\n * Stop internal garbage collection of past entries.\n */\n stop() {\n clearInterval(this.clearOldValuesInterval)\n }\n\n private clearOldValues() {\n const oldTimeThreshold = relativeNow() - this.expireDelay\n while (this.entries.length > 0 && this.entries[this.entries.length - 1].endTime < oldTimeThreshold) {\n this.entries.pop()\n }\n }\n}\n","import type { RelativeTime, ClocksState } from '@datadog/browser-core'\nimport { SESSION_TIME_OUT_DELAY, ValueHistory } from '@datadog/browser-core'\nimport type { LifeCycle } from '../lifeCycle'\nimport { LifeCycleEventType } from '../lifeCycle'\nimport type { ViewCreatedEvent } from '../view/trackViews'\n\nexport const VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY\n\nexport interface ViewContext {\n service?: string\n version?: string\n id: string\n name?: string\n startClocks: ClocksState\n}\n\nexport interface ViewContexts {\n findView: (startTime?: RelativeTime) => ViewContext | undefined\n stop: () => void\n}\n\nexport function startViewContexts(lifeCycle: LifeCycle): ViewContexts {\n const viewContextHistory = new ValueHistory(VIEW_CONTEXT_TIME_OUT_DELAY)\n\n lifeCycle.subscribe(LifeCycleEventType.VIEW_CREATED, (view) => {\n viewContextHistory.add(buildViewContext(view), view.startClocks.relative)\n })\n\n lifeCycle.subscribe(LifeCycleEventType.VIEW_ENDED, ({ endClocks }) => {\n viewContextHistory.closeActive(endClocks.relative)\n })\n\n lifeCycle.subscribe(LifeCycleEventType.SESSION_RENEWED, () => {\n viewContextHistory.reset()\n })\n\n function buildViewContext(view: ViewCreatedEvent) {\n return {\n service: view.service,\n version: view.version,\n id: view.id,\n name: view.name,\n startClocks: view.startClocks,\n }\n }\n\n return {\n findView: (startTime) => viewContextHistory.find(startTime),\n stop: () => {\n viewContextHistory.stop()\n },\n }\n}\n","import { setTimeout } from './timer'\nimport { callMonitored } from './monitor'\nimport { noop } from './utils/functionUtils'\n\nexport function instrumentMethod(\n object: OBJECT,\n method: METHOD,\n instrumentationFactory: (\n original: OBJECT[METHOD]\n ) => (this: OBJECT, ...args: Parameters) => ReturnType\n) {\n const original = object[method]\n\n let instrumentation = instrumentationFactory(original)\n\n const instrumentationWrapper = function (this: OBJECT): ReturnType | undefined {\n if (typeof instrumentation !== 'function') {\n return undefined\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return instrumentation.apply(this, arguments as unknown as Parameters)\n }\n object[method] = instrumentationWrapper as OBJECT[METHOD]\n\n return {\n stop: () => {\n if (object[method] === instrumentationWrapper) {\n object[method] = original\n } else {\n instrumentation = original\n }\n },\n }\n}\n\nexport function instrumentMethodAndCallOriginal(\n object: OBJECT,\n method: METHOD,\n {\n before,\n after,\n }: {\n before?: (this: OBJECT, ...args: Parameters) => void\n after?: (this: OBJECT, ...args: Parameters) => void\n }\n) {\n return instrumentMethod(\n object,\n method,\n (original) =>\n function () {\n const args = arguments as unknown as Parameters\n let result\n\n if (before) {\n callMonitored(before, this, args)\n }\n\n if (typeof original === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n result = original.apply(this, args)\n }\n\n if (after) {\n callMonitored(after, this, args)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result\n }\n )\n}\n\nexport function instrumentSetter(\n object: OBJECT,\n property: PROPERTY,\n after: (thisObject: OBJECT, value: OBJECT[PROPERTY]) => void\n) {\n const originalDescriptor = Object.getOwnPropertyDescriptor(object, property)\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop }\n }\n\n let instrumentation = (thisObject: OBJECT, value: OBJECT[PROPERTY]) => {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(() => {\n after(thisObject, value)\n }, 0)\n }\n\n const instrumentationWrapper = function (this: OBJECT, value: OBJECT[PROPERTY]) {\n originalDescriptor.set!.call(this, value)\n instrumentation(this, value)\n }\n\n Object.defineProperty(object, property, {\n set: instrumentationWrapper,\n })\n\n return {\n stop: () => {\n if (Object.getOwnPropertyDescriptor(object, property)?.set === instrumentationWrapper) {\n Object.defineProperty(object, property, originalDescriptor)\n } else {\n instrumentation = noop\n }\n },\n }\n}\n","import { instrumentMethod } from '../tools/instrumentMethod'\nimport { callMonitored, monitor } from '../tools/monitor'\nimport { Observable } from '../tools/observable'\nimport type { ClocksState } from '../tools/utils/timeUtils'\nimport { clocksNow } from '../tools/utils/timeUtils'\nimport { normalizeUrl } from '../tools/utils/urlPolyfill'\n\ninterface FetchContextBase {\n method: string\n startClocks: ClocksState\n input: unknown\n init?: RequestInit\n url: string\n}\n\nexport interface FetchStartContext extends FetchContextBase {\n state: 'start'\n}\n\nexport interface FetchResolveContext extends FetchContextBase {\n state: 'resolve'\n status: number\n response?: Response\n responseType?: string\n isAborted: boolean\n error?: Error\n}\n\nexport type FetchContext = FetchStartContext | FetchResolveContext\n\nlet fetchObservable: Observable | undefined\n\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable()\n }\n return fetchObservable\n}\n\nfunction createFetchObservable() {\n const observable = new Observable(() => {\n if (!window.fetch) {\n return\n }\n\n const { stop } = instrumentMethod(\n window,\n 'fetch',\n (originalFetch) =>\n function (input, init) {\n let responsePromise: Promise\n\n const context = callMonitored(beforeSend, null, [observable, input, init])\n if (context) {\n // casting should be `RequestInfo` but node types are ahead of DOM types, making `typecheck test/e2e` fail.\n // it should be resolved with https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1483\n responsePromise = originalFetch.call(this, context.input as any, context.init)\n callMonitored(afterSend, null, [observable, responsePromise, context])\n } else {\n responsePromise = originalFetch.call(this, input, init)\n }\n\n return responsePromise\n }\n )\n\n return stop\n })\n\n return observable\n}\n\nfunction beforeSend(observable: Observable, input: unknown, init?: RequestInit) {\n const methodFromParams = (init && init.method) || (input instanceof Request && input.method)\n const method = methodFromParams ? methodFromParams.toUpperCase() : 'GET'\n const url = input instanceof Request ? input.url : normalizeUrl(String(input))\n const startClocks = clocksNow()\n\n const context: FetchStartContext = {\n state: 'start',\n init,\n input,\n method,\n startClocks,\n url,\n }\n\n observable.notify(context)\n\n return context\n}\n\nfunction afterSend(\n observable: Observable,\n responsePromise: Promise,\n startContext: FetchStartContext\n) {\n const reportFetch = (response: Response | Error) => {\n const context = startContext as unknown as FetchResolveContext\n context.state = 'resolve'\n if ('stack' in response || response instanceof Error) {\n context.status = 0\n context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR\n context.error = response\n } else if ('status' in response) {\n context.response = response\n context.responseType = response.type\n context.status = response.status\n context.isAborted = false\n }\n observable.notify(context)\n }\n\n responsePromise.then(monitor(reportFetch), monitor(reportFetch))\n}\n","import type {\n Duration,\n XhrCompleteContext,\n XhrStartContext,\n ClocksState,\n FetchStartContext,\n FetchResolveContext,\n} from '@datadog/browser-core'\nimport {\n RequestType,\n initFetchObservable,\n initXhrObservable,\n readBytesFromStream,\n elapsed,\n timeStampNow,\n tryToClone,\n} from '@datadog/browser-core'\nimport type { RumSessionManager } from '..'\nimport type { RumConfiguration } from './configuration'\nimport type { LifeCycle } from './lifeCycle'\nimport { LifeCycleEventType } from './lifeCycle'\nimport { isAllowedRequestUrl } from './resource/resourceUtils'\nimport type { TraceIdentifier, Tracer } from './tracing/tracer'\nimport { startTracer } from './tracing/tracer'\n\nexport interface CustomContext {\n requestIndex: number\n spanId?: TraceIdentifier\n traceId?: TraceIdentifier\n traceSampled?: boolean\n}\nexport interface RumFetchStartContext extends FetchStartContext, CustomContext {}\nexport interface RumFetchResolveContext extends FetchResolveContext, CustomContext {}\nexport interface RumXhrStartContext extends XhrStartContext, CustomContext {}\nexport interface RumXhrCompleteContext extends XhrCompleteContext, CustomContext {}\n\nexport interface RequestStartEvent {\n requestIndex: number\n url: string\n}\nexport interface RequestCompleteEvent {\n requestIndex: number\n type: RequestType\n method: string\n url: string\n status: number\n responseType?: string\n startClocks: ClocksState\n duration: Duration\n spanId?: TraceIdentifier\n traceId?: TraceIdentifier\n traceSampled?: boolean\n xhr?: XMLHttpRequest\n response?: Response\n input?: unknown\n init?: RequestInit\n error?: Error\n}\n\nlet nextRequestIndex = 1\n\nexport function startRequestCollection(\n lifeCycle: LifeCycle,\n configuration: RumConfiguration,\n sessionManager: RumSessionManager\n) {\n const tracer = startTracer(configuration, sessionManager)\n trackXhr(lifeCycle, configuration, tracer)\n trackFetch(lifeCycle, configuration, tracer)\n}\n\nexport function trackXhr(lifeCycle: LifeCycle, configuration: RumConfiguration, tracer: Tracer) {\n const subscription = initXhrObservable(configuration).subscribe((rawContext) => {\n const context = rawContext as RumXhrStartContext | RumXhrCompleteContext\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return\n }\n\n switch (context.state) {\n case 'start':\n tracer.traceXhr(context, context.xhr)\n context.requestIndex = getNextRequestIndex()\n\n lifeCycle.notify(LifeCycleEventType.REQUEST_STARTED, {\n requestIndex: context.requestIndex,\n url: context.url,\n })\n break\n case 'complete':\n tracer.clearTracingIfNeeded(context)\n lifeCycle.notify(LifeCycleEventType.REQUEST_COMPLETED, {\n duration: context.duration,\n method: context.method,\n requestIndex: context.requestIndex,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: RequestType.XHR,\n url: context.url,\n xhr: context.xhr,\n })\n break\n }\n })\n\n return { stop: () => subscription.unsubscribe() }\n}\n\nexport function trackFetch(lifeCycle: LifeCycle, configuration: RumConfiguration, tracer: Tracer) {\n const subscription = initFetchObservable().subscribe((rawContext) => {\n const context = rawContext as RumFetchResolveContext | RumFetchStartContext\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return\n }\n\n switch (context.state) {\n case 'start':\n tracer.traceFetch(context)\n context.requestIndex = getNextRequestIndex()\n\n lifeCycle.notify(LifeCycleEventType.REQUEST_STARTED, {\n requestIndex: context.requestIndex,\n url: context.url,\n })\n break\n case 'resolve':\n waitForResponseToComplete(context, (duration: Duration) => {\n tracer.clearTracingIfNeeded(context)\n lifeCycle.notify(LifeCycleEventType.REQUEST_COMPLETED, {\n duration,\n method: context.method,\n requestIndex: context.requestIndex,\n responseType: context.responseType,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: RequestType.FETCH,\n url: context.url,\n response: context.response,\n init: context.init,\n input: context.input,\n })\n })\n break\n }\n })\n return { stop: () => subscription.unsubscribe() }\n}\n\nfunction getNextRequestIndex() {\n const result = nextRequestIndex\n nextRequestIndex += 1\n return result\n}\n\nfunction waitForResponseToComplete(context: RumFetchResolveContext, callback: (duration: Duration) => void) {\n const clonedResponse = context.response && tryToClone(context.response)\n if (!clonedResponse || !clonedResponse.body) {\n // do not try to wait for the response if the clone failed, fetch error or null body\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()))\n } else {\n readBytesFromStream(\n clonedResponse.body,\n () => {\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()))\n },\n {\n bytesLimit: Number.POSITIVE_INFINITY,\n collectStreamBody: false,\n }\n )\n }\n}\n","export function isServerError(status: number) {\n return status >= 500\n}\n\nexport function tryToClone(response: Response): Response | undefined {\n try {\n return response.clone()\n } catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return\n }\n}\n","import { monitor } from './monitor'\nimport { noop } from './utils/functionUtils'\n\ntype Options = {\n bytesLimit: number\n collectStreamBody?: boolean\n}\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(\n stream: ReadableStream,\n callback: (error?: Error, bytes?: Uint8Array, limitExceeded?: boolean) => void,\n options: Options\n) {\n const reader = stream.getReader()\n const chunks: Uint8Array[] = []\n let readBytesCount = 0\n\n readMore()\n\n function readMore() {\n reader.read().then(\n monitor((result: ReadableStreamReadResult) => {\n if (result.done) {\n onDone()\n return\n }\n\n if (options.collectStreamBody) {\n chunks.push(result.value)\n }\n readBytesCount += result.value.length\n\n if (readBytesCount > options.bytesLimit) {\n onDone()\n } else {\n readMore()\n }\n }),\n monitor((error) => callback(error))\n )\n }\n\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop\n )\n\n let bytes: Uint8Array | undefined\n let limitExceeded: boolean | undefined\n if (options.collectStreamBody) {\n let completeBuffer: Uint8Array\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer = chunks[0]\n } else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer = new Uint8Array(readBytesCount)\n let offset = 0\n chunks.forEach((chunk) => {\n completeBuffer.set(chunk, offset)\n offset += chunk.length\n })\n }\n bytes = completeBuffer.slice(0, options.bytesLimit)\n limitExceeded = completeBuffer.length > options.bytesLimit\n }\n\n callback(undefined, bytes, limitExceeded)\n }\n}\n","import { noop } from '@datadog/browser-core'\nimport { RumEventType } from '../rawRumEvent.types'\nimport type { RumActionEvent, RumErrorEvent, RumLongTaskEvent, RumResourceEvent } from '../rumEvent.types'\nimport type { LifeCycle } from './lifeCycle'\nimport { LifeCycleEventType } from './lifeCycle'\n\nexport interface EventCounts {\n errorCount: number\n actionCount: number\n longTaskCount: number\n resourceCount: number\n frustrationCount: number\n}\n\nexport function trackEventCounts({\n lifeCycle,\n isChildEvent,\n onChange: callback = noop,\n}: {\n lifeCycle: LifeCycle\n isChildEvent: (event: RumActionEvent | RumErrorEvent | RumLongTaskEvent | RumResourceEvent) => boolean\n onChange?: () => void\n}) {\n const eventCounts: EventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n }\n\n const subscription = lifeCycle.subscribe(LifeCycleEventType.RUM_EVENT_COLLECTED, (event): void => {\n if (event.type === 'view' || !isChildEvent(event)) {\n return\n }\n switch (event.type) {\n case RumEventType.ERROR:\n eventCounts.errorCount += 1\n callback()\n break\n case RumEventType.ACTION:\n eventCounts.actionCount += 1\n if (event.action.frustration) {\n eventCounts.frustrationCount += event.action.frustration.type.length\n }\n callback()\n break\n case RumEventType.LONG_TASK:\n eventCounts.longTaskCount += 1\n callback()\n break\n case RumEventType.RESOURCE:\n if (!event._dd?.discarded) {\n eventCounts.resourceCount += 1\n callback()\n }\n break\n }\n })\n\n return {\n stop: () => {\n subscription.unsubscribe()\n },\n eventCounts,\n }\n}\n","import type { Subscription, TimeoutId, TimeStamp } from '@datadog/browser-core'\nimport {\n instrumentMethodAndCallOriginal,\n matchList,\n monitor,\n Observable,\n timeStampNow,\n setTimeout,\n clearTimeout,\n} from '@datadog/browser-core'\nimport { RumPerformanceEntryType } from '../browser/performanceCollection'\nimport type { RumConfiguration } from './configuration'\nimport type { LifeCycle } from './lifeCycle'\nimport { LifeCycleEventType } from './lifeCycle'\n\n// Delay to wait for a page activity to validate the tracking process\nexport const PAGE_ACTIVITY_VALIDATION_DELAY = 100\n// Delay to wait after a page activity to end the tracking process\nexport const PAGE_ACTIVITY_END_DELAY = 100\n\nexport interface PageActivityEvent {\n isBusy: boolean\n}\n\nexport type PageActivityEndEvent = { hadActivity: true; end: TimeStamp } | { hadActivity: false }\n\n/**\n * Wait for the page activity end\n *\n * Detection lifecycle:\n * ```\n * Wait page activity end\n * .-------------------'--------------------.\n * v v\n * [Wait for a page activity ] [Wait for a maximum duration]\n * [timeout: VALIDATION_DELAY] [ timeout: maxDuration ]\n * / \\ |\n * v v |\n * [No page activity] [Page activity] |\n * | |,----------------------. |\n * v v | |\n * (Discard) [Wait for a page activity] | |\n * [ timeout: END_DELAY ] | |\n * / \\ | |\n * v v | |\n * [No page activity] [Page activity] | |\n * | | | |\n * | '------------' |\n * '-----------. ,--------------------'\n * v\n * (End)\n * ```\n *\n * Note: by assuming that maxDuration is greater than VALIDATION_DELAY, we are sure that if the\n * process is still alive after maxDuration, it has been validated.\n */\nexport function waitPageActivityEnd(\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n configuration: RumConfiguration,\n pageActivityEndCallback: (event: PageActivityEndEvent) => void,\n maxDuration?: number\n) {\n const pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, configuration)\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration)\n}\n\nexport function doWaitPageActivityEnd(\n pageActivityObservable: Observable,\n pageActivityEndCallback: (event: PageActivityEndEvent) => void,\n maxDuration?: number\n) {\n let pageActivityEndTimeoutId: TimeoutId\n let hasCompleted = false\n\n const validationTimeoutId = setTimeout(\n monitor(() => complete({ hadActivity: false })),\n PAGE_ACTIVITY_VALIDATION_DELAY\n )\n const maxDurationTimeoutId =\n maxDuration !== undefined\n ? setTimeout(\n monitor(() => complete({ hadActivity: true, end: timeStampNow() })),\n maxDuration\n )\n : undefined\n\n const pageActivitySubscription = pageActivityObservable.subscribe(({ isBusy }) => {\n clearTimeout(validationTimeoutId)\n clearTimeout(pageActivityEndTimeoutId)\n const lastChangeTime = timeStampNow()\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(\n monitor(() => complete({ hadActivity: true, end: lastChangeTime })),\n PAGE_ACTIVITY_END_DELAY\n )\n }\n })\n\n const stop = () => {\n hasCompleted = true\n clearTimeout(validationTimeoutId)\n clearTimeout(pageActivityEndTimeoutId)\n clearTimeout(maxDurationTimeoutId)\n pageActivitySubscription.unsubscribe()\n }\n\n function complete(event: PageActivityEndEvent) {\n if (hasCompleted) {\n return\n }\n stop()\n pageActivityEndCallback(event)\n }\n return { stop }\n}\n\nexport function createPageActivityObservable(\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n configuration: RumConfiguration\n): Observable {\n const observable = new Observable(() => {\n const subscriptions: Subscription[] = []\n let firstRequestIndex: undefined | number\n let pendingRequestsCount = 0\n\n subscriptions.push(\n domMutationObservable.subscribe(notifyPageActivity),\n lifeCycle.subscribe(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, (entries) => {\n if (\n entries.some(\n (entry) => entry.entryType === RumPerformanceEntryType.RESOURCE && !isExcludedUrl(configuration, entry.name)\n )\n ) {\n notifyPageActivity()\n }\n }),\n lifeCycle.subscribe(LifeCycleEventType.REQUEST_STARTED, (startEvent) => {\n if (isExcludedUrl(configuration, startEvent.url)) {\n return\n }\n if (firstRequestIndex === undefined) {\n firstRequestIndex = startEvent.requestIndex\n }\n pendingRequestsCount += 1\n notifyPageActivity()\n }),\n lifeCycle.subscribe(LifeCycleEventType.REQUEST_COMPLETED, (request) => {\n if (\n isExcludedUrl(configuration, request.url) ||\n firstRequestIndex === undefined ||\n // If the request started before the tracking start, ignore it\n request.requestIndex < firstRequestIndex\n ) {\n return\n }\n pendingRequestsCount -= 1\n notifyPageActivity()\n })\n )\n\n const { stop: stopTrackingWindowOpen } = trackWindowOpen(notifyPageActivity)\n\n return () => {\n stopTrackingWindowOpen()\n subscriptions.forEach((s) => s.unsubscribe())\n }\n\n function notifyPageActivity() {\n observable.notify({ isBusy: pendingRequestsCount > 0 })\n }\n })\n\n return observable\n}\n\nfunction isExcludedUrl(configuration: RumConfiguration, requestUrl: string): boolean {\n return matchList(configuration.excludedActivityUrls, requestUrl)\n}\n\nfunction trackWindowOpen(callback: () => void) {\n return instrumentMethodAndCallOriginal(window, 'open', { before: callback })\n}\n","import { safeTruncate, isIE, find } from '@datadog/browser-core'\n\n/**\n * Get the action name from the attribute 'data-dd-action-name' on the element or any of its parent.\n * It can also be retrieved from a user defined attribute.\n */\nexport const DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE = 'data-dd-action-name'\n\nexport function getActionNameFromElement(element: Element, userProgrammaticAttribute?: string): string {\n // Proceed to get the action name in two steps:\n // * first, get the name programmatically, explicitly defined by the user.\n // * then, use strategies that are known to return good results. Those strategies will be used on\n // the element and a few parents, but it's likely that they won't succeed at all.\n // * if no name is found this way, use strategies returning less accurate names as a fallback.\n // Those are much likely to succeed.\n return (\n getActionNameFromElementProgrammatically(element, DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE) ||\n (userProgrammaticAttribute && getActionNameFromElementProgrammatically(element, userProgrammaticAttribute)) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, priorityStrategies) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, fallbackStrategies) ||\n ''\n )\n}\n\nfunction getActionNameFromElementProgrammatically(targetElement: Element, programmaticAttribute: string) {\n let elementWithAttribute\n // We don't use getActionNameFromElementForStrategies here, because we want to consider all parents,\n // without limit. It is up to the user to declare a relevant naming strategy.\n // If available, use element.closest() to match get the attribute from the element or any of its\n // parent. Else fallback to a more traditional implementation.\n if (supportsElementClosest()) {\n elementWithAttribute = targetElement.closest(`[${programmaticAttribute}]`)\n } else {\n let element: Element | null = targetElement\n while (element) {\n if (element.hasAttribute(programmaticAttribute)) {\n elementWithAttribute = element\n break\n }\n element = element.parentElement\n }\n }\n\n if (!elementWithAttribute) {\n return\n }\n const name = elementWithAttribute.getAttribute(programmaticAttribute)!\n return truncate(normalizeWhitespace(name.trim()))\n}\n\ntype NameStrategy = (\n element: Element | HTMLElement | HTMLInputElement | HTMLSelectElement,\n userProgrammaticAttribute: string | undefined\n) => string | undefined | null\n\nconst priorityStrategies: NameStrategy[] = [\n // associated LABEL text\n (element, userProgrammaticAttribute) => {\n // IE does not support element.labels, so we fallback to a CSS selector based on the element id\n // instead\n if (supportsLabelProperty()) {\n if ('labels' in element && element.labels && element.labels.length > 0) {\n return getTextualContent(element.labels[0], userProgrammaticAttribute)\n }\n } else if (element.id) {\n const label =\n element.ownerDocument &&\n find(element.ownerDocument.querySelectorAll('label'), (label) => label.htmlFor === element.id)\n return label && getTextualContent(label, userProgrammaticAttribute)\n }\n },\n // INPUT button (and associated) value\n (element) => {\n if (element.nodeName === 'INPUT') {\n const input = element as HTMLInputElement\n const type = input.getAttribute('type')\n if (type === 'button' || type === 'submit' || type === 'reset') {\n return input.value\n }\n }\n },\n // BUTTON, LABEL or button-like element text\n (element, userProgrammaticAttribute) => {\n if (element.nodeName === 'BUTTON' || element.nodeName === 'LABEL' || element.getAttribute('role') === 'button') {\n return getTextualContent(element, userProgrammaticAttribute)\n }\n },\n (element) => element.getAttribute('aria-label'),\n // associated element text designated by the aria-labelledby attribute\n (element, userProgrammaticAttribute) => {\n const labelledByAttribute = element.getAttribute('aria-labelledby')\n if (labelledByAttribute) {\n return labelledByAttribute\n .split(/\\s+/)\n .map((id) => getElementById(element, id))\n .filter((label): label is HTMLElement => Boolean(label))\n .map((element) => getTextualContent(element, userProgrammaticAttribute))\n .join(' ')\n }\n },\n (element) => element.getAttribute('alt'),\n (element) => element.getAttribute('name'),\n (element) => element.getAttribute('title'),\n (element) => element.getAttribute('placeholder'),\n // SELECT first OPTION text\n (element, userProgrammaticAttribute) => {\n if ('options' in element && element.options.length > 0) {\n return getTextualContent(element.options[0], userProgrammaticAttribute)\n }\n },\n]\n\nconst fallbackStrategies: NameStrategy[] = [\n (element, userProgrammaticAttribute) => getTextualContent(element, userProgrammaticAttribute),\n]\n\n/**\n * Iterates over the target element and its parent, using the strategies list to get an action name.\n * Each strategies are applied on each element, stopping as soon as a non-empty value is returned.\n */\nconst MAX_PARENTS_TO_CONSIDER = 10\nfunction getActionNameFromElementForStrategies(\n targetElement: Element,\n userProgrammaticAttribute: string | undefined,\n strategies: NameStrategy[]\n) {\n let element: Element | null = targetElement\n let recursionCounter = 0\n while (\n recursionCounter <= MAX_PARENTS_TO_CONSIDER &&\n element &&\n element.nodeName !== 'BODY' &&\n element.nodeName !== 'HTML' &&\n element.nodeName !== 'HEAD'\n ) {\n for (const strategy of strategies) {\n const name = strategy(element, userProgrammaticAttribute)\n if (typeof name === 'string') {\n const trimmedName = name.trim()\n if (trimmedName) {\n return truncate(normalizeWhitespace(trimmedName))\n }\n }\n }\n // Consider a FORM as a contextual limit to get the action name. This is experimental and may\n // be reconsidered in the future.\n if (element.nodeName === 'FORM') {\n break\n }\n element = element.parentElement\n recursionCounter += 1\n }\n}\n\nfunction normalizeWhitespace(s: string) {\n return s.replace(/\\s+/g, ' ')\n}\n\nfunction truncate(s: string) {\n return s.length > 100 ? `${safeTruncate(s, 100)} [...]` : s\n}\n\nfunction getElementById(refElement: Element, id: string) {\n // Use the element ownerDocument here, because tests are executed in an iframe, so\n // document.getElementById won't work.\n return refElement.ownerDocument ? refElement.ownerDocument.getElementById(id) : null\n}\n\nfunction getTextualContent(element: Element | HTMLElement, userProgrammaticAttribute: string | undefined) {\n if ((element as HTMLElement).isContentEditable) {\n return\n }\n\n if ('innerText' in element) {\n let text = element.innerText\n\n const removeTextFromElements = (query: string) => {\n const list = element.querySelectorAll(query)\n for (let index = 0; index < list.length; index += 1) {\n const element = list[index]\n if ('innerText' in element) {\n const textToReplace = element.innerText\n if (textToReplace && textToReplace.trim().length > 0) {\n text = text.replace(textToReplace, '')\n }\n }\n }\n }\n\n if (!supportsInnerTextScriptAndStyleRemoval()) {\n // remove the inner text of SCRIPT and STYLES from the result. This is a bit dirty, but should\n // be relatively fast and work in most cases.\n removeTextFromElements('script, style')\n }\n\n // remove the text of elements with programmatic attribute value\n removeTextFromElements(`[${DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE}]`)\n\n if (userProgrammaticAttribute) {\n removeTextFromElements(`[${userProgrammaticAttribute}]`)\n }\n\n return text\n }\n\n return element.textContent\n}\n\n/**\n * Returns true if element.innerText excludes the text from inline SCRIPT and STYLE element. This\n * should be the case everywhere except on Internet Explorer 10 and 11 (see [1])\n *\n * The innerText property relies on what is actually rendered to compute its output, so to check if\n * it actually excludes SCRIPT and STYLE content, a solution would be to create a style element, set\n * its content to '*', inject it in the document body, and check if the style element innerText\n * property returns '*'. Using a new `document` instance won't work as it is not rendered.\n *\n * This solution requires specific CSP rules (see [2]) to be set by the customer. We want to avoid\n * this, so instead we rely on browser detection. In case of false negative, the impact should be\n * low, since we rely on this result to remove the SCRIPT and STYLE innerText (which will be empty)\n * from a parent element innerText.\n *\n * [1]: https://web.archive.org/web/20210602165716/http://perfectionkills.com/the-poor-misunderstood-innerText/#diff-with-textContent\n * [2]: https://github.com/DataDog/browser-sdk/issues/1084\n */\nfunction supportsInnerTextScriptAndStyleRemoval() {\n return !isIE()\n}\n\n/**\n * Returns true if the browser supports the element.labels property. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nlet supportsLabelPropertyResult: boolean | undefined\nfunction supportsLabelProperty() {\n if (supportsLabelPropertyResult === undefined) {\n supportsLabelPropertyResult = 'labels' in HTMLInputElement.prototype\n }\n return supportsLabelPropertyResult\n}\n\n/**\n * Returns true if the browser supports the element.closest method. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nlet supportsElementClosestResult: boolean | undefined\nfunction supportsElementClosest() {\n if (supportsElementClosestResult === undefined) {\n supportsElementClosestResult = 'closest' in HTMLElement.prototype\n }\n return supportsElementClosestResult\n}\n","import { cssEscape, addTelemetryDebug } from '@datadog/browser-core'\nimport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './action/getActionNameFromElement'\n\n/**\n * Stable attributes are attributes that are commonly used to identify parts of a UI (ex:\n * component). Those attribute values should not be generated randomly (hardcoded most of the time)\n * and stay the same across deploys. They are not necessarily unique across the document.\n */\nexport const STABLE_ATTRIBUTES = [\n DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE,\n // Common test attributes (list provided by google recorder)\n 'data-testid',\n 'data-test',\n 'data-qa',\n 'data-cy',\n 'data-test-id',\n 'data-qa-id',\n 'data-testing',\n // FullStory decorator attributes:\n 'data-component',\n 'data-element',\n 'data-source-file',\n]\n\ntype SelectorGetter = (element: Element, actionNameAttribute: string | undefined) => string | undefined\n\n// Selectors to use if they target a single element on the whole document. Those selectors are\n// considered as \"stable\" and uniquely identify an element regardless of the page state. If we find\n// one, we should consider the selector \"complete\" and stop iterating over ancestors.\nconst GLOBALLY_UNIQUE_SELECTOR_GETTERS: SelectorGetter[] = [getStableAttributeSelector, getIDSelector]\n\n// Selectors to use if they target a single element among an element descendants. Those selectors\n// are more brittle than \"globally unique\" selectors and should be combined with ancestor selectors\n// to improve specificity.\nconst UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS: SelectorGetter[] = [\n getStableAttributeSelector,\n getClassSelector,\n getTagNameSelector,\n]\n\nexport function getSelectorFromElement(targetElement: Element, actionNameAttribute: string | undefined) {\n let targetElementSelector = ''\n let element: Element | null = targetElement\n\n while (element && element.nodeName !== 'HTML') {\n const globallyUniqueSelector = findSelector(\n element,\n GLOBALLY_UNIQUE_SELECTOR_GETTERS,\n isSelectorUniqueGlobally,\n actionNameAttribute,\n targetElementSelector\n )\n if (globallyUniqueSelector) {\n return globallyUniqueSelector\n }\n\n if (!element.parentElement) {\n addTelemetryDebug('selector from element without parent', {\n debug: {\n selector: combineSelector(cssEscape(element.tagName), targetElementSelector),\n isConnected: element.isConnected,\n },\n })\n }\n\n const uniqueSelectorAmongChildren = findSelector(\n element,\n UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS,\n isSelectorUniqueAmongSiblings,\n actionNameAttribute,\n targetElementSelector\n )\n targetElementSelector =\n uniqueSelectorAmongChildren || combineSelector(getPositionSelector(element), targetElementSelector)\n\n element = element.parentElement\n }\n\n return targetElementSelector\n}\n\nfunction isGeneratedValue(value: string) {\n // To compute the \"URL path group\", the backend replaces every URL path parts as a question mark\n // if it thinks the part is an identifier. The condition it uses is to checks whether a digit is\n // present.\n //\n // Here, we use the same strategy: if a the value contains a digit, we consider it generated. This\n // strategy might be a bit naive and fail in some cases, but there are many fallbacks to generate\n // CSS selectors so it should be fine most of the time. We might want to allow customers to\n // provide their own `isGeneratedValue` at some point.\n return /[0-9]/.test(value)\n}\n\nfunction getIDSelector(element: Element): string | undefined {\n if (element.id && !isGeneratedValue(element.id)) {\n return `#${cssEscape(element.id)}`\n }\n}\n\nfunction getClassSelector(element: Element): string | undefined {\n if (element.tagName === 'BODY') {\n return\n }\n if (element.classList.length > 0) {\n for (let i = 0; i < element.classList.length; i += 1) {\n const className = element.classList[i]\n if (isGeneratedValue(className)) {\n continue\n }\n\n return `${cssEscape(element.tagName)}.${cssEscape(className)}`\n }\n }\n}\n\nfunction getTagNameSelector(element: Element): string {\n return cssEscape(element.tagName)\n}\n\nfunction getStableAttributeSelector(element: Element, actionNameAttribute: string | undefined): string | undefined {\n if (actionNameAttribute) {\n const selector = getAttributeSelector(actionNameAttribute)\n if (selector) {\n return selector\n }\n }\n\n for (const attributeName of STABLE_ATTRIBUTES) {\n const selector = getAttributeSelector(attributeName)\n if (selector) {\n return selector\n }\n }\n\n function getAttributeSelector(attributeName: string) {\n if (element.hasAttribute(attributeName)) {\n return `${cssEscape(element.tagName)}[${attributeName}=\"${cssEscape(element.getAttribute(attributeName)!)}\"]`\n }\n }\n}\n\nfunction getPositionSelector(element: Element): string {\n let sibling = element.parentElement!.firstElementChild\n let elementIndex = 1\n\n while (sibling && sibling !== element) {\n if (sibling.tagName === element.tagName) {\n elementIndex += 1\n }\n sibling = sibling.nextElementSibling\n }\n\n return `${cssEscape(element.tagName)}:nth-of-type(${elementIndex})`\n}\n\nfunction findSelector(\n element: Element,\n selectorGetters: SelectorGetter[],\n predicate: (element: Element, selector: string) => boolean,\n actionNameAttribute: string | undefined,\n childSelector?: string\n) {\n for (const selectorGetter of selectorGetters) {\n const elementSelector = selectorGetter(element, actionNameAttribute)\n if (!elementSelector) {\n continue\n }\n const fullSelector = combineSelector(elementSelector, childSelector)\n if (predicate(element, fullSelector)) {\n return fullSelector\n }\n }\n}\n\n/**\n * Check whether the selector is unique among the whole document.\n */\nfunction isSelectorUniqueGlobally(element: Element, selector: string): boolean {\n return element.ownerDocument.querySelectorAll(selector).length === 1\n}\n\n/**\n * Check whether the selector is unique among the element siblings. In other words, it returns true\n * if \"ELEMENT_PARENT > SELECTOR\" returns a single element.\n *\n * The result will be less accurate on browsers that don't support :scope (i. e. IE): it will check\n * for any element matching the selector contained in the parent (in other words,\n * \"ELEMENT_PARENT SELECTOR\" returns a single element), regardless of whether the selector is a\n * direct descendent of the element parent. This should not impact results too much: if it\n * inaccurately returns false, we'll just fall back to another strategy.\n */\nfunction isSelectorUniqueAmongSiblings(element: Element, selector: string): boolean {\n return (\n element.parentElement!.querySelectorAll(supportScopeSelector() ? combineSelector(':scope', selector) : selector)\n .length === 1\n )\n}\n\nfunction combineSelector(parent: string, child: string | undefined): string {\n return child ? `${parent}>${child}` : parent\n}\n\nlet supportScopeSelectorCache: boolean | undefined\nexport function supportScopeSelector() {\n if (supportScopeSelectorCache === undefined) {\n try {\n document.querySelector(':scope')\n supportScopeSelectorCache = true\n } catch {\n supportScopeSelectorCache = false\n }\n }\n return supportScopeSelectorCache\n}\n","import type { TimeoutId } from '@datadog/browser-core'\nimport { ONE_SECOND, clearTimeout, setTimeout } from '@datadog/browser-core'\nimport type { Click } from './trackClickActions'\n\nexport interface ClickChain {\n tryAppend: (click: Click) => boolean\n stop: () => void\n}\n\nexport const MAX_DURATION_BETWEEN_CLICKS = ONE_SECOND\nexport const MAX_DISTANCE_BETWEEN_CLICKS = 100\n\nconst enum ClickChainStatus {\n WaitingForMoreClicks,\n WaitingForClicksToStop,\n Finalized,\n}\n\nexport function createClickChain(firstClick: Click, onFinalize: (clicks: Click[]) => void): ClickChain {\n const bufferedClicks: Click[] = []\n let status = ClickChainStatus.WaitingForMoreClicks\n let maxDurationBetweenClicksTimeoutId: TimeoutId | undefined\n appendClick(firstClick)\n\n function appendClick(click: Click) {\n click.stopObservable.subscribe(tryFinalize)\n bufferedClicks.push(click)\n clearTimeout(maxDurationBetweenClicksTimeoutId)\n maxDurationBetweenClicksTimeoutId = setTimeout(dontAcceptMoreClick, MAX_DURATION_BETWEEN_CLICKS)\n }\n\n function tryFinalize() {\n if (status === ClickChainStatus.WaitingForClicksToStop && bufferedClicks.every((click) => click.isStopped())) {\n status = ClickChainStatus.Finalized\n onFinalize(bufferedClicks)\n }\n }\n\n function dontAcceptMoreClick() {\n clearTimeout(maxDurationBetweenClicksTimeoutId)\n if (status === ClickChainStatus.WaitingForMoreClicks) {\n status = ClickChainStatus.WaitingForClicksToStop\n tryFinalize()\n }\n }\n\n return {\n tryAppend: (click) => {\n if (status !== ClickChainStatus.WaitingForMoreClicks) {\n return false\n }\n\n if (\n bufferedClicks.length > 0 &&\n !areEventsSimilar(bufferedClicks[bufferedClicks.length - 1].event, click.event)\n ) {\n dontAcceptMoreClick()\n return false\n }\n\n appendClick(click)\n return true\n },\n stop: () => {\n dontAcceptMoreClick()\n },\n }\n}\n\n/**\n * Checks whether two events are similar by comparing their target, position and timestamp\n */\nfunction areEventsSimilar(first: MouseEvent, second: MouseEvent) {\n return (\n first.target === second.target &&\n mouseEventDistance(first, second) <= MAX_DISTANCE_BETWEEN_CLICKS &&\n first.timeStamp - second.timeStamp <= MAX_DURATION_BETWEEN_CLICKS\n )\n}\n\nfunction mouseEventDistance(origin: MouseEvent, other: MouseEvent) {\n return Math.sqrt(Math.pow(origin.clientX - other.clientX, 2) + Math.pow(origin.clientY - other.clientY, 2))\n}\n","import { addEventListener, DOM_EVENT } from '@datadog/browser-core'\nimport type { RumConfiguration } from '../configuration'\n\nexport type MouseEventOnElement = PointerEvent & { target: Element }\n\nexport interface UserActivity {\n selection: boolean\n input: boolean\n}\nexport interface ActionEventsHooks {\n onPointerDown: (event: MouseEventOnElement) => ClickContext | undefined\n onPointerUp: (context: ClickContext, event: MouseEventOnElement, getUserActivity: () => UserActivity) => void\n}\n\nexport function listenActionEvents(\n configuration: RumConfiguration,\n { onPointerDown, onPointerUp }: ActionEventsHooks\n) {\n let selectionEmptyAtPointerDown: boolean\n let userActivity: UserActivity = {\n selection: false,\n input: false,\n }\n let clickContext: ClickContext | undefined\n\n const listeners = [\n addEventListener(\n configuration,\n window,\n DOM_EVENT.POINTER_DOWN,\n (event: PointerEvent) => {\n if (isValidPointerEvent(event)) {\n selectionEmptyAtPointerDown = isSelectionEmpty()\n userActivity = {\n selection: false,\n input: false,\n }\n clickContext = onPointerDown(event)\n }\n },\n { capture: true }\n ),\n\n addEventListener(\n configuration,\n window,\n DOM_EVENT.SELECTION_CHANGE,\n () => {\n if (!selectionEmptyAtPointerDown || !isSelectionEmpty()) {\n userActivity.selection = true\n }\n },\n { capture: true }\n ),\n\n addEventListener(\n configuration,\n window,\n DOM_EVENT.POINTER_UP,\n (event: PointerEvent) => {\n if (isValidPointerEvent(event) && clickContext) {\n // Use a scoped variable to make sure the value is not changed by other clicks\n const localUserActivity = userActivity\n onPointerUp(clickContext, event, () => localUserActivity)\n clickContext = undefined\n }\n },\n { capture: true }\n ),\n\n addEventListener(\n configuration,\n window,\n DOM_EVENT.INPUT,\n () => {\n userActivity.input = true\n },\n { capture: true }\n ),\n ]\n\n return {\n stop: () => {\n listeners.forEach((listener) => listener.stop())\n },\n }\n}\n\nfunction isSelectionEmpty(): boolean {\n const selection = window.getSelection()\n return !selection || selection.isCollapsed\n}\n\nfunction isValidPointerEvent(event: PointerEvent): event is MouseEventOnElement {\n return (\n event.target instanceof Element &&\n // Only consider 'primary' pointer events for now. Multi-touch support could be implemented in\n // the future.\n event.isPrimary !== false\n )\n}\n","import { elementMatches, ONE_SECOND } from '@datadog/browser-core'\nimport { FrustrationType } from '../../rawRumEvent.types'\nimport type { Click } from './trackClickActions'\n\nconst MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE = 3\n\nexport function computeFrustration(clicks: Click[], rageClick: Click) {\n if (isRage(clicks)) {\n rageClick.addFrustration(FrustrationType.RAGE_CLICK)\n if (clicks.some(isDead)) {\n rageClick.addFrustration(FrustrationType.DEAD_CLICK)\n }\n if (rageClick.hasError) {\n rageClick.addFrustration(FrustrationType.ERROR_CLICK)\n }\n return { isRage: true }\n }\n\n const hasSelectionChanged = clicks.some((click) => click.getUserActivity().selection)\n clicks.forEach((click) => {\n if (click.hasError) {\n click.addFrustration(FrustrationType.ERROR_CLICK)\n }\n if (\n isDead(click) &&\n // Avoid considering clicks part of a double-click or triple-click selections as dead clicks\n !hasSelectionChanged\n ) {\n click.addFrustration(FrustrationType.DEAD_CLICK)\n }\n })\n return { isRage: false }\n}\n\nexport function isRage(clicks: Click[]) {\n if (clicks.some((click) => click.getUserActivity().selection)) {\n return false\n }\n for (let i = 0; i < clicks.length - (MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1); i += 1) {\n if (\n clicks[i + MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1].event.timeStamp - clicks[i].event.timeStamp <=\n ONE_SECOND\n ) {\n return true\n }\n }\n return false\n}\n\nconst DEAD_CLICK_EXCLUDE_SELECTOR =\n // inputs that don't trigger a meaningful event like \"input\" when clicked, including textual\n // inputs (using a negative selector is shorter here)\n 'input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]):not([type=\"range\"]),' +\n 'textarea,' +\n 'select,' +\n // contenteditable and their descendants don't always trigger meaningful changes when manipulated\n '[contenteditable],' +\n '[contenteditable] *,' +\n // canvas, as there is no good way to detect activity occurring on them\n 'canvas,' +\n // links that are interactive (have an href attribute) or any of their descendants, as they can\n // open a new tab or navigate to a hash without triggering a meaningful event\n 'a[href],' +\n 'a[href] *'\n\nexport function isDead(click: Click) {\n if (click.hasPageActivity || click.getUserActivity().input) {\n return false\n }\n return !elementMatches(click.event.target, DEAD_CLICK_EXCLUDE_SELECTOR)\n}\n","import type { Duration, ClocksState, RelativeTime, TimeStamp } from '@datadog/browser-core'\nimport {\n includes,\n timeStampNow,\n Observable,\n assign,\n getRelativeTime,\n ONE_MINUTE,\n ValueHistory,\n generateUUID,\n clocksNow,\n ONE_SECOND,\n elapsed,\n} from '@datadog/browser-core'\nimport type { FrustrationType } from '../../rawRumEvent.types'\nimport { ActionType } from '../../rawRumEvent.types'\nimport type { RumConfiguration } from '../configuration'\nimport type { LifeCycle } from '../lifeCycle'\nimport { LifeCycleEventType } from '../lifeCycle'\nimport { trackEventCounts } from '../trackEventCounts'\nimport { PAGE_ACTIVITY_VALIDATION_DELAY, waitPageActivityEnd } from '../waitPageActivityEnd'\nimport { getSelectorFromElement } from '../getSelectorFromElement'\nimport type { ClickChain } from './clickChain'\nimport { createClickChain } from './clickChain'\nimport { getActionNameFromElement } from './getActionNameFromElement'\nimport type { MouseEventOnElement, UserActivity } from './listenActionEvents'\nimport { listenActionEvents } from './listenActionEvents'\nimport { computeFrustration } from './computeFrustration'\n\ninterface ActionCounts {\n errorCount: number\n longTaskCount: number\n resourceCount: number\n}\n\nexport interface ClickAction {\n type: ActionType.CLICK\n id: string\n name: string\n target?: {\n selector: string\n selector_with_stable_attributes?: string\n width: number\n height: number\n }\n position?: { x: number; y: number }\n startClocks: ClocksState\n duration?: Duration\n counts: ActionCounts\n event: MouseEventOnElement\n frustrationTypes: FrustrationType[]\n events: Event[]\n}\n\nexport interface ActionContexts {\n findActionId: (startTime?: RelativeTime) => string | string[] | undefined\n}\n\ntype ClickActionIdHistory = ValueHistory\n\n// Maximum duration for click actions\nexport const CLICK_ACTION_MAX_DURATION = 10 * ONE_SECOND\nexport const ACTION_CONTEXT_TIME_OUT_DELAY = 5 * ONE_MINUTE // arbitrary\n\nexport function trackClickActions(\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n configuration: RumConfiguration\n) {\n const history: ClickActionIdHistory = new ValueHistory(ACTION_CONTEXT_TIME_OUT_DELAY)\n const stopObservable = new Observable()\n let currentClickChain: ClickChain | undefined\n\n lifeCycle.subscribe(LifeCycleEventType.SESSION_RENEWED, () => {\n history.reset()\n })\n\n lifeCycle.subscribe(LifeCycleEventType.VIEW_ENDED, stopClickChain)\n\n const { stop: stopActionEventsListener } = listenActionEvents<{\n clickActionBase: ClickActionBase\n hadActivityOnPointerDown: () => boolean\n }>(configuration, {\n onPointerDown: (pointerDownEvent) =>\n processPointerDown(configuration, lifeCycle, domMutationObservable, pointerDownEvent),\n onPointerUp: ({ clickActionBase, hadActivityOnPointerDown }, startEvent, getUserActivity) =>\n startClickAction(\n configuration,\n lifeCycle,\n domMutationObservable,\n history,\n stopObservable,\n appendClickToClickChain,\n clickActionBase,\n startEvent,\n getUserActivity,\n hadActivityOnPointerDown\n ),\n })\n\n const actionContexts: ActionContexts = {\n findActionId: (startTime?: RelativeTime) => history.findAll(startTime),\n }\n\n return {\n stop: () => {\n stopClickChain()\n stopObservable.notify()\n stopActionEventsListener()\n },\n actionContexts,\n }\n\n function appendClickToClickChain(click: Click) {\n if (!currentClickChain || !currentClickChain.tryAppend(click)) {\n const rageClick = click.clone()\n currentClickChain = createClickChain(click, (clicks) => {\n finalizeClicks(clicks, rageClick)\n })\n }\n }\n\n function stopClickChain() {\n if (currentClickChain) {\n currentClickChain.stop()\n }\n }\n}\n\nfunction processPointerDown(\n configuration: RumConfiguration,\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n pointerDownEvent: MouseEventOnElement\n) {\n const clickActionBase = computeClickActionBase(pointerDownEvent, configuration.actionNameAttribute)\n\n let hadActivityOnPointerDown = false\n\n waitPageActivityEnd(\n lifeCycle,\n domMutationObservable,\n configuration,\n (pageActivityEndEvent) => {\n hadActivityOnPointerDown = pageActivityEndEvent.hadActivity\n },\n // We don't care about the activity duration, we just want to know whether an activity did happen\n // within the \"validation delay\" or not. Limit the duration so the callback is called sooner.\n PAGE_ACTIVITY_VALIDATION_DELAY\n )\n\n return { clickActionBase, hadActivityOnPointerDown: () => hadActivityOnPointerDown }\n}\n\nfunction startClickAction(\n configuration: RumConfiguration,\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n history: ClickActionIdHistory,\n stopObservable: Observable,\n appendClickToClickChain: (click: Click) => void,\n clickActionBase: ClickActionBase,\n startEvent: MouseEventOnElement,\n getUserActivity: () => UserActivity,\n hadActivityOnPointerDown: () => boolean\n) {\n const click = newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent)\n appendClickToClickChain(click)\n\n const { stop: stopWaitPageActivityEnd } = waitPageActivityEnd(\n lifeCycle,\n domMutationObservable,\n configuration,\n (pageActivityEndEvent) => {\n if (pageActivityEndEvent.hadActivity && pageActivityEndEvent.end < click.startClocks.timeStamp) {\n // If the clock is looking weird, just discard the click\n click.discard()\n } else {\n if (pageActivityEndEvent.hadActivity) {\n click.stop(pageActivityEndEvent.end)\n } else if (hadActivityOnPointerDown()) {\n click.stop(\n // using the click start as activity end, so the click will have some activity but its\n // duration will be 0 (as the activity started before the click start)\n click.startClocks.timeStamp\n )\n } else {\n click.stop()\n }\n }\n },\n CLICK_ACTION_MAX_DURATION\n )\n\n const viewEndedSubscription = lifeCycle.subscribe(LifeCycleEventType.VIEW_ENDED, ({ endClocks }) => {\n click.stop(endClocks.timeStamp)\n })\n\n const stopSubscription = stopObservable.subscribe(() => {\n click.stop()\n })\n\n click.stopObservable.subscribe(() => {\n viewEndedSubscription.unsubscribe()\n stopWaitPageActivityEnd()\n stopSubscription.unsubscribe()\n })\n}\n\ntype ClickActionBase = Pick\n\nfunction computeClickActionBase(event: MouseEventOnElement, actionNameAttribute?: string): ClickActionBase {\n const rect = event.target.getBoundingClientRect()\n return {\n type: ActionType.CLICK,\n target: {\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n selector: getSelectorFromElement(event.target, actionNameAttribute),\n },\n position: {\n // Use clientX and Y because for SVG element offsetX and Y are relatives to the element\n x: Math.round(event.clientX - rect.left),\n y: Math.round(event.clientY - rect.top),\n },\n name: getActionNameFromElement(event.target, actionNameAttribute),\n }\n}\n\nconst enum ClickStatus {\n // Initial state, the click is still ongoing.\n ONGOING,\n // The click is no more ongoing but still needs to be validated or discarded.\n STOPPED,\n // Final state, the click has been stopped and validated or discarded.\n FINALIZED,\n}\n\nexport type Click = ReturnType\n\nfunction newClick(\n lifeCycle: LifeCycle,\n history: ClickActionIdHistory,\n getUserActivity: () => UserActivity,\n clickActionBase: ClickActionBase,\n startEvent: MouseEventOnElement\n) {\n const id = generateUUID()\n const startClocks = clocksNow()\n const historyEntry = history.add(id, startClocks.relative)\n const eventCountsSubscription = trackEventCounts({\n lifeCycle,\n isChildEvent: (event) =>\n event.action !== undefined &&\n (Array.isArray(event.action.id) ? includes(event.action.id, id) : event.action.id === id),\n })\n let status = ClickStatus.ONGOING\n let activityEndTime: undefined | TimeStamp\n const frustrationTypes: FrustrationType[] = []\n const stopObservable = new Observable()\n\n function stop(newActivityEndTime?: TimeStamp) {\n if (status !== ClickStatus.ONGOING) {\n return\n }\n activityEndTime = newActivityEndTime\n status = ClickStatus.STOPPED\n if (activityEndTime) {\n historyEntry.close(getRelativeTime(activityEndTime))\n } else {\n historyEntry.remove()\n }\n eventCountsSubscription.stop()\n stopObservable.notify()\n }\n\n return {\n event: startEvent,\n stop,\n stopObservable,\n\n get hasError() {\n return eventCountsSubscription.eventCounts.errorCount > 0\n },\n get hasPageActivity() {\n return activityEndTime !== undefined\n },\n getUserActivity,\n addFrustration: (frustrationType: FrustrationType) => {\n frustrationTypes.push(frustrationType)\n },\n startClocks,\n\n isStopped: () => status === ClickStatus.STOPPED || status === ClickStatus.FINALIZED,\n\n clone: () => newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent),\n\n validate: (domEvents?: Event[]) => {\n stop()\n if (status !== ClickStatus.STOPPED) {\n return\n }\n\n const { resourceCount, errorCount, longTaskCount } = eventCountsSubscription.eventCounts\n const clickAction: ClickAction = assign(\n {\n type: ActionType.CLICK as const,\n duration: activityEndTime && elapsed(startClocks.timeStamp, activityEndTime),\n startClocks,\n id,\n frustrationTypes,\n counts: {\n resourceCount,\n errorCount,\n longTaskCount,\n },\n events: domEvents ?? [startEvent],\n event: startEvent,\n },\n clickActionBase\n )\n lifeCycle.notify(LifeCycleEventType.AUTO_ACTION_COMPLETED, clickAction)\n status = ClickStatus.FINALIZED\n },\n\n discard: () => {\n stop()\n status = ClickStatus.FINALIZED\n },\n }\n}\n\nexport function finalizeClicks(clicks: Click[], rageClick: Click) {\n const { isRage } = computeFrustration(clicks, rageClick)\n if (isRage) {\n clicks.forEach((click) => click.discard())\n rageClick.stop(timeStampNow())\n rageClick.validate(clicks.map((click) => click.event))\n } else {\n rageClick.discard()\n clicks.forEach((click) => click.validate())\n }\n}\n","import type { ClocksState, Context, Observable } from '@datadog/browser-core'\nimport { noop, assign, combine, toServerDuration, generateUUID } from '@datadog/browser-core'\n\nimport type { RawRumActionEvent } from '../../rawRumEvent.types'\nimport { ActionType, RumEventType } from '../../rawRumEvent.types'\nimport type { LifeCycle, RawRumEventCollectedData } from '../lifeCycle'\nimport { LifeCycleEventType } from '../lifeCycle'\nimport type { RumConfiguration } from '../configuration'\nimport type { CommonContext } from '../contexts/commonContext'\nimport type { PageStateHistory } from '../contexts/pageStateHistory'\nimport type { ActionContexts, ClickAction } from './trackClickActions'\nimport { trackClickActions } from './trackClickActions'\n\nexport type { ActionContexts }\n\nexport interface CustomAction {\n type: ActionType.CUSTOM\n name: string\n startClocks: ClocksState\n context?: Context\n}\n\nexport type AutoAction = ClickAction\n\nexport function startActionCollection(\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n configuration: RumConfiguration,\n pageStateHistory: PageStateHistory\n) {\n lifeCycle.subscribe(LifeCycleEventType.AUTO_ACTION_COMPLETED, (action) =>\n lifeCycle.notify(LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, processAction(action, pageStateHistory))\n )\n\n let actionContexts: ActionContexts = { findActionId: noop as () => undefined }\n if (configuration.trackUserInteractions) {\n actionContexts = trackClickActions(lifeCycle, domMutationObservable, configuration).actionContexts\n }\n\n return {\n addAction: (action: CustomAction, savedCommonContext?: CommonContext) => {\n lifeCycle.notify(\n LifeCycleEventType.RAW_RUM_EVENT_COLLECTED,\n assign(\n {\n savedCommonContext,\n },\n processAction(action, pageStateHistory)\n )\n )\n },\n actionContexts,\n }\n}\n\nfunction processAction(\n action: AutoAction | CustomAction,\n pageStateHistory: PageStateHistory\n): RawRumEventCollectedData {\n const autoActionProperties = isAutoAction(action)\n ? {\n action: {\n id: action.id,\n loading_time: toServerDuration(action.duration),\n frustration: {\n type: action.frustrationTypes,\n },\n error: {\n count: action.counts.errorCount,\n },\n long_task: {\n count: action.counts.longTaskCount,\n },\n resource: {\n count: action.counts.resourceCount,\n },\n },\n _dd: {\n action: {\n target: action.target,\n position: action.position,\n },\n },\n }\n : undefined\n const customerContext = !isAutoAction(action) ? action.context : undefined\n const actionEvent: RawRumActionEvent = combine(\n {\n action: {\n id: generateUUID(),\n target: {\n name: action.name,\n },\n type: action.type,\n },\n date: action.startClocks.timeStamp,\n type: RumEventType.ACTION as const,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(action.startClocks.relative) },\n },\n autoActionProperties\n )\n\n return {\n customerContext,\n rawRumEvent: actionEvent,\n startTime: action.startClocks.relative,\n domainContext: isAutoAction(action) ? { events: action.events } : {},\n }\n}\n\nfunction isAutoAction(action: AutoAction | CustomAction): action is AutoAction {\n return action.type !== ActionType.CUSTOM\n}\n","import { instrumentMethodAndCallOriginal } from '../../tools/instrumentMethod'\nimport type { Observable } from '../../tools/observable'\nimport { clocksNow } from '../../tools/utils/timeUtils'\nimport type { StackTrace } from './computeStackTrace'\nimport { computeStackTrace, computeStackTraceFromOnErrorMessage } from './computeStackTrace'\nimport { computeRawError } from './error'\nimport type { RawError } from './error.types'\nimport { ErrorHandling, ErrorSource, NonErrorPrefix } from './error.types'\n\nexport type UnhandledErrorCallback = (stackTrace: StackTrace, originalError?: any) => any\n\nexport function trackRuntimeError(errorObservable: Observable) {\n const handleRuntimeError = (stackTrace: StackTrace, originalError?: any) => {\n const test = computeRawError({\n stackTrace,\n originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: NonErrorPrefix.UNCAUGHT,\n source: ErrorSource.SOURCE,\n handling: ErrorHandling.UNHANDLED,\n })\n errorObservable.notify(test)\n }\n const { stop: stopInstrumentingOnError } = instrumentOnError(handleRuntimeError)\n const { stop: stopInstrumentingOnUnhandledRejection } = instrumentUnhandledRejection(handleRuntimeError)\n\n return {\n stop: () => {\n stopInstrumentingOnError()\n stopInstrumentingOnUnhandledRejection()\n },\n }\n}\n\nexport function instrumentOnError(callback: UnhandledErrorCallback) {\n return instrumentMethodAndCallOriginal(window, 'onerror', {\n before(this: any, messageObj: unknown, url?: string, line?: number, column?: number, errorObj?: unknown) {\n let stackTrace\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj)\n } else {\n stackTrace = computeStackTraceFromOnErrorMessage(messageObj, url, line, column)\n }\n callback(stackTrace, errorObj ?? messageObj)\n },\n })\n}\n\nexport function instrumentUnhandledRejection(callback: UnhandledErrorCallback) {\n return instrumentMethodAndCallOriginal(window, 'onunhandledrejection', {\n before(e: PromiseRejectionEvent) {\n const reason = e.reason || 'Empty reason'\n const stack = computeStackTrace(reason)\n callback(stack, reason)\n },\n })\n}\n","import { createHandlingStack, formatErrorMessage, toStackTraceString, tryToGetFingerprint } from '../error/error'\nimport { mergeObservables, Observable } from '../../tools/observable'\nimport { ConsoleApiName, globalConsole } from '../../tools/display'\nimport { callMonitored } from '../../tools/monitor'\nimport { sanitize } from '../../tools/serialisation/sanitize'\nimport { find } from '../../tools/utils/polyfills'\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify'\nimport { computeStackTrace } from '../error/computeStackTrace'\n\nexport interface ConsoleLog {\n message: string\n api: ConsoleApiName\n stack?: string\n handlingStack?: string\n fingerprint?: string\n}\n\nlet consoleObservablesByApi: { [k in ConsoleApiName]?: Observable } = {}\n\nexport function initConsoleObservable(apis: ConsoleApiName[]) {\n const consoleObservables = apis.map((api) => {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api)\n }\n return consoleObservablesByApi[api]!\n })\n\n return mergeObservables(...consoleObservables)\n}\n\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {}\n}\n\nfunction createConsoleObservable(api: ConsoleApiName) {\n const observable = new Observable(() => {\n const originalConsoleApi = globalConsole[api]\n\n globalConsole[api] = (...params: unknown[]) => {\n originalConsoleApi.apply(console, params)\n const handlingStack = createHandlingStack()\n\n callMonitored(() => {\n observable.notify(buildConsoleLog(params, api, handlingStack))\n })\n }\n\n return () => {\n globalConsole[api] = originalConsoleApi\n }\n })\n\n return observable\n}\n\nfunction buildConsoleLog(params: unknown[], api: ConsoleApiName, handlingStack: string): ConsoleLog {\n const message = params.map((param) => formatConsoleParameters(param)).join(' ')\n let stack\n let fingerprint\n\n if (api === ConsoleApiName.error) {\n const firstErrorParam = find(params, (param: unknown): param is Error => param instanceof Error)\n stack = firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined\n fingerprint = tryToGetFingerprint(firstErrorParam)\n }\n\n return {\n api,\n message,\n stack,\n handlingStack,\n fingerprint,\n }\n}\n\nfunction formatConsoleParameters(param: unknown) {\n if (typeof param === 'string') {\n return sanitize(param)\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param))\n }\n return jsonStringify(sanitize(param), undefined, 2)\n}\n","import { toStackTraceString } from '../error/error'\nimport { monitor } from '../../tools/monitor'\nimport { mergeObservables, Observable } from '../../tools/observable'\nimport { addEventListener, DOM_EVENT } from '../../browser/addEventListener'\nimport { includes } from '../../tools/utils/polyfills'\nimport { safeTruncate } from '../../tools/utils/stringUtils'\nimport type { Configuration } from '../configuration'\nimport type { ReportType, InterventionReport, DeprecationReport } from './browser.types'\n\nexport const RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n} as const\n\nexport type RawReportType = (typeof RawReportType)[keyof typeof RawReportType]\n\nexport interface RawReport {\n type: RawReportType\n subtype: string\n message: string\n stack?: string\n}\n\nexport function initReportObservable(configuration: Configuration, apis: RawReportType[]) {\n const observables: Array> = []\n\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration))\n }\n\n const reportTypes = apis.filter((api: RawReportType): api is ReportType => api !== RawReportType.cspViolation)\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes))\n }\n\n return mergeObservables(...observables)\n}\n\nfunction createReportObservable(reportTypes: ReportType[]) {\n const observable = new Observable(() => {\n if (!window.ReportingObserver) {\n return\n }\n\n const handleReports = monitor((reports: Array, _: ReportingObserver) =>\n reports.forEach((report) => {\n observable.notify(buildRawReportFromReport(report))\n })\n ) as ReportingObserverCallback\n\n const observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n })\n\n observer.observe()\n return () => {\n observer.disconnect()\n }\n })\n\n return observable\n}\n\nfunction createCspViolationReportObservable(configuration: Configuration) {\n const observable = new Observable(() => {\n const { stop } = addEventListener(configuration, document, DOM_EVENT.SECURITY_POLICY_VIOLATION, (event) => {\n observable.notify(buildRawReportFromCspViolation(event))\n })\n\n return stop\n })\n return observable\n}\n\nfunction buildRawReportFromReport({ type, body }: DeprecationReport | InterventionReport): RawReport {\n return {\n type,\n subtype: body.id,\n message: `${type}: ${body.message}`,\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n }\n}\n\nfunction buildRawReportFromCspViolation(event: SecurityPolicyViolationEvent): RawReport {\n const type = RawReportType.cspViolation\n const message = `'${event.blockedURI}' blocked by '${event.effectiveDirective}' directive`\n return {\n type: RawReportType.cspViolation,\n subtype: event.effectiveDirective,\n message: `${type}: ${message}`,\n stack: buildStack(\n event.effectiveDirective,\n event.originalPolicy\n ? `${message} of the policy \"${safeTruncate(event.originalPolicy, 100, '...')}\"`\n : 'no policy',\n event.sourceFile,\n event.lineNumber,\n event.columnNumber\n ),\n }\n}\n\nfunction buildStack(\n name: string,\n message: string,\n sourceFile: string | null,\n lineNumber: number | null,\n columnNumber: number | null\n): string | undefined {\n return sourceFile\n ? toStackTraceString({\n name,\n message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber ?? undefined,\n column: columnNumber ?? undefined,\n },\n ],\n })\n : undefined\n}\n","import type { Context, RawError, ClocksState } from '@datadog/browser-core'\nimport {\n isEmptyObject,\n assign,\n ErrorSource,\n generateUUID,\n computeRawError,\n ErrorHandling,\n computeStackTrace,\n Observable,\n trackRuntimeError,\n NonErrorPrefix,\n} from '@datadog/browser-core'\nimport type { RumConfiguration } from '../configuration'\nimport type { RawRumErrorEvent } from '../../rawRumEvent.types'\nimport { RumEventType } from '../../rawRumEvent.types'\nimport type { LifeCycle, RawRumEventCollectedData } from '../lifeCycle'\nimport { LifeCycleEventType } from '../lifeCycle'\nimport type { FeatureFlagContexts } from '../contexts/featureFlagContext'\nimport type { CommonContext } from '../contexts/commonContext'\nimport type { PageStateHistory } from '../contexts/pageStateHistory'\nimport { trackConsoleError } from './trackConsoleError'\nimport { trackReportError } from './trackReportError'\n\nexport interface ProvidedError {\n startClocks: ClocksState\n error: unknown\n context?: Context\n handlingStack: string\n}\n\nexport function startErrorCollection(\n lifeCycle: LifeCycle,\n configuration: RumConfiguration,\n pageStateHistory: PageStateHistory,\n featureFlagContexts: FeatureFlagContexts\n) {\n const errorObservable = new Observable()\n\n trackConsoleError(errorObservable)\n trackRuntimeError(errorObservable)\n trackReportError(configuration, errorObservable)\n\n errorObservable.subscribe((error) => lifeCycle.notify(LifeCycleEventType.RAW_ERROR_COLLECTED, { error }))\n\n return doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts)\n}\n\nexport function doStartErrorCollection(\n lifeCycle: LifeCycle,\n pageStateHistory: PageStateHistory,\n featureFlagContexts: FeatureFlagContexts\n) {\n lifeCycle.subscribe(LifeCycleEventType.RAW_ERROR_COLLECTED, ({ error, customerContext, savedCommonContext }) => {\n lifeCycle.notify(\n LifeCycleEventType.RAW_RUM_EVENT_COLLECTED,\n assign(\n {\n customerContext,\n savedCommonContext,\n },\n processError(error, pageStateHistory, featureFlagContexts)\n )\n )\n })\n\n return {\n addError: (\n { error, handlingStack, startClocks, context: customerContext }: ProvidedError,\n savedCommonContext?: CommonContext\n ) => {\n const stackTrace = error instanceof Error ? computeStackTrace(error) : undefined\n const rawError = computeRawError({\n stackTrace,\n originalError: error,\n handlingStack,\n startClocks,\n nonErrorPrefix: NonErrorPrefix.PROVIDED,\n source: ErrorSource.CUSTOM,\n handling: ErrorHandling.HANDLED,\n })\n\n lifeCycle.notify(LifeCycleEventType.RAW_ERROR_COLLECTED, {\n customerContext,\n savedCommonContext,\n error: rawError,\n })\n },\n }\n}\n\nfunction processError(\n error: RawError,\n pageStateHistory: PageStateHistory,\n featureFlagContexts: FeatureFlagContexts\n): RawRumEventCollectedData {\n const rawRumEvent: RawRumErrorEvent = {\n date: error.startClocks.timeStamp,\n error: {\n id: generateUUID(),\n message: error.message,\n source: error.source,\n stack: error.stack,\n handling_stack: error.handlingStack,\n type: error.type,\n handling: error.handling,\n causes: error.causes,\n source_type: 'browser',\n fingerprint: error.fingerprint,\n },\n type: RumEventType.ERROR as const,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(error.startClocks.relative) },\n }\n\n const featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(error.startClocks.relative)\n if (featureFlagContext && !isEmptyObject(featureFlagContext)) {\n rawRumEvent.feature_flags = featureFlagContext\n }\n\n return {\n rawRumEvent,\n startTime: error.startClocks.relative,\n domainContext: {\n error: error.originalError,\n },\n }\n}\n","import type { Observable, RawError } from '@datadog/browser-core'\nimport { clocksNow, ErrorHandling, initConsoleObservable, ErrorSource, ConsoleApiName } from '@datadog/browser-core'\n\nexport function trackConsoleError(errorObservable: Observable) {\n const subscription = initConsoleObservable([ConsoleApiName.error]).subscribe((consoleError) =>\n errorObservable.notify({\n startClocks: clocksNow(),\n message: consoleError.message,\n stack: consoleError.stack,\n fingerprint: consoleError.fingerprint,\n source: ErrorSource.CONSOLE,\n handling: ErrorHandling.HANDLED,\n handlingStack: consoleError.handlingStack,\n })\n )\n\n return {\n stop: () => {\n subscription.unsubscribe()\n },\n }\n}\n","import type { Observable, RawError } from '@datadog/browser-core'\nimport { clocksNow, ErrorHandling, ErrorSource, initReportObservable, RawReportType } from '@datadog/browser-core'\nimport type { RumConfiguration } from '../configuration'\n\nexport function trackReportError(configuration: RumConfiguration, errorObservable: Observable) {\n const subscription = initReportObservable(configuration, [\n RawReportType.cspViolation,\n RawReportType.intervention,\n ]).subscribe((reportError) =>\n errorObservable.notify({\n startClocks: clocksNow(),\n message: reportError.message,\n stack: reportError.stack,\n type: reportError.subtype,\n source: ErrorSource.REPORT,\n handling: ErrorHandling.UNHANDLED,\n })\n )\n\n return {\n stop: () => {\n subscription.unsubscribe()\n },\n }\n}\n","import type { Duration, RelativeTime } from '@datadog/browser-core'\nimport { addDuration } from '@datadog/browser-core'\nimport type { RumPerformanceResourceTiming } from '../../browser/performanceCollection'\nimport type { RequestCompleteEvent } from '../requestCollection'\nimport { toValidEntry } from './resourceUtils'\n\ninterface Timing {\n startTime: RelativeTime\n duration: Duration\n}\n\n/**\n * Look for corresponding timing in resource timing buffer\n *\n * Observations:\n * - Timing (start, end) are nested inside the request (start, end)\n * - Some timing can be not exactly nested, being off by < 1 ms\n *\n * Strategy:\n * - from valid nested entries (with 1 ms error margin)\n * - if a single timing match, return the timing\n * - otherwise we can't decide, return undefined\n */\nexport function matchRequestTiming(request: RequestCompleteEvent) {\n if (!performance || !('getEntriesByName' in performance)) {\n return\n }\n const sameNameEntries = performance.getEntriesByName(request.url, 'resource')\n\n if (!sameNameEntries.length || !('toJSON' in sameNameEntries[0])) {\n return\n }\n\n const candidates = sameNameEntries\n .map((entry) => entry.toJSON() as RumPerformanceResourceTiming)\n .filter(toValidEntry)\n .filter((entry) =>\n isBetween(\n entry,\n request.startClocks.relative,\n endTime({ startTime: request.startClocks.relative, duration: request.duration })\n )\n )\n\n if (candidates.length === 1) {\n return candidates[0]\n }\n\n return\n}\n\nfunction endTime(timing: Timing) {\n return addDuration(timing.startTime, timing.duration)\n}\n\nfunction isBetween(timing: Timing, start: RelativeTime, end: RelativeTime) {\n const errorMargin = 1 as Duration\n return timing.startTime >= start - errorMargin && endTime(timing) <= addDuration(end, errorMargin)\n}\n","import {\n combine,\n generateUUID,\n RequestType,\n ResourceType,\n toServerDuration,\n relativeToClocks,\n assign,\n isNumber,\n isExperimentalFeatureEnabled,\n ExperimentalFeature,\n} from '@datadog/browser-core'\nimport type { ClocksState, Duration } from '@datadog/browser-core'\nimport type { RumConfiguration } from '../configuration'\nimport type { RumPerformanceResourceTiming } from '../../browser/performanceCollection'\nimport { RumPerformanceEntryType } from '../../browser/performanceCollection'\nimport type { RumXhrResourceEventDomainContext, RumFetchResourceEventDomainContext } from '../../domainContext.types'\nimport type { RawRumResourceEvent } from '../../rawRumEvent.types'\nimport { RumEventType } from '../../rawRumEvent.types'\nimport type { LifeCycle, RawRumEventCollectedData } from '../lifeCycle'\nimport { LifeCycleEventType } from '../lifeCycle'\nimport type { RequestCompleteEvent } from '../requestCollection'\nimport type { RumSessionManager } from '../rumSessionManager'\nimport type { PageStateHistory } from '../contexts/pageStateHistory'\nimport { PageState } from '../contexts/pageStateHistory'\nimport { matchRequestTiming } from './matchRequestTiming'\nimport {\n computePerformanceResourceDetails,\n computePerformanceResourceDuration,\n computeResourceKind,\n computeSize,\n isRequestKind,\n} from './resourceUtils'\n\nexport function startResourceCollection(\n lifeCycle: LifeCycle,\n configuration: RumConfiguration,\n sessionManager: RumSessionManager,\n pageStateHistory: PageStateHistory\n) {\n lifeCycle.subscribe(LifeCycleEventType.REQUEST_COMPLETED, (request: RequestCompleteEvent) => {\n const rawEvent = processRequest(request, configuration, sessionManager, pageStateHistory)\n if (rawEvent) {\n lifeCycle.notify(LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, rawEvent)\n }\n })\n\n lifeCycle.subscribe(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, (entries) => {\n for (const entry of entries) {\n if (entry.entryType === RumPerformanceEntryType.RESOURCE && !isRequestKind(entry)) {\n const rawEvent = processResourceEntry(entry, configuration, sessionManager, pageStateHistory)\n if (rawEvent) {\n lifeCycle.notify(LifeCycleEventType.RAW_RUM_EVENT_COLLECTED, rawEvent)\n }\n }\n }\n })\n}\n\nfunction processRequest(\n request: RequestCompleteEvent,\n configuration: RumConfiguration,\n sessionManager: RumSessionManager,\n pageStateHistory: PageStateHistory\n): RawRumEventCollectedData | undefined {\n const matchingTiming = matchRequestTiming(request)\n const startClocks = matchingTiming ? relativeToClocks(matchingTiming.startTime) : request.startClocks\n const shouldIndex = shouldIndexResource(configuration, sessionManager, startClocks)\n const tracingInfo = computeRequestTracingInfo(request, configuration)\n if (!shouldIndex && !tracingInfo) {\n return\n }\n\n const type = request.type === RequestType.XHR ? ResourceType.XHR : ResourceType.FETCH\n\n const correspondingTimingOverrides = matchingTiming ? computePerformanceEntryMetrics(matchingTiming) : undefined\n\n const duration = computeRequestDuration(pageStateHistory, startClocks, request.duration)\n const pageStateInfo = computePageStateInfo(\n pageStateHistory,\n startClocks,\n matchingTiming?.duration ?? request.duration\n )\n\n const resourceEvent = combine(\n {\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type,\n duration,\n method: request.method,\n status_code: request.status,\n url: request.url,\n },\n type: RumEventType.RESOURCE as const,\n _dd: {\n discarded: !shouldIndex,\n },\n },\n tracingInfo,\n correspondingTimingOverrides,\n pageStateInfo\n )\n\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: matchingTiming,\n xhr: request.xhr,\n response: request.response,\n requestInput: request.input,\n requestInit: request.init,\n error: request.error,\n } as RumFetchResourceEventDomainContext | RumXhrResourceEventDomainContext,\n }\n}\n\nfunction processResourceEntry(\n entry: RumPerformanceResourceTiming,\n configuration: RumConfiguration,\n sessionManager: RumSessionManager,\n pageStateHistory: PageStateHistory\n): RawRumEventCollectedData | undefined {\n const startClocks = relativeToClocks(entry.startTime)\n const shouldIndex = shouldIndexResource(configuration, sessionManager, startClocks)\n const tracingInfo = computeEntryTracingInfo(entry, configuration)\n if (!shouldIndex && !tracingInfo) {\n return\n }\n\n const type = computeResourceKind(entry)\n const entryMetrics = computePerformanceEntryMetrics(entry)\n\n const pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, entry.duration)\n\n const resourceEvent = combine(\n {\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type,\n url: entry.name,\n },\n type: RumEventType.RESOURCE as const,\n _dd: {\n discarded: !shouldIndex,\n },\n },\n tracingInfo,\n entryMetrics,\n pageStateInfo\n )\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: entry,\n },\n }\n}\n\nfunction shouldIndexResource(\n configuration: RumConfiguration,\n sessionManager: RumSessionManager,\n resourceStart: ClocksState\n) {\n return configuration.trackResources && sessionManager.findTrackedSession(resourceStart.relative)\n}\n\nfunction computePerformanceEntryMetrics(timing: RumPerformanceResourceTiming) {\n return {\n resource: assign(\n {\n duration: computePerformanceResourceDuration(timing),\n size: computeSize(timing),\n },\n computePerformanceResourceDetails(timing)\n ),\n }\n}\n\nfunction computeRequestTracingInfo(request: RequestCompleteEvent, configuration: RumConfiguration) {\n const hasBeenTraced = request.traceSampled && request.traceId && request.spanId\n if (!hasBeenTraced) {\n return undefined\n }\n return {\n _dd: {\n span_id: request.spanId!.toDecimalString(),\n trace_id: request.traceId!.toDecimalString(),\n rule_psr: getRulePsr(configuration),\n },\n }\n}\n\nfunction computeEntryTracingInfo(entry: RumPerformanceResourceTiming, configuration: RumConfiguration) {\n const hasBeenTraced = entry.traceId\n if (!hasBeenTraced) {\n return undefined\n }\n return {\n _dd: {\n trace_id: entry.traceId,\n rule_psr: getRulePsr(configuration),\n },\n }\n}\n\n/**\n * @returns number between 0 and 1 which represents trace sample rate\n */\nfunction getRulePsr(configuration: RumConfiguration) {\n return isNumber(configuration.traceSampleRate) ? configuration.traceSampleRate / 100 : undefined\n}\n\nfunction computePageStateInfo(pageStateHistory: PageStateHistory, startClocks: ClocksState, duration: Duration) {\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.RESOURCE_PAGE_STATES)) {\n return\n }\n\n return {\n _dd: {\n page_states: pageStateHistory.findAll(startClocks.relative, duration),\n page_was_discarded: String((document as any).wasDiscarded),\n },\n }\n}\n\nfunction computeRequestDuration(pageStateHistory: PageStateHistory, startClocks: ClocksState, duration: Duration) {\n const requestCrossedFrozenState = pageStateHistory\n .findAll(startClocks.relative, duration)\n ?.some((pageState) => pageState.state === PageState.FROZEN)\n\n return !requestCrossedFrozenState ? toServerDuration(duration) : undefined\n}\n","import type { RelativeTime } from '@datadog/browser-core'\nimport { ONE_MINUTE, find } from '@datadog/browser-core'\nimport type { LifeCycle } from '../../lifeCycle'\nimport { LifeCycleEventType } from '../../lifeCycle'\nimport type { RumPerformancePaintTiming } from '../../../browser/performanceCollection'\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection'\nimport type { FirstHidden } from './trackFirstHidden'\n\n// Discard FCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport const FCP_MAXIMUM_DELAY = 10 * ONE_MINUTE\n\nexport function trackFirstContentfulPaint(\n lifeCycle: LifeCycle,\n firstHidden: FirstHidden,\n callback: (fcpTiming: RelativeTime) => void\n) {\n const { unsubscribe: unsubscribeLifeCycle } = lifeCycle.subscribe(\n LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED,\n (entries) => {\n const fcpEntry = find(\n entries,\n (entry): entry is RumPerformancePaintTiming =>\n entry.entryType === RumPerformanceEntryType.PAINT &&\n entry.name === 'first-contentful-paint' &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < FCP_MAXIMUM_DELAY\n )\n if (fcpEntry) {\n callback(fcpEntry.startTime)\n }\n }\n )\n return {\n stop: unsubscribeLifeCycle,\n }\n}\n","import type { RelativeTime } from '@datadog/browser-core'\nimport {\n DOM_EVENT,\n ExperimentalFeature,\n ONE_MINUTE,\n addEventListeners,\n findLast,\n isExperimentalFeatureEnabled,\n} from '@datadog/browser-core'\nimport { LifeCycleEventType } from '../../lifeCycle'\nimport type { LifeCycle } from '../../lifeCycle'\nimport type { RumConfiguration } from '../../configuration'\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection'\nimport type { RumLargestContentfulPaintTiming } from '../../../browser/performanceCollection'\nimport { getSelectorFromElement } from '../../getSelectorFromElement'\nimport type { FirstHidden } from './trackFirstHidden'\n\n// Discard LCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport const LCP_MAXIMUM_DELAY = 10 * ONE_MINUTE\n\nexport interface LargestContentfulPaint {\n value: RelativeTime\n targetSelector?: string\n}\n/**\n * Track the largest contentful paint (LCP) occurring during the initial View. This can yield\n * multiple values, only the most recent one should be used.\n * Documentation: https://web.dev/lcp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/onLCP.ts\n */\nexport function trackLargestContentfulPaint(\n lifeCycle: LifeCycle,\n configuration: RumConfiguration,\n firstHidden: FirstHidden,\n eventTarget: Window,\n callback: (largestContentfulPaint: LargestContentfulPaint) => void\n) {\n // Ignore entries that come after the first user interaction. According to the documentation, the\n // browser should not send largest-contentful-paint entries after a user interact with the page,\n // but the web-vitals reference implementation uses this as a safeguard.\n let firstInteractionTimestamp = Infinity\n const { stop: stopEventListener } = addEventListeners(\n configuration,\n eventTarget,\n [DOM_EVENT.POINTER_DOWN, DOM_EVENT.KEY_DOWN],\n (event) => {\n firstInteractionTimestamp = event.timeStamp\n },\n { capture: true, once: true }\n )\n\n const { unsubscribe: unsubscribeLifeCycle } = lifeCycle.subscribe(\n LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED,\n (entries) => {\n const lcpEntry = findLast(\n entries,\n (entry): entry is RumLargestContentfulPaintTiming =>\n entry.entryType === RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT &&\n entry.startTime < firstInteractionTimestamp &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < LCP_MAXIMUM_DELAY\n )\n\n if (lcpEntry) {\n let lcpTargetSelector\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) && lcpEntry.element) {\n lcpTargetSelector = getSelectorFromElement(lcpEntry.element, configuration.actionNameAttribute)\n }\n\n callback({\n value: lcpEntry.startTime,\n targetSelector: lcpTargetSelector,\n })\n }\n }\n )\n\n return {\n stop: () => {\n stopEventListener()\n unsubscribeLifeCycle()\n },\n }\n}\n","import type { Duration } from '@datadog/browser-core'\nimport type { RumConfiguration } from '../../configuration'\nimport type { LifeCycle } from '../../lifeCycle'\nimport { trackFirstContentfulPaint } from './trackFirstContentfulPaint'\nimport type { FirstInput } from './trackFirstInput'\nimport { trackFirstInput } from './trackFirstInput'\nimport type { NavigationTimings } from './trackNavigationTimings'\nimport { trackNavigationTimings } from './trackNavigationTimings'\nimport type { LargestContentfulPaint } from './trackLargestContentfulPaint'\nimport { trackLargestContentfulPaint } from './trackLargestContentfulPaint'\nimport { trackFirstHidden } from './trackFirstHidden'\n\nexport interface InitialViewMetrics {\n firstContentfulPaint?: Duration\n navigationTimings?: NavigationTimings\n largestContentfulPaint?: LargestContentfulPaint\n firstInput?: FirstInput\n}\n\nexport function trackInitialViewMetrics(\n lifeCycle: LifeCycle,\n configuration: RumConfiguration,\n setLoadEvent: (loadEnd: Duration) => void,\n scheduleViewUpdate: () => void\n) {\n const initialViewMetrics: InitialViewMetrics = {}\n\n const { stop: stopNavigationTracking } = trackNavigationTimings(lifeCycle, (navigationTimings) => {\n setLoadEvent(navigationTimings.loadEvent)\n initialViewMetrics.navigationTimings = navigationTimings\n scheduleViewUpdate()\n })\n\n const firstHidden = trackFirstHidden(configuration)\n const { stop: stopFCPTracking } = trackFirstContentfulPaint(lifeCycle, firstHidden, (firstContentfulPaint) => {\n initialViewMetrics.firstContentfulPaint = firstContentfulPaint\n scheduleViewUpdate()\n })\n\n const { stop: stopLCPTracking } = trackLargestContentfulPaint(\n lifeCycle,\n configuration,\n firstHidden,\n window,\n (largestContentfulPaint) => {\n initialViewMetrics.largestContentfulPaint = largestContentfulPaint\n scheduleViewUpdate()\n }\n )\n\n const { stop: stopFIDTracking } = trackFirstInput(lifeCycle, configuration, firstHidden, (firstInput) => {\n initialViewMetrics.firstInput = firstInput\n scheduleViewUpdate()\n })\n\n function stop() {\n stopNavigationTracking()\n stopFCPTracking()\n stopLCPTracking()\n stopFIDTracking()\n firstHidden.stop()\n }\n\n return {\n stop,\n initialViewMetrics,\n }\n}\n","import type { Duration } from '@datadog/browser-core'\nimport { relativeNow } from '@datadog/browser-core'\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection'\nimport type { LifeCycle } from '../../lifeCycle'\nimport { LifeCycleEventType } from '../../lifeCycle'\n\nexport interface NavigationTimings {\n domComplete: Duration\n domContentLoaded: Duration\n domInteractive: Duration\n loadEvent: Duration\n firstByte: Duration | undefined\n}\n\nexport function trackNavigationTimings(lifeCycle: LifeCycle, callback: (timings: NavigationTimings) => void) {\n const { unsubscribe: stop } = lifeCycle.subscribe(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, (entries) => {\n for (const entry of entries) {\n if (entry.entryType === RumPerformanceEntryType.NAVIGATION) {\n callback({\n domComplete: entry.domComplete,\n domContentLoaded: entry.domContentLoadedEventEnd,\n domInteractive: entry.domInteractive,\n loadEvent: entry.loadEventEnd,\n // In some cases the value reported is negative or is larger\n // than the current page time. Ignore these cases:\n // https://github.com/GoogleChrome/web-vitals/issues/137\n // https://github.com/GoogleChrome/web-vitals/issues/162\n firstByte: entry.responseStart >= 0 && entry.responseStart <= relativeNow() ? entry.responseStart : undefined,\n })\n }\n }\n })\n\n return { stop }\n}\n","import type { RelativeTime } from '@datadog/browser-core'\nimport { addEventListeners, DOM_EVENT } from '@datadog/browser-core'\nimport type { RumConfiguration } from '../../configuration'\n\nexport type FirstHidden = ReturnType\n\nexport function trackFirstHidden(configuration: RumConfiguration, eventTarget: Window = window) {\n let timeStamp: RelativeTime\n let stopListeners: () => void | undefined\n\n if (document.visibilityState === 'hidden') {\n timeStamp = 0 as RelativeTime\n } else {\n timeStamp = Infinity as RelativeTime\n ;({ stop: stopListeners } = addEventListeners(\n configuration,\n eventTarget,\n [DOM_EVENT.PAGE_HIDE, DOM_EVENT.VISIBILITY_CHANGE],\n (event) => {\n if (event.type === DOM_EVENT.PAGE_HIDE || document.visibilityState === 'hidden') {\n timeStamp = event.timeStamp as RelativeTime\n stopListeners()\n }\n },\n { capture: true }\n ))\n }\n\n return {\n get timeStamp() {\n return timeStamp\n },\n stop() {\n stopListeners?.()\n },\n }\n}\n","import type { Duration, RelativeTime } from '@datadog/browser-core'\nimport { elapsed, find, ExperimentalFeature, isExperimentalFeatureEnabled } from '@datadog/browser-core'\nimport { isElementNode } from '../../../browser/htmlDomUtils'\nimport type { RumConfiguration } from '../../configuration'\nimport type { LifeCycle } from '../../lifeCycle'\nimport { LifeCycleEventType } from '../../lifeCycle'\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection'\nimport type { RumFirstInputTiming } from '../../../browser/performanceCollection'\nimport { getSelectorFromElement } from '../../getSelectorFromElement'\nimport type { FirstHidden } from './trackFirstHidden'\n\nexport interface FirstInput {\n delay: Duration\n time: RelativeTime\n targetSelector?: string\n}\n\n/**\n * Track the first input occurring during the initial View to return:\n * - First Input Delay\n * - First Input Time\n * Callback is called at most one time.\n * Documentation: https://web.dev/fid/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getFID.ts\n */\nexport function trackFirstInput(\n lifeCycle: LifeCycle,\n configuration: RumConfiguration,\n firstHidden: FirstHidden,\n callback: (firstInput: FirstInput) => void\n) {\n const { unsubscribe: unsubscribeLifeCycle } = lifeCycle.subscribe(\n LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED,\n (entries) => {\n const firstInputEntry = find(\n entries,\n (entry): entry is RumFirstInputTiming =>\n entry.entryType === RumPerformanceEntryType.FIRST_INPUT && entry.startTime < firstHidden.timeStamp\n )\n if (firstInputEntry) {\n const firstInputDelay = elapsed(firstInputEntry.startTime, firstInputEntry.processingStart)\n let firstInputTargetSelector\n\n if (\n isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) &&\n firstInputEntry.target &&\n isElementNode(firstInputEntry.target)\n ) {\n firstInputTargetSelector = getSelectorFromElement(firstInputEntry.target, configuration.actionNameAttribute)\n }\n\n callback({\n // Ensure firstInputDelay to be positive, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1185815\n delay: firstInputDelay >= 0 ? firstInputDelay : (0 as Duration),\n time: firstInputEntry.startTime,\n targetSelector: firstInputTargetSelector,\n })\n }\n }\n )\n\n return {\n stop: unsubscribeLifeCycle,\n }\n}\n","import {\n round,\n type RelativeTime,\n find,\n ONE_SECOND,\n isExperimentalFeatureEnabled,\n ExperimentalFeature,\n noop,\n addTelemetryDebug,\n relativeNow,\n} from '@datadog/browser-core'\nimport { isElementNode } from '../../../browser/htmlDomUtils'\nimport type { LifeCycle } from '../../lifeCycle'\nimport { LifeCycleEventType } from '../../lifeCycle'\nimport type { RumLayoutShiftTiming } from '../../../browser/performanceCollection'\nimport { supportPerformanceTimingEvent, RumPerformanceEntryType } from '../../../browser/performanceCollection'\nimport { getSelectorFromElement } from '../../getSelectorFromElement'\nimport type { RumConfiguration } from '../../configuration'\n\nexport interface CumulativeLayoutShift {\n value: number\n targetSelector?: string\n}\n\n/**\n * Track the cumulative layout shifts (CLS).\n * Layout shifts are grouped into session windows.\n * The minimum gap between session windows is 1 second.\n * The maximum duration of a session window is 5 second.\n * The session window layout shift value is the sum of layout shifts inside it.\n * The CLS value is the max of session windows values.\n *\n * This yields a new value whenever the CLS value is updated (a higher session window value is computed).\n *\n * See isLayoutShiftSupported to check for browser support.\n *\n * Documentation:\n * https://web.dev/cls/\n * https://web.dev/evolving-cls/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getCLS.ts\n */\nexport function trackCumulativeLayoutShift(\n configuration: RumConfiguration,\n lifeCycle: LifeCycle,\n callback: (cumulativeLayoutShift: CumulativeLayoutShift) => void\n) {\n if (!isLayoutShiftSupported()) {\n return {\n stop: noop,\n }\n }\n\n let maxClsValue = 0\n\n // if no layout shift happen the value should be reported as 0\n callback({\n value: 0,\n })\n\n const window = slidingSessionWindow()\n let selectorComputationTelemetrySent = false\n const { unsubscribe: stop } = lifeCycle.subscribe(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, (entries) => {\n const shiftEntries = entries.filter(\n (e) => e.entryType === RumPerformanceEntryType.LAYOUT_SHIFT && !e.hadRecentInput\n )\n for (const entry of shiftEntries) {\n if (entry.entryType === RumPerformanceEntryType.LAYOUT_SHIFT && !entry.hadRecentInput) {\n window.update(entry, shiftEntries.length)\n\n if (window.value() > maxClsValue) {\n maxClsValue = window.value()\n const cls = round(maxClsValue, 4)\n const clsTarget = window.largestLayoutShiftTarget()\n let cslTargetSelector\n\n if (\n isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) &&\n clsTarget &&\n clsTarget.parentElement\n ) {\n const selectorComputationStart = relativeNow()\n cslTargetSelector = getSelectorFromElement(clsTarget, configuration.actionNameAttribute)\n const selectorComputationEnd = relativeNow()\n\n if (!selectorComputationTelemetrySent) {\n addTelemetryDebug('CLS target selector computation time', {\n duration: selectorComputationEnd - selectorComputationStart,\n selector: cslTargetSelector,\n })\n selectorComputationTelemetrySent = true\n }\n }\n\n callback({\n value: cls,\n targetSelector: cslTargetSelector,\n })\n }\n }\n }\n })\n\n return {\n stop,\n }\n}\n\nlet maxTargetUpdateTelemetry = 5\n\nfunction slidingSessionWindow() {\n let value = 0\n let startTime: RelativeTime\n let endTime: RelativeTime\n\n let largestLayoutShift = 0\n let largestLayoutShiftTarget: HTMLElement | undefined\n let largestLayoutShiftTime: RelativeTime\n let targetUpdates: RelativeTime[] = []\n let maxEntriesAtOnceCount = 0\n let updateCount = 0\n return {\n update: (entry: RumLayoutShiftTiming, entriesAtOnceCount: number) => {\n const shouldCreateNewWindow =\n startTime === undefined ||\n entry.startTime - endTime >= ONE_SECOND ||\n entry.startTime - startTime >= 5 * ONE_SECOND\n\n maxEntriesAtOnceCount = Math.max(maxEntriesAtOnceCount, entriesAtOnceCount)\n updateCount++\n if (shouldCreateNewWindow) {\n startTime = endTime = entry.startTime\n if (startTime !== undefined && maxTargetUpdateTelemetry) {\n maxTargetUpdateTelemetry--\n addTelemetryDebug('CLS window', {\n targetUpdates,\n targetUpdatesCount: targetUpdates.length,\n maxEntriesAtOnceCount,\n updateCount,\n })\n }\n value = entry.value\n largestLayoutShift = 0\n largestLayoutShiftTarget = undefined\n maxEntriesAtOnceCount = 0\n updateCount = 0\n targetUpdates = []\n } else {\n value += entry.value\n endTime = entry.startTime\n }\n\n if (entry.value > largestLayoutShift) {\n largestLayoutShift = entry.value\n largestLayoutShiftTime = entry.startTime\n if (entry.sources?.length) {\n targetUpdates.push(relativeNow())\n largestLayoutShiftTarget = find(\n entry.sources,\n (s): s is { node: HTMLElement } => !!s.node && isElementNode(s.node)\n )?.node\n } else {\n largestLayoutShiftTarget = undefined\n }\n }\n },\n value: () => value,\n largestLayoutShiftTarget: () => largestLayoutShiftTarget,\n largestLayoutShiftTime: () => largestLayoutShiftTime,\n }\n}\n\n/**\n * Check whether `layout-shift` is supported by the browser.\n */\nexport function isLayoutShiftSupported() {\n return supportPerformanceTimingEvent(RumPerformanceEntryType.LAYOUT_SHIFT)\n}\n","/**\n * performance.interactionCount polyfill\n *\n * The interactionCount is an integer which counts the total number of distinct user interactions,\n * for which there was a unique interactionId.\n *\n * The interactionCount polyfill is an estimate based on a convention specific to Chrome. Cf: https://github.com/GoogleChrome/web-vitals/pull/213\n * This is currently not an issue as the polyfill is only used for INP which is currently only supported on Chrome.\n * Hopefully when/if other browsers will support INP, they will also implement performance.interactionCount at the same time, so we won't need that polyfill.\n *\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/lib/polyfills/interactionCountPolyfill.ts\n */\n\nimport { monitor } from '@datadog/browser-core'\nimport type {\n BrowserWindow,\n RumPerformanceEventTiming,\n RumPerformanceObserver,\n} from '../../../browser/performanceCollection'\n\nlet observer: RumPerformanceObserver | undefined\n\nlet interactionCountEstimate = 0\nlet minKnownInteractionId = Infinity\nlet maxKnownInteractionId = 0\n\nexport function initInteractionCountPolyfill() {\n if ('interactionCount' in performance || observer) {\n return\n }\n\n observer = new (window as BrowserWindow).PerformanceObserver(\n monitor((entries: PerformanceObserverEntryList) => {\n entries.getEntries().forEach((e) => {\n const entry = e as unknown as RumPerformanceEventTiming\n\n if (entry.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, entry.interactionId)\n maxKnownInteractionId = Math.max(maxKnownInteractionId, entry.interactionId)\n\n interactionCountEstimate = (maxKnownInteractionId - minKnownInteractionId) / 7 + 1\n }\n })\n })\n )\n\n observer.observe({ type: 'event', buffered: true, durationThreshold: 0 })\n}\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport const getInteractionCount = () =>\n observer ? interactionCountEstimate : (window as BrowserWindow).performance.interactionCount! || 0\n","import { Observable, throttle, addEventListener, DOM_EVENT } from '@datadog/browser-core'\nimport type { RumConfiguration } from '../domain/configuration'\n\nexport interface ViewportDimension {\n height: number\n width: number\n}\n\nlet viewportObservable: Observable | undefined\n\nexport function initViewportObservable(configuration: RumConfiguration) {\n if (!viewportObservable) {\n viewportObservable = createViewportObservable(configuration)\n }\n return viewportObservable\n}\n\nexport function createViewportObservable(configuration: RumConfiguration) {\n const observable = new Observable(() => {\n const { throttled: updateDimension } = throttle(() => {\n observable.notify(getViewportDimension())\n }, 200)\n\n return addEventListener(configuration, window, DOM_EVENT.RESIZE, updateDimension, { capture: true, passive: true })\n .stop\n })\n\n return observable\n}\n\n// excludes the width and height of any rendered classic scrollbar that is fixed to the visual viewport\nexport function getViewportDimension(): ViewportDimension {\n const visual = window.visualViewport\n if (visual) {\n return {\n width: Number(visual.width * visual.scale),\n height: Number(visual.height * visual.scale),\n }\n }\n\n return {\n width: Number(window.innerWidth || 0),\n height: Number(window.innerHeight || 0),\n }\n}\n","import { noop, isExperimentalFeatureEnabled, ExperimentalFeature, ONE_MINUTE } from '@datadog/browser-core'\nimport type { Duration, RelativeTime } from '@datadog/browser-core'\nimport { RumPerformanceEntryType, supportPerformanceTimingEvent } from '../../../browser/performanceCollection'\nimport type { RumFirstInputTiming, RumPerformanceEventTiming } from '../../../browser/performanceCollection'\nimport { LifeCycleEventType } from '../../lifeCycle'\nimport type { LifeCycle } from '../../lifeCycle'\nimport { ViewLoadingType } from '../../../rawRumEvent.types'\nimport { getSelectorFromElement } from '../../getSelectorFromElement'\nimport { isElementNode } from '../../../browser/htmlDomUtils'\nimport type { RumConfiguration } from '../../configuration'\nimport { getInteractionCount, initInteractionCountPolyfill } from './interactionCountPolyfill'\n\n// Arbitrary value to prevent unnecessary memory usage on views with lots of interactions.\nconst MAX_INTERACTION_ENTRIES = 10\n// Arbitrary value to cap INP outliers\nexport const MAX_INP_VALUE = (1 * ONE_MINUTE) as Duration\n\nexport interface InteractionToNextPaint {\n value: Duration\n targetSelector?: string\n}\n/**\n * Track the interaction to next paint (INP).\n * To avoid outliers, return the p98 worst interaction of the view.\n * Documentation: https://web.dev/inp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/onINP.ts\n */\nexport function trackInteractionToNextPaint(\n configuration: RumConfiguration,\n viewStart: RelativeTime,\n viewLoadingType: ViewLoadingType,\n lifeCycle: LifeCycle\n) {\n if (!isInteractionToNextPaintSupported()) {\n return {\n getInteractionToNextPaint: () => undefined,\n setViewEnd: noop,\n stop: noop,\n }\n }\n\n const { getViewInteractionCount, stopViewInteractionCount } = trackViewInteractionCount(viewLoadingType)\n\n let viewEnd = Infinity as RelativeTime\n\n const longestInteractions = trackLongestInteractions(getViewInteractionCount)\n let interactionToNextPaint = -1 as Duration\n let interactionToNextPaintTargetSelector: string | undefined\n\n const { unsubscribe: stop } = lifeCycle.subscribe(LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED, (entries) => {\n for (const entry of entries) {\n if (\n (entry.entryType === RumPerformanceEntryType.EVENT ||\n entry.entryType === RumPerformanceEntryType.FIRST_INPUT) &&\n entry.interactionId &&\n // Check the entry start time is inside the view bounds because some view interactions can be reported after the view end (if long duration).\n entry.startTime >= viewStart &&\n entry.startTime <= viewEnd\n ) {\n longestInteractions.process(entry)\n }\n }\n\n const newInteraction = longestInteractions.estimateP98Interaction()\n if (newInteraction) {\n interactionToNextPaint = newInteraction.duration\n\n if (\n isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) &&\n newInteraction.target &&\n isElementNode(newInteraction.target)\n ) {\n interactionToNextPaintTargetSelector = getSelectorFromElement(\n newInteraction.target,\n configuration.actionNameAttribute\n )\n } else {\n interactionToNextPaintTargetSelector = undefined\n }\n }\n })\n\n return {\n getInteractionToNextPaint: (): InteractionToNextPaint | undefined => {\n // If no INP duration where captured because of the performanceObserver 40ms threshold\n // but the view interaction count > 0 then report 0\n if (interactionToNextPaint >= 0) {\n return {\n value: Math.min(interactionToNextPaint, MAX_INP_VALUE) as Duration,\n targetSelector: interactionToNextPaintTargetSelector,\n }\n } else if (getViewInteractionCount()) {\n return {\n value: 0 as Duration,\n }\n }\n },\n setViewEnd: (viewEndTime: RelativeTime) => {\n viewEnd = viewEndTime\n stopViewInteractionCount()\n },\n stop,\n }\n}\n\nfunction trackLongestInteractions(getViewInteractionCount: () => number) {\n const longestInteractions: Array = []\n\n function sortAndTrimLongestInteractions() {\n longestInteractions.sort((a, b) => b.duration - a.duration).splice(MAX_INTERACTION_ENTRIES)\n }\n\n return {\n /**\n * Process the performance entry:\n * - if its duration is long enough, add the performance entry to the list of worst interactions\n * - if an entry with the same interaction id exists and its duration is lower than the new one, then replace it in the list of worst interactions\n */\n process(entry: RumPerformanceEventTiming | RumFirstInputTiming) {\n const interactionIndex = longestInteractions.findIndex(\n (interaction) => entry.interactionId === interaction.interactionId\n )\n\n const minLongestInteraction = longestInteractions[longestInteractions.length - 1]\n\n if (interactionIndex !== -1) {\n if (entry.duration > longestInteractions[interactionIndex].duration) {\n longestInteractions[interactionIndex] = entry\n sortAndTrimLongestInteractions()\n }\n } else if (\n longestInteractions.length < MAX_INTERACTION_ENTRIES ||\n entry.duration > minLongestInteraction.duration\n ) {\n longestInteractions.push(entry)\n sortAndTrimLongestInteractions()\n }\n },\n /**\n * Compute the p98 longest interaction.\n * For better performance the computation is based on 10 longest interactions and the interaction count of the current view.\n */\n estimateP98Interaction(): RumPerformanceEventTiming | RumFirstInputTiming | undefined {\n const interactionIndex = Math.min(longestInteractions.length - 1, Math.floor(getViewInteractionCount() / 50))\n return longestInteractions[interactionIndex]\n },\n }\n}\n\nexport function trackViewInteractionCount(viewLoadingType: ViewLoadingType) {\n initInteractionCountPolyfill()\n const previousInteractionCount = viewLoadingType === ViewLoadingType.INITIAL_LOAD ? 0 : getInteractionCount()\n let state: { stopped: false } | { stopped: true; interactionCount: number } = { stopped: false }\n\n function computeViewInteractionCount() {\n return getInteractionCount()! - previousInteractionCount\n }\n\n return {\n getViewInteractionCount: () => {\n if (state.stopped) {\n return state.interactionCount\n }\n\n return computeViewInteractionCount()\n },\n stopViewInteractionCount: () => {\n state = { stopped: true, interactionCount: computeViewInteractionCount() }\n },\n }\n}\n\nexport function isInteractionToNextPaintSupported() {\n return (\n supportPerformanceTimingEvent(RumPerformanceEntryType.EVENT) &&\n window.PerformanceEventTiming &&\n 'interactionId' in PerformanceEventTiming.prototype\n )\n}\n","export function getScrollX() {\n let scrollX\n const visual = window.visualViewport\n if (visual) {\n scrollX = visual.pageLeft - visual.offsetLeft\n } else if (window.scrollX !== undefined) {\n scrollX = window.scrollX\n } else {\n scrollX = window.pageXOffset || 0\n }\n return Math.round(scrollX)\n}\n\nexport function getScrollY() {\n let scrollY\n const visual = window.visualViewport\n if (visual) {\n scrollY = visual.pageTop - visual.offsetTop\n } else if (window.scrollY !== undefined) {\n scrollY = window.scrollY\n } else {\n scrollY = window.pageYOffset || 0\n }\n return Math.round(scrollY)\n}\n","import type { ClocksState, Duration } from '@datadog/browser-core'\nimport {\n Observable,\n ONE_SECOND,\n elapsed,\n relativeNow,\n throttle,\n addEventListener,\n DOM_EVENT,\n monitor,\n} from '@datadog/browser-core'\nimport type { RumConfiguration } from '../../configuration'\nimport { getScrollY } from '../../../browser/scroll'\nimport { getViewportDimension } from '../../../browser/viewportObservable'\n\n/** Arbitrary scroll throttle duration */\nexport const THROTTLE_SCROLL_DURATION = ONE_SECOND\n\nexport interface ScrollMetrics {\n maxDepth: number\n maxScrollHeight: number\n maxDepthScrollTop: number\n maxScrollHeightTime: Duration\n}\n\nexport function trackScrollMetrics(\n configuration: RumConfiguration,\n viewStart: ClocksState,\n callback: (scrollMetrics: ScrollMetrics) => void,\n scrollValues = createScrollValuesObservable(configuration)\n) {\n let maxScrollDepth = 0\n let maxScrollHeight = 0\n let maxScrollHeightTime = 0 as Duration\n\n const subscription = scrollValues.subscribe(({ scrollDepth, scrollTop, scrollHeight }) => {\n let shouldUpdate = false\n\n if (scrollDepth > maxScrollDepth) {\n maxScrollDepth = scrollDepth\n shouldUpdate = true\n }\n\n if (scrollHeight > maxScrollHeight) {\n maxScrollHeight = scrollHeight\n const now = relativeNow()\n maxScrollHeightTime = elapsed(viewStart.relative, now)\n shouldUpdate = true\n }\n\n if (shouldUpdate) {\n callback({\n maxDepth: Math.min(maxScrollDepth, maxScrollHeight),\n maxDepthScrollTop: scrollTop,\n maxScrollHeight,\n maxScrollHeightTime,\n })\n }\n })\n\n return {\n stop: () => subscription.unsubscribe(),\n }\n}\n\nexport interface ScrollValues {\n scrollDepth: number\n scrollTop: number\n scrollHeight: number\n}\n\nexport function computeScrollValues() {\n const scrollTop = getScrollY()\n\n const { height } = getViewportDimension()\n\n const scrollHeight = Math.round((document.scrollingElement || document.documentElement).scrollHeight)\n\n const scrollDepth = Math.round(height + scrollTop)\n\n return {\n scrollHeight,\n scrollDepth,\n scrollTop,\n }\n}\n\nexport function createScrollValuesObservable(\n configuration: RumConfiguration,\n throttleDuration = THROTTLE_SCROLL_DURATION\n): Observable {\n const observable = new Observable(() => {\n function notify() {\n observable.notify(computeScrollValues())\n }\n\n if (window.ResizeObserver) {\n const throttledNotify = throttle(notify, throttleDuration, {\n leading: false,\n trailing: true,\n })\n\n const observerTarget = document.scrollingElement || document.documentElement\n const resizeObserver = new ResizeObserver(monitor(throttledNotify.throttled))\n resizeObserver.observe(observerTarget)\n const eventListener = addEventListener(configuration, window, DOM_EVENT.SCROLL, throttledNotify.throttled, {\n passive: true,\n })\n\n return () => {\n throttledNotify.cancel()\n resizeObserver.unobserve(observerTarget)\n eventListener.stop()\n }\n }\n })\n\n return observable\n}\n","import type { ClocksState, Duration, Observable } from '@datadog/browser-core'\nimport type { ViewLoadingType } from '../../../rawRumEvent.types'\nimport type { RumConfiguration } from '../../configuration'\nimport type { LifeCycle } from '../../lifeCycle'\nimport type { CumulativeLayoutShift } from './trackCumulativeLayoutShift'\nimport { trackCumulativeLayoutShift } from './trackCumulativeLayoutShift'\nimport type { InteractionToNextPaint } from './trackInteractionToNextPaint'\nimport { trackInteractionToNextPaint } from './trackInteractionToNextPaint'\nimport { trackLoadingTime } from './trackLoadingTime'\nimport type { ScrollMetrics } from './trackScrollMetrics'\nimport { trackScrollMetrics } from './trackScrollMetrics'\n\nexport interface CommonViewMetrics {\n loadingTime?: Duration\n cumulativeLayoutShift?: CumulativeLayoutShift\n interactionToNextPaint?: InteractionToNextPaint\n scroll?: ScrollMetrics\n}\n\nexport function trackCommonViewMetrics(\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n configuration: RumConfiguration,\n scheduleViewUpdate: () => void,\n loadingType: ViewLoadingType,\n viewStart: ClocksState\n) {\n const commonViewMetrics: CommonViewMetrics = {}\n\n const { stop: stopLoadingTimeTracking, setLoadEvent } = trackLoadingTime(\n lifeCycle,\n domMutationObservable,\n configuration,\n loadingType,\n viewStart,\n (newLoadingTime) => {\n commonViewMetrics.loadingTime = newLoadingTime\n scheduleViewUpdate()\n }\n )\n\n const { stop: stopScrollMetricsTracking } = trackScrollMetrics(configuration, viewStart, (newScrollMetrics) => {\n commonViewMetrics.scroll = newScrollMetrics\n })\n\n const { stop: stopCLSTracking } = trackCumulativeLayoutShift(configuration, lifeCycle, (cumulativeLayoutShift) => {\n commonViewMetrics.cumulativeLayoutShift = cumulativeLayoutShift\n scheduleViewUpdate()\n })\n\n const {\n stop: stopINPTracking,\n getInteractionToNextPaint,\n setViewEnd,\n } = trackInteractionToNextPaint(configuration, viewStart.relative, loadingType, lifeCycle)\n\n return {\n stop: () => {\n stopLoadingTimeTracking()\n stopCLSTracking()\n stopScrollMetricsTracking()\n },\n stopINPTracking,\n setLoadEvent,\n setViewEnd,\n getCommonViewMetrics: () => {\n commonViewMetrics.interactionToNextPaint = getInteractionToNextPaint()\n return commonViewMetrics\n },\n }\n}\n","import type { ClocksState, Duration, Observable } from '@datadog/browser-core'\nimport { elapsed } from '@datadog/browser-core'\nimport { waitPageActivityEnd } from '../../waitPageActivityEnd'\nimport type { RumConfiguration } from '../../configuration'\nimport type { LifeCycle } from '../../lifeCycle'\nimport { ViewLoadingType } from '../../../rawRumEvent.types'\n\nexport function trackLoadingTime(\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n configuration: RumConfiguration,\n loadType: ViewLoadingType,\n viewStart: ClocksState,\n callback: (loadingTime: Duration) => void\n) {\n let isWaitingForLoadEvent = loadType === ViewLoadingType.INITIAL_LOAD\n let isWaitingForActivityLoadingTime = true\n const loadingTimeCandidates: Duration[] = []\n\n function invokeCallbackIfAllCandidatesAreReceived() {\n if (!isWaitingForActivityLoadingTime && !isWaitingForLoadEvent && loadingTimeCandidates.length > 0) {\n callback(Math.max(...loadingTimeCandidates) as Duration)\n }\n }\n\n const { stop } = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, (event) => {\n if (isWaitingForActivityLoadingTime) {\n isWaitingForActivityLoadingTime = false\n if (event.hadActivity) {\n loadingTimeCandidates.push(elapsed(viewStart.timeStamp, event.end))\n }\n invokeCallbackIfAllCandidatesAreReceived()\n }\n })\n\n return {\n stop,\n setLoadEvent: (loadEvent: Duration) => {\n if (isWaitingForLoadEvent) {\n isWaitingForLoadEvent = false\n loadingTimeCandidates.push(loadEvent)\n invokeCallbackIfAllCandidatesAreReceived()\n }\n },\n }\n}\n","import type { Duration, ClocksState, TimeStamp, Subscription, RelativeTime } from '@datadog/browser-core'\nimport {\n noop,\n PageExitReason,\n shallowClone,\n elapsed,\n generateUUID,\n ONE_MINUTE,\n throttle,\n clocksNow,\n clocksOrigin,\n timeStampNow,\n display,\n looksLikeRelativeTime,\n setInterval,\n clearInterval,\n setTimeout,\n Observable,\n} from '@datadog/browser-core'\n\nimport type { ViewCustomTimings } from '../../rawRumEvent.types'\nimport { ViewLoadingType } from '../../rawRumEvent.types'\n\nimport type { LifeCycle } from '../lifeCycle'\nimport { LifeCycleEventType } from '../lifeCycle'\nimport type { EventCounts } from '../trackEventCounts'\nimport type { LocationChange } from '../../browser/locationChangeObservable'\nimport type { RumConfiguration } from '../configuration'\nimport { trackViewEventCounts } from './trackViewEventCounts'\nimport { trackInitialViewMetrics } from './viewMetrics/trackInitialViewMetrics'\nimport type { InitialViewMetrics } from './viewMetrics/trackInitialViewMetrics'\nimport type { CommonViewMetrics } from './viewMetrics/trackCommonViewMetrics'\nimport { trackCommonViewMetrics } from './viewMetrics/trackCommonViewMetrics'\n\nexport interface ViewEvent {\n id: string\n name?: string\n service?: string\n version?: string\n location: Readonly\n commonViewMetrics: CommonViewMetrics\n initialViewMetrics: InitialViewMetrics\n customTimings: ViewCustomTimings\n eventCounts: EventCounts\n documentVersion: number\n startClocks: ClocksState\n duration: Duration\n isActive: boolean\n sessionIsActive: boolean\n loadingType: ViewLoadingType\n}\n\nexport interface ViewCreatedEvent {\n id: string\n name?: string\n service?: string\n version?: string\n startClocks: ClocksState\n}\n\nexport interface ViewEndedEvent {\n endClocks: ClocksState\n}\n\nexport const THROTTLE_VIEW_UPDATE_PERIOD = 3000\nexport const SESSION_KEEP_ALIVE_INTERVAL = 5 * ONE_MINUTE\n\n// Some events or metrics can be captured after the end of the view. To avoid missing those;\n// an arbitrary delay is added for stopping their tracking after the view ends.\n//\n// Ideally, we would not stop and keep tracking events or metrics until the end of the session.\n// But this might have a small performance impact if there are many many views.\n// So let's have a fairly short delay improving the situation in most cases and avoid impacting performances too much.\nexport const KEEP_TRACKING_AFTER_VIEW_DELAY = 5 * ONE_MINUTE\n\nexport interface ViewOptions {\n name?: string\n service?: string\n version?: string\n}\n\nexport function trackViews(\n location: Location,\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n configuration: RumConfiguration,\n locationChangeObservable: Observable,\n areViewsTrackedAutomatically: boolean,\n initialViewOptions?: ViewOptions\n) {\n const activeViews: Set> = new Set()\n let currentView = startNewView(ViewLoadingType.INITIAL_LOAD, clocksOrigin(), initialViewOptions)\n\n startViewLifeCycle()\n\n let locationChangeSubscription: Subscription\n if (areViewsTrackedAutomatically) {\n locationChangeSubscription = renewViewOnLocationChange(locationChangeObservable)\n }\n\n function startNewView(loadingType: ViewLoadingType, startClocks?: ClocksState, viewOptions?: ViewOptions) {\n const newlyCreatedView = newView(\n lifeCycle,\n domMutationObservable,\n configuration,\n location,\n loadingType,\n startClocks,\n viewOptions\n )\n activeViews.add(newlyCreatedView)\n newlyCreatedView.stopObservable.subscribe(() => {\n activeViews.delete(newlyCreatedView)\n })\n return newlyCreatedView\n }\n\n function startViewLifeCycle() {\n lifeCycle.subscribe(LifeCycleEventType.SESSION_RENEWED, () => {\n // Renew view on session renewal\n currentView = startNewView(ViewLoadingType.ROUTE_CHANGE, undefined, {\n name: currentView.name,\n service: currentView.service,\n version: currentView.version,\n })\n })\n\n lifeCycle.subscribe(LifeCycleEventType.SESSION_EXPIRED, () => {\n currentView.end({ sessionIsActive: false })\n })\n\n // End the current view on page unload\n lifeCycle.subscribe(LifeCycleEventType.PAGE_EXITED, (pageExitEvent) => {\n if (pageExitEvent.reason === PageExitReason.UNLOADING || pageExitEvent.reason === PageExitReason.PAGEHIDE) {\n currentView.end()\n }\n })\n }\n\n function renewViewOnLocationChange(locationChangeObservable: Observable) {\n return locationChangeObservable.subscribe(({ oldLocation, newLocation }) => {\n if (areDifferentLocation(oldLocation, newLocation)) {\n currentView.end()\n currentView = startNewView(ViewLoadingType.ROUTE_CHANGE)\n }\n })\n }\n\n return {\n addTiming: (name: string, time: RelativeTime | TimeStamp = timeStampNow()) => {\n currentView.addTiming(name, time)\n },\n startView: (options?: ViewOptions, startClocks?: ClocksState) => {\n currentView.end({ endClocks: startClocks })\n currentView = startNewView(ViewLoadingType.ROUTE_CHANGE, startClocks, options)\n },\n stop: () => {\n locationChangeSubscription?.unsubscribe()\n currentView.end()\n activeViews.forEach((view) => view.stop())\n },\n }\n}\n\nfunction newView(\n lifeCycle: LifeCycle,\n domMutationObservable: Observable,\n configuration: RumConfiguration,\n initialLocation: Location,\n loadingType: ViewLoadingType,\n startClocks: ClocksState = clocksNow(),\n viewOptions?: ViewOptions\n) {\n // Setup initial values\n const id = generateUUID()\n const stopObservable = new Observable()\n const customTimings: ViewCustomTimings = {}\n let documentVersion = 0\n let endClocks: ClocksState | undefined\n const location = shallowClone(initialLocation)\n\n let sessionIsActive = true\n let name: string | undefined\n let service: string | undefined\n let version: string | undefined\n if (viewOptions) {\n name = viewOptions.name\n service = viewOptions.service\n version = viewOptions.version\n }\n\n lifeCycle.notify(LifeCycleEventType.VIEW_CREATED, {\n id,\n name,\n startClocks,\n service,\n version,\n })\n\n // Update the view every time the measures are changing\n const { throttled: scheduleViewUpdate, cancel: cancelScheduleViewUpdate } = throttle(\n triggerViewUpdate,\n THROTTLE_VIEW_UPDATE_PERIOD,\n {\n leading: false,\n }\n )\n\n const {\n setLoadEvent,\n setViewEnd,\n stop: stopCommonViewMetricsTracking,\n stopINPTracking,\n getCommonViewMetrics,\n } = trackCommonViewMetrics(\n lifeCycle,\n domMutationObservable,\n configuration,\n scheduleViewUpdate,\n loadingType,\n startClocks\n )\n\n const { stop: stopInitialViewMetricsTracking, initialViewMetrics } =\n loadingType === ViewLoadingType.INITIAL_LOAD\n ? trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate)\n : { stop: noop, initialViewMetrics: {} as InitialViewMetrics }\n\n const { stop: stopEventCountsTracking, eventCounts } = trackViewEventCounts(lifeCycle, id, scheduleViewUpdate)\n\n // Session keep alive\n const keepAliveIntervalId = setInterval(triggerViewUpdate, SESSION_KEEP_ALIVE_INTERVAL)\n\n // Initial view update\n triggerViewUpdate()\n\n function triggerViewUpdate() {\n cancelScheduleViewUpdate()\n documentVersion += 1\n const currentEnd = endClocks === undefined ? timeStampNow() : endClocks.timeStamp\n\n lifeCycle.notify(LifeCycleEventType.VIEW_UPDATED, {\n customTimings,\n documentVersion,\n id,\n name,\n service,\n version,\n loadingType,\n location,\n startClocks,\n commonViewMetrics: getCommonViewMetrics(),\n initialViewMetrics,\n duration: elapsed(startClocks.timeStamp, currentEnd),\n isActive: endClocks === undefined,\n sessionIsActive,\n eventCounts,\n })\n }\n\n return {\n name,\n service,\n version,\n stopObservable,\n end(options: { endClocks?: ClocksState; sessionIsActive?: boolean } = {}) {\n if (endClocks) {\n // view already ended\n return\n }\n endClocks = options.endClocks ?? clocksNow()\n sessionIsActive = options.sessionIsActive ?? true\n\n lifeCycle.notify(LifeCycleEventType.VIEW_ENDED, { endClocks })\n clearInterval(keepAliveIntervalId)\n setViewEnd(endClocks.relative)\n stopCommonViewMetricsTracking()\n triggerViewUpdate()\n setTimeout(() => {\n this.stop()\n }, KEEP_TRACKING_AFTER_VIEW_DELAY)\n },\n stop() {\n stopInitialViewMetricsTracking()\n stopEventCountsTracking()\n stopINPTracking()\n stopObservable.notify()\n },\n addTiming(name: string, time: RelativeTime | TimeStamp) {\n if (endClocks) {\n return\n }\n const relativeTime = looksLikeRelativeTime(time) ? time : elapsed(startClocks.timeStamp, time)\n customTimings[sanitizeTiming(name)] = relativeTime\n scheduleViewUpdate()\n },\n }\n}\n\n/**\n * Timing name is used as facet path that must contain only letters, digits, or the characters - _ . @ $\n */\nfunction sanitizeTiming(name: string) {\n const sanitized = name.replace(/[^a-zA-Z0-9-_.@$]/g, '_')\n if (sanitized !== name) {\n display.warn(`Invalid timing name: ${name}, sanitized to: ${sanitized}`)\n }\n return sanitized\n}\n\nfunction areDifferentLocation(currentLocation: Location, otherLocation: Location) {\n return (\n currentLocation.pathname !== otherLocation.pathname ||\n (!isHashAnAnchor(otherLocation.hash) &&\n getPathFromHash(otherLocation.hash) !== getPathFromHash(currentLocation.hash))\n )\n}\n\nfunction isHashAnAnchor(hash: string) {\n const correspondingId = hash.substring(1)\n // check if the correspondingId is empty because on Firefox an empty string passed to getElementById() prints a consol warning\n return correspondingId !== '' && !!document.getElementById(correspondingId)\n}\n\nfunction getPathFromHash(hash: string) {\n const index = hash.indexOf('?')\n return index < 0 ? hash : hash.slice(0, index)\n}\n","import type { LifeCycle } from '../lifeCycle'\nimport { trackEventCounts } from '../trackEventCounts'\n\nexport function trackViewEventCounts(lifeCycle: LifeCycle, viewId: string, onChange: () => void) {\n const { stop, eventCounts } = trackEventCounts({\n lifeCycle,\n isChildEvent: (event) => event.view.id === viewId,\n onChange,\n })\n\n return {\n stop,\n eventCounts,\n }\n}\n","import type { Duration, ServerDuration, Observable } from '@datadog/browser-core'\nimport { isEmptyObject, mapValues, toServerDuration, isNumber } from '@datadog/browser-core'\nimport type { RecorderApi } from '../../boot/rumPublicApi'\nimport type { RawRumViewEvent } from '../../rawRumEvent.types'\nimport { RumEventType } from '../../rawRumEvent.types'\nimport type { LifeCycle, RawRumEventCollectedData } from '../lifeCycle'\nimport { LifeCycleEventType } from '../lifeCycle'\nimport type { LocationChange } from '../../browser/locationChangeObservable'\nimport type { RumConfiguration } from '../configuration'\nimport type { FeatureFlagContexts } from '../contexts/featureFlagContext'\nimport type { PageStateHistory } from '../contexts/pageStateHistory'\nimport type { ViewEvent, ViewOptions } from './trackViews'\nimport { trackViews } from './trackViews'\n\nexport function startViewCollection(\n lifeCycle: LifeCycle,\n configuration: RumConfiguration,\n location: Location,\n domMutationObservable: Observable,\n locationChangeObservable: Observable,\n featureFlagContexts: FeatureFlagContexts,\n pageStateHistory: PageStateHistory,\n recorderApi: RecorderApi,\n initialViewOptions?: ViewOptions\n) {\n lifeCycle.subscribe(LifeCycleEventType.VIEW_UPDATED, (view) =>\n lifeCycle.notify(\n LifeCycleEventType.RAW_RUM_EVENT_COLLECTED,\n processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory)\n )\n )\n return trackViews(\n location,\n lifeCycle,\n domMutationObservable,\n configuration,\n locationChangeObservable,\n !configuration.trackViewsManually,\n initialViewOptions\n )\n}\n\nfunction processViewUpdate(\n view: ViewEvent,\n configuration: RumConfiguration,\n featureFlagContexts: FeatureFlagContexts,\n recorderApi: RecorderApi,\n pageStateHistory: PageStateHistory\n): RawRumEventCollectedData {\n const replayStats = recorderApi.getReplayStats(view.id)\n const featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(view.startClocks.relative)\n const pageStates = pageStateHistory.findAll(view.startClocks.relative, view.duration)\n const viewEvent: RawRumViewEvent = {\n _dd: {\n document_version: view.documentVersion,\n replay_stats: replayStats,\n page_states: pageStates,\n configuration: {\n start_session_replay_recording_manually: configuration.startSessionReplayRecordingManually,\n },\n },\n date: view.startClocks.timeStamp,\n type: RumEventType.VIEW,\n view: {\n action: {\n count: view.eventCounts.actionCount,\n },\n frustration: {\n count: view.eventCounts.frustrationCount,\n },\n cumulative_layout_shift: view.commonViewMetrics.cumulativeLayoutShift?.value,\n cumulative_layout_shift_target_selector: view.commonViewMetrics.cumulativeLayoutShift?.targetSelector,\n first_byte: toServerDuration(view.initialViewMetrics.navigationTimings?.firstByte),\n dom_complete: toServerDuration(view.initialViewMetrics.navigationTimings?.domComplete),\n dom_content_loaded: toServerDuration(view.initialViewMetrics.navigationTimings?.domContentLoaded),\n dom_interactive: toServerDuration(view.initialViewMetrics.navigationTimings?.domInteractive),\n error: {\n count: view.eventCounts.errorCount,\n },\n first_contentful_paint: toServerDuration(view.initialViewMetrics.firstContentfulPaint),\n first_input_delay: toServerDuration(view.initialViewMetrics.firstInput?.delay),\n first_input_time: toServerDuration(view.initialViewMetrics.firstInput?.time),\n first_input_target_selector: view.initialViewMetrics.firstInput?.targetSelector,\n interaction_to_next_paint: toServerDuration(view.commonViewMetrics.interactionToNextPaint?.value),\n interaction_to_next_paint_target_selector: view.commonViewMetrics.interactionToNextPaint?.targetSelector,\n is_active: view.isActive,\n name: view.name,\n largest_contentful_paint: toServerDuration(view.initialViewMetrics.largestContentfulPaint?.value),\n largest_contentful_paint_target_selector: view.initialViewMetrics.largestContentfulPaint?.targetSelector,\n load_event: toServerDuration(view.initialViewMetrics.navigationTimings?.loadEvent),\n loading_time: discardNegativeDuration(toServerDuration(view.commonViewMetrics.loadingTime)),\n loading_type: view.loadingType,\n long_task: {\n count: view.eventCounts.longTaskCount,\n },\n resource: {\n count: view.eventCounts.resourceCount,\n },\n time_spent: toServerDuration(view.duration),\n },\n feature_flags: featureFlagContext && !isEmptyObject(featureFlagContext) ? featureFlagContext : undefined,\n display: view.commonViewMetrics.scroll\n ? {\n scroll: {\n max_depth: view.commonViewMetrics.scroll.maxDepth,\n max_depth_scroll_top: view.commonViewMetrics.scroll.maxDepthScrollTop,\n max_scroll_height: view.commonViewMetrics.scroll.maxScrollHeight,\n max_scroll_height_time: toServerDuration(view.commonViewMetrics.scroll.maxScrollHeightTime),\n },\n }\n : undefined,\n session: {\n has_replay: replayStats ? true : undefined,\n is_active: view.sessionIsActive ? undefined : false,\n },\n privacy: {\n replay_level: configuration.defaultPrivacyLevel,\n },\n }\n if (!isEmptyObject(view.customTimings)) {\n viewEvent.view.custom_timings = mapValues(\n view.customTimings,\n toServerDuration as (duration: Duration) => ServerDuration\n )\n }\n return {\n rawRumEvent: viewEvent,\n startTime: view.startClocks.relative,\n domainContext: {\n location: view.location,\n },\n }\n}\n\nfunction discardNegativeDuration(duration: ServerDuration | undefined): ServerDuration | undefined {\n return isNumber(duration) && duration < 0 ? undefined : duration\n}\n","import type { Observable } from '../../tools/observable'\nimport type { Context } from '../../tools/serialisation/context'\nimport { ValueHistory } from '../../tools/valueHistory'\nimport type { RelativeTime } from '../../tools/utils/timeUtils'\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../../tools/utils/timeUtils'\nimport { DOM_EVENT, addEventListener, addEventListeners } from '../../browser/addEventListener'\nimport { clearInterval, setInterval } from '../../tools/timer'\nimport type { Configuration } from '../configuration'\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants'\nimport { startSessionStore } from './sessionStore'\n\nexport interface SessionManager {\n findActiveSession: (startTime?: RelativeTime) => SessionContext | undefined\n renewObservable: Observable\n expireObservable: Observable\n expire: () => void\n}\n\nexport interface SessionContext extends Context {\n id: string\n trackingType: TrackingType\n}\n\nexport const VISIBILITY_CHECK_DELAY = ONE_MINUTE\nconst SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY\nlet stopCallbacks: Array<() => void> = []\n\nexport function startSessionManager(\n configuration: Configuration,\n productKey: string,\n computeSessionState: (rawTrackingType?: string) => { trackingType: TrackingType; isTracked: boolean }\n): SessionManager {\n // TODO - Improve configuration type and remove assertion\n const sessionStore = startSessionStore(configuration.sessionStoreStrategyType!, productKey, computeSessionState)\n stopCallbacks.push(() => sessionStore.stop())\n\n const sessionContextHistory = new ValueHistory>(SESSION_CONTEXT_TIMEOUT_DELAY)\n stopCallbacks.push(() => sessionContextHistory.stop())\n\n sessionStore.renewObservable.subscribe(() => {\n sessionContextHistory.add(buildSessionContext(), relativeNow())\n })\n sessionStore.expireObservable.subscribe(() => {\n sessionContextHistory.closeActive(relativeNow())\n })\n\n sessionStore.expandOrRenewSession()\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative)\n\n trackActivity(configuration, () => sessionStore.expandOrRenewSession())\n trackVisibility(configuration, () => sessionStore.expandSession())\n\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id!,\n trackingType: sessionStore.getSession()[productKey] as TrackingType,\n }\n }\n\n return {\n findActiveSession: (startTime) => sessionContextHistory.find(startTime),\n renewObservable: sessionStore.renewObservable,\n expireObservable: sessionStore.expireObservable,\n expire: sessionStore.expire,\n }\n}\n\nexport function stopSessionManager() {\n stopCallbacks.forEach((e) => e())\n stopCallbacks = []\n}\n\nfunction trackActivity(configuration: Configuration, expandOrRenewSession: () => void) {\n const { stop } = addEventListeners(\n configuration,\n window,\n [DOM_EVENT.CLICK, DOM_EVENT.TOUCH_START, DOM_EVENT.KEY_DOWN, DOM_EVENT.SCROLL],\n expandOrRenewSession,\n { capture: true, passive: true }\n )\n stopCallbacks.push(stop)\n}\n\nfunction trackVisibility(configuration: Configuration, expandSession: () => void) {\n const expandSessionWhenVisible = () => {\n if (document.visibilityState === 'visible') {\n expandSession()\n }\n }\n\n const { stop } = addEventListener(configuration, document, DOM_EVENT.VISIBILITY_CHANGE, expandSessionWhenVisible)\n stopCallbacks.push(stop)\n\n const visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY)\n stopCallbacks.push(() => {\n clearInterval(visibilityCheckInterval)\n })\n}\n","import type { RelativeTime } from '@datadog/browser-core'\nimport { Observable, noop, performDraw, startSessionManager } from '@datadog/browser-core'\nimport type { RumConfiguration } from './configuration'\nimport type { LifeCycle } from './lifeCycle'\nimport { LifeCycleEventType } from './lifeCycle'\n\nexport const RUM_SESSION_KEY = 'rum'\n\nexport interface RumSessionManager {\n findTrackedSession: (startTime?: RelativeTime) => RumSession | undefined\n expire: () => void\n expireObservable: Observable\n}\n\nexport type RumSession = {\n id: string\n sessionReplayAllowed: boolean\n}\n\nexport const enum RumTrackingType {\n NOT_TRACKED = '0',\n TRACKED_WITH_SESSION_REPLAY = '1',\n TRACKED_WITHOUT_SESSION_REPLAY = '2',\n}\n\nexport function startRumSessionManager(configuration: RumConfiguration, lifeCycle: LifeCycle): RumSessionManager {\n const sessionManager = startSessionManager(configuration, RUM_SESSION_KEY, (rawTrackingType) =>\n computeSessionState(configuration, rawTrackingType)\n )\n\n sessionManager.expireObservable.subscribe(() => {\n lifeCycle.notify(LifeCycleEventType.SESSION_EXPIRED)\n })\n\n sessionManager.renewObservable.subscribe(() => {\n lifeCycle.notify(LifeCycleEventType.SESSION_RENEWED)\n })\n\n return {\n findTrackedSession: (startTime) => {\n const session = sessionManager.findActiveSession(startTime)\n if (!session || !isTypeTracked(session.trackingType)) {\n return\n }\n return {\n id: session.id,\n sessionReplayAllowed: session.trackingType === RumTrackingType.TRACKED_WITH_SESSION_REPLAY,\n }\n },\n expire: sessionManager.expire,\n expireObservable: sessionManager.expireObservable,\n }\n}\n\n/**\n * Start a tracked replay session stub\n */\nexport function startRumSessionManagerStub(): RumSessionManager {\n const session: RumSession = {\n id: '00000000-aaaa-0000-aaaa-000000000000',\n sessionReplayAllowed: false,\n }\n return {\n findTrackedSession: () => session,\n expire: noop,\n expireObservable: new Observable(),\n }\n}\n\nfunction computeSessionState(configuration: RumConfiguration, rawTrackingType?: string) {\n let trackingType: RumTrackingType\n if (hasValidRumSession(rawTrackingType)) {\n trackingType = rawTrackingType\n } else if (!performDraw(configuration.sessionSampleRate)) {\n trackingType = RumTrackingType.NOT_TRACKED\n } else if (!performDraw(configuration.sessionReplaySampleRate)) {\n trackingType = RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY\n } else {\n trackingType = RumTrackingType.TRACKED_WITH_SESSION_REPLAY\n }\n return {\n trackingType,\n isTracked: isTypeTracked(trackingType),\n }\n}\n\nfunction hasValidRumSession(trackingType?: string): trackingType is RumTrackingType {\n return (\n trackingType === RumTrackingType.NOT_TRACKED ||\n trackingType === RumTrackingType.TRACKED_WITH_SESSION_REPLAY ||\n trackingType === RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY\n )\n}\n\nfunction isTypeTracked(rumSessionType: RumTrackingType | undefined) {\n return (\n rumSessionType === RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY ||\n rumSessionType === RumTrackingType.TRACKED_WITH_SESSION_REPLAY\n )\n}\n","import { display } from '../tools/display'\nimport type { Context } from '../tools/serialisation/context'\nimport { objectValues } from '../tools/utils/polyfills'\nimport { isPageExitReason } from '../browser/pageExitObservable'\nimport { jsonStringify } from '../tools/serialisation/jsonStringify'\nimport type { Subscription } from '../tools/observable'\nimport type { Encoder, EncoderResult } from '../tools/encoder'\nimport { computeBytesCount } from '../tools/utils/byteUtils'\nimport type { HttpRequest, Payload } from './httpRequest'\nimport type { FlushController, FlushEvent } from './flushController'\n\nexport class Batch {\n private upsertBuffer: { [key: string]: string } = {}\n private flushSubscription: Subscription\n\n constructor(\n private encoder: Encoder,\n private request: HttpRequest,\n public flushController: FlushController,\n private messageBytesLimit: number\n ) {\n this.flushSubscription = this.flushController.flushObservable.subscribe((event) => this.flush(event))\n }\n\n add(message: Context) {\n this.addOrUpdate(message)\n }\n\n upsert(message: Context, key: string) {\n this.addOrUpdate(message, key)\n }\n\n stop() {\n this.flushSubscription.unsubscribe()\n }\n\n private flush(event: FlushEvent) {\n const upsertMessages = objectValues(this.upsertBuffer).join('\\n')\n this.upsertBuffer = {}\n\n const isPageExit = isPageExitReason(event.reason)\n const send = isPageExit ? this.request.sendOnExit : this.request.send\n\n if (\n isPageExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n this.encoder.isAsync\n ) {\n const encoderResult = this.encoder.finishSync()\n\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult, event))\n }\n\n // Send messages that are not yet encoded at this point\n const pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\\n')\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages),\n flushReason: event.reason,\n })\n }\n } else {\n if (upsertMessages) {\n this.encoder.write(this.encoder.isEmpty ? upsertMessages : `\\n${upsertMessages}`)\n }\n this.encoder.finish((encoderResult) => {\n send(formatPayloadFromEncoder(encoderResult, event))\n })\n }\n }\n\n private addOrUpdate(message: Context, key?: string) {\n const serializedMessage = jsonStringify(message)!\n\n const estimatedMessageBytesCount = this.encoder.estimateEncodedBytesCount(serializedMessage)\n\n if (estimatedMessageBytesCount >= this.messageBytesLimit) {\n display.warn(\n `Discarded a message whose size was bigger than the maximum allowed size ${this.messageBytesLimit}KB.`\n )\n return\n }\n\n if (this.hasMessageFor(key)) {\n this.remove(key)\n }\n\n this.push(serializedMessage, estimatedMessageBytesCount, key)\n }\n\n private push(serializedMessage: string, estimatedMessageBytesCount: number, key?: string) {\n this.flushController.notifyBeforeAddMessage(estimatedMessageBytesCount)\n\n if (key !== undefined) {\n this.upsertBuffer[key] = serializedMessage\n this.flushController.notifyAfterAddMessage()\n } else {\n this.encoder.write(\n this.encoder.isEmpty ? serializedMessage : `\\n${serializedMessage}`,\n (realMessageBytesCount) => {\n this.flushController.notifyAfterAddMessage(realMessageBytesCount - estimatedMessageBytesCount)\n }\n )\n }\n }\n\n private remove(key: string) {\n const removedMessage = this.upsertBuffer[key]\n delete this.upsertBuffer[key]\n const messageBytesCount = this.encoder.estimateEncodedBytesCount(removedMessage)\n this.flushController.notifyAfterRemoveMessage(messageBytesCount)\n }\n\n private hasMessageFor(key?: string): key is string {\n return key !== undefined && this.upsertBuffer[key] !== undefined\n }\n}\n\nfunction formatPayloadFromEncoder(encoderResult: EncoderResult, flushEvent: FlushEvent): Payload {\n let data: string | Blob\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output\n } else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain',\n })\n }\n\n return {\n data,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding,\n flushReason: flushEvent.reason,\n }\n}\n","import type { TrackType } from '../domain/configuration'\nimport { setTimeout } from '../tools/timer'\nimport { clocksNow, ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils'\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../tools/utils/byteUtils'\nimport { isServerError } from '../tools/utils/responseUtils'\nimport type { RawError } from '../domain/error/error.types'\nimport { ErrorSource } from '../domain/error/error.types'\nimport type { Payload, HttpResponse } from './httpRequest'\n\nexport const MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE\nexport const MAX_ONGOING_REQUESTS = 32\nexport const MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE\nexport const MAX_BACKOFF_TIME = ONE_MINUTE\nexport const INITIAL_BACKOFF_TIME = ONE_SECOND\n\nconst enum TransportStatus {\n UP,\n FAILURE_DETECTED,\n DOWN,\n}\n\nconst enum RetryReason {\n AFTER_SUCCESS,\n AFTER_RESUME,\n}\n\nexport interface RetryState {\n transportStatus: TransportStatus\n currentBackoffTime: number\n bandwidthMonitor: ReturnType\n queuedPayloads: ReturnType\n queueFullReported: boolean\n}\n\ntype SendStrategy = (payload: Payload, onResponse: (r: HttpResponse) => void) => void\n\nexport function sendWithRetryStrategy(\n payload: Payload,\n state: RetryState,\n sendStrategy: SendStrategy,\n trackType: TrackType,\n reportError: (error: RawError) => void\n) {\n if (\n state.transportStatus === TransportStatus.UP &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)\n ) {\n send(payload, state, sendStrategy, {\n onSuccess: () => retryQueuedPayloads(RetryReason.AFTER_SUCCESS, state, sendStrategy, trackType, reportError),\n onFailure: () => {\n state.queuedPayloads.enqueue(payload)\n scheduleRetry(state, sendStrategy, trackType, reportError)\n },\n })\n } else {\n state.queuedPayloads.enqueue(payload)\n }\n}\n\nfunction scheduleRetry(\n state: RetryState,\n sendStrategy: SendStrategy,\n trackType: TrackType,\n reportError: (error: RawError) => void\n) {\n if (state.transportStatus !== TransportStatus.DOWN) {\n return\n }\n setTimeout(() => {\n const payload = state.queuedPayloads.first()\n send(payload, state, sendStrategy, {\n onSuccess: () => {\n state.queuedPayloads.dequeue()\n state.currentBackoffTime = INITIAL_BACKOFF_TIME\n retryQueuedPayloads(RetryReason.AFTER_RESUME, state, sendStrategy, trackType, reportError)\n },\n onFailure: () => {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2)\n scheduleRetry(state, sendStrategy, trackType, reportError)\n },\n })\n }, state.currentBackoffTime)\n}\n\nfunction send(\n payload: Payload,\n state: RetryState,\n sendStrategy: SendStrategy,\n { onSuccess, onFailure }: { onSuccess: () => void; onFailure: () => void }\n) {\n state.bandwidthMonitor.add(payload)\n sendStrategy(payload, (response) => {\n state.bandwidthMonitor.remove(payload)\n if (!shouldRetryRequest(response)) {\n state.transportStatus = TransportStatus.UP\n onSuccess()\n } else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0 ? TransportStatus.FAILURE_DETECTED : TransportStatus.DOWN\n payload.retry = {\n count: payload.retry ? payload.retry.count + 1 : 1,\n lastFailureStatus: response.status,\n }\n onFailure()\n }\n })\n}\n\nfunction retryQueuedPayloads(\n reason: RetryReason,\n state: RetryState,\n sendStrategy: SendStrategy,\n trackType: TrackType,\n reportError: (error: RawError) => void\n) {\n if (reason === RetryReason.AFTER_SUCCESS && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: `Reached max ${trackType} events size queued for upload: ${MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE}MiB`,\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n })\n state.queueFullReported = true\n }\n const previousQueue = state.queuedPayloads\n state.queuedPayloads = newPayloadQueue()\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue()!, state, sendStrategy, trackType, reportError)\n }\n}\n\nfunction shouldRetryRequest(response: HttpResponse) {\n return (\n response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n isServerError(response.status))\n )\n}\n\nexport function newRetryState(): RetryState {\n return {\n transportStatus: TransportStatus.UP,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false,\n }\n}\n\nfunction newPayloadQueue() {\n const queue: Payload[] = []\n return {\n bytesCount: 0,\n enqueue(payload: Payload) {\n if (this.isFull()) {\n return\n }\n queue.push(payload)\n this.bytesCount += payload.bytesCount\n },\n first() {\n return queue[0]\n },\n dequeue() {\n const payload = queue.shift()\n if (payload) {\n this.bytesCount -= payload.bytesCount\n }\n return payload\n },\n size() {\n return queue.length\n },\n isFull() {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT\n },\n }\n}\n\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle(payload: Payload) {\n return (\n this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS)\n )\n },\n add(payload: Payload) {\n this.ongoingRequestCount += 1\n this.ongoingByteCount += payload.bytesCount\n },\n remove(payload: Payload) {\n this.ongoingRequestCount -= 1\n this.ongoingByteCount -= payload.bytesCount\n },\n }\n}\n","import type { EndpointBuilder, Configuration } from '../domain/configuration'\nimport { addTelemetryError } from '../domain/telemetry'\nimport type { Context } from '../tools/serialisation/context'\nimport { monitor } from '../tools/monitor'\nimport { addEventListener } from '../browser/addEventListener'\nimport type { RawError } from '../domain/error/error.types'\nimport { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy'\nimport type { FlushReason } from './flushController'\n\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\n\nexport type HttpRequest = ReturnType\n\nexport interface HttpResponse extends Context {\n status: number\n type?: ResponseType\n}\n\nexport interface Payload {\n data: string | FormData | Blob\n bytesCount: number\n retry?: RetryInfo\n flushReason?: FlushReason\n encoding?: 'deflate'\n}\n\nexport interface RetryInfo {\n count: number\n lastFailureStatus: number\n}\n\nexport function createHttpRequest(\n configuration: Configuration,\n endpointBuilder: EndpointBuilder,\n bytesLimit: number,\n reportError: (error: RawError) => void\n) {\n const retryState = newRetryState()\n const sendStrategyForRetry = (payload: Payload, onResponse: (r: HttpResponse) => void) =>\n fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse)\n\n return {\n send: (payload: Payload) => {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.trackType, reportError)\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: (payload: Payload) => {\n sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload)\n },\n }\n}\n\nfunction sendBeaconStrategy(\n configuration: Configuration,\n endpointBuilder: EndpointBuilder,\n bytesLimit: number,\n payload: Payload\n) {\n const canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n const beaconUrl = endpointBuilder.build('beacon', payload)\n const isQueued = navigator.sendBeacon(beaconUrl, payload.data)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n reportBeaconError(e)\n }\n }\n\n const xhrUrl = endpointBuilder.build('xhr', payload)\n sendXHR(configuration, xhrUrl, payload.data)\n}\n\nlet hasReportedBeaconError = false\n\nfunction reportBeaconError(e: unknown) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true\n addTelemetryError(e)\n }\n}\n\nexport function fetchKeepAliveStrategy(\n configuration: Configuration,\n endpointBuilder: EndpointBuilder,\n bytesLimit: number,\n payload: Payload,\n onResponse?: (r: HttpResponse) => void\n) {\n const canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit\n if (canUseKeepAlive) {\n const fetchUrl = endpointBuilder.build('fetch', payload)\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(\n monitor((response: Response) => onResponse?.({ status: response.status, type: response.type })),\n monitor(() => {\n const xhrUrl = endpointBuilder.build('xhr', payload)\n // failed to queue the request\n sendXHR(configuration, xhrUrl, payload.data, onResponse)\n })\n )\n } else {\n const xhrUrl = endpointBuilder.build('xhr', payload)\n sendXHR(configuration, xhrUrl, payload.data, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nexport function sendXHR(\n configuration: Configuration,\n url: string,\n data: Payload['data'],\n onResponse?: (r: HttpResponse) => void\n) {\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n if (data instanceof Blob) {\n // When using a Blob instance, IE does not use its 'type' to define the 'Content-Type' header\n // automatically, so the intake request ends up being rejected with an HTTP status 415\n // Defining the header manually fixes this issue.\n request.setRequestHeader('Content-Type', data.type)\n }\n addEventListener(\n configuration,\n request,\n 'loadend',\n () => {\n onResponse?.({ status: request.status })\n },\n {\n // prevent multiple onResponse callbacks\n // if the xhr instance is reused by a third party\n once: true,\n }\n )\n request.send(data)\n}\n","import type { PageExitEvent, PageExitReason } from '../browser/pageExitObservable'\nimport { Observable } from '../tools/observable'\nimport type { TimeoutId } from '../tools/timer'\nimport { clearTimeout, setTimeout } from '../tools/timer'\nimport type { Duration } from '../tools/utils/timeUtils'\n\nexport type FlushReason = PageExitReason | 'duration_limit' | 'bytes_limit' | 'messages_limit' | 'session_expire'\n\nexport type FlushController = ReturnType\nexport interface FlushEvent {\n reason: FlushReason\n bytesCount: number\n messagesCount: number\n}\n\ninterface FlushControllerOptions {\n messagesLimit: number\n bytesLimit: number\n durationLimit: Duration\n pageExitObservable: Observable\n sessionExpireObservable: Observable\n}\n\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController({\n messagesLimit,\n bytesLimit,\n durationLimit,\n pageExitObservable,\n sessionExpireObservable,\n}: FlushControllerOptions) {\n const pageExitSubscription = pageExitObservable.subscribe((event) => flush(event.reason))\n const sessionExpireSubscription = sessionExpireObservable.subscribe(() => flush('session_expire'))\n\n const flushObservable = new Observable(() => () => {\n pageExitSubscription.unsubscribe()\n sessionExpireSubscription.unsubscribe()\n })\n\n let currentBytesCount = 0\n let currentMessagesCount = 0\n\n function flush(flushReason: FlushReason) {\n if (currentMessagesCount === 0) {\n return\n }\n\n const messagesCount = currentMessagesCount\n const bytesCount = currentBytesCount\n\n currentMessagesCount = 0\n currentBytesCount = 0\n cancelDurationLimitTimeout()\n\n flushObservable.notify({\n reason: flushReason,\n messagesCount,\n bytesCount,\n })\n }\n\n let durationLimitTimeoutId: TimeoutId | undefined\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(() => {\n flush('duration_limit')\n }, durationLimit)\n }\n }\n\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId)\n durationLimitTimeoutId = undefined\n }\n\n return {\n flushObservable,\n get messagesCount() {\n return currentMessagesCount\n },\n\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n *\n * @param estimatedMessageBytesCount: an estimation of the message bytes count once it is\n * actually added.\n */\n notifyBeforeAddMessage(estimatedMessageBytesCount: number) {\n if (currentBytesCount + estimatedMessageBytesCount >= bytesLimit) {\n flush('bytes_limit')\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1\n currentBytesCount += estimatedMessageBytesCount\n scheduleDurationLimitTimeout()\n },\n\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n *\n * @param messageBytesCountDiff: the difference between the estimated message bytes count and\n * its actual bytes count once added to the pool.\n */\n notifyAfterAddMessage(messageBytesCountDiff = 0) {\n currentBytesCount += messageBytesCountDiff\n\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit')\n } else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit')\n }\n },\n\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n *\n * @param messageBytesCount: the message bytes count that was added to the pool. Should\n * correspond to the sum of bytes counts passed to `notifyBeforeAddMessage` and\n * `notifyAfterAddMessage`.\n */\n notifyAfterRemoveMessage(messageBytesCount: number) {\n currentBytesCount -= messageBytesCount\n currentMessagesCount -= 1\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout()\n }\n },\n }\n}\n","import type { Context, TelemetryEvent, Observable, RawError, PageExitEvent, Encoder } from '@datadog/browser-core'\nimport {\n DeflateEncoderStreamId,\n combine,\n isTelemetryReplicationAllowed,\n startBatchWithReplica,\n} from '@datadog/browser-core'\nimport type { RumConfiguration } from '../domain/configuration'\nimport type { LifeCycle } from '../domain/lifeCycle'\nimport { LifeCycleEventType } from '../domain/lifeCycle'\nimport { RumEventType } from '../rawRumEvent.types'\nimport type { RumEvent } from '../rumEvent.types'\n\nexport function startRumBatch(\n configuration: RumConfiguration,\n lifeCycle: LifeCycle,\n telemetryEventObservable: Observable,\n reportError: (error: RawError) => void,\n pageExitObservable: Observable,\n sessionExpireObservable: Observable,\n createEncoder: (streamId: DeflateEncoderStreamId) => Encoder\n) {\n const replica = configuration.replica\n\n const batch = startBatchWithReplica(\n configuration,\n {\n endpoint: configuration.rumEndpointBuilder,\n encoder: createEncoder(DeflateEncoderStreamId.RUM),\n },\n replica && {\n endpoint: replica.rumEndpointBuilder,\n transformMessage: (message) => combine(message, { application: { id: replica.applicationId } }),\n encoder: createEncoder(DeflateEncoderStreamId.RUM_REPLICA),\n },\n reportError,\n pageExitObservable,\n sessionExpireObservable\n )\n\n lifeCycle.subscribe(LifeCycleEventType.RUM_EVENT_COLLECTED, (serverRumEvent: RumEvent & Context) => {\n if (serverRumEvent.type === RumEventType.VIEW) {\n batch.upsert(serverRumEvent, serverRumEvent.view.id)\n } else {\n batch.add(serverRumEvent)\n }\n })\n\n telemetryEventObservable.subscribe((event) => batch.add(event, isTelemetryReplicationAllowed(configuration)))\n\n return batch\n}\n","import type { Configuration, EndpointBuilder } from '../domain/configuration'\nimport type { Context } from '../tools/serialisation/context'\nimport type { Observable } from '../tools/observable'\nimport type { PageExitEvent } from '../browser/pageExitObservable'\nimport type { RawError } from '../domain/error/error.types'\nimport type { Encoder } from '../tools/encoder'\nimport { Batch } from './batch'\nimport { createHttpRequest } from './httpRequest'\nimport { createFlushController } from './flushController'\n\nexport interface BatchConfiguration {\n endpoint: EndpointBuilder\n encoder: Encoder\n}\n\ninterface ReplicaBatchConfiguration extends BatchConfiguration {\n transformMessage?: (message: T) => T\n}\n\nexport function startBatchWithReplica(\n configuration: Configuration,\n primary: BatchConfiguration,\n replica: ReplicaBatchConfiguration | undefined,\n reportError: (error: RawError) => void,\n pageExitObservable: Observable,\n sessionExpireObservable: Observable\n) {\n const primaryBatch = createBatch(configuration, primary)\n const replicaBatch = replica && createBatch(configuration, replica)\n\n function createBatch(configuration: Configuration, { endpoint, encoder }: BatchConfiguration) {\n return new Batch(\n encoder,\n createHttpRequest(configuration, endpoint, configuration.batchBytesLimit, reportError),\n createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable,\n sessionExpireObservable,\n }),\n configuration.messageBytesLimit\n )\n }\n\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n\n add(message: T, replicated = true) {\n primaryBatch.add(message)\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message)\n }\n },\n\n upsert: (message: T, key: string) => {\n primaryBatch.upsert(message, key)\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key)\n }\n },\n\n stop: () => {\n primaryBatch.stop()\n replicaBatch?.stop()\n },\n }\n}\n","import type { RelativeTime, Observable } from '@datadog/browser-core'\nimport { SESSION_TIME_OUT_DELAY, relativeNow, ValueHistory } from '@datadog/browser-core'\nimport type { LocationChange } from '../../browser/locationChangeObservable'\nimport type { LifeCycle } from '../lifeCycle'\nimport { LifeCycleEventType } from '../lifeCycle'\n\n/**\n * We want to attach to an event:\n * - the url corresponding to its start\n * - the referrer corresponding to the previous view url (or document referrer for initial view)\n */\n\nexport const URL_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY\n\nexport interface UrlContext {\n url: string\n referrer: string\n}\n\nexport interface UrlContexts {\n findUrl: (startTime?: RelativeTime) => UrlContext | undefined\n stop: () => void\n}\n\nexport function startUrlContexts(\n lifeCycle: LifeCycle,\n locationChangeObservable: Observable,\n location: Location\n) {\n const urlContextHistory = new ValueHistory(URL_CONTEXT_TIME_OUT_DELAY)\n\n let previousViewUrl: string | undefined\n\n lifeCycle.subscribe(LifeCycleEventType.VIEW_ENDED, ({ endClocks }) => {\n urlContextHistory.closeActive(endClocks.relative)\n })\n\n lifeCycle.subscribe(LifeCycleEventType.VIEW_CREATED, ({ startClocks }) => {\n const viewUrl = location.href\n urlContextHistory.add(\n buildUrlContext({\n url: viewUrl,\n referrer: !previousViewUrl ? document.referrer : previousViewUrl,\n }),\n startClocks.relative\n )\n previousViewUrl = viewUrl\n })\n\n const locationChangeSubscription = locationChangeObservable.subscribe(({ newLocation }) => {\n const current = urlContextHistory.find()\n if (current) {\n const changeTime = relativeNow()\n urlContextHistory.closeActive(changeTime)\n urlContextHistory.add(\n buildUrlContext({\n url: newLocation.href,\n referrer: current.referrer,\n }),\n changeTime\n )\n }\n })\n\n function buildUrlContext({ url, referrer }: { url: string; referrer: string }) {\n return {\n url,\n referrer,\n }\n }\n\n return {\n findUrl: (startTime?: RelativeTime) => urlContextHistory.find(startTime),\n stop: () => {\n locationChangeSubscription.unsubscribe()\n urlContextHistory.stop()\n },\n }\n}\n","import {\n addEventListener,\n DOM_EVENT,\n instrumentMethodAndCallOriginal,\n Observable,\n shallowClone,\n} from '@datadog/browser-core'\nimport type { RumConfiguration } from '../domain/configuration'\n\nexport interface LocationChange {\n oldLocation: Readonly\n newLocation: Readonly\n}\n\nexport function createLocationChangeObservable(configuration: RumConfiguration, location: Location) {\n let currentLocation = shallowClone(location)\n const observable = new Observable(() => {\n const { stop: stopHistoryTracking } = trackHistory(configuration, onLocationChange)\n const { stop: stopHashTracking } = trackHash(configuration, onLocationChange)\n return () => {\n stopHistoryTracking()\n stopHashTracking()\n }\n })\n\n function onLocationChange() {\n if (currentLocation.href === location.href) {\n return\n }\n const newLocation = shallowClone(location)\n observable.notify({\n newLocation,\n oldLocation: currentLocation,\n })\n currentLocation = newLocation\n }\n\n return observable\n}\n\nfunction trackHistory(configuration: RumConfiguration, onHistoryChange: () => void) {\n const { stop: stopInstrumentingPushState } = instrumentMethodAndCallOriginal(history, 'pushState', {\n after: onHistoryChange,\n })\n const { stop: stopInstrumentingReplaceState } = instrumentMethodAndCallOriginal(history, 'replaceState', {\n after: onHistoryChange,\n })\n const { stop: removeListener } = addEventListener(configuration, window, DOM_EVENT.POP_STATE, onHistoryChange)\n\n return {\n stop: () => {\n stopInstrumentingPushState()\n stopInstrumentingReplaceState()\n removeListener()\n },\n }\n}\n\nfunction trackHash(configuration: RumConfiguration, onHashChange: () => void) {\n return addEventListener(configuration, window, DOM_EVENT.HASH_CHANGE, onHashChange)\n}\n","import type { RelativeTime, ContextValue, Context } from '@datadog/browser-core'\nimport {\n CustomerDataType,\n warnIfCustomerDataLimitReached,\n throttle,\n jsonStringify,\n computeBytesCount,\n noop,\n isExperimentalFeatureEnabled,\n SESSION_TIME_OUT_DELAY,\n ValueHistory,\n ExperimentalFeature,\n} from '@datadog/browser-core'\nimport type { LifeCycle } from '../lifeCycle'\nimport { LifeCycleEventType } from '../lifeCycle'\n\nexport const FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY\nexport const BYTES_COMPUTATION_THROTTLING_DELAY = 200\n\nexport type FeatureFlagContext = Context\n\nexport interface FeatureFlagContexts {\n findFeatureFlagEvaluations: (startTime?: RelativeTime) => FeatureFlagContext | undefined\n getFeatureFlagBytesCount: () => number\n addFeatureFlagEvaluation: (key: string, value: ContextValue) => void\n stop: () => void\n}\n\n/**\n * Start feature flag contexts\n *\n * Feature flag contexts follow the life of views.\n * A new context is added when a view is created and ended when the view is ended\n *\n * Note: we choose not to add a new context at each evaluation to save memory\n */\nexport function startFeatureFlagContexts(\n lifeCycle: LifeCycle,\n computeBytesCountImpl = computeBytesCount\n): FeatureFlagContexts {\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.FEATURE_FLAGS)) {\n return {\n findFeatureFlagEvaluations: () => undefined,\n getFeatureFlagBytesCount: () => 0,\n addFeatureFlagEvaluation: noop,\n stop: noop,\n }\n }\n\n const featureFlagContexts = new ValueHistory(FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY)\n let bytesCountCache = 0\n let alreadyWarned = false\n\n lifeCycle.subscribe(LifeCycleEventType.VIEW_ENDED, ({ endClocks }) => {\n featureFlagContexts.closeActive(endClocks.relative)\n })\n\n lifeCycle.subscribe(LifeCycleEventType.VIEW_CREATED, ({ startClocks }) => {\n featureFlagContexts.add({}, startClocks.relative)\n bytesCountCache = 0\n })\n\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call addFeatureFlagEvaluation API synchronously multiple times in a row\n const { throttled: computeBytesCountThrottled, cancel: cancelPendingComputation } = throttle((context: Context) => {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context)!)\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, CustomerDataType.FeatureFlag)\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY)\n\n return {\n findFeatureFlagEvaluations: (startTime?: RelativeTime) => featureFlagContexts.find(startTime),\n getFeatureFlagBytesCount: () => {\n const currentContext = featureFlagContexts.find()\n if (!currentContext) {\n return 0\n }\n\n return bytesCountCache\n },\n addFeatureFlagEvaluation: (key: string, value: ContextValue) => {\n const currentContext = featureFlagContexts.find()\n if (currentContext) {\n currentContext[key] = value\n computeBytesCountThrottled(currentContext)\n }\n },\n stop: cancelPendingComputation,\n }\n}\n","import type { Context, ContextManager, FlushEvent, Observable, Telemetry } from '@datadog/browser-core'\nimport { isEmptyObject, includes, performDraw, ONE_SECOND, addTelemetryDebug, setInterval } from '@datadog/browser-core'\nimport { RumEventType } from '../rawRumEvent.types'\nimport type { RumEvent } from '../rumEvent.types'\nimport type { RumConfiguration } from './configuration'\nimport type { FeatureFlagContexts } from './contexts/featureFlagContext'\nimport type { LifeCycle } from './lifeCycle'\nimport { LifeCycleEventType } from './lifeCycle'\n\nexport const MEASURES_PERIOD_DURATION = 10 * ONE_SECOND\n\ntype Measure = {\n min: number\n max: number\n sum: number\n}\n\ntype CurrentPeriodMeasures = {\n batchCount: number\n batchBytesCount: Measure\n batchMessagesCount: Measure\n globalContextBytes: Measure\n userContextBytes: Measure\n featureFlagBytes: Measure\n}\n\ntype CurrentBatchMeasures = {\n globalContextBytes: Measure\n userContextBytes: Measure\n featureFlagBytes: Measure\n}\n\nlet currentPeriodMeasures: CurrentPeriodMeasures\nlet currentBatchMeasures: CurrentBatchMeasures\nlet batchHasRumEvent: boolean\n\nexport function startCustomerDataTelemetry(\n configuration: RumConfiguration,\n telemetry: Telemetry,\n lifeCycle: LifeCycle,\n globalContextManager: ContextManager,\n userContextManager: ContextManager,\n featureFlagContexts: FeatureFlagContexts,\n batchFlushObservable: Observable\n) {\n const customerDataTelemetryEnabled = telemetry.enabled && performDraw(configuration.customerDataTelemetrySampleRate)\n if (!customerDataTelemetryEnabled) {\n return\n }\n\n initCurrentPeriodMeasures()\n initCurrentBatchMeasures()\n\n // We measure the data of every view updates even if there could only be one per batch due to the upsert\n // It means that contexts bytes count sums can be higher than it really is\n lifeCycle.subscribe(LifeCycleEventType.RUM_EVENT_COLLECTED, (event: RumEvent & Context) => {\n batchHasRumEvent = true\n updateMeasure(\n currentBatchMeasures.globalContextBytes,\n !isEmptyObject(globalContextManager.getContext()) ? globalContextManager.getBytesCount() : 0\n )\n\n updateMeasure(\n currentBatchMeasures.userContextBytes,\n !isEmptyObject(userContextManager.getContext()) ? userContextManager.getBytesCount() : 0\n )\n\n const featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations()\n const hasFeatureFlagContext =\n includes([RumEventType.VIEW, RumEventType.ERROR], event.type) &&\n featureFlagContext &&\n !isEmptyObject(featureFlagContext)\n updateMeasure(\n currentBatchMeasures.featureFlagBytes,\n hasFeatureFlagContext ? featureFlagContexts.getFeatureFlagBytesCount() : 0\n )\n })\n\n batchFlushObservable.subscribe(({ bytesCount, messagesCount }) => {\n // Don't measure batch that only contains telemetry events to avoid batch sending loop\n // It could happen because after each batch we are adding a customer data measures telemetry event to the next one\n if (!batchHasRumEvent) {\n return\n }\n currentPeriodMeasures.batchCount += 1\n updateMeasure(currentPeriodMeasures.batchBytesCount, bytesCount)\n updateMeasure(currentPeriodMeasures.batchMessagesCount, messagesCount)\n mergeMeasure(currentPeriodMeasures.globalContextBytes, currentBatchMeasures.globalContextBytes)\n mergeMeasure(currentPeriodMeasures.userContextBytes, currentBatchMeasures.userContextBytes)\n mergeMeasure(currentPeriodMeasures.featureFlagBytes, currentBatchMeasures.featureFlagBytes)\n initCurrentBatchMeasures()\n })\n\n setInterval(sendCurrentPeriodMeasures, MEASURES_PERIOD_DURATION)\n}\n\nfunction sendCurrentPeriodMeasures() {\n if (currentPeriodMeasures.batchCount === 0) {\n return\n }\n\n addTelemetryDebug('Customer data measures', currentPeriodMeasures)\n initCurrentPeriodMeasures()\n}\n\nfunction createMeasure(): Measure {\n return { min: Infinity, max: 0, sum: 0 }\n}\n\nfunction updateMeasure(measure: Measure, value: number) {\n measure.sum += value\n measure.min = Math.min(measure.min, value)\n measure.max = Math.max(measure.max, value)\n}\n\nfunction mergeMeasure(target: Measure, source: Measure) {\n target.sum += source.sum\n target.min = Math.min(target.min, source.min)\n target.max = Math.max(target.max, source.max)\n}\n\nfunction initCurrentPeriodMeasures() {\n currentPeriodMeasures = {\n batchCount: 0,\n batchBytesCount: createMeasure(),\n batchMessagesCount: createMeasure(),\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n }\n}\n\nfunction initCurrentBatchMeasures() {\n batchHasRumEvent = false\n currentBatchMeasures = {\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n }\n}\n","import type { Duration, RelativeTime } from '@datadog/browser-core'\nimport {\n elapsed,\n ValueHistory,\n SESSION_TIME_OUT_DELAY,\n toServerDuration,\n addEventListeners,\n relativeNow,\n DOM_EVENT,\n} from '@datadog/browser-core'\nimport type { RumConfiguration } from '../configuration'\nimport type { PageStateServerEntry } from '../../rawRumEvent.types'\n\n// Arbitrary value to cap number of element for memory consumption in the browser\nexport const MAX_PAGE_STATE_ENTRIES = 4000\n// Arbitrary value to cap number of element for backend & to save bandwidth\nexport const MAX_PAGE_STATE_ENTRIES_SELECTABLE = 500\n\nexport const PAGE_STATE_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY\n\nexport const enum PageState {\n ACTIVE = 'active',\n PASSIVE = 'passive',\n HIDDEN = 'hidden',\n FROZEN = 'frozen',\n TERMINATED = 'terminated',\n}\n\nexport type PageStateEntry = { state: PageState; startTime: RelativeTime }\n\nexport interface PageStateHistory {\n findAll: (startTime: RelativeTime, duration: Duration) => PageStateServerEntry[] | undefined\n isInActivePageStateAt: (startTime: RelativeTime) => boolean\n addPageState(nextPageState: PageState, startTime?: RelativeTime): void\n stop: () => void\n}\n\nexport function startPageStateHistory(\n configuration: RumConfiguration,\n maxPageStateEntriesSelectable = MAX_PAGE_STATE_ENTRIES_SELECTABLE\n): PageStateHistory {\n const pageStateHistory = new ValueHistory(PAGE_STATE_CONTEXT_TIME_OUT_DELAY, MAX_PAGE_STATE_ENTRIES)\n\n let currentPageState: PageState\n addPageState(getPageState(), relativeNow())\n\n const { stop: stopEventListeners } = addEventListeners(\n configuration,\n window,\n [\n DOM_EVENT.PAGE_SHOW,\n DOM_EVENT.FOCUS,\n DOM_EVENT.BLUR,\n DOM_EVENT.VISIBILITY_CHANGE,\n DOM_EVENT.RESUME,\n DOM_EVENT.FREEZE,\n DOM_EVENT.PAGE_HIDE,\n ],\n (event) => {\n addPageState(computePageState(event), event.timeStamp as RelativeTime)\n },\n { capture: true }\n )\n\n function addPageState(nextPageState: PageState, startTime = relativeNow()) {\n if (nextPageState === currentPageState) {\n return\n }\n\n currentPageState = nextPageState\n pageStateHistory.closeActive(startTime)\n pageStateHistory.add({ state: currentPageState, startTime }, startTime)\n }\n\n return {\n findAll: (eventStartTime: RelativeTime, duration: Duration): PageStateServerEntry[] | undefined => {\n const pageStateEntries = pageStateHistory.findAll(eventStartTime, duration)\n\n if (pageStateEntries.length === 0) {\n return\n }\n\n const pageStateServerEntries = []\n // limit the number of entries to return\n const limit = Math.max(0, pageStateEntries.length - maxPageStateEntriesSelectable)\n\n // loop page state entries backward to return the selected ones in desc order\n for (let index = pageStateEntries.length - 1; index >= limit; index--) {\n const pageState = pageStateEntries[index]\n // compute the start time relative to the event start time (ex: to be relative to the view start time)\n const relativeStartTime = elapsed(eventStartTime, pageState.startTime)\n\n pageStateServerEntries.push({\n state: pageState.state,\n start: toServerDuration(relativeStartTime),\n })\n }\n\n return pageStateServerEntries\n },\n isInActivePageStateAt: (startTime: RelativeTime) => {\n const pageStateEntry = pageStateHistory.find(startTime)\n return pageStateEntry !== undefined && pageStateEntry.state === PageState.ACTIVE\n },\n addPageState,\n stop: () => {\n stopEventListeners()\n pageStateHistory.stop()\n },\n }\n}\n\nfunction computePageState(event: Event & { type: DOM_EVENT }) {\n if (event.type === DOM_EVENT.FREEZE) {\n return PageState.FROZEN\n } else if (event.type === DOM_EVENT.PAGE_HIDE) {\n return (event as PageTransitionEvent).persisted ? PageState.FROZEN : PageState.TERMINATED\n }\n return getPageState()\n}\n\nfunction getPageState() {\n if (document.visibilityState === 'hidden') {\n return PageState.HIDDEN\n }\n\n if (document.hasFocus()) {\n return PageState.ACTIVE\n }\n\n return PageState.PASSIVE\n}\n","import { INTAKE_SITE_STAGING, INTAKE_SITE_US1, INTAKE_SITE_EU1 } from '@datadog/browser-core'\nimport type { RumConfiguration } from './configuration'\nimport type { ViewContext } from './contexts/viewContexts'\nimport type { RumSession } from './rumSessionManager'\n\nexport function getSessionReplayUrl(\n configuration: RumConfiguration,\n {\n session,\n viewContext,\n errorType,\n }: {\n session?: RumSession\n viewContext?: ViewContext\n errorType?: string\n }\n): string {\n const sessionId = session ? session.id : 'no-session-id'\n const parameters: string[] = []\n if (errorType !== undefined) {\n parameters.push(`error-type=${errorType}`)\n }\n if (viewContext) {\n parameters.push(`seed=${viewContext.id}`)\n parameters.push(`from=${viewContext.startClocks.timeStamp}`)\n }\n\n const origin = getDatadogSiteUrl(configuration)\n const path = `/rum/replay/sessions/${sessionId}`\n return `${origin}${path}?${parameters.join('&')}`\n}\n\nexport function getDatadogSiteUrl(rumConfiguration: RumConfiguration) {\n const site = rumConfiguration.site\n const subdomain = rumConfiguration.subdomain || getSiteDefaultSubdomain(rumConfiguration)\n return `https://${subdomain ? `${subdomain}.` : ''}${site}`\n}\n\nfunction getSiteDefaultSubdomain(configuration: RumConfiguration): string | undefined {\n switch (configuration.site) {\n case INTAKE_SITE_US1:\n case INTAKE_SITE_EU1:\n return 'app'\n case INTAKE_SITE_STAGING:\n return 'dd'\n default:\n return undefined\n }\n}\n","import type * as SessionReplay from './sessionReplay'\n\nexport const RecordType: {\n FullSnapshot: SessionReplay.BrowserFullSnapshotRecord['type']\n IncrementalSnapshot: SessionReplay.BrowserIncrementalSnapshotRecord['type']\n Meta: SessionReplay.MetaRecord['type']\n Focus: SessionReplay.FocusRecord['type']\n ViewEnd: SessionReplay.ViewEndRecord['type']\n VisualViewport: SessionReplay.VisualViewportRecord['type']\n FrustrationRecord: SessionReplay.FrustrationRecord['type']\n} = {\n FullSnapshot: 2,\n IncrementalSnapshot: 3,\n Meta: 4,\n Focus: 6,\n ViewEnd: 7,\n VisualViewport: 8,\n FrustrationRecord: 9,\n} as const\n\nexport type RecordType = (typeof RecordType)[keyof typeof RecordType]\n\nexport const NodeType: {\n Document: SessionReplay.DocumentNode['type']\n DocumentType: SessionReplay.DocumentTypeNode['type']\n Element: SessionReplay.ElementNode['type']\n Text: SessionReplay.TextNode['type']\n CDATA: SessionReplay.CDataNode['type']\n DocumentFragment: SessionReplay.DocumentFragmentNode['type']\n} = {\n Document: 0,\n DocumentType: 1,\n Element: 2,\n Text: 3,\n CDATA: 4,\n DocumentFragment: 11,\n} as const\n\nexport type NodeType = (typeof NodeType)[keyof typeof NodeType]\n\nexport const IncrementalSource: {\n Mutation: SessionReplay.BrowserMutationData['source']\n MouseMove: Exclude\n MouseInteraction: SessionReplay.MouseInteractionData['source']\n Scroll: SessionReplay.ScrollData['source']\n ViewportResize: SessionReplay.ViewportResizeData['source']\n Input: SessionReplay.InputData['source']\n TouchMove: Exclude\n MediaInteraction: SessionReplay.MediaInteractionData['source']\n StyleSheetRule: SessionReplay.StyleSheetRuleData['source']\n} = {\n Mutation: 0,\n MouseMove: 1,\n MouseInteraction: 2,\n Scroll: 3,\n ViewportResize: 4,\n Input: 5,\n TouchMove: 6,\n MediaInteraction: 7,\n StyleSheetRule: 8,\n // CanvasMutation : 9,\n // Font : 10,\n} as const\n\nexport type IncrementalSource = (typeof IncrementalSource)[keyof typeof IncrementalSource]\n\nexport const MouseInteractionType = {\n MouseUp: 0,\n MouseDown: 1,\n Click: 2,\n ContextMenu: 3,\n DblClick: 4,\n Focus: 5,\n Blur: 6,\n TouchStart: 7,\n TouchEnd: 9,\n} as const\n\nexport type MouseInteractionType = (typeof MouseInteractionType)[keyof typeof MouseInteractionType]\n\nexport const MediaInteractionType = {\n Play: 0,\n Pause: 1,\n} as const\n\nexport type MediaInteractionType = (typeof MediaInteractionType)[keyof typeof MediaInteractionType]\n","import { assign, timeStampNow } from '@datadog/browser-core'\nimport type { BrowserIncrementalData, BrowserIncrementalSnapshotRecord } from '../../types'\nimport { RecordType } from '../../types'\n\nexport function assembleIncrementalSnapshot(\n source: Data['source'],\n data: Omit\n): BrowserIncrementalSnapshotRecord {\n return {\n data: assign(\n {\n source,\n },\n data\n ) as Data,\n type: RecordType.IncrementalSnapshot,\n timestamp: timeStampNow(),\n }\n}\n","import { DefaultPrivacyLevel } from '@datadog/browser-core'\n\nexport const NodePrivacyLevel = {\n IGNORE: 'ignore',\n HIDDEN: 'hidden',\n ALLOW: DefaultPrivacyLevel.ALLOW,\n MASK: DefaultPrivacyLevel.MASK,\n MASK_USER_INPUT: DefaultPrivacyLevel.MASK_USER_INPUT,\n} as const\nexport type NodePrivacyLevel = (typeof NodePrivacyLevel)[keyof typeof NodePrivacyLevel]\n\nexport const PRIVACY_ATTR_NAME = 'data-dd-privacy'\n\n// Privacy Attrs\nexport const PRIVACY_ATTR_VALUE_ALLOW = 'allow'\nexport const PRIVACY_ATTR_VALUE_MASK = 'mask'\nexport const PRIVACY_ATTR_VALUE_MASK_USER_INPUT = 'mask-user-input'\nexport const PRIVACY_ATTR_VALUE_HIDDEN = 'hidden'\n\n// Privacy Classes - not all customers can set plain HTML attributes, so support classes too\nexport const PRIVACY_CLASS_ALLOW = 'dd-privacy-allow'\nexport const PRIVACY_CLASS_MASK = 'dd-privacy-mask'\nexport const PRIVACY_CLASS_MASK_USER_INPUT = 'dd-privacy-mask-user-input'\nexport const PRIVACY_CLASS_HIDDEN = 'dd-privacy-hidden'\n\n// Private Replacement Templates\nexport const CENSORED_STRING_MARK = '***'\nexport const CENSORED_IMG_MARK = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=='\n\nexport const FORM_PRIVATE_TAG_NAMES: { [tagName: string]: true } = {\n INPUT: true,\n OUTPUT: true,\n TEXTAREA: true,\n SELECT: true,\n OPTION: true,\n DATALIST: true,\n OPTGROUP: true,\n}\n","import { isElementNode, getParentNode, isTextNode } from '@datadog/browser-rum-core'\nimport {\n NodePrivacyLevel,\n PRIVACY_ATTR_NAME,\n PRIVACY_ATTR_VALUE_ALLOW,\n PRIVACY_ATTR_VALUE_MASK,\n PRIVACY_ATTR_VALUE_MASK_USER_INPUT,\n PRIVACY_ATTR_VALUE_HIDDEN,\n PRIVACY_CLASS_ALLOW,\n PRIVACY_CLASS_MASK,\n PRIVACY_CLASS_MASK_USER_INPUT,\n PRIVACY_CLASS_HIDDEN,\n FORM_PRIVATE_TAG_NAMES,\n CENSORED_STRING_MARK,\n} from '../../constants'\n\nexport const MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 100_000\n\nconst TEXT_MASKING_CHAR = 'x'\n\n/**\n * Get node privacy level by iterating over its ancestors. When the direct parent privacy level is\n * know, it is best to use something like:\n *\n * derivePrivacyLevelGivenParent(getNodeSelfPrivacyLevel(node), parentNodePrivacyLevel)\n */\nexport function getNodePrivacyLevel(node: Node, defaultPrivacyLevel: NodePrivacyLevel): NodePrivacyLevel {\n const parentNode = getParentNode(node)\n const parentNodePrivacyLevel = parentNode ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel) : defaultPrivacyLevel\n const selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node)\n return reducePrivacyLevel(selfNodePrivacyLevel, parentNodePrivacyLevel)\n}\n\n/**\n * Reduces the next privacy level based on self + parent privacy levels\n */\nexport function reducePrivacyLevel(\n childPrivacyLevel: NodePrivacyLevel | undefined,\n parentNodePrivacyLevel: NodePrivacyLevel\n): NodePrivacyLevel {\n switch (parentNodePrivacyLevel) {\n // These values cannot be overridden\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return parentNodePrivacyLevel\n }\n switch (childPrivacyLevel) {\n case NodePrivacyLevel.ALLOW:\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.MASK_USER_INPUT:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return childPrivacyLevel\n default:\n return parentNodePrivacyLevel\n }\n}\n\n/**\n * Determines the node's own privacy level without checking for ancestors.\n */\nexport function getNodeSelfPrivacyLevel(node: Node): NodePrivacyLevel | undefined {\n // Only Element types can have a privacy level set\n if (!isElementNode(node)) {\n return\n }\n\n const privAttr = node.getAttribute(PRIVACY_ATTR_NAME)\n\n // Overrules for replay purpose\n if (node.tagName === 'BASE') {\n return NodePrivacyLevel.ALLOW\n }\n\n // Overrules to enforce end-user protection\n if (node.tagName === 'INPUT') {\n const inputElement = node as HTMLInputElement\n if (inputElement.type === 'password' || inputElement.type === 'email' || inputElement.type === 'tel') {\n return NodePrivacyLevel.MASK\n }\n if (inputElement.type === 'hidden') {\n return NodePrivacyLevel.MASK\n }\n const autocomplete = inputElement.getAttribute('autocomplete')\n // Handle input[autocomplete=cc-number/cc-csc/cc-exp/cc-exp-month/cc-exp-year]\n if (autocomplete && autocomplete.indexOf('cc-') === 0) {\n return NodePrivacyLevel.MASK\n }\n }\n\n // Check HTML privacy attributes and classes\n if (privAttr === PRIVACY_ATTR_VALUE_HIDDEN || node.classList.contains(PRIVACY_CLASS_HIDDEN)) {\n return NodePrivacyLevel.HIDDEN\n }\n\n if (privAttr === PRIVACY_ATTR_VALUE_MASK || node.classList.contains(PRIVACY_CLASS_MASK)) {\n return NodePrivacyLevel.MASK\n }\n\n if (privAttr === PRIVACY_ATTR_VALUE_MASK_USER_INPUT || node.classList.contains(PRIVACY_CLASS_MASK_USER_INPUT)) {\n return NodePrivacyLevel.MASK_USER_INPUT\n }\n\n if (privAttr === PRIVACY_ATTR_VALUE_ALLOW || node.classList.contains(PRIVACY_CLASS_ALLOW)) {\n return NodePrivacyLevel.ALLOW\n }\n\n if (shouldIgnoreElement(node)) {\n return NodePrivacyLevel.IGNORE\n }\n}\n\n/**\n * Helper aiming to unify `mask` and `mask-user-input` privacy levels:\n *\n * In the `mask` case, it is trivial: we should mask the element.\n *\n * In the `mask-user-input` case, we should mask the element only if it is a \"form\" element or the\n * direct parent is a form element for text nodes).\n *\n * Other `shouldMaskNode` cases are edge cases that should not matter too much (ex: should we mask a\n * node if it is ignored or hidden? it doesn't matter since it won't be serialized).\n */\nexport function shouldMaskNode(node: Node, privacyLevel: NodePrivacyLevel) {\n switch (privacyLevel) {\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return true\n case NodePrivacyLevel.MASK_USER_INPUT:\n return isTextNode(node) ? isFormElement(node.parentNode) : isFormElement(node)\n default:\n return false\n }\n}\n\nfunction isFormElement(node: Node | null): boolean {\n if (!node || node.nodeType !== node.ELEMENT_NODE) {\n return false\n }\n const element = node as HTMLInputElement\n if (element.tagName === 'INPUT') {\n switch (element.type) {\n case 'button':\n case 'color':\n case 'reset':\n case 'submit':\n return false\n }\n }\n return !!FORM_PRIVATE_TAG_NAMES[element.tagName]\n}\n\n/**\n * Text censoring non-destructively maintains whitespace characters in order to preserve text shape\n * during replay.\n */\nexport const censorText = (text: string) => text.replace(/\\S/g, TEXT_MASKING_CHAR)\n\nexport function getTextContent(\n textNode: Node,\n ignoreWhiteSpace: boolean,\n parentNodePrivacyLevel: NodePrivacyLevel\n): string | undefined {\n // The parent node may not be a html element which has a tagName attribute.\n // So just let it be undefined which is ok in this use case.\n const parentTagName = textNode.parentElement?.tagName\n let textContent = textNode.textContent || ''\n\n if (ignoreWhiteSpace && !textContent.trim()) {\n return\n }\n\n const nodePrivacyLevel = parentNodePrivacyLevel\n\n const isScript = parentTagName === 'SCRIPT'\n\n if (isScript) {\n // For perf reasons, we don't record script (heuristic)\n textContent = CENSORED_STRING_MARK\n } else if (nodePrivacyLevel === NodePrivacyLevel.HIDDEN) {\n // Should never occur, but just in case, we set to CENSORED_MARK.\n textContent = CENSORED_STRING_MARK\n } else if (shouldMaskNode(textNode, nodePrivacyLevel)) {\n if (\n // Scrambling the child list breaks text nodes for DATALIST/SELECT/OPTGROUP\n parentTagName === 'DATALIST' ||\n parentTagName === 'SELECT' ||\n parentTagName === 'OPTGROUP'\n ) {\n if (!textContent.trim()) {\n return\n }\n } else if (parentTagName === 'OPTION') {\n //