{"version":3,"file":"assets/js/chunks/6666.5b18c20c8477cf80c6cd.js","mappings":"0LA0BA,KAAeA,EAAAA,EAAAA,KAlBSC,IAAyB,IAAxB,KAAEC,EAAOC,EAAAA,IAAUF,EAC1C,MAAM,SAAEG,IAAaC,EAAAA,EAAAA,MAEfC,GAAgBC,EAAAA,EAAAA,IAAYC,EAAAA,IAE5BC,EAAWL,EAASM,eAAe,CAAEC,YAAa,GAAFC,OAAKC,SAASC,QAAMF,OAAGN,KAE7E,OACES,EAAAA,cAACC,EAAAA,GAAqB,CACpBC,QAAS,CAAEC,KAAMC,EAAAA,IACjBC,UAAQ,EACRlB,KAAMA,EACNmB,MAAM,0BACNC,KAAMb,GACN,G,4HCEN,EAjBoBR,IAAkE,IAAjE,iBAAEsB,EAAgB,qBAAEC,EAAoB,iBAAEC,GAAkBxB,EAC/E,MAAMyB,GAAYnB,EAAAA,EAAAA,IAAYoB,EAAAA,IACxBC,GAAUrB,EAAAA,EAAAA,IAAYsB,EAAAA,IACtBC,EAAuBJ,GAAaE,EAE1C,OACEb,EAAAA,cAAA,OAAKgB,UAAWC,ICZG,QDYgBT,IACjCR,EAAAA,cAAA,OAAKgB,UAAWC,ICbkB,QDaGN,GCbuC,UDc1EX,EAAAA,cAACkB,EAAAA,EAAO,CAACF,UAAWC,ICdkC,QDcRR,GAAuBU,KAAM,gBAC1EJ,GACCf,EAAAA,cAAA,OAAKgB,UAAWC,IChB0E,QDgBpDP,GAAmBU,MAAO,CAAEC,gBAAiB,QAAFxB,OAAUgB,EAAO,UAGlG,C,6JETK,SAASS,EAAiBpC,GAAqB,IAApB,UAAEqC,EAAY,IAAIrC,EAC1D,MAAMsC,GAAQhC,EAAAA,EAAAA,IAAYiC,EAAAA,KACnBC,EAAMC,IAAWC,EAAAA,EAAAA,aACjBC,EAASC,IAAcC,EAAAA,EAAAA,KACxBC,GAA4BC,EAAAA,EAAAA,IAAUC,EAAAA,IAU5C,OARAC,EAAAA,EAAAA,YAAU,KACG,IAAAC,EAAPZ,IACFG,EAAmB,QAAZS,EAACZ,aAAK,EAALA,EAAOa,YAAI,IAAAD,EAAAA,EAAI,SACvBN,GAAW,GACXE,IACF,GACC,CAACR,IAEGxB,EAAAA,cAACsC,EAAAA,EAAa,CAACC,SAASC,EAAAA,EAAAA,IAAKd,GAAOG,QAASA,GACtD,C,wDC1BO,MAAMY,EAAiB,CAC5BC,qBAAsB,uBACtBC,4BAA6B,8BAC7BC,wBAAyB,0BACzBC,cAAe,gB,sKCCV,MAAMC,EAAoBC,GAAaC,IAGxBxD,EAAAA,EAAAA,IAAYoB,EAAAA,IAEXZ,EAAAA,cAAC+C,EAAcC,GAAY,KAIrCC,EAAuBF,GAAaC,IAGxBxD,EAAAA,EAAAA,IAAY0D,EAAAA,IAEXlD,EAAAA,cAAC+C,EAAcC,GAAY,KAGxC/D,EAAgB8D,GAAaC,IAGxBxD,EAAAA,EAAAA,IAAY2D,EAAAA,IAEXnD,EAAAA,cAAC+C,EAAcC,GAAY,KAGjCI,EAAkBL,GAAaC,IAG1BxD,EAAAA,EAAAA,IAAY2D,EAAAA,IAEiB,KAA3BnD,EAAAA,cAAC+C,EAAcC,E,4PCtBtBK,EAAiB,iBACjBC,EAAoB,oBACpBC,EAAmB,mBA8DnBC,EAAeC,IAAgE,IAA/D,OAAEC,EAAM,UAAE1C,EAAS,iBAAE2C,EAAgB,SAAEC,EAAQ,QAAEC,GAASJ,EACrF,MAAMK,GAAStE,EAAAA,EAAAA,IAAYuE,EAAAA,IACrBC,GAAOC,EAAAA,EAAAA,IAAgBP,EAAQI,GAIrC,MAlEkB5E,KAAwD,IAAvD,KAAE8E,EAAI,iBAAEL,EAAmBO,EAAAA,GAAI,QAAEL,GAAU,GAAO3E,EACrE,MAAOiF,EAAUC,IAAexC,EAAAA,EAAAA,UAASyB,GACnCgB,GAAgBpC,EAAAA,EAAAA,IAAUqC,EAAAA,IAC1BC,GAAmBtC,EAAAA,EAAAA,IAAUuC,EAAAA,IAC7BC,GAAWjF,EAAAA,EAAAA,IAAYmE,IAE7BxB,EAAAA,EAAAA,YAAU,KAER,GAAiB,OAAbsC,GAAsBT,EAE1B,OAAQG,GACN,KAAKd,EACHe,EAAYd,GAEZoB,EAAAA,EAAUC,SAASX,GAChBY,MAAK,IAAMF,EAAAA,EAAUG,cAAcb,EAAMS,KACzCG,MAAK,IAAMF,EAAAA,EAAUI,OAAOd,KAC5BY,MAAK,IAAMf,GAAWa,EAAAA,EAAUK,UAAUf,GAAMY,MAAKI,GAAQX,EAAcL,EAAMgB,OACjFJ,MAAK,IAAMR,EAAYb,KACvB0B,OAAMzD,GAAS0D,QAAQ1D,MAAM,yBAA0BA,KAC1D,MAGF,KAAK+B,EACHa,EAAYd,GACZiB,EAAiBP,GAEjBU,EAAAA,EAAUG,cAAcb,EAAMS,GAC3BG,MAAK,IAAMF,EAAAA,EAAUS,SAASnB,KAC9BY,MAAK,IAAMf,GAAWa,EAAAA,EAAUK,UAAUf,GAAMY,MAAKI,GAAQX,EAAcL,EAAMgB,OACjFJ,MAAK,IAAMR,EAAYb,KACvB0B,OAAMzD,GAAS0D,QAAQ1D,MAAM,kBAAmBA,KAIvD,GACC,CAAC4D,KAAKC,UAAUZ,MAEnBtC,EAAAA,EAAAA,YAAU,KAER,IAAImD,EAIJ,OAHInB,IAAab,IACfgC,EAAYC,YAAW,IAAMnB,EAAYb,IAAmB,EAAIiC,EAAAA,KAE3D,IAAMC,aAAaH,EAAU,GACnC,CAACnB,KAEJhC,EAAAA,EAAAA,YACE,IAAM,KACA6B,IACFU,EAAAA,EAAUgB,SAAS1B,GAAMiB,OAAMzD,GAAS0D,QAAQ1D,MAAM,wBAAyBA,KAC/E+C,EAAiBP,GACnB,GAEF,GAGkC,EAOpC2B,CAAY,CAAE3B,OAAML,mBAAkBE,YAGpC7D,EAAAA,cAAAA,EAAAA,SAAA,KACG4D,EACD5D,EAAAA,cAAA,OAAK4F,GAAI5B,EAAMhD,UAAWC,IAAWD,EAAW6C,GCrF7B,WDsFlB,EAIP,OAAegC,EAAAA,EAAAA,KAA+B,SAAiBC,GAA2B,IAA1B,OAAEpC,GAAsBoC,EAAXC,GAASC,EAAAA,EAAAA,GAAAF,EAAAG,GAGpF,OAFuBzG,EAAAA,EAAAA,KAAY0G,IAASC,EAAAA,EAAAA,IAAwCD,EAAOxC,KAIpF1D,EAAAA,cAACwD,GAAY4C,EAAAA,EAAAA,GAAA,CAACC,IAAK3C,EAAQA,OAAQA,GAAYqC,IAF1B,IAG9B,G,yNEhGA,EAAiP,QAAjP,EAA0Q,Q,qNCgB1Q,MAAMO,EAAcpH,IAAkC,IAAjC,IAAEqH,EAAG,UAAEvF,EAAS,SAAEwF,GAAUtH,EAC/C,OACEc,EAAAA,cAACyG,EAAAA,EAAa,CACZzF,UAAW0F,IDnB8F,QCmBpE1F,GACrCT,KAAMgG,EACNlG,UAAU,EACVsG,aAAa,EACbxG,KAAMyG,EAAAA,GACNC,QAAS,CAAEL,WAAUM,KAAMC,EAAAA,QAAmBC,UAAUF,KAAKG,QAC7D,EAsEN,MAlEyBC,KACvB,MAAM,UAAEC,IAAcC,EAAAA,EAAAA,GAASC,EAAAA,GAAUC,kBACnCC,GAAeC,EAAAA,EAAAA,GAAiBL,GAEtC,OACEnH,EAAAA,cAACyH,EAAAA,EAAK,CAACC,QAASL,EAAAA,GAAUC,kBACxBtH,EAAAA,cAAA,OAAKgB,UDnCqR,QCmC3P2G,QAASJ,GACtCvH,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,mBAEjBnB,EAAAA,cAAA,OAAKgB,UDtCY,SCuCfhB,EAAAA,cAAA,OAAKgB,UDvC6B,SCwChChB,EAAAA,cAAA,OAAKgB,UDxCmD,SCyCtDhB,EAAAA,cAAA,OAAK4H,IAAKC,KAEZ7H,EAAAA,cAAA,MAAIgB,UD3C2E,SC4C7EhB,EAAAA,cAAA,UACEA,EAAAA,cAAA,SAAG,sBAAsB,6CAE3BA,EAAAA,cAAA,UACEA,EAAAA,cAAA,SAAG,WAAW,gBAEhBA,EAAAA,cAAA,UACEA,EAAAA,cAAA,SAAG,eAAe,WAGtBA,EAAAA,cAAA,WACEA,EAAAA,cAACsG,EAAW,CACVC,IAAKuB,EAAAA,GACL9G,UDzDyH,QC0DzHwF,SAAUO,EAAAA,QAAmBC,UAAUe,OAAOC,UAEhDhI,EAAAA,cAACsG,EAAW,CACVC,IAAK0B,EAAAA,GACLjH,UD9D6I,QC+D7IwF,SAAUO,EAAAA,QAAmBC,UAAUe,OAAOG,QAIpDlI,EAAAA,cAAA,OAAKgB,UDnEkK,SCoErKhB,EAAAA,cAAA,OAAKgB,UDpEgL,SCoE5J,iEACzBhB,EAAAA,cAAA,MAAIgB,UDrE0M,SCsE5MhB,EAAAA,cAAA,MAAIgB,UAAWmH,GACbnI,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAACkB,EAAAA,EAAO,CAACqF,IAAK6B,KAEhBpI,EAAAA,cAAA,WAAK,+BAEPA,EAAAA,cAAA,MAAIgB,UAAWmH,GACbnI,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAACkB,EAAAA,EAAO,CAACqF,IAAK8B,KAEhBrI,EAAAA,cAAA,WAAK,8EAEPA,EAAAA,cAAA,MAAIgB,UAAWmH,GACbnI,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAACkB,EAAAA,EAAO,CAACqF,IAAK+B,KAEhBtI,EAAAA,cAAA,WAAK,sDAKP,ECpDZ,GAAeuI,EAAAA,EAAAA,IA1BarJ,IAAkC,IAAjC,KAAEC,EAAOqJ,EAAAA,GAAW,KAAE1B,GAAM5H,EACvD,MAAM,aAAEuJ,IAAiBrB,EAAAA,EAAAA,GAASC,EAAAA,GAAUC,kBAEtCoB,GAAgBC,EAAAA,EAAAA,GAAyBF,GAE/C,OACEzI,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACC,EAAAA,GAAqB,CACpB2I,QAASC,EACTC,MAAOC,EAAAA,GACPzI,MAAM,kBACNnB,KAAMA,EACNwI,QAASe,EACTxI,QAAS,CACPC,KAAMyG,EAAAA,GACNC,QAAS,CACPL,SAAUO,EAAAA,QAAmBC,UAAUe,OAAOF,OAC9Cf,WAIN9G,EAAAA,cAACkH,EAAgB,MAChB,G,kFC9BP,GAAe8B,EAAAA,EAAAA,KAFAC,IAAMjJ,EAAAA,cAAA,OAAKgB,UCHD,W,+LCUzB,MAAMkI,EAAmBhK,IAAmB,IAAlB,UAAE8B,GAAW9B,EACrC,MAAMiK,GAAmBlH,EAAAA,EAAAA,IAAUmH,EAAAA,GAEnC,OACEpJ,EAAAA,cAACqJ,EAAAA,EAAe,CAAClJ,KAAMmJ,EAAAA,GAAUC,YAAU,EAAC5B,QAASA,IAAMwB,KACzDnJ,EAAAA,cAAA,OAAKgB,UAAWC,ICfQ,QDekBD,IACxChB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,MAAMqI,EAAAA,EAAAA,MAAS,gBAAkB,kBAE5B,EAITC,GAAqBC,EAAAA,EAAAA,KAAW7D,EAAAA,EAAAA,IAA+BqD,IAE5E,OAAerD,EAAAA,EAAAA,IAA+BqD,E,sGEpB9C,MAAMS,EAAe3J,EAAAA,YAAiB,CAACgD,EAAO4G,IAE1C5J,EAAAA,cAAC6J,KAAazD,EAAAA,EAAAA,GAAA,CACZwD,IAAKA,EACLE,UAAQ,EACRC,SAAS,EACTC,gBAAgB,EAChBC,sBAAsB,EACtBC,gBAAgB,GACZlH,MAKV2G,EAAaQ,YAAc,eAE3B,O,+3BCTA,MAAMC,EACK,CACPC,OAAQ,IACRC,gBAAiB,6BAHfF,EAKK,CACPG,IAAK,MACLC,KAAM,MACNC,YAAa,OACbC,UAAW,wBACXC,MAAO,OACPC,OAAQ,OACRC,QAAS,EACTC,SAAU,OACVR,gBAAiB,QACjBS,aAAc,OACdC,OAAQ,gCAqDZ,OAAenF,EAAAA,EAAAA,KAjDD3G,IAQR,IARS,QACbwI,EAAO,SACP9D,EAAQ,aACRqH,EAAe,CAAC,EAAC,MACjB7J,EAAQ,CAAC,EAAC,gBACV8J,EAAe,mBACfC,GAAqB,GAEtBjM,EADIkM,GAAWpF,EAAAA,EAAAA,GAAA9G,EAAA+G,GAEd,MAAM,UAAEkB,EAAS,iBAAEkE,IAAqBjE,EAAAA,EAAAA,GAASM,GAC3C4D,GAAcrJ,EAAAA,EAAAA,IAAUmH,EAAAA,GAC9BmC,IAAAA,cAAqB,IAAD1L,OAAK2L,EAAAA,IAEzB,MAAMC,GAAyBjE,EAAAA,EAAAA,IAAiB,SAE1CkE,GAAiBlE,EAAAA,EAAAA,IAAiB,KAClC2D,EACFG,IAEAnE,GACF,GACC,CAACgE,EAAoBhE,IAExB,OACEnH,EAAAA,cAAA,QAAMgB,UCvDuB,QDuDM2G,QAAS8D,GAC1CzL,EAAAA,cAACuL,KAAMnF,EAAAA,EAAAA,GAAA,CACLhF,MAAO,CACLuK,QAAOC,EAAAA,EAAA,GACFxB,GACAa,GAELY,QAAOD,EAAAA,EAAA,GACFxB,GACAhJ,IAGP0K,2BAA2BtC,EAAAA,EAAAA,MAC3BkC,eAAgBA,EAChBK,OAAQV,GACJD,GAEHF,GAAmBlL,EAAAA,cAACkJ,EAAAA,EAAgB,CAAClI,UCxES,UDyE9C4C,GAEE,G,iFEzEX,MAAMoI,EAA6B,4BA6CnC,IA3C4BhJ,IAC1B,MAAM,MAAEiJ,EAAK,SAAEC,EAAQ,OAAEC,GAAWnJ,GAE7BoJ,EAAYC,IAAiBzK,EAAAA,EAAAA,UAASqK,GA4B7C,OA1BA9J,EAAAA,EAAAA,YAAU,KACRkK,EAAcJ,EAAM,GACnB,CAACA,IAyBFjM,EAAAA,cAAA,SAAAoG,EAAAA,EAAAA,GAAA,GACMpD,EAAK,CACTiJ,MAAOG,EACPjM,KAAK,SACLwH,QAhBgB2E,GAASA,EAAMC,OAAOC,QAiBtCN,SA5BiBI,IACnB,MACEC,QAAUN,MAAOQ,IACfH,EAECG,IAAeT,EAA2BU,KAAKD,IAClDJ,EAAcI,GAEhBP,GAAYA,EAASI,EAAM,EAqBzBH,OAhBeQ,KACjB,MAAML,EAAQ,CACZC,OAAQ,CACNN,OAAOW,EAAAA,EAAAA,IAAoBR,EAAY,KAG3CD,GAAUA,EAAOG,EAAM,IAWrB,C,6LCzCC,MAAMO,EAAkBC,GAAW,CAACC,EAAUC,KAAa,IAAAC,GAC3DC,EAAAA,EAAAA,GAAkB,QAAXD,EAACD,WAAU,IAAAC,GAAK,QAALA,EAAVA,EAAYE,WAAG,IAAAF,OAAA,EAAfA,EAAiBH,QAASA,IACrCC,EAAS,CACP5M,KAAMiN,EAAAA,EACNC,QAASP,GAEb,E,eCDF,GAAejH,EAAAA,EAAAA,KAA+B,WAC5C,MAAMyH,GAAsBrL,EAAAA,EAAAA,IAAU4K,GAEtC,OACE7M,EAAAA,cAACuN,EAAAA,EAAS,CACRC,WAAY,EACZC,OAAQC,EAAAA,EAAWC,YAAYF,OAC/BG,SAAUF,EAAAA,EAAWC,YAAYC,SACjCC,QAASC,IACPJ,EAAAA,EAAWK,OAAOD,GAClBR,EAAoBI,EAAAA,EAAWM,cAAc,EAE/CC,iBAAkBA,IAAMX,EAAoBI,EAAAA,EAAWM,gBAG7D,I,uFCsEA,GAAenI,EAAAA,EAAAA,KA1ECqI,KACd,MAAMC,GAAUC,EAAAA,EAAAA,UACVC,GAAOD,EAAAA,EAAAA,WACNE,EAAQC,IAAa3M,EAAAA,EAAAA,WAAS,GAE/B4M,GAAqBhP,EAAAA,EAAAA,IAAYiP,EAAAA,IACjCC,GAAqBlP,EAAAA,EAAAA,IAAYmP,EAAAA,IACjCC,GAA2BpP,EAAAA,EAAAA,IAAYqP,EAAAA,IACvCC,GAAStP,EAAAA,EAAAA,IAAYuP,EAAAA,IACrB5F,GAAmBlH,EAAAA,EAAAA,IAAUmH,EAAAA,GAQ7B4F,GAAkBxH,EAAAA,EAAAA,IAAiB8E,IAChB,IAAA2C,EAAL,MAAd3C,EAAMjG,MACI,QAAZ4I,EAAAZ,EAAKa,eAAO,IAAAD,GAAZA,EAAcE,cAChB,GACC,IAIGC,EAA2BA,IAAMC,SAASC,KAAKC,oBAAoB,UAAWP,GAE9EQ,EAAOA,KACXrG,IACAoF,GAAU,EAAM,GAGlBpM,EAAAA,EAAAA,YAAU,KACR,GAAKmM,EAEL,OAZ8Be,SAASC,KAAKG,iBAAiB,UAAWT,GAYjEI,CAAwB,GAC9B,CAACd,IAEJ,MAAMoB,EAAoBA,KACxB,MAAM,IAAEC,EAAG,IAAEC,GAAQhB,EACrBP,EAAKa,QAAU,IAAIW,OAAOC,aAAaC,KAAK5B,EAAQe,QAASR,EAAoB,CAC/EsB,QAAQC,EAAAA,EAAAA,MACRC,OAAQ,GAAFrQ,QAAKsQ,EAAAA,EAAAA,MAAW,QACtBC,QAAS,WAAFvQ,OAAagQ,OAAOQ,gBAAe,YAC1CvB,QAAQwB,EAAAA,EAAAA,IAAqBxB,KAE/BT,EAAKa,QAAQqB,OAAO,CAAEZ,MAAKa,IAAKZ,GAAM,EAexC,OAZAzN,EAAAA,EAAAA,YAAU,KACJqM,GAtCJ,qCAwCK5J,KAAK8K,GACL9K,MAAK,IAAM2J,GAAU,IAC1B,GACC,CAACC,KAEJrM,EAAAA,EAAAA,YAAU,IACD,IAAMqN,GACZ,IAEEhB,EAGHxO,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAK4J,IAAKuE,EAASnN,UAAW0F,ICnFb,QDmFgC8H,GCnFf,WDoFlCxO,EAAAA,cAAA,OAAKgB,UCpFgD,QDoFzB2G,QAAS6H,GACnCxP,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,oBANW,IAQ3B,IEvFP,EAA4B,Q,oICW5B,MAAMuC,EAAS,YA+Bf,MA7BexE,IAAoB,IAAnB,WAAEuR,GAAYvR,EAC5B,MAAMwR,GAAUC,EAAAA,EAAAA,IAAqBC,EAAAA,GAAmC,CAAEhL,GAAI6K,IACxE3M,GAAStE,EAAAA,EAAAA,IAAYuE,EAAAA,IACrBC,GAAOC,EAAAA,EAAAA,IAAgBP,EAAQI,GAC/B+M,GAASrR,EAAAA,EAAAA,KAAYsR,EAAAA,EAAAA,IAAmB9M,KACxC,UAAE+M,GAAcF,GAAU,CAAC,GAC3B,MAAEG,EAAK,KAAEtP,EAAI,UAAEuP,EAAS,OAAEC,EAAM,QAAEC,GAAYJ,GAAa,CAAC,EAGlE,OACE/Q,EAAAA,cAACoR,EAAAA,EAAc,CAAC/K,IAAG,kBAAAxG,OAAoB4Q,GAAcY,MAAO,KAC1DrR,EAAAA,cAACsR,EAAAA,GAAQ,CAACjL,IAAG,YAAAxG,OAAc4Q,GAAc/M,OAAQA,EAAQG,SAAO,EAACF,iBAJ5C4N,KAAA,CAASb,aAK5B1Q,EAAAA,cAAA,OAAKgB,UAAWC,ICzBI,SDyBoBuQ,EAAAA,EAAAA,IAAWX,ICzByE,YD0BxHW,EAAAA,EAAAA,IAAWX,IACX7Q,EAAAA,cAAA,KAAGgB,UC3BmC,QD2BTT,KAAM4Q,EAAS5E,OAAO,SAASkF,IAAI,gCAC9DzR,EAAAA,cAAA,OAAKgB,UC5B8C,QD4B3B4G,IAAKsJ,IAE7BlR,EAAAA,cAAA,OAAKgB,UC9BgF,SD+BnFhB,EAAAA,cAAA,OAAKgB,UC/B4D,SD+BvCgQ,GACzBtP,EAAK,IAAC1B,EAAAA,cAAA,QAAMgB,UChCsF,SDgCjEiQ,OAM7B,EE2BrB,EAtD4B/R,IAAsC,IAArC,WAAEuR,EAAU,iBAAEiB,GAAkBxS,EAC3D,MAAM,cAAEyS,EAAa,KAAEC,EAAI,MAAE9I,IAAU6H,EAAAA,EAAAA,IAAqBkB,EAAAA,GAAyB,CAAEjM,GAAI6K,KACpFqB,EAAqBC,IAAyBC,EAAAA,EAAAA,GAAW,KAIhE,IAFAC,EAAAA,EAAAA,GAA8BxB,IAEzBA,EAAY,OAAO,KAExB,MAIMyB,EAAaC,IACjBL,GAAoB,KAClBJ,GAAkB,GAClB,EAGEU,EAAc,EAAIC,OAAOV,EAAcW,OAAS,GAAKD,OAAOT,EAAKU,OAAS,GAEhF,OACEtS,EAAAA,cAAA,OAAKgB,UChCmB,QDgCKuR,YAbXJ,IAClBJ,GAAuB,EAYgCG,WAAYA,GACjElS,EAAAA,cAAA,OAAKgB,UAAW0F,ICjC6B,QDiCF,QAAF7G,OAAUuS,KACjDpS,EAAAA,cAAA,MAAIgB,UClCuD,SDmCxD2Q,EAAca,KAAI/O,IAAA,IAAC,GAAEmC,EAAE,OAAE6M,EAAM,MAAEnS,EAAK,UAAEoS,GAAWjP,EAAA,OAClDzD,EAAAA,cAAC2S,EAAAA,EAAmB,CAClBtM,IAAG,eAAAxG,OAAiB+F,GACpBA,GAAIA,EACJ6M,OAAQA,EACRnS,MAAOA,EACPoS,UAAWA,EACXjC,WAAYA,EACZ9I,QAASuK,GACT,IAEJlS,EAAAA,cAAA,MAAIgB,UC9C2E,UD+C9E4Q,EAAKY,KAAI1M,IAAA,IAAC,GAAEF,EAAE,KAAEvD,EAAI,eAAEuQ,GAAgB9M,EAAA,OACrC9F,EAAAA,cAAC6S,EAAAA,EAAmB,CAClBxM,IAAG,OAAAxG,OAAS+F,GACZA,GAAIA,EACJkN,KAAMF,EACNvQ,KAAMA,EACNoO,WAAYA,EACZ9I,QAASuK,GACT,KAGNlS,EAAAA,cAAC+S,EAAAA,GAAoB,CAACjK,MAAOA,KAE/B9I,EAAAA,cAACgT,EAAM,CAACvC,WAAYA,IAChB,E,kGEyCV,GAAe5K,EAAAA,EAAAA,KAA+B0C,EAAAA,EAAAA,IAAemB,EAAAA,EAAAA,KAjF7BuJ,KAC9B,MAAOxC,EAAYyC,IAAiBtR,EAAAA,EAAAA,YAC9BuR,GAAiClR,EAAAA,EAAAA,IAAUmR,EAAAA,IAC3CC,GAA8BpR,EAAAA,EAAAA,IAAUqR,EAAAA,KAE9CnR,EAAAA,EAAAA,YAAU,KACRgR,GAAgC,GAC/B,CAACA,IAEJ,MAAMI,GAAa/T,EAAAA,EAAAA,IAAYgU,EAAAA,IACzBC,GAAgCjU,EAAAA,EAAAA,IAAYkU,EAAAA,KAC3C5B,EAAqB6B,IAAyB3B,EAAAA,EAAAA,GAAW,KAE1DO,EAAc9B,GAAc0B,IAChCe,EAAczC,EAAW,EAOrBmD,EAAmBA,KACvBV,EAAc,KAAK,EAWfW,GAAkB5R,EAAAA,EAAAA,IAAU6R,EAAAA,GAC5BC,GAAiC9R,EAAAA,EAAAA,IAAU+R,EAAAA,IAkBjD,OAAOT,SAAAA,EAAYjB,OACjBtS,EAAAA,cAAA,OACEgB,UAAWyP,EAAa/J,IAAWyB,EL3EQ,SK2EqBA,EAChEoK,YA9BoBJ,IACtBwB,GAAuB,EA8BrBzB,WA3BmBC,IACrBL,EAAoB8B,EAAiB,GA4BnC5T,EAAAA,cAAA,MAAIgB,UL/E4D,SKgF7DuS,EAAWf,KAAItT,IAAA,IAAC,GAAE0G,EAAE,WAAEqO,EAAU,OAAExB,EAAM,MAAE3J,GAAO5J,EAAA,OAChDc,EAAAA,cAACkU,EAAAA,EAAgB,CACf7N,IAAG,YAAAxG,OAAc+F,GACjBA,GAAIA,EACJqO,WAAYA,EACZxB,OAAQA,EACR3J,MAAOA,EACPqL,SAAU1D,IAAe7K,EACzBwO,QAAS3D,EACT8B,YAAaA,EAAY3M,GACzByO,iBAjCcC,EAiCmB1O,EAjCVuM,IAC/B0B,EAAgB,CACd1T,KAAMoU,EAAAA,GACN1N,QAAS,CACP,CAAC2N,EAAAA,IAASF,EACV,CAACG,EAAAA,IAAmB,SAIpBhB,EACFJ,EAA4BiB,GAE5BP,EAA+BO,GAEjCV,GAAkB,KAdIU,KAkCd,KAGL7D,GAAczQ,EAAAA,cAAC0U,EAAmB,CAACjE,WAAYA,EAAYiB,iBAxD7CQ,KACjB0B,GAAkB,IAwDhB5T,EAAAA,cAAA,OAAKgB,UL/FqF,SKgGxFhB,EAAAA,cAAC2U,EAAAA,EAAmB,CAAC7N,KAAMC,EAAAA,QAAmBC,UAAUF,KAAK8N,WAG/D,IAAI,M,sEClFV,GAX4BC,KAC1B,MAAM1L,GAAmBlH,EAAAA,EAAAA,IAAUmH,EAAAA,GAC7B0L,GAAUtN,EAAAA,EAAAA,GAAiB2B,GAEjC,OACEnJ,EAAAA,cAAA,OAAKgB,UCXkB,QDWK2G,QAASmN,GACnC9U,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,kBACX,E,yGERV,GAFqB4T,IAAM/U,EAAAA,cAAA,OAAKgB,UCHT,QDG4BgU,MAAM,KAAKC,OAAO,KAAKrN,IAAKsN,GAAWC,IAAI,QAAQC,QAAQ,SEyB9G,IAAenS,EAAAA,GAAAA,KArBWoS,IACxBrV,EAAAA,cAAA,OAAKgB,UCRgB,SDSnBhB,EAAAA,cAAC6U,GAAmB,MACpB7U,EAAAA,cAAA,OAAKgB,UCVgC,SDWnChB,EAAAA,cAAA,OAAKgB,UCXsD,SDYzDhB,EAAAA,cAAA,OAAK4H,IAAK0N,GAAoBN,MAAM,MAAMC,OAAO,MAAMG,QAAQ,SAC/DpV,EAAAA,cAAA,KAAGgB,UCbuE,SDalD,aACZhB,EAAAA,cAAC+U,GAAY,OAEzB/U,EAAAA,cAAA,KAAGgB,UChBwF,SDgBnE,mBACxBhB,EAAAA,cAAA,MAAIgB,UCjBsG,SDkBxGhB,EAAAA,cAAA,UAAI,iCACJA,EAAAA,cAAA,UAAI,yCACJA,EAAAA,cAAA,UAAI,kDAENA,EAAAA,cAACuV,GAAAA,EAAe,W,oCEfxB,GAJ0BrW,IAAkB,IAAjB,SAAE0E,GAAU1E,EACrC,OAAOc,EAAAA,cAAA,OAAKgB,UAAW0F,ICJF,UDIuB9C,EAAe,E,YE2B7D,GArByB1E,IAAgD,IAA/C,SAAE0E,EAAQ,cAAE4R,EAAa,MAAEC,GAAQ,GAAOvW,EAClE,MAAMwW,GAAkBlW,EAAAA,EAAAA,IAAYmW,EAAAA,IAC9BC,GAAsB3T,EAAAA,EAAAA,IAAU4T,GAAAA,IAEhCC,GAAStO,EAAAA,EAAAA,IAAiB,IAAMoO,EAAoBG,GAAAA,GAAaC,WAEvE,OACEhW,EAAAA,cAAA,OAAKgB,UAAW0F,ICjBG,QDiBgB+O,GCjBA,UDkBjCzV,EAAAA,cAAA,OAAKgB,UClB2C,UDmB5C0U,GACA1V,EAAAA,cAAA,OAAKgB,UCpBsF,QDoBnE2G,QAASmO,GAC/B9V,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,cAIrBnB,EAAAA,cAAA,OAAKgB,UAAS,GAAAnB,OCzBkE,UDyBjD+D,GAC/B5D,EAAAA,cAAA,OAAKgB,UC1B2D,SD0BtCwU,GACtB,EE3BV,IAAgB,KAAO,QAAQ,QAAU,QAAQ,OAAS,QAAQ,QAAU,QAAQ,aAAe,QAAQ,QAAU,QAAQ,iBAAmB,QAAQ,MAAQ,QAAQ,QAAU,QAAQ,SAAW,S,2DCarM,MAAMS,GAAkB/W,IAAiC,IAAhC,MAAEoB,EAAK,QAAE4V,EAAO,QAAEhW,GAAShB,EAClD,OACEc,EAAAA,cAACqJ,GAAAA,GAAejD,EAAAA,GAAAA,GAAA,CAACpF,UAAWmH,GAAE0D,SAAa3L,GACxCI,EACCN,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE7H,OAAQA,GAC1BN,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE+N,SAAUA,IAG9BlW,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE7H,OAAQ4V,GAEZ,EA4DtB,OAxDgCzS,IAW1B,IAX2B,MAC/B0S,EAAK,KACLC,EAAI,MACJ9V,EAAK,QACL4V,EAAO,QACPG,EAAO,OACPC,EAAM,WACNC,EAAU,WACVC,GAAa,EAAK,YAClBC,EAAW,YACXC,GACDjT,EACC,MAAMkT,GAAYH,IAAeJ,EAC3BQ,GAAiB3U,EAAAA,EAAAA,IAAU4U,EAAAA,IAC3BC,GAAuB7U,EAAAA,EAAAA,IAAU8U,GAAAA,IACjCC,GAAuB/U,EAAAA,EAAAA,IAAUgV,GAAAA,IAEjCC,GAAc1P,EAAAA,EAAAA,IAAiB,KAC9B4O,GAGHY,IACIb,EACFS,EAAe,CAAEO,MAAOC,GAAAA,GAAqBC,aAAc,CAAEC,YAAanB,MAE1EW,EAAqBZ,GACrBU,EAAe,CAAEO,MAAOI,GAAAA,GAAeF,aAAc,CAAEvX,SAAUoW,OAPnEI,GASF,GACC,CAACF,EAAM9V,EAAO4V,EAASC,IAEpBzN,GAAgBlB,EAAAA,EAAAA,IAAiB,KACrC8O,EAAOF,EAAK,IAGd,OACEpW,EAAAA,cAAA,OAAKgB,UAAWC,IAAWkH,GAAEqP,KAAMrP,GAAEsP,iBAAkBd,GAAYxO,GAAEwO,UAAWhP,QAASuP,GACvFlX,EAAAA,cAAA,OAAKgB,UAAWC,IAAWkH,GAAEkO,QAASlO,GAAEkO,KACtCrW,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAMkV,KAEjBrW,EAAAA,cAACiW,GAAe,CAAC3V,MAAOA,EAAO4V,QAASA,EAAShW,QAASwW,IAC1D1W,EAAAA,cAAA,OAAKgB,UAAWmH,GAAEuP,SACff,EACC3W,EAAAA,cAAC2X,GAAAA,EAAQ,MAETvB,GACEpW,EAAAA,cAAC4X,GAAAA,EAAY,CAAC5W,UAAWmH,GAAE0P,aAAc3X,QAASuW,EAAa9O,QAASe,GACtE1I,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAMoV,MAKnB,E,oCCxDV,MAAMuB,GAAeA,CAAC3X,EAAMmW,KAAW,CACrCnW,KAAM4X,EAAAA,GACNlR,QAAS,CAAE,CAACmR,EAAAA,IAAS1B,EAAQ,CAAC2B,EAAAA,IAAO9X,KA4FvC,OAzFsB+X,KACpB,MAAM,KAAEC,EAAI,KAAEC,EAAI,OAAEC,IAAW7Y,EAAAA,EAAAA,IAAY8Y,GAAAA,KAAwB,CAAC,EAC9DC,GAAqBtW,EAAAA,EAAAA,IAAUuW,GAAAA,IAC/B5C,GAAsB3T,EAAAA,EAAAA,IAAU4T,GAAAA,IAEhC4C,EAAiBtY,GAAQyV,EAAoBG,GAAAA,GAAa0C,eAAgB,CAAEtY,SAC5EuY,EAAiBtC,GAAQmC,EAAmB,CAAEnC,SAE9CuC,GAAsBnZ,EAAAA,EAAAA,IAAYoZ,GAAAA,IAElCC,GAAeC,EAAAA,EAAAA,cAAY,KAC/B,GAAIH,EACF,OACE3Y,EAAAA,cAACC,GAAAA,GAAqB,CACpBK,MAAM,UACNwI,MAAOiQ,GAAAA,GACP5Z,KAAMqJ,GAAAA,GACNb,QAASA,IAAM8Q,EAAeO,GAAAA,GAAeC,OAC7C/Y,QAAS4X,GACP/Q,EAAAA,QAAmBmS,KAAKC,UAAUhZ,KAAKiZ,MACvCrS,EAAAA,QAAmBmS,KAAKC,UAAU7C,OAAO+C,UAIjD,GACC,CAACZ,IAEJ,OACEzY,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACsZ,GAAgB,CAAC9D,cAAeqD,KAAiB,qBAClD7Y,EAAAA,cAACsB,GAAAA,EAAiB,CAACC,WAAY,KAC/BvB,EAAAA,cAACuZ,GAAiB,KAChBvZ,EAAAA,cAACwZ,IAAgBpT,EAAAA,GAAAA,GAAA,CACfC,IAAK8R,aAAI,EAAJA,EAAM/B,KACXF,SAAS1T,EAAAA,GAAAA,IAAK,0CACd6T,QAASoD,GAAAA,IACLtB,EAAI,CACR7B,OAAQA,IAAMmC,EAAeO,GAAAA,GAAeU,MAC5CpZ,OAAOkC,EAAAA,GAAAA,IAAK,6BACZ+T,WAAY,YACZC,YAAU,EACVC,YAAaqB,GACX/Q,EAAAA,QAAmBmS,KAAKC,UAAUhZ,KAAKgY,KACvCpR,EAAAA,QAAmBmS,KAAKC,UAAU7C,OAAOqD,UAE3CjD,YAAaoB,GACX/Q,EAAAA,QAAmBmS,KAAKC,UAAUhZ,KAAKgY,KACvCpR,EAAAA,QAAmBmS,KAAKC,UAAU7C,OAAOsD,aAG7C5Z,EAAAA,cAACwZ,IAAgBpT,EAAAA,GAAAA,GAAA,CACfC,IAAK+R,aAAI,EAAJA,EAAMhC,KACXF,SAAS1T,EAAAA,GAAAA,IAAK,0CACd6T,QAASwD,GAAAA,IACLzB,EAAI,CACR9B,OAAQA,IAAMmC,EAAeO,GAAAA,GAAec,MAC5CxZ,OAAOkC,EAAAA,GAAAA,IAAK,6BACZ+T,WAAY,YACZC,YAAU,EACVC,YAAaqB,GACX/Q,EAAAA,QAAmBmS,KAAKC,UAAUhZ,KAAKiY,KACvCrR,EAAAA,QAAmBmS,KAAKC,UAAU7C,OAAOqD,UAE3CjD,YAAaoB,GACX/Q,EAAAA,QAAmBmS,KAAKC,UAAUhZ,KAAKiY,KACvCrR,EAAAA,QAAmBmS,KAAKC,UAAU7C,OAAOsD,cAG3CvB,GAAU,IAAI7F,KAAI,CAAC4G,EAAOW,IAC1B/Z,EAAAA,cAACwZ,IAAgBpT,EAAAA,GAAAA,GAAA,CACfC,IAAK+S,EAAMhD,MAAQ2D,GACfX,EAAK,CACT9C,OAAQoC,EACRnC,WAAY,WACZE,YAAaqB,GACX/Q,EAAAA,QAAmBmS,KAAKC,UAAUhZ,KAAKiZ,MACvCrS,EAAAA,QAAmBmS,KAAKC,UAAU7C,OAAO0D,YAE3CtD,YAAaoB,GACX/Q,EAAAA,QAAmBmS,KAAKC,UAAUhZ,KAAKiZ,MACvCrS,EAAAA,QAAmBmS,KAAKC,UAAU7C,OAAOsD,gBAKhD,E,wBCvEP,IAAe/T,EAAAA,EAAAA,KA/BWoU,KACxB,MAAMC,GAA+BjY,EAAAA,EAAAA,IAAUkY,GAAAA,IACzCvE,GAAsB3T,EAAAA,EAAAA,IAAU4T,GAAAA,KAEtC1T,EAAAA,EAAAA,YAAU,KACR+X,GAA8B,GAC7B,IAEH,MAAME,GAAa5S,EAAAA,EAAAA,IAAiB,IAAMoO,EAAoBG,GAAAA,GAAaC,WAE3E,OACEhW,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACsZ,GAAgB,KAAE,8BACnBtZ,EAAAA,cAACuZ,GAAiB,KAChBvZ,EAAAA,cAAA,OAAKgB,UC1BoB,SD2BvBhB,EAAAA,cAACqa,GAAAA,EAAa,MACdra,EAAAA,cAAA,OAAKgB,UC5ByC,SD6B5ChB,EAAAA,cAACC,GAAAA,GAAqB,CACpB0H,QAASyS,EACTjb,KAAMC,GAAAA,GACN0J,MAAOwR,GAAAA,GACPtZ,UCjCmE,QDkCnEV,MAAM,kCAKb,I,wBEvCP,GAA0N,Q,YCsB1N,GAfmBpB,IAAkB,IAAjB,SAAE0E,GAAU1E,EAC9B,MAAM,SAAEG,IAAaC,EAAAA,GAAAA,MACfC,GAAgBC,EAAAA,EAAAA,IAAYC,EAAAA,IAE5B8a,GAAW/S,EAAAA,EAAAA,IAAiB,KAChCnI,EAASmb,OAAO,CAAE5a,YAAa,GAAFC,OAAKC,SAASC,QAAMF,OAAGN,IAAkB,GACrE,CAACA,IAEJ,OACES,EAAAA,cAACqJ,GAAAA,EAAe,CAAClJ,KAAMsa,EAAAA,GAA8B9S,QAAS4S,EAAUhR,YAAU,GAC/E3F,EACe,E,wBCCtB,MAAM8W,GAAexb,IAAoC,IAAnC,OAAEoX,EAASpS,GAAAA,GAAI,KAAE/C,EAAI,MAAEb,GAAOpB,EAClD,OACEc,EAAAA,cAAA,MAAI2H,QAAS2O,EAAQtV,UFrBwI,SEsB3JhB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAMA,EAAMH,UAAWmH,KAChCnI,EAAAA,cAAA,OAAKgB,UFvB2O,SEuB1MV,GACtCN,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,iBAAkBH,UFxB2O,UEyBzQ,EAIH2Z,GAAkBlX,IAA6B,IAA5B,IAAE8C,EAAG,MAAEjG,EAAK,QAAEsa,GAASnX,EAC9C,OACEzD,EAAAA,cAACyG,GAAAA,EAAa,CAACtG,KAAMya,EAASra,KAAMgG,EAAKvF,UF/BkJ,SEgCxLV,EACa,EA2DpB,OAvDiBua,KACf,MAAMC,GAAWtb,EAAAA,EAAAA,IAAYub,GAAAA,IACvBnF,GAAsB3T,EAAAA,EAAAA,IAAU4T,GAAAA,IAChCmF,GAAoB/Y,EAAAA,EAAAA,IAAUgZ,GAAAA,IAC9BC,GAAwBjZ,EAAAA,EAAAA,IAAUkZ,GAAAA,KAClC,SAAE9b,IAAaC,EAAAA,GAAAA,MACf8b,GAAaC,EAAAA,EAAAA,IACjBC,GAAAA,EAASC,SAAQ,wDAAA1b,OAEfR,EAASmc,MAAK,4CAAA3b,OAC2B4b,mBACzC5L,OAAO/P,SAASS,MACjB,yBAAAV,OAAwB4b,mBAAmB5L,OAAO/P,SAASC,UAC5DwG,IAYF,OACEvG,EAAAA,cAAA,OAAKgB,UF/Dc,SEgEjBhB,EAAAA,cAAC6U,GAAmB,MACpB7U,EAAAA,cAACuZ,GAAiB,KAChBvZ,EAAAA,cAAA,OAAKgB,UFlE4B,SEmE/BhB,EAAAA,cAAA,OAAKgB,UFnE2C,SEoE9ChB,EAAAA,cAAC0b,GAAAA,EAAW,OAEd1b,EAAAA,cAAA,OAAKgB,UFtE8D,SEsEtC8Z,GAC7B9a,EAAAA,cAAA,MAAIgB,UFvEmG,SEwErGhB,EAAAA,cAAC0a,GAAY,CAACpa,MAAO,oBAAqBa,KAAM,QAASmV,OAfvCqF,KAC1BX,IACOpF,EAAoBG,GAAAA,GAAaoD,cAchCnZ,EAAAA,cAAC0a,GAAY,CAACpa,MAAO,6BAA8Ba,KAAM,SAAUmV,OArB7CsF,KAC9BV,IACOtF,EAAoBG,GAAAA,GAAa8F,mBAqBlC7b,EAAAA,cAAA,OAAKgB,UF3E2H,SE4E9HhB,EAAAA,cAAC2a,GAAe,CAACra,MAAO,mBAAoBiG,IAAK6U,EAAYR,QAASkB,EAAAA,KACtE9b,EAAAA,cAAC+b,GAAU,KACT/b,EAAAA,cAAA,OAAKgB,UF9E2E,SE+E9EhB,EAAAA,cAAA,QAAMgB,UF/EyR,SEgF7RhB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,cAAeH,UAAWmH,MACpC,sBAOb,E,uBCxFV,I,SAAuB,S,+CCOvB,MAAM6T,IAAgBC,EAAAA,EAAAA,aAAW,CAACjZ,EAAO4G,KACvC,MAAM,MAAEqC,EAAK,SAAEC,EAAQ,UAAElL,EAAS,YAAEkb,GAAgBlZ,EAE9CmZ,EAAoBC,GAAAA,EAAkBC,OAAOC,OAC7CC,GAActa,EAAAA,EAAAA,IAAUua,GAAAA,IACxBC,GAAoBxa,EAAAA,EAAAA,IAAUya,GAAAA,KAC7BC,EAAeC,IAAoBhb,EAAAA,EAAAA,WAAS,GAC7Cib,GAAWzO,EAAAA,EAAAA,UACX0O,GAAiBC,EAAAA,GAAAA,GAAY9Q,EAAO,KACpC+Q,GAA8B5O,EAAAA,EAAAA,SAAO,GAErC6O,GAAWnE,EAAAA,EAAAA,cAAY,KAC3B2D,EAAkBxQ,GAClB2Q,GAAiB,GACVM,QAAQC,UAAUvY,MAAK,IAAMwY,QACnC,CAACnR,KAEJoR,EAAAA,EAAAA,qBAAoBzT,GAAK,KAChB,CAAEqT,eAGX,MAAMK,EAAYC,GACZZ,GACFC,GAAiB,GACVM,QAAQC,YAEjBV,EAAkBc,GACXhB,EAAY,CAAEiB,MAAOD,EAAKpB,wBAGnCha,EAAAA,EAAAA,YAAU,KACJ6a,EAA4B9N,SAC9BoO,EAAUR,GAEZE,EAA4B9N,SAAU,CAAI,GACzC,CAAC4N,IAEJ,MASMM,EAAOA,IAAMP,GAAYA,EAAS3N,QAAQkO,OAEhD,OACEpd,EAAAA,cAAA,OAAKgB,UAAW0F,ICxDQ,QDwDgB1F,IACtChB,EAAAA,cAAA,SACE4J,IAAKiT,EACL1c,KAAK,OACLyF,GAAG,gBACHqG,MAAOA,EACPjL,UC9DoC,QD+DpCkb,YAAaA,EACbuB,QAhBctL,IAClBA,EAAE5F,OAAOmR,SACTJ,EAAUrR,EAAM,EAeZC,SArBeI,IACnBJ,GAAYA,EAAS,CAAED,MAAOK,EAAMC,OAAON,OAAQ,EAqB/C0R,aAAa,MACbC,WAAS,IAEP,IAIV5B,GAAc7R,YAAc,gBAC5B,U,qlBEJA,OAvD2B0T,KAAM,IAAAC,EAAAC,EAC/B,MAAMnI,GAAsB3T,EAAAA,EAAAA,IAAU4T,GAAAA,IAChCzM,EAAeA,IAAMwM,EAAoBG,GAAAA,GAAaoD,YACtD,KAAEhZ,IAASX,EAAAA,EAAAA,IAAYwe,EAAAA,IACvB7E,GAAY3Z,EAAAA,EAAAA,IAAY8Y,GAAAA,IACxB2F,GAAYhc,EAAAA,EAAAA,IAAUic,GAAAA,IACtBC,GAAiBlc,EAAAA,EAAAA,IAAUmc,GAAAA,IAC3BC,EAAyC,QAA7BP,EAAG3E,SAAiB,QAAR4E,EAAT5E,EAAYhZ,UAAK,IAAA4d,OAAA,EAAjBA,EAAmB7H,eAAO,IAAA4H,EAAAA,EAAI,IAC5C7R,EAAOqS,IAAY1c,EAAAA,EAAAA,UAASyc,GAE7BnC,GAAc1c,EAAAA,EAAAA,IAAY+e,EAAAA,IA4BhC,OACEve,EAAAA,cAAA,OAAKgB,UAAWmH,IACdnI,EAAAA,cAAA,OAAKgB,UHvD6B,SGwDhChB,EAAAA,cAAA,OAAKgB,UHxD4D,QGwDzC2G,QAASyB,GAC/BpJ,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAK,aAEhBnB,EAAAA,cAAA,QAAMgB,UH3D0E,QG2DvDic,SAAU9K,GAAKA,EAAEqM,kBACxCxe,EAAAA,cAACgc,GAAa,CAACE,YAAaA,EAAajQ,MAAOA,EAAOC,SAX9ChN,IAAoB,IAAjB+M,MAAOsR,GAAKre,EAC9Bof,EAASf,EAAI,MAaXvd,EAAAA,cAAA,OAAKgB,UH/D+C,SGgElDhB,EAAAA,cAACye,GAAAA,EAAc,CAAC9W,QArCG+W,IACvB,MAAMC,EAA4B,QAApBD,EAAWve,KACnB+V,GAAU0I,EAAAA,GAAAA,IAAyBD,EAAQD,EAAWG,OAAO,GAAKH,EAAWG,OAAOC,KAAK,MAE/F,IAAIC,EAAAA,GAAAA,IAAiB5e,EAAM6Y,GAAAA,GAAeC,OAAQ,CAChD,MAAM+F,EAAQpT,GAAAA,GAAA,GACR+S,EAAQ,CAAEre,OAAOse,EAAAA,GAAAA,IAAyBF,EAAWG,OAAO,KAAQ,CAAC,GAAC,IAC1E3I,UACA/V,SAEF8d,EAAUe,EACZ,KAAO,KAAAC,EACL,MAAMD,EAAQpT,GAAAA,GAAA,IACTsT,EAAAA,EAAAA,IAAsB,QAAlBD,EAAC9F,aAAS,EAATA,EAAYhZ,UAAK,IAAA8e,EAAAA,EAAI,CAAC,EAAG,CAAC,OAAQ,cAAY,IACtD/I,UACA/V,SAEFge,EAAea,EACjB,CACA5V,GAAc,EAkBiC+V,kBAAgB,KAEzD,ECzCV,IAAerc,EAAAA,GAAAA,KAhBWsc,KAGxB,QAFe5f,EAAAA,EAAAA,IAAY6f,EAAAA,KAGzB,KAAKtJ,GAAAA,GAAaoD,UAChB,OAAOnZ,EAAAA,cAACkY,GAAa,MACvB,KAAKnC,GAAAA,GAAa0C,eAChB,OAAOzY,EAAAA,cAAC6d,GAAkB,MAC5B,KAAK9H,GAAAA,GAAa8F,cAChB,OAAO7b,EAAAA,cAACia,GAAiB,MAC3B,KAAKlE,GAAAA,GAAaC,QAClB,QACE,OAAOhW,EAAAA,cAAC6a,GAAQ,MACpB,I,YCdF,MAAMyE,G,OAAIC,GAAM,YCRhB,I,YCiCA,IAAenc,EAAAA,GAAAA,KA7Baoc,IAExBxf,EAAAA,cAAA,WACEA,EAAAA,cAAC6U,GAAmB,MACpB7U,EAAAA,cAACyf,GAAAA,GAAa,CACZC,MAAO,EACP1K,MAAO,IACPC,OAAQ,IACR0K,QAAQ,cACRrV,gBAAgB,UAChBsV,gBAAgB,WAEhB5f,EAAAA,cAAA,QAAM6f,EAAE,MAAMC,EAAE,MAAMC,GAAG,IAAIC,GAAG,IAAIhL,MAAM,KAAKC,OAAO,OACtDjV,EAAAA,cAAA,QAAM6f,EAAE,KAAKC,EAAE,MAAMC,GAAG,IAAIC,GAAG,IAAIhL,MAAM,MAAMC,OAAO,OACtDjV,EAAAA,cAAA,QAAM6f,EAAE,KAAKC,EAAE,MAAMC,GAAG,IAAIC,GAAG,IAAIhL,MAAM,MAAMC,OAAO,MACtDjV,EAAAA,cAAA,UAAQigB,GAAG,MAAMC,GAAG,KAAKC,EAAE,OAC3BngB,EAAAA,cAAA,QAAM6f,EAAE,KAAKC,EAAE,MAAMC,GAAG,IAAIC,GAAG,IAAIhL,MAAM,MAAMC,OAAO,MACtDjV,EAAAA,cAAA,QAAM6f,EAAE,KAAKC,EAAE,MAAMC,GAAG,IAAIC,GAAG,IAAIhL,MAAM,MAAMC,OAAO,MACtDjV,EAAAA,cAAA,UAAQigB,GAAG,KAAKC,GAAG,MAAMC,EAAE,MAC3BngB,EAAAA,cAAA,QAAM6f,EAAE,KAAKC,EAAE,MAAMC,GAAG,IAAIC,GAAG,IAAIhL,MAAM,KAAKC,OAAO,OACrDjV,EAAAA,cAAA,QAAM6f,EAAE,KAAKC,EAAE,MAAMC,GAAG,IAAIC,GAAG,IAAIhL,MAAM,MAAMC,OAAO,MACtDjV,EAAAA,cAAA,QAAM6f,EAAE,KAAKC,EAAE,MAAMC,GAAG,IAAIC,GAAG,IAAIhL,MAAM,MAAMC,OAAO,OACtDjV,EAAAA,cAAA,UAAQigB,GAAG,KAAKC,GAAG,MAAMC,EAAE,MAC3BngB,EAAAA,cAAA,QAAM6f,EAAE,KAAKC,EAAE,MAAMC,GAAG,IAAIC,GAAG,IAAIhL,MAAM,MAAMC,OAAO,WCI9D,IAAemL,EAAAA,EAAAA,IAAwBC,GAAAA,GAAvC,EAlBiBC,KACf,MAAM,cAAEC,IAAkBC,EAAAA,GAAAA,GAAaC,GAAAA,GAAYC,MAGnD,OHLa,WACb,MAAM,SAAErhB,EAAQ,YAAEshB,IAAgBrhB,EAAAA,GAAAA,MAC5BshB,GAAaxS,EAAAA,EAAAA,UAEbyS,GAAuB5e,EAAAA,EAAAA,IAAU6e,GAAAA,IACjCC,GAA0B9e,EAAAA,EAAAA,IAAU+e,GAAAA,IACpCC,GAAoBhf,EAAAA,EAAAA,IAAU4T,GAAAA,IAC9BqL,GAAejf,EAAAA,EAAAA,IAAUkf,GAAAA,KAE/Bhf,EAAAA,EAAAA,YAAU,KACR,GAAIwe,EAAa,CACf,IAA+B,IAA3BthB,EAAS+hB,cAAwB,CACnC,MAAM5F,EAAQnc,EAASmc,MACvB8D,GAAE,yBAA0BjgB,EAASgiB,eACrC,MAAMC,GAAWpC,EAAAA,EAAAA,IAAK7f,EAASgiB,cAAe,CAAC,OAAQ,UAAW,QAASE,GAAAA,GAAgBC,GAAAA,KAC3FlC,GAAE,mBAAoB9D,EAAO,gBAAiBnc,EAASgiB,eACvDR,EAAqB,CAAErF,QAAO8F,YAChC,MAAsC,IAA3BjiB,EAAS+hB,gBAClB9B,GAAE,iBACFyB,KAEFE,EAAkBlL,GAAAA,GAAaC,QACjC,IACC,CAAC2K,EAAathB,EAAS+hB,gBAE1B,MAAMK,EAAqBA,IACzBpiB,EACGqiB,YA7B2B,IA8B3B9c,MAAK+c,IACJrC,GAAE,sCAAuCqC,EAAuB,YAAatiB,EAASmc,OACtF0F,EAAa7hB,EAASmc,MAAM,IAE7BvW,OAAMkN,IACLmN,GAAE,uCAAwCnN,GAC1C4O,GAAyB,KAG/B5e,EAAAA,EAAAA,YAAU,KACR,MAAMyf,EAAyBA,KACzBviB,EAAS+hB,gBACX9B,GAAE,0BACEjgB,EAASwiB,eA3Ca,MA4CxBvC,GAAE,uBACFmC,KAEFb,EAAW1R,QAAU3J,WAAWqc,EAAwBE,KAC1D,EAKF,OAHIziB,EAAS+hB,gBACXR,EAAW1R,QAAU3J,WAAWqc,EAAwBE,MAEnD,KACLrc,aAAamb,EAAW,CACzB,GACA,CAACvhB,EAAS+hB,cAAeR,KAE5Bze,EAAAA,EAAAA,YAAU,KACR9C,EAAS0iB,eAAiB,KACxBzC,GAAE,iBACFmC,GAAoB,CACrB,GACA,GACL,CG3DEO,GAGEhiB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACiiB,GAAAA,EAAM,KACLjiB,EAAAA,cAAA,QAAMgB,UAAW0F,IAAW6Z,GAAiB,mBAE/CvgB,EAAAA,cAAA,OAAKgB,UAAW0F,IFtBC,QEsBkB6Z,GFtBE,UEuBnCvgB,EAAAA,cAACwf,GAAmB,MACpBxf,EAAAA,cAACqV,GAAiB,MAClBrV,EAAAA,cAACof,GAAiB,OAEnB,I,wBC3BP,GAAkE,QAAlE,GAAyF,QAAzF,GAA6G,QAA7G,GAAiI,QAAjI,GAAgJ,QAAhJ,GAAiP,QAAjP,GAAoQ,Q,+XCapQ,MAAM8C,GAAY,CAChB,CACE/M,IAAK,uBACLgN,S,wDACAC,OAAQ,C,2DAEV,CACEjN,IAAK,yBACLgN,SAAUE,GACVD,OAAQ,CAACE,KAEX,CACEnN,IAAK,6BACLgN,SAAUI,GACVH,OAAQ,CAACI,KAEX,CACErN,IAAK,cACLgN,SAAUM,GACVL,OAAQ,CAACM,MAIAC,IAAgCjZ,EAAAA,EAAAA,KAAW,KACtD,MAAOkZ,EAAWC,IAAgBjhB,EAAAA,EAAAA,UAAS,GACrCkhB,GAAa1U,EAAAA,EAAAA,UAsBb2U,EAAsBC,GAAgBJ,IAAcI,ED5DiI,QAA5B,QC8D/J,OACEhjB,EAAAA,cAAA,OAAKgB,UD/D0B,SCgE7BhB,EAAAA,cAAA,OAAKgB,UDhEkR,SCiErRhB,EAAAA,cAAA,OAAKgB,UAAWmH,GAAkBR,QAjBdsb,KACxBH,EAAW5T,QAAQgU,QACnBJ,EAAW5T,QAAQiU,aAAaL,EAAW5T,QAAQkU,kBAAoB,GACvEN,EAAW5T,QAAQmU,MAAM,GAenBrjB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,UAAWH,UAAWmH,MAEvCnI,EAAAA,cAAA,OAAKgB,UDpEyS,SCqE5ShB,EAAAA,cAAC2J,GAAAA,EAAY,CACXC,IAAKkZ,EACLQ,MAAOpB,GACPqB,cAhCYC,IACpBX,EAAaW,EAAU,EAgCfC,UAAQ,EACRC,cAAe,OAGnB1jB,EAAAA,cAAA,OAAKgB,UAAWmH,GAAkBR,QAvBlBgc,KACpBb,EAAW5T,QAAQgU,QACnBJ,EAAW5T,QAAQiU,aAAaL,EAAW5T,QAAQkU,kBAAoB,GACvEN,EAAW5T,QAAQmU,MAAM,GAqBnBrjB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,iBAAkBH,UAAWmH,OAGjC,IAAdya,GACC5iB,EAAAA,cAAA,OAAKgB,UAAWmH,IACdnI,EAAAA,cAAA,MAAIgB,UAAWmH,IAAgB,2CAC/BnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,OAAQH,UAAWmH,KAAU,mCAG9CnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,OAAQH,UAAWmH,KAAU,+BAMrC,IAAdya,GACC5iB,EAAAA,cAAA,OAAKgB,UAAWmH,IACdnI,EAAAA,cAAA,MAAIgB,UAAWmH,IAAgB,+CAC/BnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,OAAQH,UAAWmH,KAAU,UAG9CnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,OAAQH,UAAWmH,KAAU,WAG9CnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,OAAQH,UAAWmH,KAAU,sBAMrC,IAAdya,GACC5iB,EAAAA,cAAA,OAAKgB,UAAWmH,IACdnI,EAAAA,cAAA,MAAIgB,UAAWmH,IAAgB,yDAC/BnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,OAAQH,UAAWmH,KAAU,oBAG9CnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,OAAQH,UAAWmH,KAAU,qBAG9CnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,OAAQH,UAAWmH,KAAU,iCAMrC,IAAdya,GACC5iB,EAAAA,cAAA,OAAKgB,UAAWmH,IACdnI,EAAAA,cAAA,MAAIgB,UAAWmH,IAAgB,2CAC/BnI,EAAAA,cAAA,MAAIgB,UAAWmH,IACbnI,EAAAA,cAAA,MAAIgB,UAAWmH,IAAa,uDAIlCnI,EAAAA,cAAA,OAAKgB,UD9I6M,SC+IhNhB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,QAASH,UAAW+hB,EAAoB,KACvD/iB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,QAASH,UAAW+hB,EAAoB,KACvD/iB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,QAASH,UAAW+hB,EAAoB,KACvD/iB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,QAASH,UAAW+hB,EAAoB,MAErD,I,4BC/HV,MA4CMa,IAAkB5a,EAAAA,EAAAA,KAAW,IAE/BhJ,EAAAA,cAAA,MAAIgB,UCnEqH,SDoEvHhB,EAAAA,cAAA,UAAI,iCACJA,EAAAA,cAAA,UAAI,yCACJA,EAAAA,cAAA,UAAI,oDAKV,QAAeiD,EAAAA,GAAAA,KAtDmB4gB,KAChC,MAAMC,GAAqBtkB,EAAAA,EAAAA,IAAYukB,GAAAA,KACjC,aAAEtb,EAAY,UAAEtB,EAAS,iBAAEkE,IAAqBjE,EAAAA,GAAAA,GAASC,GAAAA,GAAU2c,8BACnEnQ,GAAkB5R,EAAAA,EAAAA,IAAU6R,EAAAA,GAE5BvM,GAAeC,EAAAA,EAAAA,GAAiBL,GAkBtC,OAhBAhF,EAAAA,EAAAA,YAAU,KACJ2hB,GACFrb,GACF,GACC,CAACqb,KAEJ3hB,EAAAA,EAAAA,YAAU,KACHkJ,GAELwI,EAAgB,CACd1T,KAAM8jB,EAAAA,GACNpd,QAAS,CAAEqd,IAAKC,GAAAA,GAAQC,4BAA6BC,WAAY5hB,GAAAA,EAAeC,sBAChF4hB,cAAc,GACd,GACD,CAACjZ,IAGFrL,EAAAA,cAACyH,GAAAA,EAAK,CAACC,QAASL,GAAAA,GAAU2c,8BACxBhkB,EAAAA,cAAA,OAAKgB,UC9Ca,SD+ChBhB,EAAAA,cAAA,OAAKgB,UC/CuC,UDgDzCujB,EAAAA,EAAAA,OAAUvkB,EAAAA,cAAA,OAAKgB,UChDmI,QDgD/F4G,IAAK4c,KACzDxkB,EAAAA,cAAA,KAAGgB,UCjDwD,SDiDnC,aACZhB,EAAAA,cAAC+U,GAAY,OAEzB/U,EAAAA,cAAA,KAAGgB,UCpDyE,SDoDpD,mBACxBhB,EAAAA,cAAC4jB,GAAe,MAChB5jB,EAAAA,cAACuV,GAAAA,EAAe,OAElBvV,EAAAA,cAAA,OAAKgB,UCxDiG,QDwDrE2G,QAASJ,GACxCvH,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,mBAEjBnB,EAAAA,cAAC2iB,GAA6B,OAE1B,I,mCEhDN8B,IAAyBC,EAAAA,EAAAA,KAC7B,CAACC,EAAO3hB,IAAUA,EAAM4hB,kBAAoB5hB,EAAM4hB,iBAAiBD,EAAO3hB,KAC1E6hB,GAAiBA,GAAiB,KAG9BC,IAAmBJ,EAAAA,EAAAA,IACvBK,EAAAA,IACAC,EAAAA,EAAAA,IAAqBvE,GAAAA,GAAYwE,QACjCD,EAAAA,EAAAA,IAAqBvE,GAAAA,GAAYyE,UACjCF,EAAAA,EAAAA,IAAqBvE,GAAAA,GAAY0E,UACjCH,EAAAA,EAAAA,IAAqBvE,GAAAA,GAAY2E,eACjC,CAACC,EAAiBC,EAAkBC,EAAoBC,EAAmBC,IAA0B,CACnGJ,GAAmBK,EAAAA,aAAaC,kBAChCL,GAAoBI,EAAAA,aAAaE,WACjCL,GAAsBG,EAAAA,aAAaG,YACnCL,GAAqBE,EAAAA,aAAaI,oBAClCL,GAAyBC,EAAAA,aAAaK,2BAI3B,SAASC,GAAI9mB,GAA0C,IAAzC,WAAE+mB,EAAa,GAAE,SAAEriB,GAAoB1E,EAAP8D,GAAKgD,EAAAA,EAAAA,GAAA9G,EAAA+G,IAChE,MAAMigB,GAAgB1mB,EAAAA,EAAAA,KAAY0G,GAAS4e,GAAiB5e,EAAOlD,KAC7DmjB,GAAsB3mB,EAAAA,EAAAA,KAAY0G,GAASue,GAAuBve,EAAOlD,KACzEhC,EAAY0F,OAAcuf,KAAeC,KAAkBC,GAEjE,OACEnmB,EAAAA,cAAA,OAAKgB,UAAWA,GACdhB,EAAAA,cAAComB,EAAc,CAAC/f,IAAI,mBACpBrG,EAAAA,cAACkO,EAAO,MACRlO,EAAAA,cAACiT,EAAgB,MACjBjT,EAAAA,cAACsgB,GAAQ,MACTtgB,EAAAA,cAAC6jB,GAAyB,MACzBjgB,EAGP,C,mIC7CO,MAAMyiB,EAAgBrmB,EAAAA,gBAEhBsmB,EAAmBA,KAAMC,EAAAA,EAAAA,YAAWF,GA6FjD,MAzFoCnnB,IAAkB,IAAjB,SAAE0E,GAAU1E,EAC/C,MAAMsnB,GAAuBpY,EAAAA,EAAAA,UAEvBqY,GAAiB3N,EAAAA,EAAAA,cAAY,KAAM,IAAA4N,EAAAC,EACvC,OAAOnd,EAAAA,EAAAA,MAAiD,QAA3Ckd,EAAGF,SAA6B,QAATG,EAApBH,EAAsBtX,eAAO,IAAAyX,OAAA,EAA7BA,EAA+BC,iBAAS,IAAAF,EAAAA,EANhD,EAM0DrX,SAASwX,cAAc,QAAQD,SAAS,GACzG,IAEGE,GAAiBhO,EAAAA,EAAAA,cAAY7M,KAC7BzC,EAAAA,EAAAA,MACEgd,SAAAA,EAAsBtX,UACxBsX,EAAqBtX,QAAQ0X,UAAY3a,IAG3CoD,SAASwX,cAAc,QAAQD,UAAY3a,EAC3CoD,SAASwX,cAAc,QAAQD,UAAY3a,EAC7C,GACC,IAEG8a,GAAWjO,EAAAA,EAAAA,cAAY,SAACkO,GAC5B,KAD+CC,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,IAAAA,UAAA,IACjC,OAAOH,EAAeE,GAEpC,IAAIG,EAAO,KACX,MAAMC,EAAUX,IACVY,EAAcL,EAAaI,EAE3BE,EAAOC,IACE,OAATJ,IAAeA,EAAOI,GAC1B,MAAMC,EAAID,EAAMJ,EACVM,EAAYL,EAAUC,EAAcK,KAAKC,IAAMD,KAAKE,GAAK,EAAKJ,EAJrD,KAKXA,EALW,KAMbV,EAAeW,GACfI,sBAAsBP,IAEtBR,EAAeE,EACjB,EAEFa,sBAAsBP,EACxB,GAAG,IAEGV,GAAY9N,EAAAA,EAAAA,cAChBgP,IACEf,EA3CM,EA2CQe,EAAQ,GAExB,CAACf,KAGH5kB,EAAAA,EAAAA,YAAU,KACRykB,IACO,IAAMA,MACZ,IAEH,MAAMmB,GAAoBjP,EAAAA,EAAAA,cAAYkP,IACpC,MAAMC,GAAKze,EAAAA,EAAAA,MAASgd,aAAoB,EAApBA,EAAsBtX,QAAUG,SAChD4Y,GAAIA,EAAGxY,iBAAiB,SAAUuY,EAAG,GACxC,IAEGE,GAAuBpP,EAAAA,EAAAA,cAAYkP,IACvC,MAAMC,GAAKze,EAAAA,EAAAA,MAASgd,aAAoB,EAApBA,EAAsBtX,QAAUG,SAChD4Y,GAAIA,EAAG1Y,oBAAoB,SAAUyY,EAAG,GAC3C,IAEGG,GAAyBrP,EAAAA,EAAAA,cAAY,CAACsP,EAAQC,KAClD,IAAKD,IAAWC,EAAO,OAAO,EAE9B,MAAMC,EAAYD,EAAME,UAClBC,GAAoBhf,EAAAA,EAAAA,MAAS4e,EAAOK,aAAaC,aAAe7Y,OAAO8Y,YACvEC,EAAcnC,IAIpB,OAFuB6B,EAAYE,GACPI,EAAcN,EAAYE,CACV,GAC3C,IAEGK,EAAgB,CACpBjC,YACAG,WACAN,iBACAsB,oBACAG,uBACAC,0BAGF,OACEnoB,EAAAA,cAAA,OAAK4J,IAAK4c,EAAsBxlB,UC5FU,UD6FxChB,EAAAA,cAACqmB,EAAcyC,SAAQ,CAAC7c,MAAO4c,GAAgBjlB,GAC3C,C,2FEnFV,EARsB1E,IAA6C,IAA5C,QAAEqD,EAAO,QAAEV,GAAU,EAAK,UAAEb,GAAW9B,EAC5D,OACEc,EAAAA,cAAA,OAAKgB,UAAWC,ICLK,QDKgBY,GCLQ,QDKoBb,IAC/DhB,EAAAA,cAAA,QAAMgB,UCN0D,SDMhCuB,GAC5B,C,2FELH,SAASR,IAAoC,IAAhBgnB,EAAO9B,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,IAC5C,MAAOplB,EAASC,IAAcF,EAAAA,EAAAA,aAEvBonB,EAAWC,IAASjX,EAAAA,EAAAA,GAAW+W,GAWtC,OATA5mB,EAAAA,EAAAA,YAAU,KACJN,IACFonB,IACAD,GAAU,KACRlnB,GAAW,EAAM,IAErB,GACC,CAACD,IAEG,CAACA,EAASC,EACnB,C,8LCAA,EAVmBonB,KACjB,MAAM/f,GAAmBlH,EAAAA,EAAAA,IAAUmH,EAAAA,GAEnC,OACEpJ,EAAAA,cAAA,OAAKgB,UAAW0F,IAAWyB,EAAAA,EAAEghB,WAAY,QAASxhB,QAASA,IAAMwB,KAC/DnJ,EAAAA,cAACkB,EAAAA,EAAO,CAACqF,IAAK6iB,IACV,C,sICFV,EANkBlqB,IAAkB,IAAjB,SAAE0E,GAAU1E,EAC7B,MAAMmqB,GAAuB7pB,EAAAA,EAAAA,IAAY8pB,EAAAA,IAEzC,OAAOtpB,EAAAA,cAAA,OAAKgB,UAAWC,ICRG,QDQqBooB,GCRA,UDQwCzlB,EAAe,E,4CEFzF,SAAS2lB,EAAevmB,GACrC,MAAM,IAAEuD,EAAG,KAAE7E,EAAI,OAAE0S,EAAM,KAAEoV,EAAI,MAAErS,EAAK,aAAEE,EAAY,QAAE1P,GAAY3E,EAE5D4T,GAAiB3U,EAAAA,EAAAA,IAAU4U,EAAAA,IAE3BnO,GAAgBoQ,EAAAA,EAAAA,cACpB3G,IACEA,EAAEqM,iBACF5H,EAAe,CAAEO,QAAOE,gBAAe,GAEzC,CAACT,EAAgBO,EAAOE,IAG1B,OACErX,EAAAA,cAAA,KAAGO,KAAMipB,EAAMxoB,UAAW0F,ICpBP,QDoB0B0N,GCpBQ,SDoBazM,QAASA,GAAYwP,GAASzO,GAC9F1I,EAAAA,cAAA,OAAKgB,UCrB6B,SDsBhChB,EAAAA,cAACkB,EAAAA,EAAO,CAACqF,IAAKA,KAEhBvG,EAAAA,cAAA,OAAKgB,UCxB6D,SDwBzCU,GAG/B,C,uGEGA,EApBmB+nB,KACjB,MAAM7S,GAAiB3U,EAAAA,EAAAA,IAAU4U,EAAAA,IAC3BlP,GAAUH,EAAAA,EAAAA,IAAiB,KAC/BoP,EAAe,CACbO,MAAOuS,EAAAA,IACP,IAGJ,OACE1pB,EAAAA,cAACqJ,EAAAA,EAAe,CAAClJ,KAAMwpB,EAAAA,GAAuB3oB,UCnB3B,QDmB8C2G,QAASA,EAAS4B,YAAU,GAC3FvJ,EAAAA,cAAA,OAAKgB,UCpB4C,SDqB/ChB,EAAAA,cAAC0b,EAAAA,EAAW,OAEd1b,EAAAA,cAAA,OAAKgB,UCvB2B,SDwB9BhB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,iBAED,E,iCEuBtB,GAAeuI,EAAAA,EAAAA,KAlCUkgB,KACvB,MAAMC,GAAWrqB,EAAAA,EAAAA,IAAYsqB,EAAAA,IACvBC,GAAmBvqB,EAAAA,EAAAA,IAAYwqB,EAAAA,GAE/BC,GAAyBhoB,EAAAA,EAAAA,IAAUioB,EAAAA,IACnCC,GAAoBrR,EAAAA,EAAAA,cACxB3G,IACEA,EAAEqM,iBACFyL,GAAwB,GAE1B,CAACA,IAGGG,GAA2B5qB,EAAAA,EAAAA,IAAY6gB,EAAAA,IAE7C,OACErgB,EAAAA,cAAA,OAAKgB,UC/Bc,SDgChBopB,GAA4BpqB,EAAAA,cAACypB,EAAU,MACxCzpB,EAAAA,cAAA,KAAGO,KAAK,IAAIS,UCjCoB,QDiCDgQ,MAAM,QAAQrJ,QAASwiB,GAAmB,SAGzEnqB,EAAAA,cAAA,OAAKgB,UCpCqD,SDqCxDhB,EAAAA,cAACupB,GAAcnjB,EAAAA,EAAAA,GAAA,CACbG,IAAK8jB,EACL3oB,KAAM1B,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAG,0BACZwO,OAAQyV,EACRL,MAAMe,EAAAA,EAAAA,IAAkBC,EAAAA,KACpBT,KAGJ,I,uDEoBV,EAlDsB7qB,IAMhB,IANiB,UACrBurB,EAAS,6BACTC,EAA+BA,MAAM,GAAI,aACzCC,EAAY,SACZ/mB,EAAQ,iBACRgnB,GACD1rB,EACC,MAAQqhB,cAAesK,IAAqBrK,EAAAA,EAAAA,GAAaC,EAAAA,GAAYyE,UAC7D3E,cAAeuK,IAA0BtK,EAAAA,EAAAA,GAAaC,EAAAA,GAAYsK,eACpEC,GAAsBxrB,EAAAA,EAAAA,IAAYyrB,EAAAA,IAClCC,GAAe1rB,EAAAA,EAAAA,IAAY2rB,EAAAA,IAG3BC,GADkC5rB,EAAAA,EAAAA,IAAYkrB,IACUD,EAExDY,GAAqB7rB,EAAAA,EAAAA,IAAY6gB,EAAAA,IACjC+J,GAA0C7F,EAAAA,EAAAA,OAAU8G,IAAuBL,EAE3EM,EAAgCV,IAAqBC,IAAqBC,EAE1ES,GAAuBC,EAAAA,EAAAA,GAAwBZ,EAAkBQ,GAEvE,OACEprB,EAAAA,cAAA,UAAQgB,UAAWmH,EAAAA,EAAEqP,KAAMpW,MAAO,CAAE6T,OAAQsW,IAC1CvrB,EAAAA,cAAA,OACEgB,UAAW0F,IACTyB,EAAAA,EAAEsjB,UACFT,GAAuBtF,EAAAA,aAAagG,gBACnCb,GAAoBF,GAAgBjF,EAAAA,aAAaiG,iBAClDvB,GAA4B1E,EAAAA,aAAakG,uBAE3CxqB,MAAO,CACL6T,OAAQiW,IAGTd,GAA4BpqB,EAAAA,cAACypB,EAAU,MACvC7lB,GACCinB,GAAoBF,GAExB3qB,EAAAA,cAAC6rB,EAAS,CAACxlB,IAAI,aAAa+kB,IAC3B5hB,EAAAA,EAAAA,OAAUxJ,EAAAA,cAAC4pB,EAAgB,CAACvjB,IAAK,uBACjCilB,GACCtrB,EAAAA,cAAA,OAAKgB,UAAWmH,EAAAA,EAAEyiB,kBAChB5qB,EAAAA,cAAC8rB,EAAAA,EAAgB,OAGd,C,8HCxDN,MAAMvjB,EAAiBxF,GAAaC,IACzC,MAAM8L,GAAStP,EAAAA,EAAAA,IAAYuP,EAAAA,IAE3B,OAAOgd,EAAAA,EAAAA,IAAsBjd,GAAU9O,EAAAA,cAAC+C,EAAcC,GAAY,IAAI,EAG3DgpB,EAAqBjpB,GAAaC,IAC7C,MAAM8L,GAAStP,EAAAA,EAAAA,IAAYuP,EAAAA,IAE3B,OAAQkd,EAAAA,EAAAA,IAAkBnd,GAAqC,KAA3B9O,EAAAA,cAAC+C,EAAcC,EAAgB,C,+GCMrE,EAhBiB9D,IAA8F,IAA7F,MAAEoB,EAAQ,GAAE,SAAE6T,GAAW,EAAK,KAAEhT,EAAI,YAAE+qB,EAAW,QAAEvkB,EAAO,oBAAEwkB,GAAsB,GAAMjtB,EACxG,OACEc,EAAAA,cAAA,OACEgB,UAAW0F,ICPM,QDOayN,GCPM,QDOkBgY,ECP+B,QAA2B,SDQhHxkB,QAASA,EACTqJ,MAAO1Q,GAEPN,EAAAA,cAAA,QAAMgB,UAAW0F,IAAW,OCXuB,UDYjD1G,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAMA,KAEjBnB,EAAAA,cAAA,QAAMgB,UCd6D,SDcxCkrB,GAC1BC,GAAuBnsB,EAAAA,cAAA,OAAKgB,UAAW0F,ICfsF,QDepEyN,GCf6F,WDgBnJ,C,uEEhBV,GAAgB,SAAW,QAAQ,KAAO,S,wDCG3B,SAASwD,IACtB,OACE3X,EAAAA,cAAA,OAAKgB,UAAWmH,EAAEwP,UAChB3X,EAAAA,cAAA,OAAK4H,IAAKwkB,IAGhB,C,wKCwCA,EAtCaltB,IAA+C,IAAAmtB,EAAAC,EAAA,IAA9C,SAAE1oB,EAAQ,UAAE5C,EAAS,iBAAEurB,GAAkBrtB,EACrD,MAAMgsB,GAAe1rB,EAAAA,EAAAA,IAAY2rB,EAAAA,KAC3B,KAAEqB,EAAI,UAAEC,GAAcC,EAAAA,kBACtBC,GAAkBntB,EAAAA,EAAAA,IAAYotB,EAAAA,IAC9BC,EAA0C,QAA9BR,EAAS,QAATC,EAAGQ,EAAAA,SAAM,IAAAR,GAAQ,QAARA,EAANA,EAAQzc,cAAM,IAAAyc,OAAA,EAAdA,EAAgB3D,mBAAW,IAAA0D,EAAAA,EAAI,EAE9CU,GAAWjU,EAAAA,EAAAA,cAAY,KAG3B,MAAMkU,EAA4B9B,GAAgBqB,EAAmB,EAAIU,EAAAA,IACzE,IAAIzjB,EAAAA,EAAAA,MAAQ,CACV,MAAMe,EAAM2iB,EAAAA,GAAmBF,EAE/B,MAAO,CAAEziB,MAAK0K,OADC,gBAAHpV,OAAmB0K,EAAG,OAEpC,CAEA,MAAM4iB,EAASH,EAA4BI,EAAAA,EAQ3C,MAAO,CACL7iB,IAPAoiB,IAAoBF,EAChBO,EAA4B,EAC5BL,IAAoBH,EACpBW,EACAzF,KAAK2F,IAAIF,EAAQN,EAAeS,EAAAA,EAAeX,IAInD1X,OAAQ,KACT,GACA,CAACiW,EAAcyB,EAAiBJ,EAAkBM,IAErD,OACE7sB,EAAAA,cAAA,QAAMgB,UAAW0F,IC1CE,QAAyB,QD0CU1F,GAAYI,MAAO2rB,KACvE/sB,EAAAA,cAACiJ,EAAAA,EAAM,MACPjJ,EAAAA,cAACutB,EAAAA,GAA2B,KAAE3pB,GACzB,C,oOEkBX,GAAeiC,EAAAA,EAAAA,KAA+B2nB,EAAAA,EAAAA,KApD9C,WACE,MAAM,IAAEhb,IAAQib,EAAAA,EAAAA,MAEVC,GAAWluB,EAAAA,EAAAA,IAAYmuB,EAAAA,IACvBC,GAAgBpuB,EAAAA,EAAAA,IAAYquB,EAAAA,KAE3BC,EAAQC,IAAansB,EAAAA,EAAAA,UAAS,OAC9BosB,EAAQC,IAAarsB,EAAAA,EAAAA,UAAS,MAE/BssB,ECJD,SAAoBC,GACzB,MAAMC,GAAW5uB,EAAAA,EAAAA,IAAY6uB,EAAAA,KACtBH,EAAUI,IAAe1sB,EAAAA,EAAAA,UAAS,GAEnC2sB,GAAiBzV,EAAAA,EAAAA,cAAY3G,IAC5BA,EAAEqc,UACPF,IAAcnc,EAAEsc,OAAS,GAAGC,QAAQ,GAAG,GACtC,IAWH,OATAvsB,EAAAA,EAAAA,YAAU,KACR,GAAIisB,GAAYD,EAAW,CACzB,MAAMQ,EAAY,4BAElB,OADA9e,OAAOJ,iBAAiBkf,EAAWJ,GAAgB,GAC5C,KACL1e,OAAON,oBAAoBof,EAAWJ,EAAe,CAEzD,IACC,CAACH,EAAUD,EAAWI,IAClBL,CACT,CDfmBU,CAAWhB,GAEtBiB,GAASzgB,EAAAA,EAAAA,UA6Bf,OA3BAjM,EAAAA,EAAAA,YAAU,KACJyrB,GAAiBF,GAAYM,KAAW9gB,EAAAA,EAAAA,GAAQ4gB,EAAQJ,KAC1DM,EAAOc,UAAUpB,GACjBK,EAAUL,GACZ,GACC,CAACE,EAAeF,KAEnBvrB,EAAAA,EAAAA,YAAU,KACR,GAAIyrB,IAAkBI,GAAUN,EAAU,CACxC,MAAMqB,EAAI,IAAIC,EAAAA,OAAe,CAC3BC,QAASJ,EAAO3f,QAChBggB,OAAQ,WAEPJ,UAAUpB,GACVyB,MAAM3c,GAETyb,EAAUc,EACZ,IACC,CAACnB,EAAeF,KAEnBvrB,EAAAA,EAAAA,YACE,IAAM,KACA6rB,GAAQA,EAAOoB,QAAQ,GAE7B,CAACpB,IAGEJ,GAAkBF,EAGrB1tB,EAAAA,cAAA,WAEEA,EAAAA,cAAA,OAAK4J,IAAKilB,GACR7uB,EAAAA,cAAA,OAAKgB,UEzDe,QFyDS4G,IAAKwkB,EAAKhrB,MAAO,CAAEsJ,UAAW,WAAF7K,OAAaquB,EAAQ,aAN5C,IAU1C,K,4CGDA,GA9CsBxkB,EAAAA,EAAAA,KAAW,KAC/B,MAAM2lB,GAAU7vB,EAAAA,EAAAA,IAAY8vB,EAAAA,IACtBC,GAAcnhB,EAAAA,EAAAA,WACbohB,EAAYC,IAAiB7tB,EAAAA,EAAAA,UAAS,IAAI8tB,MAejD,OAbAvtB,EAAAA,EAAAA,YAAU,KACJktB,IAAYM,EAAAA,GAAUC,QACxBL,EAAYrgB,QAAU2gB,aAAY,KAChCJ,EAAc,IAAIC,KAAO,GACxB,EAAII,EAAAA,IAEPC,cAAcR,EAAYrgB,SAErB,KACL6gB,cAAcR,EAAYrgB,QAAQ,IAEnC,CAACmgB,IAEAA,IAAYM,EAAAA,GAAUC,QAAgB,KAGxC5vB,EAAAA,cAAA,OAAKgB,UCnCuB,SDoC1BhB,EAAAA,cAAA,KAAGgB,UCpCuC,SDqCxChB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,oCAAqC,IA7BlBoqB,KAChC,MAAMC,EAAOD,EAAKE,aACZC,EAAQH,EAAKI,WACnB,OAAOC,EAAAA,EAAAA,IAAIF,GAAS,KAAME,EAAAA,EAAAA,IAAIJ,EAAK,EA4B5BK,CAAmBd,IAEtBxvB,EAAAA,cAAA,UACEA,EAAAA,cAAA,MAAIgB,UC1CqD,UD2CzDhB,EAAAA,cAAA,MAAIgB,UC3CsE,UD4C1EhB,EAAAA,cAAA,MAAIgB,UC5CoF,UD6CxFhB,EAAAA,cAAA,MAAIgB,UC7CsG,UD8C1GhB,EAAAA,cAAA,MAAIgB,UC9CsH,WDgD5HhB,EAAAA,cAAA,SACEA,EAAAA,cAAA,QAAMgB,UCjDmI,SDkDvIhB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,mCAET5F,EAAAA,cAAA,QAAMgB,UCpDmJ,SDqDvJhB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,yCAGP,I,iGErCV,EAhBmB2qB,KACjB,MAAOC,EAASC,IAAc7uB,EAAAA,EAAAA,WAAS,GAEjC8uB,GAAclpB,EAAAA,EAAAA,IAAiB,IAAMipB,GAAW,IAAO,CAACA,IACxDE,GAAcnpB,EAAAA,EAAAA,IAAiB,IAAMipB,GAAW,IAAQ,CAACA,IAEzDG,GAAiBpnB,EAAAA,EAAAA,MACnB,CACE+I,YAAame,EACbxe,WAAYye,GAEd,CAAC,EAEL,MAAO,CAAEH,UAASC,aAAYG,iBAAgB,E,+CCJ1CC,EAAa3xB,IAAwD,IAAvD,QAAEyI,EAAO,KAAExG,EAAI,UAAEH,EAAS,MAAEV,GAAsBpB,EAAZ4xB,GAAU9qB,EAAAA,EAAAA,GAAA9G,EAAA+G,GAClE,MAAM,QAAEuqB,EAAO,eAAEI,GAAmBL,IAEpC,OACEvwB,EAAAA,cAAA,OAAKgB,UChBc,SDiBjBhB,EAAAA,cAAA,UAAAoG,EAAAA,EAAAA,GAAA,GAAY0qB,EAAU,CAAE9vB,UAAW0F,ICjByB,QDiBA1F,GAAYb,KAAK,SAASwH,QAASA,GAAaipB,GAC1G5wB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAMA,KAEjBnB,EAAAA,cAAA,QAAMgB,UAAW0F,ICpB4G,QDoBtF8pB,GAAW,WAChDxwB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAE,kBAAA/F,OAAoBS,EAAK,eAE5B,EAIJywB,EAAe/tB,GAAShD,EAAAA,cAAC6wB,GAAUzqB,EAAAA,EAAAA,GAAA,GAAKpD,EAAK,CAAE7B,KAAM,OAAQ,aAAW,UAAUb,MAAO,KAAMU,UC3BZ,WD6BnFgwB,EAAgBhuB,GACpBhD,EAAAA,cAAC6wB,GAAUzqB,EAAAA,EAAAA,GAAA,GAAKpD,EAAK,CAAE7B,KAAM,QAAS,aAAW,WAAWb,MAAO,MAAOU,UC9BqC,WDiEjH,OAAe0I,EAAAA,EAAAA,KAhCYunB,KACzB,MAAMC,GAAkBjvB,EAAAA,EAAAA,IAAUkvB,EAAAA,IAC5BC,GAAgB5xB,EAAAA,EAAAA,IAAY6xB,EAAAA,IAC5BC,GAAU9xB,EAAAA,EAAAA,IAAY+xB,EAAAA,KAGrBC,EAAMC,IAAW7vB,EAAAA,EAAAA,aAExBO,EAAAA,EAAAA,YAAU,KACRsvB,EAAQL,EAAc,GACrB,CAACA,IAEJ,MAAMM,GAAa5Y,EAAAA,EAAAA,cACjB6Y,IACE,IAAIC,EAAaJ,EAAOG,EACpBC,EAAaN,IAASM,EAAaN,GACnCM,EAAaC,EAAAA,KAAcD,EAAaC,EAAAA,IAE5CX,EAAgB,CAAEM,KAAMI,IACxBH,EAAQG,EAAW,GAErB,CAACJ,EAAMF,IAGT,OACEtxB,EAAAA,cAAA,OAAKgB,UC1DoC,SD2DvChB,EAAAA,cAAC+wB,EAAY,CAACppB,QAASA,IAAM+pB,EAAWI,EAAAA,MACxC9xB,EAAAA,cAACgxB,EAAa,CAACrpB,QAASA,IAAM+pB,GAAYI,EAAAA,MACtC,I,WEvBV,GAAe1R,EAAAA,EAAAA,KAAwB2R,EAAAA,EAAAA,MAAvC,EA/BcC,KACZ,MAAMC,GAAW7jB,EAAAA,EAAAA,UAEX8jB,GAAaC,EAAAA,EAAAA,IAA0B3f,IAC3C,GAAIyf,EAAS/iB,QAAS,OAEtB+iB,EAAS/iB,QAAU,IAAIkjB,EAAAA,aAAqB,CAC1CC,SAAU,IACVC,KAAM,WAER,MAAM5E,GAAWlkB,EAAAA,EAAAA,MAAS,eAAiB,cAC3CgJ,EAAI0f,WAAWD,EAAS/iB,QAASwe,EAAS,IAGtC6E,GAAgBJ,EAAAA,EAAAA,IAA0B3f,IAC9C,IACMyf,EAAS/iB,SAASsD,EAAI+f,cAAcN,EAAS/iB,QACnD,CAAE,MAAOiD,GAAI,CACb8f,EAAS/iB,aAAUgY,CAAS,IAU9B,OAPA/kB,EAAAA,EAAAA,YAAU,KACR+vB,IACO,KACDD,EAAS/iB,SAASqjB,GAAe,IAEtC,CAACL,EAAYK,IAET,IAAI,ICnCb,G,kBAA6B,S,sBCO7B,MAAMC,EAAoB,UA0C1B,MAxCmBC,KACjB,MAAM,IAAEjgB,IAAQib,EAAAA,EAAAA,OACTiF,EAAYC,IAAiB/wB,EAAAA,EAAAA,UAAS4wB,GAEvCI,GAAmBxkB,EAAAA,EAAAA,SAAO,IAEhCjM,EAAAA,EAAAA,YAAU,MACHywB,EAAiB1jB,SAAWsD,IAC/BA,EAAIqgB,GACF,UACAC,EAAAA,EAAAA,KAAS,IAAMH,EAAcI,MAAiB,MAGhDH,EAAiB1jB,SAAU,EAC7B,GACC,CAAC0jB,EAAkBpgB,IAEtB,MAQMugB,EAAeA,KACnB,IAAIL,EAAa,GAEjB,IACEA,GANFM,EAAAA,EAAAA,IALAxgB,EACGygB,wBACA5W,QAAO6W,IAAYA,EAAQC,MAAMvtB,IAAM,IAAIwtB,SAAS,gBAAkBF,EAAQG,WAAWX,aAG/DY,SAAQJ,GAAW9tB,KAAKmuB,MAAML,EAAQG,WAAWX,cAO9E,CAAE,MAAOc,GACPtuB,QAAQ1D,MAAMgyB,EAChB,CAEA,MAAO,CAAChB,KAAsBE,GAAY5T,KAAK,MAAM,EAGvD,OAAO9e,EAAAA,cAAA,OAAKgB,UAAWC,IAAWkH,IAAeqB,EAAAA,EAAAA,OD9CP,UC8C2BkpB,EAAiB,E,mECjCxF,GAAetS,EAAAA,EAAAA,KAAwB2R,EAAAA,EAAAA,MAAvC,EANa0B,IACXzzB,EAAAA,cAAA,OAAKgB,UAAWC,ICRK,SDQcuI,EAAAA,EAAAA,MCRe,QDQiB,6BACjExJ,EAAAA,cAAA,OAAK4H,IAAK8rB,EAAW1e,MAAM,KAAKC,OAAO,UEU3C,GAAemL,EAAAA,EAAAA,IAAwB2E,EAAAA,GAAvC,EAZ+B4O,KAC7B,MAAMC,GAAuB3xB,EAAAA,EAAAA,IAAU4xB,EAAAA,IAIvC,OACE7zB,EAAAA,cAAA,OAAKgB,UAAW0F,IAAW,OCbU,SDayBiB,QAHhDA,IAAMisB,KAIlB5zB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAK,mBACV,I,uDEgCV,EAjCsB2yB,KACpB,MAAMC,GAAiBv0B,EAAAA,EAAAA,IAAYw0B,EAAAA,IAC7BC,GAAqBhyB,EAAAA,EAAAA,IAAUiyB,EAAAA,IAC/BC,GAAkBlyB,EAAAA,EAAAA,IAAUmyB,EAAAA,KAC5B,QAAE5D,EAAO,WAAEC,EAAU,eAAEG,GAAmBL,IAE1C7nB,GAAgBlB,EAAAA,EAAAA,IAAiB,KACrCipB,GAAW,GACPsD,EACFI,IAEAF,EAAmB,CAAEI,OAAQC,EAAAA,IAC/B,GACC,CAACP,EAAgBI,EAAiBF,IAErC,OACEj0B,EAAAA,cAAA,OAAKgB,UC9Bc,SD+BjBhB,EAAAA,cAACqJ,EAAAA,GAAejD,EAAAA,EAAAA,GAAA,CACdjG,KAAMo0B,EAAAA,GACNvzB,UAAW0F,ICjCqB,QDiCAqtB,GAAkB,UAClDpsB,QAASe,GACLkoB,GAEJ5wB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,kCACfnB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,iCAEjBnB,EAAAA,cAAA,QAAMgB,UAAW0F,ICxCyC,QDwCb8pB,GAAW,WACtDxwB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,2BAEL,E,uDEtBV,MAeM4uB,GAAW,kBAoCXC,GAAchxB,IAAkB,IAAjB,SAAEG,GAAUH,EAC/B,MAAMixB,EAnCiBC,MACvB,MAAMC,GAAYp1B,EAAAA,EAAAA,IAAYq1B,EAAAA,IACxBC,EAnBqB51B,KAAA,IAAC,OAAE61B,EAAM,OAAEjH,EAAM,KAAE3tB,GAAMjB,EAAA,OAAKiB,GAAQ40B,GAAUjH,GAAUA,EAAOne,KAAOme,EAAOle,GAAG,EAmBrFolB,CAAqBJ,IACtCK,EAAUC,IAAetzB,EAAAA,EAAAA,UAAS,IACnC,KAAEzB,EAAI,OAAE2tB,EAAM,OAAEiH,EAAM,OAAE7F,EAAM,SAAEmD,EAAQ,iBAAE8C,GAAqBP,GAC/D,IAAEpiB,IAAQib,EAAAA,EAAAA,MA0BhB,OAxBAtrB,EAAAA,EAAAA,YAAU,KACR,IAAK2yB,EAAiB,OAEtB,MAAMM,EAAiB,UAAHv1B,OAAaM,GAC3Bk1B,EAAwBF,EAAmB,qBAAuB,GAElEG,EAAgB,IAAIC,EAAAA,MAAc,CACtCR,SACAS,aAAa,EACbx0B,UAAW,GAAFnB,OCtDS,SDsDGA,OAAGu1B,GAAcv1B,OAAGw1B,GACzCnG,SACAmD,aAOF,OAJAiD,EAAcxG,UAAUhB,GAAQ2H,QAAQ,YAAD51B,OAAa20B,GAAQ,aAAYrF,MAAM3c,GAE9E0iB,EAAYxF,KAAKnI,OAEV,KACL+N,EAAclG,SACd8F,EAAY,EAAE,CACf,GACA,CAACJ,IAEGG,GAAYT,EAAQ,EAIXG,GAEhB,IAAKD,EAAS,OAAO,KAErB,MAAMgB,EAAUrmB,SAASwX,cAAc,IAADhnB,OAAK60B,IAC3C,OAAKgB,EACEC,EAAAA,aAAsB/xB,EAAU8xB,GADlB,IAC0B,EAcjD,QAAe7vB,EAAAA,EAAAA,KAA+B2nB,EAAAA,EAAAA,KAXhCoI,KACZ,MAAM,KAAEz1B,IAASX,EAAAA,EAAAA,IAAYq1B,EAAAA,IACvBxM,EA7DSloB,KACf,OAAQA,GACN,KAAK01B,EAAAA,GACH,OAAO71B,EAAAA,cAAC81B,EAAAA,EAAS,MACnB,KAAKC,EAAAA,GACH,OAAO/1B,EAAAA,cAACg2B,EAAAA,EAAQ,MAClB,KAAKC,EAAAA,GACH,OAAOj2B,EAAAA,cAACk2B,EAAAA,GAAY,MACtB,QACE,OAAO,KACX,EAmDcC,CAASh2B,GAGvB,OAF2BX,EAAAA,EAAAA,IAAY42B,EAAAA,KAEX/N,GACxB9D,EAAAA,EAAAA,OAAUpkB,IAAS81B,EAAAA,GAA2B,MAE3C1R,EAAAA,EAAAA,MAASvkB,EAAAA,cAAA,OAAKgB,UC1FmB,SD0FIqnB,GAAeroB,EAAAA,cAACy0B,GAAW,KAAEpM,GAH/B,IAGmD,K,qoBEuD/F,QAAemF,EAAAA,EAAAA,KApGH6I,KACV,MAAM,IAAE7jB,IAAQib,EAAAA,EAAAA,MACV6I,GAAc92B,EAAAA,EAAAA,IAAYw0B,EAAAA,IAC1Bpd,GAAiB3U,EAAAA,EAAAA,IAAU4U,GAAAA,IAE3B0f,GAAanoB,EAAAA,EAAAA,WACZ0f,EAAQC,IAAansB,EAAAA,EAAAA,aACrB40B,EAAmBC,IAAuBzkB,EAAAA,GAAAA,GApC7B,MAqCd,eAAE0kB,EAAc,aAAEC,GAjCKC,MAC7B,MAAM3C,GAAqBhyB,EAAAA,EAAAA,IAAUiyB,EAAAA,IAC/B2C,GAAmB50B,EAAAA,EAAAA,IAAU60B,EAAAA,IAC7BC,GAAgB90B,EAAAA,EAAAA,IAAU+0B,EAAAA,IAgBhC,MAAO,CACLN,gBAfqB5d,EAAAA,EAAAA,cAAYgV,KACjCmJ,EAAAA,EAAAA,IAAUnJ,GACP7oB,OAAM,IAAMC,QAAQqa,MAAM,cAAeuO,KACzClpB,MAAKsyB,IACJjD,EAAkBroB,GAAAA,GAAAA,GAAC,CAAC,EAAIsrB,GAAapJ,GAAM,IAAEuG,OAAQC,EAAAA,MACrDuC,EAAiBhB,EAAAA,GAAgB,GACjC,GACH,IASDc,cAPmB7d,EAAAA,EAAAA,cAAY,KAC/Bie,IACA9C,EAAmB,CAAEI,OAAQC,EAAAA,IAAwB,GACpD,IAKF,EAWwCsC,IAEzCz0B,EAAAA,EAAAA,YAAU,KACJm0B,EACFa,IAEAC,GACF,GACC,CAACd,KAEJn0B,EAAAA,EAAAA,YAAU,KACJ2rB,IACF6I,IACAF,IACAD,GAAkB,IAAME,EAAe5I,KACzC,GACC,CAACA,IAEJ,MAAMqJ,EAASA,KACb3kB,EAAIqgB,GAAG,QAASwE,GAChB7kB,EAAIqgB,GAAG,YAAayE,GACpB9kB,EAAI+kB,YAAYn2B,MAAMo2B,OAAS,UAC/BnoB,SAASwX,cAAc,QAAQpX,iBAAiB,YAAagoB,EAAc,EAGvEL,EAAWA,KACf5kB,EAAIklB,IAAI,QAASL,GACjB7kB,EAAIklB,IAAI,YAAaJ,GACrB9kB,EAAI+kB,YAAYn2B,MAAMo2B,OAAS,GAC/BnoB,SAASwX,cAAc,QAAQtX,oBAAoB,YAAakoB,GAChEhB,GAAqB,EAGjBkB,EAAgB7J,IACpB6I,IACAS,KACAH,EAAAA,EAAAA,IAAUnJ,GACPlpB,MAAKsyB,IACAA,GAAYA,EAASU,aACvBhhB,EAAe,CACbO,MAAO0gB,GAAAA,GACPxgB,aAAc,CAAEugB,YAAaV,EAASU,cAE1C,IAED3yB,OAAM,KACLkyB,IACAT,EAAe5I,EAAO,GACtB,EAOAuJ,EAAa/qB,IACjBqrB,EAAcrrB,EAAMwrB,OAAO,EAGvBR,GAAexe,EAAAA,EAAAA,cACnBxM,IACEyhB,EAAUzhB,EAAMwrB,OAAO,GAEzB,CAAC/J,IAGGgK,GAAcjf,EAAAA,EAAAA,cAClB5Z,IAAc,IAAb,EAAE2gB,EAAC,EAAEC,GAAG5gB,EACFq3B,EAAWrnB,UAChBqnB,EAAWrnB,QAAQ9N,MAAMmJ,IAAM,GAAH1K,OAAMigB,EA3GvB,GA2GsC,EAAC,MAClDyW,EAAWrnB,QAAQ9N,MAAMoJ,KAAO,GAAH3K,OAAMggB,EAAImY,GAAY,MAAI,GAEzD,CAACzB,EAAWrnB,UAGRuoB,GAAgB3e,EAAAA,EAAAA,cACpBxM,IACE,MAAM,QAAE2rB,EAAO,QAAEC,GAAY5rB,EAC7ByrB,EAAY,CAAElY,EAAGoY,EAlHF,IAkH0BnY,EAAGoY,EAjH7B,IAiHsD,GAEvE,CAACH,IAGH,OAAKzB,EAGHt2B,EAAAA,cAAA,OAAK4J,IAAK2sB,EAAYv1B,UC3IH,QD2IsB2G,QAnCzBwwB,KAChBR,EAAc7J,EAAO,GAmCnB9tB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,iBAJM,IAKjB,I,YE7IV,GAAyD,QCmFzD,IAAeif,EAAAA,EAAAA,KAAwB2R,EAAAA,EAAAA,MAAvC,EA7DqBqG,KACnB,MAAM/D,GAAS70B,EAAAA,EAAAA,IAAY64B,EAAAA,KACpBC,EAAkBC,IAAuB32B,EAAAA,EAAAA,UAAS,MACnD42B,GAA2Bv2B,EAAAA,EAAAA,IAAUw2B,EAAAA,KACpCC,EAAcC,IAAmB/2B,EAAAA,EAAAA,WAAS,IAC1Cg3B,EAAYC,IAAgB7mB,EAAAA,GAAAA,GAAW,KACxC8mB,EAAiBzE,IAAW0E,EAAAA,GAC5BC,EAAgB3E,IAAW4E,EAAAA,IAA8B5E,IAAW6E,EAAAA,IACpE,QAAE1I,EAAO,eAAEI,GAAmBL,IA8BpC,OA5BApuB,EAAAA,EAAAA,YAAU,KACJm2B,IACEjE,IAAW8E,EAAAA,KACbR,GAAgB,GAChBC,GAAW,IAAMD,GAAgB,MAE/BtE,IAAWiE,GACbC,EAAoB,MAExB,GACC,CAACK,EAAYvE,EAAQiE,KAExBn2B,EAAAA,EAAAA,YAAU,IACD,KACL02B,GAAc,GAEf,CAACA,IAaF74B,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACqJ,EAAAA,GAAejD,EAAAA,EAAAA,GAAA,CAACjG,KAAMi5B,EAAAA,GAAwBp4B,UD9D5B,QC8DiD2G,QAZxDA,KACd,MAAM0xB,EAAYC,EAAAA,GAA8BjF,GAC5CgF,IAAcE,EAAAA,IAChBhB,EAAoBc,GACpBb,EAAyBa,EAAW,CAAEG,SAAS,KAE/ChB,EAAyBa,EAC3B,EAKwF9vB,YAAU,GAAMqnB,GACpG5wB,EAAAA,cAAA,OAAKgB,UAAW0F,ID/DkB,QC+DGoyB,ED/D6B,QAAiB,UCgEjF94B,EAAAA,cAAA,OAAKgB,UAAW0F,IAAW,OAAQyB,KACjCnI,EAAAA,cAAA,OAAKgB,UAAW0F,IAAWyB,GAAQ6wB,GDjE4D,UCkE7Fh5B,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,mBAIrBnB,EAAAA,cAAA,QAAMgB,UAAW0F,IDtE0J,QCsEpI8pB,GAAW,WAChDxwB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,+BAGV8yB,GACC14B,EAAAA,cAAA,OAAKgB,UD3EoJ,SC2E1H,4EAIhC,ICnCP,IAAewsB,EAAAA,EAAAA,KA7Bf,WACE,MAAM6G,GAAS70B,EAAAA,EAAAA,IAAY64B,EAAAA,IACrBG,GAA2Bv2B,EAAAA,EAAAA,IAAUw2B,EAAAA,IAErCgB,GAAY3gB,EAAAA,EAAAA,cAChBxM,IACE,MAAMotB,EAAiBrF,IAAW0E,EAAAA,GAC5BY,GAAgBrtB,EAAMstB,eAAiBttB,EAAMnM,OAAS05B,EAAAA,GACxDH,GAAkBC,GACpBnB,EAAyBsB,EAAAA,GAC3B,GAEF,CAACzF,EAAQoE,EAAAA,KAGLsB,GAAmBC,EAAAA,EAAAA,IAASP,EAAWQ,EAAAA,IAW7C,OATAC,EAAAA,EAAAA,KAAwB1nB,IACtBA,EAAIqgB,GAAGgH,EAAAA,GAAqBE,GAC5BvnB,EAAIqgB,GAAGsH,EAAAA,GAAqBJ,GACrB,KACLvnB,EAAIklB,IAAImC,EAAAA,GAAqBE,GAC7BvnB,EAAIklB,IAAIyC,EAAAA,GAAqBJ,EAAiB,IAE/C,IAEI,IACT,I,wBCdA,GAtBwB76B,IAAuC,IAAtC,UAAEk7B,EAAS,MAAE95B,EAAK,YAAE+5B,GAAan7B,EACxD,MAAM,MAAEo7B,GAAUC,KAEZC,GAAe1hB,EAAAA,EAAAA,cAAY,KAE/BuhB,EAAYC,EAAM,GACjB,CAACA,IAEJ,OACEt6B,EAAAA,cAACqJ,EAAAA,EAAe,CACdlJ,KAAMs6B,EAAAA,GACN5zB,QAAS,CACP,CAACmR,GAAAA,IAASoiB,GAEZp5B,UCpBgC,QDqBhC2G,QAAS6yB,GAERl6B,EACe,E,YEXtB,GAPmCo6B,KACjC,MAAMp6B,GAAQkC,EAAAA,EAAAA,IAAK,iCACbm4B,GAA+B14B,EAAAA,EAAAA,IAAU24B,GAAAA,IAE/C,OAAO56B,EAAAA,cAAC66B,GAAe,CAACT,UCVM,qBDUuB95B,MAAOA,EAAO+5B,YAAaM,GAAgC,E,kCET3G,MAAMG,GAAuBhD,IAClCiD,EAAAA,GAAAA,IAA0BjD,GAAQlzB,MAAK1F,IAAmB,IAAlB,UAAE87B,GAAW97B,EACnD,OAAI87B,EAAU1oB,OAAS,EAAU4K,QAAQ+d,OAAO,IAAIC,MAAM,qCACnDF,EAAU,EAAE,ICqCvB,OA9BmCG,KACjC,MAAM76B,GAAQkC,EAAAA,EAAAA,IAAK,oCACb44B,GAA0Bn5B,EAAAA,EAAAA,IAAUo5B,GAAAA,IACpCC,GAAoB97B,EAAAA,EAAAA,IAAY+7B,GAAAA,IAChCC,GAAmBv5B,EAAAA,EAAAA,IAAU4U,GAAAA,IAuBnC,OAAO7W,EAAAA,cAAC66B,GAAe,CAACT,UFjCK,0BEiCuB95B,MAAOA,EAAO+5B,YAV5CC,IAChBgB,EACFF,EAAwBd,GAAOr1B,OAAMkN,GAAKjN,QAAQ1D,MAAM2Q,KAExD2oB,GAAqBR,GAClB11B,MAAKsR,GAhBkBA,KAC5BslB,EAAiB,CACfrkB,MAAOskB,GAAAA,GACPpkB,aAAc,CACZqkB,GAAIxlB,EAAQ5V,MACZq7B,UAAWzlB,EACX0lB,YAAY,IAEd,EAQmBC,CAAsB3lB,KACtCjR,OAAMkN,GAAKjN,QAAQ1D,MAAM2Q,IAC9B,GAG8F,ECpBlG,IAAeiO,EAAAA,EAAAA,IAAwBmb,GAAAA,GAAvC,EAXqCO,KACnC,MAAMx7B,GAAQkC,EAAAA,EAAAA,IAAK,sCACbu5B,GAA4B95B,EAAAA,EAAAA,IAAU+5B,GAAAA,IAM5C,OAAOh8B,EAAAA,cAAC66B,GAAe,CAACT,UHXO,4BGWuB95B,MAAOA,EAAO+5B,YAJ5CC,IACtByB,EAA0BzB,GAAOr1B,OAAMkN,GAAKjN,QAAQ1D,MAAM2Q,IAAG,GAGqC,I,YCetG,IAAeiO,EAAAA,EAAAA,IAAwB6b,GAAAA,GAAvC,EApBwCC,KACtC,MAAM57B,GAAQkC,EAAAA,EAAAA,IAAK,uCACb25B,GAAcl6B,EAAAA,EAAAA,IAAUm6B,GAAAA,IACxBC,GAAiBp6B,EAAAA,EAAAA,IAAUq6B,GAAAA,IAC3BC,GAAyBt6B,EAAAA,EAAAA,IAAUu6B,GAAAA,IACnCC,GAAcj9B,EAAAA,EAAAA,IAAYk9B,GAAAA,IAYhC,OAAO18B,EAAAA,cAAC66B,GAAe,CAACT,UJrBG,wBIqBuB95B,MAAOA,EAAO+5B,YAV9CC,IAChBQ,GAAqBR,GAClB11B,MAAKsR,IACJimB,IACAE,EAAe,CAAEtiB,IAAK0iB,EAAc,IACpCF,EAAuBrmB,EAAQ,IAEhCjR,OAAMkN,GAAKjN,QAAQ1D,MAAM2Q,IAAG,GAGyD,ICb5F,IAAeiO,EAAAA,EAAAA,IAAwBuc,GAAAA,GAAvC,EAPgCC,KAC9B,MAAMt8B,GAAQkC,EAAAA,EAAAA,IAAK,8BACbq6B,GAAqB56B,EAAAA,EAAAA,IAAU66B,GAAAA,IAErC,OAAO98B,EAAAA,cAAC66B,GAAe,CAACT,ULVI,oBKUuB95B,MAAOA,EAAO+5B,YAAawC,GAAsB,ICGtG,IAAezc,EAAAA,EAAAA,IAAwBuc,GAAAA,GAAvC,EAPgCC,KAC9B,MAAMt8B,GAAQkC,EAAAA,EAAAA,IAAK,oCACbq6B,GAAqB56B,EAAAA,EAAAA,IAAU86B,GAAAA,IAErC,OAAO/8B,EAAAA,cAAC66B,GAAe,CAACT,UNTU,0BMSuB95B,MAAOA,EAAO+5B,YAAawC,GAAsB,ICG5G,IAAezc,EAAAA,EAAAA,IAAwBuc,GAAAA,GAAvC,EAPgCC,KAC9B,MAAMt8B,GAAQkC,EAAAA,EAAAA,IAAK,gCACbq6B,GAAqB56B,EAAAA,EAAAA,IAAU+6B,GAAAA,IAErC,OAAOh9B,EAAAA,cAAC66B,GAAe,CAACT,UPRK,qBOQuB95B,MAAOA,EAAO+5B,YAAawC,GAAsB,ICSvG,MAAMI,GAAej9B,EAAAA,cAAoB,CAAEs6B,MAAO,OAErCC,GAAiBA,KAAMhU,EAAAA,EAAAA,YAAW0W,IAExC,SAASlQ,GAASzgB,EAAO4wB,GAC9B,MAAQC,YAAaC,EAAa1U,aAAc2U,GAAiBH,EAI3D3yB,EAAM+B,EAAMguB,MAAMxa,EAClBtV,EAAO8B,EAAMguB,MAAMza,EACzB,MAAO,CACLtV,IAAKA,EAJQ,GAIO8yB,EAAe9yB,EAJtB,GAIqCA,EAClDC,KAAMA,EANM,IAMS4yB,EAAc5yB,EANvB,IAMsCA,EAClDwK,MAPY,IAShB,CAsDA,QAAewY,EAAAA,EAAAA,KApDR,WACL,MAAM,IAAEhb,IAAQib,EAAAA,EAAAA,MACV6P,GAAe99B,EAAAA,EAAAA,IAAY+9B,GAAAA,IAC3BC,GAAOh+B,EAAAA,EAAAA,IAAYi+B,EAAAA,KAClBnxB,EAAOoxB,IAAY97B,EAAAA,EAAAA,YACpB+7B,GAAgBn+B,EAAAA,EAAAA,IAAYo+B,EAAAA,IAE5BC,GAAmB/kB,EAAAA,EAAAA,cAAY,KACnC4kB,EAAS,KAAK,GACb,IAEGI,GAAgBhlB,EAAAA,EAAAA,cACpBxM,IACEoxB,EAASpxB,GACTkG,EAAIurB,KAAK,QAASF,EAAiB,GAErC,CAACH,EAAUG,KAGb3D,EAAAA,EAAAA,KACE1nB,IACEA,EAAIqgB,GAAG,cAAeiL,GAEf,KACLtrB,EAAIklB,IAAI,cAAeoG,EAAc,IAGzC,CAACA,KAGH37B,EAAAA,EAAAA,YAAU,IAAM07B,GAAkB,CAACP,EAAcE,EAAMK,ICjEhCG,EAACC,EAAS/+B,KAAwB,IAAtB,KAAEiB,EAAI,QAAE0G,GAAS3H,EACpD,MAAM2U,GAAkB5R,EAAAA,EAAAA,IAAU6R,GAAAA,IAElC3R,EAAAA,EAAAA,YAAU,KACJ87B,GACFpqB,EAAgB,CACd1T,OACA0G,UACAyd,cAAc,GAElB,GACC,CAAC2Z,GAAW,EDuDfD,CAAiB1xB,EAAO,CAAEnM,KAAMs6B,EAAAA,GAAwB5zB,QAAS,CAAE,CAACmR,GAAAA,IRtE5C,gBQwExB,MAAMkmB,GAAmB12B,EAAAA,EAAAA,GAAiBq2B,EAAkB,CAACA,IAE7D,OAAKvxB,GAAUqxB,EAGb39B,EAAAA,cAAA,OAAKgB,UV5Ec,QU4EKI,MAAO2rB,GAASzgB,EAAOkG,EAAI+kB,aAAc5vB,QAASu2B,GACxEl+B,EAAAA,cAACi9B,GAAanU,SAAQ,CAAC7c,MAAO,CAAEquB,MAAOhuB,aAAK,EAALA,EAAOwrB,SAC5C93B,EAAAA,cAAC06B,GAA0B,MAC3B16B,EAAAA,cAAC48B,GAAuB,MACxB58B,EAAAA,cAACm+B,GAA6B,MAC9Bn+B,EAAAA,cAACo+B,GAAyB,MAC1Bp+B,EAAAA,cAAC87B,GAA4B,MAC7B97B,EAAAA,cAACm7B,GAA0B,MAC3Bn7B,EAAAA,cAACk8B,GAA+B,QAXD,IAevC,I,slBEtFA,SAAS3U,KACP,OAAQ8W,aAAe3O,MAAW,KACpC,CAEA,MAAM4O,WAAYt+B,EAAAA,UAChB2N,YAAY3K,GACVu7B,MAAMv7B,GACNw7B,KAAKt4B,MAAK0F,GAAAA,GAAA,GAAQ5I,GAAK,IAAEy7B,IAAK,GAAIC,MAAM,GAC1C,CAEAC,oBACEH,KAAKI,SACP,CAEAC,uBACEL,KAAKM,SAAS,CAAEJ,MAAM,IACtB3O,cAAcyO,KAAKO,UACrB,CAEAH,UACEJ,KAAKQ,MAAQ,EACbR,KAAK55B,KAAO2iB,KASZM,sBAPA,SAASmX,IACHR,KAAKt4B,MAAMw4B,OACfF,KAAKQ,QAELnX,sBAAsBmX,EAAMC,KAAKT,OACnC,EAE4BS,KAAKT,OAEjCA,KAAKO,UAAYlP,YAAY2O,KAAKU,eAAeD,KAAKT,MAAO,IAC/D,CAEAU,iBACE,MAAMC,EAAY5X,KAAQiX,KAAK55B,KACzB65B,EAAMD,KAAKQ,OAAqB,KAAZG,GAE1BX,KAAKM,SAAS,CAAEL,IAAKA,EAAI/P,QAAQ,GAAK,SAEtC8P,KAAK55B,KAAO2iB,KACZiX,KAAKQ,MAAQ,CACf,CAEAI,SACE,OAAOp/B,EAAAA,cAAA,OAAKgB,UChDO,SDgDaw9B,KAAKt4B,MAAMu4B,IAC7C,EAGF,U,mCEtCA,MAAMY,GAAengC,IAAsC,IAArC,KAAEs+B,EAAI,GAAE53B,EAAE,UAAE05B,EAAY,QAAQpgC,EACpD,MAAM,IAAEsT,IAAQib,EAAAA,EAAAA,MACV8R,GAAa//B,EAAAA,EAAAA,IAAY6uB,EAAAA,IA8C/B,OA5CAlsB,EAAAA,EAAAA,YAAU,KACR,KAAKqQ,GAAQ+sB,GAAe/B,GAAS53B,GAAI,OAEzC,MAAM45B,EAAU,GAAH3/B,OAAM+F,EAAE,eAEb65B,EAAIC,IAAMC,EAAIC,IAAOpC,EACvBqC,EAAK,CAACnY,KAAKoY,IAAIL,EAAIE,GAAKjY,KAAKoY,IAAIJ,EAAIE,IAKrC56B,EAAO,CACX7E,KAAM,UACN4/B,SAAU,CACR5/B,KAAM,UACN6/B,YAAa,CAAC,CAACH,EARR,CAACnY,KAAK2F,IAAIoS,EAAIE,GAAKjY,KAAKoY,IAAIJ,EAAIE,IAChC,CAAClY,KAAK2F,IAAIoS,EAAIE,GAAKjY,KAAK2F,IAAIqS,EAAIE,IAChC,CAAClY,KAAKoY,IAAIL,EAAIE,GAAKjY,KAAK2F,IAAIqS,EAAIE,IAMRC,MAqBnC,OAjBKI,EAAAA,EAAAA,GAAQztB,EAAI0tB,SAASV,IAGxBhtB,EAAI2tB,SAAS,CACXv6B,GAAI45B,EACJr/B,KAAM,OACNigC,OAAQ,CACNjgC,KAAM,UACN6E,QAEFq7B,MAAO,CACL,aAAcf,EACd,eAAgB,MAXpB9sB,EAAI8tB,UAAUd,GAASe,QAAQv7B,GAgB1B,KACDwN,EAAI0tB,SAASV,KACfhtB,EAAIguB,YAAYhB,GAChBhtB,EAAIiuB,aAAajB,GACnB,CACD,GACA,CAAChtB,EAAKgrB,aAAI,EAAJA,EAAMkD,WAAY96B,EAAI25B,IAExB,IAAI,EAGAoB,GAAmBA,KAC9B,MAAMnD,GAAOoD,EAAAA,GAAAA,KAAsBphC,EAAAA,EAAAA,IAAYqhC,GAAAA,KAC/C,OAAO7gC,EAAAA,cAACq/B,GAAY,CAAC7B,KAAMA,EAAM53B,GAAI,WAAY05B,UAAW,QAAU,EAG3DwB,GAAkBA,KAC7B,MAAMtD,GAAOh+B,EAAAA,EAAAA,IAAYi+B,EAAAA,IACzB,OAAOz9B,EAAAA,cAACq/B,GAAY,CAAC7B,KAAMA,EAAM53B,GAAI,UAAW05B,UAAW,QAAU,EAG1DyB,GAAqBA,KAChC,MAAMvD,GAAOh+B,EAAAA,EAAAA,IAAYwhC,EAAAA,IACzB,OAAOhhC,EAAAA,cAACq/B,GAAY,CAAC7B,KAAMA,EAAM53B,GAAI,gBAAiB05B,UAAW,QAAU,EAGhE2B,GAAqBA,KAChC,MAAMzD,GAAOh+B,EAAAA,EAAAA,IAAY0hC,EAAAA,IACzB,OAAOlhC,EAAAA,cAACq/B,GAAY,CAAC7B,KAAMA,EAAM53B,GAAI,gBAAiB05B,UAAW,QAAU,EAGhE6B,GAAgBA,KAC3B,MAAM,UAAEC,EAAS,QAAEC,IAAY7hC,EAAAA,EAAAA,IAAY8hC,GAAAA,IACrC9D,EAAO4D,GAAaC,GAAUE,EAAAA,GAAAA,IAAwB,CAACH,EAAWC,IAAY,KACpF,OAAOrhC,EAAAA,cAACq/B,GAAY,CAAC7B,KAAMA,EAAM53B,GAAI,QAAS05B,UAAW,QAAU,ECrFtD,SAASkC,KAAe,IAAAC,EAAAC,EACrC,MACMC,GAAwB,QAAdF,GADGhU,EAAAA,EAAAA,MACQjb,WAAG,IAAAivB,GAAS,QAATC,EAAdD,EAAgBG,eAAO,IAAAF,OAAA,EAAvBA,EAAAG,KAAAJ,KAA+B,EACzCjQ,EAAO9J,KAAKoa,MAAgB,IAAVH,GAAkB,IAE1C,OAAO3hC,EAAAA,cAAA,OAAKgB,UjCR4I,SiCQjH,SAAOwwB,EAChD,CCOA,MAAMuQ,GAAiB,CACrBvvB,IAAK,KACLwvB,GAAI,CACFxQ,MAAM,EACNyQ,UAAU,EACVzE,MAAM,EACN0E,OAAO,EACPC,YAAY,EACZC,YAAY,EACZ3D,KAAK,IAIH4D,GAAkB,uBAElBC,GAAuBA,MAC3BngC,EAAAA,EAAAA,YAAU,KACR0N,OAAO0yB,YAAcR,GACrBA,GAAeS,UAAY,CAACC,EAAMC,KAChCX,GAAeC,GAAGS,GAAQC,GAC1BC,EAAAA,GAAAA,IAAuBN,GAAiB,CAAEL,GAAID,GAAeC,IAAK,EAEpED,GAAeW,KAAOD,GAAQV,GAAeS,UAAUC,GAAM,GAC7DV,GAAevyB,KAAOizB,GAAQV,GAAeS,UAAUC,GAAM,GAC7D,MAAMG,GAAcC,EAAAA,GAAAA,IAAyBR,IAE7C,OADIO,GAAeA,EAAYZ,KAAID,GAAeC,GAAKY,EAAYZ,IAC5D,YACEnyB,OAAO0yB,WAAW,CAC1B,GACA,KAEHrI,EAAAA,EAAAA,KAAwB1nB,IACtBuvB,GAAevvB,IAAMA,CAAG,GACvB,IAEH,MAAM,GAAEwvB,GAAOD,GAEf,OACE/hC,EAAAA,cAAAA,EAAAA,SAAA,KACGgiC,EAAGxQ,MAAQxxB,EAAAA,cAACwhC,GAAY,MACxBQ,EAAGC,UAAYjiC,EAAAA,cAAC2gC,GAAgB,MAChCqB,EAAGxE,MAAQx9B,EAAAA,cAAC8gC,GAAe,MAC3BkB,EAAGG,YAAcniC,EAAAA,cAAC+gC,GAAkB,MACpCiB,EAAGI,YAAcpiC,EAAAA,cAACihC,GAAkB,MACpCe,EAAGE,OAASliC,EAAAA,cAACmhC,GAAa,MAC1Ba,EAAGvD,KAAOz+B,EAAAA,cAACs+B,GAAG,MACd,EAIQ,SAASwE,KACtB,OAAOC,EAAAA,GAAAA,IAAoB,YAAc/iC,EAAAA,cAACsiC,GAAoB,MAAM,IACtE,C,0nBChEA,MAAMhjB,GAAIC,KAAM,OAOhB,IAAIyjB,GALCnzB,OAAOozB,iBACV3jB,GAAE,oCACF4jB,EAAAA,GAAAA,OAIF,IAAIC,GAAU,E,wCCbC,MAAMC,WAAwBlI,MAC3CvtB,YAAYwE,GACVosB,MAAMpsB,GACNqsB,KAAK6E,cAAgBlxB,EACrBqsB,KAAKn8B,KAAO,iBACd,E,8nBCuCF,MAAMid,GAAIC,KAAM,OAEV+jB,GAA2B9hC,IAC/B,MAAM+hC,EAAkB,IAAIH,GAAgB5hC,GAC5CgiC,GAAAA,EAAcC,iBAAiBF,IAC/BG,EAAAA,GAAAA,IAAuB,wBAAwB,EAoOjD,OAhOoBxkC,IAAkB,IAAjB,SAAE0E,GAAU1E,EAE/B,MAAMykC,GAAiBv1B,EAAAA,EAAAA,QAAO,MACxBw1B,GAAkBx1B,EAAAA,EAAAA,WACjBy1B,EAAcC,IAAmBliC,EAAAA,EAAAA,UAAS,IAG3CmiC,GAAeC,EAAAA,GAAAA,GAAmBvG,EAAAA,IAClCwG,GAAkBzkC,EAAAA,EAAAA,IAAY0kC,EAAAA,IAC9BC,GAAa3kC,EAAAA,EAAAA,IAAY4kC,EAAAA,IACzB9S,GAAU9xB,EAAAA,EAAAA,IAAY+xB,EAAAA,IACtB8S,GAAY7kC,EAAAA,EAAAA,IAAY8kC,EAAAA,IACxBx1B,GAAStP,EAAAA,EAAAA,IAAYuP,GAAAA,IAGrBw1B,GAAatiC,EAAAA,EAAAA,IAAUuiC,EAAAA,IACvBC,GAAmBxiC,EAAAA,EAAAA,IAAUyiC,EAAAA,IAC7BC,GAAmB1iC,EAAAA,EAAAA,IAAU2iC,EAAAA,IAC7BC,GAAiB5iC,EAAAA,EAAAA,IAAU6iC,EAAAA,IAC3BlR,GAAuB3xB,EAAAA,EAAAA,IAAU4xB,EAAAA,IAEjCkR,GAAsBjsB,EAAAA,EAAAA,cAAY,KACtC,GAAIgU,EAAAA,EAAOkY,MAAO,CAChB,MAAM,IAAEr1B,EAAG,IAAEC,GAAQkd,EAAAA,EAAOkY,aACrBlY,EAAAA,EAAOkY,MACd,MAAMC,EAAgB,CACpBC,OAAQ,CAACt1B,EAAKD,GACd6hB,KAAM,IAGR,OADIlS,GAAE6lB,SAAS7lB,GAAE,+BAAgCla,KAAKC,UAAU4/B,IACzDA,CACT,CACA,MAAMA,EAAgB,CACpBG,OAAQrB,EAAa70B,SAGvB,OADIoQ,GAAE6lB,SAAS7lB,GAAE,uBAAwBla,KAAKC,UAAU4/B,IACjDA,CAAa,GACnB,IAEGI,GAAqBvsB,EAAAA,EAAAA,cACzB,KAAM,CACJ0kB,KAAMmG,EAAez0B,QAAQo2B,YAAYC,UACzC/T,KAAMmS,EAAez0B,QAAQ0yB,aAE/B,IAGI4D,GAAW1sB,EAAAA,EAAAA,cAAY,WAAgB,IAAfxM,EAAK2a,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrC,MAAM,cAAE2S,GAAkBttB,GACpB,KAAEkxB,EAAI,KAAEhM,GAAS6T,IACjBI,GAAaC,EAAAA,EAAAA,IAAqB/B,EAAez0B,SACjDy2B,GAAaC,EAAAA,EAAAA,IAAkBjC,EAAez0B,SAC9C22B,GAA6BC,EAAAA,EAAAA,IACjCnC,EAAez0B,QACfsuB,EACAuG,EAAa70B,SAGXoQ,GAAE6lB,SACJ7lB,GAAE,wCAAyCumB,EAA4B,QAASrI,GAGlF+G,EAAW,CACT/G,OACAhM,OACAiU,aACAE,aACA/L,gBACAiM,8BAEJ,GAAG,KAkBH1jC,EAAAA,EAAAA,YAAU,KACHwhC,EAAez0B,UACpB21B,IACAlB,EAAez0B,QAAQ62B,SAAS5B,EAAW59B,KAAI,GAC9C,CAAC49B,EAAW59B,MAEf,MAAMy/B,GAA0BltB,EAAAA,EAAAA,cAAY,KAC1C,GAAIurB,IAAc4B,EAAAA,IACdtC,EAAez0B,QAAQg3B,gBAAiB,CAC1C,MAAM,KAAE7jC,GAASshC,EAAez0B,QAAQ6d,WACpC8W,IAAiBxhC,IACnByhC,EAAgBzhC,GAChBoiC,EAAiBwB,EAAAA,IAErB,IACC,CAAC5B,EAAWR,KAEf1hC,EAAAA,EAAAA,YAAU,KACJkiC,IAAc8B,EAAAA,IAChBrC,EAAgB,GAClB,GACC,CAACO,KAEJliC,EAAAA,EAAAA,YAAU,KACR,KAAKikC,EAAAA,EAAAA,MAEH,YADA9C,GAAyB,oBAI3B,MAAQ/8B,IAAKnF,EAAK,OAAE4O,GAAWm0B,EACzBkC,GAAYC,EAAAA,GAAAA,MAElB,IACE3C,EAAez0B,QAAU,IAAIq3B,EAAAA,IAAW36B,GAAAA,GAAC,CACvC6f,UAAWmY,EAAgB10B,QAC3B9N,QACAolC,iBAAiB,EACjBC,YAAY,EACZnV,UACAoV,QAAS7U,EAAAA,GACT8U,iBAAiBn9B,EAAAA,EAAAA,MACjBo9B,UAAU,EACVC,oBAAoB,GACjB9B,KAAqB,IACxB+B,iBAAkBvgC,IAChB,MAAMwgC,EAAS,CAAEV,aAEjB,OADIr2B,IAAQ+2B,EAAO/2B,OAASA,GACrB,CAAEzJ,KAAKygC,EAAAA,GAAAA,IAAezgC,EAAKwgC,GAASE,QAAS,CAAE,kBAAmBn4B,GAAU,KFlJ3Co4B,KAChD,IAAI19B,EAAAA,EAAAA,MAAQ,OAEZ,IAAIw5B,EAEJkE,EAAYrU,GAAG,cAAc1gB,IAAK,IAAAg1B,GACb,QAAfA,EAAAh1B,EAAEi1B,qBAAa,IAAAD,GAAS,QAATA,EAAfA,EAAiBE,eAAO,IAAAF,OAAA,EAAxBA,EAA0B70B,QAAS,EACrC7M,aAAau9B,GAGfA,EAAcz9B,YACZ,IAAM2hC,EAAYI,KAAI17B,GAAAA,GAAC,CAAC,EAAIuG,GAAC,IAAEhS,KAAM,kBACrConC,EAAAA,GACD,IAEHL,EAAYrU,GAAG,aAAa,IAAMptB,aAAau9B,KAC/CkE,EAAYrU,GAAG,YAAY,IAAMptB,aAAau9B,IAAa,EEqIvDwE,CAAmC7D,EAAez0B,SAElDy0B,EAAez0B,QAAQu4B,gBAAgBC,kBAEvCjD,EAAiB0B,EAAAA,IAEjB,MAAMwB,EAxEeC,MACvB,MAAMC,GAAgB7N,EAAAA,EAAAA,IAASwL,EAAUvL,EAAAA,IACzC,OAAO,WAAgB,IAAf3tB,EAAK2a,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACf,MAAM,cAAE2S,GAAkBttB,EACtBstB,IAAkBkO,EAAAA,GACpBtC,EAASl5B,GAETu7B,EAAcv7B,EAElB,CAAC,EA+DuBs7B,GAsBtB,OArBAjE,EAAez0B,QAAQ2jB,GAAGgH,EAAAA,GAAqB8N,GAC/ChE,EAAez0B,QAAQ2jB,GAAGsH,EAAAA,GAAqBwN,GAE/ChE,EAAez0B,QAAQ6uB,KAAK,UAAU,KACpC,MAAM,KAAEP,EAAI,KAAEhM,GAAS6T,IACjBI,GAAaC,EAAAA,EAAAA,IAAqB/B,EAAez0B,SACjDy2B,GAAaC,EAAAA,EAAAA,IAAkBjC,EAAez0B,SAEhDoQ,GAAE6lB,SACJ7lB,GAAE,yBAA0Bke,GAG9B+G,EAAW,CACT/G,OACAhM,OACAiU,aACAE,aACA/L,cAAemO,EAAAA,IACf,IAGG,KACLpE,EAAez0B,QAAQwoB,IAAI,SAAUsO,GACrCrC,EAAez0B,QAAQkgB,SACvBuV,GAAkB,CAEtB,CAAE,MAAOxyB,GACPmxB,GAAyBnxB,EAC3B,IACC,KAEHhQ,EAAAA,EAAAA,YAAU,KACR,MAAM6lC,GAA0BlV,EAAAA,EAAAA,IAASkT,EAAyB,KAClE,GAAIrC,EAAez0B,QAEjB,OADAy0B,EAAez0B,QAAQ2jB,GAAG,SAAUmV,GAC7B,KACLrE,EAAez0B,QAAQwoB,IAAI,SAAUsQ,EAAwB,CAEjE,GACC,CAAChC,IAEJ,MAAMiC,GAAkBt/B,EAAAA,GAAAA,IACtBwJ,KAEI8xB,IACCiE,EAAAA,GAAAA,IAAwBvE,EAAez0B,QAASiD,KAChDg2B,EAAAA,GAAAA,IAAoCxE,EAAez0B,QAASiD,IAE7DyhB,GACF,GAEF,CAACqQ,EAAiBiE,GAAAA,GAAyBC,GAAAA,KAGvCC,GAAmBz/B,EAAAA,GAAAA,IACvBwJ,IF1O2Bk2B,EAACl2B,EAAG+0B,EAAaoB,EAAOppC,KAAkB,IAAhB,QAAEoyB,GAASpyB,EAElE,GADAikC,MACKH,GAAa,CAChB,MAAMuF,EAAcrB,EAAYtF,UAChCoB,GAAcz9B,YAAW,KACvB,GAAgB,IAAZ49B,GACFmF,EAAQn2B,QACH,GAAgB,IAAZgxB,IAAiBoF,EAAcjX,EAAS,CACjD,MAAMkX,EAAQ,CACZtD,OAAQ/yB,EAAE2lB,OACVtG,KAAM+W,EAAc,GAEtBrB,EAAYuB,MAAMD,EACpB,CACAxF,QAAc9b,EACdic,GAAU,CAAC,GACVuF,EAAAA,GACL,GE0NIL,CAAgBl2B,EAAGwxB,EAAez0B,QAAS+4B,EAAiB,CAAE3W,WAAU,GAE1E,CAAC2W,IAYH,OATA9lC,EAAAA,EAAAA,YAAU,KACR,GAAKwhC,EAAez0B,WAAW1F,EAAAA,EAAAA,MAG/B,OADAm6B,EAAez0B,QAAQ2jB,GAAG,QAASuV,GAC5B,KACLzE,EAAez0B,QAAQwoB,IAAI,QAAS0Q,EAAiB,CACtD,GACA,CAACA,EAAkBzE,EAAez0B,UAGnClP,EAAAA,cAAC2oC,EAAAA,GAAW7f,SAAQ,CAAC7c,MAAO,CAAEuG,IAAKmxB,EAAez0B,UAChDlP,EAAAA,cAAA,OAAKgB,UC7QkB,QD6QO4I,IAAKg6B,GAChChgC,GAEiB,E,gmBEtQ1B,MAAM0b,GAAIC,KAAM,OAsDhB,OApD0BqpB,KACxB,MAAM,WAAEC,EAAU,aAAEC,EAAY,cAAEC,EAAgB,CAAC,IAAMvpC,EAAAA,EAAAA,IAAYwpC,EAAAA,KAC/D,IAAEx2B,IAAQib,EAAAA,EAAAA,MACVwb,GAAsBhnC,EAAAA,EAAAA,IAAUinC,EAAAA,IAChC9a,GAAW5uB,EAAAA,EAAAA,IAAY6uB,EAAAA,KAE7BlsB,EAAAA,EAAAA,YAAU,KACR,IAAKqQ,IAASq2B,IAAeC,EAAe,OAI5C,IAAIK,EAFJF,IAGA,MAAMG,EAAOx9B,GAAAA,GAAA,GACRm9B,GAAa,IAChBjhB,SAAUihB,EAAcM,gBACpBN,EAAcO,kBACd,CACEC,OAAQ/hB,GAAK,EAAIE,KAAK8hB,IAAI,EAAIhiB,EAAG,KAEnC,CAAC,GAGDiiB,EAAYV,EAAcW,OAASC,EAAAA,GAA2B,CAAC,EAAI,CAAE/P,cAAemO,EAAAA,IAEtFzoB,GAAE6lB,UACA0D,GAAYvpB,GAAE,aAAcupB,EAAY,eAAee,EAAAA,EAAAA,IAAYf,IACnEC,GAAcxpB,GAAE,eAAgBwpB,IAGlCD,IAAce,EAAAA,EAAAA,IAAYf,GAC5BM,EAAOA,KACL,IACE32B,EAAIq3B,UAAUhB,EAAYO,EAASK,EACrC,CAAE,MAAOt3B,GACPqxB,GAAAA,EAAcsG,cAAc,MAAO,iBAAFjqC,OAAmBuF,KAAKC,UAAUwjC,KACnErF,GAAAA,EAAcC,iBAAiBtxB,EACjC,GAEO22B,IACTK,EAAOA,KACL,IACE32B,EAAIu3B,OAAMn+B,GAAAA,GAAC,CAAC,EAAIw9B,GAAO,IAAElE,OAAQ4D,IAAgBW,EACnD,CAAE,MAAOt3B,GACPqxB,GAAAA,EAAcsG,cAAc,MAAO,mBAAFjqC,OAAqBuF,KAAKC,UAAUyjC,KACrEtF,GAAAA,EAAcC,iBAAiBtxB,EACjC,IAGJic,EAAW7oB,WAAW4jC,EAAM,GAAK32B,EAAIurB,KAAK,OAAQoL,EAAK,GACtD,CAAC32B,EAAKq2B,EAAYC,EAAc1a,GAAU,ECvDhC,SAAS4b,KACtB,MAAM,WAAEpY,IAAepyB,EAAAA,EAAAA,IAAYwpC,EAAAA,KAC7B,IAAEx2B,IAAQib,EAAAA,EAAAA,MACVwc,GAAsBhoC,EAAAA,EAAAA,IAAUioC,EAAAA,KAEtC/nC,EAAAA,EAAAA,YAAU,KACHqQ,GAAQof,IAEbqY,IAEAz3B,EAAI23B,OAAOvY,GAAW,GACrB,CAACpf,EAAKof,GACX,C,gBCVA,MAAMtS,GAAIC,KAAM,OAiChB,OA/B0B6qB,KACxB,MAAMC,GAAY7qC,EAAAA,EAAAA,IAAY8qC,EAAAA,IACxBC,GAAuBtoC,EAAAA,EAAAA,IAAUuoC,EAAAA,KAEvCtQ,EAAAA,EAAAA,KAAwB1nB,KACtBi4B,EAAAA,GAAAA,IAAO,UAAWJ,EAAY,SAAW,UAEzC,MAAMK,GAAoBtE,EAAAA,EAAAA,MACtB9mB,GAAE6lB,SAAS7lB,GAAE,cAAeorB,IAChCD,EAAAA,GAAAA,IAAO,iBAAkBE,OAAOD,IAEhC,MAAME,GAAcC,EAAAA,GAAAA,IAAiB,CAAExoC,KAAM,SAC7CyoC,EAAAA,GAAAA,IAAeC,GAASA,EAAMC,mBAAmB,SAEjD,MAAMC,EAAYL,EAAYM,WAAW,CAAEC,GAAI,UACzCC,EAAWR,EAAYM,WAAW,CAAEC,GAAI,SAC9C34B,EAAIurB,KAAK,aAAa,KACpBkN,EAAUI,QAAQ,IAEpB74B,EAAIurB,KAAK,QAAQ,KACfqN,EAASC,SACTT,EAAYS,SAEZ,MAAM,eAAEC,EAAiB,EAAC,aAAEC,EAAe,GAAMH,EAC3CI,EAAWD,EAAeD,EAC5BhsB,GAAE6lB,SAAS7lB,GAAE,YAAaksB,GAC9BjB,EAAqB,CAAEiB,WAAUd,qBAAoB,GACrD,GACD,GAAG,E,WCfR,GAlB6Be,KAC3B,MAAMC,GAAaC,EAAAA,GAAAA,MAEbC,GAAazZ,EAAAA,EAAAA,IACjB3f,IACE,MAAM3H,EAAU6gC,KACXx+B,EAAAA,EAAAA,GAAQsF,EAAIk5B,aAAc7gC,IAC7B2H,EAAIo5B,WAAW/gC,EAAS,CAAE+uB,cAAekO,EAAAA,IAC3C,GAEF,CAAC4D,KAGHvpC,EAAAA,EAAAA,YAAU,KACRypC,GAAY,GACX,CAACA,GAAY,E,wBC8BlB,IAAeliC,EAAAA,EAAAA,KAAW0W,EAAAA,EAAAA,IAAwByrB,EAAAA,GAAxBzrB,EArCA0rB,KACxB,MAAMC,GAA4B9pC,EAAAA,EAAAA,IAAU+pC,EAAAA,IACtCC,GAAiChqC,EAAAA,EAAAA,IAAUiqC,EAAAA,KAC1CrqC,EAASC,IAAcF,EAAAA,EAAAA,WAAS,GAEjCuqC,GAAe3kC,EAAAA,EAAAA,IAAiB,KACpCukC,GAA2B,GAC1B,CAACA,IAEEl4B,GAAkB5R,EAAAA,EAAAA,IAAU6R,GAAAA,GAYlC,OAVA3R,EAAAA,EAAAA,YAAU,KACR0R,EAAgB,CACd1T,KAAM8jB,EAAAA,GACNpd,QAAS,CAAEqd,IAAKC,GAAAA,GAAQioB,6BACxB9nB,cAAc,IAEhB2nB,IACA1mC,YAAW,IAAMzD,GAAW,IAAQ,IAAK,GACxC,IAGD9B,EAAAA,cAAA,OAAKgB,UAAW0F,ICnCG,QDmCiB7E,EAAmB,GCnCrB,SDmC0B8F,QAASwkC,GACnEnsC,EAAAA,cAAA,OAAKgB,UCpC6C,SDqChDhB,EAAAA,cAAA,SACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,mCAET5F,EAAAA,cAAA,SACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,mCAGX5F,EAAAA,cAAA,OAAKgB,UC5CmE,SD6CtEhB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,mBAEb,KE/CV,IAAgB,KAAO,QAAQ,UAAY,QAAQ,OAAS,QAAQ,WAAa,QAAQ,OAAS,QAAQ,QAAU,QAAQ,YAAc,QAAQ,YAAc,QAAQ,WAAa,QAAQ,MAAQ,QAAQ,oBAAsB,QAAQ,cAAgB,QAAQ,aAAe,QAAQ,WAAa,QAAQ,eAAiB,QAAQ,YAAc,QAAQ,QAAU,QAAQ,MAAQ,QAAQ,QAAU,QAAQ,QAAU,QAAQ,cAAgB,QAAQ,aAAe,QAAQ,gBAAkB,SCW9d,MAAMkrC,GAAkBntC,IAA4B,IAA3B,KAAEiC,EAAI,GAAEyE,EAAE,SAAE0mC,GAAUptC,EACpD,MAAMqtC,GAActqC,EAAAA,EAAAA,IAAUuqC,EAAAA,IACxBp4B,EAASxO,KAAOpG,EAAAA,EAAAA,IAAY8vB,EAAAA,IAE9Blb,GAAUk4B,GAAUC,EAAY5c,EAAAA,GAAU8c,SAE9C,MAAM9kC,GAAUH,EAAAA,EAAAA,IAAiB,IAAM+kC,EAAYn4B,EAASub,EAAAA,GAAU8c,QAAU7mC,IAAK,CAAC2mC,EAAan4B,EAAQxO,IAE3G,OACE5F,EAAAA,cAAA,OACE2H,QAASA,EACT3G,UAAW0F,IAAWyB,GAAEukC,YAAavkC,GAAEwkC,WAAYv4B,GAAUjM,GAAEykC,aAAcN,GAAYnkC,GAAE0kC,sBAE3F7sC,EAAAA,cAAA,OAAKgB,UAAU,QACbhB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAMA,EAAMH,UAAW0F,IAAW4lC,GAAYnkC,GAAE2kC,eAE3D9sC,EAAAA,cAAA,QAAMgB,UAAW0F,IAAWyB,GAAE7H,MAAOgsC,GAAYnkC,GAAE4kC,gBACjD/sC,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAE,oBAAA/F,OAAsB+F,MAEzB,EAIGonC,GAAmBvpC,IAA4B,IAA3B,KAAEtC,EAAI,GAAEyE,EAAE,SAAE0mC,GAAU7oC,EACrD,MAAMwpC,GAAehrC,EAAAA,EAAAA,IAAUirC,EAAAA,IACzB94B,EAASxO,KAAOpG,EAAAA,EAAAA,IAAY2tC,EAAAA,IAE9B/4B,GAAUk4B,GAAUW,EAAaG,EAAAA,GAAWC,QAEhD,MAAM1lC,GAAUH,EAAAA,EAAAA,IAAiB,IAAMylC,EAAa74B,EAASg5B,EAAAA,GAAWC,OAASznC,IAAK,CAACqnC,EAAc74B,EAAQxO,IAE7G,OACE5F,EAAAA,cAAA,OACE2H,QAASA,EACT3G,UAAW0F,IAAWyB,GAAEukC,YAAavkC,GAAEmlC,YAAal5B,GAAUjM,GAAEykC,aAAcN,GAAYnkC,GAAE0kC,sBAE5F7sC,EAAAA,cAAA,OAAKgB,UAAU,QACbhB,EAAAA,cAAA,OAAK4H,IAAKzG,EAAMH,UAAW0F,IAAW4lC,GAAYnkC,GAAE2kC,eAEtD9sC,EAAAA,cAAA,QAAMgB,UAAW0F,IAAWyB,GAAE7H,MAAOgsC,GAAYnkC,GAAE4kC,gBACjD/sC,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAE,oBAAA/F,OAAsB+F,MAEzB,E,oaChCV,GAjBkB1G,IAAA,IAAC,QAAEyI,GAASzI,EAAA,OAC5Bc,EAAAA,cAAA,OAAKgB,UCLgB,QDKG2G,QAASA,GAC/B3H,EAAAA,cAAA,OAAKgB,UCNsE,SDOzEhB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,mBAEjBnB,EAAAA,cAAA,KAAGgB,UCTgC,SDUjChB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,6CAET5F,EAAAA,cAAA,KACEgB,UCbmD,QDcnDusC,wBAAyB,CACvBC,QAAQhrC,EAAAA,EAAAA,IAAK,6CAGb,EEYR,MAAMirC,GAAQ,QACRC,GAAO,OAEPC,GAAU,CACd,CACEtnC,IAAK+mC,EAAAA,GAAWC,OAChBlsC,KAAMysC,GACNztC,KAAMstC,GACNI,mBAAmB,GAErB,CACExnC,IAAK+mC,EAAAA,GAAWU,OAChB3sC,KAAM4sC,GACN5tC,KAAMstC,GACNI,mBAAmB,GAErB,CACExnC,IAAK+mC,EAAAA,GAAWY,OAChB7sC,KAAM8sC,GACN9tC,KAAMstC,GACNI,mBAAmB,GAErB,CACExnC,IAAK+mC,EAAAA,GAAWc,UAChB/sC,KAAMgtC,GACNhuC,KAAMstC,GACNI,mBAAmB,GAErB,CACExnC,IAAK+mC,EAAAA,GAAWgB,KAChBjtC,KAAMktC,GACNluC,KAAMstC,GACNI,mBAAmB,GAErB,CACExnC,IAAKspB,EAAAA,GAAU8c,QACftrC,KAAM,UACNhB,KAAMutC,GACNG,mBAAmB,GAErB,CACExnC,IAAKspB,EAAAA,GAAUC,QACfzuB,KAAM,kBACNhB,KAAMutC,GACNG,mBAAmB,GAErB,CACExnC,IAAKspB,EAAAA,GAAU2e,IACfntC,KAAM,kBACNhB,KAAMutC,GACNG,mBAAmB,GAErB,CACExnC,IAAKspB,EAAAA,GAAU4e,QACfptC,KAAM,eACNhB,KAAMutC,GACNG,mBAAmB,GAErB,CACExnC,IAAKspB,EAAAA,GAAU6e,GACfrtC,KAAM,iBACNhB,KAAMutC,GACNG,mBAAmB,IAmIvB,QAAeztB,EAAAA,EAAAA,KAAwB2R,EAAAA,EAAAA,MAAvC,EA/HsB0c,KACpB,MAAOC,EAASC,IAAc/sC,EAAAA,EAAAA,UAAS,UAC/B4uB,QAASoe,EAAoBne,WAAYoe,GAAiBte,KAC5D,QAAEC,EAAO,WAAEC,EAAU,eAAEG,GAAmBL,IAC1Cue,EAAuB,WAAZJ,EACXK,EAAwB,YAAZL,GACZ,OAAEM,EAAM,OAAEC,IAAWzuB,EAAAA,GAAAA,GAAaC,GAAAA,GAAY2E,cAC9C2mB,GAA4B9pC,EAAAA,EAAAA,IAAU+pC,EAAAA,IACtCkD,GAAU1vC,EAAAA,EAAAA,IAAY8qC,EAAAA,IACtBz2B,GAAkB5R,EAAAA,EAAAA,IAAU6R,GAAAA,GAC5Bq7B,GAAoBltC,EAAAA,EAAAA,IAAUmtC,EAAAA,IAE9BC,GAAmBv2B,EAAAA,EAAAA,cAAY,KACnCq2B,IACAt7B,EAAgB,CACd1T,KAAMmvC,EAAAA,GACNzoC,QAAS,CAAEqd,IAAKqrB,GAAAA,GAAUC,iBAAkB,CAACx3B,GAAAA,IAASk3B,EAAU,SAAW,UAC3E,GACD,CAACC,IAEEM,GAAkBjoC,EAAAA,EAAAA,IAAiB,IAAMqnC,GAAcD,IAAqB,CAACC,EAAcD,IAE3Fc,EAAaA,KACjBf,EAAW,WACXA,EAAW,UACXM,GAAQ,EAUJU,EAAUA,IAEZ3vC,EAAAA,cAAA,OAAKgB,UAAW0F,IAAWyB,GAAEwlC,QAASmB,GAAY3mC,GAAEynC,OAAQb,GAAa5mC,GAAE0nC,UACzE7vC,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE2nC,WAChB9vC,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,8BAET5F,EAAAA,cAAA,OAAKgB,UAAW0F,IAAWyB,GAAEqtB,aAAc7tB,QAASA,IAAM+nC,KACxD1vC,EAAAA,cAAA,OAAKgB,UAAU,QACbhB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,qBAGlBqI,EAAAA,EAAAA,OACCxJ,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE4nC,gBAChB/vC,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE6nC,SAChBhwC,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE8nC,eAChBjwC,EAAAA,cAACkwC,GAAAA,EAAW,CAACC,aAAcjB,EAAShjC,SAAUmjC,IAC9CrvC,EAAAA,cAAA,KAAGgB,UAAWmH,GAAEioC,cACdpwC,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,qCAGX5F,EAAAA,cAAA,OAAK4H,IAAKyoC,GAAgBrvC,UAAWmH,GAAEmoC,gBAAiB3oC,QAAS8nC,IAChEb,GAAsB5uC,EAAAA,cAACuwC,GAAS,CAAC5oC,QAAS8nC,MAIjDzvC,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE4nC,gBAChB/vC,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE6I,OAChBhR,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,4BAET5F,EAAAA,cAAA,OAAKgB,UAAWmH,GAAEqoC,aACf7C,GACEtxB,QAAOnd,IAAA,IAAC,KAAEiB,GAAMjB,EAAA,OAAKiB,IAASstC,EAAK,IACnCj7B,KAAI/O,IAAA,IAAC,KAAEtD,EAAI,IAAEkG,EAAG,KAAElF,EAAI,kBAAE0sC,GAAmBpqC,EAAA,OAC1CzD,EAAAA,cAACgtC,GAAgB,CAAC3mC,IAAKA,EAAKT,GAAIS,EAAKlF,KAAMA,EAAMmrC,UAAW4C,IAAYrB,GAAqB,MAIrG7tC,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE4nC,gBAChB/vC,EAAAA,cAAA,OAAKgB,UAAWmH,GAAE6I,OAChBhR,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,2BAET5F,EAAAA,cAAA,OAAKgB,UAAWmH,GAAEqoC,aACf7C,GACEtxB,QAAOvW,IAAA,IAAC,KAAE3F,GAAM2F,EAAA,OAAK3F,IAASutC,EAAI,IAClCl7B,KAAIi+B,IAAA,IAAC,KAAEtwC,EAAI,IAAEkG,EAAG,KAAElF,EAAI,kBAAE0sC,GAAmB4C,EAAA,OAC1CzwC,EAAAA,cAACqsC,GAAe,CAAChmC,IAAKA,EAAKT,GAAIS,EAAKlF,KAAMA,EAAMmrC,UAAW4C,IAAYrB,GAAqB,OAQ1G,OACE7tC,EAAAA,cAAA,OAAKgB,UAAW0F,IAAWyB,GAAEqP,KAAMs3B,GAAY3mC,GAAEynC,OAAQb,GAAa5mC,GAAE0nC,WACrErmC,EAAAA,EAAAA,MACCxJ,EAAAA,cAAC2vC,EAAO,MAER3vC,EAAAA,cAACyH,GAAAA,EAAK,CACJC,QAAS+Y,GAAAA,GAAY2E,aACrBrZ,OAAQ+iC,EACR1tC,MAAO,CACLwJ,OAAQ,IACRL,IAAK,OACLyK,MAAO,OACPtK,UAAW,sBACXgmC,wBAAyB,IACzBC,uBAAwB,KAE1B1lC,aAAc,CACZZ,OAAQ,IACRC,gBAAiB,oBAEnBoB,eAAgBgkC,EAChB5jC,2BAAyB,GAEzB9L,EAAAA,cAAC2vC,EAAO,OAGZ3vC,EAAAA,cAAA,OAAAoG,EAAAA,EAAAA,GAAA,CAAKpF,UAAW0F,IAAWyB,GAAEyoC,OAAQzoC,GAAE0oC,YAAalpC,QAtFpCmpC,KAClBnC,EAAW,UACXle,GAAW,GACXue,IACAjD,GAA2B,GAkFqDnb,GAC5E5wB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,0BACP5F,EAAAA,cAAA,OAAKgB,UAAU,QACbhB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,oBAGnBnB,EAAAA,cAAA,QAAMgB,UAAW0F,IAAWyB,GAAEqoB,QAASA,GAAW,WAChDxwB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,8BAEL,IC9LV,GAlBkBmrC,KCCUC,MAC1B,MAAM,IAAEx+B,IAAQib,EAAAA,EAAAA,MACV4G,GAAS70B,EAAAA,EAAAA,IAAY8kC,EAAAA,IACrB1tB,GAAiB3U,EAAAA,EAAAA,IAAU4U,GAAAA,IAC3BhD,GAAkB5R,EAAAA,EAAAA,IAAU6R,GAAAA,GAC5BkD,GAAuB/U,EAAAA,EAAAA,IAAUgV,GAAAA,IACjCg6B,GAAezxC,EAAAA,EAAAA,IAAY0xC,GAAAA,IAiB3BvpC,EAAUwK,IAfMjT,KAAsB,IAArB,GAAE0G,EAAE,SAAEurC,GAAUjyC,EACrC2U,EAAgB,CACd1T,KAAMixC,EAAAA,GACNvqC,QAAS,CACPyN,MAAO68B,KAIXn6B,IACAJ,EAAe,CACbO,MAAOC,GAAAA,GACPC,aAAc,CAAEC,YAAa1R,IAC7B,EAOFyrC,CAAc,CAAEzrC,GAHLuM,EAAEm/B,SAAS,GAAGje,WAAWke,aAGhBJ,SAFHh/B,EAAEm/B,SAAS,GAAGje,WAAWme,sBAEX,GAGjCrvC,EAAAA,EAAAA,YAAU,KACR,GAAKqQ,GAAO6hB,IAAW4R,EAAAA,GAcvB,OAZAzzB,EACGua,WACA0kB,OAAOp1B,QAAO8W,GAASA,EAAMue,QAAUve,EAAMue,OAAOC,aACpDC,SAAQnuC,IAAY,IAAX,GAAEmC,GAAInC,EACVmC,EAAGisC,MAAMC,EAAAA,MACXt/B,EAAIu/B,kBAAkBnsC,EAAI,aAAc,WACpCqrC,GACFz+B,EAAIqgB,GAAG,QAASjtB,EAAI+B,GAExB,IAGG,KACD6K,GAAOA,EAAIua,YACbva,EACGua,WACA0kB,OAAOp1B,QAAO8W,GAASA,EAAMue,QAAUve,EAAMue,OAAOC,aACpDC,SAAQ9rC,IAAY,IAAX,GAAEF,GAAIE,EACVmrC,GACFz+B,EAAIklB,IAAI,QAAS9xB,EAAI+B,EACvB,GACA,CACP,GACA,CAAC6K,EAAK6hB,EAAQ4c,GAAc,EDxD/BD,GEF2BgB,MAC3B,MAAM,IAAEx/B,IAAQib,EAAAA,EAAAA,MACVW,GAAW5uB,EAAAA,EAAAA,IAAY6uB,EAAAA,IACvB4iB,GAAezxC,EAAAA,EAAAA,IAAY0xC,GAAAA,IAC3Be,GAAsBzyC,EAAAA,EAAAA,IAAY0yC,GAAAA,IAElCC,GAAuCxpC,EAAAA,GAAAA,IAC3C2D,GACEkG,EAAIygB,uBAAsBmf,EAAAA,GAAAA,IAAqB9lC,IAAQ+lC,MAAKnf,IAAW,IAAAof,EAAAC,EACrE,MAAMC,EAA2B,QAApBF,EAAgB,QAAhBC,EAAGrf,EAAQC,aAAK,IAAAof,OAAA,EAAbA,EAAe3sC,UAAE,IAAA0sC,EAAAA,EAAI,GAC/BG,EAAWC,EAAAA,GAAkBhmC,KAAK8lC,GAClCG,IAAM1B,GAAea,EAAAA,GAAaplC,KAAK8lC,GAC7C,OAAOC,GAAYE,CAAG,KAE1B,CAACngC,EAAKy+B,IAGF2B,GAAkBjqC,EAAAA,GAAAA,IACtBwJ,IACE,MAAM0gC,EAAuBV,EAAqChgC,GAClEK,EAAI+kB,YAAYn2B,MAAMo2B,OAASya,EAAsB,YAAcY,EAAuB,UAAY,EAAE,GAE1G,CAACrgC,EAAK2/B,EAAsCF,KAG9C9vC,EAAAA,EAAAA,YAAU,KACR,IAAIqH,EAAAA,EAAAA,MAEF,OADIgJ,GAAO4b,GAAU5b,EAAIqgB,GAAG,YAAa+f,GAClC,KACDpgC,GAAKA,EAAIklB,IAAI,YAAakb,EAAgB,CAElD,GACC,CAACpgC,EAAK4b,EAAUwkB,GAAiB,EF7BpCZ,GACApJ,KACAoB,KACAyB,KACArB,MAEqC5qC,EAAAA,EAAAA,IAAYszC,EAAAA,IAEX,KACpC9yC,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAC8rC,GAAiB,MAClB9rC,EAAAA,cAACyuC,GAAa,Q,kBGhBpB,MAAMsE,IAAgBvpC,EAAAA,EAAAA,MAAS,GAAM,GAC/BwpC,GAAez1B,GAAQA,EAAMmK,KAAKoa,MAAMvkB,GAAOw1B,GAAgBrrB,KAAKurB,MAAM11B,GAAOmK,KAAKoa,MAAMvkB,GCclG,OAfkB21B,KCAOC,MACvB,MAAM,IAAE3gC,IAAQib,EAAAA,EAAAA,OACT2lB,EAAyBC,IAA8BzxC,EAAAA,EAAAA,UAAS,IACjEyyB,GAAS70B,EAAAA,EAAAA,IAAY8kC,EAAAA,IACrBjV,GAAU7vB,EAAAA,EAAAA,IAAY8vB,EAAAA,IACtBgkB,GAAW9zC,EAAAA,EAAAA,IAAY2tC,EAAAA,KAE7BhrC,EAAAA,EAAAA,YAAU,KACR,IAAKqQ,GAAO6hB,IAAW4R,EAAAA,GAAmB,OAE1CzzB,EAAIu/B,kBAAkB,uBAAwB,cAAewB,EAAAA,EAAAA,MAAyB,OAAZ,WAC1E/gC,EAAIu/B,kBAAkB,sBAAuB,cAAcwB,EAAAA,EAAAA,MAAa,UAAY,QAEpF,MAAMC,EAAehhC,EAClBua,WACA0kB,OAAOp1B,QAAO8W,GAASA,EAAMue,QAAUve,EAAMue,OAAOC,aACpDn/B,KAAItT,IAAA,IAAC,GAAE0G,EAAE,OAAE8rC,GAAQxyC,EAAA,MAAM,CAAE0G,KAAI+rC,WAAYD,EAAOC,WAAY,IAEjE0B,EAA2BG,EAAa,GACvC,CAAChhC,EAAK6hB,KAETlyB,EAAAA,EAAAA,YAAU,KACHqQ,GAA0C,IAAnC4gC,EAAwB9gC,QACpC8gC,EAAwBxB,SAAQze,IAC9B,IAAIwe,EAAaxe,EAAMwe,WACnB2B,IAAalG,EAAAA,GAAWc,WAAa/a,EAAMvtB,GAAGisC,MAAM,YAE7CxiB,IAAYM,EAAAA,GAAU6e,IAAMrb,EAAMvtB,GAAGisC,MAAM,qBAE3CxiB,IAAYM,EAAAA,GAAUC,SAAWuD,EAAMvtB,GAAGisC,MAAM,oBAEhDxiB,IAAYM,EAAAA,GAAU4e,SAAWpb,EAAMvtB,GAAGisC,MAjCf,IAAI4B,OAAO,IAAD5zC,OAiCyC,WAjClCA,QAAG2J,EAAAA,EAAAA,MAAS,GAAK,MAAK,OA4B3EmoC,EAAa,UAOJ2B,IAAalG,EAAAA,GAAWc,YACjCyD,EAAa,QAEfn/B,EAAIu/B,kBAAkB5e,EAAMvtB,GAAI,aAAc+rC,EAAW,GACzD,GACD,CAACn/B,EAAK4gC,EAAyB/jB,EAASikB,GAAU,EDrCrDH,GDmBa,WACb,MAAMjiB,GAAkBjvB,EAAAA,EAAAA,IAAUkvB,EAAAA,KAC3BuiB,EAAiBC,EAAmBC,IAAyB5hC,EAAAA,GAAAA,GAAW,KAEzEm4B,GAAShY,EAAAA,EAAAA,IAA0B,SAAC3f,EAAKqhC,GAAoB,IAAjBzK,EAAOniB,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACtDmiB,EAAQ0K,WAAU1K,EAAQ0K,SAAW,KACzBD,EAAIrhC,EAAIovB,WAEvBiS,EAAInsB,KAAKqsB,KAAKF,IACNG,EAAAA,KAAqBH,EAAIG,EAAAA,KAEjCH,EAAInsB,KAAKoa,MAAM+R,IACPhiB,EAAAA,KAAcgiB,EAAIhiB,EAAAA,IAE5Brf,EAAI23B,OAAO0J,EAAGzK,EAChB,IAEM6K,GAAgB9hB,EAAAA,EAAAA,IAA0B,CAAC3f,EAAKlG,KAAU,IAAA4nC,EAAAC,EAAAC,EAAAC,EAC9D,MAAMxpC,EAAU2H,EAAIk5B,cACd,MAAE12B,EAAK,OAAEC,IAAWq/B,EAAAA,EAAAA,IAAuB9hC,GAC3C+hC,EAAUv/B,EAAQ,EAAInK,EAAQL,KAC9BgqC,EAAUv/B,EAAS,EAAIpK,EAAQN,IAGrC,MAAO,EAF+B,QAA/B2pC,EAAG5nC,SAAoB,QAAf6nC,EAAL7nC,EAAO86B,qBAAa,IAAA+M,OAAA,EAApBA,EAAsBM,cAAM,IAAAP,EAAAA,EAAIK,GAE9BA,GAD0B,QAA/BH,EAAG9nC,SAAoB,QAAf+nC,EAAL/nC,EAAO86B,qBAAa,IAAAiN,OAAA,EAApBA,EAAsBK,cAAM,IAAAN,EAAAA,EAAII,GACjBA,EAAQ,GAChC,IAEGG,GAAoBxiB,EAAAA,EAAAA,IAA0B3f,IAClD,MAAMgf,EAAOwhB,GAAaxgC,EAAIovB,WAC9B1Q,EAAgB,CAAEM,QAAO,IAGrBojB,GAAcziB,EAAAA,EAAAA,IAClB,CAAC3f,EAAKlG,KACJ,IAAIqlB,EAAQG,EAAAA,GACRxlB,EAAM86B,cAAcyN,OAAS,IAAGljB,IAAU,GAC9C,MAAMkiB,EAAIrhC,EAAIovB,UAAYjQ,EAC1BwY,EAAO0J,EAAG,CAAE9e,OAAQkf,EAAc3nC,IAAS,GAE7C,CAAC2nC,IAGGa,GAAiB3iB,EAAAA,EAAAA,IAA0B,CAAC3f,EAAKlG,KACrD,IAAIqlB,EAAQG,EAAAA,GACRxlB,EAAM86B,cAAc2N,WAAUpjB,IAAU,GAC5CwY,EAAO33B,EAAIovB,UAAYjQ,EAAO,CAAEqjB,OAAQ1oC,EAAMwrB,QAAS,IAGnDmd,GAAc9iB,EAAAA,EAAAA,IAClB7lB,IACOsnC,KAILD,IACAmB,EAAexoC,IAJbonC,EAAgBxvC,EAAAA,GAIG,GAEvB,CAAC0vC,KAGH1Z,EAAAA,EAAAA,KAAwB1nB,IA7EIA,KACF,CAAC,QAAS,SAAU,SAAU,SAAU,WAChDo/B,SAAQsD,IACxB,MAAMC,EAAiB3iC,EAAI0iC,GAC3B1iC,EAAI,WAAD3S,OAAYq1C,IAAgBC,EAC/B3iC,EAAI0iC,GAAc,WAAa,QAAAE,EAAAnuB,UAAA3U,OAAT+iC,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAAtuB,UAAAsuB,GAOxB,MAN0C,iBAAZF,EAAK,GAEjCA,EAAK,GAAKrC,GAAaqC,EAAK,IACnBA,EAAK,GAAG7jB,MAAgC,iBAAjB6jB,EAAK,GAAG7jB,OACxC6jB,EAAK,GAAG7jB,KAAOwhB,GAAaqC,EAAK,GAAG7jB,OAE/B2jB,EAAeK,MAAMhjC,EAAK6iC,EACnC,CAAC,GACD,EAgEAI,CAAejjC,GACfA,EAAIurB,KAAK,YAAa4W,GACtBniC,EAAIqgB,GAAG,SAASvmB,GAASsoC,EAAYtoC,KACrCkG,EAAIqgB,GAAG,SAASvmB,GAAS2oC,EAAY3oC,KACrCkG,EAAIkjC,WAAWC,UACfnjC,EAAIm0B,gBAAgBgP,WAChBnsC,EAAAA,EAAAA,OAAQgJ,EAAIqgB,GAAG,YAAYvmB,GAASwoC,EAAexoC,IAAO,GAC7D,GAGL,CCzFEspC,GACAhN,KACAoB,KACAyB,KACArB,KAGEpqC,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACyuC,GAAa,Q,uBEXpB,MAAMoH,GAAiB,sBACjBC,GAAkB,uBAClBC,GAAgB,kBAChBC,GAAiB,mBACjBC,GAAgB,UAwBhBC,GAAgBnW,IAAY,CAChC5/B,KAAM,UACN6E,KAAM,CACJ7E,KAAM,oBACNmxC,SAAU,CACR,CACEnxC,KAAM,UACNkzB,WAAY,CAAC,EACb0M,gBAmCR,QAAevS,EAAAA,EAAAA,KAAapN,EAAAA,EAAAA,IAAwB+1B,GAAAA,GAAxB/1B,EA7BFlhB,IAAwB,IAAvB,QAAEk3C,GAAU,GAAMl3C,EAC3C,MAAM,IAAEsT,IAAQib,EAAAA,EAAAA,MACV4oB,GAAU72C,EAAAA,EAAAA,IAAY22C,GAAAA,IACtBG,GAAQC,EAAAA,EAAAA,UAAQ,IAAOF,GAAWD,GAAUI,EAAAA,GAAAA,IAAaH,GAAWA,GAAU,CAACD,EAASC,IAuB9F,OALAl0C,EAAAA,EAAAA,YAAU,KAPHm0C,IACL9jC,EAAIikC,UAAUZ,GAAgBK,GAAcI,IAC5C9jC,EAAIikC,UAAUX,GAAiBI,GAAcG,IAC7C7jC,EAAI2tB,SArDgB,CACtBv6B,GAAImwC,GACJ51C,KAAM,OACNigC,OAAQyV,GACRxV,MAAO,CACL,eAAgB,IAChB,aAAc4V,MAgDdzjC,EAAI2tB,SA5Ca,CACnBv6B,GAAIowC,GACJ71C,KAAM,OACNigC,OAAQ0V,GACRzV,MAAO,CACL,eAAgB,GAChB,aAAc,EACd,aAAc4V,GACd,iBAAkB,CAAC,EAAG,OAyCf,KAjBFzjC,GAAQA,EAAI0tB,SAAS6V,MAC1BvjC,EAAIguB,YAAYuV,IAChBvjC,EAAIguB,YAAYwV,IAChBxjC,EAAIiuB,aAAaoV,IACjBrjC,EAAIiuB,aAAaqV,IAaQ,IACxB,CAACQ,IAEG,IAAI,KCxBb,GA5BmBp3C,IAAkB,IAAjB,SAAE0E,GAAU1E,EAC9B,MAAMw3C,GAAal3C,EAAAA,EAAAA,IAAYm3C,GAAAA,IACzBtM,GAAY7qC,EAAAA,EAAAA,IAAY8qC,EAAAA,IAE9B,OACEtqC,EAAAA,cAAC42C,GAAW,KAEV52C,EAAAA,cAAC62C,EAAY,MACb72C,EAAAA,cAACo4B,GAAY,MACbp4B,EAAAA,cAAC82C,GAAW,MACZ92C,EAAAA,cAACgyB,EAAK,MACNhyB,EAAAA,cAACyzB,EAAI,MACLzzB,EAAAA,cAACyyB,EAAU,MACXzyB,EAAAA,cAACixB,EAAW,OACVylB,GAAc12C,EAAAA,cAAC8zB,EAAa,MAC9B9zB,EAAAA,cAAC+2C,EAAa,MACd/2C,EAAAA,cAAC2zB,EAAsB,MACvB3zB,EAAAA,cAACq2B,GAAG,MACJr2B,EAAAA,cAAC41B,GAAK,MACN51B,EAAAA,cAACg3C,GAAW,MACZh3C,EAAAA,cAACi3C,GAAiB,MAClBj3C,EAAAA,cAAC8iC,GAAW,MACXuH,EAAYrqC,EAAAA,cAAC+wC,GAAS,MAAM/wC,EAAAA,cAACkzC,GAAS,MACtCtvC,EACW,EC/CD,SAAS,KACtB,OAAO,IACT,CCEa,SAASszC,GAAIl0C,GAC1B,OACEhD,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACm3C,GAAS,KAAEn0C,EAAMo0C,WAClBp3C,EAAAA,cAACq3C,GAAer0C,GAGtB,C,wJCVO,MAAM2lC,EAAa3oC,EAAAA,mBAAoBknB,GAEjCuG,EAAgBA,KAAMlH,EAAAA,EAAAA,YAAWoiB,GAEjCzO,EAA0BA,CAAClS,EAAIsvB,KAC1C,MAAM,IAAE9kC,GAAQib,KAEhBtrB,EAAAA,EAAAA,YAAU,IAAOqQ,EAAMwV,EAAGxV,QAAO0U,GAAY,CAAC1U,KAAQ8kC,GAAM,EAGjDnlB,EAA4B,SAACnK,GAAkB,IAAdsvB,EAAIrwB,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,GACnD,MAAM,IAAEzU,GAAQib,IAChB,OAAO3U,EAAAA,EAAAA,cACL,WACE,GAAKtG,EAAL,CAAgB,QAAA4iC,EAAAnuB,UAAA3U,OADd+iC,EAAI,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJF,EAAIE,GAAAtuB,UAAAsuB,GAEN,OAAOvtB,EAAGxV,KAAQ6iC,EADF,CAElB,GACA,CAAC7iC,KAAQ8kC,GAEb,C,0GClBO,MAAMC,EAAgB,kBAChBC,EAAgB,sBAe7B,KAb6Bt4C,IAAe,IAAd,MAAE4J,GAAO5J,EACrC,MAAMu4C,GAAiBC,EAAAA,EAAAA,IAA0B5uC,GAC3C6uC,GAAmBD,EAAAA,EAAAA,IAA0B,SAEnD,OACE13C,EAAAA,cAAA,iBAAAH,OACO03C,EAAa,WAAA13C,OAAU43C,EAAc,SAAA53C,OACrC23C,EAAa,KAAA33C,OAAI43C,EAAc,SAAA53C,OAC/B03C,EAAa,YAAA13C,OAAW23C,EAAa,KAAA33C,OAAI83C,EAAgB,qBAAA93C,OAAoBiJ,EAAK,MACjF,C,8JC+BZ,IAlC4B5J,IAA6C,IAA5C,GAAE0G,EAAE,KAAEkN,EAAI,KAAEzQ,EAAI,WAAEoO,EAAU,QAAE9I,GAASzI,EAClE,MAAM04C,GAAyB31C,EAAAA,EAAAA,IAAU41C,EAAAA,IACnChkC,GAAkB5R,EAAAA,EAAAA,IAAU6R,EAAAA,GAC5BgkC,GAA4B71C,EAAAA,EAAAA,IAAU81C,EAAAA,IAEtCtkC,GAAgCjU,EAAAA,EAAAA,IAAYkU,EAAAA,IAmBlD,OACE1T,EAAAA,cAAA,MAAIgB,UAAWC,IAAWkH,EAAAA,EAAEqP,KAAM+/B,EAAAA,IAAgB5vC,QAlBzBqwC,EAACvnC,EAAYjF,IAAU2G,IAChD0B,EAAgB,CACd1T,KAAMoU,EAAAA,GACN1N,QAAS,CACP,CAAC2N,EAAAA,IAAS/D,EACV,CAACgE,EAAAA,IAAmBjJ,KAIpBiI,EACFmkC,EAAuBhyC,GAEvBkyC,EAA0BtsC,GAE5B7D,GAAS,EAIkDqwC,CAAmBvnC,EAAY7K,IACxF5F,EAAAA,cAAA,QAAMgB,UAAWmH,EAAAA,EAAE8vC,aACjBj4C,EAAAA,cAAA,OAAK4H,IAAKkL,EAAM9R,UAAWmH,EAAAA,EAAE2K,QAE/B9S,EAAAA,cAAA,QAAMgB,UAAWmH,EAAAA,EAAE7H,OAAQ+B,GACxB,C,wICzCT,EAAoH,Q,kECyDpH,EAhD4BnD,IAAsC,IAArC,WAAEuR,EAAU,iBAAEiB,GAAkBxS,EAC3D,MAAM,cAAEyS,EAAa,KAAEC,EAAI,MAAE9I,IAAU6H,EAAAA,EAAAA,IAAqBkB,EAAAA,GAAyB,CAAEjM,GAAI6K,KACrF,MAAEnQ,IAAUqQ,EAAAA,EAAAA,IAAqBunC,EAAAA,GAA0B,CAAEtyC,GAAI6K,IAIvE,OAFAwB,EAAAA,EAAAA,GAA8BxB,GAEzBA,EAGHzQ,EAAAA,cAAA,OAAKgB,UDlBmB,SCmBtBhB,EAAAA,cAAA,OAAKgB,UDnBkC,SCoBrChB,EAAAA,cAAA,OAAKgB,UDpBgE,QCoB5C2G,QAAS+J,GAChC1R,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAM,mBAEjBnB,EAAAA,cAAA,MAAIgB,UDvBiD,SCuB5BV,IAE3BN,EAAAA,cAAA,OAAKgB,UDzByF,SC0B5FhB,EAAAA,cAAA,MAAIgB,UAAWmH,GACZwJ,EAAca,KAAI/O,IAAA,IAAC,GAAEmC,EAAE,OAAE6M,EAAM,MAAEnS,EAAK,UAAEoS,GAAWjP,EAAA,OAClDzD,EAAAA,cAAC2S,EAAAA,EAAmB,CAClBtM,IAAG,eAAAxG,OAAiB+F,GACpBA,GAAIA,EACJ6M,OAAQA,EACRnS,MAAOA,EACPoS,UAAWA,EACXjC,WAAYA,EACZ9I,QAAS+J,GACT,KAGN1R,EAAAA,cAAA,MAAIgB,UAAWmH,GACZyJ,EAAKY,KAAI1M,IAAA,IAAC,GAAEF,EAAE,eAAEgN,EAAc,KAAEvQ,GAAMyD,EAAA,OACrC9F,EAAAA,cAAC6S,EAAAA,EAAmB,CAClBxM,IAAG,OAAAxG,OAAS+F,GACZA,GAAIA,EACJkN,KAAMF,EACNvQ,KAAMA,EACNoO,WAAYA,EACZ9I,QAAS+J,GACT,KAGN1R,EAAAA,cAAC+S,EAAAA,GAAoB,CAACjK,MAAOA,MApCX,IAsChB,E,kECxCV,MAqCaqvC,EAA8BnrC,IAAYuX,EAAAA,EAAAA,QAAU2sB,EAAAA,EAAAA,IAAmBlkC,KAEpF,OAAenH,EAAAA,EAAAA,KAvCUimB,KACvB,MAAOrb,EAAYyC,IAAiBtR,EAAAA,EAAAA,YAC9BuR,GAAiClR,EAAAA,EAAAA,IAAUmR,EAAAA,KACjDjR,EAAAA,EAAAA,YAAU,KACRgR,GAAgC,GAC/B,CAACA,IACJ,MAAMI,GAAa/T,EAAAA,EAAAA,IAAYgU,EAAAA,KACzB,OAAEw7B,EAAM,OAAEC,IAAWzuB,EAAAA,EAAAA,GAAaC,EAAAA,GAAY0E,SAE9CizB,EAAQxyC,GAAMuM,IAClB,MAAMkmC,EAAa5nC,IAAe7K,EAClCsN,EAAcmlC,EAAa,KAAOzyC,GAClCyyC,EAAapJ,IAAWD,GAAQ,EAElC,OAAKz7B,GAAeA,EAAWjB,OAG7BtS,EAAAA,cAAA,OAAKgB,UC9BmB,SD+BtBhB,EAAAA,cAAA,MAAIgB,UC/BuC,SDgCxCuS,EAAWf,KAAItT,IAAA,IAAC,GAAE0G,EAAE,WAAEqO,EAAU,OAAExB,EAAM,MAAE3J,GAAO5J,EAAA,OAChDc,EAAAA,cAACkU,EAAAA,EAAgB,CACf7N,IAAG,YAAAxG,OAAc+F,GACjBA,GAAIA,EACJqO,WAAYA,EACZnL,MAAOA,EACP2J,OAAQA,EACR0B,SAAU1D,IAAe7K,EACzBwO,QAAS3D,EACT4D,gBAAiB+jC,EAAMxyC,IACvB,KAGL6K,GAAczQ,EAAAA,cAACs4C,EAAmB,CAAC7nC,WAAYA,EAAYiB,iBAAkB0mC,EAAM3nC,MAlB1C,IAmBtC,G,4FEdV,EA5ByBvR,IAAuF,IAAtF,GAAE0G,EAAE,WAAEqO,EAAU,OAAExB,EAAM,MAAE3J,EAAK,SAAEqL,EAAQ,OAAEC,EAAM,YAAE7B,EAAW,gBAAE8B,GAAiBnV,EACzG,MAAMq5C,EAAa,CAAC,EACdC,EAAY,CAAC,EAYnB,OAVIrkC,GACFqkC,EAAUC,YAAc3vC,EACxB0vC,EAAUluC,gBAAkBxB,EAC5B0vC,EAAUE,KAAO,QACjBH,EAAWzvC,MAAQA,GACVsL,IACTokC,EAAUC,aAAcE,EAAAA,EAAAA,IAAS7vC,EAAO,IACxC0vC,EAAUE,KAAO5vC,GAIjB9I,EAAAA,cAAA,MAAIqG,IAAKT,EAAI5E,UCnBU,QDmBa2G,QAAS0M,GAC3CrU,EAAAA,cAAA,OAAKgB,UCpBuC,SDqB1ChB,EAAAA,cAAA,QAAMgB,UCrBmF,QDqBxDuR,YAAaA,EAAanR,OAAOw3C,EAAAA,EAAAA,IAAqBJ,IACrEx4C,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAMsR,KAEjCzS,EAAAA,cAAA,QAAMgB,UCxB4D,QDwBhCI,OAAOw3C,EAAAA,EAAAA,IAAqBL,IAC3DtkC,IAGF,C,yKEkBT,IAlC4B/U,IAAgD,IAA/C,GAAE0G,EAAE,WAAE6K,EAAU,OAAEgC,EAAM,MAAEnS,EAAK,QAAEqH,GAASzI,EACrE,MAAM25C,GAAiC52C,EAAAA,EAAAA,IAAU62C,EAAAA,IAC3CjlC,GAAkB5R,EAAAA,EAAAA,IAAU6R,EAAAA,GAC5BilC,GAAoC92C,EAAAA,EAAAA,IAAU+2C,EAAAA,IAE9CvlC,GAAgCjU,EAAAA,EAAAA,IAAYkU,EAAAA,IAmBlD,OACE1T,EAAAA,cAAA,MAAIgB,UAAWC,IAAWkH,EAAAA,EAAEqP,KAAM+/B,EAAAA,IAAgB5vC,QAlBnBwK,IAC/B0B,EAAgB,CACd1T,KAAMoU,EAAAA,GACN1N,QAAS,CACP,CAAC2N,EAAAA,IAAS/D,EACV,CAACgE,EAAAA,IAAmB7O,KAIpB6N,EACFolC,EAA+BjzC,GAE/BmzC,EAAkCnzC,GAEpC+B,GAAS,GAKP3H,EAAAA,cAAA,QAAMgB,UAAWC,IAAWkH,EAAAA,EAAE8wC,gBAAiBzB,EAAAA,KAC7Cx3C,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAMsR,KAEjBzS,EAAAA,cAAA,QAAMgB,UAAWmH,EAAAA,EAAE7H,OAAQA,GACxB,C,uICpCM,SAAS2R,EAA8BxB,GACpD,MAAMoD,GAAkB5R,EAAAA,EAAAA,IAAU6R,EAAAA,IAC3BolC,EAAwBC,IAA4BnnC,EAAAA,EAAAA,GAAW,MAEtE7P,EAAAA,EAAAA,YAAU,KACR+2C,GAAuB,IACrBrlC,EAAgB,CACd1T,KAAM8jB,EAAAA,GACNpd,QAAS,CAAEqd,IAAKC,EAAAA,GAAQi1B,6BAA8B9kC,MAAO7D,GAC7D6T,cAAc,MAGX60B,IACN,CAAC1oC,GACN,C,4HCrBO,MAAM4oC,EACL,YADKA,EAEP,UAFOA,EAGJ,QAHIA,EAIN,M,oCCHP,EAAwD,Q,UCqCxD,EA7BgCn6C,IAAiF,IAAhF,qBAAEo6C,EAAoB,WAAEC,EAAU,WAAEC,EAAU,iBAAEC,EAAgB,QAAE9xC,GAASzI,EAC1G,MAAMw6C,GAAoBl6C,EAAAA,EAAAA,IAAYm6C,EAAAA,IAChCC,GAAcp6C,EAAAA,EAAAA,IAAYoB,EAAAA,IAC1Bi5C,GAAyBr6C,EAAAA,EAAAA,IAAY6gB,EAAAA,IACrCy5B,EAAuBF,IAAwC3Z,EAAAA,EAAAA,GAAQqZ,GAAlCO,EAE3C,OAAKA,EAGH75C,EAAAA,cAAAA,EAAAA,SAAA,KACG85C,GAAuBJ,GACtB15C,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAAA,YACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,qCAKb5F,EAAAA,cAAC+5C,EAAAA,EAAkB,CACjBC,YAAaV,EACbC,WAAYA,EACZ5xC,QAASA,EACT6xC,WAAYA,EACZC,iBAAkBA,KAjBY,IAmB/B,ECIP,EA9BoCv6C,IAM9B,IAN+B,yBACnC+6C,EAAwB,WACxBV,EAAU,WACVC,EAAU,iBACVC,EAAgB,QAChB9xC,GACDzI,EACC,MAAMw6C,GAAoBl6C,EAAAA,EAAAA,IAAYm6C,EAAAA,IAChCO,IAA4Bja,EAAAA,EAAAA,GAAQga,GAE1C,OACEj6C,EAAAA,cAAAA,EAAAA,SAAA,KACGk6C,GAA4BR,GAC3B15C,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAAA,YACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,oCAKb5F,EAAAA,cAAC+5C,EAAAA,EAAkB,CACjBC,YAAaC,EACbV,WAAYA,EACZ5xC,QAASA,EACT6xC,WAAYA,EACZC,iBAAkBA,IAEnB,ECnBP,EAZ8Bv6C,IAA+E,IAA9E,mBAAEi7C,EAAkB,WAAEZ,EAAU,WAAEC,EAAU,iBAAEC,EAAgB,QAAE9xC,GAASzI,EACtG,OAAI+gC,EAAAA,EAAAA,GAAQka,GAA4B,KAEtCn6C,EAAAA,cAAC+5C,EAAAA,EAAkB,CACjBC,YAAaG,EACbZ,WAAYA,EACZ5xC,QAASA,EACT6xC,WAAYA,EACZC,iBAAkBA,GAClB,E,iCCaN,EAlB4Bv6C,IAAkC,IAAjC,yBAAE+6C,GAA0B/6C,EACvD,MAAMg7C,IAA4Bja,EAAAA,EAAAA,GAAQga,GACpCG,GAAyBn4C,EAAAA,EAAAA,IAAUo4C,EAAAA,GAEnCC,GAAwB9yC,EAAAA,EAAAA,IAAiB,KAC7C4yC,GAAwB,GACvB,IAEH,OAAKF,EAEHl6C,EAAAA,cAAA,OAAKgB,UCjB6B,SDkBhChB,EAAAA,cAAA,QAAM2H,QAAS2yC,GACbt6C,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,4BAJyB,IAM9B,E,WEJV,EAX4B1G,IAA4B,IAAAkD,EAAA,IAA3B,YAAEm4C,EAAW,MAAE/4C,GAAOtC,EACjD,MAAMw6C,GAAoBl6C,EAAAA,EAAAA,IAAYm6C,EAAAA,IACtC,OAAIY,GAAeb,EAA0B,KAG3C15C,EAAAA,cAAA,OAAKgB,UCXsB,SDYzBhB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAe,QAAbxD,EAAEZ,aAAK,EAALA,EAAOa,YAAI,IAAAD,EAAAA,EAAI,sBAClB,E,glBE4JV,MAzJuBlD,IAA8D,IAA7D,QAAEyI,EAAO,kBAAE6yC,EAAiB,iBAAEr7B,GAAmB,GAAOjgB,EAC9E,MAAM,YAAE86C,EAAW,MAAEx4C,IAAUhC,EAAAA,EAAAA,KAAYi7C,EAAAA,EAAAA,IAAqBt7B,IAC1D06B,GAAyBr6C,EAAAA,EAAAA,IAAY6gB,EAAAA,IACrCu5B,GAAcp6C,EAAAA,EAAAA,IAAYoB,EAAAA,KACzB44C,EAAYkB,IAAiB94C,EAAAA,EAAAA,UAAS,OACtC+4C,EAAWC,IAAgBh5C,EAAAA,EAAAA,UAAS,MACrCk4C,EAAuBF,IAAwC3Z,EAAAA,EAAAA,GAAQ+Z,EAAY7gC,WAA9C0gC,EACrCK,IAA4Bja,EAAAA,EAAAA,GAAQ+Z,EAAYa,eAChDC,IAAsB7a,EAAAA,EAAAA,GAAQ+Z,EAAYe,SAC1CR,EAAcT,GAAuBI,GAA4BY,EACjEE,GAAW5sC,EAAAA,EAAAA,QAAO,CACtB6sC,YAAajB,EACbkB,SAAU15C,EACV25C,cAAe3B,EACf4B,aAAcT,IAGVU,GAA2BviC,EAAAA,EAAAA,cAAY,IACvC8gC,EAAoB,KACjB,CAAEz5C,KAAMm7C,EAAAA,KACd,CAAC1B,KAEE,iBAAE2B,IAAqBC,EAAAA,EAAAA,GAAkB,CAAE7zC,UAAS0zC,8BAE1Dl5C,EAAAA,EAAAA,YAAU,KAERkN,SAASI,iBAAiB,UAAWgsC,GAAqB,GAEnD,KACLpsC,SAASE,oBAAoB,UAAWksC,GAAqB,EAAM,IAEpE,KAEHt5C,EAAAA,EAAAA,YAAU,KACR64C,EAAS9rC,QAAOtD,EAAAA,EAAA,GACXovC,EAAS9rC,SAAO,IACnB+rC,YAAajB,EACbkB,SAAU15C,GACX,GACA,CAACw4C,EAAax4C,IAEjB,MAAMi4C,EAAmB1/B,IACvB,MAAMwN,EAAMmI,KAAKnI,MACjBmzB,EAAc3gC,GACd6gC,EAAarzB,GACbyzB,EAAS9rC,QAAOtD,EAAAA,EAAA,GACXovC,EAAS9rC,SAAO,IACnBisC,cAAephC,EACfqhC,aAAc7zB,GACf,EAWGk0B,EAAsBtpC,IAC1B,MAAM,YAAE8oC,EAAW,SAAEC,EAAQ,cAAEC,EAAa,aAAEC,GAAiBJ,EAAS9rC,QAExE,GAAIgsC,EACF,OAGF,MAAMQ,EAAoBP,EACpBQ,EAAmBP,EACzB,IAAIQ,EACAC,EAAensB,KAAKnI,MACxB,MAAMu0B,EAAeb,EAAY9hC,UAAU7G,OAAS2oC,EAAYF,QAAQzoC,OAAS2oC,EAAYJ,cAAcvoC,OACrGypC,EAAY5pC,EAAE9L,MAAQgzC,IAAelnC,EAAE4iC,UAAY5iC,EAAE9L,MAAQgzC,EAC7D2C,EAAU7pC,EAAE9L,MAAQgzC,GAAYlnC,EAAE4iC,UAAY5iC,EAAE9L,MAAQgzC,EACxD4C,EAAa9pC,EAAE9L,MAAQgzC,EAG7B,GAzBiC6C,EAACP,EAAkBE,EAAcx1C,IAEhEs1C,GACAE,EAAeF,EAzDK,MA0DnBt1C,IAAQgzC,GAAahzC,IAAQgzC,GAAWhzC,IAAQgzC,GAAchzC,IAAQgzC,GAqBrE6C,CAA2BP,EAAkBE,EAAc1pC,EAAE9L,KAC/D,OAAO8L,EAAEqM,iBAGX,GAAIu9B,EACF5pC,EAAEqM,iBACFo9B,EAAsC,OAAtBF,GAA8BA,EAAoB,GAAKI,EAAe,OACjF,GAAIE,EACT7pC,EAAEqM,iBACFo9B,EACwB,OAAtBF,GACIA,EAAoB,GAAK,EACvBA,EAAoB,EAEtBI,EAAe,MAChB,IAAIG,GAAoC,OAAtBP,EAA4B,CACnDvpC,EAAEqM,iBACFrM,EAAEgqC,kBACFP,EAAgB,KAChB,MACMp/B,EADc,IAAIy+B,EAAY9hC,aAAc8hC,EAAYJ,iBAAkBI,EAAYF,SAChEW,GAC5B,OAAOH,EAAiB/+B,EAC1B,CAAWrK,EAAE4iC,UT/GR,US+GoB5iC,EAAE9L,KAEzB8L,EAAEqM,iBACFo9B,EAAgBF,EAChBG,EAAeF,IAEfE,EAAe,KACfD,EAAgB,KAClB,CAEAlB,EAAckB,GACdhB,EAAaiB,GACbb,EAAS9rC,QAAOtD,EAAAA,EAAA,GACXovC,EAAS9rC,SAAO,IACnBisC,cAAeS,EACfR,aAAcS,GACf,EAGH,OACE77C,EAAAA,cAAA,OAAKgB,URvIwB,SQwI1Bw5C,EAEDx6C,EAAAA,cAACo8C,EAAuB,CACtB9C,qBAAsBU,EAAY7gC,UAClCogC,WAAY,EACZC,WAAYA,EACZC,iBAAkBA,EAClB9xC,QAAS4zC,IAGXv7C,EAAAA,cAACq8C,EAA2B,CAC1BpC,yBAA0BD,EAAYa,cACtCtB,WAAYS,EAAY7gC,UAAU7G,OAClCknC,WAAYA,EACZC,iBAAkBA,EAClB9xC,QAASA,IAGX3H,EAAAA,cAACs8C,EAAqB,CACpBnC,mBAAoBH,EAAYe,QAChCxB,WAAYS,EAAY7gC,UAAU7G,OAAS0nC,EAAYa,cAAcvoC,OACrEknC,WAAYA,EACZC,iBAAkBA,EAClB9xC,QAASA,IAGX3H,EAAAA,cAACu8C,EAAmB,CAACtC,yBAA0BD,EAAYa,gBAE3D76C,EAAAA,cAACw8C,EAAmB,CAACjC,YAAaA,EAAa/4C,MAAOA,IAClD,C,gHCrKV,GAAgB,iBAAmB,QAAQ,iBAAmB,QAAQ,SAAW,QAAQ,sBAAwB,QAAQ,iBAAmB,QAAQ,2BAA6B,QAAQ,KAAO,QAAQ,OAAS,QAAQ,OAAS,QAAQ,QAAU,QAAQ,UAAY,S,sBCOxQ,MAAMi7C,EAAmBz5C,IACvB,MAAM,QAAEwZ,EAAU,CAAC,GAAMxZ,GACnB,OAAE6b,EAAM,aAAE69B,GAAiBlgC,GAC1BmgC,GAAc99B,EACrB,OACE7e,EAAAA,cAAAA,EAAAA,SAAA,KACG08C,GACC18C,EAAAA,cAAA,OAAKgB,UAAWmH,EAAEy0C,WAChB58C,EAAAA,cAAA,OAAK4H,IAAK80C,KAGd18C,EAAAA,cAAA,OAAKgB,UAAW0F,IAAWyB,EAAE00C,iBAAkB10C,EAAE20C,WAC/C98C,EAAAA,cAAA,QAAMgB,UAAWmH,EAAE40C,sBAAuBxP,wBAAyB,CAAEC,OAAQmP,MAE9E,EAIDK,EAAiBh6C,IAAS,IAAAi6C,EAAAC,EAC9B,MAAM,QAAE1gC,GAAYxZ,GACb25C,KAAeQ,GAAe3gC,EAAQqC,OACvC1d,EAAOqb,SAAgB,QAATygC,EAAPzgC,EAAS4gC,eAAO,IAAAH,OAAA,EAAhBA,EAAkBr3C,GACzBy3C,EAA4B,QAApBH,EAAG1gC,aAAO,EAAPA,EAAS6gC,gBAAQ,IAAAH,GAAAA,EAElC,OACEl9C,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAKgB,UAAW0F,IAAWyB,EAAEhH,KAAM,OAAQgH,EAAEhH,KAC3CnB,EAAAA,cAACkB,EAAAA,EAAO,CAACC,KAAMA,KAEjBnB,EAAAA,cAAA,OAAKgB,UAAW0F,IAAWyB,EAAE00C,iBAAyC,IAAvBM,EAAY7qC,QAAgBnK,EAAE20C,WAC3E98C,EAAAA,cAAA,QAAMgB,UAAWmH,EAAE40C,sBAAuBxP,wBAAyB,CAAEC,OAAQmP,KAC5EU,GACCr9C,EAAAA,cAAA,YACGq9C,EAAS7qC,KAAI,CAAC5J,EAASmR,IACf/Z,EAAAA,cAAA,OAAKgB,UAAWmH,EAAEm1C,iBAAkBj3C,IAAG,GAAAxG,OAAK88C,EAAU,KAAA98C,OAAIka,GAAOnS,IAAKgB,QAIjFy0C,GACAr9C,EAAAA,cAAA,QAAMgB,UAAWmH,EAAEo1C,4BAChBJ,EAAY3qC,KAAI,CAAClS,EAAOsF,IACvB5F,EAAAA,cAAA,QAAMqG,IAAKT,EAAI2nC,wBAAyB,CAAEC,OAAQltC,SAKzD,EAIQ,MAAMk9C,UAAoBx9C,EAAAA,UAAgB2N,cAAA,SAAAsZ,YAAAw2B,EAAAA,EAAAA,GAAA,gBAC7CtrC,IACRA,EAAEqM,iBACFrM,EAAEgqC,kBACF,MAAM,QAAEx0C,EAAO,QAAE6U,GAAYgiB,KAAKx7B,MAClC2E,GAAWA,EAAQ6U,EAAQ,KAC5BihC,EAAAA,EAAAA,GAAA,qBAEc,KACb,MAAM,IAAE1jC,EAAG,iBAAE0/B,GAAqBjb,KAAKx7B,MACvCy2C,EAAiB1/B,EAAI,KACtB0jC,EAAAA,EAAAA,GAAA,gBAES,KACR,MAAM,IAAE1jC,EAAG,iBAAE0/B,GAAqBjb,KAAKx7B,MACvCy2C,EAAiB1/B,EAAI,GACtB,CAEDqlB,SACE,MAAM,QAAE5iB,GAAYgiB,KAAKx7B,OAEnB,QAAE2E,EAAO,aAAE+1C,EAAY,QAAEjgC,GAAY+gB,KAG3C,IAAImf,EAOJ,OALEA,GAHWnhC,aAAO,EAAPA,EAASrc,QAETic,EAAAA,EAAkBjc,KAAKy9C,YACxBnB,EAEAO,EAIVh9C,EAAAA,cAAA,OACEgB,UAAWmH,EAAE01C,iBAEXl2C,UACA+1C,eACAjgC,WAGFzd,EAAAA,cAAC29C,EAAO,CAACnhC,QAASA,IAGxB,ECpGF,ICwBA,EArB2Btd,IAAA,IAAC,YAC1B86C,EAAc,GAAE,WAChBT,EAAa,EAAC,QACd5xC,EAAO,WACP6xC,GAAa,EAAE,iBACfC,EAAmBA,UACpBv6C,EAAA,OACCc,EAAAA,cAAA,OAAKgB,UDVuB,SCW1BhB,EAAAA,cAAA,UACGg6C,EAAYxnC,KAAI,CAACgK,EAASshC,KACzB,MAAM/jC,EAAMw/B,EAAauE,EACzB,OACE99C,EAAAA,cAAA,MAAIqG,IAAK0T,EAAK/Y,UAAWw4C,IAAez/B,EDfD,QCeoB,IACzD/Z,EAAAA,cAACw9C,EAAW,CAAOzjC,MAAKyC,UAAS7U,UAAS8xC,qBACvC,KAIP,C,+HCaR,IAzB0Bv6C,IAA2C,IAA1C,QAAEyI,EAAO,yBAAE0zC,GAA0Bn8C,EAC9D,MAAM06C,GAAcp6C,EAAAA,EAAAA,IAAYoB,EAAAA,KAC1B,aAAE6H,IAAiBrB,EAAAA,EAAAA,GAASC,EAAAA,GAAU2c,8BACtCnQ,GAAkB5R,EAAAA,EAAAA,IAAU6R,EAAAA,GAC5B8C,GAAiB3U,EAAAA,EAAAA,IAAU4U,EAAAA,IAC3BjB,GAAsB3T,EAAAA,EAAAA,IAAU4T,EAAAA,IAiBtC,MAAO,CAAE0lC,iBAdgB/+B,IACvB,MAAM,UAAEuhC,EAAS,KAAE59C,GAASqc,EACvBuhC,EAEMnE,GACT/lC,EAAgBwnC,EAAyB7+B,IAPtBrc,KAAQyV,EAAoBG,EAAAA,GAAa0C,eAAgB,CAAEtY,QAAO,EAQrFsY,CAAetY,GACfyW,EAAe,CAAEO,MAAOuS,EAAAA,OAExBjhB,IACAoL,EAAgBwnC,EAAyB7+B,KAPzC7U,EAAQ6U,EAQV,EAGyB,C,qLCc7B,EAnCyBwhC,KACvB,MAAMC,GAAiBz+C,EAAAA,EAAAA,IAAY0+C,EAAAA,IAC7BC,GAAgB3+C,EAAAA,EAAAA,IAAY4+C,EAAAA,IAC5BC,GAAuBp8C,EAAAA,EAAAA,IAAUq8C,EAAAA,IACjCzqC,GAAkB5R,EAAAA,EAAAA,IAAU6R,EAAAA,GAE5ByqC,EAAe34C,GAAM,KACzBiO,EAAgB,CACd1T,KAAMq+C,EAAAA,GACN33C,QAAS,CACP,CAAC43C,EAAAA,IAAY74C,KAGjBy4C,EAAqB,CAAEK,OAAQ94C,GAAK,EAGtC,OACE5F,EAAAA,cAAA,UACGi+C,EAAezrC,KAAItT,IAAyB,IAAxB,GAAE0G,EAAE,MAAEtF,EAAK,KAAEa,GAAMjC,EACtC,OACEc,EAAAA,cAAA,MAAIgB,UAAW29C,EAAAA,EAAcC,kBAAmBv4C,IAAKT,GACnD5F,EAAAA,cAAC6+C,EAAAA,EAAQ,CACP1qC,SAAUgqC,IAAkBv4C,EAC5BzE,KAAMA,EACN+qB,YAAa5rB,EACbqH,QAAS42C,EAAa34C,GACtBumB,qBAAqB,IAEpB,IAGN,E,sBChCT,MAAM2yB,EAAYC,GAAQ,2BAAJl/C,OAA+Bk/C,GAEtC,SAASC,EAAoB9/C,GAA6B,IAA5B,OAAEw/C,EAAM,eAAEO,GAAgB//C,EACrE,MAAMggD,GAAiB1/C,EAAAA,EAAAA,KAAY2/C,EAAAA,EAAAA,IAAqBT,IAClDU,GAAa5/C,EAAAA,EAAAA,KAAY6/C,EAAAA,EAAAA,IAAiBX,IAC1CY,GAA6Br9C,EAAAA,EAAAA,IAAUs9C,EAAAA,IACvCC,GAAeC,EAAAA,EAAAA,IAAqBC,EAAAA,GAAcltC,IAAIssC,IAEtDa,GAA2B7mC,EAAAA,EAAAA,cAAYxM,IAC3C,MAAML,EAAQK,EAAMC,OAAON,MAC3BqzC,EAA2B,CACzBZ,SACA,CAACkB,EAAAA,IAAkB3zC,GACnB,GACD,IAEH,OACEjM,EAAAA,cAAA,WACGi/C,GACCj/C,EAAAA,cAAA,WACEA,EAAAA,cAAC6/C,EAAAA,EAAoB,CACnBC,SAAQ,yBAAAjgD,OAA2B6+C,GACnCxyC,SAAUD,GACRqzC,EAA2B,CACzBZ,OAAQA,EACR,CAACqB,EAAAA,IAAc9zC,IAGnBkkC,aAAciP,KAIpBp/C,EAAAA,cAAA,OAAKgB,UCzCoB,SD0CvBhB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAIk5C,EAAU,aACjB9+C,EAAAA,cAAA,UAAQkM,SAAUyzC,EAA0B1zC,MAAOizC,GAChDQ,EAAAA,GAAcltC,KAAIvG,GACjBjM,EAAAA,cAAA,UAAQqG,IAAG,GAAAxG,OAAK6+C,EAAM,KAAA7+C,OAAIoM,GAASA,MAAOA,GACvCuzC,EAAaV,EAAU7yC,IAAQ,KAAG+zC,EAAAA,GAA4BtB,GAAQzyC,GAAO,cAO5F,CErDA,MAA6B,QAA7B,EAAkD,Q,sBCuElD,EA/DsBoO,KACpB,MAAM4lC,GAAwBh+C,EAAAA,EAAAA,IAAUi+C,EAAAA,IAQxC,OANA/9C,EAAAA,EAAAA,YAAU,IACD,KACL89C,GAAuB,GAExB,IAGDjgD,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAAA,UACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,4CAET5F,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAACg+C,EAAgB,QAGrBh+C,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAAA,UACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,iCAET5F,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAACmgD,EAAAA,EAAkB,CAACzB,OAAO,UAG/B1+C,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAAA,UACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,uCAET5F,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAACmgD,EAAAA,EAAkB,CAACzB,OAAO,YAAYO,gBAAc,MAGzDj/C,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAAA,UACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,kCAET5F,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAACg/C,EAAoB,CAACN,OAAO,WAGjC1+C,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAAA,UACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,kCAET5F,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAACg/C,EAAoB,CAACN,OAAO,OAAOO,gBAAc,MAGtDj/C,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAAA,UACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,yCAET5F,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAACg/C,EAAoB,CAACN,OAAO,cAAcO,gBAAc,MAG5D,C,6FCpDP,EAX6B//C,IAA0C,IAAzC,SAAE4gD,EAAQ,SAAE5zC,EAAQ,aAAEikC,GAAcjxC,EAChE,OACEc,EAAAA,cAAA,OAAKgB,UCNc,SDOjBhB,EAAAA,cAAA,WACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAIk6C,KAET9/C,EAAAA,cAACkwC,EAAAA,EAAW,CAAChkC,SAAUA,EAAUikC,aAAcA,IAC3C,C,uEEXV,GAAgB,mBAAqB,QAAQ,0BAA4B,QAAQ,YAAc,S,uHCA/F,G,SAAuB,SC0CvB,EAtCsBjxC,IAA0C,IAAzC,gBAAEkhD,EAAe,SAAEC,EAAQ,MAAEp0C,GAAO/M,EACzD,MAAMohD,GAAgBxnC,EAAAA,EAAAA,cACpBlT,GAAM26C,IACJA,EAAI/hC,iBACJ6hC,EAASz6C,EAAG,GAEd,IAEF,OACE5F,EAAAA,cAAA,OAAKgB,UAAWmH,GACdnI,EAAAA,cAAA,OAAKgB,UDd4B,SCe/BhB,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,qCAET5F,EAAAA,cAAA,UACGogD,EAAgB5tC,KAAIguC,IACnB,MAAM,KAAEr/C,EAAI,MAAEb,EAAK,GAAEsF,EAAE,YAAEsmB,GAAgBs0B,EACzC,OACExgD,EAAAA,cAAA,MACE2H,QAAS24C,EAAc16C,GACvBS,IAAG,WAAAxG,OAAa+F,GAChB5E,UAAWC,IDxBgC,QCwBVgL,IAAUrG,GDxBmB,UC0B9D5F,EAAAA,cAAA,OAAKgB,UD1B+E,SC2BlFhB,EAAAA,cAAA,OAAK4H,IAAKzG,EAAMH,UD3BiF,WC8BnGhB,EAAAA,cAAA,OAAKgB,UD9BgH,SC+BnHhB,EAAAA,cAAA,OAAKgB,UD/B8H,SC+BzGV,GAC1BN,EAAAA,cAAA,WAAMksB,IAEL,KAIP,E,iCCRV,EAxBsBhtB,IAA4E,IAA3E,gBAAEkhD,EAAkB,GAAE,MAAEn0C,EAAQw0C,EAAAA,GAAkB,OAAE/B,EAAM,SAAExyC,GAAUhN,EAC3F,MAAMwhD,EAAiBN,EAAgB/N,MAAK5uC,IAAA,IAAC,GAAEmC,GAAInC,EAAA,OAAKmC,IAAOqG,CAAK,IAC9DvE,EAAU,WAAH7H,OAAc6+C,IACrB,aAAEj2C,EAAY,UAAEtB,IAAcC,EAAAA,EAAAA,GAASM,GAS7C,OAPAvF,EAAAA,EAAAA,YAAU,IAAMgF,GAAW,IAQzBnH,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,OAAKgB,UFpBwJ,QEoBpI2G,QAASA,IAAMc,KACrCi4C,GAAkB1gD,EAAAA,cAAA,OAAK4H,IAAK84C,EAAev/C,QAE9CnB,EAAAA,cAACyH,EAAAA,EAAK,CAACC,QAASA,EAAStG,MAAO,CAAEixB,SAAU,MAC1CryB,EAAAA,cAAC2gD,EAAa,CAACP,gBAAiBA,EAAiBC,SAXtCp0C,IACfC,EAAS,CAAEK,OAAQ,CAAEN,WACrB9E,GAAW,EAS8D8E,MAAOA,KAE7E,E,WCQP,MAAM20C,EAAY,CAChBC,IAAK,CACH,CAACC,EAAAA,IAAuBC,EAAAA,IAE1BC,UAAW,CACT,CAACF,EAAAA,IAAuBG,EAAAA,KAIb,SAASd,EAAkBjhD,GAA6B,IAAAgiD,EAAA,IAA5B,OAAExC,EAAM,eAAEO,GAAgB//C,EACnE,MAAMiiD,GAAe3hD,EAAAA,EAAAA,KAAY4hD,EAAAA,EAAAA,IAAmB1C,IAC9C2C,GAAmB7hD,EAAAA,EAAAA,KAAY8hD,EAAAA,EAAAA,IAAuB5C,IACtD6C,GAAgB/hD,EAAAA,EAAAA,KAAYgiD,EAAAA,EAAAA,IAAoB9C,IAChD+C,GAAWjiD,EAAAA,EAAAA,KAAYkiD,EAAAA,EAAAA,IAAehD,IACtCiD,GAAcniD,EAAAA,EAAAA,KAAYoiD,EAAAA,EAAAA,IAAkBlD,IAC5CU,GAAa5/C,EAAAA,EAAAA,KAAY6/C,EAAAA,EAAAA,IAAiBX,IAC1C0B,EAAkBe,SAA2B,QAAfD,EAAZC,EAAcU,qBAAa,IAAAX,OAAA,EAA3BA,EAA6BY,QAC/CC,GAAYviD,EAAAA,EAAAA,KAAYwiD,EAAAA,EAAAA,IAAgBtD,IACxCY,GAA6Br9C,EAAAA,EAAAA,IAAUs9C,EAAAA,IACvC1rC,GAAkB5R,EAAAA,EAAAA,IAAU6R,EAAAA,GAE5B6rC,EAA2BsC,GAAmB31C,IAAS,IAAA41C,EAC3D,MAAMj2C,EAAQK,EAAMC,OAAON,MACrBiY,EAAM08B,SAA4B,QAAnBsB,EAATtB,EAAYO,EAAav7C,WAAG,IAAAs8C,OAAA,EAA5BA,EAA+BD,GACvC/9B,GACFrQ,EAAgB,CACd1T,KAAM+jB,EACNrd,QAAS,CACP,CAAC43C,EAAAA,IAAYxyC,KAInBqzC,EAA2B,CACzBZ,OAAQyC,EAAav7C,GACrB,CAACq8C,GAAkBh2C,GACnB,EAGJ,OACEjM,EAAAA,cAAA,OAAKgB,UAAW0F,IAAWyB,EAAEg4C,qBAC3BngD,EAAAA,cAAA,OAAKgB,UAAWmH,EAAEg6C,2BACflD,GACCj/C,EAAAA,cAAA,WACEA,EAAAA,cAAC6/C,EAAAA,EAAoB,CACnBC,SAAQ,yBAAAjgD,OAA2B6+C,GACnCxyC,SAAUD,IACR0zC,EAAyBI,EAAAA,GAAzBJ,CAAsC,CAAEpzC,OAAQ,CAAEN,UAAU,EAE9DkkC,aAAciP,KAIpBp/C,EAAAA,cAAA,WACEA,EAAAA,cAAA,aACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,oCAET5F,EAAAA,cAAA,YACEA,EAAAA,cAAA,UAAQiM,MAAOo1C,EAAiBz7C,GAAIsG,SAAUyzC,EAAyBmB,EAAAA,MACnEa,GAAe,IAAInvC,KAAI4vC,GACvBpiD,EAAAA,cAAA,UAAQqG,IAAK+7C,EAAQx8C,GAAIqG,MAAOm2C,EAAQx8C,IACrCw8C,EAAQ9hD,YAMnBN,EAAAA,cAAA,WACEA,EAAAA,cAAA,aACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,oCAET5F,EAAAA,cAAA,YACEA,EAAAA,cAAA,UAAQiM,MAAOs1C,EAAc37C,GAAIsG,SAAUyzC,EAAyB0C,EAAAA,MAChEZ,GAAY,IAAIjvC,KAAI8vC,GACpBtiD,EAAAA,cAAA,UAAQqG,IAAKi8C,EAAK18C,GAAIqG,MAAOq2C,EAAK18C,IAC/B08C,EAAKhiD,UAIZN,EAAAA,cAACuiD,EAAAA,EAAY,CACXt2C,MAAOs1C,EAAciB,MACrBl7B,KAAK,MACLnb,OAAQwzC,EAAyB8C,EAAAA,MAEnCziD,EAAAA,cAAA,YAAOuhD,EAAcmB,cAGzB1iD,EAAAA,cAAA,WACEA,EAAAA,cAAA,aACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,2CAET5F,EAAAA,cAAA,YACEA,EAAAA,cAACuiD,EAAAA,EAAY,CACXt2C,MAAOs1C,EAAcoB,YACrBr7B,KAAK,IACLnb,OAAQwzC,EAAyBiD,EAAAA,MAEnC5iD,EAAAA,cAAA,YAAOuhD,EAAcsB,oBAGxBzC,GACCpgD,EAAAA,cAAA,OAAKgB,UAAWmH,EAAE26C,aAChB9iD,EAAAA,cAAA,WACEA,EAAAA,cAACsqB,EAAAA,GAAC,CAAC1kB,GAAI,qCAET5F,EAAAA,cAAC+iD,EAAa,CACZ3C,gBAAiBA,EACjBn0C,MAAO81C,EACPrD,OAAQA,EACRxyC,SAAUyzC,EAAyBqD,EAAAA,QAOjD,C,wEClIA,IAfgCx3B,CAACZ,EAAkBQ,KACjD,MAAMF,GAAe1rB,EAAAA,EAAAA,IAAY2rB,EAAAA,IAC3BN,GAAmBrrB,EAAAA,EAAAA,KAAYwlB,EAAAA,EAAAA,IAAqBvE,EAAAA,GAAYyE,UAChE4F,GAAwBtrB,EAAAA,EAAAA,KAAYwlB,EAAAA,EAAAA,IAAqBvE,EAAAA,GAAYsK,gBAS3E,OAAOG,GANJL,GAAqBC,IAAyBM,EAA+C,EAA1B6B,EAAAA,MAEhCrC,GAAqBC,GAAqBC,EAEF,EAA3Bm4B,EAAAA,GAED,C,mFCEpD,IAbwBv7C,IACtB,MAAMw7C,GAAWjhD,EAAAA,EAAAA,IAAUwG,EAAAA,IACrB06C,GAAWlhD,EAAAA,EAAAA,IAAUkF,EAAAA,IAI3B,MAAO,CACLkE,kBAJkB7L,EAAAA,EAAAA,KAAY6L,EAAAA,EAAAA,IAAiB3D,IAK/Ce,cAJcE,EAAAA,EAAAA,IAAyB,IAAMu6C,EAASx7C,IAAU,CAACw7C,EAAUx7C,IAK3EP,WAJWwB,EAAAA,EAAAA,IAAyB,IAAMw6C,EAASz7C,IAAU,CAACy7C,EAAUz7C,IAKzE,C,kFCdH,MAEM07C,EAAe,QAEN,MAAMhyC,UAAuBpR,EAAAA,UAC1C2N,YAAY3K,GACVu7B,MAAMv7B,IAAMy6C,EAAAA,EAAAA,GAAA,cAeN,KACNjf,KAAKM,SAAS,CAAEzK,OAAQ+uB,GAAe,IAdvC5kB,KAAKt4B,MAAQ,CACXmuB,OARiB,UAUrB,CAEAsK,oBACEH,KAAKzV,QAAUxjB,WAAWi5B,KAAK6kB,MAAO7kB,KAAKx7B,MAAMqO,OAdjB,EAelC,CAEAwtB,uBACEp5B,aAAa+4B,KAAKzV,QACpB,CAMAqW,SACE,OAAIZ,KAAKt4B,MAAMmuB,SAAW+uB,EAAqB,KACxC5kB,KAAKx7B,MAAMY,QACpB,E,+GCNF,EAlBoB1E,IAAwC,IAAvC,SAAEgN,EAAQ,aAAEikC,GAAe,GAAOjxC,EACrD,MAAO+M,EAAOqS,IAAY1c,EAAAA,EAAAA,UAASuuC,GCLRmT,EAACt7B,EAAIsvB,KAChC,MAAMiM,GAAen1C,EAAAA,EAAAA,SAAO,IAC5BjM,EAAAA,EAAAA,YAAU,KACR,IAAIohD,EAAar0C,QAGf,OAAO8Y,IAFPu7B,EAAar0C,SAAU,CAGzB,GACCooC,EAAK,EDDRgM,EAAqB,KACnBp3C,EAASD,EAAM,GACd,CAACA,IAEJ,MAAMtE,GAAUH,EAAAA,EAAAA,IAAiB,KAC/B8W,GAAUrS,EAAM,GACf,CAACA,IAEJ,OACEjM,EAAAA,cAAA,OAAK2H,QAASA,EAAS3G,UAAW0F,IEjBf,QFiBkCuF,GEjBjB,UFkBlCjM,EAAAA,cAAA,OAAKgB,UElB8C,UFmB/C,C,utBGpBH,MAAM43C,EAAuB,WAAe,IAAd4K,EAAIv8B,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC3C,MAAMw8B,EAAQD,EAAK16C,MAAQ,CAAE46C,oBAAqBF,EAAK16C,OAAU,CAAC,EAElE,OAAA8C,EAAAA,EAAA,GAAY43C,GAASC,EACvB,EAGa9K,EAAW,SAACgL,GAAmB,IAAdl1B,EAAKxH,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,EACpC,IAAK08B,EAAK,MAAO,gBAEjB,MAAOxjC,EAAGyjC,EAAGC,GAAKF,EAAI9R,MAAM,SAASr/B,KAAIqN,GAAKikC,SAASjkC,EAAG,MAE1D,MAAO,QAAPhgB,OAAesgB,EAAC,KAAAtgB,OAAI+jD,EAAC,KAAA/jD,OAAIgkD,EAAC,KAAAhkD,OAAI4uB,EAAK,IACrC,EAEaipB,EAA4B5uC,GAAS,SAAJjJ,OAAaiJ,EAAK,UAAAjJ,OAASiJ,EAAK,6BAAAjJ,OAA4BiJ,EAAK,I,gDCb/G,KAAgBmD,EAAO8c,KACrB,MAAO7iB,EAAO44B,IAAYl9B,EAAAA,EAAAA,UAASqK,GAQnC,OANA9J,EAAAA,EAAAA,YAAU,KACR,MAAMmmC,EAAU/iC,YAAW,IAAMu5B,EAAS7yB,IAAQ8c,GAElD,MAAO,IAAMtjB,aAAa6iC,EAAQ,GACjC,CAACr8B,EAAO8c,IAEJ7iB,CACR,C,uCCgBD,IA1BmB,WAAsB,IAArB69C,EAAY98B,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,EACjC,MAAM+8B,GAAQ51C,EAAAA,EAAAA,UACR61C,GAASnrC,EAAAA,EAAAA,cACb,SAACkP,GAA6B,IAAzB3W,EAAK4V,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG88B,EACXt+C,aAAau+C,EAAM90C,SACnB80C,EAAM90C,QAAU3J,WAAWyiB,EAAI3W,EACjC,GACA,CAAC0yC,IAGGrlB,GAAO5lB,EAAAA,EAAAA,cAAY,KACvBrT,aAAau+C,EAAM90C,SACnB80C,EAAM90C,aAAUgY,CAAS,GACxB,IAUH,OANA/kB,EAAAA,EAAAA,YAAU,IACD,KACLu8B,GAAM,GAEP,IAEI,CAACulB,EAAQvlB,EAREwlB,IAAMC,QAAQH,EAAM90C,SASxC,C,uICXO,MAAMk1C,EACXllD,IAAA,IAAC,aAAEmlD,EAAY,WAAEC,EAAU,aAAEC,GAAcrlD,EAAA,OAC3C,WAAmC,IAAlC,aAAEslD,EAAY,OAAEzd,GAAQ9f,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEtBo9B,GAAcn/C,QAAQu/C,KAAK,4DAEhC,MAAMC,EAAqBC,EAAAA,EAAmBC,eAExC,OAAEtuC,EAAM,MAAEpQ,EAAK,MAAEye,EAAK,UAAEkgC,GAAcL,EACtCM,EACH5+C,GAASA,EAAM6+C,+BAA4C,QAAXzuC,GACrC,QAAXA,IAAoB0uC,EAAAA,EAAAA,IAAqBH,aAAS,EAATA,EAAW1tC,OACjD8tC,EAAe/+C,GAASA,EAAM++C,cAEpCC,EAAAA,EAAAA,IAAoB,CAAEV,eAAczd,SAAQoe,oBAAqBZ,IAEjE,MAAMa,EAA0Bl/C,GAASA,EAAMk/C,wBACzCC,IAA6BC,EAAAA,EAAAA,IAAoC3gC,EAAM3X,YAE7E03C,EAAmBJ,WAAaA,EAEhC,IAAIiB,EAAoBroC,QAAQC,UAiBhC,OAdMkoC,IACFG,EAAAA,EAAAA,KAAoBjoB,EAAAA,EAAAA,IAA0B5Y,EAAM3X,YAApDw4C,CAAiE7gC,EAAM5X,SAAU4X,EAAM3X,UAErF83C,EACGG,GAAcQ,EAAoBjB,EAApBiB,GAEnBpB,EAAa,CAAEG,eAAc7/B,QAAOoiB,SAAQ7gC,QAAOk/C,4BAA2BxgD,KAC3EqgD,EAAmD/gD,EAAAA,GAApCuhD,EAAoBjB,IAOnCe,EAAkB3gD,MAAK,KAAM,CAClC8gD,UAAWhB,EAAmBJ,WAAW,CAAEE,eAAczd,SAAQ7gC,aAErE,CAAC,EAEUu/C,EAAsBjB,IACjC,MAAM,MAAE7/B,GAAU6/B,EACZmB,GAAgBpoB,EAAAA,EAAAA,IAA0B5Y,EAAM3X,YACtD,MAAO,KACL,MAAMswB,GAAeC,EAAAA,EAAAA,IAA0B5Y,EAAM3X,YAEjD24C,IAAkBroB,IACpBsoB,EAAAA,EAAAA,IAAqBpB,EAArBoB,CAAmCjhC,EAAM5X,SAAU4X,EAAM3X,SAC3D,CACD,C,uJChEI,MAAM64C,EAAcC,IAAQ,IAAAC,EAEjC,OAD+B,QAAbA,EAAGD,aAAI,EAAJA,EAAMl0C,YAAI,IAAAm0C,EAAAA,EAAI,IACfvzC,KAAItT,IAAwE,IAAvE,GAAE0G,EAAE,KAAEvD,EAAI,cAAE2jD,EAAa,KAAEC,EAAI,eAAErzC,EAAc,OAAEszC,EAAM,QAAEC,GAASjnD,EACzF,MAAO,CACL0G,KACAvD,OACA2jD,gBACAC,MAAMG,EAAAA,EAAAA,GAAYH,GAClBrzC,gBAAgBwzC,EAAAA,EAAAA,GAAYxzC,EAAgB8U,KAAK2F,IAAI,GAAGg5B,EAAAA,EAAAA,QACxDH,QAAQE,EAAAA,EAAAA,GAAYF,EAAQx+B,KAAK2F,IAAI,GAAGg5B,EAAAA,EAAAA,QACxCF,UACD,GACD,EAGSG,EAAkBR,IAAI,IAAAS,EAAA,OAAkB,QAAlBA,EAAIT,aAAI,EAAJA,EAAMU,gBAAQ,IAAAD,EAAAA,EAAI,EAAE,EAE9CE,EAAoBX,IAAQ,IAAAY,EAEvC,OADmC,QAAnBA,EAAGZ,aAAI,EAAJA,EAAMvyC,kBAAU,IAAAmzC,EAAAA,EAAI,IACrBl0C,KAAI/O,IAA6D,IAA5D,GAAEmC,EAAE,WAAEqO,EAAU,MAAE3T,EAAK,OAAEmS,EAAM,KAAEb,EAAI,MAAE9I,EAAK,QAAE4H,GAASjN,EAC5E,MAAO,CAAEmC,KAAIqO,aAAY3T,QAAOmS,SAAQb,OAAM9I,QAAO4H,UAAS,GAC9D,EAGSi2C,EAAuBb,IAAQ,IAAAc,EAE1C,OADyC,QAAtBA,EAAGd,aAAI,EAAJA,EAAMn0C,qBAAa,IAAAi1C,EAAAA,EAAI,IACxBp0C,KAAI1M,IAAyD,IAAxD,GAAEF,EAAE,MAAEtF,EAAK,OAAEmS,EAAM,MAAE3J,EAAK,UAAE4J,EAAS,WAAEm0C,GAAY/gD,EAC3E,MAAO,CAAEF,KAAItF,QAAOmS,SAAQ3J,QAAO4J,YAAWm0C,aAAY,GAC1D,EAKSC,EAAyB9hD,GAC9BA,aAAgBswC,MAEftwC,EAAKwN,KAAIi+B,IAAA,IAAC,GAAE7qC,EAAE,KAAEzF,EAAI,MAAEG,EAAK,KAAEopC,EAAI,GAAEhO,EAAE,KAAE5oB,GAAM29B,EAAA,MAAM,CACxD7qC,KACAzF,OACAG,QACAopC,OACAhO,KACA5oB,MAAMszC,EAAAA,EAAAA,GAAYtzC,EAAM4U,KAAK2F,IAAI,GAAGg5B,EAAAA,EAAAA,QACrC,IAToC,G,qCCfhC,MAAMjzC,EAA6BA,IAAM,CAACrG,EAAUC,KACzD,MAAMqnB,GAAS0yB,EAAAA,EAAAA,IAAsB/5C,KAErC,OAAIqnB,IAAW2yB,EAAAA,EAAiBC,YAAc5yB,IAAW2yB,EAAAA,EAAiBE,KAAahqC,QAAQC,WAE/FpQ,EAAS,CAAE5M,KAAMgnD,EAAAA,GAAsB95C,QAAS,CAAEgnB,OAAQ2yB,EAAAA,EAAiBC,eAEpEG,EAAAA,EAAAA,MAAyBxiD,MAAKyiD,IACnC,IAAKA,EAASriD,KAEZ,OADA+H,EAAS,CAAE5M,KAAMgnD,EAAAA,GAAsB95C,QAAS,CAAEgnB,OAAQ2yB,EAAAA,EAAiBM,WACpEpqC,QAAQC,UDEO2oC,MCCxB/4C,EAAS,CACP5M,KAAMonD,EAAAA,GACNl6C,QAAS,CACPm6C,ODJoB1B,ECIAuB,EAASriD,KDJD8gD,aAAI,EAAJA,EAAM0B,OCKlC51C,KAAMi0C,EAAYwB,EAASriD,MAC3ByiD,SAAUnB,EAAgBe,EAASriD,MACnCuO,WAAYkzC,EAAkBY,EAASriD,MACvC2M,cAAeg1C,EAAqBU,EAASriD,QAE/C,IACF,EA6BS0iD,EAAgDA,IAAM,CAAC36C,EAAUC,IAC5EkQ,QAAQyqC,IAAI,CACVv0C,IAA6BrG,EAAUC,GA5BS,EAACD,EAAUC,KAC7D,IAAIA,IAAW46C,UAAUC,2BAEzB,OAAOC,EAAAA,EAAAA,MAAoCljD,MAAKyiD,IACzCA,EAASriD,MAEd+H,EAAS,CACP5M,KAAM4nD,EAAAA,GACN16C,QAASy5C,EAAuBO,EAASriD,OACzC,GACF,EAmBAgjD,CAAwCj7C,EAAUC,KAGzCi7C,EAAuCA,IAAM,CAACl7C,EAAUC,IACnEkQ,QAAQyqC,IAAI,CAACv0C,IAA6BrG,EAAUC,GApBX,EAACD,EAAUC,KACpD,IAAIA,IAAW46C,UAAUM,kBAEzB,OAAOC,EAAAA,EAAAA,MAA2BvjD,MAAKyiD,IAChCA,EAASriD,MAEd+H,EAAS,CACP5M,KAAMioD,EAAAA,GACN/6C,QAASy5C,EAAuBO,EAASriD,OACzC,GACF,EAU6DqjD,CAA+Bt7C,EAAUC,I,wGCjF3F,MAAMs7C,UAAqBptB,MACxCvtB,cACE4wB,MAAM,sDACNC,KAAKn8B,KAAO,cACd,E,2TCMF,SAASkmD,EAA0B/rC,EAASgsC,GAC1C,OAAOhsC,EAAQisC,gBAAkBD,CACnC,CAEO,MAAM9rC,EAAuBzQ,GAASc,IAC3CA,EAAS,CACP5M,KAAMuoD,EAAAA,GACNr7C,QAASpB,GACT,EASSuQ,EACXtd,IAAA,IAAC,MAAEse,EAAK,kBAAErB,EAAoB,OAAOjd,EAAA,MACrC,CAAC6N,EAAUC,KACT,IAAKwQ,EAEH,MAXgC,EAACzQ,EAAUC,KAC/CD,EAAS,CACP5M,KAAMwoD,EAAAA,IACN,EAOEC,CAAmB77C,GACZmQ,QAAQC,UAGjBT,EAAqBc,EAArBd,CAA4B3P,EAAUC,GAEtC,MAAMw7C,EAAc94B,KAAKnI,MACzB,MChC0BshC,EAAC77C,EAAQ9N,KAA2C,IAAzC,MAAEse,EAAK,kBAAErB,EAAoB,OAAOjd,EAC3E,MAAM67C,GAAU1/B,EAAAA,EAAAA,IAAWC,EAAAA,EAAS4J,SAC9B6hB,E,qWAAMn7B,CAAA,CACVk9C,EAAGtrC,EACHnB,OAAQF,EACR4sC,MAAO,EACPC,YAAYC,EAAAA,EAAAA,IAAsBj8C,IAAWwF,IAAIgrB,QAC9C0rB,EAAAA,EAAAA,OAGL,OAAOC,EAAAA,GAAQC,IAAIrO,EAAS,CAAEhU,WAAUniC,MAAKyiD,GAAYA,GAAS,EDsBzDwB,CAAe77C,EAAU,CAAEwQ,QAAOrB,sBACtCvX,MAAKyiD,IACJ,MAAM,KAAEriD,GAASqiD,EAEjB,IAAKriD,IAASA,EAAKqkD,SACjB,MAAM,IAAIf,EAGZ,MAAMgB,EE5CC,SAAUjC,GACvB,MAAO,CACLgC,SAAUhC,EAASgC,SAAS72C,KAAI,WAAkB,IAAjBgK,EAAOyK,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC1C,MAAM,KAAE9mB,EAAI,IAAEwP,EAAG,IAAEC,EAAG,QAAEwtC,EAAO,OAAEv+B,EAAM,eAAE0qC,EAAc,UAAEC,GAAchtC,EAEjE6gC,EAAWmM,EACb,CACEnM,SAAUmM,EAAUh3C,KAAI5J,IAAWw9C,EAAAA,EAAAA,GAAYx9C,MAEjD,CAAC,EAEC8zC,EAAe6M,EAAiB,CAAE7M,cAAc0J,EAAAA,EAAAA,GAAYmD,IAAoB,CAAC,EAEvF,OAAOE,OAAOC,OAAO,CAAC,EAAG,CAAEvpD,OAAMwP,MAAKC,MAAKiP,UAAUu+B,EAAU,CAAEA,WAAY,CAAC,EAAGC,EAAUX,EAC7F,IAEJ,CF4B2BnpB,CAAMvuB,IACnB,QAAEwX,GAAYxP,IAEhBu7C,EAA0B/rC,EAASgsC,IACrCz7C,EAAS,CACP5M,KAAMwpD,EAAAA,GACNt8C,QAAS,CAAErI,KAAMskD,EAAYd,gBAEjC,IAEDvjD,OAAMzD,IACL,MAAM,QAAEgb,GAAYxP,IAChBu7C,EAA0B/rC,EAASgsC,IACrCz7C,EAAS,CACP5M,KAAMypD,EAAAA,GACNv8C,QAAS,CAAE7L,QAAOgnD,gBAEtB,GACA,CACL,C,6KGzDH,MAAMqB,EAAqB3qD,IAAuF,IAAtF,mBAAE4qD,EAAkB,kBAAEC,EAAiB,wBAAEC,EAAuB,cAAEC,GAAe/qD,EAC3G,MAAO,CACL2f,OAAQkrC,EACJD,EAAmBI,YAAY13C,KAAI23C,EAAAA,EAAAA,GAAiCH,EAAyBC,IAC7FH,aAAkB,EAAlBA,EAAoBI,YACxBl6B,KAAM85B,aAAkB,EAAlBA,EAAoB95B,KAC1B7vB,KAAM2pD,aAAkB,EAAlBA,EAAoB3pD,KAC1Bi9C,QAAS,CACPx3C,GAAI,WAEP,E,0BCdI,MAAMwkD,GAAsB1lC,EAAAA,EAAAA,IAAe2lC,EAAAA,IAAmBC,IAAM,IAAAC,EAAA,OAAyB,QAAzBA,EAAID,aAAM,EAANA,EAAQzP,qBAAa,IAAA0P,EAAAA,EAAI,EAAE,IAE7FC,GAA8B9lC,EAAAA,EAAAA,IAAe0lC,GAAqBvP,GDe1CA,KACnC4P,EAAAA,EAAAA,KACEC,IAASC,EAAAA,EAAAA,IAAOD,EAAO,OAAQ,UAC/BA,IAASE,EAAAA,EAAAA,IAAKF,EAAO,MACrBA,GAASA,EAAMl4C,KAAIs3C,GAAsBD,EAAmB,CAAEC,0BAHhEW,CAIE5P,GCnBFgQ,CAAsBhQ,K,+lBCIxB,MAAMiQ,EAAkBphB,GAAQqV,GAAInzC,EAAAA,EAAA,GAAUmzC,GAAI,IAAErV,SAE9CqhB,EAAqBpmC,IAAK,IAAAqmC,EAAA,OAAkB,QAAlBA,EAAIrmC,aAAK,EAALA,EAAOnI,eAAO,IAAAwuC,EAAAA,EAAI,CAAC,CAAC,EAE3CC,GAA0BvmC,EAAAA,EAAAA,IAAeqmC,GAAoBvuC,IAAO,IAAA0uC,EAAA,OAAuB,QAAvBA,EAAI1uC,aAAO,EAAPA,EAASpQ,kBAAU,IAAA8+C,EAAAA,EAAI,EAAE,IAEjGvR,GAAiCj1B,EAAAA,EAAAA,IAAeumC,GAAyB7+C,GAA6B,KAAfA,IAEvF++C,GAAqBzmC,EAAAA,EAAAA,IAAeqmC,GAAoBvuC,IAAO,IAAA4uC,EAAA,OAAkB,QAAlBA,EAAI5uC,aAAO,EAAPA,EAAShb,aAAK,IAAA4pD,EAAAA,EAAI,IAAI,IAEzFC,GAA2B3mC,EAAAA,EAAAA,IAAeqmC,GAAoBvuC,IAAO,IAAA8uC,EAAA,OACpD,QAA5BA,EAAC9uC,aAAO,EAAPA,EAAS+uC,0BAAkB,IAAAD,EAAAA,EAAI,IAAI94C,IAAIs4C,EAAgBU,EAAAA,EAAoBzQ,SAAS,IAG1E0Q,GAAiC/mC,EAAAA,EAAAA,IAC5CumC,EACAb,EACAI,GACA,CAACp+C,EAAYyuC,EAAegQ,IACP,KAAfz+C,EAA0By+C,EAAsBr4C,IAAIs4C,EAAgBU,EAAAA,EAAoBE,UFFxDC,EAAC3B,EAAyBC,EAAepP,KAC/E4P,EAAAA,EAAAA,KACEC,GACEA,EAAMruC,QAAOytC,IACX8B,EAAAA,EAAAA,IAAiC5B,EAAyBF,EAAmBI,YAAYprC,KAAK,UAElG4rC,IAASC,EAAAA,EAAAA,IAAOD,EAAO,OAAQ,UAC/BA,IAASE,EAAAA,EAAAA,IAAKF,EAAO,KACrBA,GACEA,EAAMl4C,KAAIs3C,GACRD,EAAmB,CACjBC,qBACAC,mBAAmB,EACnBC,0BACAC,qBAbRQ,CAgBE5P,GEXO8Q,EAFsBE,EAAAA,EAAAA,IAA2Bz/C,GAEFA,EAAYyuC,GAAeroC,IAC/Es4C,EAAgBU,EAAAA,EAAoBE,YAKpCI,EAA2B5sD,IAAgE,IAA/D,KAAEkX,EAAI,MAAE9V,EAAK,QAAE4V,EAAO,QAAEG,EAAO,KAAElW,EAAI,UAAE49C,EAAS,OAAEl/B,GAAQ3f,EAC1F,MAAO,CACLkX,OACAyI,OAAQ3I,EAAU,CAAC5V,EAAO4V,GAAW2I,EACrCu+B,QAAS,CAAEx3C,GAAIyQ,GACflW,OACAupC,KAAM8hB,EAAAA,EAAoBryC,UAC1B4kC,UAAWoG,QAAQpG,GACpB,EAGGgO,EAAqCrtC,GACzC9S,EAAAA,EAAA,GACKkgD,EAAyBptC,IAAW,IACvCxI,QAASwI,EAAWxI,UAIX81C,GAA6BtnC,EAAAA,EAAAA,IAAeunC,EAAAA,IAAqBC,IAC5E,MAAM,KAAE/zC,EAAI,KAAEC,GAAS8zC,EACvB,MAAO,CACL/zC,KAAIvM,EAAA,CACF89B,KAAM8hB,EAAAA,EAAoBryC,WACvBhB,GAELC,KAAIxM,EAAA,CACF89B,KAAM8hB,EAAAA,EAAoBryC,WACvBf,GAEN,IAGU+zC,GAAqCznC,EAAAA,EAAAA,IAChDrE,EAAAA,GACA/H,EAAAA,GACA0zC,GACA,CAACnS,EAAwB1gC,EAAW+yC,KAClC,IAAKrS,EAAwB,MAAO,GAEpC,MAAM,OAAExhC,EAAM,KAAEF,EAAI,KAAEC,GAASe,EAM/B,MAAO,IALkB,CACvBhB,EAAK7X,MAAQ6Y,EAAUhB,KAAO+zC,EAAc/zC,KAC5CC,EAAK9X,MAAQ6Y,EAAUf,KAAO8zC,EAAc9zC,MAIxB5F,IAAIu5C,MACrB1zC,EAAO7F,KAAI4G,GAAS0yC,EAAyB1yC,KACjD,IAIQgzC,GAA6B1nC,EAAAA,EAAAA,IACxCynC,EACAlB,GACA,CAAC9xC,EAAW/M,IACS,KAAfA,EAA0B+M,EAAUkzC,MAAM,EAAG,GAG1ClzC,EAAUkD,QAAO2C,IACtB,MAAMstC,GAAoBT,EAAAA,EAAAA,IAA2Bz/C,GACrD,OAAOw/C,EAAAA,EAAAA,IAAiCU,EAAmBttC,EAASH,OAAOC,KAAK,KAAK,MAK9EytC,EAA6BA,CAACC,EAAsBC,KAC/D,MAAMC,EAAkBD,EAAqBj6C,KAAIkM,IAAU,IAAAiuC,EAAA,OAAIC,EAAAA,EAAAA,KAAkC,QAAnBD,EAACjuC,aAAU,EAAVA,EAAYG,cAAM,IAAA8tC,EAAAA,EAAI,IAAI7tC,KAAK,KAAK,IACnH,OAAO0tC,EAAqBnwC,QAAOqC,IACjC,MAAMpe,GAAQssD,EAAAA,EAAAA,IAAeluC,EAAWG,OAAOC,KAAK,MACpD,OAAQ4tC,EAAgBra,MAAK0M,GAAQA,IAASz+C,GAAM,GACpD,EAGSm6C,EAAuB,eAACt7B,EAAgB8H,UAAA3U,OAAA,QAAA4U,IAAAD,UAAA,IAAAA,UAAA,GAAQ,OAC3DvC,EAAAA,EAAAA,IACEymC,EACAhsC,EAAmB,IAAM,GAAKitC,EAC9BX,EACAJ,GACA,CAAC7pD,EAAOqrD,EAAsBC,EAA0BvB,KACtD,MAAMwB,EAA+BF,EAAqBxwC,QAAO5Y,IAAA,IAAC,KAAE2S,GAAM3S,EAAA,OAAK0gD,QAAQ/tC,EAAK,IACtFykC,EAAgB0R,EAA2BO,EAA0BC,GAM3E,MAAO,CACLvrD,QACAw4C,YAAa,CACX7gC,UAAW4zC,EACXlS,gBACAE,QAVYwR,EAA2BhB,EAAoB,IAC1DwB,KACAlS,KAUJ,GAEJ,EAEUmS,GAAgCtoC,EAAAA,EAAAA,IAC3CrE,EAAAA,GACA/H,EAAAA,GACA0zC,GACA,CAACnS,EAAwB1gC,EAAW+yC,KAClC,IAAKrS,EAAwB,MAAO,GACpC,MAAM,KAAE1hC,EAAI,KAAEC,GAASe,EACvB,MAAO,CACLhB,SAAAA,EAAM7X,MAAQyrD,EAAmC5yC,EAAUhB,MAAQ+zC,EAAc/zC,KACjFC,SAAAA,EAAM9X,MAAQyrD,EAAmC5yC,EAAUf,MAAQ8zC,EAAc9zC,KAClF,G,wDCrJE,MAAMgE,EAAoB,CAC/BC,OAAQ,CACN2e,UAAW,YACX1e,OAAQ,SACRqrC,IAAK,OAEPxnD,KAAM,CACJ+V,QAAS,UACT+2C,IAAK,MACLrP,YAAa,cACbsP,OAAQ,U,gxBC0BZ,IAAIC,GAAyB,EACtB,MAAMhzC,EAA2BA,IAAM,CAACpN,EAAUC,IACnDmgD,GACFA,GAAyB,EA1BM,EAACpgD,EAAUC,KAC5C,MACE8B,QAAU7C,MAAOmhD,IACfpgD,IAEJ,OAAOqgD,EAAAA,EAAAA,IAAiBD,GAAMxoD,MAAKI,IACjC,MAAMsoD,ECjBmCtoD,IACpCA,aAAI,EAAJA,EAAMuoD,SAASC,UDgBIC,CAA8BzoD,GAChD0oD,ECd2B1oD,IAC5BA,aAAI,EAAJA,EAAM2oD,gBDaYC,CAAsB5oD,GAE7C+H,EAAS,CACP5M,KAAM0tD,EAAAA,GACNxgD,QAAS,CAAEigD,kBAAiBI,oBAG9B,MAAMI,ECjB8B9oD,KAAQ,IAAA+oD,EAC9C,MAAMD,EAA8B,QAApBC,EAAG/oD,aAAI,EAAJA,EAAMgpD,mBAAW,IAAAD,EAAAA,EAAI,CAAC,EACzC,OAAOtE,OAAOwE,QAAQH,GAAYI,QAAO,CAACC,EAAKC,KAC7C,MAAO/nD,EAAKm8C,GAAS4L,EAErB,OADAD,EAAI9nD,IAAOuG,EAAAA,EAAAA,IAAoB41C,EAAO,GAC/B2L,CAAG,GACT,CAAC,EAAE,EDWeE,CAAyBrpD,GAE5C+H,EAAS,CACP5M,KAAMmuD,EAAAA,GACNjhD,QAAS,CAAEygD,eACX,GACF,EAOOS,CAAuBxhD,EAAUC,IAGnCkQ,QAAQC,UAKJoiC,EACXrgD,IAAA,IAAC,OAAEw/C,GAAuCx/C,EAA5BsvD,GAA0BxoD,EAAAA,EAAAA,GAAA9G,EAAA+G,GAAA,MACxC,CAAC8G,EAAUC,KACTD,EAAS,CACP5M,KAAMsuD,EAAAA,GACNphD,QAAOzB,EAAA,CACL8yC,UACG8P,IAEL,CACH,EAEUlQ,EACX76C,IAAA,IAAC,OAAEi7C,GAAQj7C,EAAA,OACXsJ,IACEA,EAAS,CACP5M,KAAMuuD,EAAAA,GACNrhD,QAAS,CACPqxC,WAEF,CACH,C,sBEpEH,KAAgB,KAAO,QAAQ,iBAAmB,QAAQ,UAAY,QAAQ,WAAa,QAAQ,WAAa,QAAQ,eAAiB,QAAQ,eAAiB,QAAQ,gBAAkB,QAAQ,gBAAkB,QAAQ,yBAA2B,Q,sBCAzP,KAAgB,UAAY,QAAQ,KAAO,QAAQ,SAAW,QAAQ,kBAAoB,QAAQ,MAAQ,QAAQ,WAAa,QAAQ,UAAY,Q,sBCAnJ,KAAgB,KAAO,QAAQ,gBAAkB,QAAQ,MAAQ,QAAQ,YAAc,QAAQ,KAAO,Q","sources":["webpack://web-pwa/./src/domain/UserAccount/UserLoginButton.jsx","webpack://web-pwa/./src/domain/UserAccount/UserPicture.jsx","webpack://web-pwa/./src/domain/UserAccount/UserPicture.less?5213","webpack://web-pwa/./src/domain/UserAccount/connected/userFavorites/UserFavoriteError.jsx","webpack://web-pwa/./src/domain/UserAccount/connectionIncentive/incentive.constants.js","webpack://web-pwa/./src/domain/UserAccount/shared/withKeycloak.jsx","webpack://web-pwa/./src/domain/advertising/AdLoader.jsx","webpack://web-pwa/./src/domain/advertising/AdLoader.less?2534","webpack://web-pwa/./src/domain/autopromo/AutoPromoPopinGE.less?cba7","webpack://web-pwa/./src/domain/autopromo/AutoPromoPopinGE.jsx","webpack://web-pwa/./src/domain/autopromo/AutoPromoOpenButton.jsx","webpack://web-pwa/./src/domain/genericComponents/Anchor.jsx","webpack://web-pwa/./src/domain/genericComponents/Anchor.less?5ad8","webpack://web-pwa/./src/domain/genericComponents/ClosePopinButton.jsx","webpack://web-pwa/./src/domain/genericComponents/ClosePopinButton.less?e368","webpack://web-pwa/./src/domain/genericComponents/ImageGallery.jsx","webpack://web-pwa/./src/domain/genericComponents/Modal.jsx","webpack://web-pwa/./src/domain/genericComponents/Modal.less?a1f9","webpack://web-pwa/./src/domain/genericComponents/NumericInput.jsx","webpack://web-pwa/./src/store/cmp/cmp.actions.js","webpack://web-pwa/./src/domain/cmp/CMPPlaceholder.jsx","webpack://web-pwa/./src/domain/outdoor/Outdoor.jsx","webpack://web-pwa/./src/domain/outdoor/Outdoor.less?c1d0","webpack://web-pwa/./src/domain/menu/MenuCategoriesGE.less?8d71","webpack://web-pwa/./src/domain/advertising/AdMenu.jsx","webpack://web-pwa/./src/domain/advertising/AdMenu.less?280f","webpack://web-pwa/./src/domain/menu/MenuSubCategoriesGE.jsx","webpack://web-pwa/./src/domain/menu/MenuSubCategoriesGE.less?e55b","webpack://web-pwa/./src/domain/menu/MenuCategoriesGE.jsx","webpack://web-pwa/./src/domain/UserAccount/shared/CloseUserAreaButton.jsx","webpack://web-pwa/./src/domain/UserAccount/shared/CloseUserAreaButton.less?8716","webpack://web-pwa/./src/domain/genericComponents/LogoMappyImg.jsx","webpack://web-pwa/./src/domain/genericComponents/LogoMappyImg.less?56bd","webpack://web-pwa/./src/domain/UserAccount/anonymous/UserAreaAnonymous.jsx","webpack://web-pwa/./src/domain/UserAccount/anonymous/UserAreaAnonymous.less?42c3","webpack://web-pwa/./src/domain/UserAccount/shared/UserScreenContent.jsx","webpack://web-pwa/./src/domain/UserAccount/shared/UserScreenContent.less?8e7b","webpack://web-pwa/./src/domain/UserAccount/shared/UserScreenHeader.jsx","webpack://web-pwa/./src/domain/UserAccount/shared/UserScreenHeader.less?4524","webpack://web-pwa/./src/domain/UserAccount/connected/userFavorites/UserFavoriteItem.less?0c42","webpack://web-pwa/./src/domain/UserAccount/connected/userFavorites/UserFavoriteItem.jsx","webpack://web-pwa/./src/domain/UserAccount/connected/userFavorites/UserFavorites.jsx","webpack://web-pwa/./src/domain/UserAccount/connected/userTravelOptions/UserTravelOptions.jsx","webpack://web-pwa/./src/domain/UserAccount/connected/userTravelOptions/UserTravelOptions.less?dff7","webpack://web-pwa/./src/domain/UserAccount/connected/userMenu/UserMenu.less?c846","webpack://web-pwa/./src/domain/UserAccount/connected/userMenu/UserLogout.jsx","webpack://web-pwa/./src/domain/UserAccount/connected/userMenu/UserMenu.jsx","webpack://web-pwa/./src/domain/UserAccount/connected/userFavorites/UserManageFavorite.less?ffd6","webpack://web-pwa/./src/domain/UserAccount/connected/userFavorites/FavoriteInput.jsx","webpack://web-pwa/./src/domain/UserAccount/connected/userFavorites/FavoriteInput.less?ef31","webpack://web-pwa/./src/domain/UserAccount/connected/userFavorites/UserManageFavorite.jsx","webpack://web-pwa/./src/domain/UserAccount/connected/UserAreaConnected.jsx","webpack://web-pwa/./src/domain/UserAccount/useKeycloakEngine.js","webpack://web-pwa/./src/domain/UserAccount/UserArea.less?9351","webpack://web-pwa/./src/domain/UserAccount/UserAreaPlaceHolder.jsx","webpack://web-pwa/./src/domain/UserAccount/UserArea.jsx","webpack://web-pwa/./src/domain/UserAccount/connectionIncentive/UserAccountIncentiveCarrousel.less?dca6","webpack://web-pwa/./src/domain/UserAccount/connectionIncentive/UserAccountIncentiveCarrousel.jsx","webpack://web-pwa/./src/domain/UserAccount/connectionIncentive/UserAccountIncentivePopin.jsx","webpack://web-pwa/./src/domain/UserAccount/connectionIncentive/UserAccountIncentivePopin.less?94aa","webpack://web-pwa/./src/domain/genericComponents/Page.jsx","webpack://web-pwa/./src/domain/genericComponents/ResponsiveScrollableWrapper/ResponsiveScrollableWrapper.jsx","webpack://web-pwa/./src/domain/genericComponents/ResponsiveScrollableWrapper/ResponsiveScrollableWrapper.less?c3b9","webpack://web-pwa/./src/domain/genericComponents/StatusMessage.jsx","webpack://web-pwa/./src/domain/genericComponents/StatusMessage.less?81a6","webpack://web-pwa/./src/domain/genericComponents/useTemporaryVisible.js","webpack://web-pwa/./src/domain/header/BackButton.jsx","webpack://web-pwa/./src/domain/header/SubHeader.jsx","webpack://web-pwa/./src/domain/header/SubHeader.less?40b2","webpack://web-pwa/./src/domain/header/UniverseButton.jsx","webpack://web-pwa/./src/domain/header/UniverseButton.less?90b9","webpack://web-pwa/./src/domain/UserAccount/UserButton.jsx","webpack://web-pwa/./src/domain/UserAccount/UserButton.less?32ba","webpack://web-pwa/./src/domain/header/DesktopPreHeader.jsx","webpack://web-pwa/./src/domain/header/DesktopPreHeader.less?d786","webpack://web-pwa/./src/domain/header/Header.jsx","webpack://web-pwa/./src/domain/i18n/i18nSite.jsx","webpack://web-pwa/./src/domain/itinerary/ModeItem.jsx","webpack://web-pwa/./src/domain/itinerary/ModeItem.less?47d7","webpack://web-pwa/./src/domain/loading/Throbber.less?bc51","webpack://web-pwa/./src/domain/loading/Throbber.jsx","webpack://web-pwa/./src/domain/main/Main.jsx","webpack://web-pwa/./src/domain/main/Main.less?6328","webpack://web-pwa/./src/domain/map/markers/GeolocMarker.jsx","webpack://web-pwa/./src/domain/utils/useCompass.js","webpack://web-pwa/./src/domain/map/markers/GeolocMarker.less?c358","webpack://web-pwa/./src/domain/map/tools/TrafficLegend.jsx","webpack://web-pwa/./src/domain/map/tools/TrafficLegend.less?dcda","webpack://web-pwa/./src/domain/map/tools/useTooltip.js","webpack://web-pwa/./src/domain/map/tools/ZoomButtons.jsx","webpack://web-pwa/./src/domain/map/tools/ZoomButtons.less?5296","webpack://web-pwa/./src/domain/map/tools/Scale.js","webpack://web-pwa/./src/domain/map/tools/Copyrights.less?482c","webpack://web-pwa/./src/domain/map/tools/Copyrights.jsx","webpack://web-pwa/./src/domain/map/tools/Logo.jsx","webpack://web-pwa/./src/domain/map/tools/Logo.less?2072","webpack://web-pwa/./src/domain/map/tools/ToggleFullscreenButton.jsx","webpack://web-pwa/./src/domain/map/tools/ToggleFullscreenButton.less?4299","webpack://web-pwa/./src/domain/map/tools/OutdoorButton.jsx","webpack://web-pwa/./src/domain/map/tools/OutdoorButton.less?90b1","webpack://web-pwa/./src/domain/map/popup/Popup.jsx","webpack://web-pwa/./src/domain/map/popup/Popup.less?62d0","webpack://web-pwa/./src/domain/outdoor/UPI.jsx","webpack://web-pwa/./src/domain/outdoor/UPI.less?8f7e","webpack://web-pwa/./src/domain/map/tools/GeolocButton.less?c64a","webpack://web-pwa/./src/domain/map/tools/GeolocButton.jsx","webpack://web-pwa/./src/domain/map/Geolocation.js","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenuItem.jsx","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenu.less?a138","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenuItemShowAddress.jsx","webpack://web-pwa/./src/domain/map/contextmenu/contextmenu.constants.js","webpack://web-pwa/./src/domain/map/contextmenu/contextmenu.utils.js","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenuItemItineraryTo.jsx","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenuItemItineraryFrom.jsx","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenuItemItineraryAddStep.jsx","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenuItemShowCity.jsx","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenuItemShowDepartment.jsx","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenuItemShowRegion.jsx","webpack://web-pwa/./src/domain/map/contextmenu/ContextMenu.jsx","webpack://web-pwa/./src/domain/analytics/useImpressionTag.jsx","webpack://web-pwa/./src/domain/map/debug/FPS.jsx","webpack://web-pwa/./src/domain/map/debug/FPS.less?bf25","webpack://web-pwa/./src/domain/map/debug/BboxDebugger.jsx","webpack://web-pwa/./src/domain/map/debug/ZoomDebugger.jsx","webpack://web-pwa/./src/domain/map/debug/MapDebugger.jsx","webpack://web-pwa/./src/domain/map/maplibre.fixes.js","webpack://web-pwa/./src/domain/error/MapLoadingError.js","webpack://web-pwa/./src/domain/map/MapProvider.jsx","webpack://web-pwa/./src/domain/map/DynamicMap.less?a5fe","webpack://web-pwa/./src/domain/map/useMapMoveHandler.js","webpack://web-pwa/./src/domain/map/useMapZoomHandler.js","webpack://web-pwa/./src/domain/map/useMapPerfMetrics.js","webpack://web-pwa/./src/domain/map/useMapPaddingHandler.js","webpack://web-pwa/./src/domain/map/vector/MapTooSlowTooltip.jsx","webpack://web-pwa/./src/domain/map/vector/MapTooSlowTooltip.less?a8d9","webpack://web-pwa/./src/domain/map/common/LayersButtons.less?447d","webpack://web-pwa/./src/domain/map/common/LayerButton.jsx","webpack://web-pwa/./src/domain/map/vector/HdTooltip.jsx","webpack://web-pwa/./src/domain/map/vector/HdTooltip.less?571b","webpack://web-pwa/./src/domain/map/common/LayersButtons.jsx","webpack://web-pwa/./src/domain/map/vector/VectorMap.jsx","webpack://web-pwa/./src/domain/map/vector/useClickMyMapLayers.js","webpack://web-pwa/./src/domain/map/useMapPointerHandler.js","webpack://web-pwa/./src/domain/map/raster/useIntegerZoom.js","webpack://web-pwa/./src/domain/map/raster/RasterMap.jsx","webpack://web-pwa/./src/domain/map/raster/useLayersManager.js","webpack://web-pwa/./src/domain/map/shape/MapAddressContour.jsx","webpack://web-pwa/./src/domain/map/DynamicMap.jsx","webpack://web-pwa/./src/domain/map/StaticMap.jsx","webpack://web-pwa/./src/domain/map/Map.jsx","webpack://web-pwa/./src/domain/map/MapContext.jsx","webpack://web-pwa/./src/domain/menu/CategorySubMenuStyle.jsx","webpack://web-pwa/./src/domain/menu/MenuApplicationItem.jsx","webpack://web-pwa/./src/domain/menu/MenuSubCategoriesPE.less?f85a","webpack://web-pwa/./src/domain/menu/MenuSubCategoriesPE.jsx","webpack://web-pwa/./src/domain/menu/MenuCategoriesPE.jsx","webpack://web-pwa/./src/domain/menu/MenuCategoriesPE.less?691d","webpack://web-pwa/./src/domain/menu/MenuCategoryItem.jsx","webpack://web-pwa/./src/domain/menu/MenuCategoryItem.less?6f21","webpack://web-pwa/./src/domain/menu/MenuSubCategoryItem.jsx","webpack://web-pwa/./src/domain/menu/usePublisherBarreCategorieTag.js","webpack://web-pwa/./src/utils/keyboard.constants.js","webpack://web-pwa/./src/domain/suggest/SuggestContent.less?14aa","webpack://web-pwa/./src/domain/suggest/SuggestFavoritesContent.jsx","webpack://web-pwa/./src/domain/suggest/SuggestSearchHistoryContent.jsx","webpack://web-pwa/./src/domain/suggest/SuggestServiceContent.jsx","webpack://web-pwa/./src/domain/suggest/SuggestClearHistory.jsx","webpack://web-pwa/./src/domain/suggest/SuggestClearHistory.less?7aaa","webpack://web-pwa/./src/domain/suggest/SuggestContentError.jsx","webpack://web-pwa/./src/domain/suggest/SuggestContentError.less?3f67","webpack://web-pwa/./src/domain/suggest/SuggestContent.jsx","webpack://web-pwa/./src/domain/suggest/SuggestItem.less?6cfe","webpack://web-pwa/./src/domain/suggest/SuggestItem.jsx","webpack://web-pwa/./src/domain/suggest/SuggestContentList.less?e46d","webpack://web-pwa/./src/domain/suggest/SuggestContentList.jsx","webpack://web-pwa/./src/domain/suggest/useIncentiveClick.js","webpack://web-pwa/./src/domain/travelOptions/FavouriteModeBox.jsx","webpack://web-pwa/./src/domain/travelOptions/ModeSpeedSettingsBox.jsx","webpack://web-pwa/./src/domain/travelOptions/ModeSpeedSettingsBox.less?aa2f","webpack://web-pwa/./src/domain/travelOptions/TravelOptions.less?7e74","webpack://web-pwa/./src/domain/travelOptions/TravelOptions.jsx","webpack://web-pwa/./src/domain/travelOptions/VehicleOwnedSwitcher.jsx","webpack://web-pwa/./src/domain/travelOptions/VehicleOwnedSwitcher.less?bcba","webpack://web-pwa/./src/domain/travelOptions/VehicleSettingsBox.less?5269","webpack://web-pwa/./src/domain/travelOptions/CritairChoice.less?a5b7","webpack://web-pwa/./src/domain/travelOptions/CritairChoice.jsx","webpack://web-pwa/./src/domain/travelOptions/CritairSelect.jsx","webpack://web-pwa/./src/domain/travelOptions/VehicleSettingsBox.jsx","webpack://web-pwa/./src/domain/ui/useHeaderHeight.js","webpack://web-pwa/./src/domain/ui/useModal.js","webpack://web-pwa/./src/domain/utils/DelayComponent.jsx","webpack://web-pwa/./src/domain/utils/SwitchInput.jsx","webpack://web-pwa/./src/domain/utils/useEffectExceptMount.js","webpack://web-pwa/./src/domain/utils/SwitchInput.less?d8a4","webpack://web-pwa/./src/domain/utils/css.js","webpack://web-pwa/./src/domain/utils/useDebounce.js","webpack://web-pwa/./src/domain/utils/useTimeout.js","webpack://web-pwa/./src/routes/routeService.js","webpack://web-pwa/./src/store/poiassets/poiassets.dataParsers.js","webpack://web-pwa/./src/store/poiassets/poiassets.actions.js","webpack://web-pwa/./src/domain/suggest/SuggestError.js","webpack://web-pwa/./src/store/suggest/suggest.actions.js","webpack://web-pwa/./src/dataSource/suggest/suggest.requests.js","webpack://web-pwa/./src/store/suggest/suggest.dataParser.js","webpack://web-pwa/./src/store/search/searchHistory/searchHistory.utils.js","webpack://web-pwa/./src/store/search/searchHistory/searchHistory.selectors.js","webpack://web-pwa/./src/store/suggest/suggest.selectors.js","webpack://web-pwa/./src/store/suggest/suggest.service.constants.js","webpack://web-pwa/./src/store/travelOptions/travelOptions.actions.js","webpack://web-pwa/./src/store/travelOptions/travelOptions.dataParsers.js","webpack://web-pwa/./src/domain/header/Header.less?4029","webpack://web-pwa/./src/domain/itinerary/ModeSelector.less?4832","webpack://web-pwa/./src/domain/menu/MenuSubCategoryItem.less?8f0c"],"sourcesContent":["import React from 'react'\nimport { useKeycloak } from '@react-keycloak/web'\nimport RectangleActionButton, { SIZE_BIG } from '../genericComponents/buttons/RectangleActionButton'\nimport { TAG_CLICK_USER_LOGIN_BUTTON } from '../../store/analytics/analytics.actionTypes'\nimport { withUserKnown } from './shared/withKeycloak'\nimport { useSelector } from 'react-redux'\nimport { selectPrevFullRouteNonPageLess } from '../../store/history/history.selectors'\n\nconst UserLoginButton = ({ size = SIZE_BIG }) => {\n const { keycloak } = useKeycloak()\n\n const lastFullRoute = useSelector(selectPrevFullRouteNonPageLess)\n\n const loginUrl = keycloak.createLoginUrl({ redirectUri: `${location.origin}${lastFullRoute}` })\n\n return (\n \n )\n}\n\nexport default withUserKnown(UserLoginButton)\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectIsUserConnected, selectUserPicture } from '../../store/userAccount/userAccount.selectors'\nimport SVGIcon from '../svg/SVGIcon'\nimport s from './UserPicture.less'\nimport classnames from 'classnames'\n\nconst UserPicture = ({ wrapperClassName, defaultIconClassName, userPicClassName }) => {\n const connected = useSelector(selectIsUserConnected)\n const picture = useSelector(selectUserPicture)\n const shouldDisplayPicture = connected && picture\n\n return (\n
\n
\n \n {shouldDisplayPicture && (\n
\n )}\n
\n
\n )\n}\n\nexport default UserPicture\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"Qd68O\",\"circle\":\"SmO1O\",\"defaultIcon\":\"wKABM\",\"connected\":\"yoNmq\",\"userPic\":\"gmxBL\"};","import React, { useEffect, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectUserAccountError } from '../../../../store/userAccount/userAccount.selectors'\nimport { useTemporaryVisible } from '../../../genericComponents/useTemporaryVisible'\nimport { useT } from '../../../i18n/T'\nimport StatusMessage from '../../../genericComponents/StatusMessage'\n\nimport { useAction } from '../../../utils/react-redux'\nimport { clearUserAccountError } from '../../../../store/userAccount/userAccount.actions'\n\n// webpack:BrowserOnly\nexport default function UserFavoriteError({ marginTop = 10 }) {\n const error = useSelector(selectUserAccountError)\n const [text, setText] = useState()\n const [visible, setVisible] = useTemporaryVisible()\n const execClearUserAccountError = useAction(clearUserAccountError)\n\n useEffect(() => {\n if (error) {\n setText(error?.name ?? 'Error')\n setVisible(true)\n execClearUserAccountError()\n }\n }, [error])\n\n return \n}\n","export const INCENTIVE_NAME = {\n incitationPrincipale: 'incitationPrincipale',\n incitationOptionDeplacement: 'incitationOptionDeplacement',\n incitationOptionReponse: 'incitationOptionReponse',\n incitationPOI: 'incitationPOI'\n}\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectIsUserConnected, selectIsUserKnown, selectIsUserNotConnected } from '../../../store/userAccount/userAccount.selectors'\n\n/* eslint-disable react/display-name */\nexport const withUserConnected = Component => props => {\n if (__SERVER__) return null\n\n const isConnected = useSelector(selectIsUserConnected)\n\n return isConnected ? : null\n}\n\n/* eslint-disable react/display-name */\nexport const withUserNotConnected = Component => props => {\n if (__SERVER__) return null\n\n const isNotConnected = useSelector(selectIsUserNotConnected)\n\n return isNotConnected ? : null\n}\n\nexport const withUserKnown = Component => props => {\n if (__SERVER__) return null\n\n const isKnown = useSelector(selectIsUserKnown)\n\n return isKnown ? : null\n}\n\nexport const withUserUnknown = Component => props => {\n if (__SERVER__) return null\n\n const isKnown = useSelector(selectIsUserKnown)\n\n return !isKnown ? : null\n}\n","import classnames from 'classnames'\nimport { noop } from '../../utils/function'\nimport React, { useEffect, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { removeAdData, setAdData } from '../../store/ad/ad.actions'\nimport { selectIsCorrespondingPageAdConfigLoaded, selectPageIdForAdConfig } from '../../store/ad/ad.selectors'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport { ONE_SECOND_MS } from '../utils/date'\nimport { useAction } from '../utils/react-redux'\nimport { getAdIdByAdName } from './AdConfigService'\nimport s from './AdLoader.less'\nimport { AdService } from './AdService'\n\nexport const AD_STATUS_NONE = 'AD_STATUS_NONE'\nexport const AD_STATUS_LOADING = 'AD_STATUS_LOADING'\nexport const AD_STATUS_LOADED = 'AD_STATUS_LOADED'\n\nconst useAdLoader = ({ adId, keywordsSelector = noop, askData = false }) => {\n const [adStatus, setAdStatus] = useState(AD_STATUS_NONE)\n const execSetAdData = useAction(setAdData)\n const execRemoveAdData = useAction(removeAdData)\n const keywords = useSelector(keywordsSelector)\n\n useEffect(() => {\n // keywords selectors must return null if there is no keywords available\n if (keywords === null || !adId) return\n\n switch (adStatus) {\n case AD_STATUS_NONE: {\n setAdStatus(AD_STATUS_LOADING)\n\n AdService.createAd(adId)\n .then(() => AdService.setAdKeywords(adId, keywords))\n .then(() => AdService.loadAd(adId))\n .then(() => askData && AdService.getAdData(adId).then(data => execSetAdData(adId, data)))\n .then(() => setAdStatus(AD_STATUS_LOADED))\n .catch(error => console.error('AdLoader loading error', error))\n break\n }\n\n case AD_STATUS_LOADED: {\n setAdStatus(AD_STATUS_LOADING)\n execRemoveAdData(adId)\n\n AdService.setAdKeywords(adId, keywords)\n .then(() => AdService.reloadAd(adId))\n .then(() => askData && AdService.getAdData(adId).then(data => execSetAdData(adId, data)))\n .then(() => setAdStatus(AD_STATUS_LOADED))\n .catch(error => console.error('AdLoader reload', error))\n\n break\n }\n }\n }, [JSON.stringify(keywords)])\n\n useEffect(() => {\n // sometimes, the ad api does resolve or reject the promise, so we do not keep loading status more than 5s, because it blocks refresh\n let timeoutId\n if (adStatus === AD_STATUS_LOADING) {\n timeoutId = setTimeout(() => setAdStatus(AD_STATUS_LOADED), 5 * ONE_SECOND_MS)\n }\n return () => clearTimeout(timeoutId)\n }, [adStatus])\n\n useEffect(\n () => () => {\n if (adId) {\n AdService.deleteAd(adId).catch(error => console.error('AdLoader remove error', error))\n execRemoveAdData(adId)\n }\n },\n []\n )\n\n return adStatus === AD_STATUS_LOADED\n}\n\nexport const BaseAdLoader = ({ adName, className, keywordsSelector, children, askData }) => {\n const pageId = useSelector(selectPageIdForAdConfig)\n const adId = getAdIdByAdName(adName, pageId)\n\n useAdLoader({ adId, keywordsSelector, askData })\n\n return (\n <>\n {children}\n
\n \n )\n}\n\nexport default withEmptyFallbackErrorBoundary(function AdLoader({ adName, ...restProps }) {\n const isConfigLoaded = useSelector(state => selectIsCorrespondingPageAdConfigLoaded(state, adName))\n\n if (!isConfigLoaded) return null\n\n return \n})\n","// extracted by mini-css-extract-plugin\nexport default {\"hidden\":\"nL4Ol\"};","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"NyDlD\",\"leftPart\":\"CNNGD\",\"qrcodeWrapper\":\"dJn7D\",\"instructions\":\"Woidx\",\"storeButton\":\"qnlJa\",\"androidButton\":\"jvkGE\",\"iosButton\":\"xF2zA\",\"rightPart\":\"rNDPS\",\"title\":\"sEkur\",\"advantagesList\":\"HsgP2\",\"advantagesItem\":\"vTObo\",\"advantagesIcon\":\"kE_cS\",\"closeButton\":\"itsJI\"};","import React from 'react'\nimport Modal from '../genericComponents/Modal'\nimport { TAG_BLOCK_AUTOPROMO } from '../../store/analytics/analytics.actionTypes'\nimport { MODAL_IDS } from '../../store/ui/ui.constants'\nimport s from './AutoPromoPopinGE.less'\nimport qrcode from './assets/qrcode-stores.png'\nimport iconMappy from '../genericComponents/assets/autopromo-mappy.svg'\nimport iconRoadInfo from '../genericComponents/assets/autopromo-roadinfo.svg'\nimport iconFrance from '../genericComponents/assets/autopromo-france.svg'\nimport SVGIcon from '../svg/SVGIcon'\nimport useModal from '../ui/useModal'\nimport { APPLE_STORE_URL, PLAY_STORE_URL } from '../../parameters'\nimport TagActionLink from '../genericComponents/TagActionLink'\nimport classNames from 'classnames'\nimport analyticsConstants from '../analytics/analytics.constants'\nimport useEventCallback from '../utils/useEventCallback'\n\nconst StoreButton = ({ url, className, appstore }) => {\n return (\n \n )\n}\n\nconst AutoPromoPopinGE = () => {\n const { hideModal } = useModal(MODAL_IDS.AUTO_PROMO_POPIN)\n const onPopinClose = useEventCallback(hideModal)\n\n return (\n \n
\n \n
\n
\n
\n
\n \n
\n
    \n
  1. \n Scannez le QR Code avec l'appareil photo de votre téléphone\n
  2. \n
  3. \n Cliquez sur le lien\n
  4. \n
  5. \n Téléchargez l'app\n
  6. \n
\n
\n \n \n
\n
\n
\n
Pour une expérience complète, téléchargez l'application Mappy
\n
    \n
  • \n
    \n \n
    \n
    Un GPS efficace et gratuit
    \n
  • \n
  • \n
    \n \n
    \n
    Trafic en temps réel, zones de contrôle et alertes dépassement de vitesse
    \n
  • \n
  • \n
    \n \n
    \n
    100% made in France qui respecte la vie privée
    \n
  • \n
\n
\n
\n
\n )\n}\n\nexport default AutoPromoPopinGE\n","import RectangleActionButton, {\n COLOR_GREY_EMPTY,\n SIZE_NORMAL\n} from '../genericComponents/buttons/RectangleActionButton'\nimport iconQRCode from '../genericComponents/assets/qrcode-icon.svg'\nimport React from 'react'\nimport useModal from '../ui/useModal'\nimport { MODAL_IDS } from '../../store/ui/ui.constants'\nimport useErrorBoundaryCallback from '../utils/useErrorBoundaryCallback'\nimport { TAG_BLOCK_AUTOPROMO } from '../../store/analytics/analytics.actionTypes'\nimport analyticsConstants from '../analytics/analytics.constants'\nimport { withFrenchSite } from '../i18n/i18nSite'\nimport AutoPromoPopinGE from './AutoPromoPopinGE'\n\nconst AutoPromoOpenButton = ({ size = SIZE_NORMAL, area }) => {\n const { displayModal } = useModal(MODAL_IDS.AUTO_PROMO_POPIN)\n\n const onButtonClick = useErrorBoundaryCallback(displayModal)\n\n return (\n <>\n \n \n \n )\n}\n\nexport default withFrenchSite(AutoPromoOpenButton)\n","import React from 'react'\nimport { withOnlyPE } from '../Device'\nimport s from './Anchor.less'\n\nconst Anchor = () =>
\n\nexport default withOnlyPE(Anchor)\n","// extracted by mini-css-extract-plugin\nexport default {\"anchor\":\"t9_nH\"};","import React from 'react'\nimport s from './ClosePopinButton.less'\nimport TagActionButton from './TagActionButton'\nimport SVGIcon from '../svg/SVGIcon'\nimport { TAG_BACK } from '../../store/analytics/analytics.actionTypes'\nimport { navigateBack } from '../../store/history/history.actions'\nimport { useAction } from '../utils/react-redux'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport { isGE, withOnlyGE } from '../Device'\nimport classnames from 'classnames'\n\nconst ClosePopinButton = ({ className }) => {\n const execNavigateBack = useAction(navigateBack)\n\n return (\n execNavigateBack()}>\n
\n \n
\n
\n )\n}\n\nexport const ClosePopinButtonGE = withOnlyGE(withEmptyFallbackErrorBoundary(ClosePopinButton))\n\nexport default withEmptyFallbackErrorBoundary(ClosePopinButton)\n","// extracted by mini-css-extract-plugin\nexport default {\"closeButton\":\"cEk0y\"};","import React from 'react'\nimport RImageGallery from 'react-image-gallery'\nimport './ImageGalleryOriginal.less'\nimport './ImageGallery.less'\n\nconst ImageGallery = React.forwardRef((props, ref) => {\n return (\n \n )\n})\n\nImageGallery.displayName = 'ImageGallery'\n\nexport default ImageGallery\n","import React from 'react'\nimport RModal from 'react-modal'\nimport s from './Modal.less'\nimport ClosePopinButton from './ClosePopinButton'\nimport { useAction } from '../utils/react-redux'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport { isGE } from '../Device'\nimport { navigateBack } from '../../store/history/history.actions'\nimport { appId } from '../../App'\nimport useModal from '../ui/useModal'\nimport useEventCallback from '../utils/useEventCallback'\n\nconst customStyle = {\n overlay: {\n zIndex: 180,\n backgroundColor: 'rgba(128, 128, 128, 0.55)'\n },\n content: {\n top: '50%',\n left: '50%',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n right: 'auto',\n bottom: 'auto',\n padding: 0,\n overflow: 'none',\n backgroundColor: 'white',\n borderRadius: '12px',\n border: '1px solid rgb(204, 204, 204)'\n }\n}\n\nconst Modal = ({\n modalId,\n children,\n overlayStyle = {},\n style = {},\n withCloseButton,\n execNavBackOnClose = false,\n ...rModalProps\n}) => {\n const { hideModal, isModalDisplayed } = useModal(modalId)\n const execNavBack = useAction(navigateBack)\n RModal.setAppElement(`#${appId}`)\n\n const stopPropagationHandler = useEventCallback(() => {})\n\n const onRequestClose = useEventCallback(() => {\n if (execNavBackOnClose) {\n execNavBack()\n } else {\n hideModal()\n }\n }, [execNavBackOnClose, hideModal])\n\n return (\n \n \n {withCloseButton && }\n {children}\n \n \n )\n}\n\n// webpack:BrowserOnly\nexport default withEmptyFallbackErrorBoundary(Modal)\n","// extracted by mini-css-extract-plugin\nexport default {\"modalContainer\":\"BrYsJ\",\"closeButton\":\"pkyux\"};","import React, { useEffect, useState } from 'react'\nimport { parsePositiveNumber } from '../../utils/number'\n\nconst POSITIVE_FLOAT_MAX_3_RADIX = /^[0-9]*(\\.|,)?[0-9]{0,3}$/\n\nexport const NumericInput = props => {\n const { value, onChange, onBlur } = props\n\n const [inputValue, setInputValue] = useState(value)\n\n useEffect(() => {\n setInputValue(value)\n }, [value])\n\n const handleChange = event => {\n const {\n target: { value: targetValue }\n } = event\n\n if (!targetValue || POSITIVE_FLOAT_MAX_3_RADIX.test(targetValue)) {\n setInputValue(targetValue)\n }\n onChange && onChange(event)\n }\n\n const handleClick = event => event.target.focus()\n\n const handleBlur = () => {\n const event = {\n target: {\n value: parsePositiveNumber(inputValue, 3)\n }\n }\n onBlur && onBlur(event)\n }\n\n return (\n \n )\n}\n\nexport default NumericInput\n","import { isEqual } from '../../utils/lang'\nimport { REGISTER_CONSENT } from './cmp.actionTypes'\n\nexport const registerConsent = consent => (dispatch, getState) => {\n if (!isEqual(getState()?.cmp?.consent, consent)) {\n dispatch({\n type: REGISTER_CONSENT,\n payload: consent\n })\n }\n}\n","import React from 'react'\nimport { DidomiSDK } from '@didomi/react'\nimport CMPService from './CMPService'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport { registerConsent } from '../../store/cmp/cmp.actions'\nimport { useAction } from '../utils/react-redux'\n\n// webpack:BrowserOnly\nexport default withEmptyFallbackErrorBoundary(function CMPPlaceholder() {\n const execRegisterConsent = useAction(registerConsent)\n\n return (\n {\n CMPService.setSDK(didomiSDK)\n execRegisterConsent(CMPService.getConsents())\n }}\n onConsentChanged={() => execRegisterConsent(CMPService.getConsents())}\n />\n )\n})\n","import React, { useEffect, useRef, useState } from 'react'\nimport { useAction } from '../utils/react-redux'\nimport classNames from 'classnames'\nimport SVGIcon from '../svg/SVGIcon'\nimport { getLocaleUnderscored } from '../i18n'\nimport { getApiKey, getDomain } from '../../parameters'\nimport {\n selectIsOutdoorDisplayed,\n selectOutdoorTargetCoordinates,\n selectOutdoorPanoramicId\n} from '../../store/ui/ui.outdoor.selectors'\nimport { selectLocale } from '../../store/locale/locale.selectors'\nimport { useSelector } from 'react-redux'\nimport '../../../node_modules/web-api-360/dist/MappyOutdoorView.css'\nimport s from './Outdoor.less'\nimport { navigateBack } from '../../store/history/history.actions'\nimport useEventCallback from '../utils/useEventCallback'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\n\nconst Outdoor = () => {\n const wrapper = useRef()\n const view = useRef()\n const [loaded, setLoaded] = useState(false)\n\n const isOutdoorDisplayed = useSelector(selectIsOutdoorDisplayed)\n const outdoorPanoramicId = useSelector(selectOutdoorPanoramicId)\n const outdoorTargetCoordinates = useSelector(selectOutdoorTargetCoordinates)\n const locale = useSelector(selectLocale)\n const execNavigateBack = useAction(navigateBack)\n\n const loadScript = () =>\n import(\n /* webpackChunkName: \"outdoor\" */ 'script-loader!../../../node_modules/web-api-360/dist/MappyOutdoorView.min'\n )\n\n /* Don’t use useEventCallback, nor useErrorBoundaryCallback, see NES-3215 */\n const debugKeyHandler = useEventCallback(event => {\n if (event.key === 'd') {\n view.current?.toggleDebug()\n }\n }, [])\n\n const listenKeyForDebug = () => document.body.addEventListener('keydown', debugKeyHandler)\n\n const stopListeningKeyForDebug = () => document.body.removeEventListener('keydown', debugKeyHandler)\n\n const hide = () => {\n execNavigateBack()\n setLoaded(false)\n }\n\n useEffect(() => {\n if (!loaded) return\n listenKeyForDebug()\n return stopListeningKeyForDebug\n }, [loaded])\n\n const createOutdoorView = () => {\n const { lat, lng } = outdoorTargetCoordinates\n view.current = new window.MappyOutdoor.View(wrapper.current, outdoorPanoramicId, {\n apikey: getApiKey(),\n domain: `${getDomain()}.net`,\n imgPath: `/assets/${window.__APP_VERSION__}/outdoor`,\n locale: getLocaleUnderscored(locale)\n })\n view.current.lookAt({ lat, lon: lng })\n }\n\n useEffect(() => {\n if (isOutdoorDisplayed) {\n loadScript()\n .then(createOutdoorView)\n .then(() => setLoaded(true))\n }\n }, [isOutdoorDisplayed])\n\n useEffect(() => {\n return () => hide\n }, [])\n\n if (!isOutdoorDisplayed) return null\n\n return (\n <>\n
\n
\n \n
\n \n )\n}\n\n// webpack:BrowserOnly\nexport default withEmptyFallbackErrorBoundary(Outdoor)\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"AVnKY\",\"active\":\"O3NAK\",\"closeBtn\":\"AtUdC\"};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"tUwQh\",\"borderless\":\"dMfiA\",\"categories\":\"e8FTY\",\"autoPromoButton\":\"FwtHk\"};","import classnames from 'classnames'\nimport React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectAdDataByAdId, selectPageIdForAdConfig } from '../../store/ad/ad.selectors'\nimport { selectCategorySegmentByCategoryId } from '../../store/poiassets/poiassets.selectors'\nimport DelayComponent from '../utils/DelayComponent'\nimport { useSelectorWithProps } from '../utils/react-redux'\nimport { getAdIdByAdName } from './AdConfigService'\nimport AdLoader from './AdLoader'\nimport { isEmptyObj } from '../../utils/object'\nimport s from './AdMenu.less'\n\nconst adName = 'menuthema'\n\nconst AdMenu = ({ categoryId }) => {\n const segment = useSelectorWithProps(selectCategorySegmentByCategoryId, { id: categoryId })\n const pageId = useSelector(selectPageIdForAdConfig)\n const adId = getAdIdByAdName(adName, pageId)\n const adData = useSelector(selectAdDataByAdId(adId))\n const { Menuthema } = adData || {}\n const { title, text, linkLabel, imgUrl, linkUrl } = Menuthema || {}\n const categorySelector = () => ({ segment })\n\n return (\n \n \n
\n {!isEmptyObj(adData) && (\n \n \n\n
\n
{title}
\n {text} {linkLabel}\n
\n
\n )}\n
\n
\n
\n )\n}\n\nexport default AdMenu\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"UAPRB\",\"linkWrapper\":\"jPfz6\",\"logo\":\"R8onm\",\"title\":\"uToUc\",\"message\":\"u1HvF\",\"label\":\"caeoa\",\"hidden\":\"cfUNZ\"};","import React from 'react'\nimport s from './MenuSubCategoriesGE.less'\nimport { selectSubCategoriesMenu } from '../../store/poiassets/poiassets.selectors'\nimport MenuSubCategoryItem from './MenuSubCategoryItem'\nimport MenuApplicationItem from './MenuApplicationItem'\nimport useTimeout from '../utils/useTimeout'\nimport usePublisherBarreCategorieTag from './usePublisherBarreCategorieTag'\nimport { useSelectorWithProps } from '../utils/react-redux'\nimport CategorySubMenuStyle from './CategorySubMenuStyle'\nimport classNames from 'classnames'\nimport AdMenu from '../advertising/AdMenu'\n\nconst MenuSubCategoriesGE = ({ categoryId, onMouseLeaveMenu }) => {\n const { subcategories, apps, color } = useSelectorWithProps(selectSubCategoriesMenu, { id: categoryId })\n const [setMouseOverTimeout, clearMouveOverTimeout] = useTimeout(150)\n\n usePublisherBarreCategorieTag(categoryId)\n\n if (!categoryId) return null\n\n const onMouseOver = e => {\n clearMouveOverTimeout()\n }\n\n const onMouseOut = e => {\n setMouseOverTimeout(() => {\n onMouseLeaveMenu()\n })\n }\n\n const columnCount = 2 + Number(subcategories.length > 5) + Number(apps.length > 5)\n\n return (\n
\n
\n
    \n {subcategories.map(({ id, iconId, label, rubricIds }) => (\n \n ))}\n
  • \n {apps.map(({ id, name, mob_roundImage }) => (\n \n ))}\n
\n \n
\n \n
\n )\n}\n\nexport default MenuSubCategoriesGE\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"d8pmR\",\"itemsWrapper\":\"M8_Gd\",\"items\":\"dUxyB\",\"columnBreak\":\"JqkZ_\"};","import React, { useEffect, useState } from 'react'\nimport s from './MenuCategoriesGE.less'\nimport { useSelector } from 'react-redux'\nimport { loadPoiAssetsConfiguration } from '../../store/poiassets/poiassets.actions'\nimport { selectCategoriesMenu } from '../../store/poiassets/poiassets.selectors'\nimport MenuSubCategoriesGE from './MenuSubCategoriesGE'\nimport MenuCategoryItem from './MenuCategoryItem'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport { withFrenchSite } from '../i18n/i18nSite'\nimport { withOnlyGE } from '../Device'\nimport { useAction } from '../utils/react-redux'\nimport { TAG_CLICK_CATEGORY_BAR } from '../../store/analytics/analytics.actionTypes'\nimport { APP_OR_SUBCAT_ID, CAT_ID } from '../analytics/ClickTagsService'\nimport { dispatchTag } from '../../store/analytics/analytics.actions'\nimport { navigateToSearchByCategory, navigateToPoisOnRouteByCategory } from '../../store/history/history.actions'\nimport useTimeout from '../utils/useTimeout'\n\nimport classNames from 'classnames'\nimport AutoPromoOpenButton from '../autopromo/AutoPromoOpenButton'\nimport analyticsConstants from '../analytics/analytics.constants'\nimport { selectIsPageElligibleForPoisOnRoute } from '../../store/history/history.selectors'\n\nexport const MenuCategoriesGE = () => {\n const [categoryId, setCategoryId] = useState()\n const execLoadPoiAssetsConfiguration = useAction(loadPoiAssetsConfiguration)\n const execNavigateToSmrByCategory = useAction(navigateToPoisOnRouteByCategory)\n\n useEffect(() => {\n execLoadPoiAssetsConfiguration()\n }, [execLoadPoiAssetsConfiguration])\n\n const categories = useSelector(selectCategoriesMenu)\n const isPageElligibleForPoisOnRoute = useSelector(selectIsPageElligibleForPoisOnRoute)\n const [setMouseOverTimeout, clearMouseOverTimeout] = useTimeout(100)\n\n const onMouseOver = categoryId => e => {\n setCategoryId(categoryId)\n }\n\n const onMouseOut = () => {\n unselectCategory()\n }\n\n const unselectCategory = () => {\n setCategoryId(null)\n }\n\n const onMenuMouseOver = e => {\n clearMouseOverTimeout()\n }\n\n const onMenuMouseOut = e => {\n setMouseOverTimeout(unselectCategory)\n }\n\n const execDispatchTag = useAction(dispatchTag)\n const execNavigateToSearchByCategory = useAction(navigateToSearchByCategory)\n\n const onCategoryClick = catId => e => {\n execDispatchTag({\n type: TAG_CLICK_CATEGORY_BAR,\n tagInfo: {\n [CAT_ID]: catId,\n [APP_OR_SUBCAT_ID]: 'all'\n }\n })\n\n if (isPageElligibleForPoisOnRoute) {\n execNavigateToSmrByCategory(catId)\n } else {\n execNavigateToSearchByCategory(catId)\n }\n unselectCategory()\n }\n return categories?.length ? (\n \n
    \n {categories.map(({ id, shortLabel, iconId, color }) => (\n \n ))}\n
\n {categoryId && }\n
\n \n
\n
\n ) : null\n}\n\nexport default withEmptyFallbackErrorBoundary(withFrenchSite(withOnlyGE(MenuCategoriesGE)))\n","import React from 'react'\nimport SVGIcon from '../../svg/SVGIcon'\nimport useEventCallback from '../../utils/useEventCallback'\nimport s from './CloseUserAreaButton.less'\nimport { useAction } from '../../utils/react-redux'\nimport { navigateBack } from '../../../store/history/history.actions'\n\nconst CloseUserAreaButton = () => {\n const execNavigateBack = useAction(navigateBack)\n const onClose = useEventCallback(execNavigateBack)\n\n return (\n
\n \n
\n )\n}\n\nexport default CloseUserAreaButton\n","// extracted by mini-css-extract-plugin\nexport default {\"closeBtn\":\"gYb_D\"};","import React from 'react'\nimport LogoMappy from './logo-mappy.svg'\nimport s from './LogoMappyImg.less'\n\nconst LogoMappyImg = () => \"Mappy\"\n\nexport default LogoMappyImg\n","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"opzFO\"};","import React from 'react'\nimport CloseUserAreaButton from '../shared/CloseUserAreaButton'\nimport s from './UserAreaAnonymous.less'\nimport welcomeUserAccount from './welcome-user-account.svg'\nimport UserLoginButton from '../UserLoginButton'\nimport { withUserNotConnected } from '../shared/withKeycloak'\nimport LogoMappyImg from '../../genericComponents/LogoMappyImg'\n\nconst UserAreaAnonymous = () => (\n
\n \n
\n
\n \n

\n Le compte \n

\n

c’est gratuit !

\n
    \n
  • Des itinéraires personnalisés
  • \n
  • Des infos durée et coût plus précises
  • \n
  • Mes adresses favorites sur le site et l’appli
  • \n
\n \n
\n
\n
\n)\n\nexport default withUserNotConnected(UserAreaAnonymous)\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"FPmb1\",\"content\":\"vJti8\",\"defaultScreen\":\"XyQLh\",\"title1\":\"qq91z\",\"title2\":\"nBhmk\",\"list\":\"WHWRs\",\"loginButton\":\"ZBlxr\"};","import classNames from 'classnames'\nimport React from 'react'\nimport s from './UserScreenContent.less'\n\nconst UserScreenContent = ({ children }) => {\n return
{children}
\n}\n\nexport default UserScreenContent\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"isc2_\"};","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { setUserUIScreen } from '../../../store/ui/ui.actions'\nimport { USER_SCREENS } from '../../../store/ui/ui.constants'\nimport { selectIsUserScreenDefault } from '../../../store/ui/ui.selectors'\nimport SVGIcon from '../../svg/SVGIcon'\nimport { useAction } from '../../utils/react-redux'\nimport useEventCallback from '../../utils/useEventCallback'\nimport s from './UserScreenHeader.less'\nimport classNames from 'classnames'\n\nconst UserScreenHeader = ({ children, rightChildren, noBar = false }) => {\n const isDefaultScreen = useSelector(selectIsUserScreenDefault)\n const execSetUserUIScreen = useAction(setUserUIScreen)\n\n const onBack = useEventCallback(() => execSetUserUIScreen(USER_SCREENS.default))\n\n return (\n
\n
\n {!isDefaultScreen && (\n
\n \n
\n )}\n
\n
{children}
\n
{rightChildren}
\n
\n )\n}\n\nexport default UserScreenHeader\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"r_ECQ\",\"noBar\":\"K91Zn\",\"left\":\"QIrjP\",\"right\":\"u8YOO\",\"title\":\"RQjDM\",\"back\":\"c8v2N\"};","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"X_Yxe\",\"favIcon\":\"J2fa4\",\"favori\":\"lxcKr\",\"actions\":\"wOAgJ\",\"actionButton\":\"NWSRB\",\"content\":\"YRmUN\",\"clickableContent\":\"PwNsM\",\"label\":\"dQmMn\",\"address\":\"q2wwJ\",\"updating\":\"LRqKn\"};","import React from 'react'\nimport s from './UserFavoriteItem.less'\nimport classnames from 'classnames'\nimport SVGIcon from '../../../svg/SVGIcon'\nimport ActionButton from '../../../genericComponents/buttons/ActionButton'\nimport Throbber from '../../../loading/Throbber'\nimport { navigateTo } from '../../../../store/history/history.actions'\nimport useEventCallback from '../../../utils/useEventCallback'\nimport { useAction } from '../../../utils/react-redux'\nimport { ROUTE_ADDRESS, ROUTE_SEO_GEOENTITY } from '../../../../routes'\nimport { setCurrentSearch } from '../../../../store/ui/ui.actions'\nimport { resetGeoentities } from '../../../../store/geoentity/geoentity.actions'\nimport TagActionButton from '../../../genericComponents/TagActionButton'\n\nconst FavoriteContent = ({ label, address, tagData }) => {\n return (\n \n {label ? (\n <>\n
{label}
\n
{address}
\n \n ) : (\n
{address}
\n )}\n
\n )\n}\n\nexport const UserFavoriteItem = ({\n poiId,\n uuid,\n label,\n address,\n favIcon,\n action,\n actionIcon,\n allowEmpty = false,\n editTagData,\n gotoTagData\n}) => {\n const updating = !allowEmpty && !uuid\n const execNavigateTo = useAction(navigateTo)\n const execSetCurrentSearch = useAction(setCurrentSearch)\n const execResetGeoentities = useAction(resetGeoentities)\n\n const onItemClick = useEventCallback(() => {\n if (!uuid) {\n action()\n } else {\n execResetGeoentities()\n if (poiId) {\n execNavigateTo({ route: ROUTE_SEO_GEOENTITY, routeOptions: { geoentityId: poiId } })\n } else {\n execSetCurrentSearch(address)\n execNavigateTo({ route: ROUTE_ADDRESS, routeOptions: { location: address } })\n }\n }\n }, [uuid, label, address, poiId])\n\n const onButtonClick = useEventCallback(() => {\n action(uuid)\n })\n\n return (\n
\n
\n \n
\n \n
\n {updating ? (\n \n ) : (\n uuid && (\n \n \n \n )\n )}\n
\n
\n )\n}\n\nexport default UserFavoriteItem\n","import React, { useCallback } from 'react'\nimport { useSelector } from 'react-redux'\nimport { deleteUserFavorite } from '../../../../store/userAccount/userAccount.actions'\nimport {\n selectUserFavorites,\n selectUserFavoritesLimitNotReached\n} from '../../../../store/userAccount/userAccount.selectors'\nimport RectangleActionButton, {\n COLOR_GREEN_EMPTY,\n SIZE_NORMAL\n} from '../../../genericComponents/buttons/RectangleActionButton'\nimport { useAction } from '../../../utils/react-redux'\nimport UserScreenContent from '../../shared/UserScreenContent'\nimport UserScreenHeader from '../../shared/UserScreenHeader'\nimport UserFavoriteItem from './UserFavoriteItem'\nimport { setUserUIScreen } from '../../../../store/ui/ui.actions'\nimport { USER_SCREENS } from '../../../../store/ui/ui.constants'\nimport { FAVORITE_TYPES, HOME_ICON, WORK_ICON } from '../../UserAccount.constants'\nimport { useT } from '../../../i18n/T'\n\nimport UserFavoriteError from './UserFavoriteError'\nimport { ACTION, TYPE } from '../../../analytics/ClickTagsService'\nimport { TAG_CLICK_USER_FAVORITES_LIST } from '../../../../store/analytics/analytics.actionTypes'\nimport analyticsConstants from '../../../analytics/analytics.constants'\n\nconst buildTagData = (type, action) => ({\n type: TAG_CLICK_USER_FAVORITES_LIST,\n tagInfo: { [ACTION]: action, [TYPE]: type }\n})\n\nconst UserFavorites = () => {\n const { home, work, others } = useSelector(selectUserFavorites) || {}\n const execDeleteFavorite = useAction(deleteUserFavorite)\n const execSetUserUIScreen = useAction(setUserUIScreen)\n\n const manageFavorite = type => execSetUserUIScreen(USER_SCREENS.manageFavorite, { type })\n const deleteFavorite = uuid => execDeleteFavorite({ uuid })\n\n const canStillAddFavorite = useSelector(selectUserFavoritesLimitNotReached)\n\n const renderAddBtn = useCallback(() => {\n if (canStillAddFavorite) {\n return (\n manageFavorite(FAVORITE_TYPES.OTHER)}\n tagData={buildTagData(\n analyticsConstants.user.favorites.type.other,\n analyticsConstants.user.favorites.action.listAdd\n )}\n />\n )\n }\n }, [manageFavorite])\n\n return (\n <>\n {'Mes lieux favoris'}\n \n \n manageFavorite(FAVORITE_TYPES.HOME)}\n label={useT('useraccount.favorite.home')}\n actionIcon={'crayon-v6'}\n allowEmpty\n editTagData={buildTagData(\n analyticsConstants.user.favorites.type.home,\n analyticsConstants.user.favorites.action.listEdit\n )}\n gotoTagData={buildTagData(\n analyticsConstants.user.favorites.type.home,\n analyticsConstants.user.favorites.action.listView\n )}\n />\n manageFavorite(FAVORITE_TYPES.WORK)}\n label={useT('useraccount.favorite.work')}\n actionIcon={'crayon-v6'}\n allowEmpty\n editTagData={buildTagData(\n analyticsConstants.user.favorites.type.work,\n analyticsConstants.user.favorites.action.listEdit\n )}\n gotoTagData={buildTagData(\n analyticsConstants.user.favorites.type.work,\n analyticsConstants.user.favorites.action.listView\n )}\n />\n {(others || []).map((other, idx) => (\n \n ))}\n \n \n )\n}\n\nexport default UserFavorites\n","import React, { useEffect } from 'react'\nimport { fetchTravelOptionsConfig } from '../../../../store/travelOptions/travelOptions.actions'\nimport { setUserUIScreen } from '../../../../store/ui/ui.actions'\nimport { USER_SCREENS } from '../../../../store/ui/ui.constants'\nimport { withEmptyFallbackErrorBoundary } from '../../../error/EmptyFallbackErrorBoundary'\nimport RectangleActionButton, { COLOR_GREEN, SIZE_BIG } from '../../../genericComponents/buttons/RectangleActionButton'\nimport TravelOptions from '../../../travelOptions/TravelOptions'\nimport { useAction } from '../../../utils/react-redux'\nimport useEventCallback from '../../../utils/useEventCallback'\nimport UserScreenContent from '../../shared/UserScreenContent'\nimport UserScreenHeader from '../../shared/UserScreenHeader'\nimport s from './UserTravelOptions.less'\n\nconst UserTravelOptions = () => {\n const execFetchTravelOptionsConfig = useAction(fetchTravelOptionsConfig)\n const execSetUserUIScreen = useAction(setUserUIScreen)\n\n useEffect(() => {\n execFetchTravelOptionsConfig()\n }, [])\n\n const onValidate = useEventCallback(() => execSetUserUIScreen(USER_SCREENS.default))\n\n return (\n <>\n {'Mes options de déplacement'}\n \n
\n \n
\n \n
\n
\n
\n \n )\n}\n\nexport default withEmptyFallbackErrorBoundary(UserTravelOptions)\n","// extracted by mini-css-extract-plugin\nexport default {\"optionsWrapper\":\"j6dZ1\",\"ValidateArea\":\"MGGTW\",\"ValidateButton\":\"pZIUC\"};","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"jz8gY\",\"content\":\"zqsGk\",\"avatar\":\"SSjWo\",\"username\":\"PPXlE\",\"logout\":\"Lp1YC\",\"userMenu\":\"uVTXf\",\"userMenuFooter\":\"JU6ZV\",\"userMenuItem\":\"M2Vc3\",\"userMenuItemAccount\":\"jntOS\",\"userMenuItemIcon\":\"DShSd\",\"userMenuItemLabel\":\"CZ9sE\",\"userMenuItemArrow\":\"UcCdo\",\"userMenuLogoutIcon\":\"sjI3b\"};","import { useKeycloak } from '@react-keycloak/web'\nimport React from 'react'\nimport useEventCallback from '../../../utils/useEventCallback'\nimport TagActionButton from '../../../genericComponents/TagActionButton'\nimport { TAG_CLICK_USER_LOGOUT_BUTTON } from '../../../../store/analytics/analytics.actionTypes'\nimport { useSelector } from 'react-redux'\nimport { selectPrevFullRouteNonPageLess } from '../../../../store/history/history.selectors'\n\nconst UserLogout = ({ children }) => {\n const { keycloak } = useKeycloak()\n const lastFullRoute = useSelector(selectPrevFullRouteNonPageLess)\n\n const onLogout = useEventCallback(() => {\n keycloak.logout({ redirectUri: `${location.origin}${lastFullRoute}` })\n }, [lastFullRoute])\n\n return (\n \n {children}\n \n )\n}\n\nexport default UserLogout\n","import { noop } from '../../../../utils/function'\nimport React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectUserName } from '../../../../store/userAccount/userAccount.selectors'\nimport SVGIcon from '../../../svg/SVGIcon'\nimport { useAction } from '../../../utils/react-redux'\nimport UserPicture from '../../UserPicture'\nimport s from './UserMenu.less'\nimport UserLogout from './UserLogout'\nimport { setUserUIScreen } from '../../../../store/ui/ui.actions'\nimport { USER_SCREENS } from '../../../../store/ui/ui.constants'\nimport UserScreenContent from '../../shared/UserScreenContent'\nimport CloseUserAreaButton from '../../shared/CloseUserAreaButton'\nimport { useKeycloak } from '@react-keycloak/web'\nimport { loadFavorites, loadTravelOptions } from '../../../../store/userAccount/userAccount.actions'\nimport SERVICES from '../../../../services.constants'\nimport { getService } from '../../../../parameters'\nimport TagActionLink from '../../../genericComponents/TagActionLink'\nimport { TAG_CLICK_USER_ACCOUNT_BUTTON } from '../../../../store/analytics/analytics.actionTypes'\n\nconst UserMenuItem = ({ action = noop, icon, label }) => {\n return (\n
  • \n \n
    {label}
    \n \n
  • \n )\n}\n\nconst UserMenuAccount = ({ url, label, tagType }) => {\n return (\n \n {label}\n \n )\n}\n\nconst UserMenu = () => {\n const userName = useSelector(selectUserName)\n const execSetUserUIScreen = useAction(setUserUIScreen)\n const execLoadFavorites = useAction(loadFavorites)\n const execLoadTravelOptions = useAction(loadTravelOptions)\n const { keycloak } = useKeycloak()\n const accountUrl = getService(\n SERVICES.KEYCLOAK,\n `realms/mappy/mappy_account-redirection-service?token=${\n keycloak.token\n }&referrer=web-login&logout_redirect_uri=${encodeURIComponent(\n window.location.href\n )}&delete_redirect_uri=${encodeURIComponent(window.location.origin)}`\n ).url\n\n const gotoTravelOptionsScreen = () => {\n execLoadTravelOptions()\n return execSetUserUIScreen(USER_SCREENS.travelOptions)\n }\n\n const gotoFavoritesScreen = () => {\n execLoadFavorites()\n return execSetUserUIScreen(USER_SCREENS.favorites)\n }\n\n return (\n
    \n \n \n
    \n
    \n \n
    \n
    {userName}
    \n
      \n \n \n
    \n
    \n \n \n
    \n \n \n \n Se déconnecter\n
    \n
    \n
    \n
    \n
    \n
    \n )\n}\n\nexport default UserMenu\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"TYSMm\",\"search\":\"gEZJf\",\"suggest\":\"UKfJ2\",\"back\":\"WMONS\",\"form\":\"bY23q\"};","import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react'\nimport s from './FavoriteInput.less'\nimport classNames from 'classnames'\nimport { suggestServiceCtx } from '../../../../store/suggest/suggest.service.constants'\nimport { setSuggestInputValue, suggest } from '../../../../store/suggest/suggest.actions'\nimport { useAction } from '../../../utils/react-redux'\nimport useDebounce from '../../../utils/useDebounce'\n\nconst FavoriteInput = forwardRef((props, ref) => {\n const { value, onChange, className, placeholder } = props\n\n const suggestFilterType = suggestServiceCtx.filter.places\n const execSuggest = useAction(suggest)\n const execSetInputValue = useAction(setSuggestInputValue)\n const [cancelSuggest, setCancelSuggest] = useState(false)\n const inputRef = useRef()\n const debouncedValue = useDebounce(value, 250)\n const hasDebouncedValueChangeOnce = useRef(false) // to ignore suggest on first render\n\n const onSubmit = useCallback(() => {\n execSetInputValue(value)\n setCancelSuggest(true)\n return Promise.resolve().then(() => blur())\n }, [value])\n\n useImperativeHandle(ref, () => {\n return { onSubmit }\n })\n\n const doSuggest = val => {\n if (cancelSuggest) {\n setCancelSuggest(false)\n return Promise.resolve()\n }\n execSetInputValue(val)\n return execSuggest({ terms: val, suggestFilterType })\n }\n\n useEffect(() => {\n if (hasDebouncedValueChangeOnce.current) {\n doSuggest(debouncedValue)\n }\n hasDebouncedValueChangeOnce.current = true\n }, [debouncedValue])\n\n const handleChange = event => {\n onChange && onChange({ value: event.target.value })\n }\n\n const handleFocus = e => {\n e.target.select()\n doSuggest(value)\n }\n\n const blur = () => inputRef && inputRef.current.blur()\n\n return (\n
    \n \n
    \n )\n})\n\nFavoriteInput.displayName = 'FavoriteInput'\nexport default FavoriteInput\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"mCyYc\",\"field\":\"AP75X\"};","import React, { useState } from 'react'\nimport s from './UserManageFavorite.less'\nimport SVGIcon from '../../../svg/SVGIcon'\nimport { useAction } from '../../../utils/react-redux'\nimport { setUserUIScreen } from '../../../../store/ui/ui.actions'\nimport { USER_SCREENS } from '../../../../store/ui/ui.constants'\nimport SuggestContent from '../../../suggest/SuggestContent'\nimport { useSelector } from 'react-redux'\nimport { selectFavoritePlaceholder, selectUserUIScreenParams } from '../../../../store/ui/ui.selectors'\nimport { selectUserFavorites } from '../../../../store/userAccount/userAccount.selectors'\nimport { FAVORITE_TYPES } from '../../UserAccount.constants'\nimport FavoriteInput from './FavoriteInput'\nimport { equalsIgnoreCase, removeHtmlEmSpanAndITags } from '../../../../utils/string'\nimport { addOtherFavorite, addOrEditHomeOrWorkFavorite } from '../../../../store/userAccount/userAccount.actions'\nimport { pick } from '../../../../utils/object'\n\nconst UserManageFavorite = () => {\n const execSetUserUIScreen = useAction(setUserUIScreen)\n const navigateBack = () => execSetUserUIScreen(USER_SCREENS.favorites)\n const { type } = useSelector(selectUserUIScreenParams)\n const favorites = useSelector(selectUserFavorites)\n const saveOther = useAction(addOtherFavorite)\n const saveHomeOrWork = useAction(addOrEditHomeOrWorkFavorite)\n const initialValue = favorites?.[type]?.address ?? ''\n const [value, setValue] = useState(initialValue)\n\n const placeholder = useSelector(selectFavoritePlaceholder)\n\n const onSuggestClicked = suggestion => {\n const isPoi = suggestion.type === 'poi'\n const address = removeHtmlEmSpanAndITags(isPoi ? suggestion.labels[1] : suggestion.labels.join(' '))\n\n if (equalsIgnoreCase(type, FAVORITE_TYPES.OTHER)) {\n const favorite = {\n ...(isPoi ? { label: removeHtmlEmSpanAndITags(suggestion.labels[0]) } : {}),\n address,\n type\n }\n saveOther(favorite)\n } else {\n const favorite = {\n ...pick(favorites?.[type] ?? {}, ['uuid', 'showHome']),\n address,\n type\n }\n saveHomeOrWork(favorite)\n }\n navigateBack()\n }\n\n const onChange = ({ value: val }) => {\n setValue(val)\n }\n\n return (\n
    \n
    \n
    \n \n
    \n
    e.preventDefault()}>\n \n \n
    \n
    \n \n
    \n
    \n )\n}\n\nexport default UserManageFavorite\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectUserUIScreen } from '../../../store/ui/ui.selectors'\nimport { USER_SCREENS } from '../../../store/ui/ui.constants'\nimport UserFavorites from './userFavorites/UserFavorites'\nimport UserTravelOptions from './userTravelOptions/UserTravelOptions'\nimport UserMenu from './userMenu/UserMenu'\nimport UserManageFavorite from './userFavorites/UserManageFavorite'\nimport { withUserConnected } from '../shared/withKeycloak'\n\nconst UserAreaConnected = () => {\n const screen = useSelector(selectUserUIScreen)\n\n switch (screen) {\n case USER_SCREENS.favorites:\n return \n case USER_SCREENS.manageFavorite:\n return \n case USER_SCREENS.travelOptions:\n return \n case USER_SCREENS.default:\n default:\n return \n }\n}\n\nexport default withUserConnected(UserAreaConnected)\n","import { useEffect, useRef } from 'react'\nimport { useKeycloak } from '@react-keycloak/web'\nimport { useAction } from '../utils/react-redux'\nimport { setToken, setUserConnected, setUserNotConnected } from '../../store/userAccount/userAccount.actions'\nimport { setUserUIScreen } from '../../store/ui/ui.actions'\nimport { USER_SCREENS } from '../../store/ui/ui.constants'\nimport { pick } from '../../utils/object'\nimport debug from 'debug'\nimport { USER_ID_LEGACY, USER_ID_SUB } from './UserAccount.constants'\nconst d = debug('keycloak')\n\nexport const EXPIRATION_SECONDS = 60\n\nexport default function useKeycloakEngine() {\n const { keycloak, initialized } = useKeycloak()\n const timeoutRef = useRef()\n\n const execSetUserConnected = useAction(setUserConnected)\n const execSetUserNotConnected = useAction(setUserNotConnected)\n const execSetUserScreen = useAction(setUserUIScreen)\n const execSetToken = useAction(setToken)\n\n useEffect(() => {\n if (initialized) {\n if (keycloak.authenticated === true) {\n const token = keycloak.token\n d('keycloak.idTokenParsed', keycloak.idTokenParsed)\n const identity = pick(keycloak.idTokenParsed, ['name', 'picture', 'email', USER_ID_LEGACY, USER_ID_SUB])\n d('connected, token', token, 'idTokenParsed', keycloak.idTokenParsed)\n execSetUserConnected({ token, identity })\n } else if (keycloak.authenticated === false) {\n d('not connected')\n execSetUserNotConnected()\n }\n execSetUserScreen(USER_SCREENS.default)\n }\n }, [initialized, keycloak.authenticated])\n\n const updateAndSaveToken = () =>\n keycloak\n .updateToken(EXPIRATION_SECONDS)\n .then(hasTokenBeenRefreshed => {\n d('updateToken - hasTokenBeenRefreshed', hasTokenBeenRefreshed, 'new token', keycloak.token)\n execSetToken(keycloak.token)\n })\n .catch(e => {\n d('updateToken failed - disconnect user', e)\n execSetUserNotConnected()\n })\n\n useEffect(() => {\n const checkIfTokenWillExpire = () => {\n if (keycloak.authenticated) {\n d('checkIfTokenWillExpire')\n if (keycloak.isTokenExpired(EXPIRATION_SECONDS)) {\n d('isTokenExpired:true')\n updateAndSaveToken()\n }\n timeoutRef.current = setTimeout(checkIfTokenWillExpire, EXPIRATION_SECONDS * 1000)\n }\n }\n if (keycloak.authenticated) {\n timeoutRef.current = setTimeout(checkIfTokenWillExpire, EXPIRATION_SECONDS * 1000)\n }\n return () => {\n clearTimeout(timeoutRef)\n }\n }, [keycloak.authenticated, timeoutRef])\n\n useEffect(() => {\n keycloak.onTokenExpired = () => {\n d('token expired')\n updateAndSaveToken()\n }\n }, [])\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"rbPGM\",\"displayed\":\"nRb7m\",\"frame\":\"Lo3bS\"};","import React from 'react'\nimport ContentLoader from 'react-content-loader'\nimport { withUserUnknown } from './shared/withKeycloak'\nimport CloseUserAreaButton from './shared/CloseUserAreaButton'\n\nconst UserAreaPlaceHolder = () => {\n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n )\n}\n\nexport default withUserUnknown(UserAreaPlaceHolder)\n","import classNames from 'classnames'\nimport React from 'react'\nimport { Helmet } from 'react-helmet'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\nimport { selectIsUserAccountEnabled } from '../../store/userAccount/userAccount.selectors'\nimport useUIDisplay from '../ui/useUIDisplay'\nimport { withEverySelectorTruthy } from '../utils/react-redux'\nimport UserAreaAnonymous from './anonymous/UserAreaAnonymous'\nimport UserAreaConnected from './connected/UserAreaConnected'\nimport useKeycloakEngine from './useKeycloakEngine'\nimport s from './UserArea.less'\nimport UserAreaPlaceHolder from './UserAreaPlaceHolder'\n\n// webpack:BrowserOnly\nconst UserArea = () => {\n const { isUIDisplayed } = useUIDisplay(UI_ELEMENTS.USER)\n useKeycloakEngine()\n\n return (\n <>\n \n \n \n
    \n \n \n \n
    \n \n )\n}\n\nexport default withEverySelectorTruthy(selectIsUserAccountEnabled)(UserArea)\n","// extracted by mini-css-extract-plugin\nexport default {\"carrouselSection\":\"vQKHy\",\"carrouselTextSection\":\"ny_lL\",\"sectionTitle\":\"eejTS\",\"popinList\":\"Sat9v\",\"popinItem\":\"JuNzp\",\"icon\":\"dzcIB\",\"bullet\":\"ynt7H\",\"highlightedBullet\":\"XxGga\",\"carrouselBullets\":\"OFaFy\",\"arrowContainer\":\"ycsWM\",\"navArrow\":\"nCvma\",\"imageCarrousel\":\"Beuf0\",\"galleryWrapper\":\"zvi1K\"};","import React, { useRef, useState } from 'react'\nimport s from './UserAccountIncentiveCarrousel.less'\nimport ImageGallery from '../../genericComponents/ImageGallery'\nimport { withOnlyGE } from '../../Device'\nimport favoriteAddressesImg from './favorite_addresses.png'\nimport favoriteAddressesImgWebp from './favorite_addresses.webp'\nimport myAlertsImg from './my_alerts.png'\nimport myAlertsWebp from './my_alerts.webp'\nimport myOptionsImg from './my_options.png'\nimport myOptionsWebp from './my_options.webp'\nimport tripPriceImg from './trip_price.png'\nimport tripPriceWebp from './trip_price.webp'\nimport SVGIcon from '../../svg/SVGIcon'\n\nconst imageList = [\n {\n alt: 'Coût des mes trajets',\n original: tripPriceImg,\n srcSet: [tripPriceWebp]\n },\n {\n alt: 'Mes adresses favorites',\n original: favoriteAddressesImg,\n srcSet: [favoriteAddressesImgWebp]\n },\n {\n alt: 'Mes options de déplacement',\n original: myOptionsImg,\n srcSet: [myOptionsWebp]\n },\n {\n alt: 'Mes alertes',\n original: myAlertsImg,\n srcSet: [myAlertsWebp]\n }\n]\n\nexport const UserAccountIncentiveCarrousel = withOnlyGE(() => {\n const [textIndex, setTextIndex] = useState(0)\n const galleryRef = useRef()\n\n const onBeforeSlide = nextIndex => {\n setTextIndex(nextIndex)\n }\n\n /*\n Calling `pause` before `slideToIndex` allows to reset the `slideInterval`\n So the `autoplay` won't use the remaining time but will reset it before sliding\n */\n const goToPreviousSlide = () => {\n galleryRef.current.pause()\n galleryRef.current.slideToIndex(galleryRef.current.getCurrentIndex() - 1)\n galleryRef.current.play()\n }\n\n const goToNextSlide = () => {\n galleryRef.current.pause()\n galleryRef.current.slideToIndex(galleryRef.current.getCurrentIndex() + 1)\n galleryRef.current.play()\n }\n\n const isBulletHighlighted = bulletIndex => (textIndex === bulletIndex ? s.highlightedBullet : s.bullet)\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n {textIndex === 0 && (\n
    \n

    Je calcule le coût exact de mes trajets

    \n
      \n
    • \n \n Prix du péage selon le véhicule\n
    • \n
    • \n \n Consommation en carburant\n
    • \n
    \n
    \n )}\n {textIndex === 1 && (\n
    \n

    Je trouve en un clic mes adresses favorites

    \n
      \n
    • \n \n Maison\n
    • \n
    • \n \n Travail\n
    • \n
    • \n \n Resto préféré...\n
    • \n
    \n
    \n )}\n {textIndex === 2 && (\n
    \n

    Je retrouve mes options sur le site et l’appli mobile

    \n
      \n
    • \n \n Type de véhicule\n
    • \n
    • \n \n Prix du carburant\n
    • \n
    • \n \n Vitesse de marche ou à vélo\n
    • \n
    \n
    \n )}\n {textIndex === 3 && (\n
    \n

    Je suis alerté des perturbations trafic

    \n
      \n
    • Aujourd’hui sur l’appli et demain sur le site web
    • \n
    \n
    \n )}\n
    \n \n \n \n \n
    \n
    \n )\n})\n","import React, { useEffect } from 'react'\nimport s from './UserAccountIncentivePopin.less'\nimport { useAction } from '../../utils/react-redux'\nimport Modal from '../../genericComponents/Modal'\nimport { selectShouldDisplayUserAccountIncentivePopin } from '../../../store/userAccount/userAccount.selectors'\nimport useModal from '../../ui/useModal'\nimport { useSelector } from 'react-redux'\nimport { UserAccountIncentiveCarrousel } from './UserAccountIncentiveCarrousel'\nimport { MODAL_IDS } from '../../../store/ui/ui.constants'\nimport useEventCallback from '../../utils/useEventCallback'\nimport SVGIcon from '../../svg/SVGIcon'\nimport UserLoginButton from '../UserLoginButton'\nimport { INCENTIVE_NAME } from './incentive.constants'\nimport { isPE, withOnlyPE } from '../../Device'\nimport incentiveIllustration from '../anonymous/welcome-user-account.svg'\nimport { withUserNotConnected } from '../shared/withKeycloak'\nimport { dispatchTag } from '../../../store/analytics/analytics.actions'\nimport { TAG_MULTIPATH_CTA } from '../../../store/analytics/analytics.actionTypes'\nimport { PUB_TAG } from '../../analytics/PublisherTagsService'\nimport LogoMappyImg from '../../genericComponents/LogoMappyImg'\n\n// webpack:BrowserOnly\nconst UserAccountIncentivePopin = () => {\n const shouldDisplayPopin = useSelector(selectShouldDisplayUserAccountIncentivePopin)\n const { displayModal, hideModal, isModalDisplayed } = useModal(MODAL_IDS.USER_ACCOUNT_INCENTIVE_POPIN)\n const execDispatchTag = useAction(dispatchTag)\n\n const onPopinClose = useEventCallback(hideModal)\n\n useEffect(() => {\n if (shouldDisplayPopin) {\n displayModal()\n }\n }, [shouldDisplayPopin])\n\n useEffect(() => {\n if (!isModalDisplayed) return\n\n execDispatchTag({\n type: TAG_MULTIPATH_CTA,\n tagInfo: { tag: PUB_TAG.PUB_COMPTE_PERSO_INCITATION, Incitation: INCENTIVE_NAME.incitationPrincipale },\n isImpression: true\n })\n }, [isModalDisplayed])\n\n return (\n \n
    \n
    \n {isPE() && }\n

    \n Le compte \n

    \n

    c’est gratuit !

    \n \n \n
    \n
    \n \n
    \n \n
    \n
    \n )\n}\n\nconst SmallScreenText = withOnlyPE(() => {\n return (\n
      \n
    • Des itinéraires personnalisés
    • \n
    • Des infos durée et coût plus précises
    • \n
    • Mes adresses favorites sur le site et l’appli
    • \n
    \n )\n})\n\nexport default withUserNotConnected(UserAccountIncentivePopin)\n","// extracted by mini-css-extract-plugin\nexport default {\"popin\":\"En97Z\",\"connectionSection\":\"MrY0e\",\"title1\":\"QGGz5\",\"title2\":\"KTMCC\",\"onCloseButton\":\"quH5P\",\"list\":\"PMlkc\",\"incentiveIllustration\":\"h5JvH\"};","import React from 'react'\nimport classNames from 'classnames'\nimport { createSelector } from 'reselect'\nimport { PAGE_CLASSES } from '../../routes/pageClasses.constants'\nimport CMPPlaceholder from '../cmp/CMPPlaceholder'\nimport Outdoor from '../outdoor/Outdoor'\nimport MenuCategoriesGE from '../menu/MenuCategoriesGE'\nimport { useSelector } from 'react-redux'\nimport { selectIsMapFullScreen } from '../../store/map/map.selectors'\nimport { isUIElementDisplayed } from '../../store/ui/ui.selectors'\nimport UserArea from '../UserAccount/UserArea'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\nimport UserAccountIncentivePopin from '../UserAccount/connectionIncentive/UserAccountIncentivePopin'\n\nconst getPageSpecificClasses = createSelector(\n (store, props) => props.pageClassManager && props.pageClassManager(store, props),\n customClasses => customClasses || []\n)\n\nconst getCommonClasses = createSelector(\n selectIsMapFullScreen,\n isUIElementDisplayed(UI_ELEMENTS.POPIN),\n isUIElementDisplayed(UI_ELEMENTS.SUGGEST),\n isUIElementDisplayed(UI_ELEMENTS.MENU_PE),\n isUIElementDisplayed(UI_ELEMENTS.MAP_TOOLS_PE),\n (isMapFullScreen, isPopinDisplayed, isSuggestDisplayed, isMenuPEDisplayed, isMapToolsPEDisplayed) => [\n isMapFullScreen && PAGE_CLASSES.withFullscreenMap,\n isPopinDisplayed && PAGE_CLASSES.withDetail,\n isSuggestDisplayed && PAGE_CLASSES.withSuggest,\n isMenuPEDisplayed && PAGE_CLASSES.withMenuPEDisplayed,\n isMapToolsPEDisplayed && PAGE_CLASSES.withMapToolsPEDisplayed\n ]\n)\n\nexport default function Page({ cssClasses = [], children, ...props }) {\n const commonClasses = useSelector(state => getCommonClasses(state, props))\n const pageSpecificClasses = useSelector(state => getPageSpecificClasses(state, props))\n const className = classNames(...cssClasses, ...commonClasses, ...pageSpecificClasses)\n\n return (\n
    \n \n \n \n \n \n {children}\n
    \n )\n}\n","import React, { useRef, useCallback, useEffect, useContext } from 'react'\nimport s from './ResponsiveScrollableWrapper.less'\nimport { isGE } from '../../Device'\n\nexport const ScrollContext = React.createContext()\n\nexport const useScrollContext = () => useContext(ScrollContext)\n\nconst TOP = 0\n\nconst ResponsiveScrollableWrapper = ({ children }) => {\n const scrollableElementRef = useRef()\n\n const getScrollValue = useCallback(() => {\n return isGE() ? scrollableElementRef?.current?.scrollTop ?? TOP : document.querySelector('html').scrollTop\n }, [])\n\n const setScrollValue = useCallback(value => {\n if (isGE()) {\n if (scrollableElementRef?.current) {\n scrollableElementRef.current.scrollTop = value\n }\n } else {\n document.querySelector('html').scrollTop = value\n document.querySelector('body').scrollTop = value\n }\n }, [])\n\n const scrollTo = useCallback((scrollGoal, animate = false) => {\n if (!animate) return setScrollValue(scrollGoal)\n\n let now0 = null\n const scroll0 = getScrollValue()\n const scrollDelta = scrollGoal - scroll0\n const duration = 500\n const step = now => {\n if (now0 === null) now0 = now\n const t = now - now0\n const scrollPos = scroll0 + scrollDelta * Math.sin(((Math.PI / 2) * t) / duration)\n if (t < duration) {\n setScrollValue(scrollPos)\n requestAnimationFrame(step)\n } else {\n setScrollValue(scrollGoal)\n }\n }\n requestAnimationFrame(step)\n }, [])\n\n const scrollTop = useCallback(\n animate => {\n scrollTo(TOP, animate)\n },\n [scrollTo]\n )\n\n useEffect(() => {\n scrollTop()\n return () => scrollTop()\n }, [])\n\n const addScrollListener = useCallback(fn => {\n const el = isGE() ? scrollableElementRef?.current : document\n if (el) el.addEventListener('scroll', fn)\n }, [])\n\n const removeScrollListener = useCallback(fn => {\n const el = isGE() ? scrollableElementRef?.current : document\n if (el) el.removeEventListener('scroll', fn)\n }, [])\n\n const checkIfTargetIsVisible = useCallback((parent, child) => {\n if (!parent || !child) return false\n\n const targetTop = child.offsetTop\n const totalScrollHeight = isGE() ? parent.offsetParent.clientHeight : window.innerHeight\n const scrollValue = getScrollValue()\n\n const alreadyVisible = targetTop < totalScrollHeight\n const scrolledUntilTarget = scrollValue > targetTop - totalScrollHeight\n return alreadyVisible || scrolledUntilTarget\n }, [])\n\n const providerValue = {\n scrollTop,\n scrollTo,\n getScrollValue,\n addScrollListener,\n removeScrollListener,\n checkIfTargetIsVisible\n }\n\n return (\n
    \n {children}\n
    \n )\n}\n\nexport default ResponsiveScrollableWrapper\n","// extracted by mini-css-extract-plugin\nexport default {\"responsiveScrollableWrapper\":\"_6M6JB\"};","import React from 'react'\nimport s from './StatusMessage.less'\nimport classnames from 'classnames'\n\nconst StatusMessage = ({ message, visible = false, className }) => {\n return (\n
    \n {message}\n
    \n )\n}\n\nexport default StatusMessage\n","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"IHXKv\",\"statusVisible\":\"t9Dhq\",\"statusText\":\"l6dSx\"};","import { useEffect, useState } from 'react'\nimport useTimeout from '../utils/useTimeout'\n\nexport function useTemporaryVisible(timeout = 3000) {\n const [visible, setVisible] = useState()\n\n const [setAction, clear] = useTimeout(timeout)\n\n useEffect(() => {\n if (visible) {\n clear()\n setAction(() => {\n setVisible(false)\n })\n }\n }, [visible])\n\n return [visible, setVisible]\n}\n","import React from 'react'\nimport classNames from 'classnames'\nimport { navigateBack } from '../../store/history/history.actions'\nimport s from './Header.less'\nimport SVGIcon from '../svg/SVGIcon'\nimport { useAction } from '../utils/react-redux'\nimport chevron from './chevron.svg'\n\nconst BackButton = () => {\n const execNavigateBack = useAction(navigateBack)\n\n return (\n
    execNavigateBack()}>\n \n
    \n )\n}\n\nexport default BackButton\n","import classnames from 'classnames'\nimport React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectGeoentityActiveFilter } from '../../store/geoentity/geoentity.selectors'\nimport s from './SubHeader.less'\n\nconst SubHeader = ({ children }) => {\n const selectedActiveFilter = useSelector(selectGeoentityActiveFilter)\n\n return
    {children}
    \n}\n\nexport default SubHeader\n","// extracted by mini-css-extract-plugin\nexport default {\"subHeader\":\"_ZRNs\",\"borderless\":\"alqn9\"};","import React, { useCallback } from 'react'\nimport s from './UniverseButton.less'\nimport classNames from 'classnames'\nimport SVGIcon from '../svg/SVGIcon'\nimport { navigateTo } from '../../store/history/history.actions'\nimport { useAction } from '../utils/react-redux'\n\nexport default function UniverseButton(props) {\n const { url, text, active, link, route, routeOptions, onClick } = props\n\n const execNavigateTo = useAction(navigateTo)\n\n const onButtonClick = useCallback(\n e => {\n e.preventDefault()\n execNavigateTo({ route, routeOptions })\n },\n [execNavigateTo, route, routeOptions]\n )\n\n return (\n \n
    \n \n
    \n
    {text}
    \n
    \n )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"s54Ej\",\"button\":\"k0HC1\",\"active\":\"zMual\",\"text\":\"pBvWr\"};","import React from 'react'\nimport s from './UserButton.less'\nimport useEventCallback from '../utils/useEventCallback'\nimport SVGIcon from '../svg/SVGIcon'\nimport UserPicture from './UserPicture'\nimport TagActionButton from '../genericComponents/TagActionButton'\nimport { TAG_CLICK_USER_BURGER } from '../../store/analytics/analytics.actionTypes'\nimport { navigateTo } from '../../store/history/history.actions'\nimport { useAction } from '../utils/react-redux'\nimport { ROUTE_USER_ACCOUNT } from '../../routes'\n\nconst UserButton = () => {\n const execNavigateTo = useAction(navigateTo)\n const onClick = useEventCallback(() => {\n execNavigateTo({\n route: ROUTE_USER_ACCOUNT\n })\n })\n\n return (\n \n
    \n \n
    \n
    \n \n
    \n
    \n )\n}\n\nexport default UserButton\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"Routz\",\"menu\":\"TAKMb\",\"avatar\":\"JuWxx\"};","import React, { useCallback } from 'react'\nimport s from './DesktopPreHeader.less'\nimport UniverseButton from './UniverseButton'\nimport { ROUTE_ITINERARY_HOME } from '../../routes'\nimport { withOnlyGE } from '../Device'\nimport T from '../i18n/T'\nimport { useSelector } from 'react-redux'\nimport { selectIsHomePage } from '../../store/history/history.selectors'\nimport { navigateToHomepage } from '../../store/history/history.actions'\nimport { useAction } from '../utils/react-redux'\nimport { generateFullRoute } from '../router/routeUtils'\nimport UserButton from '../UserAccount/UserButton'\nimport { selectIsUserAccountEnabled } from '../../store/userAccount/userAccount.selectors'\nimport { selectItineraryOptions } from '../../store/history/history.navigate.selectors'\nimport iconItinerary from '../genericComponents/assets/itinerary.svg'\n\nconst DesktopPreHeader = () => {\n const homePage = useSelector(selectIsHomePage)\n const itineraryOptions = useSelector(selectItineraryOptions)\n\n const execNavigateToHomepage = useAction(navigateToHomepage)\n const onClickToHomepage = useCallback(\n e => {\n e.preventDefault()\n execNavigateToHomepage()\n },\n [execNavigateToHomepage]\n )\n\n const shouldDisplayUserAccount = useSelector(selectIsUserAccountEnabled)\n\n return (\n
    \n {shouldDisplayUserAccount && }\n \n Mappy\n \n
    \n }\n active={homePage}\n link={generateFullRoute(ROUTE_ITINERARY_HOME)}\n {...itineraryOptions}\n />\n
    \n
    \n )\n}\n\nexport default withOnlyGE(DesktopPreHeader)\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"ujdtY\",\"logo\":\"PBvRE\",\"universeButtons\":\"yq0fl\"};","import React from 'react'\nimport classNames from 'classnames'\nimport { useSelector } from 'react-redux'\nimport s from './Header.less'\nimport { PAGE_CLASSES } from '../../routes/pageClasses.constants'\nimport SubHeader from './SubHeader'\nimport DesktopPreHeader from './DesktopPreHeader'\nimport { isGE, isPE } from '../Device'\nimport { selectHeaderHeight, selectIsBackButtonDisplayed } from '../../store/ui/ui.selectors'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\nimport useUIDisplay from '../ui/useUIDisplay'\nimport { selectIsUserAccountEnabled } from '../../store/userAccount/userAccount.selectors'\nimport UserButton from '../UserAccount/UserButton'\nimport MenuCategoriesPE from '../menu/MenuCategoriesPE'\nimport useComputedHeaderHeight from '../ui/useHeaderHeight'\n\nexport const Header = ({\n subHeader,\n subHeaderSelectorConditionFn = () => true,\n headerButton,\n children,\n menuCategoriesPE\n}) => {\n const { isUIDisplayed: suggestDisplayed } = useUIDisplay(UI_ELEMENTS.SUGGEST)\n const { isUIDisplayed: searchDialogDisplayed } = useUIDisplay(UI_ELEMENTS.SEARCH_DIALOG)\n const backButtonDisplayed = useSelector(selectIsBackButtonDisplayed)\n const headerHeight = useSelector(selectHeaderHeight)\n\n const shouldDisplaySubHeaderComponent = useSelector(subHeaderSelectorConditionFn)\n const subHeaderComponent = shouldDisplaySubHeaderComponent && subHeader\n\n const userAccountEnabled = useSelector(selectIsUserAccountEnabled)\n const shouldDisplayUserAccount = __BROWSER__ && isPE() && userAccountEnabled && !backButtonDisplayed\n\n const shouldDisplayMenuCategoriesPE = menuCategoriesPE && !suggestDisplayed && !searchDialogDisplayed\n\n const computedHeaderHeight = useComputedHeaderHeight(menuCategoriesPE, subHeaderComponent)\n\n return (\n
    \n \n {shouldDisplayUserAccount && }\n {children}\n {!suggestDisplayed && headerButton}\n
    \n {subHeaderComponent}\n {isGE() && }\n {shouldDisplayMenuCategoriesPE && (\n
    \n \n
    \n )}\n \n )\n}\n\nexport default Header\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { localeCountryIsUK, localeCountryIsFrance } from '.'\nimport { selectLocale } from '../../store/locale/locale.selectors'\n\n/* eslint-disable react/display-name */\nexport const withFrenchSite = Component => props => {\n const locale = useSelector(selectLocale)\n\n return localeCountryIsFrance(locale) ? : null\n}\n\nexport const withoutEnglishSite = Component => props => {\n const locale = useSelector(selectLocale)\n\n return !localeCountryIsUK(locale) ? : null\n}\n","import React from 'react'\nimport classNames from 'classnames'\nimport s from './ModeItem.less'\nimport SVGIcon from '../svg/SVGIcon'\n\nconst ModeItem = ({ label = '', selected = false, icon, description, onClick, displayHighlightBar = true }) => {\n return (\n \n \n \n \n {description}\n {displayHighlightBar &&
    }\n
    \n )\n}\n\nexport default ModeItem\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"FA3H8\",\"selected\":\"HWpJA\",\"icon\":\"_6dHC\",\"label\":\"mgjEa\",\"content\":\"E3G_Q\",\"contentFavourite\":\"gLgE1\",\"bar\":\"Mx64R\",\"highlightedBar\":\"fzEmI\"};","// extracted by mini-css-extract-plugin\nexport default {\"Throbber\":\"s8ceO\",\"spin\":\"juN8d\"};","import React from 'react'\nimport s from './Throbber.less'\nimport img from './throbber.png'\n\nexport default function Throbber() {\n return (\n
    \n \n
    \n )\n}\n","import React, { useCallback } from 'react'\nimport classNames from 'classnames'\nimport ResponsiveScrollableWrapper from '../genericComponents/ResponsiveScrollableWrapper/ResponsiveScrollableWrapper'\nimport s from './Main.less'\nimport { isGE } from '../Device'\nimport { HEADER_SUBHEADER_HEIGHT, PREHEADER_HEIGHT } from '../header/header-constants'\nimport { selectHeaderHeight, selectMainPEPositionAtStart } from '../../store/ui/ui.selectors'\nimport { useSelector } from 'react-redux'\nimport { MINI_MAP_HEIGHT, PE_MAIN_START_POS, PE_MAIN_VALUES } from './main.constants'\n\nimport Anchor from '../genericComponents/Anchor'\n\nconst Main = ({ children, className, withoutSubHeader }) => {\n const headerHeight = useSelector(selectHeaderHeight)\n const { high, highNoMap } = PE_MAIN_START_POS\n const positionAtStart = useSelector(selectMainPEPositionAtStart)\n const windowHeight = global?.window?.innerHeight ?? 0\n\n const getStyle = useCallback(() => {\n if (__SERVER__) return {}\n\n const headerWithSubHeaderHeight = headerHeight + (withoutSubHeader ? 0 : HEADER_SUBHEADER_HEIGHT)\n if (isGE()) {\n const top = PREHEADER_HEIGHT + headerWithSubHeaderHeight\n const height = `calc(100vh - ${top}px)`\n return { top, height }\n }\n\n const minTop = headerWithSubHeaderHeight + MINI_MAP_HEIGHT\n const top =\n positionAtStart === highNoMap\n ? headerWithSubHeaderHeight - 4\n : positionAtStart === high\n ? minTop\n : Math.max(minTop, windowHeight - PE_MAIN_VALUES[positionAtStart])\n\n return {\n top,\n height: null\n }\n }, [headerHeight, positionAtStart, withoutSubHeader, windowHeight])\n\n return (\n
    \n \n {children}\n
    \n )\n}\n\nexport default Main\n","// extracted by mini-css-extract-plugin\nexport default {\"Main\":\"YAz35\",\"Main_displayed\":\"RTSI4\"};","import React, { useEffect, useRef, useState } from 'react'\nimport { useMapContext } from '../MapContext'\nimport img from './geolocation_marker_x2.png'\nimport s from './GeolocMarker.less'\nimport { selectIsGeoLocationOn, selectGeolocationPosition } from '../../../store/map/map.selectors'\nimport { useSelector } from 'react-redux'\nimport { useCompass } from '../../utils/useCompass'\nimport { withMapReady } from '../map.utils'\nimport { withEmptyFallbackErrorBoundary } from '../../error/EmptyFallbackErrorBoundary'\nimport { Marker as MapLibreMarker } from 'maplibre-gl'\nimport { isEqual } from '../../../utils/lang'\n\nfunction GeolocMarker() {\n const { map } = useMapContext()\n\n const position = useSelector(selectGeolocationPosition)\n const geolocationOn = useSelector(selectIsGeoLocationOn)\n\n const [coords, setCoords] = useState(null)\n const [marker, setMarker] = useState(null)\n\n const rotation = useCompass(geolocationOn)\n\n const refDiv = useRef()\n\n useEffect(() => {\n if (geolocationOn && position && marker && !isEqual(coords, position)) {\n marker.setLngLat(position)\n setCoords(position)\n }\n }, [geolocationOn, position])\n\n useEffect(() => {\n if (geolocationOn && !marker && position) {\n const m = new MapLibreMarker({\n element: refDiv.current,\n anchor: 'center'\n })\n .setLngLat(position)\n .addTo(map)\n\n setMarker(m)\n }\n }, [geolocationOn, position])\n\n useEffect(\n () => () => {\n if (marker) marker.remove()\n },\n [marker]\n )\n\n if (!geolocationOn || !position) return null\n\n return (\n
    \n {/* That previous div before refDiv is very important to avoid a crash on umount, see NES-2421 */}\n
    \n \n
    \n
    \n )\n}\n\nexport default withEmptyFallbackErrorBoundary(withMapReady(GeolocMarker))\n","import { useCallback, useEffect, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectIsMapReady } from '../../store/map/map.selectors'\n\n/*\n * useCompass gets phone orientation angle relative to north.\n * This allows to turn the the geolocation marker according the current user direction.\n *\n * Current code work on Android with Chrome & Firefox.\n *\n * It could work on iOS but we should ask permission via DeviceOrientationEvent.requestPermission on iOS 13+\n *\n * Useful links :\n * - https://dev.to/orkhanjafarovr/real-compass-on-mobile-browsers-with-javascript-3emi\n * - https://caniuse.com/?search=deviceorientationabsolute\n * - https://dev.to/li/how-to-requestpermission-for-devicemotion-and-deviceorientation-events-in-ios-13-46g2\n */\nexport function useCompass(activated) {\n const mapReady = useSelector(selectIsMapReady)\n const [rotation, setRotation] = useState(0)\n\n const compassHandler = useCallback(e => {\n if (!e.absolute) return\n setRotation(-(e.alpha || 0).toFixed(0))\n }, [])\n\n useEffect(() => {\n if (mapReady && activated) {\n const eventName = 'deviceorientationabsolute'\n window.addEventListener(eventName, compassHandler, true)\n return () => {\n window.removeEventListener(eventName, compassHandler)\n }\n }\n }, [mapReady, activated, compassHandler])\n return rotation\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"imgMarker\":\"djFro\"};","import React, { useEffect, useRef, useState } from 'react'\nimport { ONE_MINUTE_MS, pad } from '../../utils/date'\nimport s from './TrafficLegend.less'\nimport { withOnlyGE } from '../../Device'\nimport T from '../../i18n/T'\nimport { selectMapMode } from '../../../store/map/map.selectors'\nimport { useSelector } from 'react-redux'\nimport { MAP_MODES } from '../../../store/map/map.constants'\n\nexport const formatHourFromDate = date => {\n const mins = date.getMinutes()\n const hours = date.getHours()\n return pad(hours) + ':' + pad(mins)\n}\n\nconst TrafficLegend = withOnlyGE(() => {\n const mapMode = useSelector(selectMapMode)\n const intervalRef = useRef()\n const [lastUpdate, setLastUpdate] = useState(new Date())\n\n useEffect(() => {\n if (mapMode === MAP_MODES.traffic) {\n intervalRef.current = setInterval(() => {\n setLastUpdate(new Date())\n }, 2 * ONE_MINUTE_MS)\n } else {\n clearInterval(intervalRef.current)\n }\n return () => {\n clearInterval(intervalRef.current)\n }\n }, [mapMode])\n\n if (mapMode !== MAP_MODES.traffic) return null\n\n return (\n
    \n

    \n \n  \n {formatHourFromDate(lastUpdate)}\n

    \n
      \n
    • \n
    • \n
    • \n
    • \n
    • \n
    \n

    \n \n \n \n \n \n \n

    \n
    \n )\n})\n\nexport default TrafficLegend\n","// extracted by mini-css-extract-plugin\nexport default {\"trafficLegend\":\"qJJUg\",\"title\":\"tnGAn\",\"yellow\":\"fTULR\",\"orange\":\"ChtuL\",\"red\":\"Kvb4V\",\"darkred\":\"QYMeT\",\"black\":\"QxDi8\",\"left\":\"D4aSG\",\"right\":\"bm9rv\"};","import { useState } from 'react'\nimport useEventCallback from '../../utils/useEventCallback'\nimport { isGE } from '../../Device'\n\nconst useTooltip = () => {\n const [tooltip, setTooltip] = useState(false)\n\n const showTooltip = useEventCallback(() => setTooltip(true), [setTooltip])\n const hideTooltip = useEventCallback(() => setTooltip(false), [setTooltip])\n\n const mouseListeners = isGE()\n ? {\n onMouseOver: showTooltip,\n onMouseOut: hideTooltip\n }\n : {}\n\n return { tooltip, setTooltip, mouseListeners }\n}\n\nexport default useTooltip\n","import React, { useCallback, useEffect, useState } from 'react'\nimport classNames from 'classnames'\nimport { MAP_ZOOM_MIN, MAP_ZOOM_STEP } from '../map.constants'\nimport T from '../../i18n/T'\nimport s from './ZoomButtons.less'\nimport SVGIcon from '../../svg/SVGIcon'\nimport { withOnlyGE } from '../../Device'\nimport { useSelector } from 'react-redux'\nimport { selectMapZoom, selectMapMaxZoom } from '../../../store/map/map.selectors'\nimport { useAction } from '../../utils/react-redux'\nimport { requestZoom } from '../../../store/map/map.actions'\nimport useTooltip from './useTooltip'\n\nconst ZoomButton = ({ onClick, icon, className, label, ...otherProps }) => {\n const { tooltip, mouseListeners } = useTooltip()\n\n return (\n
    \n \n \n \n \n
    \n )\n}\n\nconst ZoomInButton = props => \n\nconst ZoomOutButton = props => (\n \n)\n\nexport const ZoomButtons = () => {\n const execRequestZoom = useAction(requestZoom)\n const zoomFromStore = useSelector(selectMapZoom)\n const maxZoom = useSelector(selectMapMaxZoom)\n // The state zoom exists because the store value is updated when animation finished\n // With the state zoom user can click several times during the animation\n const [zoom, setZoom] = useState()\n\n useEffect(() => {\n setZoom(zoomFromStore)\n }, [zoomFromStore])\n\n const updateZoom = useCallback(\n delta => {\n let targetZoom = zoom + delta\n if (targetZoom > maxZoom) targetZoom = maxZoom\n if (targetZoom < MAP_ZOOM_MIN) targetZoom = MAP_ZOOM_MIN\n\n execRequestZoom({ zoom: targetZoom })\n setZoom(targetZoom)\n },\n [zoom, maxZoom]\n )\n\n return (\n
    \n updateZoom(MAP_ZOOM_STEP)} />\n updateZoom(-MAP_ZOOM_STEP)} />\n
    \n )\n}\n\nexport default withOnlyGE(ZoomButtons)\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"jiQFc\",\"ZoomButtons\":\"crKZR\",\"ZoomButton\":\"u75NN\",\"ZoomInButton\":\"kWCY5\",\"ZoomOutButton\":\"r24Pa\",\"tooltip\":\"ZSPrw\",\"ZoomDebugger\":\"O4_7L\"};","import { useEffect, useRef } from 'react'\nimport { selectShouldDisplayMapTools } from '../../../store/ui/ui.selectors'\nimport { isGE } from '../../Device'\nimport { withEverySelectorTruthy } from '../../utils/react-redux'\nimport { ScaleControl as MapLibreScaleControl } from 'maplibre-gl'\nimport './Scale.less'\nimport { useCallbackWithMapContext } from '../MapContext'\n\nconst Scale = () => {\n const scaleRef = useRef()\n\n const addControl = useCallbackWithMapContext(map => {\n if (scaleRef.current) return\n\n scaleRef.current = new MapLibreScaleControl({\n maxWidth: 120,\n unit: 'metric'\n })\n const position = isGE() ? 'bottom-right' : 'bottom-left'\n map.addControl(scaleRef.current, position)\n })\n\n const removeControl = useCallbackWithMapContext(map => {\n try {\n if (scaleRef.current) map.removeControl(scaleRef.current)\n } catch (e) {}\n scaleRef.current = undefined\n })\n\n useEffect(() => {\n addControl()\n return () => {\n if (scaleRef.current) removeControl()\n }\n }, [addControl, removeControl])\n\n return null\n}\n\nexport default withEverySelectorTruthy(selectShouldDisplayMapTools())(Scale)\n","// extracted by mini-css-extract-plugin\nexport default {\"Copyrights\":\"jNtA0\",\"left\":\"xsdTm\"};","import React, { useEffect, useState, useRef } from 'react'\nimport classnames from 'classnames'\nimport { useMapContext } from '../MapContext'\nimport s from './Copyrights.less'\nimport { isGE } from '../../Device'\nimport { uniq } from '../../../utils/array'\nimport { throttle } from '../../../utils/function'\n\nconst DEFAULT_COPYRIGHT = '© Mappy'\n\nconst Copyrights = () => {\n const { map } = useMapContext()\n const [copyrights, setCopyrights] = useState(DEFAULT_COPYRIGHT)\n\n const mapEventAttached = useRef(false)\n\n useEffect(() => {\n if (!mapEventAttached.current && map) {\n map.on(\n 'render',\n throttle(() => setCopyrights(getCopyright()), 300)\n )\n\n mapEventAttached.current = true\n }\n }, [mapEventAttached, map])\n\n const getCopyrightsFeatures = () =>\n map\n .queryRenderedFeatures()\n .filter(feature => (feature.layer.id || '').includes('copyrights_') && feature.properties.copyrights)\n\n const getCopyrights = () =>\n uniq(getCopyrightsFeatures().flatMap(feature => JSON.parse(feature.properties.copyrights)))\n\n const getCopyright = () => {\n let copyrights = []\n\n try {\n copyrights = getCopyrights()\n } catch (err) {\n console.error(err)\n }\n\n return [DEFAULT_COPYRIGHT, ...copyrights].join(' - ')\n }\n\n return
    {copyrights}
    \n}\n\nexport default Copyrights\n","import classnames from 'classnames'\nimport React from 'react'\nimport { selectShouldDisplayMapTools } from '../../../store/ui/ui.selectors'\nimport { isGE } from '../../Device'\nimport logoMappy from '../../genericComponents/logo-mappy-bordered.svg'\nimport { withEverySelectorTruthy } from '../../utils/react-redux'\nimport s from './Logo.less'\n\nconst Logo = () => (\n
    \n \n
    \n)\n\nexport default withEverySelectorTruthy(selectShouldDisplayMapTools())(Logo)\n","// extracted by mini-css-extract-plugin\nexport default {\"Logo\":\"QoSBm\",\"centeredBottomLogo\":\"dL6k1\"};","import React from 'react'\nimport classNames from 'classnames'\nimport SVGIcon from '../../svg/SVGIcon'\nimport { toggleFullscreen } from '../../../store/map/map.actions'\nimport s from './ToggleFullscreenButton.less'\nimport { useAction, withEverySelectorTruthy } from '../../utils/react-redux'\nimport { selectIsMapFullScreen } from '../../../store/map/map.selectors'\n\nconst ToggleFullscreenButton = () => {\n const execToggleFullscreen = useAction(toggleFullscreen)\n\n const onClick = () => execToggleFullscreen()\n\n return (\n
    \n \n
    \n )\n}\n\nexport default withEverySelectorTruthy(selectIsMapFullScreen)(ToggleFullscreenButton)\n","// extracted by mini-css-extract-plugin\nexport default {\"ToggleFullscreenButton\":\"ujgHZ\",\"buttonPositioning\":\"Djnvz\",\"buttonAspect\":\"JVGYN\"};","import React from 'react'\nimport { useAction } from '../../utils/react-redux'\nimport s from './OutdoorButton.less'\nimport SVGIcon from '../../svg/SVGIcon'\nimport { displayOutdoor, hideOutdoor } from '../../../store/ui/ui.actions'\nimport { OUTDOOR_STATUS_PROMPT } from '../../outdoor/Utils'\nimport useTooltip from './useTooltip'\nimport classNames from 'classnames'\nimport T from '../../i18n/T'\nimport { selectIsOutdoorPrompted } from '../../../store/ui/ui.outdoor.selectors'\nimport { useSelector } from 'react-redux'\nimport useEventCallback from '../../utils/useEventCallback'\nimport TagActionButton from '../../genericComponents/TagActionButton'\nimport { TAG_UPI_IMMERSIVE } from '../../../store/analytics/analytics.actionTypes'\n\nconst OutdoorButton = () => {\n const statusIsPrompt = useSelector(selectIsOutdoorPrompted)\n const execDisplayOutdoor = useAction(displayOutdoor)\n const execHideOutdoor = useAction(hideOutdoor)\n const { tooltip, setTooltip, mouseListeners } = useTooltip()\n\n const onButtonClick = useEventCallback(() => {\n setTooltip(false)\n if (statusIsPrompt) {\n execHideOutdoor()\n } else {\n execDisplayOutdoor({ status: OUTDOOR_STATUS_PROMPT })\n }\n }, [statusIsPrompt, execHideOutdoor, execDisplayOutdoor])\n\n return (\n
    \n \n \n \n \n \n \n \n
    \n )\n}\n\nexport default OutdoorButton\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"kwYj7\",\"button\":\"jplnA\",\"buttonTooltip\":\"_Y_i0\"};","import React, { useEffect, useState } from 'react'\nimport ReactDOM from 'react-dom'\nimport { useMapContext } from '../MapContext'\nimport { Popup as MapLibrePopup } from 'maplibre-gl'\nimport s from './Popup.less'\nimport { isPE } from '../../Device'\nimport PopupPano from './PopupPano'\nimport {\n POPUP_TYPE_PANO,\n POPUP_TYPE_POI,\n POPUP_TYPE_ADDRESS,\n selectPopupData,\n selectShouldDisplayPopup\n} from './popup.selectors'\nimport PopupPoi from './PopupPoi'\nimport PopupAddress from './PopupAddress'\nimport { withEmptyFallbackErrorBoundary } from '../../error/EmptyFallbackErrorBoundary'\nimport { withMapReady } from '../map.utils'\nimport { useSelector } from 'react-redux'\n\n// webpack:BrowserOnly\n\nconst popupDataAreComplete = ({ offset, coords, type }) => type && offset && coords && coords.lat && coords.lng\n\nconst getChild = type => {\n switch (type) {\n case POPUP_TYPE_PANO:\n return \n case POPUP_TYPE_POI:\n return \n case POPUP_TYPE_ADDRESS:\n return \n default:\n return null\n }\n}\n\nconst POPUP_ID = 'mapPopupWrapper'\n\nconst useMapLibrePopup = () => {\n const popupData = useSelector(selectPopupData)\n const shouldHavePopup = popupDataAreComplete(popupData)\n const [hasPopup, setHasPopup] = useState(0)\n const { type, coords, offset, anchor, maxWidth, withIllustration } = popupData\n const { map } = useMapContext()\n\n useEffect(() => {\n if (!shouldHavePopup) return\n\n const popupTypeClass = ` popup-${type}`\n const withIllustrationClass = withIllustration ? ' with-illustration' : ''\n\n const mapLibrePopup = new MapLibrePopup({\n offset,\n closeButton: false,\n className: `${s.popup}${popupTypeClass}${withIllustrationClass}`,\n anchor,\n maxWidth\n })\n\n mapLibrePopup.setLngLat(coords).setHTML(`
    `).addTo(map)\n\n setHasPopup(Date.now())\n\n return () => {\n mapLibrePopup.remove()\n setHasPopup(0)\n }\n }, [shouldHavePopup])\n\n return hasPopup && POPUP_ID\n}\n\nconst PortalPopup = ({ children }) => {\n const popupId = useMapLibrePopup()\n\n if (!popupId) return null\n\n const domNode = document.querySelector(`#${popupId}`)\n if (!domNode) return null\n return ReactDOM.createPortal(children, domNode)\n}\n\nconst Popup = () => {\n const { type } = useSelector(selectPopupData)\n const child = getChild(type)\n const shouldDisplayPopup = useSelector(selectShouldDisplayPopup)\n\n if (!shouldDisplayPopup || !child) return null\n if (isPE() && type === POPUP_TYPE_ADDRESS) return null\n\n return isPE() ?
    {child}
    : {child}\n}\n\nexport default withEmptyFallbackErrorBoundary(withMapReady(Popup))\n","// extracted by mini-css-extract-plugin\nexport default {\"popup\":\"Ws2e0\",\"popupPE\":\"o0wVq\"};","import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useMapContext } from '../map/MapContext'\nimport SVGIcon from '../svg/SVGIcon'\nimport s from './UPI.less'\nimport { fetchPano, OUTDOOR_STATUS_PROMPT } from './Utils'\nimport { displayOutdoor } from '../../store/ui/ui.actions'\nimport { displayPopup, hidePopup } from '../../store/map/map.actions'\nimport { POPUP_TYPE_PANO } from '../map/popup/popup.selectors'\nimport { useAction } from '../utils/react-redux'\nimport { selectIsOutdoorPrompted } from '../../store/ui/ui.outdoor.selectors'\nimport { navigateTo } from '../../store/history/history.actions'\nimport { ROUTE_360_VIEW_FULLSCREEN } from '../../routes'\nimport useTimeout from '../utils/useTimeout'\nimport { withMapReady } from '../map/map.utils'\n\nconst UPI_SIZE = 30\nconst PREVIEW_DELAY = 500\nconst MAP_OFFSET_X = 415\nconst MAP_OFFSET_Y = 70\n\nconst useOutdoorPreviewPopup = () => {\n const execDisplayOutdoor = useAction(displayOutdoor)\n const execDisplayPopup = useAction(displayPopup)\n const execHidePopup = useAction(hidePopup)\n\n const displayPreview = useCallback(coords => {\n fetchPano(coords)\n .catch(() => console.debug('Pas de pano', coords))\n .then(panoData => {\n execDisplayOutdoor({ ...panoData, ...coords, status: OUTDOOR_STATUS_PROMPT })\n execDisplayPopup(POPUP_TYPE_PANO)\n })\n }, [])\n\n const closePreview = useCallback(() => {\n execHidePopup()\n execDisplayOutdoor({ status: OUTDOOR_STATUS_PROMPT })\n }, [])\n\n return {\n displayPreview,\n closePreview\n }\n}\n\nconst UPI = () => {\n const { map } = useMapContext()\n const isDisplayed = useSelector(selectIsOutdoorPrompted)\n const execNavigateTo = useAction(navigateTo)\n\n const elementRef = useRef()\n const [coords, setCoords] = useState()\n const [setPreviewTimeout, clearPreviewTimeout] = useTimeout(PREVIEW_DELAY)\n const { displayPreview, closePreview } = useOutdoorPreviewPopup()\n\n useEffect(() => {\n if (isDisplayed) {\n follow()\n } else {\n unfollow()\n }\n }, [isDisplayed])\n\n useEffect(() => {\n if (coords) {\n closePreview()\n clearPreviewTimeout()\n setPreviewTimeout(() => displayPreview(coords))\n }\n }, [coords])\n\n const follow = () => {\n map.on('click', mapClicked)\n map.on('mousemove', mapMouseMove)\n map.getCanvas().style.cursor = 'pointer'\n document.querySelector('body').addEventListener('mousemove', bodyMouseMove)\n }\n\n const unfollow = () => {\n map.off('click', mapClicked)\n map.off('mousemove', mapMouseMove)\n map.getCanvas().style.cursor = ''\n document.querySelector('body').removeEventListener('mousemove', bodyMouseMove)\n clearPreviewTimeout()\n }\n\n const launchOutdoor = coords => {\n closePreview()\n unfollow()\n fetchPano(coords)\n .then(panoData => {\n if (panoData && panoData.panoramicId) {\n execNavigateTo({\n route: ROUTE_360_VIEW_FULLSCREEN,\n routeOptions: { panoramicId: panoData.panoramicId }\n })\n }\n })\n .catch(() => {\n follow()\n displayPreview(coords)\n })\n }\n\n const onClicked = () => {\n launchOutdoor(coords)\n }\n\n const mapClicked = event => {\n launchOutdoor(event.lngLat)\n }\n\n const mapMouseMove = useCallback(\n event => {\n setCoords(event.lngLat)\n },\n [setCoords]\n )\n\n const onMouseMove = useCallback(\n ({ x, y }) => {\n if (!elementRef.current) return\n elementRef.current.style.top = `${y - UPI_SIZE - 7}px`\n elementRef.current.style.left = `${x - UPI_SIZE / 2}px`\n },\n [elementRef.current]\n )\n\n const bodyMouseMove = useCallback(\n event => {\n const { clientX, clientY } = event\n onMouseMove({ x: clientX - MAP_OFFSET_X, y: clientY - MAP_OFFSET_Y })\n },\n [onMouseMove]\n )\n\n if (!isDisplayed) return null\n\n return (\n
    \n \n
    \n )\n}\n\nexport default withMapReady(UPI)\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"J1XZZ\"};","// extracted by mini-css-extract-plugin\nexport default {\"geoloc\":\"JUSVw\",\"button\":\"r6XR1\",\"icon\":\"jIVJ2\",\"follow\":\"ITaCJ\",\"active\":\"aNCdW\",\"fetch\":\"fVizQ\",\"geolocationSearching\":\"s83Ge\",\"errorMessage\":\"IIFXF\",\"tooltip\":\"G5NBH\"};","import classNames from 'classnames'\nimport React, { useEffect, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport T from '../../i18n/T'\nimport { TAG_SEARCH_GEOLOCATION } from '../../../store/analytics/analytics.actionTypes'\nimport { setGeolocationStatus } from '../../../store/map/map.actions'\nimport {\n GEOLOC_STATUS_BLOCKED,\n GEOLOC_STATUS_BUTTON_WORKFLOW,\n GEOLOC_STATUS_DISABLED,\n GEOLOC_STATUS_FETCH_ACTIVE,\n GEOLOC_STATUS_FETCH_FOLLOW,\n GEOLOC_STATUS_FOLLOW\n} from '../../../store/map/map.constants'\nimport { selectGeolocationStatus } from '../../../store/map/map.selectors'\nimport { selectShouldDisplayMapTools } from '../../../store/ui/ui.selectors'\nimport TagActionButton from '../../genericComponents/TagActionButton'\nimport SVGIcon from '../../svg/SVGIcon'\nimport { useAction, withEverySelectorTruthy } from '../../utils/react-redux'\nimport useTimeout from '../../utils/useTimeout'\nimport s from './GeolocButton.less'\nimport useTooltip from './useTooltip'\n\nconst GeolocButton = () => {\n const status = useSelector(selectGeolocationStatus)\n const [statusFromButton, setStatusFromButton] = useState(null)\n const execSetGeolocationStatus = useAction(setGeolocationStatus)\n const [displayError, setDisplayError] = useState(false)\n const [setErrorTo, clearErrorTo] = useTimeout(5000)\n const isFollowStatus = status === GEOLOC_STATUS_FOLLOW\n const isFetchStatus = status === GEOLOC_STATUS_FETCH_ACTIVE || status === GEOLOC_STATUS_FETCH_FOLLOW\n const { tooltip, mouseListeners } = useTooltip()\n\n useEffect(() => {\n if (statusFromButton) {\n if (status === GEOLOC_STATUS_BLOCKED) {\n setDisplayError(true)\n setErrorTo(() => setDisplayError(false))\n }\n if (status !== statusFromButton) {\n setStatusFromButton(null)\n }\n }\n }, [setErrorTo, status, statusFromButton])\n\n useEffect(() => {\n return () => {\n clearErrorTo()\n }\n }, [clearErrorTo])\n\n const onClick = () => {\n const newStatus = GEOLOC_STATUS_BUTTON_WORKFLOW[status]\n if (newStatus !== GEOLOC_STATUS_DISABLED) {\n setStatusFromButton(newStatus)\n execSetGeolocationStatus(newStatus, { mapMove: true })\n } else {\n execSetGeolocationStatus(newStatus)\n }\n }\n\n return (\n <>\n \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n {displayError && (\n
    \n {`Votre position est bloquée, vous devez l'autoriser sur votre navigateur.`}\n
    \n )}\n \n )\n}\n\nexport default withEverySelectorTruthy(selectShouldDisplayMapTools())(GeolocButton)\n","import { useCallback } from 'react'\nimport { MAP_STORE_UPDATE_DELAY } from './map.constants'\nimport {\n GEOLOC_STATUS_ACTIVE,\n GEOLOC_STATUS_FOLLOW,\n MAPLIBRE_EVENT_MOVE,\n MAPLIBRE_EVENT_ZOOM\n} from '../../store/map/map.constants'\nimport { selectGeolocationStatus } from '../../store/map/map.selectors'\nimport { setGeolocationStatus } from '../../store/map/map.actions'\nimport { useSelector } from 'react-redux'\nimport { useAction } from '../utils/react-redux'\nimport { withMapReady } from './map.utils'\nimport { useEffectWithMapContext } from './MapContext'\nimport { debounce } from '../../utils/function'\n\nfunction Geolocation() {\n const status = useSelector(selectGeolocationStatus)\n const execSetGeolocationStatus = useAction(setGeolocationStatus)\n\n const onMapMove = useCallback(\n event => {\n const statusIsFollow = status === GEOLOC_STATUS_FOLLOW\n const moveFromUser = !event.fromAppAction && event.type === MAPLIBRE_EVENT_MOVE\n if (statusIsFollow && moveFromUser) {\n execSetGeolocationStatus(GEOLOC_STATUS_ACTIVE)\n }\n },\n [status, setGeolocationStatus]\n )\n\n const onMapMoveDelayed = debounce(onMapMove, MAP_STORE_UPDATE_DELAY)\n\n useEffectWithMapContext(map => {\n map.on(MAPLIBRE_EVENT_MOVE, onMapMoveDelayed)\n map.on(MAPLIBRE_EVENT_ZOOM, onMapMoveDelayed)\n return () => {\n map.off(MAPLIBRE_EVENT_MOVE, onMapMoveDelayed)\n map.off(MAPLIBRE_EVENT_ZOOM, onMapMoveDelayed)\n }\n }, [])\n\n return null\n}\n\nexport default withMapReady(Geolocation)\n","import React, { useCallback } from 'react'\nimport { TAG_CLICK_CONTEXT_MENU } from '../../../store/analytics/analytics.actionTypes'\nimport { ACTION } from '../../analytics/ClickTagsService'\nimport s from './ContextMenu.less'\nimport TagActionButton from '../../genericComponents/TagActionButton'\nimport { useContextMenu } from './ContextMenu'\n\nconst ContextMenuItem = ({ tagAction, label, clickAction }) => {\n const { point } = useContextMenu()\n\n const clickHandler = useCallback(() => {\n // do not stop propagation, so the menu can close\n clickAction(point)\n }, [point])\n\n return (\n \n {label}\n \n )\n}\n\nexport default ContextMenuItem\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"zIyn6\",\"item\":\"cZRvE\"};","import React from 'react'\nimport ContextMenuItem from './ContextMenuItem'\nimport { AFFICHER_ADRESSE } from './contextmenu.constants'\nimport { useT } from '../../i18n/T'\nimport { useAction } from '../../utils/react-redux'\nimport { searchAddressFromPoint } from '../../../store/address/address.actions'\n\nconst ContextMenuItemShowAddress = () => {\n const label = useT('map.context-menu.show-address')\n const searchAddressFromPointAction = useAction(searchAddressFromPoint)\n\n return \n}\n\nexport default ContextMenuItemShowAddress\n","export const CLIC_DROIT = 'Clic_droit'\nexport const AFFICHER_ADRESSE = 'Afficher_l_adresse'\nexport const AFFICHER_VILLE = 'Afficher_la_ville'\nexport const AFFICHER_DEPARTEMENT = 'Afficher_le_departement'\nexport const AFFICHER_REGION = 'Afficher_la_region'\nexport const ITINERAIRE_DEPUIS = 'Itinéraire_depuis_ce_lieu'\nexport const ITINERAIRE_VERS = 'Itinéraire_vers_ce_lieu'\nexport const AJOUTER_ETAPE = 'Ajouter_une_etape_ici'\n","import { findAddressforGeolocation } from '../../../dataSource/address/address.request'\n\nexport const findAddressFromPoint = lngLat =>\n findAddressforGeolocation(lngLat).then(({ addresses }) => {\n if (addresses.length < 1) return Promise.reject(new Error('No address found at this point !'))\n return addresses[0]\n })\n","import React from 'react'\nimport ContextMenuItem from './ContextMenuItem'\nimport { ITINERAIRE_VERS } from './contextmenu.constants'\nimport { useT } from '../../i18n/T'\nimport { useAction } from '../../utils/react-redux'\nimport { setArrivalFromPoint } from '../../../store/itinerary/itinerary.actions'\nimport { useSelector } from 'react-redux'\nimport { selectIsItineraryUniverse } from '../../../store/history/history.selectors'\nimport { ROUTE_ITINERARY_TO } from '../../../routes'\nimport { navigateTo } from '../../../store/history/history.actions'\nimport { findAddressFromPoint } from './contextmenu.utils'\n\nconst ContextMenuItemItineraryTo = () => {\n const label = useT('map.context-menu.go-to-itinerary')\n const execSetArrivalFromPoint = useAction(setArrivalFromPoint)\n const itineraryUniverse = useSelector(selectIsItineraryUniverse)\n const navigateToAction = useAction(navigateTo)\n\n const navigateToItineraryTo = address => {\n navigateToAction({\n route: ROUTE_ITINERARY_TO,\n routeOptions: {\n to: address.label,\n toAddress: address,\n avoidReset: true\n }\n })\n }\n\n const onItineraryTo = point => {\n if (itineraryUniverse) {\n execSetArrivalFromPoint(point).catch(e => console.error(e))\n } else {\n findAddressFromPoint(point)\n .then(address => navigateToItineraryTo(address))\n .catch(e => console.error(e))\n }\n }\n\n return \n}\n\nexport default ContextMenuItemItineraryTo\n","import React from 'react'\nimport ContextMenuItem from './ContextMenuItem'\nimport { ITINERAIRE_DEPUIS } from './contextmenu.constants'\nimport { useT } from '../../i18n/T'\nimport { useAction, withEverySelectorTruthy } from '../../utils/react-redux'\nimport { setDepartureFromPoint } from '../../../store/itinerary/itinerary.actions'\nimport { selectIsItineraryUniverse } from '../../../store/history/history.selectors'\n\nconst ContextMenuItemItineraryFrom = () => {\n const label = useT('map.context-menu.go-from-itinerary')\n const execSetDepartureFromPoint = useAction(setDepartureFromPoint)\n\n const onItineraryFrom = point => {\n execSetDepartureFromPoint(point).catch(e => console.error(e))\n }\n\n return \n}\n\nexport default withEverySelectorTruthy(selectIsItineraryUniverse)(ContextMenuItemItineraryFrom)\n","import React from 'react'\nimport ContextMenuItem from './ContextMenuItem'\nimport { AJOUTER_ETAPE } from './contextmenu.constants'\nimport { useT } from '../../i18n/T'\nimport { useAction, withEverySelectorTruthy } from '../../utils/react-redux'\nimport { addStep, setStepFromAddress, setStepIdx } from '../../../store/itinerary/itinerary.actions'\nimport { selectIsAnItineraryResultPage } from '../../../store/history/history.selectors'\nimport { findAddressFromPoint } from './contextmenu.utils'\nimport { useSelector } from 'react-redux'\nimport { selectStepsLength } from '../../itinerary/steps/steps.selectors'\n\nconst ContextMenuItemItineraryAddStep = () => {\n const label = useT('map.context-menu.add-step-itinerary')\n const execAddStep = useAction(addStep)\n const execSetStepIdx = useAction(setStepIdx)\n const execSetStepFromAddress = useAction(setStepFromAddress)\n const stepsLength = useSelector(selectStepsLength)\n\n const onAddStep = point => {\n findAddressFromPoint(point)\n .then(address => {\n execAddStep()\n execSetStepIdx({ idx: stepsLength - 1 })\n execSetStepFromAddress(address)\n })\n .catch(e => console.error(e))\n }\n\n return \n}\n\nexport default withEverySelectorTruthy(selectIsAnItineraryResultPage)(ContextMenuItemItineraryAddStep)\n","import React from 'react'\nimport ContextMenuItem from './ContextMenuItem'\nimport { AFFICHER_VILLE } from './contextmenu.constants'\nimport { useT } from '../../i18n/T'\nimport { useAction, withEverySelectorTruthy } from '../../utils/react-redux'\nimport { searchCityFromPoint } from '../../../store/address/address.actions'\nimport { selectIsPlacesUniverse } from '../../../store/history/history.selectors'\n\nconst ContextMenuItemShowCity = () => {\n const label = useT('map.context-menu.show-city')\n const execSearchLocation = useAction(searchCityFromPoint)\n\n return \n}\n\nexport default withEverySelectorTruthy(selectIsPlacesUniverse)(ContextMenuItemShowCity)\n","import React from 'react'\nimport ContextMenuItem from './ContextMenuItem'\nimport { AFFICHER_DEPARTEMENT } from './contextmenu.constants'\nimport { useT } from '../../i18n/T'\nimport { useAction, withEverySelectorTruthy } from '../../utils/react-redux'\nimport { searchDepartmentFromPoint } from '../../../store/address/address.actions'\nimport { selectIsPlacesUniverse } from '../../../store/history/history.selectors'\n\nconst ContextMenuItemShowCity = () => {\n const label = useT('map.context-menu.show-department')\n const execSearchLocation = useAction(searchDepartmentFromPoint)\n\n return \n}\n\nexport default withEverySelectorTruthy(selectIsPlacesUniverse)(ContextMenuItemShowCity)\n","import React from 'react'\nimport ContextMenuItem from './ContextMenuItem'\nimport { AFFICHER_REGION } from './contextmenu.constants'\nimport { useT } from '../../i18n/T'\nimport { useAction, withEverySelectorTruthy } from '../../utils/react-redux'\nimport { searchRegionFromPoint } from '../../../store/address/address.actions'\nimport { selectIsPlacesUniverse } from '../../../store/history/history.selectors'\n\nconst ContextMenuItemShowCity = () => {\n const label = useT('map.context-menu.show-region')\n const execSearchLocation = useAction(searchRegionFromPoint)\n\n return \n}\n\nexport default withEverySelectorTruthy(selectIsPlacesUniverse)(ContextMenuItemShowCity)\n","import React, { useCallback, useContext, useEffect, useState } from 'react'\nimport { useEffectWithMapContext, useMapContext } from '../MapContext'\nimport { selectCurrentHistoryRoute } from '../../../store/history/history.selectors'\nimport { useSelector } from 'react-redux'\nimport { withMapReady } from '../map.utils'\nimport s from './ContextMenu.less'\nimport { TAG_CLICK_CONTEXT_MENU } from '../../../store/analytics/analytics.actionTypes'\nimport { ACTION } from '../../analytics/ClickTagsService'\nimport useImpressionTag from '../../analytics/useImpressionTag'\nimport useEventCallback from '../../utils/useEventCallback'\nimport ContextMenuItemShowAddress from './ContextMenuItemShowAddress'\nimport ContextMenuItemItineraryTo from './ContextMenuItemItineraryTo'\nimport ContextMenuItemItineraryFrom from './ContextMenuItemItineraryFrom'\nimport ContextMenuItemItineraryAddStep from './ContextMenuItemItineraryAddStep'\nimport { CLIC_DROIT } from './contextmenu.constants'\nimport ContextMenuItemShowCity from './ContextMenuItemShowCity'\nimport ContextMenuItemShowDepartment from './ContextMenuItemShowDepartment'\nimport ContextMenuItemShowRegion from './ContextMenuItemShowRegion'\nimport { selectMapBbox } from '../../../store/map/map.selectors'\nimport { selectShouldDisplayContextMenu } from '../../../store/ui/ui.selectors'\n\nconst LocalContext = React.createContext({ point: null })\n\nexport const useContextMenu = () => useContext(LocalContext)\n\nexport function getStyle(event, canvas) {\n const { clientWidth: canvasWidth, clientHeight: canvasHeight } = canvas\n\n const width = 160\n const height = 60\n const top = event.point.y\n const left = event.point.x\n return {\n top: top + height > canvasHeight ? top - height : top,\n left: left + width > canvasWidth ? left - width : left,\n width\n }\n}\n\nexport function ContextMenu() {\n const { map } = useMapContext()\n const currentRoute = useSelector(selectCurrentHistoryRoute)\n const bbox = useSelector(selectMapBbox)\n const [event, setEvent] = useState()\n const shouldDisplay = useSelector(selectShouldDisplayContextMenu)\n\n const closeContextMenu = useCallback(() => {\n setEvent(null)\n }, [])\n\n const onContextMenu = useCallback(\n event => {\n setEvent(event)\n map.once('click', closeContextMenu)\n },\n [setEvent, closeContextMenu]\n )\n\n useEffectWithMapContext(\n map => {\n map.on('contextmenu', onContextMenu)\n\n return () => {\n map.off('contextmenu', onContextMenu)\n }\n },\n [onContextMenu]\n )\n\n useEffect(() => closeContextMenu, [currentRoute, bbox, closeContextMenu])\n useImpressionTag(event, { type: TAG_CLICK_CONTEXT_MENU, tagInfo: { [ACTION]: CLIC_DROIT } })\n\n const menuClickHandler = useEventCallback(closeContextMenu, [closeContextMenu])\n\n if (!event || !shouldDisplay) return null\n\n return (\n
    \n \n \n \n \n \n \n \n \n \n
    \n )\n}\n\nexport default withMapReady(ContextMenu)\n","import { useEffect } from 'react'\nimport { dispatchTag } from '../../store/analytics/analytics.actions'\nimport { useAction } from '../utils/react-redux'\n\nconst useImpressionTag = (condition, { type, tagInfo }) => {\n const execDispatchTag = useAction(dispatchTag)\n\n useEffect(() => {\n if (condition) {\n execDispatchTag({\n type,\n tagInfo,\n isImpression: true\n })\n }\n }, [condition])\n}\n\nexport default useImpressionTag\n","import React from 'react'\nimport s from './FPS.less'\n\nfunction now() {\n return (performance || Date)['now']()\n}\n\nclass FPS extends React.Component {\n constructor(props) {\n super(props)\n this.state = { ...props, fps: '', stop: false }\n }\n\n componentDidMount() {\n this.compute()\n }\n\n componentWillUnmount() {\n this.setState({ stop: true })\n clearInterval(this._interval)\n }\n\n compute() {\n this.count = 0\n this.then = now()\n\n function count() {\n if (this.state.stop) return\n this.count++\n\n requestAnimationFrame(count.bind(this))\n }\n\n requestAnimationFrame(count.bind(this))\n\n this._interval = setInterval(this.updateFpsCount.bind(this), 600)\n }\n\n updateFpsCount() {\n const deltaTime = now() - this.then\n const fps = this.count / (deltaTime * 0.001)\n\n this.setState({ fps: fps.toFixed(1) + ' fps' })\n\n this.then = now()\n this.count = 0\n }\n\n render() {\n return
    {this.state.fps}
    \n }\n}\n\nexport default FPS\n","// extracted by mini-css-extract-plugin\nexport default {\"main\":\"DSU7Z\"};","import React, { useEffect } from 'react'\nimport { useMapContext } from '../MapContext'\nimport {\n selectMapActiveBbox,\n selectMapBbox,\n selectMapSearchBbox,\n selectIsMapReady\n} from '../../../store/map/map.selectors'\nimport { bboxArrayToBboxArrays } from '../conversion'\nimport { selectViewport } from '../../../store/address/address.selectors'\nimport { selectStepsCoordinates } from '../../itinerary/steps/steps.selectors'\nimport { getBboxFromLngLatPoints } from '../../utils/map'\nimport { useSelector } from 'react-redux'\nimport { isEmpty } from '../../../utils/lang'\n\nconst BboxDebugger = ({ bbox, id, fillColor = '#088' }) => {\n const { map } = useMapContext()\n const isMapReady = useSelector(selectIsMapReady)\n\n useEffect(() => {\n if (!map || !isMapReady || !bbox || !id) return\n\n const debugId = `${id}_debug_id`\n\n const [[x1, y1], [x2, y2]] = bbox\n const p1 = [Math.min(x1, x2), Math.min(y1, y2)]\n const p2 = [Math.max(x1, x2), Math.min(y1, y2)]\n const p3 = [Math.max(x1, x2), Math.max(y1, y2)]\n const p4 = [Math.min(x1, x2), Math.max(y1, y2)]\n\n const data = {\n type: 'Feature',\n geometry: {\n type: 'Polygon',\n coordinates: [[p1, p2, p3, p4, p1]]\n }\n }\n\n if (!isEmpty(map.getLayer(debugId))) {\n map.getSource(debugId).setData(data)\n } else {\n map.addLayer({\n id: debugId,\n type: 'fill',\n source: {\n type: 'geojson',\n data\n },\n paint: {\n 'fill-color': fillColor,\n 'fill-opacity': 0.3\n }\n })\n }\n\n return () => {\n if (map.getLayer(debugId)) {\n map.removeLayer(debugId)\n map.removeSource(debugId)\n }\n }\n }, [map, bbox?.toString(), id, isMapReady])\n\n return null\n}\n\nexport const ViewportDebugger = () => {\n const bbox = bboxArrayToBboxArrays(useSelector(selectViewport))\n return \n}\n\nexport const MapBboxDebugger = () => {\n const bbox = useSelector(selectMapBbox)\n return \n}\n\nexport const ActiveBboxDebugger = () => {\n const bbox = useSelector(selectMapActiveBbox)\n return \n}\n\nexport const SearchBboxDebugger = () => {\n const bbox = useSelector(selectMapSearchBbox)\n return \n}\n\nexport const StepsDebugger = () => {\n const { departure, arrival } = useSelector(selectStepsCoordinates)\n const bbox = departure && arrival ? getBboxFromLngLatPoints([departure, arrival]) : null\n return \n}\n","import React from 'react'\nimport { useMapContext } from '../MapContext'\nimport s from '../tools/ZoomButtons.less'\n\nexport default function ZoomDebugger() {\n const mapContext = useMapContext()\n const rawZoom = mapContext.map?.getZoom?.() || 0\n const zoom = Math.floor(rawZoom * 1000) / 1000\n\n return
    Zoom: {zoom}
    \n}\n","import React, { useEffect } from 'react'\nimport {\n getFromLocalStorage,\n loadJSONFromLocalStorage,\n saveJSONInLocalStorage\n} from '../../../utils/browserStorageService'\nimport FPS from './FPS'\nimport {\n ActiveBboxDebugger,\n MapBboxDebugger,\n SearchBboxDebugger,\n StepsDebugger,\n ViewportDebugger\n} from './BboxDebugger'\nimport ZoomDebugger from './ZoomDebugger'\nimport { useEffectWithMapContext } from '../MapContext'\n\nconst mapDebuggerAPI = {\n map: null,\n ui: {\n zoom: true,\n viewport: false,\n bbox: false,\n steps: false,\n activebbox: false,\n searchbbox: false,\n fps: true\n }\n}\n\nconst PREFERENCES_KEY = 'map_debug_parameters'\n\nconst MapDebuggerComponent = () => {\n useEffect(() => {\n window.mapDebugger = mapDebuggerAPI\n mapDebuggerAPI.setUIItem = (prop, show) => {\n mapDebuggerAPI.ui[prop] = show\n saveJSONInLocalStorage(PREFERENCES_KEY, { ui: mapDebuggerAPI.ui })\n }\n mapDebuggerAPI.show = prop => mapDebuggerAPI.setUIItem(prop, true)\n mapDebuggerAPI.hide = prop => mapDebuggerAPI.setUIItem(prop, false)\n const preferences = loadJSONFromLocalStorage(PREFERENCES_KEY)\n if (preferences && preferences.ui) mapDebuggerAPI.ui = preferences.ui\n return () => {\n delete window.mapDebugger\n }\n }, [])\n\n useEffectWithMapContext(map => {\n mapDebuggerAPI.map = map\n }, [])\n\n const { ui } = mapDebuggerAPI\n\n return (\n <>\n {ui.zoom && }\n {ui.viewport && }\n {ui.bbox && }\n {ui.activebbox && }\n {ui.searchbbox && }\n {ui.steps && }\n {ui.fps && }\n \n )\n}\n\nexport default function MapDebugger() {\n return getFromLocalStorage('debugMap') ? : null\n}\n","import { isGE } from '../Device'\nimport { DELAY_TO_TRIGGER_CONTEXTMENU_ON_MOBILE, MIN_INTERVAL_TO_DISTINGUISH_SGLE_FROM_DBL_TAP } from './map.constants'\nimport { install as installResizeObserverPolyfill } from 'resize-observer'\nimport debug from 'debug'\n\nconst d = debug('map')\n\nif (!window.ResizeObserver) {\n d('install ResizeObserver polyfill')\n installResizeObserverPolyfill() // For safari < 13\n}\n\nlet lastTimeout\nlet nbClick = 0\n/*\n * On double click, maplibre triggers 2 single `click` events then a `dlbclick` event...\n * Since we’re enabling fullscreen on mobile on a single click, that causes a problem.\n * The fix below handles that situation by calling default handler on single click and zooming on 2 clicks\n */\nexport const handleMobileTap = (e, mapInstance, handler, { maxZoom }) => {\n nbClick++\n if (!lastTimeout) {\n const currentZoom = mapInstance.getZoom()\n lastTimeout = setTimeout(() => {\n if (nbClick === 1) {\n handler(e)\n } else if (nbClick === 2 && currentZoom < maxZoom) {\n const where = {\n center: e.lngLat,\n zoom: currentZoom + 1\n }\n mapInstance.flyTo(where)\n }\n lastTimeout = undefined\n nbClick = 0\n }, MIN_INTERVAL_TO_DISTINGUISH_SGLE_FROM_DBL_TAP)\n }\n}\n\n/*\n * https://github.com/maplibre/maplibre-gl-js/issues/373\n */\nexport const handleMobileLongTouchAsContextMenu = mapInstance => {\n if (isGE()) return\n\n let lastTimeout\n\n mapInstance.on('touchstart', e => {\n if (e.originalEvent?.touches?.length > 1) {\n clearTimeout(lastTimeout)\n return\n }\n lastTimeout = setTimeout(\n () => mapInstance.fire({ ...e, type: 'contextmenu' }),\n DELAY_TO_TRIGGER_CONTEXTMENU_ON_MOBILE\n )\n })\n mapInstance.on('touchmove', () => clearTimeout(lastTimeout))\n mapInstance.on('touchend', () => clearTimeout(lastTimeout))\n}\n","export default class MapLoadingError extends Error {\n constructor(e) {\n super(e)\n this.originalError = e\n this.name = 'MapLoadingError'\n }\n}\n","import 'maplibre-gl/dist/maplibre-gl.css'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useAction } from '../utils/react-redux'\nimport { MapContext } from './MapContext'\nimport { Map as MapLibreMap } from 'maplibre-gl'\nimport { update, mapDestroyed, toggleFullscreen, setMapStatus, mapResetStyle } from '../../store/map/map.actions'\nimport s from './DynamicMap.less'\nimport { MAP_STORE_UPDATE_DELAY, MAP_ZOOM_MIN } from './map.constants'\nimport { isGE } from '../Device'\nimport { haveAClickMyMapFeatureAroundPointer, isPolylineAroundPointer } from '../utils/map'\nimport {\n selectMapService,\n selectCouldMapFullScreen,\n selectMapBbox,\n selectMapMaxZoom,\n selectMapStatus\n} from '../../store/map/map.selectors'\nimport {\n MAP_STATUS_INIT,\n MAP_STATUS_STYLED,\n MAPLIBRE_EVENT_MOVE,\n MAPLIBRE_EVENT_ZOOM\n} from '../../store/map/map.constants'\nimport {\n computePixelsDeltaBetweenBboxes,\n computeMapActiveBbox,\n computeSearchBbox,\n MAP_FROM_APP_ACTION_MOVE,\n MAP_FROM_APP_ACTION_PADDING,\n isWebglSupported\n} from './map.utils'\nimport { handleMobileLongTouchAsContextMenu, handleMobileTap } from './maplibre.fixes'\nimport { changeDocumentLocation } from '../../store/history/history.utils'\nimport { addParamsToUrl } from '../utils/url'\nimport { getMapSessionId } from '../analytics/BiTagger'\nimport MapLoadingError from '../error/MapLoadingError'\nimport useErrorBoundaryCallback from '../utils/useErrorBoundaryCallback'\nimport SentryService from '../error/SentryService'\nimport debug from 'debug'\nimport { useRefFromSelector } from '../utils/selector'\nimport { selectLocale } from '../../store/locale/locale.selectors'\nimport { debounce, throttle } from '../../utils/function'\n\nconst d = debug('map')\n\nconst redirectToWebGLErrorPage = error => {\n const mapLoadingError = new MapLoadingError(error)\n SentryService.captureException(mapLoadingError)\n changeDocumentLocation('/erreur-support-webgl')\n}\n\n// webpack:BrowserOnly\nconst MapProvider = ({ children }) => {\n // state\n const mapInstanceRef = useRef(null)\n const mapContainerRef = useRef()\n const [mapStyleName, setMapStyleName] = useState('')\n\n // selectors\n const storeBboxRef = useRefFromSelector(selectMapBbox)\n const couldFullScreen = useSelector(selectCouldMapFullScreen)\n const mapService = useSelector(selectMapService)\n const maxZoom = useSelector(selectMapMaxZoom)\n const mapStatus = useSelector(selectMapStatus)\n const locale = useSelector(selectLocale)\n\n // actions\n const execUpdate = useAction(update)\n const execSetMapStatus = useAction(setMapStatus)\n const execMapDestroyed = useAction(mapDestroyed)\n const execResetStyle = useAction(mapResetStyle)\n const execToggleFullscreen = useAction(toggleFullscreen)\n\n const getMapStartLocation = useCallback(() => {\n if (global.GEOIP) {\n const { lat, lng } = global.GEOIP\n delete global.GEOIP // Only at first page load\n const startLocation = {\n center: [lng, lat],\n zoom: 11\n }\n if (d.enabled) d('getMapStartLocation - GEOIP:', JSON.stringify(startLocation))\n return startLocation\n }\n const startLocation = {\n bounds: storeBboxRef.current\n }\n if (d.enabled) d('getMapStartLocation:', JSON.stringify(startLocation))\n return startLocation\n }, [])\n\n const getMapLibreglState = useCallback(\n () => ({\n bbox: mapInstanceRef.current.getBounds().toArray(),\n zoom: mapInstanceRef.current.getZoom()\n }),\n []\n )\n\n const onUpdate = useCallback((event = {}) => {\n const { fromAppAction } = event\n const { bbox, zoom } = getMapLibreglState()\n const activeBbox = computeMapActiveBbox(mapInstanceRef.current)\n const searchBbox = computeSearchBbox(mapInstanceRef.current)\n const distanceFromPreviousChange = computePixelsDeltaBetweenBboxes(\n mapInstanceRef.current,\n bbox,\n storeBboxRef.current\n )\n\n if (d.enabled) {\n d('onUpdate, distanceFromPreviousChange:', distanceFromPreviousChange, 'bbox:', bbox)\n }\n\n execUpdate({\n bbox,\n zoom,\n activeBbox,\n searchBbox,\n fromAppAction,\n distanceFromPreviousChange\n })\n }, [])\n\n const getUpdateHandler = () => {\n const delayedUpdate = debounce(onUpdate, MAP_STORE_UPDATE_DELAY)\n return (event = {}) => {\n const { fromAppAction } = event\n if (fromAppAction === MAP_FROM_APP_ACTION_PADDING) {\n onUpdate(event)\n } else {\n delayedUpdate(event)\n }\n }\n }\n\n /*\n This useEffect must be executed before the following one,\n and has no dependency with mapInstanceRef to not be re-executed when map is initialized\n */\n useEffect(() => {\n if (!mapInstanceRef.current) return\n execResetStyle()\n mapInstanceRef.current.setStyle(mapService.url)\n }, [mapService.url])\n\n const updateMapStatusOnRender = useCallback(() => {\n if (mapStatus === MAP_STATUS_STYLED) return\n if (mapInstanceRef.current.isStyleLoaded()) {\n const { name } = mapInstanceRef.current.getStyle()\n if (mapStyleName !== name) {\n setMapStyleName(name)\n execSetMapStatus(MAP_STATUS_STYLED)\n }\n }\n }, [mapStatus, mapStyleName])\n\n useEffect(() => {\n if (mapStatus === MAP_STATUS_INIT) {\n setMapStyleName('')\n }\n }, [mapStatus])\n\n useEffect(() => {\n if (!isWebglSupported()) {\n redirectToWebGLErrorPage('no-webgl-support')\n return\n }\n\n const { url: style, apikey } = mapService\n const sessionId = getMapSessionId()\n\n try {\n mapInstanceRef.current = new MapLibreMap({\n container: mapContainerRef.current,\n style,\n pitchWithRotate: false,\n dragRotate: false,\n maxZoom,\n minZoom: MAP_ZOOM_MIN,\n doubleClickZoom: isGE(), // NES-1427: Differentiate single and double click « manually » on PE, see handleMobileTap method\n keyboard: true,\n attributionControl: false,\n ...getMapStartLocation(),\n transformRequest: url => {\n const params = { sessionId }\n if (apikey) params.apikey = apikey\n return { url: addParamsToUrl(url, params), headers: { 'accept-language': locale } }\n }\n })\n handleMobileLongTouchAsContextMenu(mapInstanceRef.current)\n\n mapInstanceRef.current.touchZoomRotate.disableRotation()\n\n execSetMapStatus(MAP_STATUS_INIT)\n\n const updateHandler = getUpdateHandler()\n mapInstanceRef.current.on(MAPLIBRE_EVENT_MOVE, updateHandler)\n mapInstanceRef.current.on(MAPLIBRE_EVENT_ZOOM, updateHandler)\n\n mapInstanceRef.current.once('render', () => {\n const { bbox, zoom } = getMapLibreglState()\n const activeBbox = computeMapActiveBbox(mapInstanceRef.current)\n const searchBbox = computeSearchBbox(mapInstanceRef.current)\n\n if (d.enabled) {\n d('update on first render', bbox)\n }\n\n execUpdate({\n bbox,\n zoom,\n activeBbox,\n searchBbox,\n fromAppAction: MAP_FROM_APP_ACTION_MOVE\n }) // on first render, we want to update bbox in store (which may be France if geoip was used)\n })\n\n return () => {\n mapInstanceRef.current.off('render', updateMapStatusOnRender)\n mapInstanceRef.current.remove()\n execMapDestroyed()\n }\n } catch (e) {\n redirectToWebGLErrorPage(e)\n }\n }, [])\n\n useEffect(() => {\n const throttledUpdateMapStyle = throttle(updateMapStatusOnRender, 100)\n if (mapInstanceRef.current) {\n mapInstanceRef.current.on('render', throttledUpdateMapStyle)\n return () => {\n mapInstanceRef.current.off('render', throttledUpdateMapStyle)\n }\n }\n }, [updateMapStatusOnRender])\n\n const onMapTouchEvent = useErrorBoundaryCallback(\n e => {\n if (\n couldFullScreen &&\n !isPolylineAroundPointer(mapInstanceRef.current, e) &&\n !haveAClickMyMapFeatureAroundPointer(mapInstanceRef.current, e)\n ) {\n execToggleFullscreen()\n }\n },\n [couldFullScreen, isPolylineAroundPointer, haveAClickMyMapFeatureAroundPointer]\n )\n\n const mobileTapHandler = useErrorBoundaryCallback(\n e => {\n handleMobileTap(e, mapInstanceRef.current, onMapTouchEvent, { maxZoom })\n },\n [onMapTouchEvent]\n )\n\n useEffect(() => {\n if (!mapInstanceRef.current || isGE()) return\n\n mapInstanceRef.current.on('click', mobileTapHandler)\n return () => {\n mapInstanceRef.current.off('click', mobileTapHandler)\n }\n }, [mobileTapHandler, mapInstanceRef.current])\n\n return (\n \n
    \n {children}\n
    \n
    \n )\n}\n\nexport default MapProvider\n","// extracted by mini-css-extract-plugin\nexport default {\"DynamicMap\":\"iCSnM\",\"patchDesktopMapBorders\":\"VIvf7\"};","import { useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectMapTargetData, selectIsMapReady } from '../../store/map/map.selectors'\nimport { useMapContext } from './MapContext'\nimport { useAction } from '../utils/react-redux'\nimport { acknowledgeMove } from '../../store/map/map.actions'\nimport { bboxIsValid, MAP_FROM_APP_ACTION_MOVE } from './map.utils'\nimport { GEOLOC_MOVE_FROM_INITIAL } from '../../store/map/map.constants'\nimport SentryService from '../error/SentryService'\nimport debug from 'debug'\n\nconst d = debug('map')\n\nconst useMapMoveHandler = () => {\n const { targetBbox, targetCenter, targetOptions = {} } = useSelector(selectMapTargetData)\n const { map } = useMapContext()\n const execAcknowledgeMove = useAction(acknowledgeMove)\n const mapReady = useSelector(selectIsMapReady)\n\n useEffect(() => {\n if (!map || (!targetBbox && !targetCenter)) return\n\n execAcknowledgeMove()\n\n let move\n const options = {\n ...targetOptions,\n animate: !targetOptions.avoidAnimation,\n ...(targetOptions.withFastAnimation\n ? {\n easing: t => 1 - Math.pow(1 - t, 13)\n }\n : {})\n }\n\n const eventData = targetOptions.from === GEOLOC_MOVE_FROM_INITIAL ? {} : { fromAppAction: MAP_FROM_APP_ACTION_MOVE }\n\n if (d.enabled) {\n if (targetBbox) d('targetBbox', targetBbox, 'bboxIsValid', bboxIsValid(targetBbox))\n if (targetCenter) d('targetCenter', targetCenter)\n }\n\n if (targetBbox && bboxIsValid(targetBbox)) {\n move = () => {\n try {\n map.fitBounds(targetBbox, options, eventData)\n } catch (e) {\n SentryService.addBreadcrumb('map', `targetBbox is ${JSON.stringify(targetBbox)}`)\n SentryService.captureException(e)\n }\n }\n } else if (targetCenter) {\n move = () => {\n try {\n map.easeTo({ ...options, center: targetCenter }, eventData)\n } catch (e) {\n SentryService.addBreadcrumb('map', `targetCenter is ${JSON.stringify(targetCenter)}`)\n SentryService.captureException(e)\n }\n }\n }\n mapReady ? setTimeout(move, 0) : map.once('load', move)\n }, [map, targetBbox, targetCenter, mapReady])\n}\n\nexport default useMapMoveHandler\n","import { useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectMapTargetData } from '../../store/map/map.selectors'\nimport { useMapContext } from './MapContext'\nimport { useAction } from '../utils/react-redux'\nimport { acknowledgeZoom } from '../../store/map/map.actions'\n\nexport default function useMapZoomHandler() {\n const { targetZoom } = useSelector(selectMapTargetData)\n const { map } = useMapContext()\n const execAcknowledgeZoom = useAction(acknowledgeZoom)\n\n useEffect(() => {\n if (!map || !targetZoom) return\n\n execAcknowledgeZoom()\n\n map.zoomTo(targetZoom)\n }, [map, targetZoom])\n}\n","import { setTag, startTransaction, configureScope } from '@sentry/react'\nimport { useSelector } from 'react-redux'\nimport { selectIsVectorMap } from '../../store/map/map.selectors'\nimport { useAction } from '../utils/react-redux'\nimport { sendMapLoadingTime } from '../../store/map/map.actions'\nimport debug from 'debug'\nimport { useEffectWithMapContext } from './MapContext'\nimport { isWebglSupported } from './map.utils'\n\nconst d = debug('map')\n\nconst useMapPerfMetrics = () => {\n const vectorMap = useSelector(selectIsVectorMap)\n const execFinishMapLoading = useAction(sendMapLoadingTime)\n\n useEffectWithMapContext(map => {\n setTag('mapType', vectorMap ? 'vector' : 'raster')\n\n const mapHasGoodSupport = isWebglSupported()\n if (d.enabled) d('goodSupport', mapHasGoodSupport)\n setTag('mapGoodSupport', String(mapHasGoodSupport))\n\n const transaction = startTransaction({ name: 'map' })\n configureScope(scope => scope.setTransactionName('map'))\n\n const spanStyle = transaction.startChild({ op: 'style' })\n const spanLoad = transaction.startChild({ op: 'load' })\n map.once('styledata', () => {\n spanStyle.finish()\n })\n map.once('load', () => {\n spanLoad.finish()\n transaction.finish()\n\n const { startTimestamp = 0, endTimestamp = 0 } = spanLoad\n const loadTime = endTimestamp - startTimestamp\n if (d.enabled) d('loadTime:', loadTime)\n execFinishMapLoading({ loadTime, mapHasGoodSupport })\n })\n }, [])\n}\n\nexport default useMapPerfMetrics\n","import { useEffect } from 'react'\nimport useComputePaddingGetter from './map.padding.utils'\nimport { MAP_FROM_APP_ACTION_PADDING } from './map.utils'\nimport { useCallbackWithMapContext } from './MapContext'\nimport { isEqual } from '../../utils/lang'\n\nconst useMapPaddingHandler = () => {\n const getPadding = useComputePaddingGetter()\n\n const setPadding = useCallbackWithMapContext(\n map => {\n const padding = getPadding()\n if (!isEqual(map.getPadding(), padding)) {\n map.setPadding(padding, { fromAppAction: MAP_FROM_APP_ACTION_PADDING })\n }\n },\n [getPadding]\n )\n\n useEffect(() => {\n setPadding()\n }, [setPadding])\n}\n\nexport default useMapPaddingHandler\n","import React, { useEffect, useState } from 'react'\nimport { dispatchTag } from '../../../store/analytics/analytics.actions'\nimport { TAG_MULTIPATH_CTA } from '../../../store/analytics/analytics.actionTypes'\nimport { hideMapTooSlowTooltip, setMapTooSlowTimestamp } from '../../../store/ui/ui.actions'\nimport { selectMapTooSlowTooltip } from '../../../store/ui/ui.selectors'\nimport { PUB_TAG } from '../../analytics/PublisherTagsService'\nimport { withOnlyGE } from '../../Device'\nimport T from '../../i18n/T'\nimport SVGIcon from '../../svg/SVGIcon'\nimport { useAction, withEverySelectorTruthy } from '../../utils/react-redux'\nimport useEventCallback from '../../utils/useEventCallback'\nimport s from './MapTooSlowTooltip.less'\nimport classNames from 'classnames'\n\nconst MapTooSlowTooltip = () => {\n const execHideMapTooSlowTooltip = useAction(hideMapTooSlowTooltip)\n const execSetLastMapTooSlowTimestamp = useAction(setMapTooSlowTimestamp)\n const [visible, setVisible] = useState(true)\n\n const closeTooltip = useEventCallback(() => {\n execHideMapTooSlowTooltip()\n }, [execHideMapTooSlowTooltip])\n\n const execDispatchTag = useAction(dispatchTag)\n\n useEffect(() => {\n execDispatchTag({\n type: TAG_MULTIPATH_CTA,\n tagInfo: { tag: PUB_TAG.PUB_MAP_POP_IN_MAP_TOO_SLOW },\n isImpression: true\n })\n execSetLastMapTooSlowTimestamp()\n setTimeout(() => setVisible(false), 5000)\n }, [])\n\n return (\n
    \n
    \n

    \n \n

    \n

    \n \n

    \n
    \n
    \n \n
    \n
    \n )\n}\nexport default withOnlyGE(withEverySelectorTruthy(selectMapTooSlowTooltip)(MapTooSlowTooltip))\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"EQaTH\",\"hide\":\"WwNZv\",\"content\":\"OTy9E\",\"closeButton\":\"AdKRe\"};","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"fzgqB\",\"mainTitle\":\"rH40k\",\"button\":\"ljDKu\",\"openButton\":\"c4T7V\",\"opened\":\"fVYwR\",\"closing\":\"URVxD\",\"closeButton\":\"Lz6io\",\"layerButton\":\"o8PPQ\",\"greyedIcon\":\"_M_y1\",\"label\":\"P7kkf\",\"disabledLayerButton\":\"UPU_i\",\"disabledLabel\":\"h5kBh\",\"activeButton\":\"pB5OZ\",\"modeButton\":\"hmLHn\",\"buttonsSection\":\"eR8Ss\",\"buttonsList\":\"aovGG\",\"buttons\":\"lDjTQ\",\"title\":\"zr0K_\",\"tooltip\":\"CwsAJ\",\"highdef\":\"K7s6r\",\"highDefButton\":\"lCJDE\",\"highdefLabel\":\"Pn360\",\"informationIcon\":\"piuLg\"};","import React from 'react'\nimport classNames from 'classnames'\nimport s from './LayersButtons.less'\nimport T from '../../i18n/T'\nimport { useSelector } from 'react-redux'\nimport { selectMapMode, selectMapTheme } from '../../../store/map/map.selectors'\nimport { useAction } from '../../utils/react-redux'\nimport { setMapMode, setMapTheme } from '../../../store/map/map.actions'\nimport useEventCallback from '../../utils/useEventCallback'\nimport { MAP_THEMES, MAP_MODES } from '../../../store/map/map.constants'\nimport SVGIcon from '../../svg/SVGIcon'\n\nexport const ModeLayerButton = ({ icon, id, disabled }) => {\n const execSetMode = useAction(setMapMode)\n const active = id === useSelector(selectMapMode)\n\n if (active && disabled) execSetMode(MAP_MODES.neutral)\n\n const onClick = useEventCallback(() => execSetMode(active ? MAP_MODES.neutral : id), [execSetMode, active, id])\n\n return (\n \n
    \n \n
    \n \n \n \n
    \n )\n}\n\nexport const ThemeLayerButton = ({ icon, id, disabled }) => {\n const execSetTheme = useAction(setMapTheme)\n const active = id === useSelector(selectMapTheme)\n\n if (active && disabled) execSetTheme(MAP_THEMES.normal)\n\n const onClick = useEventCallback(() => execSetTheme(active ? MAP_THEMES.normal : id), [execSetTheme, active, id])\n\n return (\n \n
    \n \n
    \n \n \n \n \n )\n}\n","import React from 'react'\nimport T, { useT } from '../../i18n/T'\nimport SVGIcon from '../../svg/SVGIcon'\nimport s from './HdTooltip.less'\n\nconst HdTooltip = ({ onClick }) => (\n
    \n
    \n \n
    \n

    \n \n

    \n \n
    \n)\n\nexport default HdTooltip\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"n4KB4\",\"title\":\"lsqv2\",\"content\":\"Gafo6\",\"closeButton\":\"aZV0Y\"};","import classNames from 'classnames'\nimport React, { useState, useCallback } from 'react'\nimport { useAction, withEverySelectorTruthy } from '../../utils/react-redux'\nimport { selectShouldDisplayMapTools } from '../../../store/ui/ui.selectors'\nimport { isGE } from '../../Device'\nimport T from '../../i18n/T'\nimport SVGIcon from '../../svg/SVGIcon'\nimport { ModeLayerButton, ThemeLayerButton } from './LayerButton'\nimport s from './LayersButtons.less'\nimport { MAP_MODES, MAP_THEMES } from '../../../store/map/map.constants'\nimport ThemeStandard from './theme-standard.svg'\nimport ThemeSimple from './theme-simple.svg'\nimport ThemeNature from './theme-nature.svg'\nimport ThemeDark from './theme-dark.svg'\nimport ThemeSatellite from './theme-satellite.png'\nimport { UI_ELEMENTS } from '../../../store/ui/ui.constants'\nimport useUIDisplay from '../../ui/useUIDisplay'\nimport Modal from '../../genericComponents/Modal'\nimport useTooltip from '../tools/useTooltip'\nimport { useSelector } from 'react-redux'\nimport { hideMapTooSlowTooltip } from '../../../store/ui/ui.actions'\nimport SwitchInput from '../../utils/SwitchInput'\nimport { selectIsVectorMap } from '../../../store/map/map.selectors'\nimport { switchMapType } from '../../../store/map/map.actions'\nimport informationImg from './information.png'\nimport HdTooltip from '../vector/HdTooltip'\nimport useEventCallback from '../../utils/useEventCallback'\nimport { dispatchTag } from '../../../store/analytics/analytics.actions'\nimport { TAG_CLICK_TOGGLE_HD_MAP } from '../../../store/analytics/analytics.actionTypes'\nimport { ACTION, CLICK_TAG } from '../../analytics/ClickTagsService'\n\nconst THEME = 'theme'\nconst MODE = 'mode'\n\nconst buttons = [\n {\n key: MAP_THEMES.normal,\n icon: ThemeStandard,\n type: THEME,\n availableInRaster: true\n },\n {\n key: MAP_THEMES.simple,\n icon: ThemeSimple,\n type: THEME,\n availableInRaster: false\n },\n {\n key: MAP_THEMES.nature,\n icon: ThemeNature,\n type: THEME,\n availableInRaster: false\n },\n {\n key: MAP_THEMES.satellite,\n icon: ThemeSatellite,\n type: THEME,\n availableInRaster: true\n },\n {\n key: MAP_THEMES.dark,\n icon: ThemeDark,\n type: THEME,\n availableInRaster: false\n },\n {\n key: MAP_MODES.neutral,\n icon: 'neutral',\n type: MODE,\n availableInRaster: true\n },\n {\n key: MAP_MODES.traffic,\n icon: 'traffic-outline',\n type: MODE,\n availableInRaster: true\n },\n {\n key: MAP_MODES.zfe,\n icon: 'critair-outline',\n type: MODE,\n availableInRaster: false\n },\n {\n key: MAP_MODES.bicycle,\n icon: 'bike-outline',\n type: MODE,\n availableInRaster: true\n },\n {\n key: MAP_MODES.tc,\n icon: 'subway-outline',\n type: MODE,\n availableInRaster: true\n }\n]\n\nconst LayersButtons = () => {\n const [display, setDisplay] = useState('close')\n const { tooltip: hdTooltipDisplayed, setTooltip: setHdTooltip } = useTooltip()\n const { tooltip, setTooltip, mouseListeners } = useTooltip()\n const isOpened = display === 'opened'\n const isClosing = display === 'closing'\n const { showUI, hideUI } = useUIDisplay(UI_ELEMENTS.MAP_TOOLS_PE)\n const execHideMapTooSlowTooltip = useAction(hideMapTooSlowTooltip)\n const isVecto = useSelector(selectIsVectorMap)\n const execDispatchTag = useAction(dispatchTag)\n const execSwitchMapType = useAction(switchMapType)\n\n const switchHighDefMap = useCallback(() => {\n execSwitchMapType()\n execDispatchTag({\n type: TAG_CLICK_TOGGLE_HD_MAP,\n tagInfo: { tag: CLICK_TAG.XTC_CARTE_HD_OFF, [ACTION]: isVecto ? 'HD_off' : 'HD_on' }\n })\n }, [execSwitchMapType])\n\n const switchHdTooltip = useEventCallback(() => setHdTooltip(!hdTooltipDisplayed), [setHdTooltip, hdTooltipDisplayed])\n\n const closeModes = () => {\n setDisplay('closing')\n setDisplay('closed')\n hideUI()\n }\n\n const onOpenClick = () => {\n setDisplay('opened')\n setTooltip(false)\n showUI()\n execHideMapTooSlowTooltip()\n }\n\n const Buttons = () => {\n return (\n
    \n
    \n \n
    \n
    closeModes()}>\n
    \n \n
    \n
    \n {isGE() && (\n
    \n
    \n
    \n \n

    \n \n

    \n
    \n \n {hdTooltipDisplayed && }\n
    \n
    \n )}\n
    \n
    \n \n
    \n
    \n {buttons\n .filter(({ type }) => type === THEME)\n .map(({ type, key, icon, availableInRaster }) => (\n \n ))}\n
    \n
    \n
    \n
    \n \n
    \n
    \n {buttons\n .filter(({ type }) => type === MODE)\n .map(({ type, key, icon, availableInRaster }) => (\n \n ))}\n
    \n
    \n
    \n )\n }\n\n return (\n
    \n {isGE() ? (\n \n ) : (\n \n \n \n )}\n
    \n \n
    \n \n
    \n
    \n \n \n \n
    \n )\n}\n\nexport default withEverySelectorTruthy(selectShouldDisplayMapTools())(LayersButtons)\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport useClickMyMapLayers from './useClickMyMapLayers'\nimport useMapMoveHandler from '../useMapMoveHandler'\nimport useMapZoomHandler from '../useMapZoomHandler'\nimport useMapPerfMetrics from '../useMapPerfMetrics'\nimport useMapPaddingHandler from '../useMapPaddingHandler'\nimport useMapPointerHandler from '../useMapPointerHandler'\nimport MapTooSlowTooltip from './MapTooSlowTooltip'\nimport LayersButtons from '../common/LayersButtons'\nimport { selectShouldDisplayMapLayersButton } from '../../../store/map/map.selectors'\n\nconst VectorMap = () => {\n useClickMyMapLayers()\n useMapPointerHandler()\n useMapMoveHandler()\n useMapZoomHandler()\n useMapPaddingHandler()\n useMapPerfMetrics()\n\n const shouldDisplayMapLayersButton = useSelector(selectShouldDisplayMapLayersButton)\n\n return shouldDisplayMapLayersButton ? null : (\n <>\n \n \n \n )\n}\n\nexport default VectorMap\n","import { useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useMapContext } from '../MapContext'\nimport { useAction } from '../../utils/react-redux'\nimport { selectMapStatus } from '../../../store/map/map.selectors'\nimport { LAYER_ID_CMM, MAP_STATUS_STYLED } from '../../../store/map/map.constants'\nimport { navigateTo } from '../../../store/history/history.actions'\nimport { dispatchTag } from '../../../store/analytics/analytics.actions'\nimport { TAG_CLICK_MY_MAP } from '../../../store/analytics/analytics.actionTypes'\nimport { ROUTE_SEO_GEOENTITY } from '../../../routes'\nimport { resetGeoentities } from '../../../store/geoentity/geoentity.actions'\nimport { selectIsFrenchSite } from '../../../store/locale/locale.selectors'\n\nconst useClickMyMapLayers = () => {\n const { map } = useMapContext()\n const status = useSelector(selectMapStatus)\n const execNavigateTo = useAction(navigateTo)\n const execDispatchTag = useAction(dispatchTag)\n const execResetGeoentities = useAction(resetGeoentities)\n const isFrenchSite = useSelector(selectIsFrenchSite)\n\n const navigateToPoi = ({ id, rubricId }) => {\n execDispatchTag({\n type: TAG_CLICK_MY_MAP,\n tagInfo: {\n catId: rubricId\n }\n })\n\n execResetGeoentities()\n execNavigateTo({\n route: ROUTE_SEO_GEOENTITY,\n routeOptions: { geoentityId: id }\n })\n }\n\n const onClick = e => {\n const id = e.features[0].properties.mappy_poi_id\n const rubricId = e.features[0].properties.mappy_context_rubric\n\n navigateToPoi({ id, rubricId })\n }\n\n useEffect(() => {\n if (!map || status !== MAP_STATUS_STYLED) return\n\n map\n .getStyle()\n .layers.filter(layer => layer.layout && layer.layout.visibility)\n .forEach(({ id }) => {\n if (id.match(LAYER_ID_CMM)) {\n map.setLayoutProperty(id, 'visibility', 'visible')\n if (isFrenchSite) {\n map.on('click', id, onClick)\n }\n }\n })\n\n return () => {\n if (map && map.getStyle())\n map\n .getStyle()\n .layers.filter(layer => layer.layout && layer.layout.visibility)\n .forEach(({ id }) => {\n if (isFrenchSite) {\n map.off('click', id, onClick)\n }\n })\n }\n }, [map, status, isFrenchSite])\n}\n\nexport default useClickMyMapLayers\n","import { useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectIsMapReady } from '../../store/map/map.selectors'\nimport { useMapContext } from './MapContext'\nimport useErrorBoundaryCallback from '../utils/useErrorBoundaryCallback'\nimport { getBBoxAroundPointer } from '../utils/map'\nimport { LAYER_ID_CMM, LAYER_ID_POLYLINE } from '../../store/map/map.constants'\nimport { isGE } from '../Device'\nimport { selectIsFrenchSite } from '../../store/locale/locale.selectors'\nimport { selectQuizGuessInProgress } from '../../store/quiz/quiz.selectors'\n\nconst useMapPointerHandler = () => {\n const { map } = useMapContext()\n const mapReady = useSelector(selectIsMapReady)\n const isFrenchSite = useSelector(selectIsFrenchSite)\n const quizGuessInProgress = useSelector(selectQuizGuessInProgress)\n\n const getPolylinesOrCmmLayersAroundPointer = useErrorBoundaryCallback(\n event =>\n map.queryRenderedFeatures(getBBoxAroundPointer(event)).find(feature => {\n const layerId = feature.layer?.id ?? ''\n const polyline = LAYER_ID_POLYLINE.test(layerId)\n const cmm = isFrenchSite ? LAYER_ID_CMM.test(layerId) : false\n return polyline || cmm\n }),\n [map, isFrenchSite]\n )\n\n const handleMouseOver = useErrorBoundaryCallback(\n e => {\n const shouldDisplayPointer = getPolylinesOrCmmLayersAroundPointer(e)\n map.getCanvas().style.cursor = quizGuessInProgress ? 'crosshair' : shouldDisplayPointer ? 'pointer' : ''\n },\n [map, getPolylinesOrCmmLayersAroundPointer, quizGuessInProgress]\n )\n\n useEffect(() => {\n if (isGE()) {\n if (map && mapReady) map.on('mousemove', handleMouseOver)\n return () => {\n if (map) map.off('mousemove', handleMouseOver)\n }\n }\n }, [map, mapReady, handleMouseOver])\n}\n\nexport default useMapPointerHandler\n","import { isGE } from '../../Device'\nimport { useAction } from '../../utils/react-redux'\nimport { requestZoom } from '../../../store/map/map.actions'\nimport { getMapActiveDimensions } from '../map.utils'\nimport useTimeout from '../../utils/useTimeout'\nimport { noop } from '../../../utils/function'\nimport { MAP_ZOOM_STEP, MAP_RASTER_ZOOM_MAX, MAP_ZOOM_MIN } from '../map.constants'\nimport { useCallbackWithMapContext, useEffectWithMapContext } from '../MapContext'\n\nconst zoomThreshold = isGE() ? 0.9 : 0.8\nconst stripDecimal = val => (val - Math.floor(val) > zoomThreshold ? Math.round(val) : Math.floor(val))\n\nexport const fixZoomMethods = map => {\n const methodsToOverride = ['flyTo', 'zoomTo', 'easeTo', 'jumpTo', 'setZoom']\n methodsToOverride.forEach(methodName => {\n const originalMethod = map[methodName]\n map[`original${methodName}`] = originalMethod\n map[methodName] = (...args) => {\n const zoomAsFirstArg = typeof args[0] === 'number'\n if (zoomAsFirstArg) {\n args[0] = stripDecimal(args[0])\n } else if (args[0].zoom && typeof args[0].zoom === 'number') {\n args[0].zoom = stripDecimal(args[0].zoom)\n }\n return originalMethod.apply(map, args)\n }\n })\n}\n\nexport default function useIntegerZoom() {\n const execRequestZoom = useAction(requestZoom)\n const [setTouchTimeout, clearTouchTimeout, isTouchTimeoutPending] = useTimeout(300)\n\n const zoomTo = useCallbackWithMapContext((map, z, options = {}) => {\n if (!options.duration) options.duration = 400\n const increase = z > map.getZoom()\n if (increase) {\n z = Math.ceil(z)\n if (z > MAP_RASTER_ZOOM_MAX) z = MAP_RASTER_ZOOM_MAX\n } else {\n z = Math.floor(z)\n if (z < MAP_ZOOM_MIN) z = MAP_ZOOM_MIN\n }\n map.zoomTo(z, options)\n })\n\n const getZoomOffset = useCallbackWithMapContext((map, event) => {\n const padding = map.getPadding()\n const { width, height } = getMapActiveDimensions(map)\n const centerX = width / 2 + padding.left\n const centerY = height / 2 + padding.top\n const x = event?.originalEvent?.layerX ?? centerX\n const y = event?.originalEvent?.layerY ?? centerY\n return [x - centerX, y - centerY]\n }, [])\n\n const handleInitialZoom = useCallbackWithMapContext(map => {\n const zoom = stripDecimal(map.getZoom())\n execRequestZoom({ zoom })\n })\n\n const handleWheel = useCallbackWithMapContext(\n (map, event) => {\n let delta = MAP_ZOOM_STEP\n if (event.originalEvent.deltaY > 0) delta *= -1\n const z = map.getZoom() + delta\n zoomTo(z, { offset: getZoomOffset(event) })\n },\n [getZoomOffset]\n )\n\n const handleDblClick = useCallbackWithMapContext((map, event) => {\n let delta = MAP_ZOOM_STEP\n if (event.originalEvent.shiftKey) delta *= -1\n zoomTo(map.getZoom() + delta, { around: event.lngLat })\n })\n\n const handleTouch = useCallbackWithMapContext(\n event => {\n if (!isTouchTimeoutPending()) {\n setTouchTimeout(noop)\n return\n }\n clearTouchTimeout()\n handleDblClick(event)\n },\n [isTouchTimeoutPending]\n )\n\n useEffectWithMapContext(map => {\n fixZoomMethods(map)\n map.once('styledata', handleInitialZoom)\n map.on('wheel', event => handleWheel(event))\n map.on('touch', event => handleTouch(event))\n map.scrollZoom.disable()\n map.doubleClickZoom.disable()\n if (isGE()) map.on('dblclick', event => handleDblClick(event))\n }, [])\n\n return null\n}\n","import React from 'react'\nimport useLayersManager from './useLayersManager'\nimport useIntegerZoom from './useIntegerZoom'\nimport useMapZoomHandler from '../useMapZoomHandler'\nimport useMapPerfMetrics from '../useMapPerfMetrics'\nimport useMapMoveHandler from '../useMapMoveHandler'\nimport useMapPaddingHandler from '../useMapPaddingHandler'\nimport LayersButtons from '../common/LayersButtons'\n\nconst RasterMap = () => {\n useLayersManager()\n useIntegerZoom()\n useMapMoveHandler()\n useMapZoomHandler()\n useMapPaddingHandler()\n useMapPerfMetrics()\n\n return (\n <>\n \n \n )\n}\n\nexport default RasterMap\n","import { useMapContext } from '../MapContext'\nimport { useSelector } from 'react-redux'\nimport { selectMapMode, selectMapStatus, selectMapTheme } from '../../../store/map/map.selectors'\nimport { useEffect, useState } from 'react'\nimport { MAP_MODES, MAP_STATUS_STYLED, MAP_THEMES } from '../../../store/map/map.constants'\nimport { isGE, isRetina } from '../../Device'\n\nconst getRasterLayerAccordingDevice = id => new RegExp(`^${id}${isGE() ? '' : '_hd'}$`)\n\nconst useLayersManager = () => {\n const { map } = useMapContext()\n const [layersDefaultVisibility, setLayersDefaultVisibility] = useState([])\n const status = useSelector(selectMapStatus)\n const mapMode = useSelector(selectMapMode)\n const mapTheme = useSelector(selectMapTheme)\n\n useEffect(() => {\n if (!map || status !== MAP_STATUS_STYLED) return\n\n map.setLayoutProperty('simple-tiles-desktop', 'visibility', !isRetina() ? 'visible' : 'none')\n map.setLayoutProperty('simple-tiles-mobile', 'visibility', isRetina() ? 'visible' : 'none')\n\n const visibilities = map\n .getStyle()\n .layers.filter(layer => layer.layout && layer.layout.visibility)\n .map(({ id, layout }) => ({ id, visibility: layout.visibility }))\n\n setLayersDefaultVisibility(visibilities)\n }, [map, status])\n\n useEffect(() => {\n if (!map || layersDefaultVisibility.length === 0) return\n layersDefaultVisibility.forEach(layer => {\n let visibility = layer.visibility\n if (mapTheme === MAP_THEMES.satellite && layer.id.match(/_photo$/)) {\n visibility = 'visible'\n } else if (mapMode === MAP_MODES.tc && layer.id.match(/public_transport/)) {\n visibility = 'visible'\n } else if (mapMode === MAP_MODES.traffic && layer.id.match(/_traffic_vecto$/)) {\n visibility = 'visible'\n } else if (mapMode === MAP_MODES.bicycle && layer.id.match(getRasterLayerAccordingDevice('bicycle'))) {\n visibility = 'visible'\n } else if (mapTheme === MAP_THEMES.satellite) {\n visibility = 'none'\n }\n map.setLayoutProperty(layer.id, 'visibility', visibility)\n })\n }, [map, layersDefaultVisibility, mapMode, mapTheme])\n}\n\nexport default useLayersManager\n","import { useEffect, useMemo } from 'react'\nimport { useMapContext } from '../MapContext'\nimport { selectAddressContour } from '../../../store/address/address.selectors'\nimport { useSelector } from 'react-redux'\nimport { withMapReady } from '../map.utils'\nimport { reverseShape } from './map.polygon.utils'\nimport { withEverySelectorTruthy } from '../../utils/react-redux'\n\nconst SOURCE_ID_AREA = 'city-shape-area-src'\nconst SOURCE_ID_LIMIT = 'city-shape-limit-src'\nconst LAYER_AREA_ID = 'city-shape-area'\nconst LAYER_LIMIT_ID = 'city-shape-limit'\nconst CONTOUR_COLOR = '#1A1A1A'\n\nconst getPolygonLayer = () => ({\n id: LAYER_AREA_ID,\n type: 'fill',\n source: SOURCE_ID_AREA,\n paint: {\n 'fill-opacity': 0.18,\n 'fill-color': CONTOUR_COLOR\n }\n})\n\nconst getLineLayer = () => ({\n id: LAYER_LIMIT_ID,\n type: 'line',\n source: SOURCE_ID_LIMIT,\n paint: {\n 'line-opacity': 0.7,\n 'line-width': 2,\n 'line-color': CONTOUR_COLOR,\n 'line-dasharray': [1, 2]\n }\n})\n\nconst createGeoJSON = geometry => ({\n type: 'geojson',\n data: {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n properties: {},\n geometry\n }\n ]\n }\n})\n\nconst MapAddressContour = ({ reverse = true }) => {\n const { map } = useMapContext()\n const contour = useSelector(selectAddressContour)\n const shape = useMemo(() => (contour && reverse ? reverseShape(contour) : contour), [reverse, contour])\n\n const cleanShape = () => {\n if (!map || !map.getLayer(LAYER_AREA_ID)) return\n map.removeLayer(LAYER_AREA_ID)\n map.removeLayer(LAYER_LIMIT_ID)\n map.removeSource(SOURCE_ID_AREA)\n map.removeSource(SOURCE_ID_LIMIT)\n }\n\n const drawShape = () => {\n if (!shape) return\n map.addSource(SOURCE_ID_AREA, createGeoJSON(shape))\n map.addSource(SOURCE_ID_LIMIT, createGeoJSON(contour))\n map.addLayer(getPolygonLayer())\n map.addLayer(getLineLayer())\n }\n\n useEffect(() => {\n drawShape()\n return () => cleanShape()\n }, [shape])\n\n return null\n}\n\nexport default withMapReady(withEverySelectorTruthy(selectAddressContour)(MapAddressContour))\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport GeolocMarker from './markers/GeolocMarker'\nimport TrafficLegend from './tools/TrafficLegend'\nimport ZoomButtons from './tools/ZoomButtons'\nimport Scale from './tools/Scale'\nimport Copyrights from './tools/Copyrights'\nimport Logo from './tools/Logo'\nimport ToggleFullscreenButton from './tools/ToggleFullscreenButton'\nimport OutdoorButton from './tools/OutdoorButton'\nimport Popup from './popup/Popup'\nimport UPI from '../outdoor/UPI'\nimport { selectIsQuizPage } from '../../store/history/history.selectors'\nimport GeolocButton from './tools/GeolocButton'\nimport Geolocation from './Geolocation'\nimport ContextMenu from './contextmenu/ContextMenu'\nimport MapDebugger from './debug/MapDebugger'\nimport MapProvider from './MapProvider'\nimport { selectIsVectorMap } from '../../store/map/map.selectors'\nimport VectorMap from './vector/VectorMap'\nimport RasterMap from './raster/RasterMap'\nimport MapAddressContour from './shape/MapAddressContour'\n\n// webpack:BrowserOnly\nconst DynamicMap = ({ children }) => {\n const pageIsQuiz = useSelector(selectIsQuizPage)\n const vectorMap = useSelector(selectIsVectorMap)\n\n return (\n \n {/* Order matters : at least for GeolocMarker and GeolocButton */}\n \n \n \n \n \n \n \n {!pageIsQuiz && }\n \n \n \n \n \n \n \n {vectorMap ? : }\n {children}\n \n )\n}\n\nexport default DynamicMap\n","\n export default function () {\n return null\n }\n ","import React from 'react'\nimport DynamicMap from './DynamicMap'\nimport StaticMap from './StaticMap'\nimport './StaticMap.less'\n\nexport default function Map(props) {\n return (\n <>\n {props.staticMap}\n \n \n )\n}\n","import React, { useCallback, useContext, useEffect } from 'react'\n\nexport const MapContext = React.createContext(undefined)\n\nexport const useMapContext = () => useContext(MapContext)\n\nexport const useEffectWithMapContext = (fn, deps) => {\n const { map } = useMapContext()\n\n useEffect(() => (map ? fn(map) : undefined), [map, ...deps])\n}\n\nexport const useCallbackWithMapContext = (fn, deps = []) => {\n const { map } = useMapContext()\n return useCallback(\n (...args) => {\n if (!map) return\n return fn(map, ...args)\n },\n [map, ...deps]\n )\n}\n","import React from 'react'\nimport { buildForceColorFullString } from '../utils/css'\n\nexport const itemClassName = 'categorySubItem'\nexport const iconClassName = 'categorySubItemIcon'\n\nconst CategorySubMenuStyle = ({ color }) => {\n const catColorString = buildForceColorFullString(color)\n const whiteColorString = buildForceColorFullString('white')\n\n return (\n \n )\n}\n\nexport default CategorySubMenuStyle\n","import React from 'react'\nimport { navigateToSearchByApp, navigateToPoisOnRouteByApp } from '../../store/history/history.actions'\nimport { TAG_CLICK_CATEGORY_BAR } from '../../store/analytics/analytics.actionTypes'\nimport { dispatchTag } from '../../store/analytics/analytics.actions'\nimport { APP_OR_SUBCAT_ID, CAT_ID } from '../analytics/ClickTagsService'\nimport { useAction } from '../utils/react-redux'\nimport s from './MenuSubCategoryItem.less'\nimport { itemClassName } from './CategorySubMenuStyle'\nimport classnames from 'classnames'\nimport { selectIsPageElligibleForPoisOnRoute } from '../../store/history/history.selectors'\nimport { useSelector } from 'react-redux'\n\nconst MenuApplicationItem = ({ id, logo, name, categoryId, onClick }) => {\n const execNavigateToSmrByApp = useAction(navigateToPoisOnRouteByApp)\n const execDispatchTag = useAction(dispatchTag)\n const execNavigateToSearchByApp = useAction(navigateToSearchByApp)\n\n const isPageElligibleForPoisOnRoute = useSelector(selectIsPageElligibleForPoisOnRoute)\n\n const onApplicationClick = (categoryId, appId) => e => {\n execDispatchTag({\n type: TAG_CLICK_CATEGORY_BAR,\n tagInfo: {\n [CAT_ID]: categoryId,\n [APP_OR_SUBCAT_ID]: appId\n }\n })\n\n if (isPageElligibleForPoisOnRoute) {\n execNavigateToSmrByApp(id)\n } else {\n execNavigateToSearchByApp(appId)\n }\n onClick()\n }\n\n return (\n
  • \n \n \n \n {name}\n
  • \n )\n}\n\nexport default MenuApplicationItem\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"foxyP\",\"header\":\"IEtW9\",\"title\":\"DKLdx\",\"close\":\"jzokH\",\"itemsWrapper\":\"OFFcm\",\"items\":\"PkQ7E\"};","import React from 'react'\nimport s from './MenuSubCategoriesPE.less'\nimport { useSelectorWithProps } from '../utils/react-redux'\nimport { selectSubCategoriesMenu, selectCategoriesItemById } from '../../store/poiassets/poiassets.selectors'\nimport MenuSubCategoryItem from './MenuSubCategoryItem'\nimport MenuApplicationItem from './MenuApplicationItem'\nimport SVGIcon from '../svg/SVGIcon'\nimport usePublisherBarreCategorieTag from './usePublisherBarreCategorieTag'\nimport CategorySubMenuStyle from './CategorySubMenuStyle'\n\nconst MenuSubCategoriesPE = ({ categoryId, onMouseLeaveMenu }) => {\n const { subcategories, apps, color } = useSelectorWithProps(selectSubCategoriesMenu, { id: categoryId })\n const { label } = useSelectorWithProps(selectCategoriesItemById, { id: categoryId })\n\n usePublisherBarreCategorieTag(categoryId)\n\n if (!categoryId) return null\n\n return (\n
    \n
    \n
    \n \n
    \n

    {label}

    \n
    \n
    \n
      \n {subcategories.map(({ id, iconId, label, rubricIds }) => (\n \n ))}\n
    \n
      \n {apps.map(({ id, mob_roundImage, name }) => (\n \n ))}\n
    \n \n
    \n
    \n )\n}\n\nexport default MenuSubCategoriesPE\n","import React, { useEffect, useState } from 'react'\nimport s from './MenuCategoriesPE.less'\nimport { useSelector } from 'react-redux'\nimport { loadPoiAssetsConfiguration } from '../../store/poiassets/poiassets.actions'\nimport { selectCategoriesMenu } from '../../store/poiassets/poiassets.selectors'\nimport MenuSubCategoriesPE from './MenuSubCategoriesPE'\nimport MenuCategoryItem from './MenuCategoryItem'\nimport { withEmptyFallbackErrorBoundary } from '../error/EmptyFallbackErrorBoundary'\nimport { useAction } from '../utils/react-redux'\nimport useUIDisplay from '../ui/useUIDisplay'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\nimport { isPE } from '../Device'\nimport { selectIsFrenchSite } from '../../store/locale/locale.selectors'\n\nconst MenuCategoriesPE = () => {\n const [categoryId, setCategoryId] = useState()\n const execLoadPoiAssetsConfiguration = useAction(loadPoiAssetsConfiguration)\n useEffect(() => {\n execLoadPoiAssetsConfiguration()\n }, [execLoadPoiAssetsConfiguration])\n const categories = useSelector(selectCategoriesMenu)\n const { showUI, hideUI } = useUIDisplay(UI_ELEMENTS.MENU_PE)\n\n const onTap = id => e => {\n const shouldHide = categoryId === id\n setCategoryId(shouldHide ? null : id)\n shouldHide ? hideUI() : showUI()\n }\n if (!categories || !categories.length) return null\n\n return (\n
    \n
      \n {categories.map(({ id, shortLabel, iconId, color }) => (\n \n ))}\n
    \n {categoryId && }\n
    \n )\n}\n\nexport const isMenuCategoriesPEAvailable = getState => isPE() && selectIsFrenchSite(getState())\n\nexport default withEmptyFallbackErrorBoundary(MenuCategoriesPE)\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"V0HtR\",\"categories\":\"igsQL\"};","import React from 'react'\nimport SVGIcon from '../svg/SVGIcon'\nimport s from './MenuCategoryItem.less'\nimport { buildStyleAttributes, hexToRgb } from '../utils/css'\n\nconst MenuCategoryItem = ({ id, shortLabel, iconId, color, selected, active, onMouseOver, onCategoryClick }) => {\n const labelStyle = {}\n const iconStyle = {}\n\n if (selected) {\n iconStyle.borderColor = color\n iconStyle.backgroundColor = color\n iconStyle.fill = 'white'\n labelStyle.color = color\n } else if (active) {\n iconStyle.borderColor = hexToRgb(color, 0.5)\n iconStyle.fill = color\n }\n\n return (\n
  • \n
    \n \n {__BROWSER__ && }\n \n \n {shortLabel}\n \n
    \n
  • \n )\n}\n\nexport default MenuCategoryItem\n","// extracted by mini-css-extract-plugin\nexport default {\"category\":\"yS3Nd\",\"categoryItem\":\"pR5H5\",\"categoryLabel\":\"XeZhr\",\"categoryIcon\":\"Dc0cl\"};","import React from 'react'\nimport s from './MenuSubCategoryItem.less'\nimport SVGIcon from '../svg/SVGIcon'\nimport { navigateToSearchBySubcategory, navigateToPoisOnRouteBySubcategory } from '../../store/history/history.actions'\nimport { TAG_CLICK_CATEGORY_BAR } from '../../store/analytics/analytics.actionTypes'\nimport { dispatchTag } from '../../store/analytics/analytics.actions'\nimport { APP_OR_SUBCAT_ID, CAT_ID } from '../analytics/ClickTagsService'\nimport { useAction } from '../utils/react-redux'\nimport classnames from 'classnames'\nimport { iconClassName, itemClassName } from './CategorySubMenuStyle'\nimport { useSelector } from 'react-redux'\nimport { selectIsPageElligibleForPoisOnRoute } from '../../store/history/history.selectors'\n\nconst MenuSubCategoryItem = ({ id, categoryId, iconId, label, onClick }) => {\n const execNavigateToSmrBySubCategory = useAction(navigateToPoisOnRouteBySubcategory)\n const execDispatchTag = useAction(dispatchTag)\n const execNavigateToSearchBySubcategory = useAction(navigateToSearchBySubcategory)\n\n const isPageElligibleForPoisOnRoute = useSelector(selectIsPageElligibleForPoisOnRoute)\n\n const onSubCategoryClick = () => e => {\n execDispatchTag({\n type: TAG_CLICK_CATEGORY_BAR,\n tagInfo: {\n [CAT_ID]: categoryId,\n [APP_OR_SUBCAT_ID]: id\n }\n })\n\n if (isPageElligibleForPoisOnRoute) {\n execNavigateToSmrBySubCategory(id)\n } else {\n execNavigateToSearchBySubcategory(id)\n }\n onClick()\n }\n\n return (\n
  • \n \n \n \n {label}\n
  • \n )\n}\n\nexport default MenuSubCategoryItem\n","import { useEffect } from 'react'\nimport { dispatchTag } from '../../store/analytics/analytics.actions'\nimport { TAG_MULTIPATH_CTA } from '../../store/analytics/analytics.actionTypes'\nimport { PUB_TAG } from '../analytics/PublisherTagsService'\nimport { useAction } from '../utils/react-redux'\nimport useTimeout from '../utils/useTimeout'\n\nexport default function usePublisherBarreCategorieTag(categoryId) {\n const execDispatchTag = useAction(dispatchTag)\n const [setPublisherTagTimeout, clearPublisherTagTimeout] = useTimeout(1000)\n\n useEffect(() => {\n setPublisherTagTimeout(() =>\n execDispatchTag({\n type: TAG_MULTIPATH_CTA,\n tagInfo: { tag: PUB_TAG.PUB_AFFICHAGE_BARRECATEGORIE, catId: categoryId },\n isImpression: true\n })\n )\n return clearPublisherTagTimeout\n }, [categoryId])\n}\n","export const KEYS = {\n DOWN: 'ArrowDown',\n UP: 'ArrowUp',\n ENTER: 'Enter',\n TAB: 'Tab',\n SHIFT: 'Shift'\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"SuggestContent\":\"EZNio\",\"SuggestTitle\":\"QoZV9\"};","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectIsUserAccountEnabled, selectIsUserConnected } from '../../store/userAccount/userAccount.selectors'\nimport SuggestContentList from './SuggestContentList'\nimport T from '../i18n/T'\nimport { selectIsSuggestInputValueEmpty } from '../../store/suggest/suggest.selectors'\nimport s from './SuggestContent.less'\nimport { isEmpty } from '../../utils/lang'\n\nconst SuggestFavoritesContent = ({ suggestionsFavorites, idxStartAt, selectedId, updateSelectedId, onClick }) => {\n const isInputValueEmpty = useSelector(selectIsSuggestInputValueEmpty)\n const isConnected = useSelector(selectIsUserConnected)\n const isUserAccountAvailable = useSelector(selectIsUserAccountEnabled)\n const hasFavoriteSuggests = !isConnected ? isUserAccountAvailable : !isEmpty(suggestionsFavorites)\n\n if (!isUserAccountAvailable) return null\n\n return (\n <>\n {hasFavoriteSuggests && isInputValueEmpty && (\n
    \n \n \n \n
    \n )}\n\n \n \n )\n}\n\nexport default SuggestFavoritesContent\n","import React from 'react'\nimport T from '../i18n/T'\nimport { selectIsSuggestInputValueEmpty } from '../../store/suggest/suggest.selectors'\nimport { useSelector } from 'react-redux'\nimport SuggestContentList from './SuggestContentList'\nimport s from './SuggestContent.less'\nimport { isEmpty } from '../../utils/lang'\n\nconst SuggestSearchHistoryContent = ({\n suggestionsSearchHistory,\n idxStartAt,\n selectedId,\n updateSelectedId,\n onClick\n}) => {\n const isInputValueEmpty = useSelector(selectIsSuggestInputValueEmpty)\n const hasSearchHistorySuggests = !isEmpty(suggestionsSearchHistory)\n\n return (\n <>\n {hasSearchHistorySuggests && isInputValueEmpty && (\n
    \n \n \n \n
    \n )}\n\n \n \n )\n}\nexport default SuggestSearchHistoryContent\n","import React from 'react'\nimport SuggestContentList from './SuggestContentList'\nimport { isEmpty } from '../../utils/lang'\n\nconst SuggestServiceContent = ({ suggestionsService, idxStartAt, selectedId, updateSelectedId, onClick }) => {\n if (isEmpty(suggestionsService)) return null\n return (\n \n )\n}\nexport default SuggestServiceContent\n","import React from 'react'\nimport T from '../i18n/T'\nimport { useAction } from '../utils/react-redux'\nimport { resetSearchHistory } from '../../store/search/searchHistory/searchHistory.actions'\nimport useEventCallback from '../utils/useEventCallback'\nimport s from './SuggestClearHistory.less'\nimport { isEmpty } from '../../utils/lang'\n\nconst SuggestClearHistory = ({ suggestionsSearchHistory }) => {\n const hasSearchHistorySuggests = !isEmpty(suggestionsSearchHistory)\n const execResetSearchHistory = useAction(resetSearchHistory)\n\n const onSuggestCleanHistory = useEventCallback(() => {\n execResetSearchHistory()\n }, [])\n\n if (!hasSearchHistorySuggests) return null\n return (\n
    \n \n \n \n
    \n )\n}\n\nexport default SuggestClearHistory\n","// extracted by mini-css-extract-plugin\nexport default {\"SuggestCleanHistory\":\"cuyUO\"};","import React from 'react'\n\nimport { useSelector } from 'react-redux'\nimport { selectIsSuggestInputValueEmpty } from '../../store/suggest/suggest.selectors'\nimport T from '../i18n/T'\nimport s from './SuggestContentError.less'\n\nconst SuggestContentError = ({ hasSuggests, error }) => {\n const isInputValueEmpty = useSelector(selectIsSuggestInputValueEmpty)\n if (hasSuggests || isInputValueEmpty) return null\n\n return (\n
    \n \n
    \n )\n}\n\nexport default SuggestContentError\n","// extracted by mini-css-extract-plugin\nexport default {\"SuggestError\":\"qmbIb\"};","import React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectAllSuggestions } from '../../store/suggest/suggest.selectors'\nimport { KEYS } from '../../utils/keyboard.constants'\nimport { selectIsUserConnected, selectIsUserAccountEnabled } from '../../store/userAccount/userAccount.selectors'\nimport SuggestFavoritesContent from './SuggestFavoritesContent'\nimport SuggestSearchHistoryContent from './SuggestSearchHistoryContent'\nimport SuggestServiceContent from './SuggestServiceContent'\nimport SuggestClearHistory from './SuggestClearHistory'\nimport useIncentiveClick from './useIncentiveClick'\nimport SuggestContentError from './SuggestContentError'\nimport s from './SuggestContent.less'\nimport { TAG_SUGGEST } from '../../store/analytics/analytics.actionTypes'\nimport { isEmpty } from '../../utils/lang'\n\nconst DEBOUNCE_DURATION = 150\n\nconst SuggestContent = ({ onClick, positionComponent, withoutFavorites = false }) => {\n const { suggestions, error } = useSelector(selectAllSuggestions(withoutFavorites))\n const isUserAccountAvailable = useSelector(selectIsUserAccountEnabled)\n const isConnected = useSelector(selectIsUserConnected)\n const [selectedId, setSelectedId] = useState(null)\n const [timestamp, setTimestamp] = useState(null)\n const hasFavoriteSuggests = !isConnected ? isUserAccountAvailable : !isEmpty(suggestions.favorites)\n const hasSearchHistorySuggests = !isEmpty(suggestions.searchHistory)\n const hasServiceSuggests = !isEmpty(suggestions.service)\n const hasSuggests = hasFavoriteSuggests || hasSearchHistorySuggests || hasServiceSuggests\n const stateRef = useRef({\n suggestsRef: suggestions,\n errorRef: error,\n selectedIdRef: selectedId,\n timestampRef: timestamp\n })\n\n const incentiveTagClickBuilder = useCallback(() => {\n if (isConnected) return null\n return { type: TAG_SUGGEST }\n }, [isConnected])\n\n const { onIncentiveClick } = useIncentiveClick({ onClick, incentiveTagClickBuilder })\n\n useEffect(() => {\n if (__SERVER__) return\n document.addEventListener('keydown', handleKeyboardEvent, false)\n\n return () => {\n document.removeEventListener('keydown', handleKeyboardEvent, false)\n }\n }, [])\n\n useEffect(() => {\n stateRef.current = {\n ...stateRef.current,\n suggestsRef: suggestions,\n errorRef: error\n }\n }, [suggestions, error])\n\n const updateSelectedId = idx => {\n const now = Date.now()\n setSelectedId(idx)\n setTimestamp(now)\n stateRef.current = {\n ...stateRef.current,\n selectedIdRef: idx,\n timestampRef: now\n }\n }\n\n const hasSpeedScrollLimitReached = (currentTimestamp, newTimestamp, key) => {\n return (\n currentTimestamp &&\n newTimestamp - currentTimestamp < DEBOUNCE_DURATION &&\n (key === KEYS.DOWN || key === KEYS.UP || key === KEYS.ENTER || key === KEYS.TAB)\n )\n }\n\n const handleKeyboardEvent = e => {\n const { suggestsRef, errorRef, selectedIdRef, timestampRef } = stateRef.current\n\n if (errorRef) {\n return\n }\n\n const currentSelectedId = selectedIdRef\n const currentTimestamp = timestampRef\n let newSelectedId\n let newTimestamp = Date.now()\n const suggestsSize = suggestsRef.favorites.length + suggestsRef.service.length + suggestsRef.searchHistory.length\n const isKeyDown = e.key === KEYS.DOWN || (!e.shiftKey && e.key === KEYS.TAB)\n const isKeyUp = e.key === KEYS.UP || (e.shiftKey && e.key === KEYS.TAB)\n const isKeyEnter = e.key === KEYS.ENTER\n\n // handle speed scrolling with arrow\n if (hasSpeedScrollLimitReached(currentTimestamp, newTimestamp, e.key)) {\n return e.preventDefault()\n }\n\n if (isKeyDown) {\n e.preventDefault()\n newSelectedId = currentSelectedId !== null ? (currentSelectedId + 1) % suggestsSize : 0\n } else if (isKeyUp) {\n e.preventDefault()\n newSelectedId =\n currentSelectedId !== null\n ? currentSelectedId - 1 >= 0\n ? currentSelectedId - 1\n : suggestsSize - 1\n : suggestsSize - 1\n } else if (isKeyEnter && currentSelectedId !== null) {\n e.preventDefault()\n e.stopPropagation()\n newSelectedId = null\n const allSuggests = [...suggestsRef.favorites, ...suggestsRef.searchHistory, ...suggestsRef.service]\n const suggest = allSuggests[currentSelectedId]\n return onIncentiveClick(suggest)\n } else if (e.shiftKey && e.key === KEYS.SHIFT) {\n // Condition pour éviter de perdre la position de l'item sélectionné, quand on appuie que sur shift\n e.preventDefault()\n newSelectedId = currentSelectedId\n newTimestamp = currentTimestamp\n } else {\n newTimestamp = null\n newSelectedId = null\n }\n\n setSelectedId(newSelectedId)\n setTimestamp(newTimestamp)\n stateRef.current = {\n ...stateRef.current,\n selectedIdRef: newSelectedId,\n timestampRef: newTimestamp\n }\n }\n\n return (\n
    \n {positionComponent}\n\n \n\n \n\n \n\n \n\n \n
    \n )\n}\n\nexport default SuggestContent\n","// extracted by mini-css-extract-plugin\nexport default {\"SuggestItem_link\":\"d9mYb\",\"SuggestItem_text\":\"ogaru\",\"oneLabel\":\"WUr7r\",\"SuggestItem_mainLabel\":\"AYOe7\",\"SuggestItem_icon\":\"BHZZ9\",\"SuggestItem_secondaryLabel\":\"tnwHk\",\"icon\":\"htRus\",\"favori\":\"gxHMN\",\"maison\":\"XJita\",\"sacoche\":\"CpBCI\",\"brandLogo\":\"MtOrN\"};","import React from 'react'\nimport classNames from 'classnames'\n\nimport s from './SuggestItem.less'\n\nimport SVGIcon from '../svg/SVGIcon'\nimport { suggestServiceCtx } from '../../store/suggest/suggest.service.constants'\n\nconst BrandItemContent = props => {\n const { suggest = {} } = props\n const { labels, brandIconUrl } = suggest\n const [firstLabel] = labels\n return (\n <>\n {brandIconUrl && (\n
    \n \n
    \n )}\n
    \n \n
    \n \n )\n}\n\nconst GenericContent = props => {\n const { suggest } = props\n const [firstLabel, ...otherLabels] = suggest.labels\n const icon = suggest?.subtype?.id\n const iconUrls = suggest?.iconUrls ?? false\n\n return (\n <>\n
    \n \n
    \n
    \n \n {iconUrls && (\n \n {iconUrls.map((iconUrl, idx) => {\n return \n })}\n \n )}\n {!iconUrls && (\n \n {otherLabels.map((label, id) => (\n \n ))}\n \n )}\n
    \n \n )\n}\n\nexport default class SuggestItem extends React.Component {\n onClick = e => {\n e.preventDefault()\n e.stopPropagation()\n const { onClick, suggest } = this.props\n onClick && onClick(suggest)\n }\n\n onMouseEnter = () => {\n const { idx, updateSelectedId } = this.props\n updateSelectedId(idx)\n }\n\n onFocus = () => {\n const { idx, updateSelectedId } = this.props\n updateSelectedId(idx)\n }\n\n render() {\n const { suggest } = this.props\n\n const { onClick, onMouseEnter, onFocus } = this\n\n const type = suggest?.type\n let Content\n if (type === suggestServiceCtx.type.store_chain) {\n Content = BrandItemContent\n } else {\n Content = GenericContent\n }\n\n return (\n \n \n \n )\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"SuggestList\":\"DJuod\",\"selected\":\"CKN0m\"};","import React from 'react'\nimport SuggestItem from './SuggestItem'\nimport s from './SuggestContentList.less'\n\nconst SuggestContentList = ({\n suggestions = [],\n idxStartAt = 0,\n onClick,\n selectedId = -1,\n updateSelectedId = () => {}\n}) => (\n
    \n
      \n {suggestions.map((suggest, index) => {\n const idx = idxStartAt + index\n return (\n
    • \n \n
    • \n )\n })}\n
    \n
    \n)\n\nexport default SuggestContentList\n","import { useSelector } from 'react-redux'\nimport { selectIsUserConnected } from '../../store/userAccount/userAccount.selectors'\nimport { MODAL_IDS, USER_SCREENS } from '../../store/ui/ui.constants'\nimport { dispatchTag } from '../../store/analytics/analytics.actions'\nimport { useAction } from '../utils/react-redux'\nimport { setUserUIScreen } from '../../store/ui/ui.actions'\nimport { ROUTE_USER_ACCOUNT } from '../../routes'\nimport useModal from '../ui/useModal'\nimport { navigateTo } from '../../store/history/history.actions'\n\nconst useIncentiveClick = ({ onClick, incentiveTagClickBuilder }) => {\n const isConnected = useSelector(selectIsUserConnected)\n const { displayModal } = useModal(MODAL_IDS.USER_ACCOUNT_INCENTIVE_POPIN)\n const execDispatchTag = useAction(dispatchTag)\n const execNavigateTo = useAction(navigateTo)\n const execSetUserUIScreen = useAction(setUserUIScreen)\n const manageFavorite = type => execSetUserUIScreen(USER_SCREENS.manageFavorite, { type })\n\n const onIncentiveClick = suggest => {\n const { incentive, type } = suggest\n if (!incentive) {\n onClick(suggest)\n } else if (isConnected) {\n execDispatchTag(incentiveTagClickBuilder(suggest))\n manageFavorite(type)\n execNavigateTo({ route: ROUTE_USER_ACCOUNT })\n } else {\n displayModal()\n execDispatchTag(incentiveTagClickBuilder(suggest))\n }\n }\n\n return { onIncentiveClick }\n}\n\nexport default useIncentiveClick\n","import React from 'react'\nimport { useSelector } from 'react-redux'\nimport { selectFavouriteModes, selectPreferredMode } from '../../store/travelOptions/travelOptions.selectors'\nimport { setPreferredMode } from '../../store/travelOptions/travelOptions.actions'\nimport ModeItem from '../itinerary/ModeItem'\nimport sModeSelector from '../itinerary/ModeSelector.less'\nimport { useAction } from '../utils/react-redux'\nimport { dispatchTag } from '../../store/analytics/analytics.actions'\nimport { TAG_CLICK_TRAVEL_OPTIONS_MODEFAVORI } from '../../store/analytics/analytics.actionTypes'\nimport { SELECTION } from '../analytics/ClickTagsService'\n\nconst FavouriteModeBox = () => {\n const favouriteModes = useSelector(selectFavouriteModes)\n const preferredMode = useSelector(selectPreferredMode)\n const execSetPreferredMode = useAction(setPreferredMode)\n const execDispatchTag = useAction(dispatchTag)\n\n const onClickForId = id => () => {\n execDispatchTag({\n type: TAG_CLICK_TRAVEL_OPTIONS_MODEFAVORI,\n tagInfo: {\n [SELECTION]: id\n }\n })\n execSetPreferredMode({ modeId: id })\n }\n\n return (\n
      \n {favouriteModes.map(({ id, label, icon }) => {\n return (\n
    • \n \n
    • \n )\n })}\n
    \n )\n}\n\nexport default FavouriteModeBox\n","import React, { useCallback } from 'react'\nimport s from './ModeSpeedSettingsBox.less'\nimport { selectPreferredSpeed, selectVehicleOwn } from '../../store/travelOptions/travelOptions.selectors'\nimport { changePreferredOptions } from '../../store/travelOptions/travelOptions.actions'\nimport { useAction } from '../utils/react-redux'\nimport VehicleOwnedSwitcher from './VehicleOwnedSwitcher'\nimport T, { useTranslateAsObject } from '../i18n/T'\nimport { PREFERRED_SPEED, TRAVEL_SPEED_VALUES_BY_MODE, TRAVEL_SPEEDS, VEHICLE_OWN } from './travelOptions.constants'\nimport { useSelector } from 'react-redux'\n\nconst speedTKey = item => `itinerary.options.speed.${item}`\n\nexport default function ModeSpeedSettingsBox({ modeId, hasOwnSwitcher }) {\n const preferredSpeed = useSelector(selectPreferredSpeed(modeId))\n const vehicleOwn = useSelector(selectVehicleOwn(modeId))\n const execChangePreferredOptions = useAction(changePreferredOptions)\n const translations = useTranslateAsObject(TRAVEL_SPEEDS.map(speedTKey))\n\n const onPreferredOptionsChange = useCallback(event => {\n const value = event.target.value\n execChangePreferredOptions({\n modeId,\n [PREFERRED_SPEED]: value\n })\n }, [])\n\n return (\n
    \n {hasOwnSwitcher && (\n
    \n \n execChangePreferredOptions({\n modeId: modeId,\n [VEHICLE_OWN]: value\n })\n }\n defaultValue={vehicleOwn}\n />\n
    \n )}\n
    \n \n \n
    \n
    \n )\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"speedWrapper\":\"eNgwk\"};","// extracted by mini-css-extract-plugin\nexport default {\"boxWrapper\":\"E_YeZ\",\"boxContent\":\"LKUCd\"};","import React, { useEffect } from 'react'\nimport T from '../i18n/T'\nimport FavouriteModeBox from './FavouriteModeBox'\nimport ModeSpeedSettingsBox from './ModeSpeedSettingsBox'\nimport s from './TravelOptions.less'\nimport VehicleSettingsBox from './VehicleSettingsBox'\nimport { useAction } from '../utils/react-redux'\nimport { saveTravelOptions } from '../../store/userAccount/userAccount.actions'\n\nconst TravelOptions = () => {\n const execSaveTravelOptions = useAction(saveTravelOptions)\n\n useEffect(() => {\n return () => {\n execSaveTravelOptions()\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

    \n
    \n \n
    \n
    \n \n )\n}\n\nexport default TravelOptions\n","import React from 'react'\nimport s from './VehicleOwnedSwitcher.less'\nimport SwitchInput from '../utils/SwitchInput'\nimport T from '../i18n/T'\n\nconst VehicleOwnedSwitcher = ({ labelKey, onChange, defaultValue }) => {\n return (\n
    \n
    \n \n
    \n \n
    \n )\n}\n\nexport default VehicleOwnedSwitcher\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"FNEnR\"};","// extracted by mini-css-extract-plugin\nexport default {\"VehicleSettingsBox\":\"qZ_zx\",\"VehicleSettingsBoxContent\":\"kYXpE\",\"critAirLine\":\"x0LUE\"};","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"zQQTI\",\"title\":\"yK4Lq\",\"sticker\":\"Ekl_6\",\"selected\":\"l_YsP\",\"iconWrapper\":\"lNOO9\",\"icon\":\"SHIeX\",\"content\":\"ehHEV\",\"label\":\"XB4DU\",\"value\":\"YGY8x\"};","import React, { useCallback } from 'react'\nimport s from './CritairChoice.less'\nimport T from '../i18n/T'\nimport classnames from 'classnames'\n\nconst CritairChoice = ({ critAirStickers, onSelect, value }) => {\n const onChooseForId = useCallback(\n id => evt => {\n evt.preventDefault()\n onSelect(id)\n },\n []\n )\n return (\n
    \n
    \n \n
    \n
      \n {critAirStickers.map(sticker => {\n const { icon, label, id, description } = sticker\n return (\n \n
      \n \n
      \n\n
      \n
      {label}
      \n
      {description}
      \n
      \n \n )\n })}\n
    \n
    \n )\n}\n\nexport default CritairChoice\n","import React, { useEffect } from 'react'\nimport CritairChoice from './CritairChoice'\nimport Modal from '../genericComponents/Modal'\nimport s from './CritairChoice.less'\nimport { CRITAIR_DEFAULT_ID } from './travelOptions.constants'\nimport useModal from '../ui/useModal'\n\nconst CritairSelect = ({ critAirStickers = [], value = CRITAIR_DEFAULT_ID, modeId, onChange }) => {\n const critAirSticker = critAirStickers.find(({ id }) => id === value)\n const modalId = `critair-${modeId}`\n const { displayModal, hideModal } = useModal(modalId)\n\n useEffect(() => hideModal, [])\n\n const onSelect = value => {\n onChange({ target: { value } })\n hideModal()\n }\n\n return (\n <>\n
    displayModal()}>\n {critAirSticker && }\n
    \n \n \n \n \n )\n}\n\nexport default CritairSelect\n","import React from 'react'\nimport s from './VehicleSettingsBox.less'\n\nimport NumericInput from '../genericComponents/NumericInput'\nimport {\n selectFuelList,\n selectVehicleList,\n selectPreferredVehicle,\n selectPreferredFuel,\n selectModeMetadata,\n selectVehicleOwn,\n selectCritAirId\n} from '../../store/travelOptions/travelOptions.selectors'\nimport { changePreferredOptions } from '../../store/travelOptions/travelOptions.actions'\nimport { dispatchTag } from '../../store/analytics/analytics.actions'\nimport T from '../i18n/T'\nimport { useAction } from '../utils/react-redux'\nimport classNames from 'classnames'\nimport {\n TAG_CLICK_TRAVEL_OPTIONS_CAR_VEHICLE,\n TAG_CLICK_TRAVEL_OPTIONS_MOTORBIKE_VEHICLE\n} from '../../store/analytics/analytics.actionTypes'\nimport { SELECTION } from '../analytics/ClickTagsService'\nimport VehicleOwnedSwitcher from './VehicleOwnedSwitcher'\nimport CritairSelect from './CritairSelect'\nimport {\n CRITAIR_ID,\n PREFERRED_FUEL_CONSUMPTION,\n PREFERRED_FUEL_ID,\n PREFERRED_FUEL_PRICE,\n PREFERRED_VEHICLE_ID,\n VEHICLE_OWN\n} from './travelOptions.constants'\nimport { useSelector } from 'react-redux'\n\nconst tagConfig = {\n car: {\n [PREFERRED_VEHICLE_ID]: TAG_CLICK_TRAVEL_OPTIONS_CAR_VEHICLE\n },\n motorbike: {\n [PREFERRED_VEHICLE_ID]: TAG_CLICK_TRAVEL_OPTIONS_MOTORBIKE_VEHICLE\n }\n}\n\nexport default function VehicleSettingsBox({ modeId, hasOwnSwitcher }) {\n const modeMetadata = useSelector(selectModeMetadata(modeId))\n const preferredVehicle = useSelector(selectPreferredVehicle(modeId))\n const preferredFuel = useSelector(selectPreferredFuel(modeId))\n const fuelList = useSelector(selectFuelList(modeId))\n const vehicleList = useSelector(selectVehicleList(modeId))\n const vehicleOwn = useSelector(selectVehicleOwn(modeId))\n const critAirStickers = modeMetadata?.transportMode?.critair\n const critAirId = useSelector(selectCritAirId(modeId))\n const execChangePreferredOptions = useAction(changePreferredOptions)\n const execDispatchTag = useAction(dispatchTag)\n\n const onPreferredOptionsChange = optionsToUpdate => event => {\n const value = event.target.value\n const tag = tagConfig?.[modeMetadata.id]?.[optionsToUpdate]\n if (tag) {\n execDispatchTag({\n type: tag,\n tagInfo: {\n [SELECTION]: value\n }\n })\n }\n execChangePreferredOptions({\n modeId: modeMetadata.id,\n [optionsToUpdate]: value\n })\n }\n\n return (\n
    \n
    \n {hasOwnSwitcher && (\n
    \n {\n onPreferredOptionsChange(VEHICLE_OWN)({ target: { value } })\n }}\n defaultValue={vehicleOwn}\n />\n
    \n )}\n
    \n \n \n \n \n
    \n
    \n \n \n \n \n {preferredFuel.price_unit}\n \n
    \n
    \n \n \n \n {preferredFuel.consumption_unit}\n \n
    \n {critAirStickers && (\n
    \n
    \n \n
    \n \n
    \n )}\n
    \n
    \n )\n}\n","import { useSelector } from 'react-redux'\nimport { HEADER_DEFAULT_HEIGHT_PE, HEADER_SUBHEADER_HEIGHT } from '../header/header-constants'\nimport { UI_ELEMENTS } from '../../store/ui/ui.constants'\nimport { isUIElementDisplayed, selectHeaderHeight } from '../../store/ui/ui.selectors'\n\nconst useComputedHeaderHeight = (menuCategoriesPE, subHeaderComponent) => {\n const headerHeight = useSelector(selectHeaderHeight)\n const suggestDisplayed = useSelector(isUIElementDisplayed(UI_ELEMENTS.SUGGEST))\n const searchDialogDisplayed = useSelector(isUIElementDisplayed(UI_ELEMENTS.SEARCH_DIALOG))\n\n const subHeaderHeigth =\n !suggestDisplayed && !searchDialogDisplayed && subHeaderComponent ? HEADER_SUBHEADER_HEIGHT : 0\n\n const shouldDisplayMenuCategoriesPE = menuCategoriesPE && !suggestDisplayed && !searchDialogDisplayed\n\n const menuHeigth = shouldDisplayMenuCategoriesPE ? HEADER_DEFAULT_HEIGHT_PE : 0\n\n return headerHeight + subHeaderHeigth + menuHeigth\n}\n\nexport default useComputedHeaderHeight\n","import { useSelector } from 'react-redux'\nimport { useAction } from '../utils/react-redux'\nimport { displayModal, hideModal } from '../../store/ui/ui.actions'\nimport { isModalDisplayed } from '../../store/ui/ui.selectors'\nimport useErrorBoundaryCallback from '../utils/useErrorBoundaryCallback'\n\nexport const useModal = modalId => {\n const execShow = useAction(displayModal)\n const execHide = useAction(hideModal)\n const isDisplayed = useSelector(isModalDisplayed(modalId))\n const display = useErrorBoundaryCallback(() => execShow(modalId), [execShow, modalId])\n const hide = useErrorBoundaryCallback(() => execHide(modalId), [execHide, modalId])\n return {\n isModalDisplayed: isDisplayed,\n displayModal: display,\n hideModal: hide\n }\n}\n\nexport default useModal\n","import React from 'react'\n\nconst DEFAULT_DELAY_BEFORE_LAUNCH = 0\nconst STATUS_WAITING = 'waiting'\nconst STATUS_READY = 'ready'\n\nexport default class DelayComponent extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n status: STATUS_WAITING\n }\n }\n\n componentDidMount() {\n this.timeout = setTimeout(this.ready, this.props.delay || DEFAULT_DELAY_BEFORE_LAUNCH)\n }\n\n componentWillUnmount() {\n clearTimeout(this.timeout)\n }\n\n ready = () => {\n this.setState({ status: STATUS_READY })\n }\n\n render() {\n if (this.state.status !== STATUS_READY) return null\n return this.props.children\n }\n}\n","import React, { useState } from 'react'\nimport useEventCallback from './useEventCallback'\nimport s from './SwitchInput.less'\nimport classNames from 'classnames'\nimport useEffectExceptMount from './useEffectExceptMount'\n\nconst SwitchInput = ({ onChange, defaultValue = false }) => {\n const [value, setValue] = useState(defaultValue)\n\n useEffectExceptMount(() => {\n onChange(value)\n }, [value])\n\n const onClick = useEventCallback(() => {\n setValue(!value)\n }, [value])\n\n return (\n
    \n
    \n
    \n )\n}\n\nexport default SwitchInput\n","import { useEffect, useRef } from 'react'\n\nconst useEffectExceptMount = (fn, deps) => {\n const initialMount = useRef(true)\n useEffect(() => {\n if (initialMount.current) {\n initialMount.current = false\n } else {\n return fn()\n }\n }, deps)\n}\n\nexport default useEffectExceptMount\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"I9KMH\",\"active\":\"CINep\",\"button\":\"RKMkG\"};","export const buildStyleAttributes = (attr = {}) => {\n const extra = attr.color ? { WebkitTextFillColor: attr.color } : {}\n\n return { ...attr, ...extra }\n}\n\n/* Returns an invisible RGB if no hex is provided */\nexport const hexToRgb = (hex, alpha = 1) => {\n if (!hex) return `rgba(0,0,0,0)`\n\n const [r, g, b] = hex.match(/\\w\\w/g).map(x => parseInt(x, 16))\n\n return `rgba(${r},${g},${b},${alpha})`\n}\n\nexport const buildForceColorFullString = color => `color:${color};fill:${color};-webkit-text-fill-color:${color};`\n","import { useState, useEffect } from 'react'\n\nexport default (value, timeout) => {\n const [state, setState] = useState(value)\n\n useEffect(() => {\n const handler = setTimeout(() => setState(value), timeout)\n\n return () => clearTimeout(handler)\n }, [value, timeout])\n\n return state\n}\n","import { useCallback, useEffect, useRef } from 'react'\n\nconst useTimeout = (defaultDelay = 0) => {\n const toRef = useRef()\n const launch = useCallback(\n (fn, delay = defaultDelay) => {\n clearTimeout(toRef.current)\n toRef.current = setTimeout(fn, delay)\n },\n [defaultDelay]\n )\n\n const stop = useCallback(() => {\n clearTimeout(toRef.current)\n toRef.current = undefined\n }, [])\n\n const isPending = () => Boolean(toRef.current)\n\n useEffect(() => {\n return () => {\n stop()\n }\n }, [])\n\n return [launch, stop, isPending]\n}\n\nexport default useTimeout\n","import { selectCurrentHistoryRoute, selectIsCurrentHistoryRoutePageless } from '../store/history/history.selectors'\nimport { requestPageAdConfig } from '../store/ad/ad.actions'\nimport { avoidReloadOnBackNav, processOnRouteLeave } from '../domain/router/routeUtils'\nimport RouteHandlingState from './RouteHandlingState'\nimport { noop } from '../utils/function'\nimport { noticeNavigationDone } from '../store/history/history.actions'\n\n/**\n * Each route has to implement 2 functions:\n * - onRouteEnter -> return a promise after executions of redux actions\n * - renderPage -> return JSX representation of the page\n * And can implement a third one:\n * - onRouteLeave -> execute actions when the page is left\n * */\n\nexport const handleRouteLoading =\n ({ onRouteEnter, renderPage, onRouteLeave }) =>\n ({ routeContext, params } = {}) => {\n if (__SERVER__ && !renderPage) throw Error('renderPage should always be defined on server')\n if (!onRouteEnter) console.warn('Be careful the function onRouteEnter has not been passed')\n\n const routeHandlingState = RouteHandlingState.getInstance()\n\n const { action, state, store, prevRoute } = routeContext // FIXME NES-1803\n const avoidFetchData =\n (state && state.avoidDispatchingAnyPageAction && action !== 'POP') ||\n (action === 'POP' && avoidReloadOnBackNav(prevRoute?.route))\n const avoidPageTag = state && state.avoidPageTag\n\n processOnRouteLeave({ routeContext, params, currentOnRouteLeave: onRouteLeave })\n\n const avoidRefetchingPageData = state && state.avoidRefetchingPageData\n const currentRouteIsNotPageless = !selectIsCurrentHistoryRoutePageless(store.getState())\n\n routeHandlingState.renderPage = renderPage\n\n let actionsToDispatch = Promise.resolve()\n\n if (__BROWSER__) {\n if (currentRouteIsNotPageless)\n requestPageAdConfig(selectCurrentHistoryRoute(store.getState()))(store.dispatch, store.getState)\n\n if (avoidFetchData) {\n if (!avoidPageTag) deferSendingPageTag(routeContext)()\n } else {\n onRouteEnter({ routeContext, store, params, state, avoidRefetchingPageData }).then(\n !avoidPageTag ? deferSendingPageTag(routeContext) : noop\n )\n }\n } else {\n actionsToDispatch = onRouteEnter({ routeContext, store, params, state, avoidRefetchingPageData })\n }\n\n return actionsToDispatch.then(() => ({\n component: routeHandlingState.renderPage({ routeContext, params, state })\n }))\n }\n\nexport const deferSendingPageTag = routeContext => {\n const { store } = routeContext\n const previousRoute = selectCurrentHistoryRoute(store.getState())\n return () => {\n const currentRoute = selectCurrentHistoryRoute(store.getState())\n\n if (previousRoute === currentRoute && __BROWSER__) {\n noticeNavigationDone(routeContext)(store.dispatch, store.getState)\n }\n }\n}\n","import { getImageUrl } from '../../domain/utils/image'\nimport { getDevicePixelRatio } from '../../domain/Device'\n\nexport const extractApps = conf => {\n const applications = conf?.apps ?? []\n return applications.map(({ id, name, morePoisLabel, menu, mob_roundImage, banner, pushSeo }) => {\n return {\n id,\n name,\n morePoisLabel,\n menu: getImageUrl(menu),\n mob_roundImage: getImageUrl(mob_roundImage, Math.max(4, getDevicePixelRatio())),\n banner: getImageUrl(banner, Math.max(4, getDevicePixelRatio())),\n pushSeo\n }\n })\n}\n\nexport const extractFreeApps = conf => conf?.freeApps ?? []\n\nexport const extractCategories = conf => {\n const categories = conf?.categories ?? []\n return categories.map(({ id, shortLabel, label, iconId, apps, color, segment }) => {\n return { id, shortLabel, label, iconId, apps, color, segment }\n })\n}\n\nexport const extractSubcategories = conf => {\n const subcategories = conf?.subcategories ?? []\n return subcategories.map(({ id, label, iconId, color, rubricIds, filterApps }) => {\n return { id, label, iconId, color, rubricIds, filterApps }\n })\n}\n\nexport const extractMenus = conf => conf?.menus\n\nexport const parseGeoentitiesConfig = data => {\n if (!(data instanceof Array)) return [] // TODO: should return an error ?\n\n return data.map(({ id, type, label, from, to, logo }) => ({\n id,\n type,\n label,\n from,\n to,\n logo: getImageUrl(logo, Math.max(2, getDevicePixelRatio()))\n }))\n}\n","import {\n SET_POIASSETS_CONFIG,\n SET_GEOENTITIES_AT_ADDRESS_CONFIG,\n SET_POIS_ON_ROUTE_CONFIG,\n SET_POIASSETS_STATUS\n} from './poiassets.actionTypes'\nimport {\n extractMenus,\n extractApps,\n extractCategories,\n extractSubcategories,\n parseGeoentitiesConfig,\n extractFreeApps\n} from './poiassets.dataParsers'\nimport {\n requestPoiassetsConfig,\n requestGeoentitiesAtAddressConfig,\n requestPoisOnRouteConfig\n} from '../../dataSource/poiassets/poiassets.requests'\nimport { selectPoiAssetsStatus } from './poiassets.selectors'\nimport { POIASSETS_STATUS } from './poiassets.constants'\n\nexport const loadPoiAssetsConfiguration = () => (dispatch, getState) => {\n const status = selectPoiAssetsStatus(getState())\n\n if (status === POIASSETS_STATUS.REQUESTING || status === POIASSETS_STATUS.DONE) return Promise.resolve()\n\n dispatch({ type: SET_POIASSETS_STATUS, payload: { status: POIASSETS_STATUS.REQUESTING } })\n\n return requestPoiassetsConfig().then(response => {\n if (!response.data) {\n dispatch({ type: SET_POIASSETS_STATUS, payload: { status: POIASSETS_STATUS.INITIAL } })\n return Promise.resolve()\n }\n\n dispatch({\n type: SET_POIASSETS_CONFIG,\n payload: {\n menus: extractMenus(response.data),\n apps: extractApps(response.data),\n freeapps: extractFreeApps(response.data),\n categories: extractCategories(response.data),\n subcategories: extractSubcategories(response.data)\n }\n })\n })\n}\n\nconst loadGeoentitiesAtAddressConfiguration = () => (dispatch, getState) => {\n if (getState().poiassets.geoentitiesAtAddressConfig) return\n\n return requestGeoentitiesAtAddressConfig().then(response => {\n if (!response.data) return\n\n dispatch({\n type: SET_GEOENTITIES_AT_ADDRESS_CONFIG,\n payload: parseGeoentitiesConfig(response.data)\n })\n })\n}\n\nconst loadPoisOnRouteConfiguration = () => (dispatch, getState) => {\n if (getState().poiassets.poisOnRouteConfig) return\n\n return requestPoisOnRouteConfig().then(response => {\n if (!response.data) return\n\n dispatch({\n type: SET_POIS_ON_ROUTE_CONFIG,\n payload: parseGeoentitiesConfig(response.data)\n })\n })\n}\n\nexport const loadCompleteGeoentitiesAtAddressConfiguration = () => (dispatch, getState) =>\n Promise.all([\n loadPoiAssetsConfiguration()(dispatch, getState),\n loadGeoentitiesAtAddressConfiguration()(dispatch, getState)\n ])\n\nexport const loadCompletePoisOnRouteConfiguration = () => (dispatch, getState) =>\n Promise.all([loadPoiAssetsConfiguration()(dispatch, getState), loadPoisOnRouteConfiguration()(dispatch, getState)])\n","export default class SuggestError extends Error {\n constructor() {\n super('Pas de suggestion correspondant à cette recherche.')\n this.name = 'SuggestError'\n }\n}\n","import {\n LOAD_SUGGEST_ERROR,\n LOAD_SUGGEST_RESPONSE,\n RESET_SUGGEST_DATA,\n SET_SUGGEST_INPUT_VALUE\n} from './suggest.actionTypes'\nimport SuggestError from '../../domain/suggest/SuggestError'\nimport parse from './suggest.dataParser'\nimport { requestSuggest } from '../../dataSource/suggest/suggest.requests'\n\nfunction isResponseFromLastRequest(suggest, requestTime) {\n return suggest.lastRequestTime < requestTime\n}\n\nexport const setSuggestInputValue = value => dispatch => {\n dispatch({\n type: SET_SUGGEST_INPUT_VALUE,\n payload: value\n })\n}\n\nexport const resetSuggestData = () => (dispatch, getState) => {\n dispatch({\n type: RESET_SUGGEST_DATA\n })\n}\n\nexport const suggest =\n ({ terms, suggestFilterType = 'all' }) =>\n (dispatch, getState) => {\n if (!terms) {\n resetSuggestData()(dispatch, getState)\n return Promise.resolve()\n }\n\n setSuggestInputValue(terms)(dispatch, getState)\n\n const requestTime = Date.now()\n return requestSuggest(getState, { terms, suggestFilterType })\n .then(response => {\n const { data } = response\n\n if (!data || !data.suggests) {\n throw new SuggestError()\n }\n\n const parsedData = parse(data)\n const { suggest } = getState()\n\n if (isResponseFromLastRequest(suggest, requestTime)) {\n dispatch({\n type: LOAD_SUGGEST_RESPONSE,\n payload: { data: parsedData, requestTime }\n })\n }\n })\n .catch(error => {\n const { suggest } = getState()\n if (isResponseFromLastRequest(suggest, requestTime)) {\n dispatch({\n type: LOAD_SUGGEST_ERROR,\n payload: { error, requestTime }\n })\n }\n })\n }\n","import request from '../../domain/utils/request'\nimport { getService } from '../../parameters'\nimport { getBIParams } from '../../domain/analytics/BiTagger'\nimport { bboxToSearchParameter } from '../../domain/map/conversion'\nimport SERVICES from '../../services.constants'\n\nexport const requestSuggest = (getState, { terms, suggestFilterType = 'all' }) => {\n const service = getService(SERVICES.SUGGEST)\n const params = {\n q: terms,\n filter: suggestFilterType,\n limit: 5,\n focus_bbox: bboxToSearchParameter(getState().map.bbox),\n ...getBIParams()\n }\n\n return request.get(service, { params }).then(response => response)\n}\n","import { getImageUrl } from '../../domain/utils/image'\n\nexport default function (response) {\n return {\n suggests: response.suggests.map((suggest = {}) => {\n const { type, lat, lng, subtype, labels, brand_icon_url, icon_urls } = suggest\n\n const iconUrls = icon_urls\n ? {\n iconUrls: icon_urls.map(iconUrl => getImageUrl(iconUrl))\n }\n : {}\n\n const brandIconUrl = brand_icon_url ? { brandIconUrl: getImageUrl(brand_icon_url) } : {}\n\n return Object.assign({}, { type, lat, lng, labels }, subtype ? { subtype } : {}, iconUrls, brandIconUrl)\n })\n }\n}\n","import { flow } from '../../../utils/function'\nimport { sortBy, take } from '../../../utils/array'\n\nimport {\n formatLabelWithInputValueKeyword,\n isLabelMatchingInputValueKeyword\n} from '../../suggest/suggest.selectors.utils'\n\nconst formatHistoryEntry = ({ searchHistoryEntry, isLabelsFormatted, normalizedCurrentSearch, currentSearch }) => {\n return {\n labels: isLabelsFormatted\n ? searchHistoryEntry.split_label.map(formatLabelWithInputValueKeyword(normalizedCurrentSearch, currentSearch))\n : searchHistoryEntry?.split_label,\n date: searchHistoryEntry?.date,\n type: searchHistoryEntry?.type,\n subtype: {\n id: 'history'\n }\n }\n}\n\nexport const lastTenHistoryEntries = searchHistory =>\n flow(\n array => sortBy(array, 'date', 'desc'),\n array => take(array, 10),\n array => array.map(searchHistoryEntry => formatHistoryEntry({ searchHistoryEntry }))\n )(searchHistory)\n\nexport const lastSearchHistoryEntries = (normalizedCurrentSearch, currentSearch, searchHistory) =>\n flow(\n array =>\n array.filter(searchHistoryEntry =>\n isLabelMatchingInputValueKeyword(normalizedCurrentSearch, searchHistoryEntry.split_label.join(' '))\n ),\n array => sortBy(array, 'date', 'desc'),\n array => take(array, 3),\n array =>\n array.map(searchHistoryEntry =>\n formatHistoryEntry({\n searchHistoryEntry,\n isLabelsFormatted: true,\n normalizedCurrentSearch,\n currentSearch\n })\n )\n )(searchHistory)\n","import { createSelector } from 'reselect'\nimport { selectSearchState } from '../search.selectors'\nimport { lastTenHistoryEntries } from './searchHistory.utils'\n\nexport const selectSearchHistory = createSelector(selectSearchState, search => search?.searchHistory ?? [])\n\nexport const selectLastTenHistoryEntries = createSelector(selectSearchHistory, searchHistory =>\n lastTenHistoryEntries(searchHistory)\n)\n","import { lastSearchHistoryEntries } from '../search/searchHistory/searchHistory.utils'\nimport { selectSearchHistory, selectLastTenHistoryEntries } from '../search/searchHistory/searchHistory.selectors'\nimport { createSelector } from 'reselect'\nimport {\n selectFakeFavorites,\n selectIsUserAccountEnabled,\n selectUserFavorites\n} from '../userAccount/userAccount.selectors'\nimport { isLabelMatchingInputValueKeyword, normalizeInputValueKeyword, normalizeLabel } from './suggest.selectors.utils'\nimport { SUGGEST_FROM_VALUES } from '../../domain/suggest/suggest.constants'\n\nconst addFromProperty = from => item => ({ ...item, from })\n\nconst selectSuggestState = store => store?.suggest ?? {}\n\nexport const selectSuggestInputValue = createSelector(selectSuggestState, suggest => suggest?.inputValue ?? '')\n\nexport const selectIsSuggestInputValueEmpty = createSelector(selectSuggestInputValue, inputValue => inputValue === '')\n\nexport const selectSuggestError = createSelector(selectSuggestState, suggest => suggest?.error ?? null)\n\nexport const selectServiceSuggestions = createSelector(selectSuggestState, suggest =>\n (suggest?.serviceSuggestions ?? []).map(addFromProperty(SUGGEST_FROM_VALUES.service))\n)\n\nexport const selectSearchHistorySuggestions = createSelector(\n selectSuggestInputValue,\n selectSearchHistory,\n selectLastTenHistoryEntries,\n (inputValue, searchHistory, lastTenHistoryEntries) => {\n if (inputValue === '') return lastTenHistoryEntries.map(addFromProperty(SUGGEST_FROM_VALUES.history))\n\n const normalizedInputValue = normalizeInputValueKeyword(inputValue)\n\n return lastSearchHistoryEntries(normalizedInputValue, inputValue, searchHistory).map(\n addFromProperty(SUGGEST_FROM_VALUES.history)\n )\n }\n)\n\nconst formatFavoriteForSuggest = ({ uuid, label, address, favIcon, type, incentive, labels }) => {\n return {\n uuid,\n labels: address ? [label, address] : labels,\n subtype: { id: favIcon },\n type,\n from: SUGGEST_FROM_VALUES.favorites,\n incentive: Boolean(incentive)\n }\n}\n\nconst formatHomeOrWorkFavoriteForSuggest = suggestion => {\n return {\n ...formatFavoriteForSuggest(suggestion),\n address: suggestion.address\n }\n}\n\nexport const selectSuggestFakeFavorites = createSelector(selectFakeFavorites, fakeFavorites => {\n const { home, work } = fakeFavorites\n return {\n home: {\n from: SUGGEST_FROM_VALUES.favorites,\n ...home\n },\n work: {\n from: SUGGEST_FROM_VALUES.favorites,\n ...work\n }\n }\n})\n\nexport const selectFavoritesFormattedForSuggest = createSelector(\n selectIsUserAccountEnabled,\n selectUserFavorites,\n selectSuggestFakeFavorites,\n (isUserAccountAvailable, favorites, fakeFavorites) => {\n if (!isUserAccountAvailable) return []\n\n const { others, home, work } = favorites\n const suggestsHomeWork = [\n home.label ? favorites.home : fakeFavorites.home,\n work.label ? favorites.work : fakeFavorites.work\n ]\n\n return [\n ...suggestsHomeWork.map(formatHomeOrWorkFavoriteForSuggest),\n ...others.map(other => formatFavoriteForSuggest(other))\n ]\n }\n)\n\nexport const selectFavoritesSuggestions = createSelector(\n selectFavoritesFormattedForSuggest,\n selectSuggestInputValue,\n (favorites, inputValue) => {\n if (inputValue === '') return favorites.slice(0, 5)\n // TODO: vérifier avec le service que les favoris sont bien triés du plus récent au plus ancien\n\n return favorites.filter(favorite => {\n const inputValueKeyword = normalizeInputValueKeyword(inputValue)\n return isLabelMatchingInputValueKeyword(inputValueKeyword, favorite.labels.join(' '))\n })\n }\n)\n\nexport const removeDuplicateSuggestions = (suggestionsToProcess, suggestionsToCompare) => {\n const labelsToCompare = suggestionsToCompare.map(suggestion => normalizeLabel((suggestion?.labels ?? []).join(' ')))\n return suggestionsToProcess.filter(suggestion => {\n const label = normalizeLabel(suggestion.labels.join(' '))\n return !labelsToCompare.find(item => item === label)\n })\n}\n\nexport const selectAllSuggestions = (withoutFavorites = false) =>\n createSelector(\n selectSuggestError,\n withoutFavorites ? () => [] : selectFavoritesSuggestions,\n selectSearchHistorySuggestions,\n selectServiceSuggestions,\n (error, favoritesSuggestions, searchHistorySuggestions, serviceSuggestions) => {\n const favoritesSuggestionsWithUuid = favoritesSuggestions.filter(({ uuid }) => Boolean(uuid))\n const searchHistory = removeDuplicateSuggestions(searchHistorySuggestions, favoritesSuggestionsWithUuid)\n const service = removeDuplicateSuggestions(serviceSuggestions, [\n ...favoritesSuggestionsWithUuid,\n ...searchHistory\n ])\n\n return {\n error,\n suggestions: {\n favorites: favoritesSuggestionsWithUuid,\n searchHistory,\n service\n }\n }\n }\n )\n\nexport const selectHomeWorkOrFakeFavorites = createSelector(\n selectIsUserAccountEnabled,\n selectUserFavorites,\n selectSuggestFakeFavorites,\n (isUserAccountAvailable, favorites, fakeFavorites) => {\n if (!isUserAccountAvailable) return []\n const { home, work } = favorites\n return [\n home?.label ? formatHomeOrWorkFavoriteForSuggest(favorites.home) : fakeFavorites.home,\n work?.label ? formatHomeOrWorkFavoriteForSuggest(favorites.work) : fakeFavorites.work\n ]\n }\n)\n","export const suggestServiceCtx = {\n filter: {\n addresses: 'addresses',\n places: 'places',\n all: 'all'\n },\n type: {\n address: 'address',\n poi: 'poi',\n store_chain: 'store_chain',\n rubric: 'rubric'\n }\n}\n","import {\n extractDefaultFuelPrices,\n extractDefaultVehiculeOptions,\n extractTransportModes\n} from './travelOptions.dataParsers'\nimport {\n SET_DEFAULT_FUEL_PRICES,\n SET_DEFAULT_VEHICULE_OPTIONS,\n SET_PREFERRED_OPTIONS_FOR_MODE,\n SET_PREFERRED_MODE\n} from './travelOptions.actionTypes'\nimport { requestInventory } from '../../dataSource/itinerary/itinerary.requests'\n\nconst fetchVehiclesOptions = () => (dispatch, getState) => {\n const {\n locale: { value: lang }\n } = getState()\n\n return requestInventory(lang).then(data => {\n const vehiclesOptions = extractDefaultVehiculeOptions(data)\n const transportModes = extractTransportModes(data)\n\n dispatch({\n type: SET_DEFAULT_VEHICULE_OPTIONS,\n payload: { vehiclesOptions, transportModes }\n })\n\n const fuelPrices = extractDefaultFuelPrices(data)\n\n dispatch({\n type: SET_DEFAULT_FUEL_PRICES,\n payload: { fuelPrices }\n })\n })\n}\n\nlet mustFetchTravelOptions = true\nexport const fetchTravelOptionsConfig = () => (dispatch, getState) => {\n if (mustFetchTravelOptions) {\n mustFetchTravelOptions = false\n return fetchVehiclesOptions()(dispatch, getState)\n }\n\n return Promise.resolve()\n}\n\nexport const reinitializeFetchTravelOptionConfig = () => (mustFetchTravelOptions = true)\n\nexport const changePreferredOptions =\n ({ modeId, ...newPreferredOptionsForMode }) =>\n (dispatch, getState) => {\n dispatch({\n type: SET_PREFERRED_OPTIONS_FOR_MODE,\n payload: {\n modeId,\n ...newPreferredOptionsForMode\n }\n })\n }\n\nexport const setPreferredMode =\n ({ modeId }) =>\n dispatch => {\n dispatch({\n type: SET_PREFERRED_MODE,\n payload: {\n modeId\n }\n })\n }\n","import { parsePositiveNumber } from '../../utils/number'\n\nexport const extractDefaultVehiculeOptions = data => {\n return data?.vehicles.providers\n}\n\nexport const extractTransportModes = data => {\n return data?.transport_modes\n}\n\nexport const extractDefaultFuelPrices = data => {\n const fuelPrices = data?.fuel_prices ?? {}\n return Object.entries(fuelPrices).reduce((acc, entry) => {\n const [key, price] = entry\n acc[key] = parsePositiveNumber(price, 3)\n return acc\n }, {})\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"VYaek\",\"menuCategoriesPE\":\"Ke0YP\",\"container\":\"Oj56O\",\"backButton\":\"jlxqp\",\"mainButton\":\"uzKXE\",\"mainButtonIcon\":\"mfQZu\",\"listButtonIcon\":\"ypqKW\",\"mainButtonLabel\":\"IDx1g\",\"listButtonLabel\":\"gyGKv\",\"header_list_button_label\":\"VszTN\"};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"XdwHk\",\"list\":\"Gw2WM\",\"listItem\":\"g7POR\",\"listItemFavorites\":\"jTuRJ\",\"arrow\":\"jqhSM\",\"arrowRight\":\"ZBeNf\",\"arrowLeft\":\"HxR2B\"};","// extracted by mini-css-extract-plugin\nexport default {\"root\":\"t0jbF\",\"subcategoryIcon\":\"ni2Gv\",\"label\":\"O2AiI\",\"logoWrapper\":\"m9Zbf\",\"logo\":\"r4vte\"};"],"names":["withUserKnown","_ref","size","SIZE_BIG","keycloak","useKeycloak","lastFullRoute","useSelector","selectPrevFullRouteNonPageLess","loginUrl","createLoginUrl","redirectUri","concat","location","origin","React","RectangleActionButton","tagData","type","TAG_CLICK_USER_LOGIN_BUTTON","nofollow","label","href","wrapperClassName","defaultIconClassName","userPicClassName","connected","selectIsUserConnected","picture","selectUserPicture","shouldDisplayPicture","className","classnames","SVGIcon","icon","style","backgroundImage","UserFavoriteError","marginTop","error","selectUserAccountError","text","setText","useState","visible","setVisible","useTemporaryVisible","execClearUserAccountError","useAction","clearUserAccountError","useEffect","_error$name","name","StatusMessage","message","useT","INCENTIVE_NAME","incitationPrincipale","incitationOptionDeplacement","incitationOptionReponse","incitationPOI","withUserConnected","Component","props","withUserNotConnected","selectIsUserNotConnected","selectIsUserKnown","withUserUnknown","AD_STATUS_NONE","AD_STATUS_LOADING","AD_STATUS_LOADED","BaseAdLoader","_ref2","adName","keywordsSelector","children","askData","pageId","selectPageIdForAdConfig","adId","getAdIdByAdName","noop","adStatus","setAdStatus","execSetAdData","setAdData","execRemoveAdData","removeAdData","keywords","AdService","createAd","then","setAdKeywords","loadAd","getAdData","data","catch","console","reloadAd","JSON","stringify","timeoutId","setTimeout","ONE_SECOND_MS","clearTimeout","deleteAd","useAdLoader","id","withEmptyFallbackErrorBoundary","_ref3","restProps","_objectWithoutProperties","_excluded","state","selectIsCorrespondingPageAdConfigLoaded","_extends","key","StoreButton","url","appstore","TagActionLink","classNames","targetBlank","TAG_BLOCK_AUTOPROMO","tagInfo","area","analyticsConstants","autopromo","popin","AutoPromoPopinGE","hideModal","useModal","MODAL_IDS","AUTO_PROMO_POPIN","onPopinClose","useEventCallback","Modal","modalId","onClick","src","qrcode","PLAY_STORE_URL","stores","android","APPLE_STORE_URL","ios","s","iconMappy","iconRoadInfo","iconFrance","withFrenchSite","SIZE_NORMAL","displayModal","onButtonClick","useErrorBoundaryCallback","iconUrl","iconQRCode","color","COLOR_GREY_EMPTY","withOnlyPE","Anchor","ClosePopinButton","execNavigateBack","navigateBack","TagActionButton","TAG_BACK","deferClick","isGE","ClosePopinButtonGE","withOnlyGE","ImageGallery","ref","RImageGallery","lazyLoad","showNav","showThumbnails","showFullscreenButton","showPlayButton","displayName","customStyle","zIndex","backgroundColor","top","left","marginRight","transform","right","bottom","padding","overflow","borderRadius","border","overlayStyle","withCloseButton","execNavBackOnClose","rModalProps","isModalDisplayed","execNavBack","RModal","appId","stopPropagationHandler","onRequestClose","overlay","_objectSpread","content","shouldCloseOnOverlayClick","isOpen","POSITIVE_FLOAT_MAX_3_RADIX","value","onChange","onBlur","inputValue","setInputValue","event","target","focus","targetValue","test","handleBlur","parsePositiveNumber","registerConsent","consent","dispatch","getState","_getState","isEqual","cmp","REGISTER_CONSENT","payload","execRegisterConsent","DidomiSDK","iabVersion","apiKey","CMPService","constructor","noticeId","onReady","didomiSDK","setSDK","getConsents","onConsentChanged","Outdoor","wrapper","useRef","view","loaded","setLoaded","isOutdoorDisplayed","selectIsOutdoorDisplayed","outdoorPanoramicId","selectOutdoorPanoramicId","outdoorTargetCoordinates","selectOutdoorTargetCoordinates","locale","selectLocale","debugKeyHandler","_view$current","current","toggleDebug","stopListeningKeyForDebug","document","body","removeEventListener","hide","addEventListener","createOutdoorView","lat","lng","window","MappyOutdoor","View","apikey","getApiKey","domain","getDomain","imgPath","__APP_VERSION__","getLocaleUnderscored","lookAt","lon","categoryId","segment","useSelectorWithProps","selectCategorySegmentByCategoryId","adData","selectAdDataByAdId","Menuthema","title","linkLabel","imgUrl","linkUrl","DelayComponent","delay","AdLoader","categorySelector","isEmptyObj","rel","onMouseLeaveMenu","subcategories","apps","selectSubCategoriesMenu","setMouseOverTimeout","clearMouveOverTimeout","useTimeout","usePublisherBarreCategorieTag","onMouseOut","e","columnCount","Number","length","onMouseOver","map","iconId","rubricIds","MenuSubCategoryItem","mob_roundImage","MenuApplicationItem","logo","CategorySubMenuStyle","AdMenu","MenuCategoriesGE","setCategoryId","execLoadPoiAssetsConfiguration","loadPoiAssetsConfiguration","execNavigateToSmrByCategory","navigateToPoisOnRouteByCategory","categories","selectCategoriesMenu","isPageElligibleForPoisOnRoute","selectIsPageElligibleForPoisOnRoute","clearMouseOverTimeout","unselectCategory","execDispatchTag","dispatchTag","execNavigateToSearchByCategory","navigateToSearchByCategory","shortLabel","MenuCategoryItem","selected","active","onCategoryClick","catId","TAG_CLICK_CATEGORY_BAR","CAT_ID","APP_OR_SUBCAT_ID","MenuSubCategoriesGE","AutoPromoOpenButton","header","CloseUserAreaButton","onClose","LogoMappyImg","width","height","LogoMappy","alt","loading","UserAreaAnonymous","welcomeUserAccount","UserLoginButton","rightChildren","noBar","isDefaultScreen","selectIsUserScreenDefault","execSetUserUIScreen","setUserUIScreen","onBack","USER_SCREENS","default","FavoriteContent","address","poiId","uuid","favIcon","action","actionIcon","allowEmpty","editTagData","gotoTagData","updating","execNavigateTo","navigateTo","execSetCurrentSearch","setCurrentSearch","execResetGeoentities","resetGeoentities","onItemClick","route","ROUTE_SEO_GEOENTITY","routeOptions","geoentityId","ROUTE_ADDRESS","root","clickableContent","actions","Throbber","ActionButton","actionButton","buildTagData","TAG_CLICK_USER_FAVORITES_LIST","ACTION","TYPE","UserFavorites","home","work","others","selectUserFavorites","execDeleteFavorite","deleteUserFavorite","manageFavorite","deleteFavorite","canStillAddFavorite","selectUserFavoritesLimitNotReached","renderAddBtn","useCallback","COLOR_GREEN_EMPTY","FAVORITE_TYPES","OTHER","user","favorites","other","listAdd","UserScreenHeader","UserScreenContent","UserFavoriteItem","HOME_ICON","HOME","listEdit","listView","WORK_ICON","WORK","idx","listDelete","UserTravelOptions","execFetchTravelOptionsConfig","fetchTravelOptionsConfig","onValidate","TravelOptions","COLOR_GREEN","onLogout","logout","TAG_CLICK_USER_LOGOUT_BUTTON","UserMenuItem","UserMenuAccount","tagType","UserMenu","userName","selectUserName","execLoadFavorites","loadFavorites","execLoadTravelOptions","loadTravelOptions","accountUrl","getService","SERVICES","KEYCLOAK","token","encodeURIComponent","UserPicture","gotoFavoritesScreen","gotoTravelOptionsScreen","travelOptions","TAG_CLICK_USER_ACCOUNT_BUTTON","UserLogout","FavoriteInput","forwardRef","placeholder","suggestFilterType","suggestServiceCtx","filter","places","execSuggest","suggest","execSetInputValue","setSuggestInputValue","cancelSuggest","setCancelSuggest","inputRef","debouncedValue","useDebounce","hasDebouncedValueChangeOnce","onSubmit","Promise","resolve","blur","useImperativeHandle","doSuggest","val","terms","onFocus","select","autoComplete","autoFocus","UserManageFavorite","_favorites$type$addre","_favorites$type","selectUserUIScreenParams","saveOther","addOtherFavorite","saveHomeOrWork","addOrEditHomeOrWorkFavorite","initialValue","setValue","selectFavoritePlaceholder","preventDefault","SuggestContent","suggestion","isPoi","removeHtmlEmSpanAndITags","labels","join","equalsIgnoreCase","favorite","_favorites$type2","pick","withoutFavorites","UserAreaConnected","selectUserUIScreen","d","debug","UserAreaPlaceHolder","ContentLoader","speed","viewBox","foregroundColor","x","y","rx","ry","cx","cy","r","withEverySelectorTruthy","selectIsUserAccountEnabled","UserArea","isUIDisplayed","useUIDisplay","UI_ELEMENTS","USER","initialized","timeoutRef","execSetUserConnected","setUserConnected","execSetUserNotConnected","setUserNotConnected","execSetUserScreen","execSetToken","setToken","authenticated","idTokenParsed","identity","USER_ID_LEGACY","USER_ID_SUB","updateAndSaveToken","updateToken","hasTokenBeenRefreshed","checkIfTokenWillExpire","isTokenExpired","EXPIRATION_SECONDS","onTokenExpired","useKeycloakEngine","Helmet","imageList","original","srcSet","favoriteAddressesImg","favoriteAddressesImgWebp","myOptionsImg","myOptionsWebp","myAlertsImg","myAlertsWebp","UserAccountIncentiveCarrousel","textIndex","setTextIndex","galleryRef","isBulletHighlighted","bulletIndex","goToPreviousSlide","pause","slideToIndex","getCurrentIndex","play","items","onBeforeSlide","nextIndex","autoPlay","slideInterval","goToNextSlide","SmallScreenText","UserAccountIncentivePopin","shouldDisplayPopin","selectShouldDisplayUserAccountIncentivePopin","USER_ACCOUNT_INCENTIVE_POPIN","TAG_MULTIPATH_CTA","tag","PUB_TAG","PUB_COMPTE_PERSO_INCITATION","Incitation","isImpression","isPE","incentiveIllustration","getPageSpecificClasses","createSelector","store","pageClassManager","customClasses","getCommonClasses","selectIsMapFullScreen","isUIElementDisplayed","POPIN","SUGGEST","MENU_PE","MAP_TOOLS_PE","isMapFullScreen","isPopinDisplayed","isSuggestDisplayed","isMenuPEDisplayed","isMapToolsPEDisplayed","PAGE_CLASSES","withFullscreenMap","withDetail","withSuggest","withMenuPEDisplayed","withMapToolsPEDisplayed","Page","cssClasses","commonClasses","pageSpecificClasses","CMPPlaceholder","ScrollContext","useScrollContext","useContext","scrollableElementRef","getScrollValue","_scrollableElementRef","_scrollableElementRef2","scrollTop","querySelector","setScrollValue","scrollTo","scrollGoal","arguments","undefined","now0","scroll0","scrollDelta","step","now","t","scrollPos","Math","sin","PI","requestAnimationFrame","animate","addScrollListener","fn","el","removeScrollListener","checkIfTargetIsVisible","parent","child","targetTop","offsetTop","totalScrollHeight","offsetParent","clientHeight","innerHeight","scrollValue","providerValue","Provider","timeout","setAction","clear","BackButton","backButton","chevron","selectedActiveFilter","selectGeoentityActiveFilter","UniverseButton","link","UserButton","ROUTE_USER_ACCOUNT","TAG_CLICK_USER_BURGER","DesktopPreHeader","homePage","selectIsHomePage","itineraryOptions","selectItineraryOptions","execNavigateToHomepage","navigateToHomepage","onClickToHomepage","shouldDisplayUserAccount","iconItinerary","T","generateFullRoute","ROUTE_ITINERARY_HOME","subHeader","subHeaderSelectorConditionFn","headerButton","menuCategoriesPE","suggestDisplayed","searchDialogDisplayed","SEARCH_DIALOG","backButtonDisplayed","selectIsBackButtonDisplayed","headerHeight","selectHeaderHeight","subHeaderComponent","userAccountEnabled","shouldDisplayMenuCategoriesPE","computedHeaderHeight","useComputedHeaderHeight","container","withBackButton","withHeaderButton","withUserAccountButton","SubHeader","MenuCategoriesPE","localeCountryIsFrance","withoutEnglishSite","localeCountryIsUK","description","displayHighlightBar","img","_global$window$innerH","_global","withoutSubHeader","high","highNoMap","PE_MAIN_START_POS","positionAtStart","selectMainPEPositionAtStart","windowHeight","global","getStyle","headerWithSubHeaderHeight","HEADER_SUBHEADER_HEIGHT","PREHEADER_HEIGHT","minTop","MINI_MAP_HEIGHT","max","PE_MAIN_VALUES","ResponsiveScrollableWrapper","withMapReady","useMapContext","position","selectGeolocationPosition","geolocationOn","selectIsGeoLocationOn","coords","setCoords","marker","setMarker","rotation","activated","mapReady","selectIsMapReady","setRotation","compassHandler","absolute","alpha","toFixed","eventName","useCompass","refDiv","setLngLat","m","MapLibreMarker","element","anchor","addTo","remove","mapMode","selectMapMode","intervalRef","lastUpdate","setLastUpdate","Date","MAP_MODES","traffic","setInterval","ONE_MINUTE_MS","clearInterval","date","mins","getMinutes","hours","getHours","pad","formatHourFromDate","useTooltip","tooltip","setTooltip","showTooltip","hideTooltip","mouseListeners","ZoomButton","otherProps","ZoomInButton","ZoomOutButton","ZoomButtons","execRequestZoom","requestZoom","zoomFromStore","selectMapZoom","maxZoom","selectMapMaxZoom","zoom","setZoom","updateZoom","delta","targetZoom","MAP_ZOOM_MIN","MAP_ZOOM_STEP","selectShouldDisplayMapTools","Scale","scaleRef","addControl","useCallbackWithMapContext","MapLibreScaleControl","maxWidth","unit","removeControl","DEFAULT_COPYRIGHT","Copyrights","copyrights","setCopyrights","mapEventAttached","on","throttle","getCopyright","uniq","queryRenderedFeatures","feature","layer","includes","properties","flatMap","parse","err","Logo","logoMappy","ToggleFullscreenButton","execToggleFullscreen","toggleFullscreen","OutdoorButton","statusIsPrompt","selectIsOutdoorPrompted","execDisplayOutdoor","displayOutdoor","execHideOutdoor","hideOutdoor","status","OUTDOOR_STATUS_PROMPT","TAG_UPI_IMMERSIVE","POPUP_ID","PortalPopup","popupId","useMapLibrePopup","popupData","selectPopupData","shouldHavePopup","offset","popupDataAreComplete","hasPopup","setHasPopup","withIllustration","popupTypeClass","withIllustrationClass","mapLibrePopup","MapLibrePopup","closeButton","setHTML","domNode","ReactDOM","Popup","POPUP_TYPE_PANO","PopupPano","POPUP_TYPE_POI","PopupPoi","POPUP_TYPE_ADDRESS","PopupAddress","getChild","selectShouldDisplayPopup","UPI","isDisplayed","elementRef","setPreviewTimeout","clearPreviewTimeout","displayPreview","closePreview","useOutdoorPreviewPopup","execDisplayPopup","displayPopup","execHidePopup","hidePopup","fetchPano","panoData","follow","unfollow","mapClicked","mapMouseMove","getCanvas","cursor","bodyMouseMove","off","launchOutdoor","panoramicId","ROUTE_360_VIEW_FULLSCREEN","lngLat","onMouseMove","UPI_SIZE","clientX","clientY","onClicked","GeolocButton","selectGeolocationStatus","statusFromButton","setStatusFromButton","execSetGeolocationStatus","setGeolocationStatus","displayError","setDisplayError","setErrorTo","clearErrorTo","isFollowStatus","GEOLOC_STATUS_FOLLOW","isFetchStatus","GEOLOC_STATUS_FETCH_ACTIVE","GEOLOC_STATUS_FETCH_FOLLOW","GEOLOC_STATUS_BLOCKED","TAG_SEARCH_GEOLOCATION","newStatus","GEOLOC_STATUS_BUTTON_WORKFLOW","GEOLOC_STATUS_DISABLED","mapMove","onMapMove","statusIsFollow","moveFromUser","fromAppAction","MAPLIBRE_EVENT_MOVE","GEOLOC_STATUS_ACTIVE","onMapMoveDelayed","debounce","MAP_STORE_UPDATE_DELAY","useEffectWithMapContext","MAPLIBRE_EVENT_ZOOM","tagAction","clickAction","point","useContextMenu","clickHandler","TAG_CLICK_CONTEXT_MENU","ContextMenuItemShowAddress","searchAddressFromPointAction","searchAddressFromPoint","ContextMenuItem","findAddressFromPoint","findAddressforGeolocation","addresses","reject","Error","ContextMenuItemItineraryTo","execSetArrivalFromPoint","setArrivalFromPoint","itineraryUniverse","selectIsItineraryUniverse","navigateToAction","ROUTE_ITINERARY_TO","to","toAddress","avoidReset","navigateToItineraryTo","ContextMenuItemItineraryFrom","execSetDepartureFromPoint","setDepartureFromPoint","selectIsAnItineraryResultPage","ContextMenuItemItineraryAddStep","execAddStep","addStep","execSetStepIdx","setStepIdx","execSetStepFromAddress","setStepFromAddress","stepsLength","selectStepsLength","selectIsPlacesUniverse","ContextMenuItemShowCity","execSearchLocation","searchCityFromPoint","searchDepartmentFromPoint","searchRegionFromPoint","LocalContext","canvas","clientWidth","canvasWidth","canvasHeight","currentRoute","selectCurrentHistoryRoute","bbox","selectMapBbox","setEvent","shouldDisplay","selectShouldDisplayContextMenu","closeContextMenu","onContextMenu","once","useImpressionTag","condition","menuClickHandler","ContextMenuItemShowDepartment","ContextMenuItemShowRegion","performance","FPS","super","this","fps","stop","componentDidMount","compute","componentWillUnmount","setState","_interval","count","bind","updateFpsCount","deltaTime","render","BboxDebugger","fillColor","isMapReady","debugId","x1","y1","x2","y2","p1","min","geometry","coordinates","isEmpty","getLayer","addLayer","source","paint","getSource","setData","removeLayer","removeSource","toString","ViewportDebugger","bboxArrayToBboxArrays","selectViewport","MapBboxDebugger","ActiveBboxDebugger","selectMapActiveBbox","SearchBboxDebugger","selectMapSearchBbox","StepsDebugger","departure","arrival","selectStepsCoordinates","getBboxFromLngLatPoints","ZoomDebugger","_mapContext$map","_mapContext$map$getZo","rawZoom","getZoom","call","floor","mapDebuggerAPI","ui","viewport","steps","activebbox","searchbbox","PREFERENCES_KEY","MapDebuggerComponent","mapDebugger","setUIItem","prop","show","saveJSONInLocalStorage","preferences","loadJSONFromLocalStorage","MapDebugger","getFromLocalStorage","lastTimeout","ResizeObserver","installResizeObserverPolyfill","nbClick","MapLoadingError","originalError","redirectToWebGLErrorPage","mapLoadingError","SentryService","captureException","changeDocumentLocation","mapInstanceRef","mapContainerRef","mapStyleName","setMapStyleName","storeBboxRef","useRefFromSelector","couldFullScreen","selectCouldMapFullScreen","mapService","selectMapService","mapStatus","selectMapStatus","execUpdate","update","execSetMapStatus","setMapStatus","execMapDestroyed","mapDestroyed","execResetStyle","mapResetStyle","getMapStartLocation","GEOIP","startLocation","center","enabled","bounds","getMapLibreglState","getBounds","toArray","onUpdate","activeBbox","computeMapActiveBbox","searchBbox","computeSearchBbox","distanceFromPreviousChange","computePixelsDeltaBetweenBboxes","setStyle","updateMapStatusOnRender","MAP_STATUS_STYLED","isStyleLoaded","MAP_STATUS_INIT","isWebglSupported","sessionId","getMapSessionId","MapLibreMap","pitchWithRotate","dragRotate","minZoom","doubleClickZoom","keyboard","attributionControl","transformRequest","params","addParamsToUrl","headers","mapInstance","_e$originalEvent","originalEvent","touches","fire","DELAY_TO_TRIGGER_CONTEXTMENU_ON_MOBILE","handleMobileLongTouchAsContextMenu","touchZoomRotate","disableRotation","updateHandler","getUpdateHandler","delayedUpdate","MAP_FROM_APP_ACTION_PADDING","MAP_FROM_APP_ACTION_MOVE","throttledUpdateMapStyle","onMapTouchEvent","isPolylineAroundPointer","haveAClickMyMapFeatureAroundPointer","mobileTapHandler","handleMobileTap","handler","currentZoom","where","flyTo","MIN_INTERVAL_TO_DISTINGUISH_SGLE_FROM_DBL_TAP","MapContext","useMapMoveHandler","targetBbox","targetCenter","targetOptions","selectMapTargetData","execAcknowledgeMove","acknowledgeMove","move","options","avoidAnimation","withFastAnimation","easing","pow","eventData","from","GEOLOC_MOVE_FROM_INITIAL","bboxIsValid","fitBounds","addBreadcrumb","easeTo","useMapZoomHandler","execAcknowledgeZoom","acknowledgeZoom","zoomTo","useMapPerfMetrics","vectorMap","selectIsVectorMap","execFinishMapLoading","sendMapLoadingTime","setTag","mapHasGoodSupport","String","transaction","startTransaction","configureScope","scope","setTransactionName","spanStyle","startChild","op","spanLoad","finish","startTimestamp","endTimestamp","loadTime","useMapPaddingHandler","getPadding","useComputePaddingGetter","setPadding","selectMapTooSlowTooltip","MapTooSlowTooltip","execHideMapTooSlowTooltip","hideMapTooSlowTooltip","execSetLastMapTooSlowTimestamp","setMapTooSlowTimestamp","closeTooltip","PUB_MAP_POP_IN_MAP_TOO_SLOW","ModeLayerButton","disabled","execSetMode","setMapMode","neutral","layerButton","modeButton","activeButton","disabledLayerButton","greyedIcon","disabledLabel","ThemeLayerButton","execSetTheme","setMapTheme","selectMapTheme","MAP_THEMES","normal","themeButton","dangerouslySetInnerHTML","__html","THEME","MODE","buttons","ThemeStandard","availableInRaster","simple","ThemeSimple","nature","ThemeNature","satellite","ThemeSatellite","dark","ThemeDark","zfe","bicycle","tc","LayersButtons","display","setDisplay","hdTooltipDisplayed","setHdTooltip","isOpened","isClosing","showUI","hideUI","isVecto","execSwitchMapType","switchMapType","switchHighDefMap","TAG_CLICK_TOGGLE_HD_MAP","CLICK_TAG","XTC_CARTE_HD_OFF","switchHdTooltip","closeModes","Buttons","opened","closing","mainTitle","buttonsSection","highdef","highDefButton","SwitchInput","defaultValue","highdefLabel","informationImg","informationIcon","HdTooltip","buttonsList","_ref4","borderBottomRightRadius","borderBottomLeftRadius","button","openButton","onOpenClick","VectorMap","useClickMyMapLayers","isFrenchSite","selectIsFrenchSite","rubricId","TAG_CLICK_MY_MAP","navigateToPoi","features","mappy_poi_id","mappy_context_rubric","layers","layout","visibility","forEach","match","LAYER_ID_CMM","setLayoutProperty","useMapPointerHandler","quizGuessInProgress","selectQuizGuessInProgress","getPolylinesOrCmmLayersAroundPointer","getBBoxAroundPointer","find","_feature$layer$id","_feature$layer","layerId","polyline","LAYER_ID_POLYLINE","cmm","handleMouseOver","shouldDisplayPointer","selectShouldDisplayMapLayersButton","zoomThreshold","stripDecimal","round","RasterMap","useLayersManager","layersDefaultVisibility","setLayersDefaultVisibility","mapTheme","isRetina","visibilities","RegExp","setTouchTimeout","clearTouchTimeout","isTouchTimeoutPending","z","duration","ceil","MAP_RASTER_ZOOM_MAX","getZoomOffset","_event$originalEvent$","_event$originalEvent","_event$originalEvent$2","_event$originalEvent2","getMapActiveDimensions","centerX","centerY","layerX","layerY","handleInitialZoom","handleWheel","deltaY","handleDblClick","shiftKey","around","handleTouch","methodName","originalMethod","_len","args","Array","_key","apply","fixZoomMethods","scrollZoom","disable","useIntegerZoom","SOURCE_ID_AREA","SOURCE_ID_LIMIT","LAYER_AREA_ID","LAYER_LIMIT_ID","CONTOUR_COLOR","createGeoJSON","selectAddressContour","reverse","contour","shape","useMemo","reverseShape","addSource","pageIsQuiz","selectIsQuizPage","MapProvider","GeolocMarker","Geolocation","TrafficLegend","ContextMenu","MapAddressContour","Map","StaticMap","staticMap","DynamicMap","deps","itemClassName","iconClassName","catColorString","buildForceColorFullString","whiteColorString","execNavigateToSmrByApp","navigateToPoisOnRouteByApp","execNavigateToSearchByApp","navigateToSearchByApp","onApplicationClick","logoWrapper","selectCategoriesItemById","isMenuCategoriesPEAvailable","onTap","shouldHide","MenuSubCategoriesPE","labelStyle","iconStyle","borderColor","fill","hexToRgb","buildStyleAttributes","execNavigateToSmrBySubCategory","navigateToPoisOnRouteBySubcategory","execNavigateToSearchBySubcategory","navigateToSearchBySubcategory","subcategoryIcon","setPublisherTagTimeout","clearPublisherTagTimeout","PUB_AFFICHAGE_BARRECATEGORIE","KEYS","suggestionsFavorites","idxStartAt","selectedId","updateSelectedId","isInputValueEmpty","selectIsSuggestInputValueEmpty","isConnected","isUserAccountAvailable","hasFavoriteSuggests","SuggestContentList","suggestions","suggestionsSearchHistory","hasSearchHistorySuggests","suggestionsService","execResetSearchHistory","resetSearchHistory","onSuggestCleanHistory","hasSuggests","positionComponent","selectAllSuggestions","setSelectedId","timestamp","setTimestamp","searchHistory","hasServiceSuggests","service","stateRef","suggestsRef","errorRef","selectedIdRef","timestampRef","incentiveTagClickBuilder","TAG_SUGGEST","onIncentiveClick","useIncentiveClick","handleKeyboardEvent","currentSelectedId","currentTimestamp","newSelectedId","newTimestamp","suggestsSize","isKeyDown","isKeyUp","isKeyEnter","hasSpeedScrollLimitReached","stopPropagation","SuggestFavoritesContent","SuggestSearchHistoryContent","SuggestServiceContent","SuggestClearHistory","SuggestContentError","BrandItemContent","brandIconUrl","firstLabel","brandLogo","SuggestItem_text","oneLabel","SuggestItem_mainLabel","GenericContent","_suggest$subtype","_suggest$iconUrls","otherLabels","subtype","iconUrls","SuggestItem_icon","SuggestItem_secondaryLabel","SuggestItem","_defineProperty","onMouseEnter","Content","store_chain","SuggestItem_link","index","incentive","FavouriteModeBox","favouriteModes","selectFavouriteModes","preferredMode","selectPreferredMode","execSetPreferredMode","setPreferredMode","onClickForId","TAG_CLICK_TRAVEL_OPTIONS_MODEFAVORI","SELECTION","modeId","sModeSelector","listItemFavorites","ModeItem","speedTKey","item","ModeSpeedSettingsBox","hasOwnSwitcher","preferredSpeed","selectPreferredSpeed","vehicleOwn","selectVehicleOwn","execChangePreferredOptions","changePreferredOptions","translations","useTranslateAsObject","TRAVEL_SPEEDS","onPreferredOptionsChange","PREFERRED_SPEED","VehicleOwnedSwitcher","labelKey","VEHICLE_OWN","TRAVEL_SPEED_VALUES_BY_MODE","execSaveTravelOptions","saveTravelOptions","VehicleSettingsBox","critAirStickers","onSelect","onChooseForId","evt","sticker","CRITAIR_DEFAULT_ID","critAirSticker","CritairChoice","tagConfig","car","PREFERRED_VEHICLE_ID","TAG_CLICK_TRAVEL_OPTIONS_CAR_VEHICLE","motorbike","TAG_CLICK_TRAVEL_OPTIONS_MOTORBIKE_VEHICLE","_modeMetadata$transpo","modeMetadata","selectModeMetadata","preferredVehicle","selectPreferredVehicle","preferredFuel","selectPreferredFuel","fuelList","selectFuelList","vehicleList","selectVehicleList","transportMode","critair","critAirId","selectCritAirId","optionsToUpdate","_tagConfig$modeMetada","VehicleSettingsBoxContent","vehicle","PREFERRED_FUEL_ID","fuel","NumericInput","price","PREFERRED_FUEL_PRICE","price_unit","consumption","PREFERRED_FUEL_CONSUMPTION","consumption_unit","critAirLine","CritairSelect","CRITAIR_ID","HEADER_DEFAULT_HEIGHT_PE","execShow","execHide","STATUS_READY","ready","useEffectExceptMount","initialMount","attr","extra","WebkitTextFillColor","hex","g","b","parseInt","defaultDelay","toRef","launch","isPending","Boolean","handleRouteLoading","onRouteEnter","renderPage","onRouteLeave","routeContext","warn","routeHandlingState","RouteHandlingState","getInstance","prevRoute","avoidFetchData","avoidDispatchingAnyPageAction","avoidReloadOnBackNav","avoidPageTag","processOnRouteLeave","currentOnRouteLeave","avoidRefetchingPageData","currentRouteIsNotPageless","selectIsCurrentHistoryRoutePageless","actionsToDispatch","requestPageAdConfig","deferSendingPageTag","component","previousRoute","noticeNavigationDone","extractApps","conf","_conf$apps","morePoisLabel","menu","banner","pushSeo","getImageUrl","getDevicePixelRatio","extractFreeApps","_conf$freeApps","freeApps","extractCategories","_conf$categories","extractSubcategories","_conf$subcategories","filterApps","parseGeoentitiesConfig","selectPoiAssetsStatus","POIASSETS_STATUS","REQUESTING","DONE","SET_POIASSETS_STATUS","requestPoiassetsConfig","response","INITIAL","SET_POIASSETS_CONFIG","menus","freeapps","loadCompleteGeoentitiesAtAddressConfiguration","all","poiassets","geoentitiesAtAddressConfig","requestGeoentitiesAtAddressConfig","SET_GEOENTITIES_AT_ADDRESS_CONFIG","loadGeoentitiesAtAddressConfiguration","loadCompletePoisOnRouteConfiguration","poisOnRouteConfig","requestPoisOnRouteConfig","SET_POIS_ON_ROUTE_CONFIG","loadPoisOnRouteConfiguration","SuggestError","isResponseFromLastRequest","requestTime","lastRequestTime","SET_SUGGEST_INPUT_VALUE","RESET_SUGGEST_DATA","resetSuggestData","requestSuggest","q","limit","focus_bbox","bboxToSearchParameter","getBIParams","request","get","suggests","parsedData","brand_icon_url","icon_urls","Object","assign","LOAD_SUGGEST_RESPONSE","LOAD_SUGGEST_ERROR","formatHistoryEntry","searchHistoryEntry","isLabelsFormatted","normalizedCurrentSearch","currentSearch","split_label","formatLabelWithInputValueKeyword","selectSearchHistory","selectSearchState","search","_search$searchHistory","selectLastTenHistoryEntries","flow","array","sortBy","take","lastTenHistoryEntries","addFromProperty","selectSuggestState","_store$suggest","selectSuggestInputValue","_suggest$inputValue","selectSuggestError","_suggest$error","selectServiceSuggestions","_suggest$serviceSugge","serviceSuggestions","SUGGEST_FROM_VALUES","selectSearchHistorySuggestions","history","lastSearchHistoryEntries","isLabelMatchingInputValueKeyword","normalizeInputValueKeyword","formatFavoriteForSuggest","formatHomeOrWorkFavoriteForSuggest","selectSuggestFakeFavorites","selectFakeFavorites","fakeFavorites","selectFavoritesFormattedForSuggest","selectFavoritesSuggestions","slice","inputValueKeyword","removeDuplicateSuggestions","suggestionsToProcess","suggestionsToCompare","labelsToCompare","_suggestion$labels","normalizeLabel","favoritesSuggestions","searchHistorySuggestions","favoritesSuggestionsWithUuid","selectHomeWorkOrFakeFavorites","poi","rubric","mustFetchTravelOptions","lang","requestInventory","vehiclesOptions","vehicles","providers","extractDefaultVehiculeOptions","transportModes","transport_modes","extractTransportModes","SET_DEFAULT_VEHICULE_OPTIONS","fuelPrices","_data$fuel_prices","fuel_prices","entries","reduce","acc","entry","extractDefaultFuelPrices","SET_DEFAULT_FUEL_PRICES","fetchVehiclesOptions","newPreferredOptionsForMode","SET_PREFERRED_OPTIONS_FOR_MODE","SET_PREFERRED_MODE"],"sourceRoot":""}